ChangeLog revision 57844
170635Sobrien2000-02-18 Martin von Loewis <loewis@informatik.hu-berlin.de> 270635Sobrien 370635Sobrien * typeck2.c (my_friendly_abort): Use GCCBUGURL. 470635Sobrien 570635Sobrien1999-11-01 Jason Merrill <jason@yorick.cygnus.com> 670635Sobrien 770635Sobrien * decl2.c (maybe_make_one_only): Always make things comdat on 870635Sobrien ELF targets, too. 970635Sobrien 1070635SobrienSun Oct 24 23:54:10 PDT 1999 Jeff Law (law@cygnus.com) 1170635Sobrien 1270635Sobrien * gcc-2.95.2 Released. 1370635Sobrien 1470635Sobrien1999-09-06 Mark Mitchell <mark@codesourcery.com> 1570635Sobrien 1670635Sobrien * pt.c (tsubst): Back out 1999-08-06 patch. Use fold and 1760967Sobrien decl_constant_value to simplify array bounds. 1860967Sobrien 1960967Sobrien1999-08-19 Jason Merrill <jason@yorick.cygnus.com> 2060967Sobrien 2160967Sobrien * cp-tree.h: Declare flag_use_repository. 2260967Sobrien * pt.c (do_decl_instantiation): Don't complain about duplicate 2360967Sobrien instantiation with -frepo. 2460967Sobrien (do_type_instantiation): Likewise. 2560967Sobrien 2660967Sobrien1999-08-14 Jason Merrill <jason@yorick.cygnus.com> 2760967Sobrien 2860967Sobrien * decl2.c (lookup_arg_dependent): Note that we've already checked 2960967Sobrien the current namespace. 3060967Sobrien 3160967SobrienMon Aug 16 01:29:24 PDT 1999 Jeff Law (law@cygnus.com) 3260967Sobrien 3360967Sobrien * gcc-2.95.1 Released. 3460967Sobrien 3560967Sobrien1999-08-12 Mark Mitchell <mark@codesourcery.com> 3660967Sobrien 3760967Sobrien * decl2.c (lang_decode_option): Deprecate signatures. 3860967Sobrien 3960967Sobrien1999-08-11 Martin v. Loewis <martin@mira.isdn.cs.tu-berlin.de> 4060967Sobrien 4160967Sobrien * lex.c (do_identifier): If we find a hidden type after a global 4260967Sobrien was selected already, continue using the global. 4360967Sobrien 4460967Sobrien1999-08-10 Martin v. Loewis <martin@mira.isdn.cs.tu-berlin.de> 4560967Sobrien 4660967Sobrien * decl2.c (set_decl_namespace): Do not complain about non-matching 4760967Sobrien decls if processing a template. 4860967Sobrien 4960967Sobrien1999-08-09 Jason Merrill <jason@yorick.cygnus.com> 5060967Sobrien 5160967Sobrien * parse.y (function_try_block): Call end_protect_partials 5260967Sobrien before expand_start_all_catch. 5360967Sobrien 5460967Sobrien1999-08-06 Jason Merrill <jason@yorick.cygnus.com> 5560967Sobrien 5660967Sobrien * pt.c (maybe_get_template_decl_from_type_decl): Make sure that 5760967Sobrien we're looking at a class. 5860967Sobrien 5960967Sobrien * decl.c (lookup_name_real): Set the complain flag if we're 6060967Sobrien looking for a namespace member. 6160967Sobrien 6260967Sobrien * decl.c (pushdecl): Only give an error for shadowing a parm 6360967Sobrien from *this* function. 6460967Sobrien 6560967Sobrien * decl2.c (build_expr_from_tree, case METHOD_CALL_EXPR): Only 6660967Sobrien build_expr_from_tree on the args of a TEMPLATE_ID_EXPR. 6760967Sobrien 6860967Sobrien * class.c (mark_overriders): Fix order of args to overrides. 6960967Sobrien (warn_hidden): Likewise. Fix for having virtual and non-virtual 7060967Sobrien functions with the same name. 7160967Sobrien 7260967Sobrien * cp-tree.h (DECL_VIRTUAL_CONTEXT): New macro. 7360967Sobrien * typeck.c (expand_ptrmemfunc_cst): Calculate delta correctly for 7460967Sobrien virtual functions and MI. Simplify. 7560967Sobrien 7660967Sobrien * typeck.c (c_expand_return): Downgrade pedwarn about returning NULL 7760967Sobrien from op new to warning. 7860967Sobrien 7960967Sobrien * decl2.c (reparse_absdcl_as_casts): Don't warn about old-style 8060967Sobrien casts in system headers or extern "C" blocks. 8160967Sobrien 8260967Sobrien * pt.c (do_decl_instantiation): Downgrade duplicate instantiation 8360967Sobrien errors to pedwarn. 8460967Sobrien 8560967Sobrien * error.c (dump_type_real): Handle TREE_LIST again. 8660967Sobrien 8760967Sobrien * typeck.c (comp_target_parms): Don't complain about 8860967Sobrien converting from () to (...) if !flag_strict_prototype. 8960967Sobrien 9060967Sobrien * class.c (instantiate_type): Downgrade errors for object-dependent 9160967Sobrien memfn refs to pedwarn. 9260967Sobrien 9360967Sobrien1999-08-06 Alexandre Oliva <oliva@dcc.unicamp.br> 9460967Sobrien 9560967Sobrien * pt.c (tsubst): Use build_index_type to build in-template array 9660967Sobrien index type. Fixes g++.oliva/dwarf1.C. 9760967Sobrien * decl.c (grokdeclarator): Likewise, just for consistency, as it 9860967Sobrien doesn't seem to trigger the bug without it. 9960967Sobrien 10060967SobrienThu Aug 5 02:40:42 1999 Jeffrey A Law (law@cygnus.com) 10160967Sobrien 10260967Sobrien * typeck2.c: Update URLs and mail addresses. 10360967Sobrien 10460967Sobrien1999-08-03 Mumit Khan <khan@xraylith.wisc.edu> 10560967Sobrien 10660967Sobrien * decl.c (start_decl): Set attributes before duplicate_decls call. 10760967Sobrien 10860967SobrienWed Jul 28 21:39:31 PDT 1999 Jeff Law (law@cygnus.com) 10960967Sobrien 11060967Sobrien * gcc-2.95 Released. 11160967Sobrien 11260967SobrienSun Jul 25 15:24:21 1999 Jeffrey A Law (law@cygnus.com) 11360967Sobrien 11460967Sobrien * g++FAQ.texi: Deleted per Joe Buck's request. 11560967Sobrien * Makefile.in: Corresponding changes. 11660967Sobrien 11760967SobrienSat Jul 17 23:50:47 1999 Jeffrey A Law (law@cygnus.com) 11860967Sobrien 11960967Sobrien * Makefile.in (INTERFACE): Bump to 2. 12060967Sobrien 12160967Sobrien1999-07-17 Alexandre Oliva <oliva@dcc.unicamp.br> 12260967Sobrien 12360967Sobrien * typeck2.c (my_friendly_abort): Updated URL with bug reporting 12460967Sobrien instructions to gcc.gnu.org. Removed e-mail address. 12560967Sobrien 12660967Sobrien1999-07-15 Mark Mitchell <mark@codesourcery.com> 12760967Sobrien 12860967Sobrien * pt.c (check_default_tmpl_args): Handle friends defined in the 12960967Sobrien class just like member functions defined in the class. 13060967Sobrien 13157844SobrienThu Jul 15 01:26:49 1999 H.J. Lu <hjl@gnu.org> 13257844Sobrien 13357844Sobrien * decl.c (duplicate_decls): Relax restriction for exception 13457844Sobrien checks on duplicate symbols. 13556385Sobrien 13656385Sobrien1999-07-07 Jason Merrill <jason@yorick.cygnus.com> 13756385Sobrien 13856385Sobrien * decl.c (grokdeclarator): Update the names of all variants when 13956385Sobrien de-anonymizing. 14052750Sobrien 14152750SobrienWed Jul 7 01:26:47 1999 Alexandre Oliva <oliva@dcc.unicamp.br> 14252750Sobrien 14352750Sobrien * decl2.c (mark_vtable_entries): Fix check for rtti offset. 14452750Sobrien 14552750Sobrien1999-06-26 Richard Henderson <rth@cygnus.com> 14652750Sobrien 14752750Sobrien * decl.c (cp_finish_decl): Fix typo in cp_warning_at call. 14852750Sobrien 14952750Sobrien1999-06-21 Mark Mitchell <mark@codesourcery.com> 15052750Sobrien 15152750Sobrien * init.c (expand_aggr_vbase_init): Rename to 15252750Sobrien construct_virtual_bases. Conditionalize construction here, 15352750Sobrien rather than ... 15452750Sobrien (emit_base_init): Here. 15552750Sobrien 15652750Sobrien1999-06-19 Mark Mitchell <mark@codesourcery.com> 15752750Sobrien 15852750Sobrien * semantics.c (finish_asm_statement): Apply decay conversions to 15952750Sobrien input operands. 16052750Sobrien 16152284Sobrien * decl.c (expand_static_init): When building an anonymous function 16248743Sobrien for use with atexit, compute its body before and after entering 16352284Sobrien the function. 16448743Sobrien 16552284Sobrien1999-06-18 Mark Mitchell <mark@codesourcery.com> 16652284Sobrien 16752284Sobrien * init.c (expand_aggr_vbase_init): Add flag parameter. 16852284Sobrien (build_partial_cleanup_for): Remove, inlining into .. 16952284Sobrien (expand_cleanup_for_base): ... here. Take flag parameter. 17052284Sobrien (emit_base_init): Pass the in_chrg parameter to 17152284Sobrien emit_aggr_vbase_init. 17252284Sobrien (emit_aggr_vbase_init): Pass it to expand_cleanup_for_base. 17352284Sobrien 17452284Sobrien1999-06-16 Mark Mitchell <mark@codesourcery.com> 17552284Sobrien 17652284Sobrien * decl2.c (import_export_decl): Use same_type_p, rather than 17752284Sobrien relying on pointer-equality for types. 17852284Sobrien 17952284Sobrien * method.c (do_build_copy_constructor): Simplify. 18052284Sobrien 18152284Sobrien * call.c (build_method_call): Remove bogus code for two-argument 18252284Sobrien delete. 18352284Sobrien * init.c (build_new_1): Expand on comment, and remove dead code. 18452284Sobrien 18552284Sobrien * init.c (expand_cleanup_for_base): New function, split out 18652284Sobrien from ... 18752284Sobrien (emit_base_init): Here. 18852284Sobrien (expand_aggr_vbase_init): Use it. 18952284Sobrien 19052284Sobrien1999-06-15 Mark Mitchell <mark@codesourcery.com> 19152284Sobrien 19252284Sobrien * cp-tree.h (class_cache_firstobj): Declare. 19352284Sobrien (maybe_push_cache_obstack): Rename to push_cache_obstack. 19452284Sobrien * class.c (permanent_obstack): Remove declaration. 19552284Sobrien (class_cache_firstobj): Make it global. 19652284Sobrien (add_method): Don't use permanent_obstack directly. 19752284Sobrien (pushclass): Only free the class_cache_obstack if we know how far 19852284Sobrien back to free it. 19952284Sobrien (maybe_push_cache_obstack): Rename to push_cache_obstack. 20052284Sobrien * decl.c: Remove dead comment. 20152284Sobrien (saved_scope): Add class_cache_firstobj. 20252284Sobrien (push_to_top_level): Save it. 20352284Sobrien (pop_from_top_level): Restore it. 20452284Sobrien (push_class_level_binding): Use push_cache_obstack, not 20552284Sobrien maybe_push_cache_obstack. 20652284Sobrien * search.c (push_class_decls): Likewise. 20752284Sobrien 20852284Sobrien1999-06-14 Nathan Sidwell <nathan@acm.org> 20952284Sobrien 21052284Sobrien * call.c (build_new_op): Remove REF_BIND from all operands. 21152284Sobrien 21252284Sobrien1999-06-07 Mark Mitchell <mark@codesourcery.com> 21352284Sobrien 21452284Sobrien * search.c (convert_pointer_to_single_level): Reimplement without 21552284Sobrien using get_binfo. 21652284Sobrien 21752284Sobrien1999-06-06 Mark Mitchell <mark@codesourcery.com> 21852284Sobrien 21952284Sobrien * method.c (is_back_referenceable_type): Back-reference bools when 22052284Sobrien not squangling. 22152284Sobrien 22252284Sobrien1999-06-04 Jason Merrill <jason@yorick.cygnus.com> 22352284Sobrien 22452284Sobrien * semantics.c (finish_if_stmt_cond): Copy cond to permanent_obstack. 22552284Sobrien (finish_while_stmt_cond, finish_do_stmt, finish_for_cond): Likewise. 22652284Sobrien 22752284Sobrien1999-05-30 Mark Mitchell <mark@codesourcery.com> 22852284Sobrien 22952284Sobrien * lex.c (make_lang_type): Create TYPE_BINFO for 23052284Sobrien TEMPLATE_TYPE_PARMs just like for non-template types. 23152284Sobrien 23252284Sobrien1999-05-28 Nathan Sidwell <nathan@acm.org> 23352284Sobrien 23452284Sobrien * decl.c (complete_array_type): Allocate off same obstack. Fix 23552284Sobrien DO_DEFAULT comment to match reality. 23652284Sobrien 23752284Sobrien1999-05-22 Mark Mitchell <mark@codesourcery.com> 23852284Sobrien 23952284Sobrien * tree.c (mapcar): Handle NON_LVALUE_EXPR. 24052284Sobrien 24152284Sobrien1999-05-21 Mark Mitchell <mark@codesourcery.com> 24252284Sobrien 24352284Sobrien * typeck.c (build_ptrmemfunc): Handle PTRMEM_CSTs carefully to 24452284Sobrien reveal optimization opportunities. 24552284Sobrien 24652284Sobrien1999-05-20 Mark Mitchell <mark@codesourcery.com> 24752284Sobrien 24852284Sobrien * decl.c (grokdeclarator): Don't treat [] as indicating a 24952284Sobrien zero-sized array in a typedef. 25052284Sobrien 25152284Sobrien * call.c (build_object_call): Don't look at DECL_NAME for a type. 25252284Sobrien (pt.c): Or CP_TYPE_QUALS for an ERROR_MARK. 25352284Sobrien (typeck.c): Or TYPE_MAIN_VARIANT for a type. 25452284Sobrien 25552284Sobrien1999-05-20 Jason Merrill <jason@yorick.cygnus.com> 25652284Sobrien 25752284Sobrien * tree.c (lvalue_p_1): A NOP_EXPR can be an lvalue. 25852284Sobrien (build_cplus_new): Make sure that what we return is of the right type. 25952284Sobrien 26052284Sobrien1999-05-20 Mark Mitchell <mark@codesourcery.com> 26152284Sobrien 26252284Sobrien * cp-tree.h (make_ptrmem_cst): New function. 26352284Sobrien * expr.c (cplus_expand_constant): Split out from ... 26452284Sobrien (cplus_expand_expr): Here. Use cplus_expand_constant. 26552284Sobrien (init_cplus_expand): Set lang_expand_constant. 26652284Sobrien * pt.c (convert_nontype_argument): Use make_ptrmem_cst. 26752284Sobrien * tree.c (make_ptrmem_cst): Define. 26852284Sobrien * typeck.c (unary_complex_lvalue): Use make_ptrmem_cst. 26952284Sobrien * typeck2.c (initializer_constant_valid_p): Use make_ptrmem_cst. 27052284Sobrien 27152284Sobrien1999-05-19 Mark Mitchell <mark@codesourcery.com> 27252284Sobrien 27352284Sobrien * decl2.c (start_static_storage_duration_function): Fix comment. 27452284Sobrien (finish_file): Create static storage duration functions lazily. 27552284Sobrien 27652284SobrienWed May 19 02:50:53 1999 Arvind Sankar <arvinds@mit.edu> 27752284Sobrien 27852284Sobrien * gxxint.texi: Fix typo. 27952284Sobrien 28052284Sobrien1999-05-18 Jason Merrill <jason@yorick.cygnus.com> 28152284Sobrien 28252284Sobrien * call.c (joust): Compare the types of the conv ops, not the 28352284Sobrien target types of the conversions. 28452284Sobrien 28552284SobrienTue May 18 00:21:34 1999 Zack Weinberg <zack@rabi.phys.columbia.edu> 28652284Sobrien 28752284Sobrien * lang-specs.h: Define __GNUC__ and __GNUC_MINOR__ only if -no-gcc 28852284Sobrien was not given. 28952284Sobrien 29052284Sobrien1999-05-17 Mark Mitchell <mark@codesourcery.com> 29152284Sobrien 29252284Sobrien * cp-tree.def (TEMPLATE_ID_EXPR): Update documentation. 29352284Sobrien * decl.c (grokfndecl): Don't allow inline declarations of friend 29452284Sobrien template specializations, or friend template specializations with 29552284Sobrien default arguments. 29652284Sobrien * pt.c (tsubst): Handle substitution into array types that does 29752284Sobrien not yield a fixed upper bound, even when not processing a 29852284Sobrien template. 29952284Sobrien (tsubst_copy): Deal with the fact that the second operand to a 30052284Sobrien TEMPLATE_ID_EXPR may be NULL_TREE, a TREE_LIST, or a TREE_VEC. 30152284Sobrien * search.c (marked_pushdecls_p): Don't descend into 30252284Sobrien TEMPLATE_TYPE_PARMs and the like. 30352284Sobrien (unmarked_pushdecls_p): Likewise. 30452284Sobrien 30552284Sobrien * call.c (build_over_call): Don't throw away 30652284Sobrien initializations/copies of empty classes; use MODIFY_EXPR and 30752284Sobrien INIT_EXPR as for non-empty classes. 30852284Sobrien * class.c (finish_struct_1): Put the padding byte for an empty 30952284Sobrien class on the TYPE_NONCOPIED_PARTS list for the class. 31052284Sobrien 31152284Sobrien1999-05-16 Mark Mitchell <mark@codesourcery.com> 31252284Sobrien 31352284Sobrien * decl2.c (build_expr_from_tree): Handle COMPONENT_REFs that 31452284Sobrien indicate a reference to a field that is a qualified name. 31552284Sobrien 31652284Sobrien1999-05-16 Jason Merrill <jason@yorick.cygnus.com> 31752284Sobrien 31852284Sobrien * decl2.c (finish_objects): Don't use .?tors.* if we don't have 31952284Sobrien ASM_OUTPUT_CONSTRUCTOR. 32052284Sobrien 32152284Sobrien * friend.c (do_friend): Add attrlist arg. Remove support for 32252284Sobrien getting a non-decl as 'decl'. 32352284Sobrien * decl.c (grokfndecl): Remove attrlist arg. Don't set attrs or 32452284Sobrien rtl. 32552284Sobrien (grokdeclarator): Adjust. 32652284Sobrien * cp-tree.h: Adjust. 32752284Sobrien 32852284Sobrien1999-05-16 Mark Mitchell <mark@codesourcery.com> 32952284Sobrien 33052284Sobrien * cp-tree.h (permanent_p): New function. 33152284Sobrien * init.c (build_new_1): Use mapcar, not copy_node, to copy a 33252284Sobrien possibly complex tree node. 33352284Sobrien * tree.c (mapcar): Adjust comments, and follow coding standards in 33452284Sobrien conditional. 33552284Sobrien (permanent_p): New function. 33652284Sobrien 33752284Sobrien1999-05-13 Per Bothner <bothner@cygnus.com> 33852284Sobrien 33952284Sobrien * class.c (push_lang_context): Turn off DECL_IGNORED_P for 34052284Sobrien primitive Java types, if we actually see `extern "Java"'. 34152284Sobrien 34252284Sobrien1999-05-10 18:21 -0400 Zack Weinberg <zack@rabi.phys.columbia.edu> 34352284Sobrien 34452284Sobrien * lang-specs.h: Pass -$ to the preprocessor. 34552284Sobrien 34652284Sobrien1999-05-10 Jason Merrill <jason@yorick.cygnus.com> 34752284Sobrien 34852284Sobrien * init.c (build_offset_ref): Wrap baselinks in OFFSET_REF, too. 34952284Sobrien Don't bother wrapping an OFFSET_TYPE around unknown_type_node. 35052284Sobrien (resolve_offset_ref): Don't handle a raw baselink. 35152284Sobrien * cvt.c (build_expr_type_conversion): Likewise. 35252284Sobrien * typeck.c (decay_conversion, build_c_cast, convert_for_assignment, 35352284Sobrien convert_for_initialization): Likewise. 35452284Sobrien * class.c (instantiate_type): Handle seeing a baselink under an 35552284Sobrien OFFSET_REF. 35652284Sobrien * error.c (dump_expr): Likewise. 35752284Sobrien * pt.c (for_each_template_parm): Likewise. 35852284Sobrien (resolve_overloaded_unification): Likewise. 35952284Sobrien * tree.c (is_overloaded_fn, really_overloaded_fn): Likewise. 36052284Sobrien * typeck.c (expr_sizeof): Also complain about other permutations 36152284Sobrien of overloaded functions. 36252284Sobrien 36352284Sobrien1999-05-07 Jason Merrill <jason@yorick.cygnus.com> 36452284Sobrien 36552284Sobrien * init.c (resolve_offset_ref): Don't return a raw method. 36652284Sobrien Use BASELINK_P. 36752284Sobrien * typeck.c (decay_conversion): Don't handle a raw method. 36852284Sobrien Resolve all OFFSET_REFs. 36952284Sobrien (get_member_function_from_ptrfunc): 0 is a valid vtable index. 37052284Sobrien (build_binary_op_nodefault): Handle resolving overloaded fns. Use 37152284Sobrien same_type_p for pmf bits. Don't use build_binary_op to compare 37252284Sobrien raw pointers to methods. 37352284Sobrien (convert_for_assignment): Check for OFFSET_REF, not OFFSET_TYPE, 37452284Sobrien to decide when to call resolve_offset_ref. 37552284Sobrien (build_c_cast, convert_for_initialization): Likewise. 37652284Sobrien * cvt.c (build_expr_type_conversion): Likewise. 37752284Sobrien 37852284Sobrien1999-05-06 Nathan Sidwell <nathan@acm.org> 37952284Sobrien 38052284Sobrien * call.c (build_new_method_call): Use TYPE_MAIN_VARIANT of class. 38152284Sobrien 38252284Sobrien1999-05-05 Mark Mitchell <mark@codesourcery.com> 38352284Sobrien 38452284Sobrien * decl2.c (start_objects): Don't let static constructors and 38552284Sobrien destructors get inlined. 38652284Sobrien 38752284Sobrien * parse.y (nested_name_specifier): Make sure ordinary types are 38852284Sobrien complete, just like template types. 38952284Sobrien * parse.c: Regenerated. 39052284Sobrien 39152284Sobrien * pt.c (check_explicit_specialization): Improve error messages. 39252284Sobrien 39352284Sobrien1999-05-04 Martin von L�wis <loewis@informatik.hu-berlin.de> 39452284Sobrien 39552284Sobrien * typeck.c (string_conv_p): Use same_type_p to check whether we 39652284Sobrien try to convert between char and wchar_t. 39752284Sobrien 39852284Sobrien1999-05-03 Mark Mitchell <mark@codesourcery.com> 39952284Sobrien 40052284Sobrien * search.c (lookup_field_r): Set the TREE_TYPE of an ambiguous 40152284Sobrien lookup to error_mark_node here. 40252284Sobrien (lookup_member): Revise documentation. Add comments. Don't set 40352284Sobrien the TREE_TYPE to error_mark_node here, and don't build up an extra 40452284Sobrien TREE_LIST for ambiguous lookups. 40552284Sobrien (setup_class_bindings): Adjust accordingly. 40652284Sobrien (push_class_decls): Revise out-of-date comments. 40752284Sobrien 40852284Sobrien * typeck.c (build_const_cast): Tighten checks for legality. 40952284Sobrien 41052284Sobrien1999-05-02 Martin von L�wis <loewis@informatik.hu-berlin.de> 41152284Sobrien 41252284Sobrien * init.c (build_member_call): Lookup names coming from 41352284Sobrien namespace-scoped LOOKUP_EXPR. 41452284Sobrien 41552284Sobrien1999-05-03 Jim Blandy <jimb@zwingli.cygnus.com> 41652284Sobrien 41752284Sobrien * gxxint.texi: Add documentation for 'I'. 41852284Sobrien 41952284Sobrien1999-05-02 Martin von L�wis <loewis@informatik.hu-berlin.de> 42052284Sobrien 42152284Sobrien * tinfo.cc (operator==): Qualify type_info with std::. 42252284Sobrien 42352284Sobrien1999-05-02 Mark Mitchell <mark@codesourcery.com> 42452284Sobrien 42552284Sobrien * cp-tree.h (lang_decl_flags): Remove comdat. Updated dummy. 42652284Sobrien (DECL_COMDAT): Remove definition. 42752284Sobrien 42852284Sobrien1999-05-01 Mark Mitchell <mark@codesourcery.com> 42952284Sobrien 43052284Sobrien * decl.c (wrapup_globals_for_namespace): Fix thinko in previous 43152284Sobrien change. 43252284Sobrien 43352284Sobrien1999-04-30 Mark Mitchell <mark@codesourcery.com> 43452284Sobrien 43552284Sobrien * class.c (build_vtable): Use build_lang_decl when building 43652284Sobrien vtables, not just build_decl. 43752284Sobrien (prepare_fresh_vtable): Likewise. 43852284Sobrien * decl.c (wrapup_globals_for_namespace): Mark vtables as 43952284Sobrien DECL_EXTERNAL when calling wrapup_global_declarations. 44052284Sobrien * decl2.c (priority_info_s): Add initializations_p and 44152284Sobrien destructions_p members. 44252284Sobrien (finish_vtable_vardecl): Use TREE_SYMBOL_REFERENCED, not TREE_USED, 44352284Sobrien when deciding what vtables to write out. 44452284Sobrien (ssdf_decls): New variable. 44552284Sobrien (ssdf_decls_used): Likewise. 44652284Sobrien (start_static_storage_duration_function): Deal with being called 44752284Sobrien multiple times. Avoid inlining this function. 44852284Sobrien (generate_inits_for_priority): Deal with reuse of priority map. 44952284Sobrien (get_priority_info): Clear initializations_p and destructions_p. 45052284Sobrien (do_static_initialization): Tweak comment. 45152284Sobrien (do_static_destruction): Likewise. Fix condition on sentries for 45252284Sobrien destruction. 45352284Sobrien (generate_ctor_or_dtor_function): Call all of the static storage 45452284Sobrien duration functions. 45552284Sobrien (generate_ctor_or_dtor_function_for_priority): Check 45652284Sobrien initializations_p and destructions_p to see what priorities need 45752284Sobrien initialization functions. 45852284Sobrien (finish_file): Rework to generate multiple static storage duration 45952284Sobrien functions, rather than just one. 46052284Sobrien 46152284Sobrien * typeck.c (build_const_cast): Tweak last change to handle 46252284Sobrien templates correctly. 46352284Sobrien 46452284Sobrien * typeck.c (build_const_cast): Disallow use of const_cast to 46552284Sobrien anything but a pointer or reference type. 46652284Sobrien 46752284Sobrien1999-04-30 Nathan Sidwell <nathan@acm.org> 46852284Sobrien 46952284Sobrien * decl.c (cp_finish_decl): Don't permit arrays of abstract or 47052284Sobrien signature type. 47152284Sobrien 47252284Sobrien1999-04-29 Mark Mitchell <mark@codesourcery.com> 47352284Sobrien 47452284Sobrien * decl2.c (do_static_destruction): Remove obsolete FIXME comment. 47552284Sobrien (finish_file): Indent comments properly. 47652284Sobrien 47752284Sobrien1999-04-29 Richard Henderson <rth@cygnus.com> 47852284Sobrien 47952284Sobrien * decl2.c (do_static_initialization): Call do_pending_stack_adjust. 48052284Sobrien (do_static_destruction): Likewise. 48152284Sobrien 48252284Sobrien1999-04-29 Nathan Sidwell <nathan@acm.org> 48352284Sobrien 48452284Sobrien * cp-tree.h (TYPE_NOTHROW_P): New macro. 48552284Sobrien * decl2.c (delete_sanity): Warn on deleting void *. 48652284Sobrien * init.c (build_new_1): Use TYPE_NOTHROW_P. 48752284Sobrien * typeck.c (c_expand_return): cp_pedwarn on returning NULL from 48852284Sobrien throwing operator new. 48952284Sobrien 49052284Sobrien1999-04-28 Nathan Sidwell <nathan@acm.org> 49152284Sobrien 49252284Sobrien * cp-tree.h (build_component_addr): Remove prototype. 49352284Sobrien * typeck.c (build_component_addr): Make static. Remove MSG 49452284Sobrien argument. 49552284Sobrien (build_component_addr): Remove MSG parameter, clean up 49652284Sobrien comment. 49752284Sobrien (build_x_function_call): Use cp_error. 49852284Sobrien (build_unary_op): Adjust call of build_component_addr. 49952284Sobrien 50052284Sobrien1999-04-28 Mark Mitchell <mark@codesourcery.com> 50152284Sobrien 50252284Sobrien * pt.c (tsubst_friend_class): Check for NULL. 50352284Sobrien 50452284SobrienWed Apr 28 11:42:22 1999 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> 50552284Sobrien 50652284Sobrien * search.c (binfo_for_vtable): Initialize bfvi.var. 50752284Sobrien 50852284Sobrien1999-04-27 Nathan Sidwell <nathan@acm.org> 50952284Sobrien 51052284Sobrien * rtti.c (build_x_typeid): Check rtti is enabled. 51152284Sobrien 51252284Sobrien1999-04-26 Mark Mitchell <mark@codesourcery.com> 51352284Sobrien 51452284Sobrien * search.c (is_subobject_of_p): Make sure we're looking at the 51552284Sobrien right baseclasses. 51652284Sobrien 51752284Sobrien1999-04-26 Marc Espie <espie@cvs.openbsd.org> 51852284Sobrien 51952284Sobrien * Make-lang.in (cplib2.ready): Don't depend on phony targets. 52052284Sobrien 52152284Sobrien1999-04-23 Mark Mitchell <mark@codesourcery.com> 52252284Sobrien 52352284Sobrien * decl2.c (finish_file): Tweak handling of extern inlines so that 52452284Sobrien they are not unnecessarily put out. 52552284Sobrien 52652284Sobrien * search.c (is_subobject_of_p): Handle TEMPLATE_TYPE_PARMs and 52752284Sobrien such as base classes. 52852284Sobrien 52952284Sobrien1999-04-22 Brendan Kehoe <brendan@cygnus.com> 53052284Sobrien 53152284Sobrien * tree.c (build_exception_variant): Fix typo: use the chain of U, 53252284Sobrien not trying V, while cycling through U. 53352284Sobrien 53452284Sobrien1999-04-22 Mark Mitchell <mark@codesourcery.com> 53552284Sobrien 53652284Sobrien * cp-tree.h (lang_decl_flags): Remove returns_first_arg and 53752284Sobrien preserves_first_arg. Enlarge dummy accordingly. 53852284Sobrien (DECL_TINFO_FN_P): New macro. 53952284Sobrien (SET_DECL_TINFO_FN_P): Likeiwse. 54052284Sobrien (DECL_RETURNS_FIRST_ARG): Remove. 54152284Sobrien (DECL_PRESERVES_THIS): Likewise. 54252284Sobrien (DECL_INIT_PRIORITY): New macro. 54352284Sobrien (finish_struct_1): Change prototype. 54452284Sobrien (cat_namespace_levels): Remove prototype. 54552284Sobrien (vtable_decl_p): New prototype. 54652284Sobrien (vtype_decl_p): Likewise. 54752284Sobrien (sigtable_decl_p): Likewise. 54852284Sobrien (walk_globals_pred): New typedef. 54952284Sobrien (walk_globals_fn): Likewise. 55052284Sobrien (walk_globals): New prototype. 55152284Sobrien (walk_namespaces_fn): New typedef. 55252284Sobrien (walk_namespaces): New prototype. 55352284Sobrien (wrapup_globals_for_namespace): Likewise. 55452284Sobrien (walk_vtables): Remove prototype. 55552284Sobrien (walk_sigtables): Likewise. 55652284Sobrien (instantiate_pending_templates): New prototype. 55752284Sobrien * class.c (finish_struct_1): Don't return a value. 55852284Sobrien * decl.h (pending_statics): Remove declaration. 55952284Sobrien * decl.c (walk_namespaces_r): New function. 56052284Sobrien (walk_globals_r): Likewise. 56152284Sobrien (vtable_decl_p): Likewise. 56252284Sobrien (vtype_decl_p): Likewise. 56352284Sobrien (sigtable_decl_p): Likewise. 56452284Sobrien (walk_namespaces): Likewise. 56552284Sobrien (walk_globals_data): New type. 56652284Sobrien (walk_globals): New function. 56752284Sobrien (wrapup_globals_for_namespace): Likewise. 56852284Sobrien (expand_static_init): Remove assertion. Remove redundancy in 56952284Sobrien conditional. Don't put static data members in static_aggregates 57052284Sobrien Tidy. 57152284Sobrien (finish_function): Remove redundancy in conditional. Don't set 57252284Sobrien DECL_RETURNS_FIRST_ARG. 57352284Sobrien (cat_namespace_levels): Remove. 57452284Sobrien * decl2.c: Include splay-tree.h and varray.h. 57552284Sobrien (priority_info_s): New structure. 57652284Sobrien (finish_vtable_vardecl): Change prototype. Adjust for new calling 57752284Sobrien conventions. 57852284Sobrien (prune_vtable_vardecl): Likewise. 57952284Sobrien (finish_sigtable_vardecl): Likewise. 58052284Sobrien (setup_initp): Remove. 58152284Sobrien (do_dtors): Remove. 58252284Sobrien (do_ctors): Remove. 58352284Sobrien (start_static_storage_duration_function): New function. 58452284Sobrien (generate_inits_for_priority): Likewise. 58552284Sobrien (finish_static_storage_duration_function): Likewise. 58652284Sobrien (get_priority_info): Likewise. 58752284Sobrien (do_static_initialization): Likewise. 58852284Sobrien (do_static_destruction): Likewise. 58952284Sobrien (do_static_initialization_and_destruction): Likewise. 59052284Sobrien (generate_ctor_or_dtor_function): Likewise. 59152284Sobrien (generate_ctor_and_dtor_functions_for_priority): Likewise. 59252284Sobrien (pending_statics): Make it a varray. 59352284Sobrien (pending_statics_used): New variable. 59452284Sobrien (saved_inlines): Make it a varray. 59552284Sobrien (saved_inlines_used): New variable. 59652284Sobrien (finish_static_data_member): Change method of updating 59752284Sobrien pending_statics. 59852284Sobrien (mark_inline_for_output): Remove #if 0'd code. Change method of 59952284Sobrien updating saved_inlines. 60052284Sobrien (walk_vtables): Remove. 60152284Sobrien (walk_sigtables): Likewise. 60252284Sobrien (import_export_decl): Use DECL_TINFO_FN_P. 60352284Sobrien (pending_templates): Remove declaration. 60452284Sobrien (maybe_templates): Likewise. 60552284Sobrien (static_aggregates_initp): Likewise. 60652284Sobrien (setup_initp): Likewise. 60752284Sobrien (finish_objects): Simplify. 60852284Sobrien (INITIALIZE_P_IDENTIFIER): New macro. 60952284Sobrien (PRIORITY_IDENTIFIER): New macro. 61052284Sobrien (SSDF_IDENTIFIER): New macro. 61152284Sobrien (initialize_p_decl): New variable. 61252284Sobrien (priority_decl): Likewise. 61352284Sobrien (ssdf_decl): Likewise. 61452284Sobrien (priority_info_map): Likewise. 61552284Sobrien (finish_file): Recode output of static intializers and other 61652284Sobrien file-scope finalization tasks. 61752284Sobrien * error.c (OB_END_TEMPLATE_ID): New macro. 61852284Sobrien (dump_type_real): Use it. 61952284Sobrien (dump_decl): Likewise. 62052284Sobrien (dump_function_name): Likewise. 62152284Sobrien * lex.c (set_typedecl_interface_info): Adjust for new walk_globals 62252284Sobrien interface. 62352284Sobrien (check_newline): Use walk_globals, not walk_vtables. 62452284Sobrien * pt.c (pending_tempalte_expansions): Remove. 62552284Sobrien (set_vardecl_interface_info): Likewise. 62652284Sobrien (pending_templates): Make static. 62752284Sobrien (maybe_templates): Likewise. 62852284Sobrien (instantiate_class_template): Adjust call to finish_struct_1. 62952284Sobrien (instantiate_pending_templates): New function. 63052284Sobrien * rtti.c (get_tinfo_fn): Use SET_DECL_TINFO_FN_P. 63152284Sobrien * tree.c (static_aggregates_initp): Remove. 63252284Sobrien (cp_valid_lang_attribute): Don't use it; use DECL_INIT_PRIORITY 63352284Sobrien instead. 63452284Sobrien * Makefile.in (decl2.o): Depend on varray.h and splay-tree.h. 63552284Sobrien 63652284Sobrien * gxx.gperf (RETURN): Rename to RETURN_KEYWORD to avoid clashes 63752284Sobrien with the RTL code RETURN. 63852284Sobrien * hash.h: Regenerated. 63952284Sobrien * lex.c (reinit_parse_for_block): Use RETURN_KEYWORD. 64052284Sobrien * parse.y: Replace RETURN with RETURN_KEYWORD throughout. 64152284Sobrien * parse.c: Regenerated. 64252284Sobrien * pt.c: Include varray.h. Include rtl.h since varray.h requires 64352284Sobrien it. 64452284Sobrien (inline_parm_levels): New variable. 64552284Sobrien (inline_parm_levels_used): Likewise. 64652284Sobrien (maybe_begin_member_template_processing): Update them. 64752284Sobrien (maybe_end_member_template_processing): Use them, rather than 64852284Sobrien guessing how many levels to pop. 64952284Sobrien 65052284Sobrien * decl.c (make_typename_type): Tighten error-checking. 65152284Sobrien 65252284Sobrien1999-04-20 Mark Mitchell <mark@codesourcery.com> 65352284Sobrien 65452284Sobrien * cp-tree.h (build_binary_op): Remove unneeded parameter. 65552284Sobrien * class.c (build_vrable_entry_ref): Adjust call to 65652284Sobrien build_binary_op. 65752284Sobrien * decl.c (expand_static_init): Likewise. 65852284Sobrien (grokdeclarator): Likewise. 65952284Sobrien (finish_function): Likewise. 66052284Sobrien * decl2.c (delete_sanity): Likewise. 66152284Sobrien (do_dtors): Likewise. 66252284Sobrien (do_ctors): Likewise. 66352284Sobrien * error.c (dump_type_suffix): Likewise. 66452284Sobrien * expr.c (cplus_expand_expr): Likewise. 66552284Sobrien * init.c (resolve_offset_ref): Likewise. 66652284Sobrien (build_new): Likewise. 66752284Sobrien (build_new_1): Likewise. 66852284Sobrien (build_vec_delete_1): Likewise. 66952284Sobrien (expand_vec_init_catch_clause): Likewise. 67052284Sobrien (build_delete): Likewise. 67152284Sobrien * pt.c (tsubst): Likewise. 67252284Sobrien * rtti.c (synthesize_tinfo_fn): Likewise. 67352284Sobrien * search.c (expand_upcast_fixups): Likewise. 67452284Sobrien (expand_direct_vtbls_init): Likewise. 67552284Sobrien * typeck.c (get_member_function_from_ptrfunc): Likewise. 67652284Sobrien (build_binary_op_nodefault): Likewise. 67752284Sobrien (point_int_sum): Likewise. 67852284Sobrien (pointer_diff): Likewise. 67952284Sobrien (build_unary_op): Likewise. 68052284Sobrien (build_modify_expr): Likewise. 68152284Sobrien (get_delta_difference): Likewise. 68252284Sobrien (build_ptrmemfunc): Likewise. 68352284Sobrien (expand_ptrmemfunc_cst): Likewise. 68452284Sobrien 68552284Sobrien1999-04-20 Jason Merrill <jason@yorick.cygnus.com> 68652284Sobrien 68752284Sobrien * decl.c (grokfndecl): Always call cplus_decl_attributes. 68852284Sobrien * decl2.c (grokfield): Pass attrlist to grokdeclarator. 68952284Sobrien 69052284Sobrien1999-04-19 Mark Mitchell <mark@codesourcery.com> 69152284Sobrien 69252284Sobrien * cp-tree.h (finish_static_data_member_decl): New function. 69352284Sobrien * decl2.c (finish_static_data_member_decl): Split out from ... 69452284Sobrien (grokfield): Here. 69552284Sobrien * pt.c (instantiate_class_template): Use it here instead of 69652284Sobrien trying to fake it. 69752284Sobrien (tsubst_decl): Don't set DECL_ASSEMBLER_NAME; 69852284Sobrien finish_static_data_member_decl will do that. Explicit set 69952284Sobrien DECL_EXTERNAL to match non-template processing. 70052284Sobrien 70152284Sobrien1999-04-18 Mark Mitchell <mark@codesourcery.com> 70252284Sobrien 70352284Sobrien * cp-tree.h (finish_class_definition): Add parameter. 70452284Sobrien * parse.y (structsp): Use it. Don't call pop_scope here. 70552284Sobrien * parse.c: Regenerated. 70652284Sobrien * semantics.c (finish_class_definition): Pop it here. 70752284Sobrien 70852284Sobrien1999-04-17 Mark Mitchell <mark@codesourcery.com> 70952284Sobrien 71052284Sobrien * decl.c (xref_tag): Revise handling of nested template 71152284Sobrien declarations. 71252284Sobrien * pt.c (check_explicit_specialization): Tweak handling of friend 71352284Sobrien templates in template classes. 71452284Sobrien (tsubst_friend_class): Handle friend declarations for nested 71552284Sobrien member template classes. 71652284Sobrien 71752284Sobrien1999-04-16 Mark Mitchell <mark@codesourcery.com> 71852284Sobrien 71952284Sobrien * class.c (finish_struct): Remove unused variable. 72052284Sobrien (pushclass): Likewise. 72152284Sobrien (invalidate_class_lookup_cache): Likewise. 72252284Sobrien * cp-tree.def (TYPENAME_TYPE): Improve documentation. 72352284Sobrien * decl.c (build_typename_type): Make sure TYPENAME_TYPE_FULLNAME 72452284Sobrien doesn't get obliterated. 72552284Sobrien (make_typename_type): Handle template classes correctly. 72652284Sobrien 72752284Sobrien * cp-tree.h (TREE_NONLOCAL_FLAG): Remove. 72852284Sobrien (storetags): Declare. 72952284Sobrien * class.c (finish_struct): Don't use TREE_NONLOCAL_FLAG. 73052284Sobrien (pushclass): Likewise. Use storetags to install tag declarations, 73152284Sobrien not pushtag. 73252284Sobrien (invalidate_class_lookup_cache): Don't use TREE_NONLOCAL_FLAG. 73352284Sobrien * decl.c (storetags): Make it global. 73452284Sobrien (push_class_binding): Set INHERITED_VALUE_BINDING_P for an 73552284Sobrien implicit typename declaration. 73652284Sobrien (pushtag): Tidy. Don't use TREE_NONLOCAL_FLAG. 73752284Sobrien * method.c (hack_identifier): Likewise. 73852284Sobrien * search.c (lookup_member): Likewise. 73952284Sobrien 74052284Sobrien * decl.c (warn_about_implicit_typename_lookup): New function. 74152284Sobrien (lookup_name_real): Use it. Rework handling of implicit typename 74252284Sobrien extension. 74352284Sobrien 74452284Sobrien1999-04-15 Mark Mitchell <mark@codesourcery.com> 74552284Sobrien 74652284Sobrien * cp-tree.h (lookup_nested_field): Remove. 74752284Sobrien * class.c (push_nested_class): Handle UNION_TYPEs. 74852284Sobrien (pop_nested_class): Likewise. 74952284Sobrien * decl.c (lookup_name_real): Don't call lookup_nested_field. 75052284Sobrien (start_decl): Use push_nested_class, not just pushclass. 75152284Sobrien (cp_finish_decl): Use pop_nested_class, not just popclass. 75252284Sobrien * search.c (lookup_nested_field): Remove. 75352284Sobrien 75452284Sobrien * cp-tree.h (lang_type): Add documentation. 75552284Sobrien * decl2.c (handle_class_head): Create template declarations here, 75652284Sobrien as appropriate. 75752284Sobrien * parse.y (class_head): Return whether or not we entered a new 75852284Sobrien scope, as well as the type named. 75952284Sobrien (named_class_head): Likewise. 76052284Sobrien (named_complex_class_head_sans_basetype): Likewise. 76152284Sobrien (structsp): Adjust accordingly. Pop scope when required. 76252284Sobrien * parse.c: Regenerated. 76352284Sobrien * pt.c (check_default_tmpl_args): Robustify. 76452284Sobrien (redeclare_class_template): Likewise. 76552284Sobrien (instantiate_class_template): An instantiation of an 76652284Sobrien anonymous union is itself an anonymous union. 76752284Sobrien * semantics.c (begin_class_definition): Don't create template 76852284Sobrien declarations here. 76952284Sobrien 77052284Sobrien1999-04-15 Jason Merrill <jason@yorick.cygnus.com> 77152284Sobrien 77252284Sobrien * parse.y (after_type_declarator_intern): New nonterminal. 77352284Sobrien (after_type_declarator): Use it. 77452284Sobrien (direct_after_type_declarator): Likewise. Move above 77552284Sobrien nonnested_type to fix reduce/reduce conflict resolution. 77652284Sobrien (declmods): Reducing from just 'attributes' has EMPTY precedence. 77752284Sobrien * Makefile.in (CONFLICTS): Update. 77852284Sobrien 77952284Sobrien * decl.c (define_label): Downgrade error for jumping over a 78052284Sobrien non-POD decl to pedwarn. 78152284Sobrien 78252284Sobrien1999-04-14 Mark Mitchell <mark@codesourcery.com> 78352284Sobrien 78452284Sobrien * cp-tree.h (popclass): Change declaration. 78552284Sobrien (pop_nested_class): Likewise. 78652284Sobrien (poplevel_class): Remove declaration. 78752284Sobrien * call.c (convert_default_argument): Pass no arguments to 78852284Sobrien popclass. 78952284Sobrien * class.c (finish_struct_1): Likewise. 79052284Sobrien (finish_struct): Likewise. 79152284Sobrien (popclass): Remove argument. Simplify code accordingly. 79252284Sobrien (pop_nested_class): Likewise. 79352284Sobrien * decl.c (poplevel_class): Declare it here, and make it static. 79452284Sobrien (poplevel): Handle class scopes. 79552284Sobrien (poplevel_class): Don't take an rgument. Simplify. 79652284Sobrien (pop_everything): Pass no arguments to pop_nested_class. 79752284Sobrien (cp_finish_decl): Pass no arguments to popclass. 79852284Sobrien (grokdeclarator): Pass no arguments to pop_nested_class. 79952284Sobrien (finish_function): Likewise. 80052284Sobrien * decl2.c (grokfield): Likewise. 80152284Sobrien (pop_scope): Pass no arguments to popclass. 80252284Sobrien * lex.c (do_pending_defargs): Pass no arguments to pop_nested_class. 80352284Sobrien * pt.c (instantiate_class_template): Move call to pushclass, and 80452284Sobrien document. Pass no arguments to popclass. 80552284Sobrien (regenerate_decl_from_template): Likewise. 80652284Sobrien 80752284Sobrien1999-04-14 Jason Merrill <jason@yorick.cygnus.com> 80852284Sobrien 80952284Sobrien * typeck.c (build_unary_op): Handle taking the address of a unique 81052284Sobrien bound non-static member function. 81152284Sobrien 81252284Sobrien1999-04-13 Martin von Loewis <loewis@informatik.hu-berlin.de> 81352284Sobrien 81452284Sobrien * lang-options.h (-Wdeprecated): New flag. 81552284Sobrien * decl2.c (warn_deprecated): New flag. 81652284Sobrien (lang_decode_option): Deprecated this-is-variable, 81752284Sobrien external-templates, alt-external-templates. 81852284Sobrien Support -Wdeprecated. 81952284Sobrien * errfn.c (cp_deprecated): New function. 82052284Sobrien 82152284Sobrien1999-04-13 Jason Merrill <jason@yorick.cygnus.com> 82252284Sobrien 82352284Sobrien * decl2.c (setup_initp): Compare DECL_ASSEMBLER_NAME instead 82452284Sobrien of the decls themselves. 82552284Sobrien 82652284Sobrien * pt.c (tsubst_function_type): Copy attributes over. 82752284Sobrien 82852284Sobrien * tree.c (cp_valid_lang_attribute): New fn. Handle init_priority 82952284Sobrien and com_interface. 83052284Sobrien * cp-tree.h: Add prototype. 83152284Sobrien * decl.c (init_decl_processing): Set valid_lang_attribute. 83252284Sobrien 83352284Sobrien1999-04-13 Mark Mitchell <mark@codesourcery.com> 83452284Sobrien 83552284Sobrien * class.c (finish_struct_1): Look at the const-ness of the field's 83652284Sobrien type, not the TREE_READONLY-ness of the declaration. 83752284Sobrien * method.c (synthesize_method): Likewise. 83852284Sobrien * pt.c (tsubst_decl): Call c_apply_type_quals_to_decl when 83952284Sobrien creating new declarations. 84052284Sobrien 84152284Sobrien1999-04-13 Mike Stump <mrs@wrs.com> 84252284Sobrien 84352284Sobrien * decl2.c (import_export_decl): Because vtables always reference 84452284Sobrien virtual functions, even if they are inlined, don't allow 84552284Sobrien -fno-implement-inlines to not emit them, instead, emit them with 84652284Sobrien the vtable. 84752284Sobrien * decl.c (start_function): Likewise. 84852284Sobrien 84952284Sobrien1999-04-12 Jason Merrill <jason@yorick.cygnus.com> 85052284Sobrien 85152284Sobrien * cp-tree.h (struct lang_type): Add com_interface. 85252284Sobrien (CLASSTYPE_COM_INTERFACE): New macro. 85352284Sobrien * class.c (set_rtti_entry): COM interface classes have no RTTI 85452284Sobrien entries in their vtables; adjust. 85552284Sobrien (add_virtual_function, finish_base_struct, skip_rtti_stuff, 85652284Sobrien modify_one_vtable, fixup_vtable_deltas1, override_one_vtable, 85752284Sobrien finish_struct_1): Likewise. 85852284Sobrien * decl2.c (mark_vtable_entries): Likewise. 85952284Sobrien * rtti.c (build_headof, get_tinfo_fn_dynamic): Likewise. 86052284Sobrien * search.c (get_abstract_virtuals_1, get_abstract_virtuals, 86152284Sobrien expand_upcast_fixups): Likewise. 86252284Sobrien * tree.c (debug_binfo): Likewise. 86352284Sobrien 86452284Sobrien * cp-tree.h (COMPARE_NO_ATTRIBUTES): New macro. 86552284Sobrien * typeck.c (comptypes): If we get it, ignore attributes. 86652284Sobrien * class.c (instantiate_type): Use BASELINK_P. Change complain 86752284Sobrien parameter to flags; 2 means ignore attributes. 86852284Sobrien * call.c (build_op_delete_call): Pass it. 86952284Sobrien 87052284Sobrien * decl.c (xref_tag): Only complain once about using a typedef-name 87152284Sobrien with 'struct'. Downgrade to pedwarn. 87252284Sobrien 87352284Sobrien * decl.c (grokdeclarator): Allow [] syntax for zero-length array. 87452284Sobrien 87552284Sobrien * parse.y (absdcl_intern): New nonterminal. 87652284Sobrien (absdcl, direct_abstract_declarator): Use it. 87752284Sobrien 87852284Sobrien * pt.c (lookup_template_class): Look through implict typename. 87952284Sobrien 88052284Sobrien1999-04-11 Mark Mitchell <mark@codesourcery.com> 88152284Sobrien 88252284Sobrien * friend.c (add_friend): Deal gracefully with error_mark_node. 88352284Sobrien * method.c (build_overload_value): Handle pointers-to-members as 88452284Sobrien template parameters. 88552284Sobrien 88652284Sobrien * decl.c (push_binding): Fix typo in comment. 88752284Sobrien 88852284Sobrien1999-04-10 Mark Mitchell <mark@codesourcery.com> 88952284Sobrien 89052284Sobrien * error.c (dump_type_real): If a typename is a template-id, put 89152284Sobrien out the template arguments. 89252284Sobrien (dump_expr): Handle TEMPLATE_ID_EXPR. 89352284Sobrien * pt.c (lookup_template_class): Now that full arguments are 89452284Sobrien available everywhere, remove code that tried to guess them. 89552284Sobrien 89652284Sobrien1999-04-09 Mark Mitchell <mark@codesourcery.com> 89752284Sobrien 89852284Sobrien * decl.c (make_typename_type): Complain if we don't find a type 89952284Sobrien when trying to make a typename type for a non-template type. 90052284Sobrien 90152284Sobrien1999-04-09 Jason Merrill <jason@yorick.cygnus.com> 90252284Sobrien 90352284Sobrien * decl.c (start_decl): Pass attributes to grokdeclarator. 90452284Sobrien (grokdeclarator): Handle attributes on constructor-syntax 90552284Sobrien initializers. 90652284Sobrien 90752284Sobrien1999-04-08 Mark Mitchell <mark@codesourcery.com> 90852284Sobrien 90952284Sobrien * error.c (dump_expr): Don't crash on INDIRECT_REFs whose operands 91052284Sobrien don't have types. 91152284Sobrien 91252284Sobrien * search.c (template_self_reference_p): Tweak. 91352284Sobrien 91452284Sobrien1999-04-07 Mark Mitchell <mark@codesourcery.com> 91552284Sobrien 91652284Sobrien * init.c (build_offset_ref): Don't build yet another weird data 91752284Sobrien structure to describe overloaded functions. 91852284Sobrien 91952284Sobrien1999-04-06 Mark Mitchell <mark@codesourcery.com> 92052284Sobrien 92152284Sobrien * cp-tree.h (BASELINK_P): New macro. 92252284Sobrien (SET_BASELINK_P): Likewise. 92352284Sobrien * init.c (build_member_call): Remove needless assignment in if 92452284Sobrien statement. 92552284Sobrien * search.c (lookup_field_r): Fix handling when we are looking 92652284Sobrien specifically for a type; these are not hidden by functions and 92752284Sobrien variables. 92852284Sobrien (lookup_member): Use SET_BASELINK_P. 92952284Sobrien * tree.c (is_overloaded_fn): Use BASELINK_P. 93052284Sobrien (really_overloaed_fn): Likewise. 93152284Sobrien (get_first_fn): Likewise. 93252284Sobrien 93352284Sobrien1999-04-05 Mark Mitchell <mark@codesourcery.com> 93452284Sobrien 93552284Sobrien * decl.c (lookup_name_current_level): Tweak, and improve 93652284Sobrien documentation. 93752284Sobrien 93852284Sobrien * class.c (maybe_fixup_vptrs): Remove declaration. 93952284Sobrien (build_class_init_list): Likewise. 94052284Sobrien * decl.c (pushdecl_class_level): Call check_template_shadow here 94152284Sobrien ... 94252284Sobrien (push_class_level_binding): ... not here. 94352284Sobrien * search.c (dfs_push_type_decls): Only avoid 94452284Sobrien template-self-reference TYPE_DECLs if they are from base classes. 94552284Sobrien 94652284Sobrien1999-04-04 Mark Mitchell <mark@codesourcery.com> 94752284Sobrien 94852284Sobrien * pt.c (check_template_shadow): Don't treat OVERLOADs as _DECL 94952284Sobrien nodes. Tidy. 95052284Sobrien 95152284Sobrien1999-04-03 Jason Merrill <jason@yorick.cygnus.com> 95252284Sobrien 95352284Sobrien * class.c (maybe_fixup_vptrs, build_class_init_list): Lose. 95452284Sobrien (finish_struct_1): Don't call build_class_init_list. 95552284Sobrien 95652284Sobrien1999-04-02 Mark Mitchell <mark@codesourcery.com> 95752284Sobrien 95852284Sobrien * tinfo.h (__class_type_info): Fix illegal declaration. 95952284Sobrien 96052284Sobrien * cp-tree.def (TEMPLATE_ID_EXPR): Update comment. 96152284Sobrien * cp-tree.h (INHERITED_VALUE_BINDING_P): New macro. 96252284Sobrien (IDENTIFIER_CLASS_VALUE): Improve documentation. 96352284Sobrien (is_properly_derived_from): Declare. 96452284Sobrien (invalidate_class_lookup_cache): Likewise. 96552284Sobrien (maybe_maybe_note_name_used_in_class): Likewise. 96652284Sobrien (note_name_declared_in_class): Likewise. 96752284Sobrien (push_using_decl): Remove duplicate declaration. 96852284Sobrien (id_in_current_class): Remove declaration. 96952284Sobrien (push_class_binding): Change prototype. 97052284Sobrien (clear_identitifer_class_values): Declare. 97152284Sobrien * call.c (is_properly_derived_from): Make it global. 97252284Sobrien (build_new_function_call): Be careful about updating candidates. 97352284Sobrien (build_new_method_call): Handle COMPONENT_REFs. Don't crash when 97452284Sobrien asked to make illegal calls. 97552284Sobrien * class.c: Include splay-tree.h. 97652284Sobrien (class_stack_node): Add names_used slot. 97752284Sobrien (check_member_decl_is_same_in_complete_scope): Remove. 97852284Sobrien (add_method): Fix comment. Push the declaration into class 97952284Sobrien scope. 98052284Sobrien (finish_struct_1): When popping the class, pop the bindings too. 98152284Sobrien Remove check for data member/function member conflict. 98252284Sobrien (finish_struct): Remove calls to 98352284Sobrien check_member_decl_is_same_in_complete_scope. Change calls to 98452284Sobrien popclass. 98552284Sobrien (pushclass): Clear names_used in the class stack entry. 98652284Sobrien Use invalidate_class_lookup_cache to remove cached entries, rather 98752284Sobrien than magic values with popclass. Clear IDENTIFIER_CLASS_VALUE 98852284Sobrien before entering a new class. Remove dead code. Don't mess with 98952284Sobrien current_function_decl when pushing declarations. 99052284Sobrien (invalidate_class_lookup_cache): New function, split out from ... 99152284Sobrien (popclass): Here. Clean up names_used on our way out. 99252284Sobrien (instantiate_type): Adjust. 99352284Sobrien (build_self_reference): Don't push the declaration here. 99452284Sobrien (maybe_note_name_used_in_class): New function. 99552284Sobrien (note_name_declared_in_class): Likewise. 99652284Sobrien * decl.c (add_binding): Change prototype. 99752284Sobrien (find_class_binding_level): New function. 99852284Sobrien (innermost_nonclass_level): Likewise. 99952284Sobrien (current_binding_level): Update documentation. 100052284Sobrien (inner_binding_level): Remove. Replace with current_binding_level 100152284Sobrien throughout. 100252284Sobrien (push_binding_level): Remove special handling of 100352284Sobrien class_binding_level. 100452284Sobrien (pop_binding_level): Likewise. Use find_class_binding_level. 100552284Sobrien (suspend_binding_level): Likewise. 100652284Sobrien (global_bindings_p): Use innermost_nonclass_level. 100752284Sobrien (toplevel_bindings_p): Likewise. 100852284Sobrien (namespace_bindings_p): Likewise. 100952284Sobrien (pseudo_global_level_p): Likewise. 101052284Sobrien (push_binding): Clear INHERITED_VALUE_BINDING_P. 101152284Sobrien (add_binding): Check for illegal multiple declarations. Return a 101252284Sobrien value indicating whether or not the new binding was legal. 101352284Sobrien (push_local_binding): Skip over class binding levels. Check 101452284Sobrien return value from add_binding. 101552284Sobrien (push_class_binding): Set INHERITED_VALUE_BINDING_P. Call 101652284Sobrien note_name_declared_in_class. 101752284Sobrien (pushlevel_class): Remove "fake out the rest of the compiler" 101852284Sobrien code. 101952284Sobrien (poplevel_class): Reset IDENTIFIER_CLASS_VALUEs. 102052284Sobrien (clear_identifier_class_values): New function. 102152284Sobrien (pop_from_top_level): Use it. 102252284Sobrien (pop_everything): Tweak. 102352284Sobrien (maybe_process_template_type_declaration): Don't push the 102452284Sobrien declaration for the template here. 102552284Sobrien (pushtag): Don't push tag declarations into class scope here. 102652284Sobrien (pushdecl): Apply DeMorgan's law for readability. 102752284Sobrien (pushdecl_class_level): Remove special-case code for 102852284Sobrien TYPE_BEING_DEFINED. Handle OVERLOADs and anonymous unions. 102952284Sobrien (push_class_level_bindng): Deal with inherited bindings. 103052284Sobrien (lookup_name_real): Remove special-case code for 103152284Sobrien TYPE_BEING_DEFINED, and some implicit typename magic. 103252284Sobrien (grokdeclarator): Handle COMPONENT_REF for a template function. 103352284Sobrien (build_enumerator): Don't call pushdecl_class_level here. 103452284Sobrien (id_in_current_class): Remove. 103552284Sobrien * decl2.c (grokfield): Don't call pushdecl_class_level or 103652284Sobrien check_template_shadow. 103752284Sobrien * errfn.c (cp_file_of): Don't declare. 103852284Sobrien (cp_line_of): Likewise. 103952284Sobrien * error.c (dump_decl): Handle an OVERLOAD. 104052284Sobrien (cp_file_of): Likewise. 104152284Sobrien (cp_line_of): Likewise. 104252284Sobrien * init.c (build_member_call): Handle a COMPONENT_REF. 104352284Sobrien * lex.c (do_identifier): Call maybe_note_name_used_in_class, not 104452284Sobrien pushdecl_class_level. 104552284Sobrien * method.c (hack_identifier): Build COMPONENT_REFs for references 104652284Sobrien to member templates as well as member functions. Remove dead 104752284Sobrien code. 104852284Sobrien * parse.y (left_curly): Remove. 104952284Sobrien (nonnested_type): Call maybe_note_name_used_in_class, not 105052284Sobrien pushdecl_class_level. 105152284Sobrien * parse.c: Regenerated. 105252284Sobrien (nested_name_specifier_1): Likewise. 105352284Sobrien * pt.c (check_explicit_specialization): Adjust, for robustness. 105452284Sobrien (check_template_shadow): Handle OVERLOADs. 105552284Sobrien (build_template_decl): Set DECL_CONSTRUCTOR_P on the 105652284Sobrien TEMPLATE_DECL, if appropriate. 105752284Sobrien * search.c (envelope_add_decl): Remove. 105852284Sobrien (dfs_pushdecls): Likewise. 105952284Sobrien (dfs_compress_decls): Likewise. 106052284Sobrien (dfs_push_decls): New function. 106152284Sobrien (dfs_push_type_decls): Likewise. 106252284Sobrien (setup_class_bindings): Likewise. 106352284Sobrien (template_self_reference_p): Likewise. 106452284Sobrien (lookup_field_r): Use it. 106552284Sobrien (looup_member): Remove old comment. Deal with ambiguity. 106652284Sobrien (push_class_decls): Use dfs_push_decls and dfs_push_type_decls, 106752284Sobrien and remove envelope processing. 106852284Sobrien * semantics.c (begin_class_definition): Let pushclass push 106952284Sobrien declarations for base classes. 107052284Sobrien (finish_member_declaration): Push declarations into class scope. 107152284Sobrien * typeck.c (build_component_ref): Just put an OVERLOAD into the 107252284Sobrien COMPONENT_REF, not a TREE_LIST of an OVERLOAD. 107352284Sobrien (build_x_function_call): Deal with OVERLOAD. Handle template-ids. 107452284Sobrien * Makefile.in (class.o): Depend on splay-tree.h. 107552284Sobrien 107652284SobrienWed Mar 31 11:30:43 1999 Nathan Sidwell <nathan@acm.org> 107752284Sobrien 107852284Sobrien * cvt.c (convert_pointer_to_real): Use same_type_p. 107952284Sobrien * typeck.c (comp_target_types): Use same_type_p. 108052284Sobrien 108152284Sobrien1999-03-31 Jason Merrill <jason@yorick.cygnus.com> 108252284Sobrien 108352284Sobrien * semantics.c (begin_inline_definitions, 108452284Sobrien finish_inline_definitions): Rename from finish_default_args and 108552284Sobrien begin_inline_definitions, respectively, to something that isn't a 108652284Sobrien total lie. :) 108752284Sobrien * parse.y (structsp): Adjust. 108852284Sobrien 108952284Sobrien * tree.c (hash_tree_cons): Remove obsolete via_* parms. 109052284Sobrien (list_hash_lookup): Likewise. 109152284Sobrien (hash_tree_chain): Adjust. 109252284Sobrien * pt.c (tsubst): Adjust. 109352284Sobrien (tsubst_arg_types): Use plain hash_tree_cons. 109452284Sobrien * cp-tree.h (hash_tree_cons_simple): Lose. 109552284Sobrien * parse.y (declmods, nonempty_cv_qualifiers): Use hash_tree_cons. 109652284Sobrien 109752284SobrienWed Mar 31 10:48:29 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 109852284Sobrien 109952284Sobrien * Makefile.in (hash.h): Generate using gperf language 'C', not 110052284Sobrien 'KR-C', so gperf uses the `const' keyword on strings. 110152284Sobrien 110252284Sobrien * gxx.gperf (resword): Const-ify a char*. 110352284Sobrien 110452284Sobrien1999-03-30 Jason Merrill <jason@yorick.cygnus.com> 110552284Sobrien 110652284Sobrien * cp-tree.h (IDENTIFIER_AS_DESC, IDENTIFIER_AS_LIST, 110752284Sobrien CLASSTYPE_BASELINK_VEC, CLASSTYPE_N_SUPERCLASSES, 110852284Sobrien CLASSTYPE_N_BASECLASSES, CLASSTYPE_MAX_DEPTH, 110952284Sobrien CLASSTYPE_BASE_INIT_LIST, CLASSTYPE_AS_LIST, CLASSTYPE_ID_AS_LIST, 111052284Sobrien CLASSTYPE_BINFO_AS_LIST): Remove cruft. 111152284Sobrien * class.c, lex.c, parse.y, ptree.c, search.c, semantics.c, 111252284Sobrien tree.c: Adjust. 111352284Sobrien 111452284Sobrien1999-03-29 Jason Merrill <jason@yorick.cygnus.com> 111552284Sobrien 111652284Sobrien * decl2.c (lang_decode_option): Remove -Wsign-promo from -Wall. 111752284Sobrien 111852284Sobrien1999-03-28 Jason Merrill <jason@yorick.cygnus.com> 111952284Sobrien 112052284Sobrien * pt.c (fn_type_unification): Ignore 'this' parm from conversion ops. 112152284Sobrien 112252284Sobrien1999-03-27 Mark Mitchell <mark@codesourcery.com> 112352284Sobrien 112452284Sobrien * cp-tree.h (add_friend): Declare. 112552284Sobrien (add_friends): Likewise. 112652284Sobrien * friend.c (add_friend): Make it global. Don't add to 112752284Sobrien DECL_BEFRIENDING_CLASSES if the befriending class is a template. 112852284Sobrien (add_friends): Make it global. 112952284Sobrien (make_friend_class): Don't add to DECL_BEFRIENDING_CLASSES if the 113052284Sobrien befriending class is a template. 113152284Sobrien * parse.y (component_decl_1): Fix typo in comment. 113252284Sobrien * parse.c: Regenerated. 113352284Sobrien * pt.c (instantiate_class_template): Use add_friend and 113452284Sobrien add_friends rather that duplicating some of their functionality 113552284Sobrien here. 113652284Sobrien 113752284Sobrien1999-03-27 Jason Merrill <jason@yorick.cygnus.com> 113852284Sobrien 113952284Sobrien * call.c (build_field_call): Unify 'this' and non-'this' cases. 114052284Sobrien 114152284Sobrien * typeck.c (build_indirect_ref): Check for 'this' sooner. 114252284Sobrien 114352284SobrienFri Mar 26 10:20:34 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 114452284Sobrien 114552284Sobrien * call.c (op_error): Const-ify a char*. 114652284Sobrien (add_candidate, source_type, add_warning): Add static prototype. 114752284Sobrien (print_z_candidates): Const-ify a char*. 114852284Sobrien 114952284Sobrien * class.c (resolve_address_of_overloaded_function, 115052284Sobrien fixed_type_or_null, build_vtable_entry_ref): Add static prototype. 115152284Sobrien (get_vtable_name, finish_struct_1): Const-ify a char*. 115252284Sobrien 115352284Sobrien * cvt.c (convert_to_reference): Likewise. 115452284Sobrien 115552284Sobrien * decl.c (redeclaration_error_message, record_builtin_type, 115652284Sobrien record_unknown_type, member_function_or_else, bad_specifiers): 115752284Sobrien Likewise. 115852284Sobrien (find_binding, select_decl, unqualified_namespace_lookup, 115952284Sobrien lookup_flags, qualify_lookup, record_builtin_java_type, tag_name): 116052284Sobrien Add static prototype. 116152284Sobrien (warn_extern_redeclared_static, duplicate_decls, pushdecl, 116252284Sobrien implicitly_declare, record_builtin_java_type, define_function, 116352284Sobrien grok_op_properties, tag_name): Const-ify a char*. 116452284Sobrien 116552284Sobrien * cp-tree.h (FORMAT_VBASE_NAME): Allow parameter `BUF' to be const. 116652284Sobrien (define_function, finish_builtin_type): Const-ify a char*. 116752284Sobrien (cp_error, cp_error_at, cp_warning, cp_warning_at, cp_pedwarn, 116852284Sobrien cp_pedwarn_at, cp_compiler_error, cp_sprintf): Add prototype args. 116952284Sobrien (file_name_nondirectory): Const-ify a char*. 117052284Sobrien (init_filename_times): Don't prototype. 117152284Sobrien (compiler_error): Prototype. 117252284Sobrien (yyerror, init_repo): Const-ify a char*. 117352284Sobrien (build_srcloc): Don't prototype. 117452284Sobrien (build_x_indirect_ref, build_indirect_ref, build_component_addr): 117552284Sobrien Const-ify a char*. 117652284Sobrien (warn_for_assignment): Don't prototype. 117752284Sobrien (convert_for_initialization, readonly_error, check_for_new_type, 117852284Sobrien GNU_xref_begin, GNU_xref_file, GNU_xref_ref, GNU_xref_call): 117952284Sobrien Const-ify a char*. 118052284Sobrien 118152284Sobrien * decl2.c (acceptable_java_type, output_vtable_inherit, 118252284Sobrien setup_initp, start_objects, finish_objects, do_dtors, do_ctors, 118352284Sobrien merge_functions, decl_namespace, validate_nonmember_using_decl, 118452284Sobrien do_nonmember_using_decl): Add static prototype. 118552284Sobrien (lang_f_options): Const-ify a char*. 118652284Sobrien (finish_builtin_type): Likewise. 118752284Sobrien (add_function, arg_assoc_namespace, arg_assoc_class): Add static 118852284Sobrien prototype. 118952284Sobrien 119052284Sobrien * errfn.c: Include cp-tree.h. 119152284Sobrien (cp_thing): Add static prototype. 119252284Sobrien (compiler_error): Don't protoptype. 119352284Sobrien (cp_compiler_error): Cast `compiler_error' to `errorfn' before 119452284Sobrien passing it to `cp_thing'. 119552284Sobrien 119652284Sobrien * error.c (interesting_scope_p): Add static prototype. 119752284Sobrien 119852284Sobrien * except.c (build_eh_type_type, build_eh_type_type_ref): Const-ify 119952284Sobrien a char*. 120052284Sobrien 120152284Sobrien * init.c (compiler_error): Don't prototype. 120252284Sobrien (member_init_ok_or_else): Const-ify a char*. 120352284Sobrien (build_java_class_ref): Add static prototype. 120452284Sobrien 120552284Sobrien * lex.c (compiler_error): Don't prototype. 120652284Sobrien (get_time_identifier, interface_strcmp, extend_token_buffer, 120752284Sobrien handle_cp_pragma): Const-ify a char*. 120852284Sobrien (is_global, init_filename_times): Add static prototype. 120952284Sobrien (file_name_nondirectory, cplus_tree_code_name): Const-ify a char*. 121052284Sobrien (compiler_error): Change from fixed args to variable args. 121152284Sobrien (yyerror): Const-ify a char*. 121252284Sobrien 121352284Sobrien * parse.y (cond_stmt_keyword): Const-ify a char*. 121452284Sobrien (parse_decl): Add static prototype. 121552284Sobrien 121652284Sobrien * pt.c (template_args_equal, print_template_context): Likewise. 121752284Sobrien (print_candidates, check_default_tmpl_args): Const-ify a char*. 121852284Sobrien (instantiate_class_template): Likewise. 121952284Sobrien 122052284Sobrien * repo.c (get_base_filename, open_repo_file, init_repo): Likewise. 122152284Sobrien 122252284Sobrien * rtti.c (call_void_fn, expand_generic_desc, expand_si_desc, 122352284Sobrien expand_class_desc, expand_ptr_desc, expand_attr_desc): Likewise. 122452284Sobrien 122552284Sobrien * search.c (lookup_field_info, lookup_member): Likewise. 122652284Sobrien (lookup_member): Cast the first argument of `bzero' to a PTR. 122752284Sobrien 122852284Sobrien * sig.c (compiler_error): Don't prototype. 122952284Sobrien (build_signature_pointer_or_reference_nam): Const-ify a char*. 123052284Sobrien (get_sigtable_name, build_member_function_pointer): Likewise. 123152284Sobrien 123252284Sobrien * tree.c (compiler_error): Don't prototype. 123352284Sobrien (no_linkage_helper, build_srcloc): Add static prototype. 123452284Sobrien (build_vbase_pointer_fields): Const-ify a char*. 123552284Sobrien (__eprintf): Don't unnecessarily handle `const' when !__STDC__. 123652284Sobrien 123752284Sobrien * typeck.c (compiler_error): Don't prototype. 123852284Sobrien (convert_for_assignment): Const-ify a char*. 123952284Sobrien (comp_cv_target_types): Add static prototype. 124052284Sobrien (build_x_indirect_ref, build_indirect_ref, convert_arguments, 124152284Sobrien build_component_addr, build_unary_op, convert_for_initialization): 124252284Sobrien Const-ify a char*. 124352284Sobrien 124452284Sobrien * typeck2.c (ack): Add static prototype and change from fixed args 124552284Sobrien to variable args. 124652284Sobrien (readonly_error, check_for_new_type): Const-ify a char*. 124752284Sobrien 124852284Sobrien * xref.c (_XREF_FILE, find_file, filename, fctname, declname, 124952284Sobrien fixname, open_xref_file, classname, GNU_xref_begin): Likewise. 125052284Sobrien (GNU_xref_file): Likewise. Also use `xmalloc' instead of `malloc'. 125152284Sobrien (GNU_xref_end_scope, GNU_xref_ref, GNU_xref_decl, GNU_xref_call, 125252284Sobrien gen_assign, GNU_xref_member): Const-ify a char*. 125352284Sobrien 125452284Sobrien1999-03-25 Martin von L�wis <loewis@informatik.hu-berlin.de> 125552284Sobrien 125652284Sobrien * gxxint.texi: Remove old discussion on copying virtual bases. 125752284Sobrien 125852284Sobrien1999-03-25 Zack Weinberg <zack@rabi.columbia.edu> 125952284Sobrien 126052284Sobrien * Make-lang.in: Remove all references to g++.o/g++.c. 126152284Sobrien Link g++ from gcc.o. 126252284Sobrien 126352284Sobrien1999-03-25 Jason Merrill <jason@yorick.cygnus.com> 126452284Sobrien 126552284Sobrien * decl2.c (comdat_linkage): Treat vtables like functions. 126652284Sobrien 126752284Sobrien1999-03-25 Mark Mitchell <mark@codesourcery.com> 126852284Sobrien 126952284Sobrien * pt.c (tsubst_decl): tsubst into DECL_BEFRIENDING_CLASSES. 127052284Sobrien 127152284Sobrien1999-03-25 Nathan Sidwell <nathan@acm.org> 127252284Sobrien 127352284Sobrien * decl.c (init_decl_processing): Add `signed' type as a synonym 127452284Sobrien for `int'. 127552284Sobrien 127652284Sobrien1999-03-25 Jason Merrill <jason@yorick.cygnus.com> 127752284Sobrien 127852284Sobrien * typeck.c (common_type): Handle cv-qual unification for pointers 127952284Sobrien to members. 128052284Sobrien 128152284Sobrien * decl.c (unqualified_namespace_lookup): Return error_mark_node 128252284Sobrien on error. 128352284Sobrien (lookup_name_real): Set LOOKUP_COMPLAIN when *not* parsing. 128452284Sobrien * lex.c (do_identifier): If we got error_mark_node, call 128552284Sobrien lookup_name again. 128652284Sobrien 128752284Sobrien1999-03-24 Martin von L�wis <loewis@informatik.hu-berlin.de> 128852284Sobrien 128952284Sobrien * class.c (finish_struct_1): Always reset TYPE_FIELDS for empty 129052284Sobrien classes. 129152284Sobrien 129252284Sobrien1999-03-24 Jason Merrill <jason@yorick.cygnus.com> 129352284Sobrien 129452284Sobrien * decl.c (lookup_name_real): Do nested field lookup regardless of 129552284Sobrien TYPE_BEING_DEFINED. 129652284Sobrien 129752284Sobrien1999-03-24 Mark Mitchell <mark@codesourcery.com> 129852284Sobrien 129952284Sobrien * cp-tree.h (lang_type): Remove has_assignment and 130052284Sobrien has_real_assignment. Add befriending_classes. 130152284Sobrien (TYPE_HAS_ASSIGNMENT): Remove. 130252284Sobrien (TYPE_HAS_REAL_ASSIGNMENT): Likewise. 130352284Sobrien (CLASSTYPE_BEFRIENDING_CLASSES): New macro. 130452284Sobrien (lang_decl): Document. 130552284Sobrien (DECL_BEFRIENDING_CLASSES): New macro. 130652284Sobrien (FRIEND_NAME): Move declaration to more obvious location. 130752284Sobrien (FRIEND_DECLS): Likewise. 130852284Sobrien * class.c (finish_struct_1): Don't use TYPE_HAS_REAL_ASSIGNMENT. 130952284Sobrien * decl.c (duplicate_decls): Copy DECL_BEFRIENDING_CLASSES. 131052284Sobrien (fixup_anonymous_union): Don't use TYPE_HAS_ASSIGNMENT. 131152284Sobrien (grok_op_properties): Likewise. 131252284Sobrien * friend.c (is_friend): Use FRIEND_NAME and FRIEND_DECLS. 131352284Sobrien (add_friend): Likewise. Don't do weird things with assignment 131452284Sobrien operators. Update DECL_BEFRIENDING_CLASSES. 131552284Sobrien (add_friends): Don't do weird things with assignment operators. 131652284Sobrien (make_friend_class): Likewise. Update 131752284Sobrien CLASSTYPE_BEFRIENDING_CLASSES. 131852284Sobrien * pt.c (instantiate_class_template): Don't set 131952284Sobrien TYPE_HAS_ASSIGNMENT. 132052284Sobrien (tsubst_copy): Substitute the TREE_TYPE for more unary 132152284Sobrien expressions. 132252284Sobrien * ptree.c (print_lang_type): Don't look at TYPE_HAS_ASSIGNMENT. 132352284Sobrien * search.c (protected_accessible_p): New function. 132452284Sobrien (friend_accessible_p): Likewise. 132552284Sobrien (accessible_p): Use them. 132652284Sobrien 132752284Sobrien1999-03-23 Mark Mitchell <mark@codesourcery.com> 132852284Sobrien 132952284Sobrien * pt.c (convert_nontype_argument): Don't create things that aren't 133052284Sobrien PTRMEM_CSTs when applying a qualification conversion to a 133152284Sobrien PTRMEM_CST. 133252284Sobrien 133352284Sobrien1999-03-23 Mark Mitchell <mark@codesourcery.com> 133452284Sobrien 133552284Sobrien * Makefile.in (OBJS): Don't mention hash.o. 133652284Sobrien (OBJDEPS): Likewise. 133752284Sobrien 133852284Sobrien1999-03-23 Jason Merrill <jason@yorick.cygnus.com> 133952284Sobrien 134052284Sobrien * decl2.c (finish_file): Set at_eof to 2 after expanding ctors. 134152284Sobrien * decl.c (expand_static_init): Make sure we don't add any after 134252284Sobrien then. 134352284Sobrien 134452284Sobrien * decl.c (cp_finish_decl): Move intelligence about handling 134552284Sobrien DECL_COMDAT for variables from here... 134652284Sobrien * decl2.c (comdat_linkage): ...to here. 134752284Sobrien (maybe_make_one_only): Tweak. 134852284Sobrien (import_export_decl): Call comdat_linkage for variables, too. 134952284Sobrien (finish_file): Handle template statics properly. 135052284Sobrien 135152284Sobrien1999-03-22 Mark Mitchell <mark@codesourcery.com> 135252284Sobrien 135352284Sobrien * cp-tree.h (TYPE_PTRMEMFUNC_P): Use TYPE_PTRMEMFUNC_FLAG. 135452284Sobrien Document internals of pointer-to-member-functions. 135552284Sobrien (DELTA2_FROM_PTRMEMFUNC): Make it call delta2_from_ptrmemfunc. 135652284Sobrien (PFN_FROM_PTRMEMFUNC): Likewise. 135752284Sobrien (build_type_conversion): Remove unused parameter. 135852284Sobrien (build_ptrmemfunc1): Declare. 135952284Sobrien (expand_ptrmemfunc_cst): New function. 136052284Sobrien (delta2_from_ptrmemfunc): Likewise. 136152284Sobrien (pfn_from_ptrmemfunc): Likewise. 136252284Sobrien * cvt.c (cp_convert_to_pointer): Remove unused parameter to 136352284Sobrien build_type_conversion. Use TYPE_PTRMEM_P for readability. 136452284Sobrien (convert_to_reference): Remove unused parameter to 136552284Sobrien build_type_conversion. 136652284Sobrien (ocp_convert): Likewise. 136752284Sobrien (build_user_type_conversion): Likewise. 136852284Sobrien * error.c (dump_expr): Handle NULL pointer-to-member functions. 136952284Sobrien * expr.c (cplus_expand_expr): Handle PTRMEM_CSTs for functions. 137052284Sobrien * method.c (build_overload_value): Don't go splitting CONSTRUCTORs 137152284Sobrien open when handling pointer-to-member functions. 137252284Sobrien * pt.c (convert_nontype_argument): Clean up error messages. Be 137352284Sobrien more stringent with pointers-to-members. 137452284Sobrien * typeck.c (build_ptrmemfunc1): Don't declare. Make it global. 137552284Sobrien (build_unary_op): Tidy ever-so-slightly. 137652284Sobrien (build_conditional_expr): Remove extra parameter to 137752284Sobrien build_type_conversion. 137852284Sobrien (build_ptrmemfunc): Build PTRMEM_CSTs if we know what function 137952284Sobrien we're using. 138052284Sobrien (expand_ptrmemfunc_cst): Define. 138152284Sobrien (delta2_from_ptrmemfunc): Likewise. 138252284Sobrien (pfn_from_ptrmemfunc): Likewise. 138352284Sobrien 138452284Sobrien1999-03-19 Mark Mitchell <mark@codesourcery.com> 138552284Sobrien 138652284Sobrien * init.c (build_member_call): Handle template-id expressions 138752284Sobrien correctly. 138852284Sobrien * typeck.c (build_x_function_call): Likewise. 138952284Sobrien 139052284Sobrien1999-03-19 Chip Salzenberg <chip@perlsupport.com> 139152284Sobrien 139252284Sobrien * friend.c (make_friend_class): Avoid core dump when 139352284Sobrien not-yet-defined friend type lacks TYPE_LANG_SPECIFIC(). 139452284Sobrien 139552284Sobrien1999-03-18 Jason Merrill <jason@yorick.cygnus.com> 139652284Sobrien 139752284Sobrien * decl.c (start_function): Suppress normal linkage heuristics 139852284Sobrien for #pragma interface under MULTIPLE_SYMBOL_SPACES. 139952284Sobrien 140052284Sobrien1999-03-19 Alexandre Oliva <oliva@dcc.unicamp.br> 140152284Sobrien 140252284Sobrien * Make-lang.in: ($(INTL_TARGETS)): Depend on cp/parse.c. 140352284Sobrien ($(srcdir)/cp/parse.c): Moved from ../Makefile.in. 140452284Sobrien 140552284Sobrien1999-03-17 Martin von L�wis <loewis@informatik.hu-berlin.de> 140652284Sobrien 140752284Sobrien * parse.y (named_complex_class_head_sans_basetype): 140852284Sobrien Do not push a scope for error_mark_node. 140952284Sobrien (maybe_base_class_list): Likewise. 141052284Sobrien 141152284Sobrien * decl.c (start_decl): Check for error_mark_node as a type. 141252284Sobrien Detected by g++.brendan/array-refs.C. 141352284Sobrien (start_decl_1): Likewise. Detected by g++.bugs/900322_01.C. 141452284Sobrien (maybe_build_cleanup_1): Likewise. Detected by 141552284Sobrien g++.jason/incomplete1.C. 141652284Sobrien 141752284Sobrien * tree.c (build_dummy_object): Use void_zero_node instead of the 141852284Sobrien error_mark_node. 141952284Sobrien (is_dummy_object): Check for such a node. 142052284Sobrien Detected by g++.bob/inherit1.C 142152284Sobrien 142252284Sobrien1999-03-16 Jason Merrill <jason@yorick.cygnus.com> 142352284Sobrien 142452284Sobrien * method.c (old_backref_index): Split out... 142552284Sobrien (flush_repeats): From here. Rename back from try_old_backref. 142652284Sobrien (build_mangled_name): Put back some old-style repeat handling. 142752284Sobrien 142852284SobrienMon Mar 15 21:57:16 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 142952284Sobrien 143052284Sobrien * lex.c: Don't include setjmp.h. 143152284Sobrien (parse_float): New static function. 143252284Sobrien (pf_args): New struct. 143352284Sobrien (real_yylex): Use them in call to `do_float_handler'. 143452284Sobrien 143552284Sobrien1999-03-15 Mark Mitchell <mark@markmitchell.com> 143652284Sobrien 143752284Sobrien * decl.c (xref_basetypes): Set CLASSTYPE_VBASECLASSES here. 143852284Sobrien * tree.c (layout_basetypes): Not here. 143952284Sobrien * search.c (dfs_search): Remove; no longer used. 144052284Sobrien 144152284Sobrien1999-03-12 Mark Mitchell <mark@markmitchell.com> 144252284Sobrien 144352284Sobrien * decl2.c (validate_nonmember_using_decl): Issue sensible 144452284Sobrien error-messages on bogus qualifiers. 144552284Sobrien 144652284Sobrien1999-03-14 Jason Merrill <jason@yorick.cygnus.com> 144752284Sobrien 144852284Sobrien * call.c (add_function_candidate): Fix uninitialized variable. 144952284Sobrien 145052284Sobrien * Makefile.in (search.o): Add dependency on varray.h. 145152284Sobrien 145252284Sobrien1999-03-13 Jason Merrill <jason@yorick.cygnus.com> 145352284Sobrien 145452284Sobrien * decl.c (duplicate_decls): Use same_type_p. 145552284Sobrien * method.c (try_old_backref): Renamed from flush_repeats. Use 145652284Sobrien same_type_p. Don't try to handle repeats. Return success. 145752284Sobrien (is_back_referenceable_type): Return 0 if TYPE_FOR_JAVA. Support 145852284Sobrien calls from old-style code, too. 145952284Sobrien (check_ktype): Use same_type_p. 146052284Sobrien (check_btype): Use same_type_p. Don't pull out TYPE_MAIN_VARIANT. 146152284Sobrien (build_qualified_name): Simplify logic. 146252284Sobrien (process_overload_item): Strip typedefs and quals at the top. 146352284Sobrien (build_mangled_name_for_type_with_Gcode): Remove call to 146452284Sobrien type_canonical_variant. 146552284Sobrien (build_mangled_name): Likewise. Remove support for old-style 146652284Sobrien repeats, which have been disabled since 2.7.2. Don't mess with 146752284Sobrien TREE_USED. 146852284Sobrien (build_decl_overload_real): Don't mess with TREE_USED. 146952284Sobrien 147052284Sobrien1999-03-13 Nathan Sidwell <nathan@acm.org> 147152284Sobrien 147252284Sobrien * error.c (cp_printers): Add 'F' escape character. 147352284Sobrien (dump_type_real): Remove TREE_LIST (fnargs) printing. 147452284Sobrien Functionality moved to dump_parameters. 147552284Sobrien (dump_type_suffix): Use dump_parameters and dump_exception_spec. 147652284Sobrien (dump_function_decl): Extend meaning of V parameter. Use 147752284Sobrien dump_parameters and dump_exception_spec. 147852284Sobrien (dump_parameters): New static function. 147952284Sobrien (dump_exception_spec): New static function. 148052284Sobrien (fndecl_as_string): Change argument semantics. Use 148152284Sobrien dump_function_decl directly. 148252284Sobrien 148352284Sobrien * sig.c (build_signature_table_constructor): Use cp_error. 148452284Sobrien 148552284Sobrien1999-03-13 Martin von L�wis <loewis@informatik.hu-berlin.de> 148652284Sobrien 148752284Sobrien * semantics.c (finish_switch_cond): Handle error cases gracefully. 148852284Sobrien Detected by g++.law/enum5.C. 148952284Sobrien 149052284Sobrien * typeck.c (build_modify_expr): Check for errors after resolving 149152284Sobrien offsets. Detected by g++.brendan/static1.C. 149252284Sobrien 149352284Sobrien * decl.c (complete_array_type): Ignore initial_value if it is an 149452284Sobrien error. Detected by g++.benjamin/17930.C. 149552284Sobrien 149652284Sobrien * typeck2.c (process_init_constructor): Return error if one argument 149752284Sobrien is in error. Detected by g++.benjamin/13478.C. 149852284Sobrien 149952284Sobrien1999-03-12 Martin von L�wis <loewis@informatik.hu-berlin.de> 150052284Sobrien 150152284Sobrien * decl.c (select_decl): Allow class templates when we need types. 150252284Sobrien * decl2.c (ambiguous_decl): Likewise. 150352284Sobrien 150452284Sobrien1999-03-12 Mark Mitchell <mark@markmitchell.com> 150552284Sobrien 150652284Sobrien * lex.c (do_identifier): Correct call to enforce_access. 150752284Sobrien * search.c (accessible_p): Tweak comment. 150852284Sobrien 150952284Sobrien1999-03-10 Mark Mitchell <mark@markmitchell.com> 151052284Sobrien 151152284Sobrien * semantics.c (begin_class_definition): Call build_self_reference. 151252284Sobrien (finish_member_declaration): Set DECL_CONTEXT for TYPE_DECLs. 151352284Sobrien 151452284Sobrien * search.c (assert_canonical_unmarked): Fix typo in prototype. 151552284Sobrien 151652284Sobrien * search.c (dfs_canonical_queue): New function. 151752284Sobrien (dfs_assert_unmarked_p): Likewise. 151852284Sobrien (assert_canonical_unmarked): Likewise. 151952284Sobrien (access_in_type): Use it. 152052284Sobrien (accessible_p): Likewise. Walk the whole tree when umarking. 152152284Sobrien 152252284Sobrien * sig.c (build_signature_table_constructor): Use accessible_p 152352284Sobrien instead of compute_access. 152452284Sobrien 152552284Sobrien1999-03-09 Jason Merrill <jason@yorick.cygnus.com> 152652284Sobrien 152752284Sobrien * call.c (add_builtin_candidates): Handle overloaded conversion ops. 152852284Sobrien 152952284Sobrien1999-03-09 Mark Mitchell <mark@markmitchell.com> 153052284Sobrien 153152284Sobrien * cp-tree.h (flag_access_control): Declare. 153252284Sobrien (TREE_VIA_PPUBLIC): Document. 153352284Sobrien (DECL_NONSTATIC_MEMBER_P): New macro. 153452284Sobrien (enforce_access): Return an indication of whether or not access 153552284Sobrien was permitted. 153652284Sobrien (build_self_reference): Change prototype. 153752284Sobrien (compute_access): Replace with ... 153852284Sobrien (accessible_p): New function. 153952284Sobrien (dfs_walk): Change prototype. 154052284Sobrien (dfs_unmark): Likewise. 154152284Sobrien (markedp): Likewise. 154252284Sobrien * call.c (enforce_access): Use accessible_p. 154352284Sobrien * class.c (build_self_reference): Insert the declaration into the 154452284Sobrien list of members for this type, and make it public. 154552284Sobrien * decl.c (xref_basetypes): Avoid ill-timed recursion. 154652284Sobrien * init.c (build_offset_ref): Use lookup_member, not three separate 154752284Sobrien name-lookups. Call enforce_access rather than checking for 154852284Sobrien illegal accesses here. 154952284Sobrien (resolve_offset_ref): Likewise. 155052284Sobrien * lex.c (do_identifier): Likewise. 155152284Sobrien * method.c (hack_identifier): Likewise. 155252284Sobrien * parse.y (self_reference): Remove. 155352284Sobrien (opt_component_decl_list): Don't use it. 155452284Sobrien * parse.c: Regenerated. 155552284Sobrien * pt.c (print_candidates): Generalize to handle lists of 155652284Sobrien overloaded functions. 155752284Sobrien (instantiate_class_template): Don't rely on TREE_VIA_PRIVATE; it's 155852284Sobrien not set. 155952284Sobrien (get_template_base): Use new calling convention for dfs_walk. 156052284Sobrien * search.c: Include varray.h. Add prototypes. 156152284Sobrien (dfs_walk): Accept a data pointer to pass to the work functions. 156252284Sobrien All callers changed. All work functions changed. 156352284Sobrien (breadth_first_search): Rename to bfs_walk, and make consistent 156452284Sobrien with dfs_walk. 156552284Sobrien (dfs_walk_real): New function. 156652284Sobrien (canonical_binfo): New function. 156752284Sobrien (context_for_name_lookup): Likewise. 156852284Sobrien (shared_marked_p): Likewise. 156952284Sobrien (shared_unmarked_p): Likewise. 157052284Sobrien (lokup_field_queue_p): Likewise. 157152284Sobrien (lookup_field_r): Generalize to handle both functions and fields. 157252284Sobrien (lookup_field): Just call lookup_member. 157352284Sobrien (lookup_fnfields): Likewise. 157452284Sobrien (lookup_member): Move body of lookup_field here and generalize. 157552284Sobrien (dfs_accessible_queue_p): Likewise. 157652284Sobrien (dfs_accessible_p): Likewise. 157752284Sobrien (dfs_access_in_type): Likewise. 157852284Sobrien (access_in_type): Likewise. 157952284Sobrien (compute_access): Remove, and replace with ... 158052284Sobrien (accessible_p): New function. 158152284Sobrien (vbase_types): Remove. 158252284Sobrien (vbase_decl_ptr_intermediate): Likewise. 158352284Sobrien (vbase_decl_ptr): Likewise. 158452284Sobrien (vbase_init_result): Likewise. 158552284Sobrien (closed_envelopes): Likewise. 158652284Sobrien (bvtable): Likewise. 158752284Sobrien 158852284Sobrien1999-03-09 Jason Merrill <jason@yorick.cygnus.com> 158952284Sobrien 159052284Sobrien * call.c (add_function_candidate): Check for proper number of args 159152284Sobrien before checking the validity of those args. 159252284Sobrien 159352284Sobrien1999-03-06 Jason Merrill <jason@yorick.cygnus.com> 159452284Sobrien 159552284Sobrien * cp-tree.h (struct lang_type): Add anon_union field. 159652284Sobrien (ANON_UNION_TYPE_P): Use it instead of examining type. 159752284Sobrien (SET_ANON_UNION_TYPE_P): New macro. 159852284Sobrien * decl.c (check_tag_decl): Use it. 159952284Sobrien 160052284Sobrien * search.c (compute_access): Handle non-type contexts earlier, and 160152284Sobrien handle NULL_TREE. 160252284Sobrien 160352284Sobrien * tree.c (build_exception_variant): Use copy_to_permanent. 160452284Sobrien 160552284Sobrien * decl2.c (setup_initp): Give statics with no priority the default 160652284Sobrien priority here. 160752284Sobrien (do_dtors, do_ctors, finish_file): Remove special handling of 160852284Sobrien non-prioritized statics. 160952284Sobrien 161052284Sobrien1999-03-05 Mark Mitchell <mark@markmitchell.com> 161152284Sobrien 161252284Sobrien * cp-tree.h (ANON_UNION_TYPE_P): Robustify. 161352284Sobrien * decl.c (make_typename_type): Don't issue an error if an 161452284Sobrien immediate lookup fails; it migt be resolved later. 161552284Sobrien * friend.c (is_friend): Add comment. 161652284Sobrien * search.c (breadth_first_search): Add POSTFN and DATA 161752284Sobrien parameters. Tidy. All callers changed. 161852284Sobrien (lookup_field_queue_p): New function. 161952284Sobrien (lookup_field_r): Likewise. 162052284Sobrien (lookup_field_post): Likewise. 162152284Sobrien (lookup_field): Use them, via breadth_first_search, instead of 162252284Sobrien duplicating logic. 162352284Sobrien (compute_access): Robustify. 162452284Sobrien (lookup_fnfield_info): New structure. 162552284Sobrien 162652284Sobrien1999-03-05 Jason Merrill <jason@yorick.cygnus.com> 162752284Sobrien 162852284Sobrien * pt.c (tsubst, case ARRAY_REF): Use tsubst_expr again. 162952284Sobrien 163052284Sobrien1999-03-03 Jason Merrill <jason@yorick.cygnus.com> 163152284Sobrien 163252284Sobrien * class.c, decl2.c, method.c, pt.c: Add 'static' to make SunOS 4 163352284Sobrien cc happy. 163452284Sobrien 163552284Sobrien * decl2.c (import_export_class): Also return if 163652284Sobrien CLASSTYPE_INTERFACE_ONLY is set. 163752284Sobrien 163852284Sobrien1999-03-03 Martin von L�wis <loewis@informatik.hu-berlin.de> 163952284Sobrien 164052284Sobrien * decl.c (push_overloaded_decl): Only overwrite the old binding if 164152284Sobrien there was one. 164252284Sobrien * decl2.c (do_local_using_decl): Fix loop termination. 164352284Sobrien 164452284Sobrien1999-03-02 Mark Mitchell <mark@markmitchell.com> 164552284Sobrien 164652284Sobrien * cp-tree.h (determine_specialization): Don't declare. 164752284Sobrien * pt.c (determine_specialization): Make it static. Eliminate 164852284Sobrien complain parameter. Note that decl is always non-NULL now, and 164952284Sobrien simplify accordingly. 165052284Sobrien 165152284Sobrien * decl.c (maybe_push_to_top_level): Always call 165252284Sobrien push_cp_function_context. 165352284Sobrien (pop_from_top_level): Always call pop_cp_function_context. 165452284Sobrien 165552284Sobrien1999-02-26 Nathan Sidwell <nathan@acm.org> 165652284Sobrien 165752284Sobrien * typeck.c (complete_type_or_else): Add VALUE arg, for helpful 165852284Sobrien diagnostics. 165952284Sobrien * cp-tree.h (complete_type_or_else): Added VALUE parameter. 166052284Sobrien * init.c (build_new_1): Extra arg to complete_type_or_else. 166152284Sobrien (build_delete): Likewise. 166252284Sobrien * typeck.c (require_complete_type): Likewise. 166352284Sobrien (pointer_int_sum): Likewise. 166452284Sobrien (pointer_diff): Likewise. 166552284Sobrien (build_component_ref): Likewise. 166652284Sobrien 166752284Sobrien * typeck2.c (incomplete_type_error): Always use cp_error. 166852284Sobrien Show declaration of undefined type, if appropriate. 166952284Sobrien Deal with UNKNOWN_TYPE nodes. 167052284Sobrien 167152284Sobrien * typeck.c (require_complete_type): Use TYPE_SIZE as 167252284Sobrien size_zero_node to mean incomplete type. 167352284Sobrien (require_complete_type_in_void): New function. 167452284Sobrien (build_compound_expr): Call complete_type_in_void for LHS. 167552284Sobrien (build_c_cast): Call complete_type_in_void for void cast. 167652284Sobrien * cvt.c (ocp_convert): Call complete_type_in_void for void cast. 167752284Sobrien * decl.c (cplus_expand_expr_stmt): Void expression checks moved to 167852284Sobrien require_complete_type_in_void. Call it. 167952284Sobrien * cp-tree.h (require_complete_type_in_void): Prototype new function. 168052284Sobrien 168152284Sobrien * typeck.c (convert_arguments): Use alternative format for 168252284Sobrien function decls. Don't require_complete_type here. Simplify 168352284Sobrien diagnostic printing. 168452284Sobrien (convert_for_initialization): Don't require_complete_type on RHS yet. 168552284Sobrien * call.c (convert_arg_to_ellipsis): Call require_complete_type. 168652284Sobrien 168752284Sobrien * call.c (build_over_call): Cope with qualified void return type. 168852284Sobrien * semantics.c (finish_call_expr): Likewise. 168952284Sobrien * typeck.c (build_function_call_real): Likewise. 169052284Sobrien (c_expand_return): Likewise. 169152284Sobrien * decl2.c (reparse_absdcl_as_expr): Cope with qualified void type. 169252284Sobrien 169352284Sobrien * call.c (print_z_candidates): Use alternate print format, to be 169452284Sobrien consistent with (pt.c) print_candidates. 169552284Sobrien * method.c (hack_identifier): List candidate members. 169652284Sobrien * search.c (lookup_field): Build ambiguous list, and show it, if 169752284Sobrien ambiguous. 169852284Sobrien 169952284Sobrien1999-02-26 Mark Mitchell <mark@markmitchell.com> 170052284Sobrien 170152284Sobrien * typeck.c (decay_conversion): Don't confuse constant array 170252284Sobrien variables with their initializers. 170352284Sobrien 170452284Sobrien * decl.c (duplicate_decls): Copy DECL_TEMPLATE_INSTANTIATED when 170552284Sobrien merging decls. 170652284Sobrien * pt.c (regenerate_decl_from_template): Tweak for clarity. 170752284Sobrien (instantiate_decl): Mark a decl instantiated before regenerating 170852284Sobrien it to avoid recursion. 170952284Sobrien * tree.c (mapcar): Don't call decl_constant_value unless we know 171052284Sobrien something is TREE_READONLY_DECL_P. 171152284Sobrien 171252284Sobrien * class.c (check_for_override): Don't stop checking when we find 171352284Sobrien the first overridden function. Delete #if 0'd code. 171452284Sobrien * search.c (get_matching_virtual): Likewise. 171552284Sobrien 171652284Sobrien1999-02-25 Richard Henderson <rth@cygnus.com> 171752284Sobrien 171852284Sobrien * lang-specs.h: Define __FAST_MATH__ when appropriate. 171952284Sobrien 172052284Sobrien1999-02-24 Mike Stump <mrs@wrs.com> 172152284Sobrien 172252284Sobrien * typeck.c (convert_for_assignment): Allow boolean integral constant 172352284Sobrien expressions to convert to null pointer. 172452284Sobrien 172552284Sobrien1999-02-24 Martin von Loewis <loewis@informatik.hu-berlin.de> 172652284Sobrien 172752284Sobrien * decl.c (lookup_namespace_name): Resolve namespace aliases. 172852284Sobrien 172952284Sobrien * class.c (push_nested_class): Allow namespaces. 173052284Sobrien 173152284Sobrien * decl2.c (set_decl_namespace): Add friendp parameter. 173252284Sobrien * decl.c (grokfndecl): Pass it. 173352284Sobrien (grokvardecl): Likewise. 173452284Sobrien * cp-tree.h: Change declaration. 173552284Sobrien 173652284Sobrien1999-02-24 Jason Merrill <jason@yorick.cygnus.com> 173752284Sobrien 173852284Sobrien * pt.c (tsubst): Allow an array of explicit size zero. 173952284Sobrien 174052284Sobrien1999-02-23 Jason Merrill <jason@yorick.cygnus.com> 174152284Sobrien 174252284Sobrien * errfn.c: Change varargs code to look like toplev.c. 174352284Sobrien 174452284Sobrien * method.c (process_modifiers): Don't prepend 'U' for char or 174552284Sobrien wchar_t. 174652284Sobrien 174752284Sobrien1999-02-20 Craig Burley <craig@jcb-sc.com> 174852284Sobrien 174952284Sobrien * Make-lang.in (cplib2.ready): Don't consider updating 175052284Sobrien cplib2 stuff if the current directory isn't writable, as 175152284Sobrien it won't work (such as during a `make install'). 175252284Sobrien 175352284SobrienSun Feb 21 20:38:00 1999 H.J. Lu (hjl@gnu.org) 175452284Sobrien 175552284Sobrien * decl2.c (start_objects): Make file scope constructors and 175652284Sobrien destructors local to the file if ASM_OUTPUT_CONSTRUCTOR and 175752284Sobrien ASM_OUTPUT_DESTRUCTOR are defined. 175852284Sobrien 175952284Sobrien1999-02-19 Mark Mitchell <mark@markmitchell.com> 176052284Sobrien 176152284Sobrien * cp-tree.h (CLASSTYPE_METHOD_VEC): Adjust comment. 176252284Sobrien (fn_type_unification): Adjust prototype. 176352284Sobrien (lookup_fnfields_1): Declare. 176452284Sobrien * call.c (add_template_candidate_real): Adjust call to 176552284Sobrien fn_type_unification. 176652284Sobrien * class.c (add_method): Don't allow duplicate declarations of 176752284Sobrien constructors or destructors. 176852284Sobrien (resolve_address_of_overloaded_function): Remove unused variable. 176952284Sobrien Adjust call to fn_type_unification. 177052284Sobrien * decl.c (grokfndecl): Be more robust in the face of illegal 177152284Sobrien specializations. 177252284Sobrien * decl2.c (check_classfn): Remove hokey handling of member 177352284Sobrien templates. 177452284Sobrien * pt.c (determine_specialization): Improve comments. Adjust to 177552284Sobrien handle template argument deduction as per the standard. 177652284Sobrien (check_explicit_specialization): Fix comment spacing. Handle 177752284Sobrien type-conversion operators correctly. Improve error-recovery. 177852284Sobrien (fn_type_unification): Remove EXTRA_FN_ARG parameter. 177952284Sobrien (get_bindings_real): Simplify handling of static members. 178052284Sobrien * search.c (lookup_fnfields_1): Make it have external linkage. 178152284Sobrien * typeck.c (compparms): Fix comment. 178252284Sobrien (build_unary_op): Don't try to figure out which template 178352284Sobrien specialization is being referred to when when the address-of 178452284Sobrien operator is used with a template function. 178552284Sobrien 178652284SobrienThu Feb 18 23:40:01 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 178752284Sobrien 178852284Sobrien * cp-tree.h (lvalue_or_else): Qualify a char* with the `const' 178952284Sobrien keyword to match an analogous change at the top level. 179052284Sobrien 179152284Sobrien * tree.c (lvalue_or_else): Likewise. 179252284Sobrien 179352284Sobrien1999-02-17 Mark Mitchell <mark@markmitchell.com> 179452284Sobrien 179552284Sobrien * decl.c (xref_basetypes): Comment. 179652284Sobrien * pt.c (instantiate_class_template): Use xref_basetypes. 179752284Sobrien 179852284Sobrien1999-02-16 Mark Mitchell <mark@markmitchell.com> 179952284Sobrien 180052284Sobrien * cp-tree.h (tsubst): Change prototype. 180152284Sobrien (tsubst_expr): Likewise. 180252284Sobrien (tsubst_copy): Likewise. 180352284Sobrien (type_unification): Remove prototype. 180452284Sobrien * call.c (convert_default_arg): Adjust call to tsubst_expr. 180552284Sobrien * class.c (resolve_address_of_overloaded_function): Just use 180652284Sobrien fn_type_unification. 180752284Sobrien * decl.c (grokdeclarator): Adjust call to tsubst. 180852284Sobrien * method.c (build_template_parm_names): Likewise. 180952284Sobrien * pt.c (GTB_VIA_VIRTUAL): New macro. 181052284Sobrien (GTB_IGNORE_TYPE): Likewise. 181152284Sobrien (resolve_overloaded_unification): Add `complain' parameter. 181252284Sobrien (try_one_overload): Likewise. 181352284Sobrien (tsubst_template_arg_vector): Likewise. 181452284Sobrien (tsubst_template_parms): Likewise. 181552284Sobrien (tsubst_aggr_type): Likewise. 181652284Sobrien (tsubst_arg_types): Likewise. 181752284Sobrien (tsubst_call_declarator_parms): Likewise. 181852284Sobrien (unify): Remove explicit_mask. 181952284Sobrien (type_unification_real): Likewise. 182052284Sobrien (get_template_base_recursive): Likewise. 182152284Sobrien (coerce_template_template_parms): Provide prototype. 182252284Sobrien (tsubst_function_type): Likewise. 182352284Sobrien (try_class_unification): New function. 182452284Sobrien All callers changed to use new complain parameter. 182552284Sobrien (get_template_base): Use try_class_unification. 182652284Sobrien (unify): Adjust handling of classes derived from template types. 182752284Sobrien (fn_type_unification): Substitute explicit arguments before 182852284Sobrien unification. 182952284Sobrien 183052284Sobrien1999-02-16 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu> 183152284Sobrien 183252284Sobrien * decl.c (pushdecl): Remove dead code. 183352284Sobrien 183452284Sobrien1999-02-16 Jason Merrill <jason@yorick.cygnus.com> 183552284Sobrien 183652284Sobrien * decl2.c (finish_objects): Fix code I missed in previous change. 183752284Sobrien 183852284Sobrien1999-02-13 Jason Merrill <jason@yorick.cygnus.com> 183952284Sobrien 184052284Sobrien * decl.c (grokfndecl): Return NULL_TREE instead of error_mark_node. 184152284Sobrien (grokdeclarator): Don't expect error_mark_node from grokfndecl. 184252284Sobrien 184352284Sobrien * pt.c (maybe_process_partial_specialization): Complain about 184452284Sobrien 'template <>' on non-specialization. 184552284Sobrien 184652284Sobrien1999-02-10 Jason Merrill <jason@yorick.cygnus.com> 184752284Sobrien 184852284Sobrien * decl.c (grokdeclarator): Catch wierd declarators. 184952284Sobrien * decl2.c (finish_file): Don't abort because of namespace parsing 185052284Sobrien failure. 185152284Sobrien (check_decl_namespace): Remove. 185252284Sobrien 185352284Sobrien1999-02-09 Mark Mitchell <mark@markmitchell.com> 185452284Sobrien 185552284Sobrien * cp-tree.h (get_template_base): Don't declare. 185652284Sobrien (dfs_walk): Declare. 185752284Sobrien (dfs_unmark): Likewise. 185852284Sobrien (markedp): Likewise. 185952284Sobrien * pt.c (unify): Remove duplicate declaration. Pass tparms and 186052284Sobrien targs to get_template_base. 186152284Sobrien (get_template_base_recursive): Move here from search.c. Check to 186252284Sobrien see that the base found can be instantiated to form the desired 186352284Sobrien type. 186452284Sobrien (get_template_base): Likewise. 186552284Sobrien (get_class_bindings): Simplify. 186652284Sobrien * search.c (get_template_base_recursive): Move to pt.c. 186752284Sobrien (get_template_base): Likewise. 186852284Sobrien (markedp): Make it global. 186952284Sobrien (dfs_walk): Likewise. 187052284Sobrien (dfs_unmark): Likewise. 187152284Sobrien 187252284Sobrien1999-02-07 Jason Merrill <jason@yorick.cygnus.com> 187352284Sobrien 187452284Sobrien * pt.c (maybe_process_partial_specialization): Complain about 187552284Sobrien specialization in wrong namespace. 187652284Sobrien * tree.c (decl_namespace_context): New fn. 187752284Sobrien 187852284Sobrien1999-02-06 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu> 187952284Sobrien 188052284Sobrien * decl2.c (arg_assoc_type): Handle TEMPLATE_TEMPLATE_PARM. 188152284Sobrien * pt.c (coerce_template_template_parms): Handle nested 188252284Sobrien template template parameters. 188350397Sobrien 188448743SobrienSat Feb 6 18:08:40 1999 Jeffrey A Law (law@cygnus.com) 188550397Sobrien 188650397Sobrien * typeck2.c: Update email addresses. 188750397Sobrien 188848743Sobrien1999-02-04 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu> 188952284Sobrien 189048743Sobrien * pt.c (unify): Call coerce_template_parms with the COMPLAIN flag 189152284Sobrien turned off. 189252284Sobrien 189352284Sobrien1999-02-04 Jason Merrill <jason@yorick.cygnus.com> 189452284Sobrien 189552284Sobrien * lex.c (retrofit_lang_decl): Split out... 189652284Sobrien (build_lang_decl): From here. 189752284Sobrien * decl.c (pushdecl): Call it for functions generated by the middle 189852284Sobrien end that don't have DECL_LANG_SPECIFIC. 189952284Sobrien * cp-tree.h: Declare it. 190052284Sobrien 190152284Sobrien * decl2.c: Remove flag_init_priority. Always enable initp stuff. 190252284Sobrien (start_objects, finish_objects): Only use special 190352284Sobrien init_priority code if the user specified a priority. 190452284Sobrien (do_ctors, do_dtors): Use DEFAULT_INIT_PRIORITY for the non-initp 190552284Sobrien objects. 190652284Sobrien 190752284SobrienWed Feb 3 22:50:17 1999 Marc Espie <Marc.Espie@liafa.jussieu.fr> 190852284Sobrien 190952284Sobrien * Make-lang.in (GXX_OBJS): Remove choose-temp.o, pexecute.o and 191052284Sobrien mkstemp.o. Get them from libiberty now. 191152284Sobrien (DEMANGLER_PROG): Simlarly, remove getopt.o getopt1.o. 191252284Sobrien 191352284SobrienTue Feb 2 22:38:48 1999 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> 191452284Sobrien 191552284Sobrien * decl2.c (lang_decode_option): Use read_integral_parameter. 191652284Sobrien 191752284Sobrien1999-02-01 Mark Mitchell <mark@markmitchell.com> 191852284Sobrien 191952284Sobrien * pt.c (tsubst, case TYPENAME_TYPE): Check TYPE_BEING_DEFINED 192052284Sobrien before calling complete_type_or_else. 192152284Sobrien 192252284SobrienMon Feb 1 09:49:52 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 192352284Sobrien 192452284Sobrien * input.c (inline): Don't define, its handled by system.h. 192552284Sobrien 192652284SobrienSun Jan 31 20:34:29 1999 Zack Weinberg <zack@rabi.columbia.edu> 192752284Sobrien 192852284Sobrien * decl2.c: Don't define flag_no_ident here. Don't process 192952284Sobrien -f(no-)ident here. 193052284Sobrien * cp-tree.h: Don't declare flag_no_ident here. 193152284Sobrien * lang-specs.h: Map -Qn to -fno-ident. 193252284Sobrien 193352284Sobrien1999-01-28 Jason Merrill <jason@yorick.cygnus.com> 193452284Sobrien 193552284Sobrien * cp-tree.h (struct tree_binding): Replace scope field with a union. 193652284Sobrien (BINDING_SCOPE): Adjust. 193752284Sobrien * decl.c (BINDING_LEVEL): Adjust. 193852284Sobrien 193952284Sobrien1999-01-26 Jason Merrill <jason@yorick.cygnus.com> 194052284Sobrien 194152284Sobrien * pt.c (instantiate_class_template): Set up the DECL_INITIAL of 194252284Sobrien member constants. 194352284Sobrien 194452284Sobrien * init.c (expand_member_init): Pull out TYPE_MAIN_VARIANT in 194552284Sobrien a ctor initializer. 194652284Sobrien 194752284Sobrien * tree.c (equal_functions): Fix name in prototype. 194852284Sobrien 194952284Sobrien * decl.c (push_local_binding): Add FLAGS argument. 195052284Sobrien (pushdecl, push_overloaded_decl): Pass it. 195152284Sobrien * decl2.c (do_local_using_decl): Likewise. 195252284Sobrien * cp-tree.h: Adjust prototype. 195352284Sobrien * decl.c (poplevel): Fix logic. 195452284Sobrien 195552284Sobrien * decl.c (push_local_binding): Also wrap used decls in a TREE_LIST. 195652284Sobrien (poplevel): Handle that. Fix logic for removing TREE_LISTs. 195752284Sobrien (cat_namespace_levels): Don't loop forever. 195852284Sobrien 195952284Sobrien1999-01-25 Richard Henderson <rth@cygnus.com> 196052284Sobrien 196152284Sobrien * typeck.c (build_reinterpret_cast): Fix typo in duplicated test. 196252284Sobrien 196352284Sobrien1999-01-25 Jason Merrill <jason@yorick.cygnus.com> 196452284Sobrien 196552284Sobrien * class.c (resolve_address_of_overloaded_function): Mark the 196652284Sobrien chosen function used. 196752284Sobrien 196852284Sobrien * call.c (build_call): Make sure that a function coming in has 196952284Sobrien been marked used already. 197052284Sobrien * decl.c (expand_static_init): Call mark_used instead of 197152284Sobrien assemble_external. 197252284Sobrien * except.c (call_eh_info, do_pop_exception, expand_end_eh_spec, 197352284Sobrien alloc_eh_object, expand_throw): Likewise. 197452284Sobrien * init.c (build_builtin_delete_call): Likewise. 197552284Sobrien * rtti.c (call_void_fn, get_tinfo_fn, build_dynamic_cast_1, 197652284Sobrien expand_si_desc, expand_class_desc, expand_ptr_desc, expand_attr_desc, 197752284Sobrien expand_generic_desc): Likewise. 197852284Sobrien 197952284Sobrien1999-01-25 Martin von L�wis <loewis@informatik.hu-berlin.de> 198052284Sobrien 198152284Sobrien * tree.c (equal_functions): New function. 198252284Sobrien (ovl_member): Call it. 198352284Sobrien 198452284Sobrien1999-01-24 Jason Merrill <jason@yorick.cygnus.com> 198552284Sobrien 198652284Sobrien * cvt.c (cp_convert_to_pointer): Fix conversion of 0 to pmf. 198752284Sobrien 198852284Sobrien1999-01-25 Martin von Loewis <loewis@informatik.hu-berlin.de> 198952284Sobrien 199052284Sobrien * decl.c (decls_match): Return 1 if old and new are identical. 199152284Sobrien (push_overloaded_decl): Set OVL_USED when PUSH_USING. 199252284Sobrien 199352284Sobrien1999-01-24 Jason Merrill <jason@yorick.cygnus.com> 199452284Sobrien 199552284Sobrien * decl.c (start_function): Make member functions one_only on windows. 199652284Sobrien * decl2.c (import_export_decl): Likewise. 199752284Sobrien 199852284Sobrien * decl.c (grokdeclarator): Don't complain about implicit int in 199952284Sobrien a system header. Change same-name field check to not complain in 200052284Sobrien a system header instead of within extern "C". 200152284Sobrien 200252284Sobrien1999-01-21 Mark Mitchell <mark@markmitchell.com> 200352284Sobrien 200452284Sobrien * cp-tree.h (PUSH_GLOBAL): New macro. 200552284Sobrien (PUSH_LOCAL): Likewise. 200652284Sobrien (PUSH_USING): Likewise. 200752284Sobrien (namespace_bindings_p): Declare. 200852284Sobrien (push_overloaded_decl): Likewise. 200952284Sobrien * decl.c (push_overloaded_decl): Don't make it static. Check for 201052284Sobrien illegal declarations after using declarations here. 201152284Sobrien (namespace_bindings_p): Likewise. 201252284Sobrien (duplicate_decls): Don't consider declarations from different 201352284Sobrien namespaces to be the same. 201452284Sobrien (pushdecl): Use symbolic PUSH_ constants in calls to 201552284Sobrien push_overloaded_decl. 201652284Sobrien (push_overloaded_decl_1): Likewise. 201752284Sobrien * decl2.c (validate_nonmember_using_decl): Tweak `std' handling. 201852284Sobrien (do_nonmember_using_decl): Check for illegal using declarations 201952284Sobrien after ordinary declarations here. 202052284Sobrien (do_local_using_decl): Call pushdecl to insert declarations. 202152284Sobrien 202252284Sobrien1999-01-21 Jason Merrill <jason@yorick.cygnus.com> 202352284Sobrien 202452284Sobrien * decl.c (grokdeclarator): Fix lang_c -> lang_name_c typo. 202552284Sobrien 202652284Sobrien1999-01-21 Mark Mitchell <mark@markmitchell.com> 202752284Sobrien 202852284Sobrien * tree.c (build_cplus_array_type_1): Don't call build_array_type 202952284Sobrien for types involving template parameters. 203052284Sobrien 203152284Sobrien * cp-tree.h (PARM_DECL_EXPR): Delete. 203252284Sobrien (convert_default_arg): Change prototype. 203352284Sobrien (check_default_argument): Declare. 203452284Sobrien (search_tree): Likewise. 203552284Sobrien * call.c (convert_default_arg): Take the function to which the 203652284Sobrien default argument belongs as a parameter, and do any necessary 203752284Sobrien instantiation here, instead of ... 203852284Sobrien (build_over_call): Here. 203952284Sobrien * decl.c (local_variable_p): New function. 204052284Sobrien (check_default_argument): Likewise, split out and tidied from ... 204152284Sobrien (grokparms): Here. 204252284Sobrien * error.c (dump_expr): Don't set PARM_DECL_EXPR. 204352284Sobrien * pt.c (tsubst_call_declarator_parms): New function. 204452284Sobrien (for_each_template_parm): Handle ARRAY_REFs. Do the obvious thing 204552284Sobrien with CALL_EXPRs, rather than trying to be clever. 204652284Sobrien (tsubst): Use tsubst_call_declarator_parms. 204752284Sobrien * tree.c (search_tree): Don't make it static. 204852284Sobrien * typeck.c (convert_arguments): Use new interface to 204952284Sobrien convert_default_arg. 205052284Sobrien 205152284Sobrien1999-01-20 Mark Mitchell <mark@markmitchell.com> 205252284Sobrien 205352284Sobrien * error.c (dump_function_decl): Don't print the argument types for 205452284Sobrien a function when the verbosity level is negative. 205552284Sobrien 205652284Sobrien * call.c (build_over_call): Check format attributes at call-time. 205752284Sobrien 205852284Sobrien * pt.c (tsubst_copy): Fix comment. 205952284Sobrien (unify): Don't allow unification with variable-sized arrays. 206052284Sobrien 206152284Sobrien * semantics.c (finish_stmt_expr): When processing a template make 206252284Sobrien the BIND_EXPR long-lived. 206352284Sobrien 206452284Sobrien1999-01-19 Jason Merrill <jason@yorick.cygnus.com> 206552284Sobrien 206652284Sobrien * decl2.c (finish_vtable_vardecl): Make vtables comdat here. 206752284Sobrien (import_export_vtable): Not here. 206852284Sobrien 206952284Sobrien1999-01-18 Jason Merrill <jason@yorick.cygnus.com> 207052284Sobrien 207152284Sobrien * typeck.c (build_component_ref): Wrap an OVERLOAD around a unique 207252284Sobrien non-static member function. 207352284Sobrien 207452284Sobrien1999-01-18 Nathan Sidwell <nathan@acm.org> 207552284Sobrien 207652284Sobrien * class.c (instantiate_type): Only diagnose illegal address of member 207752284Sobrien function if complaining. 207852284Sobrien 207952284Sobrien * decl.c (lookup_name_real): Remove duplicate code. 208052284Sobrien 208152284Sobrien1999-01-18 Jason Merrill <jason@yorick.cygnus.com> 208252284Sobrien 208352284Sobrien * tree.c (copy_template_template_parm): Use permanent_obstack. 208452284Sobrien 208552284Sobrien1999-01-18 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu> 208652284Sobrien 208752284Sobrien * pt.c (unify): Remove restrictions on deduction of argument 208852284Sobrien of template template parameters. 208952284Sobrien 209052284Sobrien1999-01-18 Nathan Sidwell <nathan@acm.org> 209152284Sobrien 209252284Sobrien * rtti.c (build_dynamic_cast_1): Resolve OFFSET_REF exprs. 209352284Sobrien 209452284Sobrien * class.c (resolve_address_of_overloaded_function): Show list of 209552284Sobrien all candidates, when none of them match. 209652284Sobrien 209752284Sobrien1999-01-18 Chip Salzenberg <chip@perlsupport.com> 209852284Sobrien 209952284Sobrien * typeck.c (comp_ptr_ttypes_reinterpret): Per ANSI, tighten up 210052284Sobrien definition of 'casting away const' in reinterpret_cast<>. 210152284Sobrien 210252284Sobrien1999-01-18 Graham <grahams@rcp.co.uk> 210352284Sobrien 210452284Sobrien * cvt.c: Add include for decl.h, remove extern for 210552284Sobrien static_aggregates which is now provided by decl.h. 210652284Sobrien 210752284Sobrien * Makefile.in (cvt.o): Add dependency for decl.h and missing 210852284Sobrien dependencies for convert.h and flags.h. 210952284Sobrien 211052284Sobrien1999-01-18 Nathan Sidwell <nathan@acm.org> 211150397Sobrien 211250397Sobrien * decl2.c (do_dtors): Set current location to that of the 211348743Sobrien decl, for sensible diagnostics and debugging. 211452284Sobrien (check_classfn): Issue `incomplete type' error, if 211518334Speter class is not defined. 211652284Sobrien 211718334Speter1999-01-16 Jason Merrill <jason@yorick.cygnus.com> 211852284Sobrien 211952284Sobrien * cp-tree.h: Add prototype for bound_pmf_p. 212052284Sobrien 212152284Sobrien1999-01-16 Jason Merrill <jason@yorick.cygnus.com> 212252284Sobrien Manfred Hollstein <manfred@s-direktnet.de> 212352284Sobrien 212452284Sobrien * decl.c (grokdeclarator): Don't make 'main(){}' an error with only 212552284Sobrien -Wreturn-type. 212652284Sobrien 212752284Sobrien1999-01-16 Nathan Sidwell <nathan@acm.org> 212852284Sobrien 212952284Sobrien * cp-tree.h (struct lang_type): Added has_mutable flag. 213052284Sobrien (CLASSTYPE_HAS_MUTABLE): New macro to access it. 213152284Sobrien (TYPE_HAS_MUTABLE_P): New macro to read it. 213252284Sobrien (cp_has_mutable_p): Prototype for new function. 213352284Sobrien * class.c (finish_struct_1): Set has_mutable from members. 213452284Sobrien * decl.c (cp_finish_decl): Clear decl's TREE_READONLY flag, if 213552284Sobrien it contains a mutable. 213652284Sobrien * typeck.c (cp_has_mutable_p): New function. 213752284Sobrien 213852284Sobrien1999-01-15 Mark Mitchell <mark@markmitchell.com> 213952284Sobrien 214052284Sobrien * pt.c (process_template_parm): Ignore top-level qualifiers on 214152284Sobrien non-type parameters. 214252284Sobrien 214352284Sobrien * decl.c (start_function): Use current_function_parms in the call 214452284Sobrien to require_complete_type_for_parms, not the probably empty 214552284Sobrien DECL_ARGUMENTS. 214652284Sobrien 214752284Sobrien1999-01-14 Jason Merrill <jason@yorick.cygnus.com> 214852284Sobrien 214952284Sobrien * semantics.c (finish_asm_stmt): Don't warn about redundant volatile. 215052284Sobrien 215152284Sobrien * decl2.c (import_export_class): MULTIPLE_SYMBOL_SPACES only means 215252284Sobrien that we don't suppress the other copies. 215352284Sobrien * lex.c (handle_cp_pragma): Likewise. 215452284Sobrien 215552284Sobrien1999-01-13 Mark Mitchell <mark@markmitchell.com> 215652284Sobrien 215752284Sobrien * decl.c (grokdeclarator): Undo 1998-12-14 change. 215852284Sobrien * tree.c (build_cplus_array_type_1): Likewise. 215952284Sobrien * pt.c (instantiate_class_template): Remove misleading comment. 216052284Sobrien (tsubst_aggr_type): Substitute if there are template parameters, 216152284Sobrien regardless of whether or not they use template arguments. 216252284Sobrien (unify): Likewise, but for unification. 216352284Sobrien 216452284Sobrien1999-01-12 Richard Henderson <rth@cygnus.com> 216552284Sobrien 216652284Sobrien * cp-tree.h (flag_permissive): Declare extern. 216752284Sobrien 216852284Sobrien1999-01-06 Mark Mitchell <mark@markmitchell.com> 216952284Sobrien 217052284Sobrien * cp-tree.h (IDENTIFIER_TYPENAME_P): Use OPERATOR_TYPENAME_FORMAT 217152284Sobrien here. 217252284Sobrien (lang_type): Add is_partial_instantiation. Decrease width of 217352284Sobrien dummy. 217452284Sobrien (PARTIAL_INSTANTIATION_P): New macro. 217552284Sobrien (OPERATOR_TYPENAME_P): Remove. 217652284Sobrien * decl.c (unary_op_p): Use IDENTIFIER_TYPENAME_P, not 217752284Sobrien OPERATOR_TYPENAME_P. 217852284Sobrien (grok_op_properties): Likewise. 217952284Sobrien * friend.c (do_friend): Handle friends that are member functions 218052284Sobrien correctly. 218152284Sobrien * lex.c (init_parse): Use OPERATOR_TYPENAME_FORMAT. 218252284Sobrien * pt.c (instantiate_class_template): Rework for clarity. Avoid 218352284Sobrien leaving TYPE_BEING_DEFINED set in obscure cases. Don't do 218452284Sobrien any more partial instantiation than is absolutely necessary for 218552284Sobrien implicit typename. Set PARTIAL_INSTANTIATION_P. 218652284Sobrien (tsubst_decl): Use IDENTIFIER_TYPENAME_P. 218752284Sobrien * semantics.c (begin_class_definition): Handle partial 218852284Sobrien specializations of a type that was previously partially 218952284Sobrien instantiated. 219052284Sobrien 219152284SobrienWed Jan 6 03:18:53 1999 Mark Elbrecht <snowball3@usa.net. 219252284Sobrien 219352284Sobrien * g++spec.c (LIBSTDCXX): Provide default definition. 219452284Sobrien (lang_specific_driver): Use LIBSTDCXX instead of "-lstdc++". 219552284Sobrien 219652284SobrienTue Jan 5 22:11:25 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 219752284Sobrien 219852284Sobrien * Make-lang.in (g++.o): Depend on prefix.h. 219952284Sobrien 220052284Sobrien1999-01-04 Jason Merrill <jason@yorick.cygnus.com> 220152284Sobrien 220252284Sobrien * tree.c (bound_pmf_p): New fn. 220352284Sobrien * typeck.c (build_c_cast): Use it. 220452284Sobrien 220552284Sobrien * decl.c (grok_op_properties): Use same_type_p. 220652284Sobrien 220752284SobrienTue Dec 22 15:09:25 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 220852284Sobrien 220952284Sobrien * Makefile.in (cvt.o): Depend on toplev.h. 221052284Sobrien 221152284Sobrien * cp-tree.h (check_template_shadow, pod_type_p): Add prototypes. 221252284Sobrien 221352284Sobrien * cvt.c: Include toplev.h. 221452284Sobrien 221552284Sobrien * except.c (get_eh_caught, get_eh_handlers): Hide prototypes and 221652284Sobrien definitions. 221752284Sobrien 221852284Sobrien * init.c (expand_vec_init): Initialize variable `itype'. 221952284Sobrien 222052284Sobrien * lex.c (yyerror): Cast the argument passed to a ctype function to 222152284Sobrien an unsigned char. 222252284Sobrien 222352284Sobrien * method.c (build_mangled_C9x_name): Wrap prototype and definition 222452284Sobrien in "HOST_BITS_PER_WIDE_INT >= 64". 222552284Sobrien 222652284Sobrien * typeck.c (build_binary_op): Mark parameter `convert_p' with 222752284Sobrien ATTRIBUTE_UNUSED. 222852284Sobrien 222952284Sobrien1998-12-22 Mark Mitchell <mark@markmitchell.com> 223052284Sobrien 223152284Sobrien * cp-tree.h (TYPE_RAISES_EXCEPTIONS): Improve documentation. 223252284Sobrien * tree.c (build_exception_variant): Don't crash on empty throw 223352284Sobrien specs. 223452284Sobrien 223552284Sobrien1998-12-18 DJ Delorie <dj@cygnus.com> 223652284Sobrien 223752284Sobrien * cvt.c (convert_to_reference): Check for both error_mark_node 223852284Sobrien and NULL_NODE after call to convert_for_initialization. 223952284Sobrien 224052284Sobrien1998-12-17 Jason Merrill <jason@yorick.cygnus.com> 224152284Sobrien 224252284Sobrien * error.c (interesting_scope_p): New fn. 224352284Sobrien (dump_simple_decl): Use it. 224452284Sobrien (dump_expr, case CONSTRUCTOR): Force a & for a PMF. 224552284Sobrien (dump_expr, case OFFSET_REF): Print ->* if appropriate. 224652284Sobrien 224752284Sobrien1998-12-16 Mark Mitchell <mark@markmitchell.com> 224852284Sobrien 224952284Sobrien * class.c (resolve_address_of_overloaded_function): Do conversion 225052284Sobrien to correct type here, rather than ... 225152284Sobrien (instantiate_type): Here. 225252284Sobrien 225352284Sobrien * cp-tree.h (DECL_TEMPLATE_PARM_P): New macro. 225452284Sobrien (DECL_TEMPLATE_TEMPLATE_PARM_P): Use it. 225552284Sobrien (decl_template_parm_p): Remove. 225652284Sobrien * decl.c (pushdecl): Don't set DECL_CONTEXT for a template 225752284Sobrien parameter. 225852284Sobrien * lex.c (do_identifier): Use DECL_TEMPLATE_PARM_P. 225952284Sobrien * pt.c (push_inline_template_parms_recursive): Set it. 226052284Sobrien (decl_template_parm_p): Remove. 226152284Sobrien (check_template_shadow): Use DECL_TEMPLATE_PARM_P. 226252284Sobrien (process_template_parm): Set it. 226352284Sobrien 226452284SobrienWed Dec 16 16:33:58 1998 Dave Brolley <brolley@cygnus.com> 226552284Sobrien 226652284Sobrien * lang-specs.h (default_compilers): Pass -MD, -MMD and -MG to cc1plus 226752284Sobrien if configured with cpplib. 226852284Sobrien 226952284Sobrien1998-12-15 Mark Mitchell <mark@markmitchell.com> 227052284Sobrien 227152284Sobrien * decl.c (poplevel): Make sure ns_binding is initialized. 227252284Sobrien 227352284Sobrien * decl.c (finish_function): Undo inadvertent change in previous 227452284Sobrien patch. 227552284Sobrien 227652284Sobrien1998-12-14 Mark Mitchell <mark@markmitchell.com> 227752284Sobrien 227852284Sobrien * class.c (pushclass): Tweak handling of class-level bindings. 227952284Sobrien (resolve_address_of_overloaded_function): Update pointer-to-member 228052284Sobrien handling. 228152284Sobrien (instantiate_type): Likewise. 228252284Sobrien * cvt.c (cp_convert_to_pointer): Likewise. 228352284Sobrien * decl.c (pop_binding): Take the DECL to pop, not just the name. 228452284Sobrien Deal with `struct stat' hack. 228552284Sobrien (binding_level): Add to documentation. 228652284Sobrien (push_binding): Clear BINDING_TYPE. 228752284Sobrien (add_binding): New function. 228852284Sobrien (push_local_binding): Use it. 228952284Sobrien (push_class_binding): Likewise. 229052284Sobrien (poplevel): Adjust calls to pop_binding. 229152284Sobrien (poplevel_class): Likewise. 229252284Sobrien (pushdecl): Adjust handling of TYPE_DECLs; add bindings for hidden 229352284Sobrien declarations to current binding level. 229452284Sobrien (push_class_level_binding): Likewise. 229552284Sobrien (push_overloaded_decl): Adjust handling of OVERLOADs in local 229652284Sobrien bindings. 229752284Sobrien (lookup_namespace_name): Don't crash when confronted with a 229852284Sobrien TEMPLATE_DECL. 229952284Sobrien (lookup_name_real): Do `struct stat' hack in local binding 230052284Sobrien contexts. 230152284Sobrien (build_ptrmemfunc_type): Adjust documentation. 230252284Sobrien (grokdeclarator): Don't avoid building real array types when 230352284Sobrien processing templates unless really necessary. 230452284Sobrien (finish_method): Adjust calls to pop_binding. 230552284Sobrien * decl2.c (reparse_absdcl_as_expr): Recursively call ourselves, 230652284Sobrien not reparse_decl_as_expr. 230752284Sobrien (build_expr_from_tree): Deal with a template-id as the function to 230852284Sobrien call in a METHOD_CALL_EXPR. 230952284Sobrien * pt.c (convert_nontype_argument): Tweak pointer-to-member handling. 231052284Sobrien (maybe_adjust_types_For_deduction): Don't do peculiar things with 231152284Sobrien METHOD_TYPEs here. 231252284Sobrien (resolve_overloaded_unification): Handle COMPONENT_REFs. Build 231352284Sobrien pointer-to-member types where necessary. 231452284Sobrien * tree.c (build_cplus_array_type_1): Don't avoid building real 231552284Sobrien array types when processing templates unless really necessary. 231652284Sobrien (build_exception_variant): Compare the exception lists correctly. 231752284Sobrien 231852284Sobrien1998-12-13 Mark Mitchell <mark@markmitchell.com> 231952284Sobrien 232052284Sobrien * cp-tree.def (CPLUS_BINDING): Update documentation. 232152284Sobrien * cp-tree.h (LOCAL_BINDING_P): New macro. 232252284Sobrien (lang_identifier): Rename local_value to bindings. 232352284Sobrien (tree_binding): Make `scope' of type `void*', not `tree'. 232452284Sobrien (BINDING_SCOPE): Update documentation. 232552284Sobrien (IDENTIFIER_LOCAL_VALUE): Remove. 232652284Sobrien (IDENTIFIER_CLASS_VALUE): Document. 232752284Sobrien (IDENTIFIER_BINDING): New macro. 232852284Sobrien (IDENTIFIER_VALUE): Likewise. 232952284Sobrien (TIME_IDENTIFIER_TIME): Likewise. 233052284Sobrien (TIME_IDENTIFIER_FILEINFO): Likewise. 233152284Sobrien (IMPLICIT_TYPENAME_P): Likewise. 233252284Sobrien (set_identifier_local_value): Remove. 233352284Sobrien (push_local_binding): New function. 233452284Sobrien (push_class_binding): Likewise. 233552284Sobrien * class.c (pushclass): Update comments; use push_class_binding. 233652284Sobrien * decl.c (set_identifier_local_value_with_scope): Remove. 233752284Sobrien (set_identifier_local_value): Likewise. 233852284Sobrien (push_binding): New function. 233952284Sobrien (pop_binding): Likewise. 234052284Sobrien (binding_level): Update documentation. Remove shadowed. 234152284Sobrien (BINDING_LEVEL): New macro. 234252284Sobrien (free_binding_nodes): New variable. 234352284Sobrien (poplevel): Adjust for new name-lookup scheme. Don't mess up 234452284Sobrien BLOCK_VARs when doing for-scope extension. Remove effectively 234552284Sobrien dead code. 234652284Sobrien (pushlevel_class): Tweak formatting. 234752284Sobrien (poplevel_class): Adjust for new name-lookup scheme. 234852284Sobrien (print_binding_level): Likewise. 234952284Sobrien (store_bindings): Likewise. 235052284Sobrien (pushdecl): Likewise. 235152284Sobrien (pushdecl_class_level): Likewise. 235252284Sobrien (push_class_level_binding): Likewise. 235352284Sobrien (push_overloaded_decl): Update comments. Adjust for new 235452284Sobrien name-lookup scheme. 235552284Sobrien (lookup_name_real): Likewise. 235652284Sobrien (lookup_name_current_level): Likewise. 235752284Sobrien (cp_finish_decl): Likewise. 235852284Sobrien (require_complete_types_for_parms): Likewise. Remove misleading 235952284Sobrien #if 0'd code. 236052284Sobrien (grok_parms): Likewise. Don't call 236152284Sobrien require_complete_types_for_parms here. 236252284Sobrien (grok_ctor_properties): Don't treat templates as copy 236352284Sobrien constructors. 236452284Sobrien (grop_op_properties): Or as assignment operators. 236552284Sobrien (start_function): Document. Adjust for new name-lookup scheme. 236652284Sobrien (finish_function): Likewise. 236752284Sobrien * decl2.c (do_local_using_decl): Use push_local_binding. 236852284Sobrien * lex.c (begin_definition_of_inclass_inline): New function, split 236952284Sobrien out from ... 237052284Sobrien (do_pending_inlines): Here, and ... 237152284Sobrien (process_next_inline): Here. 237252284Sobrien (get_time_identifier): Use TIME_IDENTIFIER_* macros. 237352284Sobrien (init_filename_times): Likewise. 237452284Sobrien (extract_interface_info): Likewise. 237552284Sobrien (ste_typedecl_interface_info): Likewise. 237652284Sobrien (check_newline): Likewise. 237752284Sobrien (dump_time_statistics): Likewise. 237852284Sobrien (handle_cp_pragma): Likewise. 237952284Sobrien (do_identifier): Adjust for new name-lookup scheme. 238052284Sobrien * parse.y (function_try_block): Return ctor_initializer_opt value. 238152284Sobrien (fndef): Use it. 238252284Sobrien (fn.defpen): Pass appropriate values to start_function. 238352284Sobrien (pending_inline): Use functor_try_block value, and pass 238452284Sobrien appropriate values to finish_function. 238552284Sobrien * pt.c (is_member_template): Update documentation; remove handling 238652284Sobrien of FUNCTION_DECLs. As per name, this function should deal only in 238752284Sobrien TEMPLATE_DECLs. 238852284Sobrien (decl_template_parm_p): Change name of olddecl parameter to decl. 238952284Sobrien (check_template_shadow): Adjust for new name-lookup scheme. 239052284Sobrien (lookup_template_class): Likewise. 239152284Sobrien (tsubst_decl): Tweak so as not to confuse member templates with 239252284Sobrien copy constructors and assignment operators. 239352284Sobrien (unify): Handle UNION_TYPEs. 239452284Sobrien * ptree.c (print_lang_identifier): Adjust for new name-lookup scheme. 239552284Sobrien (lang_print_xnode): Adjust for new name-lookup scheme. 239652284Sobrien * typeck.c (mark_addressable): Likewise. 239752284Sobrien (c_expand_return): Likewise. 239852284Sobrien 239952284Sobrien1998-12-08 Jason Merrill <jason@yorick.cygnus.com> 240052284Sobrien 240152284Sobrien * decl.c (grokdeclarator): Allow field with same name as class 240252284Sobrien in extern "C". 240352284Sobrien 240452284Sobrien * decl.c (lookup_name_real): Don't limit field lookup to types. 240552284Sobrien * class.c (check_member_decl_is_same_in_complete_scope): No error 240652284Sobrien if icv and x are the same. 240752284Sobrien * lex.c (do_identifier): Tweak error message. 240852284Sobrien 240952284Sobrien1998-12-10 Mark Mitchell <mark@markmitchell.com> 241052284Sobrien 241152284Sobrien * decl.c (start_enum): Use push_obstacks, not 241252284Sobrien end_temporary_allocation. 241352284Sobrien (finish_enum): Call pop_obstacks. 241452284Sobrien 241552284Sobrien1998-12-10 Mark Mitchell <mark@markmitchell.com> 241652284Sobrien 241752284Sobrien * class.c (instantiate_type): Return error_mark_node rather than 241852284Sobrien junk. 241952284Sobrien 242052284Sobrien1998-12-09 Mark Mitchell <mark@markmitchell.com> 242152284Sobrien 242252284Sobrien * cp-tree.h (most_specialized_instantiation): New function. 242352284Sobrien (print_candidates): Likewise. 242452284Sobrien * class.c (validate_lhs): Remove. 242552284Sobrien (resolve_address_of_overloaded_function): New function, split out 242652284Sobrien and then substantially reworked, from ... 242752284Sobrien (instantiate_type): Use it. Simplify. 242852284Sobrien * cvt.c (convert_to_reference): Complain when caller has indicated 242952284Sobrien that's the right thing to do. Don't crash if instantiate_type 243052284Sobrien fails. 243152284Sobrien * pt.c: Substitute `parameters' for `paramters' throughout. 243252284Sobrien (print_candidates): Don't make it static. 243352284Sobrien (most_specialized_instantiation): Split out from ... 243452284Sobrien (most_specialized): Here. 243552284Sobrien 243652284SobrienWed Dec 9 15:33:01 1998 Dave Brolley <brolley@cygnus.com> 243752284Sobrien 243852284Sobrien * lex.c (lang_init_options): Initialize cpplib. 243952284Sobrien * decl2.c (parse_options,cpp_initialized): Removed. 244052284Sobrien (lang_decode_option): Move initialization of cpplib to 244152284Sobrien lang_init_options. 244252284Sobrien 244352284Sobrien1998-12-09 Mark Mitchell <mark@markmitchell.com> 244452284Sobrien 244552284Sobrien * decl.c (grokdeclarator): Update the name of the TEMPLATE_DECL, as 244652284Sobrien well as the TYPE_DECL, when a typedef name is assigned to a 244752284Sobrien previously anonymous type. 244852284Sobrien 244952284Sobrien1998-12-08 Andrew MacLeod <amacleod@cygnus.com> 245052284Sobrien 245152284Sobrien * cp/except.c (call_eh_info): Use __start_cp_handler instead of 245252284Sobrien __cp_eh_info for getting the eh info pointer. Add table_index to 245352284Sobrien field list. 245452284Sobrien (push_eh_cleanup): Don't increment 'handlers' data field. 245552284Sobrien (process_start_catch_block): Don't set the 'caught' field. 245652284Sobrien 245752284Sobrien * cp/exception.cc (CP_EH_INFO): New macro for getting the 245852284Sobrien exception info pointer within library routines. 245952284Sobrien (__cp_eh_info): Use CP_EH_INFO. 246052284Sobrien (__start_cp_handler): Get exception info pointer, set caught field, 246152284Sobrien and increment the handlers field. Avoids this being done by handlers. 246252284Sobrien (__uncatch_exception, __check_eh_spec): Use CP_EH_INFO macro. 246352284Sobrien (uncaught_exception): Use CP_EH_INFO macro. 246452284Sobrien 246552284SobrienTue Dec 8 10:48:21 1998 Jeffrey A Law (law@cygnus.com) 246652284Sobrien 246752284Sobrien * Make-lang.in (cxxmain.o): Depend on $(DEMANGLE_H), not demangle.h 246852284Sobrien 246952284SobrienMon Dec 7 17:56:06 1998 Mike Stump <mrs@wrs.com> 247052284Sobrien 247152284Sobrien * lex.c (check_newline): Add support for \ as `natural' 247252284Sobrien characters in file names in #line to be consistent with #include 247352284Sobrien handling. We support escape processing in the # 1 "..." version of 247452284Sobrien the command. See also support in cp/lex.c. 247552284Sobrien 247652284Sobrien1998-12-07 Zack Weinberg <zack@rabi.phys.columbia.edu> 247752284Sobrien 247852284Sobrien * cp/decl2.c: s/data/opts/ when initializing cpp_reader 247952284Sobrien structure. 248052284Sobrien 248152284Sobrien1998-12-07 Jason Merrill <jason@yorick.cygnus.com> 248252284Sobrien 248352284Sobrien * decl.c (build_typename_type): Set DECL_ARTIFICIAL. 248452284Sobrien 248552284Sobrien * error.c (dump_simple_decl): Also print namespace context. 248652284Sobrien (dump_function_decl): Likewise. 248752284Sobrien 248852284Sobrien * decl2.c (ambiguous_decl): Don't print old value if it's 248952284Sobrien error_mark_node. 249052284Sobrien 249152284Sobrien * decl.c (lookup_name_real): Fix handling of local types shadowed 249252284Sobrien by a non-type decl. Remove obsolete code. 249352284Sobrien * cp-tree.h (DECL_FUNCTION_SCOPE_P): New macro. 249452284Sobrien 249552284Sobrien * lang-options.h: Add -fpermissive. 249652284Sobrien * decl2.c: Likewise. 249752284Sobrien * cp-tree.h: Add flag_permissive. 249852284Sobrien * decl.c (init_decl_processing): If neither -fpermissive or -pedantic 249952284Sobrien were specified, set flag_pedantic_errors. 250052284Sobrien * call.c (build_over_call): Turn dropped qualifier messages 250152284Sobrien back into pedwarns. 250252284Sobrien * cvt.c (convert_to_reference): Likewise. 250352284Sobrien * typeck.c (convert_for_assignment): Likewise. 250452284Sobrien 250552284Sobrien1998-12-05 Jason Merrill <jason@yorick.cygnus.com> 250652284Sobrien 250752284Sobrien * decl2.c (coerce_new_type): Use same_type_p. 250852284Sobrien (coerce_delete_type): Likewise. 250952284Sobrien 251052284Sobrien * call.c (check_dtor_name): Return 1, not error_mark_node. 251152284Sobrien 251252284Sobrien1998-12-04 Jason Merrill <jason@yorick.cygnus.com> 251352284Sobrien 251452284Sobrien * lex.c (handle_cp_pragma): Disable #pragma interface/implementation 251552284Sobrien if MULTIPLE_SYMBOL_SPACES. 251652284Sobrien 251752284Sobrien * pt.c (check_template_shadow): New fn. 251852284Sobrien * decl2.c (grokfield): Use it. 251952284Sobrien * decl.c (pushdecl): Likewise. 252052284Sobrien (pushdecl_class_level): Likewise. 252152284Sobrien (start_method): Likewise. 252252284Sobrien (xref_tag): Don't try to use 't' if we're defining. 252352284Sobrien 252452284Sobrien * call.c (check_dtor_name): Just return an error_mark_node. 252552284Sobrien * pt.c (lookup_template_class): Complain about using non-template here. 252652284Sobrien * parse.y (apparent_template_type): Not here. 252752284Sobrien 252852284Sobrien * pt.c (check_explicit_specialization): Complain about specialization 252952284Sobrien with C linkage. 253052284Sobrien 253152284Sobrien * lang-options.h: Add -f{no-,}implicit-inline-templates. 253252284Sobrien 253352284Sobrien * pt.c (convert_nontype_argument): Don't assume that any integer 253452284Sobrien argument is intended to be a constant-expression. 253552284Sobrien 253652284Sobrien1998-12-03 Mark Mitchell <mark@markmitchell.com> 253752284Sobrien 253852284Sobrien * class.c (handle_using_decl): Fix comment. Don't lookup 253952284Sobrien constructors in base classes. 254052284Sobrien (validate_lhs): Fix typo in comment. 254152284Sobrien * search.c (lookup_field_1): Don't return a USING_DECL. 254252284Sobrien 254352284Sobrien * cp-tree.h (DECL_ACCESS): Improve documentation. 254452284Sobrien 254552284Sobrien * decl.c (expand_static_init): Don't set the initialization-done 254652284Sobrien flag until the initialization is done. 254752284Sobrien 254852284Sobrien1998-12-02 Mark Mitchell <mark@markmitchell.com> 254952284Sobrien 255052284Sobrien * decl2.c (validate_nonmember_using_decl): Complain about using 255152284Sobrien declarations for class members. 255252284Sobrien 255352284Sobrien1998-11-29 Jason Merrill <jason@yorick.cygnus.com> 255452284Sobrien 255552284Sobrien * typeck2.c (process_init_constructor): Use same_type_p. 255652284Sobrien 255752284Sobrien * decl.c (check_tag_decl): Don't warn about null decl inside a 255852284Sobrien class. 255952284Sobrien 256052284Sobrien * pt.c (unify, case OFFSET_TYPE): Pass down 'strict' rather than 256152284Sobrien UNIFY_ALLOW_NONE. 256252284Sobrien (convert_nontype_argument): Use TYPE_PTRMEMFUNC_FN_TYPE. 256352284Sobrien (resolve_overloaded_unification): Strip baselinks. 256452284Sobrien 256552284SobrienFri Nov 27 13:07:23 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 256652284Sobrien 256752284Sobrien * g++spec.c: Don't prototype xmalloc. 256852284Sobrien 256952284Sobrien1998-11-25 Jason Merrill <jason@yorick.cygnus.com> 257052284Sobrien 257152284Sobrien * except.c (expand_throw): Use TYPE_PTR_P to check for pointers. 257252284Sobrien 257352284Sobrien * decl.c (check_tag_decl): Do complain about null friend decl at 257452284Sobrien file scope. 257552284Sobrien 257652284Sobrien1998-11-25 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> 257752284Sobrien 257852284Sobrien * lex.c (make_lang_type): Clear the whole struct lang_type, not 257952284Sobrien only the first multiple of sizeof (int). 258052284Sobrien 258152284Sobrien1998-11-24 Jason Merrill <jason@yorick.cygnus.com> 258252284Sobrien 258352284Sobrien * decl.c (start_decl): An explicit specialization of a static data 258452284Sobrien member is only a definition if it has an initializer. 258552284Sobrien 258652284Sobrien * except.c (expand_throw): Use cp_finish_decl for the throw temp. 258752284Sobrien * cvt.c (build_up_reference): Pass DIRECT_BIND down into 258852284Sobrien cp_finish_decl. 258952284Sobrien * init.c (expand_default_init): Check for DIRECT_BIND instead of 259052284Sobrien DECL_ARTIFICIAL. 259152284Sobrien 259252284Sobrien * call.c (build_over_call): Use build_decl. 259352284Sobrien 259452284Sobrien * except.c (expand_throw): Just use convert, not 259552284Sobrien build_reinterpret_cast. 259652284Sobrien 259752284Sobrien * lex.c (handle_generic_pragma): Use token_buffer. 259852284Sobrien 259952284Sobrien * decl.c (check_tag_decl): Don't complain about null friend decl. 260052284Sobrien 260152284Sobrien1998-11-24 Dave Pitts <dpitts@cozx.com> 260252284Sobrien 260352284Sobrien * Make-lang.in (DEMANGLER_PROG): Move the output arguments to the 260452284Sobrien first position. 260552284Sobrien * lex.c (check_newline): Use ISALPHA. 260652284Sobrien (readescape): Use ISGRAPH. 260752284Sobrien (yyerror): Use ISGRAPH. 260852284Sobrien 260952284Sobrien1998-11-24 Nathan Sidwell <nathan@acm.org> 261052284Sobrien 261152284Sobrien * search.c (get_abstract_virtuals): Do not use initial 261252284Sobrien CLASSTYPE_ABSTRACT_VIRTUALS. 261352284Sobrien * typeck2.c (abstract_virtuals_error): Show location of abstract 261452284Sobrien declaration. 261552284Sobrien * call.c (build_new_method_call): Use 261652284Sobrien CLASSTYPE_ABSTRACT_VIRTUAL, rather than recalculate. 261752284Sobrien * class.c (finish_struct_bits): Don't bother working out whether 261852284Sobrien get_abstract_virtuals will do anything, just do it. 261952284Sobrien 262052284Sobrien1998-11-24 Graham <grahams@rcp.co.uk> 262152284Sobrien 262252284Sobrien * typeck.c (build_component_ref): Remove unused statement. 262352284Sobrien 262452284Sobrien1998-11-24 Jason Merrill <jason@yorick.cygnus.com> 262552284Sobrien 262652284Sobrien * class.c (add_method): Catch invalid overloads. 262752284Sobrien 262852284Sobrien * class.c (add_method): Build up OVERLOADs properly for conversion ops. 262952284Sobrien * search.c (lookup_conversions): Handle getting real OVERLOADs. 263052284Sobrien (add_conversions): Likewise. Revert last change. 263152284Sobrien * call.c (add_conv_candidate): Pass totype to add_candidate instead 263252284Sobrien of fn. Don't add a new candidate if the last one was for the same 263352284Sobrien type. 263452284Sobrien (print_z_candidates): Handle getting a type as a function. 263552284Sobrien (joust): If we got two conversion candidates to the same type, 263652284Sobrien just pick one. 263752284Sobrien (build_object_call): Lose 'templates'. 263852284Sobrien (build_user_type_conversion_1): Handle getting real OVERLOADs. 263952284Sobrien 264052284Sobrien1998-11-23 Jason Merrill <jason@yorick.cygnus.com> 264152284Sobrien 264252284Sobrien * typeck2.c (process_init_constructor): If there are elements 264352284Sobrien that don't have initializers and they need to have constructors 264452284Sobrien run, supply them with initializers. 264552284Sobrien 264652284Sobrien * class.c (finish_struct_1): A class with a 0-width bitfield is 264752284Sobrien still empty. 264852284Sobrien 264952284Sobrien1998-11-23 Mark Mitchell <mark@markmitchell.com> 265052284Sobrien 265152284Sobrien * pt.c (instantiate_class_template): Don't try to figure out what 265252284Sobrien specialization to use for a partial instantiation. Correct 265352284Sobrien typos in a couple of comments. Avoid calling uses_template_parms 265452284Sobrien multiple times. 265552284Sobrien 265652284Sobrien1998-11-23 Benjamin Kosnik <bkoz@cygnus.com> 265752284Sobrien 265852284Sobrien * method.c (process_overload_item): Add call to 265952284Sobrien build_mangled_C9x_name for intTI_type_nodes. 266052284Sobrien (build_mangled_C9x_name): Add prototype, define. 266152284Sobrien * decl.c (init_decl_processing): Add names for 266252284Sobrien TImode_type_node. 266352284Sobrien 266452284Sobrien1998-11-23 Jason Merrill <jason@yorick.cygnus.com> 266552284Sobrien 266652284Sobrien * parse.y (named_class_head): Update CLASSTYPE_DECLARED_CLASS. 266752284Sobrien 266852284Sobrien * class.c (finish_struct_1): Set things up for 0-width bitfields 266952284Sobrien like we do for others. 267052284Sobrien 267152284Sobrien * decl.c (check_tag_decl): New fn. 267252284Sobrien (shadow_tag): Split out from here. 267352284Sobrien * decl2.c (grok_x_components): Call it. 267452284Sobrien 267552284Sobrien1998-11-22 Jason Merrill <jason@yorick.cygnus.com> 267652284Sobrien 267752284Sobrien * decl.c: Lose warn_about_return_type. 267852284Sobrien (grokdeclarator): Always complain about implicit int, except for 267952284Sobrien `main () { ... }'. 268052284Sobrien 268152284Sobrien * decl.c (tag_name): New fn. 268252284Sobrien (xref_tag): Complain about using typedef-name after class-key. 268352284Sobrien 268452284Sobrien * init.c (expand_vec_init): Also keep going if from_array. 268552284Sobrien 268652284Sobrien * tree.c (is_overloaded_fn): Also handle the output of 268752284Sobrien build_offset_ref. 268852284Sobrien 268952284Sobrien * decl.c (grokdeclarator): Use constructor_name when comparing 269052284Sobrien field name against enclosing class. 269152284Sobrien * class.c (finish_struct_anon): Likewise. 269252284Sobrien 269352284Sobrien1998-11-22 Mark Mitchell <mark@markmitchell.com> 269452284Sobrien 269552284Sobrien * decl.c (poplevel): Remove code to handle KEEP == 2. 269652284Sobrien (finish_function): Don't confuse BLOCK-order when 269752284Sobrien processing a destructor. 269852284Sobrien 269952284Sobrien1998-11-21 Jason Merrill <jason@yorick.cygnus.com> 270052284Sobrien 270152284Sobrien * decl.c (require_complete_types_for_parms): Call layout_decl 270252284Sobrien after we've completed the type. 270352284Sobrien 270452284Sobrien1998-11-21 Martin von L�wis <loewis@informatik.hu-berlin.de> 270552284Sobrien 270652284Sobrien * decl2.c (validate_nonmember_using_decl): Allow using templates 270752284Sobrien from the global namespace. 270852284Sobrien 270952284Sobrien1998-11-21 Jason Merrill <jason@yorick.cygnus.com> 271052284Sobrien 271152284Sobrien Handle specifying template args to member function templates. 271252284Sobrien * tree.c (build_overload): Always create an OVERLOAD for a template. 271352284Sobrien * search.c (add_conversions): Handle finding an OVERLOAD. 271452284Sobrien * decl2.c (check_classfn): Likewise. 271552284Sobrien * lex.c (identifier_type): See through a baselink. 271652284Sobrien * parse.y (do_id): Don't call do_identifier if we got a baselink. 271752284Sobrien * class.c (instantiate_type, case TREE_LIST): Recurse. 271852284Sobrien 271952284Sobrien * decl.c (grokdeclarator): Allow a boolean constant for array 272052284Sobrien bounds, odd as that sounds. 272152284Sobrien 272252284Sobrien * pt.c (unify): Be more strict about non-type parms, except for 272352284Sobrien array bounds. 272452284Sobrien (UNIFY_ALLOW_INTEGER): New macro. 272552284Sobrien 272652284Sobrien1998-11-19 Manfred Hollstein <manfred@s-direktnet.de> 272752284Sobrien 272852284Sobrien * Make-lang.in (mandir): Replace all uses of $(mandir) by $(man1dir). 272952284Sobrien 273052284Sobrien1998-11-19 Jason Merrill <jason@yorick.cygnus.com> 273152284Sobrien 273252284Sobrien * semantics.c (begin_class_definition): Call 273352284Sobrien maybe_process_partial_specialization before push_template_decl. 273452284Sobrien Don't call push_template_decl for a specialization. 273552284Sobrien * search.c (lookup_field): Do return a member template class. 273652284Sobrien * decl2.c (handle_class_head): Handle member template classes. 273752284Sobrien 273852284Sobrien * decl.c (grokdeclarator): A parm type need not be complete. 273952284Sobrien 274052284Sobrien * pt.c (convert_nontype_argument): Fix thinko. 274152284Sobrien 274252284Sobrien1998-11-18 Mark Mitchell <mark@markmitchell.com> 274352284Sobrien 274452284Sobrien * cp-tree.h (PTRMEM_CST_CLASS): Fix typo. 274552284Sobrien (global_delete_fndecl): New variable. 274652284Sobrien * decl.c (global_delete_fndecl): Define it. 274752284Sobrien (init_decl_processing): Set it. 274852284Sobrien * init.c (build_builtin_delete_call): Use it. 274952284Sobrien * tree.c (mapcar): Recursively call mapcar for the type of EXPR 275052284Sobrien nodes. 275152284Sobrien 275252284Sobrien1998-11-18 Jason Merrill <jason@yorick.cygnus.com> 275352284Sobrien 275452284Sobrien * decl.c (cplus_expand_expr_stmt): Always complain about unresolved 275552284Sobrien type. 275652284Sobrien 275752284Sobrien * tree.c (lvalue_p_1): An INDIRECT_REF to a function is an lvalue. 275852284Sobrien * call.c (build_object_call): Also support references to functions. 275952284Sobrien * typeck.c (convert_for_initialization): Don't decay a function 276052284Sobrien if the target is a reference to function. 276152284Sobrien 276252284Sobrien * search.c (add_conversions): Get all the overloads from a class. 276352284Sobrien 276452284Sobrien * decl.c (grok_ctor_properties): Complain about any constructor 276552284Sobrien that will take a single arg of the class type by value. 276652284Sobrien 276752284Sobrien * typeck2.c (build_functional_cast): Can't create objects of 276852284Sobrien abstract classes this way. 276952284Sobrien * cvt.c (ocp_convert): Likewise. 277052284Sobrien 277152284Sobrien * decl.c (grokfndecl): Member functions of local classes are not 277252284Sobrien public. 277352284Sobrien 277452284Sobrien1998-11-18 Mark Mitchell <mark@markmitchell.com> 277552284Sobrien 277652284Sobrien * Make-lang.in (cc1plus): Add dependency on hash.o. 277752284Sobrien 277852284Sobrien1998-11-18 Jason Merrill <jason@yorick.cygnus.com> 277952284Sobrien 278052284Sobrien * search.c (get_abstract_virtuals): Complain about virtuals with 278152284Sobrien no final overrider. 278252284Sobrien * typeck2.c (abstract_virtuals_error): Remove handling for virtuals 278352284Sobrien with no final overrider. 278452284Sobrien * class.c (override_one_vtable): Don't set DECL_ABSTRACT_VIRTUAL_P 278552284Sobrien on virtuals with no final overrider. 278652284Sobrien 278752284Sobrien * lex.c (reinit_parse_for_block): Add a space after the initial ':'. 278852284Sobrien 278952284Sobrien * class.c (finish_struct_1): Don't remove zero-width bit-fields until 279052284Sobrien after layout_type. 279152284Sobrien 279252284Sobrien * friend.c (do_friend): Don't set_mangled_name_for_decl. 279352284Sobrien 279452284Sobrien * class.c (finish_struct_anon): Complain about non-fields. 279552284Sobrien * decl2.c (build_anon_union_vars): Likewise. 279652284Sobrien 279752284Sobrien * decl.c (grokdeclarator): Normal data members can't have the same 279852284Sobrien name as the class, either. 279952284Sobrien * class.c (finish_struct_anon): Neither can members of an 280052284Sobrien anonymous union. 280152284Sobrien 280252284Sobrien1998-11-17 Mark Mitchell <mark@markmitchell.com> 280352284Sobrien 280452284Sobrien * cp-tree.h (TYPE_ALIAS_SET): Document language-dependent uses. 280552284Sobrien (TYPE_BINFO): Likewise. 280652284Sobrien (IS_AGGR_TYPE): Tweak. 280752284Sobrien (SET_IS_AGGR_TYPE): New macro. 280852284Sobrien (CLASS_TYPE_P): Tweak. 280952284Sobrien (lang_type): Group mark bitfields together. Remove linenum. 281052284Sobrien (CLASSTYPE_SOURCE_LINE): Remove macro. 281152284Sobrien (CLASSTYPE_MARKED_N): New macro. 281252284Sobrien (SET_CLASSTYPE_MARKED_N): Likewise. 281352284Sobrien (CLEAR_CLASSTYPE_MARKED_N): Likewise. 281452284Sobrien (CLASS_TYPE_MARKED_*): Use them. 281552284Sobrien (SET_CLASSTYPE_MARKED_*): Likewise. 281652284Sobrien (CLEAR_CLASSTYPE_MARKED_*): Likewise. 281752284Sobrien (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Likewise. 281852284Sobrien (TYPE_TEMPLATE_INFO): Handle TEMPLATE_TEMPLATE_PARMs as well. 281952284Sobrien (TYPENAME_TYPE_FULLNAME): Use TYPE_BINFO rather than CLASSTYPE_SIZE. 282052284Sobrien * class.c (class_cache_obstack): New variable. 282152284Sobrien (class_cache_firstobj): Likewise. 282252284Sobrien (finish_struct): Don't set CLASSTYPE_SOURCE_LINE. 282352284Sobrien (pushclass): Free the cache, when appropriate. 282452284Sobrien (popclass): Tidy. 282552284Sobrien (maybe_push_cache_obstack): Use class_cache_obstack. 282652284Sobrien * decl.c (include hash.h). 282752284Sobrien (typename_hash): New function. 282852284Sobrien (typename_compare): Likewise. 282952284Sobrien (build_typename_type): Check the hash table to avoid creating 283052284Sobrien duplicates. 283152284Sobrien (build_ptrmemfunc_type): Use SET_IS_AGGR_TYPE. 283252284Sobrien (grokdeclarator): Use CLASS_TYPE_P. 283352284Sobrien (xref_basetypes): Likewise. 283452284Sobrien (start_function): Likewise. Don't put current_class_ref on the 283552284Sobrien permanent obstack. 283652284Sobrien * error.c (dump_type_real): Use TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO 283752284Sobrien and TYPE_TI_ARGS. 283852284Sobrien * lex.c (note_got_semicolon): Use CLASS_TYPE_P. 283952284Sobrien (make_lang_type): Don't create TYPE_LANG_SPECIFIC and associated 284052284Sobrien fields for types other than class types. Do clear TYPE_ALIAS_SET 284152284Sobrien for types other than class types, though. 284252284Sobrien * method.c (build_overload_identifier): Use CLASS_TYPE_P and 284352284Sobrien TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO. 284452284Sobrien * pt.c (process_template_parm): Don't set 284552284Sobrien CLASSTYPE_GOT_SEMICOLON. 284652284Sobrien (lookup_template_class): Use TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO. 284752284Sobrien Coerce arguments on the momentary obstack. 284852284Sobrien (for_each_template_parm): Use TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO. 284952284Sobrien (instantiate_class_template): Calculate template arguments on the 285052284Sobrien momentary obstack. Tidy. 285152284Sobrien (tsubst_template_arg_vector): Use make_temp_vec. 285252284Sobrien (tsubst_aggr_type): Put template arguments on the momentary 285352284Sobrien obstack. 285452284Sobrien (tsubst_decl): Likewise. 285552284Sobrien (tsubst): Copy the array bounds index to the permanent obstack 285652284Sobrien before building index types. Use new macros. 285752284Sobrien (unify): Use new macros. 285852284Sobrien (do_type_instantiation): Likewise. 285952284Sobrien * search.c (lookup_fnfields_1): Use new macros. 286052284Sobrien (dfs_pushdecls): Build envelopes on the cache obstack. 286152284Sobrien (dfs_compress_decls): Use new macros. 286252284Sobrien (push_class_decls): Build on the cache obstack. 286352284Sobrien * semantics.c (finish_typeof): Don't set CLASSTYPE_GOT_SEMICOLON. 286452284Sobrien * sign.c (build_signature_pointer_or_reference_type): Use 286552284Sobrien SET_IS_AGGR_TYPE. 286652284Sobrien * tree.c (make_binfo): Check CLASS_TYPE_P. 286752284Sobrien (copy_template_template_parm): Adjust. 286852284Sobrien (make_temp_vec): Use push_expression_obstack. 286952284Sobrien * typeck.c (complete_type): Use new macros. 287052284Sobrien (comptypes): Likewise. 287152284Sobrien 287252284Sobrien1998-11-17 Jason Merrill <jason@yorick.cygnus.com> 287352284Sobrien 287452284Sobrien * pt.c (tsubst): Add diagnostics for invalid array, reference 287552284Sobrien and pointer to member types. 287652284Sobrien 287752284Sobrien1998-11-16 Jason Merrill <jason@yorick.cygnus.com> 287852284Sobrien 287952284Sobrien * typeck2.c (my_friendly_abort): Don't fatal twice in a row. 288052284Sobrien 288152284Sobrien * typeck.c (c_expand_start_case): Use build_expr_type_conversion. 288252284Sobrien Simplify. 288352284Sobrien 288452284Sobrien * parse.y (structsp): Fix cut-and-paste error. 288552284Sobrien 288652284Sobrien * init.c (build_new): Complain about non-integral size. 288752284Sobrien 288852284Sobrien * parse.y (unary_expr): Complain about defining types in sizeof. 288952284Sobrien 289052284Sobrien * typeck.c (expr_sizeof): Complain about sizeof an overloaded fn. 289152284Sobrien 289252284Sobrien * rtti.c (build_x_typeid): Complain about typeid without 289352284Sobrien including <typeinfo>. 289452284Sobrien (get_typeid): Likewise. Complain about typeid of incomplete type. 289552284Sobrien (get_tinfo_fn_dynamic): Likewise. 289652284Sobrien (get_typeid_1): Not static anymore. 289752284Sobrien * except.c (build_eh_type_type): Use get_typeid_1. 289852284Sobrien 289952284Sobrien * rtti.c (build_dynamic_cast_1): Give errors for dynamic_cast to 290052284Sobrien ambiguous or private bases. Fix warning for reference cast. 290152284Sobrien 290252284Sobrien1998-11-16 Mark Mitchell <mark@markmitchell.com> 290352284Sobrien 290452284Sobrien * cp-tree.h (DECL_TEMPLATE_INSTANTIATED): New macro. 290552284Sobrien * decl.c (duplicate_decls): Remove special-case code to deal with 290652284Sobrien template friends, and just do the obvious thing. 290752284Sobrien * pt.c (register_specialization): Tweak for clarity, and also to 290852284Sobrien clear DECL_INITIAL for an instantiation before it is merged with a 290952284Sobrien specialization. 291052284Sobrien (check_explicit_specialization): Fix indentation. 291152284Sobrien (tsubst_friend_function): Handle both definitions in friend 291252284Sobrien declaration and outside friend declarations. 291352284Sobrien (tsubst_decl): Don't clear DECL_INITIAL for an instantiation. 291452284Sobrien (regenerate_decl_from_template): Tweak accordingly. 291552284Sobrien (instantiate_decl): Likewise. 291652284Sobrien 291752284Sobrien1998-11-16 Jason Merrill <jason@yorick.cygnus.com> 291852284Sobrien 291952284Sobrien * decl.c (cplus_expand_expr_stmt): Promote warning about naked 292052284Sobrien member function reference to error. 292152284Sobrien * cvt.c (ocp_convert): Complain about converting an overloaded 292252284Sobrien function to void. 292352284Sobrien 292452284Sobrien * init.c (build_offset_ref): Just return a lone static member 292552284Sobrien function. 292652284Sobrien 292752284Sobrien * decl.c (cp_finish_decl): Only complain about real CONSTRUCTORs, 292852284Sobrien not internal ones. 292952284Sobrien 293052284Sobrien * typeck.c (build_binary_op_nodefault): Improve error handling. 293152284Sobrien 293252284Sobrien * decl.c (grokfndecl): Complain about making 'main' a template. 293352284Sobrien 293452284Sobrien * typeck.c (string_conv_p): Don't convert from wchar_t[] to char*. 293552284Sobrien 293652284Sobrien * call.c (build_method_call): Handle a BIT_NOT_EXPR around a 293752284Sobrien TYPE_DECL in a template. 293852284Sobrien 293952284Sobrien1998-11-15 Jason Merrill <jason@yorick.cygnus.com> 294052284Sobrien 294152284Sobrien * typeck2.c (my_friendly_abort): Add URL in the other case, too. 294252284Sobrien 294352284Sobrien * decl.c (struct cp_function): Add named_label_uses. 294452284Sobrien (push_cp_function_context): Save it. 294552284Sobrien (pop_cp_function_context): Restore it. 294652284Sobrien (define_label): Also complain about jumping into the scope of 294752284Sobrien non-POD objects that don't have constructors. 294852284Sobrien * tree.c (pod_type_p): New fn. 294952284Sobrien 295052284Sobrien * pt.c (instantiate_class_template): Clear TYPE_BEING_DEFINED sooner. 295152284Sobrien * rtti.c (synthesize_tinfo_fn): Call import_export_decl here. 295252284Sobrien (get_tinfo_fn): Not here. 295352284Sobrien * repo.c (repo_get_id): Abort if we get called for an incomplete 295452284Sobrien type. 295552284Sobrien 295652284Sobrien1998-11-13 Mark Mitchell <mark@markmitchell.com> 295752284Sobrien 295852284Sobrien * except.c (expand_throw): Make sure first argument to 295952284Sobrien __cp_push_exception is of type `void*' to avoid spurious error 296052284Sobrien messages. 296152284Sobrien 296252284Sobrien1998-11-11 Jason Merrill <jason@yorick.cygnus.com> 296352284Sobrien 296452284Sobrien * pt.c (try_one_overload): Take orig_targs again. Only check for 296552284Sobrien mismatches against them; we don't care what a previous call found. 296652284Sobrien (resolve_overloaded_unification): Adjust. 296752284Sobrien 296852284Sobrien * search.c (lookup_field): Don't return anything for a non-type 296952284Sobrien field from a dependent type. 297052284Sobrien * decl.c (grokdeclarator): Resolve SCOPE_REFs of the current class 297152284Sobrien in an array declarator. 297252284Sobrien (start_decl): Push into the class before looking for the field. 297352284Sobrien 297452284Sobrien1998-11-08 Mark Mitchell <mark@markmitchell.com> 297552284Sobrien 297652284Sobrien * method.c (build_overload_value): Handle REFERENCE_TYPE. 297752284Sobrien 297852284Sobrien1998-11-08 Martin von L�wis <loewis@informatik.hu-berlin.de> 297952284Sobrien 298052284Sobrien * decl.c (grokdeclarator): Allow namespace-scoped members if they 298152284Sobrien are friends. 298252284Sobrien 298352284Sobrien1998-11-08 Jason Merrill <jason@yorick.cygnus.com> 298452284Sobrien 298552284Sobrien * pt.c (tsubst_decl): Don't mess with the global value of an 298652284Sobrien un-mangled DECL_ASSEMBLER_NAME. 298752284Sobrien 298852284Sobrien1998-11-03 Christopher Faylor <cgf@cygnus.com> 298952284Sobrien 299052284Sobrien * decl.c (init_decl_processing): Remove CYGWIN conditional 299152284Sobrien since CYGWIN is now able to deal with trapping signals. 299252284Sobrien 299352284SobrienSat Nov 7 15:48:02 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 299452284Sobrien 299552284Sobrien * cp-tree.h: Don't include gansidecl.h. 299652284Sobrien * exception.cc: Include gansidecl.h (since we don't include config.h) 299752284Sobrien * g++spec.c: Don't include gansidecl.h. 299852284Sobrien 299952284Sobrien1998-11-06 Mark Mitchell <mark@markmitchell.com> 300052284Sobrien 300152284Sobrien * cp-tree.h (lang_decl_flags): Add defined_in_class. Decrease 300252284Sobrien size of dummy. 300352284Sobrien (DECL_DEFINED_IN_CLASS_P): New macro. 300452284Sobrien (TEMPLATE_PARMS_FOR_INLINE): Document. 300552284Sobrien (check_static_variable_definition): New function. 300652284Sobrien * decl.c (cp_finish_decl): Set DECL_DEFINED_IN_CLASS_P, if 300750397Sobrien appropriate. 300818334Speter (check_static_variable_definition): Split out from ... 300950397Sobrien (grokdeclarator): Here. 301018334Speter * pt.c (check_default_tmpl_args): New function, split out from ... 301152284Sobrien (push_template_decl_real): Here. 301252284Sobrien (instantiate_template): Fix comment. 301352284Sobrien 301452284Sobrien1998-11-04 Mark Mitchell <mark@markmitchell.com> 301552284Sobrien 301652284Sobrien * cp-tree.h (CP_TYPE_CONST_P): Make {0,1}-valued. 301752284Sobrien (CP_TYPE_VOLATILE_P): Likewise. 301852284Sobrien (CP_TYPE_RESTRICT_P): Likewise. 301952284Sobrien 302052284Sobrien1998-11-03 Mark Mitchell <mark@markmitchell.com> 302152284Sobrien 302252284Sobrien * pt.c (tsubst): Use build_index_type, not build_index_2_type. 302352284Sobrien 302452284Sobrien1998-11-02 Jason Merrill <jason@yorick.cygnus.com> 302552284Sobrien 302652284Sobrien * class.c (instantiate_type): Be more helpful. 302752284Sobrien 302852284Sobrien * decl2.c (import_export_decl): Call import_export_class. 302952284Sobrien 303052284Sobrien * cp-tree.h (EMPTY_CONSTRUCTOR_P): Check !TREE_HAS_CONSTRUCTOR. 303152284Sobrien * decl2.c (build_expr_from_tree): Propagate TREE_HAS_CONSTRUCTOR. 303252284Sobrien * pt.c (tsubst_copy): Likewise. 303352284Sobrien 303452284Sobrien1998-11-02 Mark Mitchell <mark@markmitchell.com> 303552284Sobrien 303652284Sobrien * init.c (expand_vec_init): Fix off-by-one error. 303752284Sobrien 303852284Sobrien1998-11-02 Alexandre Oliva <oliva@dcc.unicamp.br> 303952284Sobrien 304052284Sobrien * parse.y (apparent_template_type): New type. 304152284Sobrien (named_complex_class_head_sans_basetype): Use it. 304252284Sobrien * Makefile.in (CONFLICTS): One new conflict. 304352284Sobrien * parse.c: Regenerated. 304452284Sobrien 304552284Sobrien1998-11-01 Mark Mitchell <mark@markmitchell.com> 304652284Sobrien 304752284Sobrien * cp-tree.h (COMPARE_STRICT): New macro. 304852284Sobrien (COMPARE_BASE): Likewise. 304952284Sobrien (COMPARE_RELAXED): Likewise. 305052284Sobrien (COMPARE_REDECLARATION): Likewise. 305152284Sobrien (same_type_p): Likewise. 305252284Sobrien (same_or_base_type_p): Likewise. 305352284Sobrien * call.c (standard_conversion): Use them, in place of comptypes 305452284Sobrien with numeric arguments. 305552284Sobrien (reference_binding): Likewise. 305652284Sobrien (convert_like): Likewise. 305752284Sobrien (build_over_call): Likewise. 305852284Sobrien (is_subseq): Likewise. 305952284Sobrien (is_properly_derived_from): Likewise. 306052284Sobrien (compare_ics): Likewise. 306152284Sobrien (joust): Likewise. 306252284Sobrien * class.c (delete_duplicate_fields_1): Likewise. 306352284Sobrien (resolves_to_fixed_type_p): Likewise. 306452284Sobrien (instantiate_type): Likewise. Remove #if 0'd code. 306552284Sobrien * decl.c (decls_match): Likewise. Use COMPARE_REDECLARATION here. 306652284Sobrien (pushdecl): Likewise. 306752284Sobrien (lookup_name_real): Likewise. 306852284Sobrien (grokdeclarator): Likewise. Check for illegal array declarations. 306950397Sobrien (grokparms): Likewise. 307018334Speter (grok_op_properties): Likewise. 307150397Sobrien * decl2.c (check_classfn): Likewise. 307218334Speter * friend.c (is_friend): Likewise. 307352284Sobrien (make_friend_class): Likewise. 307452284Sobrien * init.c (expand_aggr_init): Likewise. 307552284Sobrien (expand_vec_init): Likewise. 307652284Sobrien * pt.c (is_member_template_class): Remove declaration. 307752284Sobrien (is_specialization_of): Use COMPARE_* and new macros. 307852284Sobrien (comp_template_parms): Likewise. 307918334Speter (convert_nontype_argument): Likewise. 308052284Sobrien (coerce_template_template_parms): Likewise. 308150397Sobrien (template_args_equal): Likewise. 308250397Sobrien (lookup_template_class): Likewise. 308352284Sobrien (type_unification_real): Likewise. 308452284Sobrien (unify): Likewise. 308518334Speter (get_bindings_real): Likewise. 308652284Sobrien * search.c (covariant_return_p): Likewise. 308752284Sobrien (get_matching_virtual): Likewise. 308852284Sobrien * sig.c (match_method_types): Likewise. 308952284Sobrien * tree.c (vec_binfo_member): Likewise. 309052284Sobrien (cp_tree_equal): Likewise. 309152284Sobrien * typeck.c (common_type): Likewise. 309252284Sobrien (comp_array_types): Likewise. Get issues involving unknown array 309352284Sobrien bounds right. 309452284Sobrien (comptypes): Update comments. Use new flags. 309552284Sobrien (comp_target_types): Use new macros. 309652284Sobrien (compparms): Likewise. 309752284Sobrien (comp_target_parms): Likewise. 309852284Sobrien (string_conv_p): Likewise. 309952284Sobrien (build_component_ref): Likewise. 310052284Sobrien (build_indirect_ref): Likewise. 310152284Sobrien (build_conditional_expr): Likewise. 310252284Sobrien (build_static_cast): Likewise. 310352284Sobrien (build_reinterpret_cast): Likewise. 310450397Sobrien (build_const_cast): Likewise. 310518334Speter (build_modify_expr): Likewise. 310652284Sobrien (convert_for_assignment): Likewise. 310718334Speter (comp_ptr_ttypes_real): Likewise. 310852284Sobrien (ptr_reasonably_similar): Likewise. 310952284Sobrien (comp_ptr_ttypes_const): Likewise. 311052284Sobrien 311152284Sobrien1998-10-31 Jason Merrill <jason@yorick.cygnus.com> 311252284Sobrien 311352284Sobrien * rtti.c (build_dynamic_cast_1): Fix cut-and-paste error. 311452284Sobrien 311552284Sobrien1998-10-30 Mark Mitchell <mark@markmitchell.com> 311652284Sobrien 311752284Sobrien * decl2.c (delete_sanity): Pass integer_zero_node, not 311852284Sobrien integer_two_node, to build_vec_delete. 311952284Sobrien * init.c (build_array_eh_cleanup): Remove. 312052284Sobrien (expand_vec_init_try_block): New function. 312152284Sobrien (expand_vec_init_catch_clause): Likewise. 312252284Sobrien (build_vec_delete_1): Don't deal with case that auto_delete_vec 312352284Sobrien might be integer_two_node anymore. 312452284Sobrien (expand_vec_init): Rework for initialization-correctness and 312552284Sobrien exception-correctness. 312652284Sobrien * typeck2.c (process_init_constructor): Make mutual exclusivity 312752284Sobrien of cases more obvious. 312852284Sobrien 312952284Sobrien1998-10-29 Jason Merrill <jason@yorick.cygnus.com> 313052284Sobrien 313152284Sobrien * decl.c (lookup_name_real): OK, only warn if not lexing. 313252284Sobrien Simplify suggested fix. 313352284Sobrien 313452284Sobrien * cp-tree.h (IDENTIFIER_MARKED): New macro. 313552284Sobrien * search.c (lookup_conversions): Use breadth_first_search. 313652284Sobrien (add_conversions): Avoid adding two conversions to the same type. 313752284Sobrien (breadth_first_search): Work with base binfos, rather 313852284Sobrien than binfos and base indices. 313952284Sobrien (get_virtual_destructor): Adjust. 314052284Sobrien (tree_has_any_destructor_p): Adjust. 314152284Sobrien (get_matching_virtual): Adjust. 314252284Sobrien 314352284Sobrien * pt.c (push_template_decl_real): Generalize check for incorrect 314452284Sobrien number of template parms. 314552284Sobrien (is_member_template_class): #if 0. 314652284Sobrien 314752284Sobrien1998-10-29 Richard Henderson <rth@cygnus.com> 314852284Sobrien 314952284Sobrien * Makefile.in (cc1plus): Put CXX_OBJS, and thence @extra_cxx_objs@, 315052284Sobrien last. 315152284Sobrien 315252284Sobrien1998-10-28 Zack Weinberg <zack@rabi.phys.columbia.edu> 315352284Sobrien 315450397Sobrien * lex.c: Call check_newline from lang_init always. After 315518334Speter calling cpp_start_read, set yy_cur and yy_lim to read from the 315652284Sobrien cpplib token buffer. 315752284Sobrien 315850397Sobrien1998-10-28 Jason Merrill <jason@yorick.cygnus.com> 315918334Speter 316052284Sobrien * class.c (instantiate_type): Don't consider templates for a normal 316152284Sobrien match. 316252284Sobrien 316352284Sobrien * class.c (finish_struct_1): Don't complain about non-copy 316452284Sobrien assignment ops in union members. 316552284Sobrien 316652284Sobrien * class.c (build_vtable): Don't pass at_eof to import_export_vtable. 316752284Sobrien (prepare_fresh_vtable): Likewise. 316852284Sobrien (finish_struct_1): Don't call import_export_class. 316952284Sobrien * decl2.c (finish_vtable_vardecl): Do import/export stuff. 317052284Sobrien (finish_prevtable_vardecl): Lose. 317152284Sobrien (finish_file): Don't call it. 317252284Sobrien * pt.c (instantiate_class_template): Likewise. 317352284Sobrien * cp-tree.h: Remove it. 317452284Sobrien 317552284Sobrien * init.c (build_delete): Reset TYPE_HAS_DESTRUCTOR here. 317652284Sobrien * decl.c (finish_function): Not here. 317752284Sobrien (start_function): Do set DECL_INITIAL. 317852284Sobrien 317952284Sobrien * pt.c (push_template_decl_real): Complain about default template 318052284Sobrien args for enclosing classes. 318152284Sobrien 318252284Sobrien * call.c (add_function_candidate): Treat conversion functions 318352284Sobrien as coming from the argument's class. 318452284Sobrien * cp-tree.h (DECL_CONV_FN_P): New fn. 318552284Sobrien (DECL_DESTRUCTOR_P): Also check DECL_LANGUAGE. 318652284Sobrien * class.c (add_method): Use DECL_CONV_FN_P. 318752284Sobrien * decl2.c (check_classfn): Likewise. 318852284Sobrien * error.c (dump_function_name): Likewise. 318952284Sobrien (dump_function_decl): Likewise. 319052284Sobrien * pt.c (fn_type_unification): Likewise. 319152284Sobrien * search.c (add_conversions): Likewise. 319252284Sobrien 319352284Sobrien1998-10-27 Jason Merrill <jason@yorick.cygnus.com> 319452284Sobrien 319552284Sobrien * lex.c (do_identifier): Also generate LOOKUP_EXPR for RESULT_DECL. 319652284Sobrien * method.c (hack_identifier): Also check for using RESULT_DECL 319752284Sobrien from outer context. 319852284Sobrien 319952284Sobrien1998-10-27 Mark Mitchell <mark@markmitchell.com> 320052284Sobrien 320152284Sobrien * decl.c (grokdeclarator): Use type_quals, rather than constp, 320252284Sobrien consistently. 320352284Sobrien 320452284Sobrien1998-10-27 Jason Merrill <jason@yorick.cygnus.com> 320552284Sobrien 320652284Sobrien * call.c (standard_conversion): instantiate_type here. 320752284Sobrien (reference_binding): And here. 320852284Sobrien (implicit_conversion): Not here. 320952284Sobrien (build_op_delete_call): No need to cons up an OVERLOAD. 321052284Sobrien * cvt.c (cp_convert_to_pointer): instantiate_type here. 321152284Sobrien (convert_to_reference): And here. 321252284Sobrien * decl.c (grok_reference_init): Not here. 321352284Sobrien (grokparms): Or here. 321452284Sobrien * typeck2.c (digest_init): Or here. 321552284Sobrien * typeck.c (decay_conversion): Take the address of overloaded 321652284Sobrien functions, too. 321752284Sobrien (require_instantiated_type): Lose. 321852284Sobrien (convert_arguments): Don't handle unknown types here. 321952284Sobrien (build_c_cast): Likewise. 322052284Sobrien (build_binary_op): Gut. 322152284Sobrien (build_conditional_expr): Don't require_instantiated_type. 322252284Sobrien (build_modify_expr): Likewise. 322352284Sobrien (build_static_cast): Don't instantiate_type. 322452284Sobrien (build_reinterpret_cast): Likewise. 322552284Sobrien (build_const_cast): Likewise. 322652284Sobrien (convert_for_initialization): Likewise. 322752284Sobrien (build_ptrmemfunc): Use type_unknown_p. 322852284Sobrien (convert_for_assignment): Also do default_conversion on overloaded 322952284Sobrien functions. Hand them off to ocp_convert. 323052284Sobrien 323152284Sobrien1998-10-26 Mark Mitchell <mark@markmitchell.com> 323252284Sobrien 323352284Sobrien * error.c (dump_decl): Deal with TEMPLATE_DECLs that are 323452284Sobrien VAR_DECLs. Handle vtables whose DECL_CONTEXT is not a type. 323552284Sobrien 323652284Sobrien * class.c (finish_struct_1): Use build_cplus_array_type to build 323752284Sobrien array types. 323852284Sobrien * decl.c (init_decl_processing): Likewise. 323952284Sobrien * except.c (expand_end_eh_spec): Likewise. 324052284Sobrien * search.c (expand_upcast_fixups): Simplify very slightly. 324152284Sobrien 324252284Sobrien1998-10-26 Jason Merrill <jason@yorick.cygnus.com> 324352284Sobrien 324452284Sobrien * decl.c (grokdeclarator): Complain about a variable using 324552284Sobrien constructor syntax coming back null from start_decl. 324652284Sobrien 324752284Sobrien * friend.c (make_friend_class): Complain about trying to make 324852284Sobrien a non-class type a friend. 324952284Sobrien 325052284Sobrien * decl.c (grokfndecl): Set DECL_INITIAL for a defn here. 325152284Sobrien (start_function): Not here. 325252284Sobrien 325352284Sobrien1998-10-26 Brendan Kehoe <brendan@cygnus.com> 325452284Sobrien 325552284Sobrien * decl.c (grokdeclarator): Disallow `explicit' in a friend declaration. 325652284Sobrien 325752284Sobrien1998-10-26 Jason Merrill <jason@yorick.cygnus.com> 325852284Sobrien 325952284Sobrien * typeck2.c (process_init_constructor): Only skip anonymous fields 326052284Sobrien if they are bitfields. 326152284Sobrien 326252284Sobrien * cp-tree.def (TYPEOF_TYPE): New code. 326352284Sobrien * error.c (dump_type_real): Handle it. 326452284Sobrien * pt.c (tsubst): Likewise. 326552284Sobrien * tree.c (search_tree): Likewise. 326652284Sobrien * semantics.c (finish_typeof): New fn. 326752284Sobrien * parse.y (typespec): Use it. 326852284Sobrien * cp-tree.h: Declare it. 326952284Sobrien 327052284Sobrien1998-10-26 Manfred Hollstein <manfred@s-direktnet.de> 327152284Sobrien 327252284Sobrien * cp-tree.h (FORMAT_VBASE_NAME): Make definition unconditional. 327352284Sobrien 327452284Sobrien1998-10-26 Jason Merrill <jason@yorick.cygnus.com> 327552284Sobrien 327652284Sobrien * typeck.c (convert_arguments): Don't handle pmf references 327752284Sobrien specially. 327852284Sobrien 327952284Sobrien * init.c (build_member_call): Don't try to convert to the base type 328052284Sobrien if it's ambiguous or pedantic. 328152284Sobrien 328252284Sobrien * typeck2.c (check_for_new_type): Only depend on pedantic for 328352284Sobrien C-style casts. 328452284Sobrien 328552284Sobrien1998-10-25 Mark Mitchell <mark@markmitchell.com> 328652284Sobrien 328752284Sobrien * decl.c (grokdeclarator): Set DECL_NONCONVERTING_P for all 328850397Sobrien non-converting constructors. 328918334Speter 329052284Sobrien1998-10-24 Martin von L�wis <loewis@informatik.hu-berlin.de> 329152284Sobrien 329252284Sobrien * gxxint.texi: Correct documentation for n, N, Q, and B. 329350397Sobrien 329450397Sobrien1998-10-23 Martin von L�wis <loewis@informatik.hu-berlin.de> 329518334Speter 329650397Sobrien * parse.y (condition): Convert VAR_DECL from reference to indirect 329750397Sobrien reference. 329850397Sobrien 329950397Sobrien1998-10-23 Andrew MacLeod <amacleod@cygnus.com> 330050397Sobrien 330150397Sobrien * exception.cc (__cp_pop_exception): Free the original exception 330250397Sobrien value, not the potentially coerced one. 330352284Sobrien 330418334Speter1998-10-23 Mark Mitchell <mark@markmitchell.com> 330552284Sobrien 330652284Sobrien * Makefile.in (hash.h): Run gperf when necessary. 330752284Sobrien 330852284Sobrien * cp-tree.h (CP_TYPE_READONLY): Remove. 330952284Sobrien (CP_TYPE_VOLATILE): Likewise. 331052284Sobrien (CP_TYPE_QUALS): New macro. 331152284Sobrien (CP_TYPE_CONST_P): Likewise. 331252284Sobrien (CP_TYPE_VOLATILE_P): Likewise. 331352284Sobrien (CP_TYPE_RESTRICT_P): Likewise. 331452284Sobrien (CP_TYPE_CONST_NON_VOLATILE_P): Likewise. 331552284Sobrien (cp_build_type_variant): Rename to ... 331652284Sobrien (cp_build_qualified_type): New function. 331752284Sobrien (c_apply_type_quals_to_decl): Declare. 331852284Sobrien (SIGNATURE_POINTER_NAME_FORMAT): Modify to allow `restrict'. 331952284Sobrien (SIGNATURE_REFERENCE_NAME_FORMAT): Likewise. 332052284Sobrien (cp_type_qual_from_rid): New function. 332152284Sobrien (compparms): Remove unused parameter. All callers changed. 332252284Sobrien (cp_type_quals): New function. 332352284Sobrien (at_least_as_qualified_p): Likewise. 332452284Sobrien (more_qualified_p): Likewise. 332552284Sobrien 332652284Sobrien * call.c (standard_conversion): Replace calls to 332752284Sobrien cp_build_type_variant with cp_build_qualified_type. Use 332852284Sobrien CP_TYPE_QUALS to get qualifiers and at_least_as_qualified_p to 332952284Sobrien compare them. Use CP_TYPE_* macros to check qualifiers. 333052284Sobrien (reference_binding): Likewise. 333152284Sobrien (implicit_conversion): Likewise. 333252284Sobrien (add_builtin_candidates): Likewise. 333352284Sobrien (build_over_call): Likewise. 333452284Sobrien * class.c (overrides): Compare all qualifiers, not just `const', 333552284Sobrien on method declarations. 333652284Sobrien * cvt.c (convert_to_reference): More CP_TYPE_QUALS conversion, etc. 333752284Sobrien (convert_pointer_to_real): Likewise. 333852284Sobrien (type_promotes_to): Likewise. 333952284Sobrien * decl.c (check_for_uninitialized_const_var): New function. 334052284Sobrien (init_decl_processing): More CP_TYPE_QUALS conversion, etc. 334152284Sobrien (cp_finish_decl): Use check_for_uninitialized_const_var. 334252284Sobrien (grokdeclarator): More CP_TYPE_QUALS conversion, etc. Update to 334352284Sobrien handle `restrict'. 334452284Sobrien (grok_ctor_properties): Likewise. 334552284Sobrien (grok_op_properties): Likewise. 334652284Sobrien (start_function): Likewise. 334752284Sobrien (rever_static_member_fn): Likewise. 334852284Sobrien * decl2.c (grok_method_quals): Likewise. 334952284Sobrien (grokfield): Likewise. 335052284Sobrien * error.c (dump_readonly_or_volatile): Rename to ... 335152284Sobrien (dump_qualifiers): New function. Handle `restrict'. 335252284Sobrien (dump_type_real): Use it. 335352284Sobrien (dump_aggr_type): Likewise. 335452284Sobrien (dump_type_prefix): Likewise. 335552284Sobrien (dump_type_suffix): Likewise. 335652284Sobrien (dump_function_decl): Likewise. 335752284Sobrien (cv_as_string): Likewise. 335852284Sobrien * gxx.gperf: Add __restrict and __restrict__. 335952284Sobrien * gxxint.texi: Document `u' as used for `__restrict', and a few 336052284Sobrien other previously undocumented codes. 336152284Sobrien * hash.h: Regenerated. 336252284Sobrien * init.c (expand_aggr_init): More CP_TYPE_QUALS conversion, etc. 336352284Sobrien (build_member_call): Likewise. 336452284Sobrien (build_new_1): Likewise. 336552284Sobrien * lex.c (init_parse): Add entry for RID_RESTRICT. 336652284Sobrien (cons_up_default_function): More CP_TYPE_QUALS conversion, etc. 336752284Sobrien (cp_type_qual_from_rid): Define. 336852284Sobrien * lex.h (enum rid): Add RID_RESTRICT. 336952284Sobrien * method.c (process_modifiers): Deal with `restrict'. 337052284Sobrien * parse.y (primary): More CP_TYPE_QUALS conversion, etc. 337152284Sobrien * parse.c: Regenerated. 337252284Sobrien * pt.c (convert_nontype_argument): More CP_TYPE_QUALS conversion, etc. 337352284Sobrien (tsubst_aggr_type): Likewise. 337452284Sobrien (tsubst): Likewise. 337552284Sobrien (check_cv_quals_for_unify): Likewise. 337652284Sobrien (unify): Likewise. 337752284Sobrien * rtti.c (init_rtti_processing): Likewise. 337852284Sobrien (build_headof): Likewise. 337952284Sobrien (get_tinfo_var): Likewise. 338052284Sobrien (buidl_dynamic_cast_1): Likewise. Fix `volatile' handling. 338152284Sobrien (expand_class_desc): Likewise. 338252284Sobrien (expand_attr_desc): Likewise. 338352284Sobrien (synthesize_tinfo_fn): Likewise. 338452284Sobrien * search.c (covariant_return_p): Likewise. Fix `volatile' handling. 338552284Sobrien (get_matching_virtual): Likewise. 338652284Sobrien (expand_upcast_fixups): Likewise. 338752284Sobrien * sig.c (build_signature_pointer_or_reference_name): Take 338852284Sobrien type_quals, not constp and volatilep. 338952284Sobrien (build_signature_pointer_or_reference_type): Likewise. 339052284Sobrien (match_method_types): More CP_TYPE_QUALS conversion, etc. 339152284Sobrien (build_signature_pointer_constructor): Likewise. 339252284Sobrien (build_signature_method_call): Likewise. 339352284Sobrien * tree.c (build_cplus_array_type): Likewise. 339452284Sobrien (cp_build_type_variant): Rename to ... 339552284Sobrien (cp_build_qualified_type): New function. Deal with `__restrict'. 339652284Sobrien (canonical_type_variant): More CP_TYPE_QUALS conversion, etc. 339752284Sobrien (build_exception_variant): Likewise. 339852284Sobrien (mapcar): Likewise. 339952284Sobrien * typeck.c (qualif_type): Likewise. 340052284Sobrien (common_type): Likewise. 340152284Sobrien (comptypes): Likewise. 340252284Sobrien (comp_cv_target_types): Likewise. 340352284Sobrien (at_least_as_qualified_p): Define. 340452284Sobrien (more_qualified_p): Likewise. 340552284Sobrien (comp_cv_qualification): More CP_TYPE_QUALS conversion, etc. 340652284Sobrien (compparms): Likewise. 340752284Sobrien (inline_conversion): Likewise. 340852284Sobrien (string_conv_p): Likewise. 340952284Sobrien (build_component_ref): Likewise. 341052284Sobrien (build_indirect_ref): Likewise. 341152284Sobrien (build_array_ref): Likewise. 341252284Sobrien (build_unary_op): Likewise. 341352284Sobrien (build_conditional_expr): Likewise. 341452284Sobrien (build_static_cast): Likewise. 341552284Sobrien (build_c_cast): Likewise. 341652284Sobrien (build_modify_expr): Likewise. 341752284Sobrien (convert_For_assignment): Likewise. 341852284Sobrien (comp_ptr_ttypes_real): Likewise. 341952284Sobrien (cp_type_quals): New function. 342052284Sobrien 342152284Sobrien1998-10-23 Jason Merrill <jason@yorick.cygnus.com> 342252284Sobrien 342352284Sobrien * cp-tree.h (CP_TYPE_READONLY): New macro to handle arrays. 342450397Sobrien (CP_TYPE_VOLATILE): Likewise. 342518334Speter * decl.c (grokdeclarator): Use them. 342650397Sobrien * tree.c (canonical_type_variant): Likewise. 342750397Sobrien 342818334Speter1998-10-22 Martin von L�wis <loewis@informatik.hu-berlin.de> 342952284Sobrien 343018334Speter * parse.y (named_class_head): Push into class while parsing the 343152284Sobrien base class list. 343252284Sobrien * decl2.c (push_scope, pop_scope): New functions. 343318334Speter * cp-tree.h: Declare them. 343452284Sobrien * init.c (build_new_1): Delay cleanup until end of full expression. 343552284Sobrien 343652284Sobrien1998-10-21 Jason Merrill <jason@yorick.cygnus.com> 343752284Sobrien 343852284Sobrien * typeck.c (build_component_ref): Use of a type here is an error. 343952284Sobrien 344052284Sobrien1998-10-19 Jason Merrill <jason@yorick.cygnus.com> 344152284Sobrien 344252284Sobrien Revamp references to member functions. 344352284Sobrien * method.c (hack_identifier): Call build_component_ref for a 344452284Sobrien reference to a member function. 344552284Sobrien * typeck.c (build_component_ref): Only return a single function 344652284Sobrien if it's static. Otherwise, return a COMPONENT_REF. 344752284Sobrien (build_x_function_call): Handle a COMPONENT_REF. 344852284Sobrien (build_unary_op): Handle all unknown-type things. 344952284Sobrien * decl2.c (arg_assoc): Handle COMPONENT_REF. 345052284Sobrien * class.c (instantiate_type): Complain if the function we get is a 345152284Sobrien nonstatic member function. Remove code for finding "compatible" 345252284Sobrien functions. 345352284Sobrien * pt.c (tsubst_copy): Handle NOP_EXPR. 345452284Sobrien * tree.c (build_dummy_object): New fn. 345552284Sobrien (maybe_dummy_object): New fn. 345652284Sobrien (is_dummy_object): New fn. 345752284Sobrien * cp-tree.h: Declare them. 345852284Sobrien * cvt.c (cp_convert_to_pointer): Use maybe_dummy_object. 345952284Sobrien * error.c (dump_expr, case OFFSET_REF): Use is_dummy_object. 346052284Sobrien * init.c (build_member_call): Use maybe_dummy_object and 346152284Sobrien is_dummy_object. 346252284Sobrien (build_offset_ref): Use maybe_dummy_object. 346352284Sobrien (resolve_offset_ref): Use is_dummy_object. 346452284Sobrien * typeck.c (build_x_function_call): Call build_dummy_object. 346552284Sobrien (unary_complex_lvalue): Call is_dummy_object. 346652284Sobrien 346752284Sobrien * typeck.c (build_component_addr): Make sure field is a field. 346852284Sobrien 346952284Sobrien * call.c (build_new_op): Delete obsolete code. 347052284Sobrien 347152284Sobrien * pt.c (tsubst, TEMPLATE*PARM*): Abort if we don't have any args. 347252284Sobrien 347352284Sobrien1998-10-18 Martin von L�wis <loewis@informatik.hu-berlin.de> 347452284Sobrien 347552284Sobrien * decl2.c (validate_nonmember_using_decl): Fix using-directives of 347652284Sobrien std if std is ignored. 347752284Sobrien 347852284Sobrien1998-10-18 Jason Merrill <jason@yorick.cygnus.com> 347952284Sobrien 348052284Sobrien * decl.c (grokvardecl): Fix thinko. 348152284Sobrien 348252284Sobrien * decl.c (grokdeclarator): Embedded attrs bind to the right, 348352284Sobrien not the left. 348452284Sobrien 348552284Sobrien * parse.y (fn.def2): Fix 'attrs' format. 348652284Sobrien 348752284Sobrien1998-10-18 Alastair J. Houghton <ajh8@doc.ic.ac.uk> 348852284Sobrien 348952284Sobrien * Makefile.in (CONFLICTS): Update. 349052284Sobrien * parse.y (expr_or_declarator_intern): New rule. 349152284Sobrien (expr_or_declarator, direct_notype_declarator, primary, 349252284Sobrien functional_cast): Use it. 349352284Sobrien (notype_declarator_intern): New rule. 349452284Sobrien (notype_declarator, complex_notype_declarator): Use it. 349552284Sobrien 349652284Sobrien1998-10-17 Jason Merrill <jason@yorick.cygnus.com> 349752284Sobrien 349852284Sobrien * decl.c (grokfndecl): Set DECL_CONTEXT to namespace if appropriate. 349952284Sobrien (grokvardecl): Likewise. 350052284Sobrien 350152284SobrienSat Oct 17 23:27:20 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 350252284Sobrien 350352284Sobrien * class.c (make_method_vec): Cast 1st argument of `bzero' to (PTR). 350452284Sobrien (add_method): Likewise for arguments 1 & 2 of `bcopy'. 350552284Sobrien 350652284Sobrien * decl.c (signal_catch): Mark with ATTRIBUTE_NORETURN. 350752284Sobrien 350852284Sobrien * pt.c (process_partial_specialization): Cast 1st argument of 350952284Sobrien `bzero' to (PTR). 351052284Sobrien 351152284Sobrien * tree.c (build_base_fields): Cast `base_align' to (int) when 351252284Sobrien comparing against one. 351352284Sobrien 351452284Sobrien1998-10-16 Mark Mitchell <mark@markmitchell.com> 351552284Sobrien 351652284Sobrien * decl.c (lookup_name_real): Handle template parameters for member 351752284Sobrien templates where said parameters have the same name as the 351852284Sobrien surrounding class. 351952284Sobrien 352052284Sobrien * decl.c (expand_static_init): Build cleanups before entering the 352152284Sobrien anonymous function used to do them to avoid access-checking 352252284Sobrien confusion. 352352284Sobrien 352452284Sobrien * decl.c (grokfndecl): Add back call to cplus_decl_attributes 352552284Sobrien accidentally removed by previous change, and make DECL_RTL here. 352652284Sobrien * class.c (add_method): Don't make DECL_RTL here. 352752284Sobrien 352852284Sobrien * pt.c (for_each_template_parm): Don't examine uninstantiated 352952284Sobrien default arguments. 353052284Sobrien 353152284Sobrien1998-10-16 Dave Brolley <brolley@cygnus.com> 353252284Sobrien 353352284Sobrien * lex.c (real_yylex): Fix unaligned access of wchar_t. 353452284Sobrien 353552284Sobrien1998-10-16 Mark Mitchell <mark@markmitchell.com> 353652284Sobrien 353752284Sobrien * class.c (add_method): Fix documentation to reflect previous 353852284Sobrien changes. Check for duplicate method declarations here. 353952284Sobrien * decl.c (decls_match): Handle FUNCTION_DECL vs TEMPLATE_DECL 354052284Sobrien correctly; such things never match. 354152284Sobrien (grokfndecl): Don't look for duplicate methods here. 354252284Sobrien * decl2.c (check_classfn): Don't assume names are mangled. 354352284Sobrien Don't add bogus member function declarations to a class before the 354452284Sobrien class type is complete. 354552284Sobrien (grokfield): Reformat error message. 354652284Sobrien * method.c (set_mangled_name_for_decl): Don't mangle names while 354752284Sobrien processing_template_decl. 354852284Sobrien 354952284Sobrien1998-10-16 Jason Merrill <jason@yorick.cygnus.com> 355052284Sobrien 355152284Sobrien * typeck.c (build_indirect_ref): Complain about a pointer to data 355252284Sobrien member, too. 355352284Sobrien * typeck2.c (build_m_component_ref): Don't indirect a pointer to 355452284Sobrien data member. 355552284Sobrien * init.c (resolve_offset_ref): Don't undo the above. 355652284Sobrien 355752284Sobrien * cp-tree.h (DECL_C_BIT_FIELD, SET_DECL_C_BIT_FIELD): New macros. 355852284Sobrien (struct lang_decl_flags): Add `bitfield'. 355952284Sobrien * class.c (finish_struct_1): Use DECL_C_BIT_FIELD instead of 356052284Sobrien DECL_BIT_FIELD. 356152284Sobrien * decl2.c (grokbitfield, grok_alignof): Likewise. 356252284Sobrien * init.c (build_offset_ref): Likewise. 356352284Sobrien * typeck.c (build_component_addr, expr_sizeof): Likewise. 356452284Sobrien * cvt.c (build_up_reference): Don't crash if taking the address 356552284Sobrien returns error_mark_node. 356652284Sobrien 356752284Sobrien * decl.c (grokfndecl): Also check ctype when checking for ::main(). 356852284Sobrien 356952284Sobrien1998-10-15 Jason Merrill <jason@yorick.cygnus.com> 357052284Sobrien 357152284Sobrien * decl.c (grokfndecl): ::main and __builtin_* get C linkage. 357252284Sobrien Do mangling here. 357352284Sobrien (grokdeclarator): Instead of here. 357452284Sobrien * friend.c (do_friend): Lose special handling of ::main and 357552284Sobrien __builtin_*. 357652284Sobrien * cp-tree.h (DECL_MAIN_P): Check for C linkage. 357752284Sobrien 357852284Sobrien * spew.c (yylex): Clear looking_for_typename if we got 357952284Sobrien 'enum { ... };'. 358052284Sobrien 358152284Sobrien1998-10-15 Mark Mitchell <mark@markmitchell.com> 358252284Sobrien 358352284Sobrien * class.c (maybe_warn_about_overly_private_class): Improve error 358452284Sobrien messages for class with only private constructors. 358552284Sobrien 358652284Sobrien * cp-tree.def (TYPENAME_TYPE): Add to documentation. 358752284Sobrien * cp-tree.h (TYPENAME_TYPE_FULLNAME): Document. 358852284Sobrien (build_typename_type): New function. 358952284Sobrien * decl.c (build_typename_type): Broken out from ... 359052284Sobrien (make_typename_type): Use it. 359152284Sobrien * search.c (lookup_field): Likewise. 359252284Sobrien 359352284Sobrien1998-10-14 Benjamin Kosnik <bkoz@rhino.cygnus.com> 359452284Sobrien 359552284Sobrien * pt.c (convert_nontype_argument): Check against type_referred_to. 359652284Sobrien * decl.c (grokvardecl): Check for declarator name before building 359752284Sobrien DECL_ASSEMBLER_NAME. 359852284Sobrien 359952284Sobrien1998-10-14 Mark Mitchell <mark@markmitchell.com> 360052284Sobrien 360152284Sobrien * pt.c (lookup_template_class): Add comment. 360252284Sobrien (instantiate_class_template): Don't mark the _TYPE node for 360350397Sobrien member class templates as an instantiation. 360418334Speter 360550397Sobrien1998-10-14 Jason Merrill <jason@yorick.cygnus.com> 360650397Sobrien 360718334Speter * decl.c (grokfndecl): Fix my thinko. 360852284Sobrien 360918334Speter1998-10-13 Jason Merrill <jason@yorick.cygnus.com> 361052284Sobrien 361152284Sobrien * tinfo2.cc (fast_compare): Remove. 361252284Sobrien (before): Just use strcmp. 361352284Sobrien * tinfo.cc (operator==): Just use strcmp. 361452284Sobrien 361552284Sobrien1998-10-13 Klaus-Georg Adams <Klaus-Georg.Adams@chemie.uni-karlsruhe.de> 361652284Sobrien 361752284Sobrien * decl.c (grokfndecl): Don't check for linkage in `extern "C"' 361852284Sobrien declarations. 361952284Sobrien 362052284Sobrien1998-10-13 Mark Mitchell <mark@markmitchell.com> 362152284Sobrien 362252284Sobrien * cp-tree.h (specializations_of_same_template_p): Remove. 362352284Sobrien * search.c (get_template_base): Don't use it. 362452284Sobrien (get_template_base_recursive): Likewise. 362552284Sobrien * pt.c (specializations_of_same_template_p): Remove. 362652284Sobrien (unify): Don't use it. 362752284Sobrien (lookup_template_class): Find the correct parent when setting 362852284Sobrien CLASSTYPE_TI_TEMPLATE. 362952284Sobrien 363052284Sobrien1998-10-12 Jason Merrill <jason@yorick.cygnus.com> 363152284Sobrien 363252284Sobrien * tinfo.cc (operator==): Always compare names. 363352284Sobrien 363452284Sobrien1998-10-12 Herman ten Brugge <Haj.Ten.Brugge@net.HCC.nl> 363552284Sobrien 363652284Sobrien * decl.c (start_function): Fix cut-and-paste error. 363752284Sobrien 363852284Sobrien1998-10-12 Jason Merrill <jason@yorick.cygnus.com> 363952284Sobrien 364052284Sobrien * inc/typeinfo: Add #pragma interface. 364152284Sobrien (operator!=): Just call operator==. 364252284Sobrien * tinfo.cc: Add #pragma implementation. 364352284Sobrien (operator==): Move from inc/typeinfo and tinfo2.cc. 364452284Sobrien Check __COMMON_UNRELIABLE instead of _WIN32. 364552284Sobrien 364652284Sobrien * typeck2.c (my_friendly_abort): Add URL. 364752284Sobrien 364852284Sobrien1998-10-12 Alastair J. Houghton <ajh8@doc.ic.ac.uk> 364952284Sobrien 365052284Sobrien * decl.c (start_method): Added extra parameter for attributes. 365152284Sobrien * cp-tree.h (start_method): Update prototype. 365252284Sobrien * parse.y (fn.def2): Update start_method parameter list. 365352284Sobrien 365452284Sobrien1998-10-11 Mark Mitchell <mark@markmitchell.com> 365552284Sobrien 365652284Sobrien * cp-tree.h (specializations_of_same_template_p): Declare. 365752284Sobrien * pt.c (specializations_of_same_template_p): New function. 365852284Sobrien (unify): Use it. 365952284Sobrien * search.c (get_template_base): Use it. 366052284Sobrien (get_template_base_recursive): Likewise. 366152284Sobrien 366252284Sobrien1998-10-10 Manfred Hollstein <manfred@s-direktnet.de> 366352284Sobrien 366452284Sobrien * decl2.c (start_objects): Add new variable `joiner' and 366552284Sobrien initialize it properly. 366652284Sobrien 366752284Sobrien1998-10-09 Mark Mitchell <mark@markmitchell.com> 366852284Sobrien 366952284Sobrien * search.c (expand_upcast_fixups): Tweak to match 1998-10-07 367052284Sobrien change to vtable types. 367152284Sobrien 367252284Sobrien * cvt.c (ocp_convert): Avoid infinite recursion caused by 367352284Sobrien 1998-10-03 change. 367452284Sobrien 367552284Sobrien1998-10-08 Jason Merrill <jason@yorick.cygnus.com> 367652284Sobrien 367752284Sobrien * pt.c (resolve_overloaded_unification): New fn. 367852284Sobrien (try_one_overload): Likewise. 367952284Sobrien (unify): Don't fail on unknown type. 368052284Sobrien (type_unification_real): Likewise. Use resolve_overloaded_unification 368152284Sobrien to handle an overloaded argument. 368252284Sobrien (template_args_equal): Split out... 368352284Sobrien (comp_template_args): From here. 368452284Sobrien (determine_specialization): Also allow a template with more 368552284Sobrien parms than were explicitly specified. 368652284Sobrien * cp-tree.h: Add template_args_equal. 368752284Sobrien * call.c (resolve_args): Remove TEMPLATE_ID_EXPR code. 368852284Sobrien 368952284SobrienThu Oct 8 15:58:30 1998 Anthony Green <green@cygnus.com> 369052284Sobrien 369152284Sobrien * semantics.c (finish_asm_stmt): Revert my 1998-09-28 369252284Sobrien change. 369352284Sobrien 369452284SobrienThu Oct 8 06:00:19 1998 Jeffrey A Law (law@cygnus.com) 369552284Sobrien 369652284Sobrien * typeck.c (unsigned_type): Only return TItype nodes when 369752284Sobrien HOST_BITS_PER_WIDE_INT is >= 64 bits. 369852284Sobrien (signed_type): Likewise. 369952284Sobrien * decl.c (intTI_type_node, unsigned_intTI_type_node): Only declare 370052284Sobrien when HOST_BITS_PER_WIDE_INT is >= 64 bits. 370152284Sobrien (init_decl_processing): Only create TItype nodes when 370252284Sobrien HOST_BITS_PER_WIDE_INT is >= 64 bits. 370352284Sobrien * cp-tree.h (intTI_type_node, unsigned_intTI_type_node): Only declare 370452284Sobrien when HOST_BITS_PER_WIDE_INT is >= 64 bits. 370552284Sobrien 370652284SobrienWed Oct 7 12:32:44 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 370752284Sobrien 370850397Sobrien * Makefile.in (hash.h): Add -L KR-C -F ', 0, 0' flags to gperf. 370950397Sobrien (gxx.gperf): Update comments describing invocation flags. 371018334Speter (hash.h): Regenerate using gperf 2.7.1 (19981006 egcs). 371152284Sobrien 371252284Sobrien1998-10-07 Mark Mitchell <mark@markmitchell.com> 371352284Sobrien 371452284Sobrien * class.c (finish_struct_1): Add commentary on previous change. 371552284Sobrien 371652284Sobrien * cp-tree.h (vtbl_ptr_type_node): New variable. 371752284Sobrien * class.c (build_vtbl_ref): Don't indirect through the vptr; it's 371852284Sobrien already of the right type. 371952284Sobrien (finish_struct_1): Make the vptr be of type vtbl_ptr_type_node. 372052284Sobrien Simplify code to grow vtable. 372152284Sobrien * decl.c (vtbl_ptr_type_node): Define. 372252284Sobrien (init_decl_processing): Initialize it. 372352284Sobrien 372452284Sobrien1998-10-06 Mark Mitchell <mark@markmitchell.com> 372552284Sobrien 372652284Sobrien * cp-tree.def (PTRMEM_CST): New tree node. 372752284Sobrien * cp-tree.h (ptrmem_cst): New type. 372852284Sobrien (lang_type): Remove local_typedecls. 372952284Sobrien (dummy): Increase to 12 bits from 11. 373052284Sobrien (CLASSTYPE_LOCAL_TYPEDECLS): Remove. 373152284Sobrien (PTRMEM_CST_CLASS): New macro. 373252284Sobrien (PTRMEM_CST_MEMBER): Likewise. 373352284Sobrien (current_access_specifier): New variable. 373452284Sobrien (current_class_type): Remove duplicate declaration. 373552284Sobrien (finish_struct): Change prototype. 373652284Sobrien (unreverse_member_declarations): New function. 373752284Sobrien (pushdecl_class_level): Change prototype. 373852284Sobrien (grok_enum_decls): Remove. 373950397Sobrien (fixup_anonymous_union): New function. 374018334Speter (grok_x_components): Change prototype. 374150397Sobrien (tsubst_chain): Remove. 374250397Sobrien (finish_member_template_decl): Likewise. 374350397Sobrien (check_explicit_specialization): Fix indentation. 374418334Speter (finish_class_definition): Change prototype. 374552284Sobrien (finish_member_class_template): Likewise. 374652284Sobrien (finish_member_declaration): New function. 374752284Sobrien (check_multiple_declarators): Likewise. 374852284Sobrien * class.c (class_stack_node_t): New type. 374952284Sobrien (current_class_base): Remove. 375052284Sobrien (current_class_stack): Change type. 375152284Sobrien (current_access_specifier): New variable. 375252284Sobrien (grow_method): Remove. 375352284Sobrien (check_member_decl_is_same_in_complete_scope): Break out from 375452284Sobrien finish_struct. 375552284Sobrien (make_method_vec): New function. 375652284Sobrien (free_method_vec): Likewise. 375752284Sobrien (add_implicitly_declared_members): Break out from finish_struct_1. 375852284Sobrien (free_method_vecs): New variable. 375952284Sobrien (add_method): Rework for direct use from parser. 376050397Sobrien (handle_using_decl): Watch for NULL_TREE while iterating through 376118334Speter CLASSTYPE_METHOD_VEC. 376250397Sobrien (finish_struct_methods): Don't build CLASSTYPE_METHOD_VEC here; 376318334Speter just do some error-checking. 376452284Sobrien (warn_hidden): Change iteration through CLASSTYPE_METHOD_VEC. 376552284Sobrien (finish_struct_1): Simplify. Use add_implicitly_declared_members. 376652284Sobrien (finish_struct): Change prototype. Simplify; fields and methods 376752284Sobrien are already set up at this point. 376850397Sobrien (init_class_processing): Set up current_class_stack. 376918334Speter (pushclass): Save current_access_specifier. 377050397Sobrien (popclass): Restore it. 377150397Sobrien (currently_open_class): Simplify. 377250397Sobrien (build_self_reference): Remove use of CLASSTYPE_LOCAL_TYPEDECLS. 377350397Sobrien * decl.c (saved_scope): Add access_specifier. 377452284Sobrien (maybe_push_to_top_level): Save it. 377518334Speter (pop_from_top_level): Restore it. 377650397Sobrien (maybe_process_template_type_declaration): Use 377718334Speter finish_member_declaration. 377852284Sobrien (pushtag): Likewise. 377952284Sobrien (pushdecl_class_level): Don't return a value. 378052284Sobrien (fixup_anonymous_union): Break out from grok_x_components. 378152284Sobrien (shadow_tag): Use it. 378252284Sobrien (xref_tag): Complain about using an elaborated type specifier to 378352284Sobrien reference a template type parameter or typedef name. 378452284Sobrien (xref_basetypes): Don't set CLASSTYPE_LOCAL_TYPEDECLS. 378552284Sobrien (current_local_enum): Remove. 378652284Sobrien (build_enumerator): Call finish_member_declaration. 378752284Sobrien (grok_enum_decls): Remove. 378852284Sobrien * decl2.c (grok_x_components): Simplify. 378952284Sobrien (check_classfn): Change iteration through CLASSTYPE_METHOD_VEC. 379052284Sobrien (grokfield): Don't set CLASSTYPE_LOCAL_TYPEDECLS. 379152284Sobrien (merge_functions): Add to comment. 379252284Sobrien (arg_assoc_type): Prototype. 379352284Sobrien (arg_assoc): Pass as many arguments as there are parameters. 379452284Sobrien * error.c (dump_expr): Handle PTRMEM_CST. Improve handling of 379552284Sobrien OFFSET_REF. 379652284Sobrien * expr.c (cpls_expand_expr): Remove dead code. Handle 379752284Sobrien PTRMEM_CST. 379852284Sobrien * friend.c (do_friend): Lookup friends when in nested classes. 379952284Sobrien Change comments. 380052284Sobrien * init.c (build_offset_ref): Do lookup even for classes that are 380152284Sobrien only partially defined. 380252284Sobrien (decl_constant_value): Remove dead code. 380352284Sobrien * method.c (build_overload_value): Remove hack where by TYPE was 380452284Sobrien not a TYPE. Handle PTRMEM_CST. 380552284Sobrien (build_template_parm_names): Don't pass a PARM_DECL where a TYPE 380652284Sobrien should go. 380752284Sobrien * parse.y (components, notype_components, component_decl, 380852284Sobrien component_decl_1, component_declarator, component_declarator0): 380952284Sobrien Now all are itype rather than ttype. Rework to add members to 381052284Sobrien classes on the fly. 381152284Sobrien (typesqpecqual_reserved): Use check_multiple_declarators. 381252284Sobrien (structsp): Update class to finish_class_definition. 381352284Sobrien (do_xref_defn): Unsplit into named_class_head. 381452284Sobrien (access_specifier): Set current_access_specifier. 381552284Sobrien * pt.c (set_current_access_from_decl): New function. 381652284Sobrien (finish_member_template_decl): Don't take the parameters. 381752284Sobrien (comp_template_args): Make more robust. 381852284Sobrien (lookup_template_class): Don't use current_local_enum. 381952284Sobrien (for_each_template_parm): Handle PTRMEM_CST. 382052284Sobrien (instantiate_class_template): Use set_current_access_from_decl, 382152284Sobrien finish_member_declaration and unreverse_member_declarations. Set 382252284Sobrien lineno/input_filename before generating implicit member functions. 382352284Sobrien (type_unification_real): Don't assume back-unification happens 382452284Sobrien only for the last argument. 382552284Sobrien (regenerate_decl_from_template): Call pushclass a bit earlier. 382652284Sobrien (tsubst_chain): Remove. 382752284Sobrien (tsubst_enum): Use set_current_access_from_decl. 382852284Sobrien (set_mangled_name_for_template_decl): Fix indentation. 382952284Sobrien * search.c (lookup_fnfields_1): Change iteration through 383052284Sobrien CLASSTYPE_METHOD_VEC. 383152284Sobrien (dfs_pushdecls): Likewise. 383252284Sobrien (dfs_compress_decls): Likewise. 383352284Sobrien (add_conversions): Likewise. 383452284Sobrien * semantics.c (finish_class_definition): Don't take components. 383552284Sobrien Change call to finish_struct. 383652284Sobrien (finish_member_declaration): New function. 383752284Sobrien (finish_member_class_template): Don't take template parameters. 383852284Sobrien Change call to grok_x_components. Call finish_member_template_decl. 383952284Sobrien (check_multiple_declarators): New function. 384052284Sobrien * sig.c (append_signature_fields): Work from the TYPE_METHODS, not 384152284Sobrien a passed in fieldlist. 384252284Sobrien * tree.c (search_tree): Handle PTRMEM_CST. 384352284Sobrien (mapcar): Likewise. 384452284Sobrien * typeck.c (unary_complex_lvalue): Build PTRMEM_CSTs, not 384552284Sobrien INTEGER_CSTs, for pointer-to-data members. 384652284Sobrien 384752284Sobrien * call.c (resolve_args): Resolve template specializations, if 384852284Sobrien possible. 384952284Sobrien 385052284SobrienTue Oct 6 07:57:26 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 385152284Sobrien 385252284Sobrien * Makefile.in (spew.o): Depend on toplev.h. 385352284Sobrien 385452284Sobrien * call.c (compare_ics): Initialize variables `deref_from_type2', 385552284Sobrien `deref_to_type1' and `deref_to_type2'. 385652284Sobrien 385752284Sobrien * except.c (get_eh_type): Hide prototype and definition. 385852284Sobrien (process_start_catch_block_old): Remove unused static prototype. 385952284Sobrien 386052284Sobrien * pt.c (tsubst_decl): Initialize variable `argvec'. 386152284Sobrien 386252284Sobrien * spew.c: Include toplev.h. 386352284Sobrien 386452284Sobrien1998-10-05 Jason Merrill <jason@yorick.cygnus.com> 386552284Sobrien 386652284Sobrien * pt.c (instantiate_decl): Do save and restore file position. 386752284Sobrien 386852284Sobrien1998-10-05 Martin von L�wis <loewis@informatik.hu-berlin.de> 386952284Sobrien 387052284Sobrien * method.c (build_decl_overload_real): Clear 387152284Sobrien numeric_output_need_bar after __. 387252284Sobrien 387352284Sobrien1998-10-05 Nathan Sidwell <nathan@acm.org> 387452284Sobrien 387552284Sobrien * call.c (build_new_method_call): Issue 'incomplete type' error, 387652284Sobrien if class is not defined. 387752284Sobrien 387852284Sobrien1998-10-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 387952284Sobrien 388052284Sobrien * call.c (build_object_call): Move declaration of variable 388152284Sobrien `fn' into the scope where it is used. Don't access variable 388252284Sobrien `fn' when it is uninitialized, instead use `fns'. 388352284Sobrien 388452284Sobrien1998-10-04 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> 388552284Sobrien 388652284Sobrien * errfn.c (cp_thing): Print buf as a string not as a printf format 388752284Sobrien to avoid problems with the operator%. Consequently, `%%' sequences 388852284Sobrien in format are copied as `%' in buf. 388952284Sobrien 389052284Sobrien1998-10-04 Jason Merrill <jason@yorick.cygnus.com> 389152284Sobrien 389252284Sobrien * pt.c (pop_tinst_level): Call extract_interface_info. 389352284Sobrien (instantiate_decl): Don't save and restore file position. 389452284Sobrien 389552284Sobrien * decl.c (cp_finish_decl): Make statics in extern inlines and 389652284Sobrien templates common, if possible and the target doesn't support weak 389752284Sobrien symbols. 389852284Sobrien 389952284Sobrien * decl.c (grokdeclarator): Remove redundant calls to 390052284Sobrien build_type_variant and some duplicated code. 390152284Sobrien * sig.c (build_signature_reference_type): Only take the type parm. 390252284Sobrien (build_signature_pointer_type): Likewise. 390352284Sobrien * tree.c (build_cplus_method_type): Adjust. 390452284Sobrien * cp-tree.h: Update. 390552284Sobrien 390652284Sobrien1998-10-04 Mark Mitchell <mark@markmitchell.com> 390752284Sobrien 390852284Sobrien * call.c (build_over_call): Make pedwarns about dropped qualifiers 390952284Sobrien into full-fledged errors. 391052284Sobrien * cvt.c (convert_to_reference): Likewise. 391152284Sobrien * typeck.c (convert_for_assignment): Likewise. 391252284Sobrien 391352284Sobrien * search.c (expand_upcast_vtables): In addition to unsetting 391452284Sobrien TREE_READONLY, remove top-level const type qualifier. 391552284Sobrien 391652284Sobrien1998-10-03 Mark Mitchell <mark@markmitchell.com> 391752284Sobrien 391852284Sobrien * class.c (current_class_ptr, current_class_ref): Clarify 391952284Sobrien documentation. 392052284Sobrien * cvt.c (ocp_convert): Don't expect fold to remove all trivial 392152284Sobrien NOP type conversions. 392252284Sobrien * decl.c (decls_match): Use comptypes directly; ignore 392352284Sobrien qualifiers on the DECL. 392452284Sobrien (duplicate_decls): Remove qualifier checks on DECL. 392552284Sobrien (grokdeclarator): Make the type built up include top-level 392652284Sobrien qualifiers. 392752284Sobrien * decl2.c (do_dtors): Fix spelling error. 392852284Sobrien * error.c (dump_simple_decl): Don't look at qualifiers on the decl 392952284Sobrien when printing type information. 393052284Sobrien * init.c (build_new_1): Add documentation. Deal with the fact 393152284Sobrien that type of allocated memory now contains qualifiers. 393252284Sobrien * lex.c (is_global): Improve error-recovery. 393352284Sobrien * sig.c (build_member_function_pointer): Don't cast away const 393452284Sobrien on fields of sigtable_entry_type. 393552284Sobrien * tree.c (lvalue_type): Don't look at top-level qualifiers on 393652284Sobrien expressions. 393752284Sobrien * typeck.c (decay_conversion): Likewise. 393852284Sobrien (build_component_ref): Make sure the type of the COMPONENT_REF 393952284Sobrien contains top-level qualifiers, as appropriate. Improve 394052284Sobrien error-handling. 394152284Sobrien (build_indirect_ref): Simplify. Don't strip top-level qualifiers. 394252284Sobrien (build_array_ref): Likewise. 394352284Sobrien (build_unary_op): Improve error-recovery. 394452284Sobrien (unary_complex_lvalue): Make taking the address a bound member 394552284Sobrien function an error, not a sorry. 394652284Sobrien (build_conditional_expr): Look at the type qualifiers, not the 394752284Sobrien qualifiers on the expression itself. 394852284Sobrien 394952284Sobrien1998-10-03 Jason Merrill <jason@yorick.cygnus.com> 395052284Sobrien 395152284Sobrien * decl2.c (merge_functions): Remove duplicates. 395252284Sobrien 395352284Sobrien * decl2.c: Add -f{no-,}implicit-inline-templates. 395452284Sobrien (import_export_decl): Check it. 395552284Sobrien 395652284Sobrien * decl.c (lookup_name_real): Template parms also take precedence 395752284Sobrien over implicit typename. Only warn if yylex. 395852284Sobrien 395952284Sobrien * typeck.c (build_conditional_expr): Only fold if ifexp is an 396052284Sobrien INTEGER_CST. 396152284Sobrien 396252284Sobrien * decl2.c (finish_vtable_vardecl): Check DECL_INTERFACE_KNOWN 396352284Sobrien instead of linkage. 396452284Sobrien 396552284Sobrien1998-10-01 Jason Merrill <jason@yorick.cygnus.com> 396652284Sobrien 396752284Sobrien * cp-tree.h (FORMAT_VBASE_NAME): New macro. 396852284Sobrien * class.c (build_vbase_pointer): Use it. 396952284Sobrien * rtti.c (expand_class_desc): Likewise. 397052284Sobrien * tree.c (build_vbase_pointer_fields): Likewise. 397152284Sobrien 397252284SobrienThu Oct 1 10:43:45 1998 Nick Clifton <nickc@cygnus.com> 397352284Sobrien 397452284Sobrien * decl.c (start_decl): Add invocation of 397552284Sobrien SET_DEFAULT_DECL_ATTRIBUTES, if defined. 397652284Sobrien (start_function): Add invocation of 397752284Sobrien SET_DEFAULT_DECL_ATTRIBUTES, if defined. 397852284Sobrien 397952284Sobrien * lex.c: Replace occurrences of HANDLE_SYSV_PRAGMA with 398052284Sobrien HANDLE_GENERIC_PRAGMAS. 398152284Sobrien 398252284Sobrien1998-09-28 Anthony Green <green@cygnus.com> 398352284Sobrien 398452284Sobrien * semantics.c (finish_asm_stmt): Always permit volatile asms. 398552284Sobrien 398652284Sobrien1998-09-28 Mark Mitchell <mark@markmitchell.com> 398752284Sobrien 398852284Sobrien * decl.c (grokdeclarator): Tighten checks for invalid 398952284Sobrien destructors. Improve error-messages and error-recovery. 399052284Sobrien * decl2.c (check_classfn): Don't assume that mangled destructor 399152284Sobrien names contain type information. 399252284Sobrien 399352284Sobrien1998-09-25 Jason Merrill <jason@yorick.cygnus.com> 399452284Sobrien 399552284Sobrien * search.c (get_base_distance): Remove assert. 399652284Sobrien 399752284Sobrien * decl2.c (build_anon_union_vars): Don't process a field with no 399850397Sobrien name. 399918334Speter (finish_anon_union): Also complain about local anon unions with no 400050397Sobrien members. 400150397Sobrien 400218334Speter1998-09-25 Martin von L�wis <loewis@informatik.hu-berlin.de> 400352284Sobrien 400452284Sobrien * decl.c (lookup_namespace_name): If the name is a namespace, 400552284Sobrien return it immediately. 400652284Sobrien 400752284SobrienFri Sep 25 11:45:38 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 400852284Sobrien 400952284Sobrien * cp-tree.h (define_case_label): Remove unused parameter. 401052284Sobrien (check_java_method): Likewise. 401152284Sobrien (grokclassfn): Likewise. 401252284Sobrien (expand_aggr_init): Likewise. 401352284Sobrien (build_x_delete): Likewise. 401452284Sobrien (maybe_end_member_template_processing): Likewise. 401552284Sobrien (unshare_base_binfos): Add prototype. 401652284Sobrien (string_conv_p): Likewise. 401752284Sobrien (my_friendly_abort): Mark with ATTRIBUTE_NORETURN. 401852284Sobrien 401952284Sobrien * cvt.c (build_up_reference): Remove unused parameter 402050397Sobrien `checkconst', all callers changed. 402118334Speter (build_type_conversion): Mark parameter `code' with 402252284Sobrien ATTRIBUTE_UNUSED. 402352284Sobrien (build_expr_type_conversion): Initialize variable `conv'. 402452284Sobrien 402550397Sobrien * decl.c (push_namespace): Initialize variable `d'. 402650397Sobrien (define_case_label): Remove unused parameter `decl', all callers 402750397Sobrien changed. 402818334Speter 402952284Sobrien * decl2.c (lang_decode_option): If !USE_CPPLIB, mark parameter 403052284Sobrien `argc' with ATTRIBUTE_UNUSED. 403152284Sobrien (grokclassfn): Remove unused parameter `cname', all callers 403252284Sobrien changed. 403352284Sobrien (check_java_method): Likewise for parameter `ctype'. 403452284Sobrien (copy_assignment_arg_p): Mark parameter `virtualp' with 403552284Sobrien ATTRIBUTE_UNUSED. 403652284Sobrien (finish_prevtable_vardecl): Likewise for parameter `prev'. 403752284Sobrien 403852284Sobrien * expr.c (extract_init): Likewise for parameters `decl' and `init'. 403952284Sobrien 404052284Sobrien * init.c (expand_aggr_init_1): Remove unused parameter 404152284Sobrien `alias_this', all callers changed. 404252284Sobrien (expand_aggr_init): Likewise. 404352284Sobrien (expand_default_init): Likewise. 404452284Sobrien (build_new_1): Initialize variable `susp'. 404552284Sobrien (build_x_delete): Remove unused parameter `type', all callers 404652284Sobrien changed. 404752284Sobrien 404852284Sobrien * lex.c (set_typedecl_interface_info): Mark parameter `prev' with 404952284Sobrien ATTRIBUTE_UNUSED. 405052284Sobrien (readescape): Use (unsigned) value in shift. 405152284Sobrien (real_yylex): Likewise. Likewise. Also cast `sizeof' to int when 405252284Sobrien comparing to a signed quantity. 405352284Sobrien 405452284Sobrien * pt.c (maybe_end_member_template_processing): Remove unused 405552284Sobrien parameter `decl', all callers changed. 405652284Sobrien (check_explicit_specialization): Add braces around empty body in 405752284Sobrien an else-statement. 405852284Sobrien (current_template_args): Initialize variable `args'. 405952284Sobrien (lookup_template_class): Likewise for variable `prev_local_enum'. 406052284Sobrien (tsubst_decl): Likewise for variable `r'. 406152284Sobrien (set_mangled_name_for_template_decl): Initialize variable 406252284Sobrien `context'. 406352284Sobrien 406452284Sobrien * spew.c (scan_tokens): Change type of parameter `n' to unsigned. 406552284Sobrien Likewise for variable `i'. 406652284Sobrien (yylex): Initialize variable `trrr'. 406752284Sobrien 406852284Sobrien * typeck.c (compparms): Mark variable `strict' with 406952284Sobrien ATTRIBUTE_UNUSED. 407052284Sobrien 407152284Sobrien * xref.c (simplify_type): Cast argument of ctype function to 407252284Sobrien `unsigned char'. 407352284Sobrien 407452284Sobrien1998-09-24 Mark Mitchell <mark@markmitchell.com> 407552284Sobrien 407652284Sobrien * cp-tree.h (language_lvalue_valid): Remove. 407752284Sobrien * decl.c (grokdeclarator): Don't disallow references to functions. 407852284Sobrien * tree.c (lvalue_p_1): New function, combining duplicated 407950397Sobrien code from ... 408018334Speter (lvalue_p): Use it. 408150397Sobrien (real_lvalue_p): Likewise. 408250397Sobrien * typeck.c (language_lvalue_valid): Remove. 408352284Sobrien (build_modify_expr): Treat FUNCTION_TYPEs as readonly, even though 408452284Sobrien they don't have TREE_READONLY set. 408552284Sobrien * typeck2.c (readonly_error): Add case for FUNCTION_DECLs. 408652284Sobrien 408752284Sobrien1998-09-24 Benjamin Kosnik <bkoz@loony.cygnus.com> 408852284Sobrien 408950397Sobrien * spew.c (yylex): Give diagnostic. 409050397Sobrien * hash.h (is_reserved_word): Add export. 409150397Sobrien * gxx.gperf: Likewise. 409252284Sobrien * lex.h (rid): Add RID_EXPORT. 409352284Sobrien * lex.c (init_parse): Likewise. 409450397Sobrien 409552284SobrienTue Sep 22 21:01:19 1998 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> 409652284Sobrien 409752284Sobrien * friend.c (do_friend): Make warning a full sentence. 409852284Sobrien 409952284Sobrien1998-09-22 Mark Mitchell <mark@markmitchell.com> 410052284Sobrien 410152284Sobrien * parse.y (component_decl_list): Improve error-recovery. 410252284Sobrien 410352284Sobrien1998-09-22 Benjamin Kosnik <bkoz@loony.cygnus.com> 410452284Sobrien 410552284Sobrien * decl.c (make_typename_type): Move error to point where name 410652284Sobrien variable can be used by dump_type. 410752284Sobrien 410852284Sobrien1998-09-22 Mark Mitchell <mark@markmitchell.com> 410952284Sobrien 411052284Sobrien * decl.c (grokfndecl): Improve error-recovery. 411152284Sobrien * decl2.c (grokfield): Likewise. 411252284Sobrien * pt.c (finish_member_template_decl): Likewise. 411352284Sobrien 411452284Sobrien1998-09-20 Martin von L�wis <loewis@informatik.hu-berlin.de> 411552284Sobrien 411652284Sobrien * method.c (hack_identifier): Finding multiple members is always 411752284Sobrien an error. 411852284Sobrien 411952284Sobrien1998-09-21 Per Bothner <bothner@cygnus.com> 412052284Sobrien 412152284Sobrien * Make-lang.in (c++-filt): Link libiberty.a after cxxmain.o. 412252284Sobrien 412352284SobrienMon Sep 21 01:53:05 1998 Felix Lee <flee@cygnus.com> 412452284Sobrien 412552284Sobrien * lex.c (init_lex): Use getenv ("LANG"), not GET_ENVIRONMENT (). 412652284Sobrien 412752284Sobrien1998-09-20 Mark Mitchell <mark@markmitchell.com> 412852284Sobrien 412952284Sobrien * class.c (maybe_warn_about_overly_private_class): Reformat. 413052284Sobrien 413152284Sobrien1998-09-17 Andrew MacLeod <amacleod@cygnus.com> 413252284Sobrien 413352284Sobrien * exception.cc (__cplus_type_matcher): Realign some code. 413452284Sobrien 413552284Sobrien1998-09-16 Mark Mitchell <mark@markmitchell.com> 413652284Sobrien 413752284Sobrien * Make-lang.in (tinfo.o): Use CXXFLAGS when compiling. 413852284Sobrien (tinfo2.o): Likewise. 413952284Sobrien (exception.o): Likewise. 414052284Sobrien (new.o): Likewise. 414152284Sobrien (opnew.o): Likewise. 414252284Sobrien (opnewnt.o): Likewise. 414352284Sobrien (opvnew.o): Likewise. 414452284Sobrien (opvnewnt.o): Likewise. 414552284Sobrien (opdel.o): Likewise. 414652284Sobrien (opdelnt.o): Likewise. 414752284Sobrien (opvdel.o): Likewise. 414852284Sobrien (opvdelnt.o): Likewise. 414952284Sobrien 415052284Sobrien1998-09-16 Richard Henderson <rth@cygnus.com> 415152284Sobrien 415252284Sobrien * decl.c (init_decl_processing): Kill __builtin_fp and __builtin_sp. 415352284Sobrien 415452284Sobrien1998-09-15 Alexandre Oliva <oliva@dcc.unicamp.br> 415552284Sobrien 415652284Sobrien * call.c (build_field_call): Handle static data members too. 415752284Sobrien 415852284Sobrien * typeck.c (comptypes): When comparing pointer types, check 415952284Sobrien whether referred types match even in strictest modes. 416052284Sobrien 416152284Sobrien1998-09-15 Mark Mitchell <mark@markmitchell.com> 416252284Sobrien 416352284Sobrien * cp-tree.h: Revert previous change. 416452284Sobrien (finish_struct_methods): Remove declaration. 416552284Sobrien * class.c: Revert previous change. 416652284Sobrien (maybe_warn_about_overly_private_class): New function. 416752284Sobrien (finish_struct_methods): Declare here, and make static. Remove 416852284Sobrien unnecessary parameters. Tidy slightly. Use 416952284Sobrien maybe_warn_about_overly_private_class. 417052284Sobrien (finish_struct_1): Adjust. Remove check for private constructors, 417152284Sobrien now done elsewhere. 417252284Sobrien (finish_struct): Adjust. 417352284Sobrien 417452284Sobrien1998-09-15 Andrew MacLeod <amacleod@cygnus.com> 417552284Sobrien 417652284Sobrien * except.c (expand_start_catch_block): No need to check for new 417752284Sobrien exception model. 417852284Sobrien (process_start_catch_block_old): Deleted. 417952284Sobrien (process_start_catch_block): Add call to start_decl_1(). 418052284Sobrien (expand_end_catch_block): Add call to end_catch_handler(). 418152284Sobrien * exception.cc (__cplus_type_matcher): Only check the exception 418252284Sobrien language if there is an exception table. 418352284Sobrien 418452284Sobrien1998-09-15 Andrew MacLeod <amacleod@cygnus.com> 418552284Sobrien 418652284Sobrien * search.c (expand_indirect_vtbls_init): Mark temporary stack slots 418752284Sobrien as used to prevent conflicts with virtual function tables. 418852284Sobrien 418952284Sobrien1998-09-14 Mark Mitchell <mark@markmitchell.com> 419052284Sobrien 419152284Sobrien * cp-tree.h (lang_type): Add has_non_private_static_mem_fn. 419252284Sobrien (CLASSTYPE_HAS_NON_PRIVATE_STATIC_MEM_FN): New macro, to access it. 419352284Sobrien * class.c (maybe_class_too_private_p): New function. 419452284Sobrien (finish_struct_methods): Use it. 419552284Sobrien (finish_struct_1): Likewise. 419652284Sobrien (finish_struct): Set CLASSTYPE_HAS_NON_PRIVATE_STATIC_MEM_FN if 419752284Sobrien appropriate. 419852284Sobrien 419952284Sobrien * pt.c (check_specialization_scope): Fix spelling error. 420052284Sobrien (check_explicit_specialization): Remove code to handle explicit 420152284Sobrien specializations in class scope; they are now correctly diagnosed 420252284Sobrien as errors. 420352284Sobrien 420452284Sobrien1998-09-10 Mark Mitchell <mark@markmitchell.com> 420552284Sobrien 420652284Sobrien * decl.c (pushdecl): Don't copy types if the 420752284Sobrien DECL_ABSTRACT_ORIGIN of the new decl matches the TYPE_NAME of the 420852284Sobrien type. 420952284Sobrien 421052284Sobrien1998-09-09 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu> 421152284Sobrien 421252284Sobrien * class.c (get_enclosing_class): New function. 421352284Sobrien (is_base_of_enclosing_class): Likewise. 421452284Sobrien * cp-tree.h (get_enclosing_class): Declare. 421552284Sobrien (is_base_of_enclosing_class): Likewise. 421652284Sobrien * pt.c (coerce_template_parms): Use them. 421752284Sobrien 421852284Sobrien1998-09-09 Jason Merrill <jason@yorick.cygnus.com> 421952284Sobrien 422052284Sobrien * g++spec.c (lang_specific_driver): Check whether MATH_LIBRARY is 422152284Sobrien null to decide whether to use it. 422252284Sobrien 422352284Sobrien * error.c (dump_type_real): Handle NAMESPACE_DECL. 422452284Sobrien * parse.y (base_class.1): Avoid crash on error. 422552284Sobrien 422652284Sobrien1998-09-08 Martin von L�wis <loewis@informatik.hu-berlin.de> 422752284Sobrien 422852284Sobrien * decl.c (make_typename_type): If context is a namespace, the code 422952284Sobrien is in error. 423052284Sobrien 423152284Sobrien1998-09-08 Mumit Khan <khan@xraylith.wisc.edu> 423252284Sobrien 423352284Sobrien * parse.y (nomods_initdcl0): Set up the parser stack correctly. 423452284Sobrien 423552284Sobrien1998-09-08 Mark Mitchell <mark@markmitchell.com> 423652284Sobrien 423752284Sobrien * cp-tree.h (anonymous_namespace_name): Declare. 423852284Sobrien * decl.c: Define it. 423952284Sobrien (push_namespace): Use anonymous_namespace_name, rather than local 424052284Sobrien static anon_name. 424152284Sobrien * error.c (dump_decl): If a namespace is named 424252284Sobrien anonymous_namespace_name, call it {anonymous}. 424352284Sobrien 424452284Sobrien * decl.c (grokparms): Distinguish between references and pointers 424552284Sobrien in error message. 424652284Sobrien 424752284Sobrien1998-09-08 Richard Henderson <rth@cygnus.com> 424852284Sobrien Mark Mitchell <mark@markmitchell.com> 424952284Sobrien 425052284Sobrien * pt.c (process_partial_specialization): Consistently allocate 425152284Sobrien and zero tpd.parms based on ntparms. Use tpd2.parms, not 425252284Sobrien tpd.parms, where appropriate. 425352284Sobrien 425452284SobrienSun Sep 6 00:00:51 1998 Jeffrey A Law (law@cygnus.com) 425552284Sobrien 425652284Sobrien * Makefile.in (INCLUDES): Update after recent toplevel gcc 425752284Sobrien reorganizations. 425852284Sobrien 425952284Sobrien1998-09-05 Mark Mitchell <mark@markmitchell.com> 426052284Sobrien 426152284Sobrien * cp-tree.h (TI_PENDING_SPECIALIZATION_FLAG): Remove. 426252284Sobrien * class.c (finish_struct): Remove hackery to deal with explicit 426352284Sobrien specializations in class scope. 426452284Sobrien * decl.c (grokfndecl): Improve error-recovery. 426552284Sobrien * decl2.c (grokfield): Likewise. 426652284Sobrien * pt.c (check_specialization_scope): New function. 426752284Sobrien (begin_specialization): Call it. 426852284Sobrien (process_partial_specialization): New function, split out from 426952284Sobrien push_template_decl. Check partial specializations more 427052284Sobrien stringently. 427152284Sobrien (push_template_decl): Call it. 427252284Sobrien (check_explicit_specialization): Don't attempt to handle explicit 427352284Sobrien specializations in class scope. 427452284Sobrien (template_parm_data): Document. Add current_arg and 427552284Sobrien arg_uses_template_parms. 427652284Sobrien (mark_template_parm): Set it. 427752284Sobrien (tsubst_arg_types): Remove unused variable. 427852284Sobrien * semantics.c (begin_class_definition): Tweak. 427952284Sobrien 428052284Sobrien1998-09-04 Mark Mitchell <mark@markmitchell.com> 428152284Sobrien 428252284Sobrien * inc/typeinfo (type_info::type_info(const char*)): Make 428352284Sobrien `explicit'. 428452284Sobrien 428552284Sobrien * cp-tree.h (hash_tree_cons_simple): New macro. 428652284Sobrien * pt.c (tsubst_arg_types): New function. Use hash_tree_cons. 428752284Sobrien (coerce_template_parms): Use make_temp_vec, instead of 428852284Sobrien make_tree_vec. Document this behavior. 428952284Sobrien (lookup_template_class): Likewise. 429052284Sobrien (tsubst, cases METHOD_TYPE, FUNCTION_TYPE): Use tsubst_arg_types. 429152284Sobrien Remove dead code (and add assertion to check its deadness). Fix 429252284Sobrien bug w.r.t. exception specifications. 429352284Sobrien 429452284Sobrien1998-09-03 Jason Merrill <jason@yorick.cygnus.com> 429552284Sobrien 429652284Sobrien * decl2.c (import_export_vtable): Always make artificials comdat. 429752284Sobrien (import_export_decl): Likewise. 429852284Sobrien * pt.c (mark_decl_instantiated): Likewise. 429952284Sobrien 430052284Sobrien1998-09-03 Mark Mitchell <mark@markmitchell.com> 430152284Sobrien 430252284Sobrien * cp-tree.h (finish_globally_qualified_member_call_expr): 430352284Sobrien Rename to ... 430452284Sobrien (finish_qualified_call_expr). 430552284Sobrien * semantics.c: Likewise. 430652284Sobrien * parse.y (primary): Use it. 430752284Sobrien * method.c (hack_identifier): Remove redundant code. 430852284Sobrien 430952284Sobrien * init.c (resolve_offset_ref): Call convert_from_reference to 431052284Sobrien handle members of reference type. Improve error recovery. 431152284Sobrien 431252284Sobrien1998-09-03 Benjamin Kosnik <bkoz@cygnus.com> 431352284Sobrien 431452284Sobrien * cp-tree.h: Declare warn_nontemplate_friend. 431552284Sobrien * decl2.c (lang_decode_option): Set. 431652284Sobrien * lang-options.h: Add -Wnon-template-friend. 431752284Sobrien * friend.c (do_friend): Use to toggle non-template function warning. 431852284Sobrien 431952284Sobrien1998-09-03 Mark Mitchell <mark@markmitchell.com> 432052284Sobrien 432152284Sobrien * decl.c (finish_enum): Don't resolve CONST_DECLs to their 432252284Sobrien corresponding INTEGER_CSTs when processing_template_decl. 432352284Sobrien * pt.c (tsubst_enum): Tweak accordingly. 432452284Sobrien 432552284Sobrien1998-09-03 Benjamin Kosnik <bkoz@rhino.cygnus.com> 432652284Sobrien 432752284Sobrien * decl.c (pushdecl_class_level): Add warning here. 432852284Sobrien (pushdecl): Tweak. 432952284Sobrien 433052284Sobrien1998-09-02 Jason Merrill <jason@yorick.cygnus.com> 433152284Sobrien 433252284Sobrien * cvt.c (convert_pointer_to_real): Tidy. 433352284Sobrien * search.c (get_base_distance_recursive): Simplify. 433452284Sobrien (get_base_distance): Likewise. 433552284Sobrien 433652284Sobrien * pt.c (unify): Only special-case INTEGER_TYPE if it uses template 433752284Sobrien parms. 433852284Sobrien 433952284SobrienWed Sep 02 09:25:29 1998 Nick Clifton <nickc@cygnus.com> 434052284Sobrien 434152284Sobrien * lex.c (check_newline): Call HANDLE_PRAGMA before 434252284Sobrien HANDLE_SYSV_PRAGMA if both are defined. Generate warning messages 434352284Sobrien if unknown pragmas are encountered. 434452284Sobrien (handle_sysv_pragma): Interpret return code from 434552284Sobrien handle_pragma_token (). Return success/failure indication rather 434652284Sobrien than next unprocessed character. 434752284Sobrien (pragma_getc): New function: retrieves characters from the 434852284Sobrien input stream. Defined when HANDLE_PRAGMA is defined. 434952284Sobrien (pragma_ungetc): New function: replaces characters back into the 435052284Sobrien input stream. Defined when HANDLE_PRAGMA is defined. 435152284Sobrien 435252284Sobrien1998-09-01 Jason Merrill <jason@yorick.cygnus.com> 435352284Sobrien 435452284Sobrien * decl2.c (output_vtable_inherit): Use %cDIGIT in the operands. 435552284Sobrien * class.c (build_vtable_entry_ref): Likewise. 435652284Sobrien 435752284Sobrien1998-09-01 Mark Mitchell <mark@markmitchell.com> 435852284Sobrien 435952284Sobrien * cp-tree.h (DECL_FRIEND_PSEUDO_TEMPLATE_INSTANTIATION): New macro. 436052284Sobrien * decl2.c (import_export_decl): Likewise. 436152284Sobrien * pt.c (instantiate_decl): Use it. 436252284Sobrien 436350397Sobrien1998-09-01 Jason Merrill <jason@yorick.cygnus.com> 436450397Sobrien 436552284Sobrien * decl.c (lookup_name_real): Also do implicit typename thing for 436652284Sobrien artificial TYPE_DECLs. 436752284Sobrien * search.c (lookup_field): Likewise. 436852284Sobrien (lookup_fnfields, lookup_field): Adjust for implicit typename kludge. 436952284Sobrien * semantics.c (begin_constructor_declarator): Use enter_scope_of. 437052284Sobrien (enter_scope_of): Extract type from implicit typename. 437152284Sobrien (begin_class_definition): Likewise. 437252284Sobrien * lex.c (identifier_type): Handle implicit typename when checking 437352284Sobrien for SELFNAME. 437452284Sobrien 437552284Sobrien * cp-tree.h: Declare flag_strict_prototype. 437652284Sobrien * lex.c (do_scoped_id, do_identifier): Don't implicitly_declare if 437752284Sobrien -fstrict-prototype. 437852284Sobrien * decl.c (init_decl_processing): If -f{no,-}strict-prototype wasn't 437952284Sobrien specified, set it to the value of pedantic. 438052284Sobrien 438152284Sobrien1998-09-01 Mark Mitchell <mark@markmitchell.com> 438252284Sobrien 438352284Sobrien * decl2.c (arg_assoc): Handle template-id expressions as arguments. 438452284Sobrien 438552284Sobrien1998-08-31 Mark Mitchell <mark@markmitchell.com> 438652284Sobrien 438752284Sobrien * decl.c (finish_enum): Handle member enums of classes declared in 438852284Sobrien template functions. 438952284Sobrien 439052284Sobrien * decl2.c (grok_x_components): Strip attributes before calling 439152284Sobrien groktypename. 439252284Sobrien 439352284Sobrien1998-08-31 Jason Merrill <jason@yorick.cygnus.com> 439452284Sobrien 439552284Sobrien * cp-tree.h, decl2.c: Remove support for -fall-virtual, 439652284Sobrien -fenum-int-equivalence and -fno-nonnull-objects. 439752284Sobrien * class.c (check_for_override): Remove support for -fall-virtual. 439852284Sobrien (finish_struct_1): Likewise. 439952284Sobrien * call.c (build_new_op): Remove support for -fenum-int-equivalence. 440052284Sobrien * typeck.c (build_binary_op_nodefault): Likewise. 440152284Sobrien * cvt.c (ocp_convert): Likewise. 440252284Sobrien * call.c (build_vfield_ref): Remove support for -fno-nonnull-objects. 440352284Sobrien * class.c (build_vbase_path): Likewise. 440452284Sobrien 440552284SobrienSun Aug 30 22:16:31 1998 H.J. Lu (hjl@gnu.org) 440652284Sobrien 440752284Sobrien * Makefile.in (INTERFACE): New, set to 1. 440852284Sobrien 440952284Sobrien1998-08-30 Mark Mitchell <mark@markmitchell.com> 441052284Sobrien 441152284Sobrien * error.c (dump_decl): Use CP_DECL_CONTEXT, not DECL_CONTEXT, when 441252284Sobrien comparing with global_namespace. 441352284Sobrien (dump_aggr_type): Likewise. 441452284Sobrien 441552284Sobrien * decl.c (grokfndecl): Issue error on declaration of friend 441652284Sobrien templates with explicit template arguments. 441752284Sobrien 441852284Sobrien * pt.c (convert_template_argument): New function, split out 441952284Sobrien from... 442052284Sobrien (coerce_template_parms): Here. 442152284Sobrien (tsubst): Attempt better error-recovery. 442252284Sobrien 442352284Sobrien1998-08-28 Benjamin Kosnik <bkoz@loony.cygnus.com> 442452284Sobrien 442552284Sobrien * pt.c (decl_template_parm_p): Add checks for 442652284Sobrien TEMPLATE_TEMPLATE_PARM. 442752284Sobrien 442852284Sobrien1998-08-28 Mark Mitchell <mark@markmitchell.com> 442952284Sobrien 443052284Sobrien * lex.c (do_identifier): Fix thinko in previous change. 443152284Sobrien 443252284Sobrien1998-08-28 Jason Merrill <jason@yorick.cygnus.com> 443352284Sobrien 443452284Sobrien * search.c (dfs_search, binfo_for_vtable, dfs_bfv_helper): New fns. 443552284Sobrien * decl2.c (output_vtable_inherit): Call binfo_for_vtable. 443652284Sobrien 443752284Sobrien1998-08-28 Richard Henderson <rth@cygnus.com> 443852284Sobrien 443952284Sobrien Add support for discarding unused virtual functions. 444052284Sobrien * lang-options.h: Add -fvtable-gc. 444152284Sobrien * cp-tree.h: Add flag_vtable_gc. 444252284Sobrien * decl2.c (output_vtable_inherit): New fn. 444352284Sobrien (finish_vtable_vardecl): Call it. 444452284Sobrien * class.c (build_vtable_entry_ref): New fn. 444552284Sobrien (build_vtbl_ref): Call it. 444652284Sobrien 444752284Sobrien1998-08-28 Mark Mitchell <mark@markmitchell.com> 444852284Sobrien 444952284Sobrien * cp-tree.h (build_enumerator): Take the enumeration type as a 445052284Sobrien parameter. 445152284Sobrien * decl.c (finish_enum): Don't set the TREE_TYPE for the 445252284Sobrien enumeration constant values if we're processing_template_decls. 445352284Sobrien Don't set the type for the CONST_DECLs either; that's done in 445452284Sobrien build_enumerator. 445552284Sobrien (build_enumerator): Take the enumeration type as a 445652284Sobrien parameter. 445752284Sobrien * lex.c (do_identifier): Don't resolve enumeration constants while 445852284Sobrien processing template declarations, even if they happen to be 445952284Sobrien TEMPLATE_PARM_INDEXs. 446052284Sobrien 446152284Sobrien * parse.y (current_enum_type): New variable. 446252284Sobrien (primary): Don't allow statement-expression in local classes just 446352284Sobrien as we don't in global classes. 446452284Sobrien (structsp): Use current_enum_type. 446552284Sobrien (enum_list): Likewise. 446652284Sobrien * pt.c (tsubst_enum): Don't check for NOP_EXPRs introduced by 446752284Sobrien finish_enum; they no longer occur. 446852284Sobrien 446952284Sobrien * cp-tree.h (finish_base_specifier): New function. 447052284Sobrien * parse.y (base_class): Use it. 447152284Sobrien * semantics.c (finish_base_specifier): Define it. 447252284Sobrien 447352284Sobrien * parse.y (structsp): Warn on use of typename outside of template 447452284Sobrien declarations. 447552284Sobrien 447652284Sobrien1998-08-27 Jason Merrill <jason@yorick.cygnus.com> 447752284Sobrien 447852284Sobrien * lex.c (handle_cp_pragma): Remove #pragma vtable. 447952284Sobrien * lang-options.h: Remove +e options. 448052284Sobrien * decl2.c (lang_decode_option): Likewise. 448152284Sobrien (import_export_vtable): Don't check write_virtuals. 448252284Sobrien (finish_vtable_vardecl, finish_file): Likewise. 448352284Sobrien * search.c (dfs_debug_mark): Likewise. 448452284Sobrien * semantics.c (begin_class_definition): Likewise. 448552284Sobrien * class.c (build_vtable, finish_vtbls, finish_struct_1): Likewise. 448652284Sobrien 448752284Sobrien * call.c (build_over_call): Check flag_elide_constructors. 448852284Sobrien * decl2.c: flag_elide_constructors defaults to 1. 448952284Sobrien * typeck.c (convert_arguments): Remove return_loc parm. 449052284Sobrien (build_function_call_real): Adjust. 449152284Sobrien 449252284Sobrien * search.c: Tear out all mi_matrix and memoize code. 449352284Sobrien (lookup_field, lookup_fnfields): Use scratch_tree_cons. 449452284Sobrien * lang-options.h: Remove documentation for -fhandle-exceptions, 449552284Sobrien -fmemoize-lookups and -fsave-memoized. 449652284Sobrien * cp-tree.h: Lose mi_matrix and memoize support. 449752284Sobrien * decl2.c: Ignore -fmemoize-lookups and -fsave-memoized. 449852284Sobrien * class.c: Lose struct class_level. 449952284Sobrien (pushclass, popclass): Lose memoize support. 450052284Sobrien * init.c (build_offset_ref): Likewise. 450152284Sobrien 450252284Sobrien Never change BINFO_INHERITANCE_CHAIN. 450352284Sobrien * init.c (emit_base_init): Change modification of 450452284Sobrien BINFO_INHERITANCE_CHAIN to an assert. 450552284Sobrien * search.c (get_base_distance_recursive): Likewise. 450652284Sobrien (get_base_distance): Likewise. 450752284Sobrien (lookup_member): Likewise. 450852284Sobrien (convert_pointer_to_single_level): Likewise. 450952284Sobrien (lookup_field): Likewise. Lose setting TREE_VIA_* on TREE_LISTs. 451052284Sobrien (lookup_fnfields): Likewise. 451152284Sobrien * tree.c (propagate_binfo_offsets): Don't call unshare_base_binfos. 451252284Sobrien (unshare_base_binfos): Don't call propagate_binfo_offsets. 451352284Sobrien (layout_basetypes): Call propagate_binfo_offsets instead of 451452284Sobrien unshare_base_binfos. 451552284Sobrien * decl.c (xref_basetypes): Call unshare_base_binfos. 451652284Sobrien * pt.c (instantiate_class_template): Likewise. 451752284Sobrien * tree.c (reverse_path): Remove 'copy' parm; always make a 451852284Sobrien temporary copy. 451952284Sobrien * class.c (build_vbase_path): Just call it. 452052284Sobrien * search.c (compute_access): Likewise. Don't re-reverse. 452152284Sobrien 452252284Sobrien1998-08-27 Mark Mitchell <mark@markmitchell.com> 452352284Sobrien 452452284Sobrien * class.c (build_vbase_path): Use reverse_path. 452552284Sobrien (finish_base_struct): Move warnings for inaccessible bases to 452652284Sobrien layout_basetypes. 452752284Sobrien (modify_one_vtable): Remove check of TREE_USED (binfo). 452852284Sobrien (fixup_vtable_deltas1): Likewise. 452952284Sobrien * cp-tree.h (BINFO_INHERITANCE_CHAIN): Document here. 453052284Sobrien (xref_tag): Remove binfos parameter. 453152284Sobrien (make_binfo): Remove chain parameter. 453252284Sobrien (reverse_path): Add copy parameter. 453352284Sobrien * decl.c (init_decl_processing): Change calls to xref_tag. 453452284Sobrien (xref_tag): Remove binfos parameter. 453552284Sobrien (xref_basetypes): Change calls to make_binfo. 453652284Sobrien * decl2.c (grok_x_components): Change calls to xref_tag. 453752284Sobrien (handle_class_head): Likewise. 453852284Sobrien * friend.c (do_friend): Likewise. 453952284Sobrien * lex.c (make_lang_type): Change calls to make_binfo. 454052284Sobrien * parse.y (structsp): Change calls to xref_tag. 454152284Sobrien (named_complex_class_head_sans_basetype): Likewise. 454252284Sobrien (named_class_head): Likewise. 454352284Sobrien * rtti.c (init_rtti_processing): Likewise. 454452284Sobrien * search.c (compute_access): Change calls to reverse_path. 454552284Sobrien (dfs_get_vbase_types): Change calls to make_binfo. 454652284Sobrien (get_vbase_types): Remove dead code. 454752284Sobrien * tree.c (unshare_base_binfos): Change calls to make_binfo. 454852284Sobrien (layout_basetypes): Warn here about inaccessible bases. 454952284Sobrien (make_binfo): Remove chain parameter. 455052284Sobrien (reverse_path): Add copy parameter. 455152284Sobrien 455252284Sobrien1998-08-27 Jason Merrill <jason@yorick.cygnus.com> 455352284Sobrien 455452284Sobrien * class.c: #if 0 complete_type_p. 455552284Sobrien * init.c (build_java_class_ref, build_new_1): Remove unused locals. 455652284Sobrien * method.c (process_overload_item): Likewise. 455752284Sobrien * typeck.c (comp_target_types): Likewise. 455852284Sobrien 455952284Sobrien Stop sharing binfos for indirect virtual bases. 456052284Sobrien * tree.c (propagate_binfo_offsets): Unshare vbases, too. 456152284Sobrien (layout_basetypes): Likewise. 456252284Sobrien (unshare_base_binfos): Copy vbases, too. 456352284Sobrien * cp-tree.h (BINFO_VIA_PUBLIC, BINFO_BASEINIT_MARKED, 456452284Sobrien BINFO_VBASE_INIT_MARKED): Remove obsolete macros. 456552284Sobrien (BINFO_PUSHDECLS_MARKED, SET_BINFO_PUSHDECLS_MARKED, 456652284Sobrien CLEAR_BINFO_PUSHDECLS_MARKED): New macros. 456752284Sobrien * search.c (lookup_field, lookup_fnfields, lookup_member): Remove 456852284Sobrien reference to BINFO_VIA_PUBLIC. 456952284Sobrien (marked_pushdecls_p, unmarked_pushdecls_p): New fns. 457052284Sobrien (push_class_decls): Use them. 457152284Sobrien (dfs_pushdecls): Use SET_BINFO_PUSHDECLS_MARKED. 457252284Sobrien (dfs_compress_decls): Use CLEAR_BINFO_PUSHDECLS_MARKED. 457352284Sobrien 457452284Sobrien1998-08-27 Mark Mitchell <mark@markmitchell.com> 457552284Sobrien 457652284Sobrien * decl.c (build_enumerator): Set DECL_CONTEXT for the 457752284Sobrien CONST_DECLs. 457852284Sobrien 457952284Sobrien1998-08-26 Mark Mitchell <mark@markmitchell.com> 458052284Sobrien 458152284Sobrien * cp-tree.h (finish_enum): Change prototype. 458252284Sobrien * decl.c (finish_enum): Use TYPE_VALUES, rather than taking a 458352284Sobrien VALUES parameter. Don't try to compute mins/maxs if 458452284Sobrien processing_template_decl. 458552284Sobrien * parse.y (structsp): Use new calling sequence for finish_enum. 458652284Sobrien * pt.c (tsubst_enum): Likewise. Take the new type as input. 458752284Sobrien (lookup_template_class): Remove unused variables. Tweak. 458852284Sobrien Register enums on instantiation list before substituting 458952284Sobrien enumeration constants. 459052284Sobrien (tsubst_decl): Remove unused variables. 459152284Sobrien (regenerate_decl_from_template): Likewise. 459252284Sobrien 459352284Sobrien * decl.c (duplicate_decls): Don't obliterate the 459452284Sobrien DECL_TEMPLATE_INFO for a template if we're not replacing it with 459552284Sobrien anything. 459652284Sobrien 459752284Sobrien * lex.c (do_identifier): Fix typo in comment. 459852284Sobrien 459952284SobrienWed Aug 26 10:54:51 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 460052284Sobrien 460152284Sobrien * errfn.c: Remove stdarg.h/varargs.h. 460252284Sobrien * tree.c: Likewise. 460352284Sobrien 460452284Sobrien1998-08-25 Brendan Kehoe <brendan@cygnus.com> 460552284Sobrien 460652284Sobrien * pt.c (tsubst_copy): Only do typename overloading on an 460752284Sobrien IDENTIFIER_NODE that happens to look like a typename if it actually 460852284Sobrien has a type for us to use. 460952284Sobrien 461052284Sobrien1998-08-25 Jason Merrill <jason@yorick.cygnus.com> 461152284Sobrien 461252284Sobrien * typeck.c (comp_cv_target_types): Split out... 461352284Sobrien (comp_target_types): From here. Don't allow cv-qual changes under 461452284Sobrien a pointer if nptrs == 0. Fix OFFSET_TYPE handling. 461552284Sobrien (build_ptrmemfunc): Pass 1 to nptrs. 461652284Sobrien * cvt.c (perform_qualification_conversions): Use comp_ptr_ttypes. 461752284Sobrien 461852284Sobrien1998-08-25 Mark Mitchell <mark@markmitchell.com> 461952284Sobrien 462052284Sobrien * search.c (dependent_base_p): Don't compare a binfo to 462152284Sobrien current_class_type; use the TREE_TYPE of the binfo instead. 462252284Sobrien 462352284Sobrien * cp-tree.h (CLASS_TYPE_P): Revise definition. 462452284Sobrien 462552284Sobrien1998-08-25 Jason Merrill <jason@yorick.cygnus.com> 462652284Sobrien 462752284Sobrien * decl.c (duplicate_decls): Don't complain about different 462852284Sobrien exceptions from an internal decl even if pedantic. 462952284Sobrien 463052284Sobrien * typeck.c (convert_for_assignment): Converting from pm of vbase 463152284Sobrien to derived is an error, not a sorry. 463252284Sobrien 463352284Sobrien * call.c (build_over_call): Use convert_pointer_to_real for 'this'. 463452284Sobrien * class.c (fixed_type_or_null): Rename from 463552284Sobrien resolves_to_fixed_type_p. Return the dynamic type of the 463652284Sobrien expression, if fixed, or null. 463752284Sobrien (resolves_to_fixed_type_p): Use it. Return 0 if the dynamic type 463852284Sobrien does not match the static type. 463952284Sobrien (build_vbase_path): Rename 'alias_this' to 'nonnull'. Use 464052284Sobrien resolves_to_fixed_type_p again. 464152284Sobrien 464252284Sobrien1998-08-24 Mark Mitchell <mark@markmitchell.com> 464352284Sobrien 464452284Sobrien * pt.c (tsubst_decl): Move special case code for dealing with 464552284Sobrien tricky friend templates here from ... 464652284Sobrien (regenerate_decl_from_template): Here. 464752284Sobrien 464852284Sobrien1998-08-24 Jason Merrill <jason@yorick.cygnus.com> 464952284Sobrien 465052284Sobrien * decl.c (start_decl): Remove redundant linkage check. 465152284Sobrien 465252284Sobrien1998-08-24 Gavin Romig-Koch <gavin@cygnus.com> 465352284Sobrien 465452284Sobrien * typeck.c (c_expand_return): Handle the case that valtype 465552284Sobrien is wider than the functions return type. 465652284Sobrien 465752284Sobrien1998-08-24 Mark Mitchell <mark@markmitchell.com> 465852284Sobrien 465952284Sobrien * cp-tree.h (CLASS_TYPE_P): New macro. 466052284Sobrien * decl.c (grokdeclarator): Use it instead of IS_AGGR_TYPE. 466152284Sobrien * pt.c (process_template_parm): Undo previous change. 466252284Sobrien 466352284Sobrien1998-08-24 Benjamin Kosnik <bkoz@cygnus.com> 466452284Sobrien 466552284Sobrien * cp-tree.h: Declare. 466652284Sobrien * pt.c (decl_template_parm_p): New function. 466752284Sobrien * decl.c (pushdecl): Check decls for redeclaring template parms. 466852284Sobrien (xref_tag): Make redeclaration an error, print decl. 466952284Sobrien * decl2.c (grokfield): Check field_decls for redeclaration as well. 467052284Sobrien 467152284Sobrien1998-08-24 Jason Merrill <jason@yorick.cygnus.com> 467252284Sobrien 467352284Sobrien * parse.y (primary): Fix up the type of string constants. 467452284Sobrien 467552284Sobrien1998-08-24 Mark Mitchell <mark@markmitchell.com> 467652284Sobrien 467752284Sobrien * typeck.c (convert_for_initialization): Move check for odd uses 467852284Sobrien of NULL to avoid duplicate warnings. 467952284Sobrien 468052284Sobrien1998-08-24 Jason Merrill <jason@yorick.cygnus.com> 468152284Sobrien 468252284Sobrien * tree.c (lvalue_type): Fix for arrays. 468352284Sobrien * typeck.c (string_conv_p): New fn. 468452284Sobrien (convert_for_assignment): Use it. 468552284Sobrien (build_unary_op): Use lvalue_type. 468652284Sobrien * call.c (standard_conversion, convert_like): Use string_conv_p. 468752284Sobrien (add_function_candidate): Use lvalue_type. 468852284Sobrien * cvt.c (convert_to_reference): Likewise. 468952284Sobrien * decl2.c (lang_decode_option): Ignore -traditional. 469052284Sobrien * decl.c (init_decl_processing): flag_writable_strings inhibits 469152284Sobrien flag_const_strings. 469252284Sobrien 469352284Sobrien1998-08-24 Andrew MacLeod <amacleod@cygnus.com> 469452284Sobrien 469552284Sobrien * lang-options.h (lang_options): Add fconst-strings to the list 469652284Sobrien of valid options. 469752284Sobrien * decl2.c (lang_f_options, lang_decode_option): Likewise. 469852284Sobrien 469952284Sobrien1998-08-24 Nathan Sidwell <nathan@acm.org> 470052284Sobrien 470152284Sobrien * lex.c (real_yylex): Don't warn about long long constants if 470252284Sobrien we're allowing long long. 470352284Sobrien 470452284Sobrien1998-08-24 Martin von L�wis <loewis@informatik.hu-berlin.de> 470552284Sobrien 470652284Sobrien * decl.c (pushdecl): Use IDENTIFIER_NAMESPACE_VALUE instead of 470752284Sobrien accessing bindings directly. 470852284Sobrien 470952284Sobrien * search.c (my_tree_cons): Reimplement. 471052284Sobrien 471152284Sobrien * lang-specs.h: Remove __HONOR_STD. 471252284Sobrien * inc/exception, inc/new, inc/new.h, inc/typeinfo: Likewise. 471352284Sobrien 471452284Sobrien1998-08-23 Mark Mitchell <mark@markmitchell.com> 471552284Sobrien 471652284Sobrien * decl.c (grokdeclarator): Complain about in-class initialization 471752284Sobrien of aggregates and/or references. 471852284Sobrien * pt.c (process_template_parm): Clear IS_AGGR_TYPE for 471952284Sobrien TEMPLATE_TYPE_PARMs. 472052284Sobrien 472152284Sobrien * decl2.c (grok_array_decl): Add comment. 472252284Sobrien (mark_used): Don't instantiate an explicit instantiation. 472352284Sobrien * friend.c (make_friend_class): Remove bogus comment. Fix check 472452284Sobrien for partial specializations. 472552284Sobrien * pt.c (check_explicit_specialization): Don't 472652284Sobrien SET_DECL_EXPLICIT_INSTANTIATION here. 472752284Sobrien (mark_decl_instantiated): Or here. 472852284Sobrien (do_decl_instantiation): Do it here, instead. Add checks for 472952284Sobrien duplicate explicit instantiations, etc. Tidy. 473052284Sobrien (do_type_instantiation): Likewise. 473152284Sobrien (instantiate_decl): Improve comments. Complain about explicit 473252284Sobrien instantiations where no definition is available. 473352284Sobrien 473452284Sobrien * cp-tree.h (ansi_null_node): Remove. 473552284Sobrien * call.c (build_over_call): Warn about converting NULL to an 473652284Sobrien arithmetic type. 473752284Sobrien * cvt.c (build_expr_type_conversion): Likewise. Use 473852284Sobrien null_ptr_cst_p instead of expanding it inline. 473952284Sobrien * decl.c (ansi_null_node): Remove. 474050397Sobrien (init_decl_processing): Make null_node always have integral type. 474150397Sobrien * except.c (build_throw): Warn about converting NULL to an 474252284Sobrien arithmetic type. 474352284Sobrien * lex.c (init_parse): Remove handling of ansi_null_node. 474452284Sobrien * pt.c (type_unification_real): Don't convert NULL to void* type. 474552284Sobrien * typeck.c (build_binary_op_nodefault): Fix NULL warnings. 474652284Sobrien (convert_for_assignment): Warn about converting NULL to an 474752284Sobrien arithmetic type. 474852284Sobrien (convert_for_initialization): Likewise. 474952284Sobrien 475052284Sobrien1998-08-20 Jason Merrill <jason@yorick.cygnus.com> 475152284Sobrien 475252284Sobrien * tree.c (search_tree, no_linkage_helper, no_linkage_check): New fn. 475352284Sobrien * pt.c (coerce_template_parms): Use no_linkage_check. 475452284Sobrien * decl.c (grokvardecl): Likewise. 475552284Sobrien (grokfndecl): Likewise. Members of anonymous types have no linkage. 475652284Sobrien 475750397Sobrien * method.c (process_overload_item): Remove useless code. 475850397Sobrien 475950397Sobrien1998-08-20 Per Bothner <bothner@cygnus.com> 476052284Sobrien 476152284Sobrien Handle new'ing of Java classes. 476252284Sobrien * init.c (build_class_classref): New function. 476352284Sobrien (build_new_1): If type is TYPE_FOR_JAVA: Call _Jv_AllocObject; 476452284Sobrien constructor does not return this; don't need to exception-protect. 476552284Sobrien 476652284Sobrien * pt.c (lookup_template_class): Copy TYPE_FOR_JAVA flag. 476752284Sobrien * decl2.c (acceptable_java_type): Handle template-derived types. 476852284Sobrien 476952284Sobrien1998-08-20 Per Bothner <bothner@cygnus.com> 477052284Sobrien 477152284Sobrien * decl2.c (import_export_vtable): Suppress vtables for Java classes. 477252284Sobrien 477352284Sobrien1998-08-20 Mark Mitchell <mark@markmitchell.com> 477452284Sobrien 477552284Sobrien * decl.c (duplicate_decls): Always merge the old and new patterns 477652284Sobrien for templates, regardless of whether or not the new one has 477752284Sobrien DECL_INITIAL. Don't throw away specializations. Merge 477852284Sobrien DECL_SAVED_TREE. 477952284Sobrien * pt.c (tsubst_decl): Use the right pattern when calculating the 478052284Sobrien complete args for a new template instance. 478152284Sobrien (do_decl_instantiation): Fix typo in comment. 478250397Sobrien (regenerate_decl_from_template): Deal with tricky friend template 478350397Sobrien case. 478450397Sobrien (instantiate_decl): Likewise. 478550397Sobrien 478650397SobrienThu Aug 20 09:09:45 1998 Jeffrey A Law (law@cygnus.com) 478752284Sobrien 478852284Sobrien * init.c (build_builtin_delete_call): Add missing assemble_external 478952284Sobrien call. 479052284Sobrien 479152284Sobrien1998-08-20 Jason Merrill <jason@yorick.cygnus.com> 479252284Sobrien 479352284Sobrien * parse.y (notype_unqualified_id): Also accept ~A<int>. 479452284Sobrien 479552284Sobrien1998-08-19 Mark Mitchell <mark@markmitchell.com> 479652284Sobrien 479752284Sobrien * typeck.c (build_binary_op_nodefault): Warn on use of NULL in 479852284Sobrien arithmetic. 479952284Sobrien * except.c (build_throw): Warn when NULL is thrown, even with 480052284Sobrien -ansi. Use ansi_null_node, rather than integer_zero_node, in the 480152284Sobrien thrown expression. 480252284Sobrien 480352284Sobrien * cp-tree.h (ansi_null_node): New variable. 480452284Sobrien * decl.c (ansi_null_node): New variable. 480552284Sobrien (init_decl_processing): Initialize its type. 480652284Sobrien * lex.c (init_parse): Initialize its value. Use ansi_null_node 480752284Sobrien for null_node in non-ANSI mode. 480852284Sobrien * typeck.c (build_binary_op_nodefault): Use ansi_null_node in 480952284Sobrien place of null_node to avoid spurious errors. 481052284Sobrien 481152284Sobrien1998-08-17 Mark Mitchell <mark@markmitchell.com> 481252284Sobrien 481352284Sobrien * cp-tree.h (enter_scope_of): New function. 481452284Sobrien * parse.y (complex_direct_notype_declarator): Use it. 481552284Sobrien * semantics.c (enter_scope_of): New function. 481652284Sobrien 481752284Sobrien1998-08-17 Jason Merrill <jason@yorick.cygnus.com> 481852284Sobrien 481952284Sobrien * decl.c (grokparms): No, here. 482052284Sobrien 482152284Sobrien * decl.c (grokdeclarator): Catch parm with pointer to array of 482252284Sobrien unknown bound here... 482352284Sobrien * method.c (process_overload_item): ...not here. 482452284Sobrien 482552284Sobrien * gxxint.texi: Remove obsolete documentation of overloading code. 482652284Sobrien 482752284Sobrien * decl.c (finish_enum): Also set TYPE_SIZE_UNIT. 482852284Sobrien * class.c (finish_struct_bits): Likewise. 482952284Sobrien 483052284Sobrien * tree.c (lvalue_type): Fix for arrays. 483152284Sobrien * typeck.c (build_unary_op): Use lvalue_type. 483252284Sobrien * call.c (add_function_candidate): Likewise. 483352284Sobrien * cvt.c (convert_to_reference): Likewise. 483450397Sobrien 483550397Sobrien * decl2.c (lang_decode_option): Ignore -traditional. 483652284Sobrien 483752284Sobrien * init.c (build_offset_ref): Don't mess with error_mark_node. 483852284Sobrien * lex.c (do_scoped_id): Use cp_error. 483950397Sobrien 484050397Sobrien * rtti.c (get_tinfo_fn): Don't mess with the context for now. 484152284Sobrien 484252284Sobrien1998-08-17 Benjamin Kosnik <bkoz@loony.cygnus.com> 484352284Sobrien 484452284Sobrien * decl.c (grokdeclarator): Allow anonymous types to be cv-qualified. 484552284Sobrien 484652284SobrienMon Aug 17 10:40:18 1998 Jeffrey A Law (law@cygnus.com) 484752284Sobrien 484852284Sobrien * cp-tree.h (set_identifier_local_value): Provide prototype. 484952284Sobrien 485052284Sobrien * decl2.c (do_namespace_alias): Remove unused variables `binding' 485152284Sobrien and `old'. 485252284Sobrien 485352284SobrienFri Aug 14 16:42:27 1998 Nick Clifton <nickc@cygnus.com> 485452284Sobrien 485552284Sobrien * Makefile.in: Rename BBISON to BISON so that it can be properly 485652284Sobrien inherited from the parent makefile. 485752284Sobrien 485852284Sobrien1998-08-13 Jason Merrill <jason@yorick.cygnus.com> 485952284Sobrien 486052284Sobrien * lang-options.h: Add -finit-priority. 486152284Sobrien * decl2.c: Likewise. Check flag_init_priority instead of 486252284Sobrien USE_INIT_PRIORITY. 486352284Sobrien 486452284Sobrien * decl2.c (setup_initp): New fn. 486552284Sobrien (start_objects, finish_objects, do_ctors): Handle init_priority. 486652284Sobrien (do_dtors, finish_file): Likewise. 486752284Sobrien 486852284Sobrien1998-08-13 Jason Merrill <jason@yorick.cygnus.com> 486952284Sobrien 487052284Sobrien * pt.c (tsubst_copy): Hush warning. 487152284Sobrien 487252284Sobrien * rtti.c (get_tinfo_fn): Also set DECL_IGNORED_P. 487352284Sobrien 487452284Sobrien1998-08-12 Mark Mitchell <mark@markmitchell.com> 487552284Sobrien 487652284Sobrien * pt.c (print_template_context): Don't abort when instantiating a 487752284Sobrien synthesized method. 487852284Sobrien 487952284Sobrien * decl.c (grokdeclarator): Issue errors on namespace qualified 488052284Sobrien declarators in parameter lists or in class scope. 488152284Sobrien 488252284Sobrien1998-08-09 Mark Mitchell <mark@markmitchell.com> 488352284Sobrien 488452284Sobrien * pt.c (check_explicit_specialization): Don't abort on bogus 488552284Sobrien explicit instantiations. 488652284Sobrien 488752284Sobrien1998-08-07 Mark Mitchell <mark@markmitchell.com> 488852284Sobrien 488952284Sobrien * typeck.c (require_complete_type): Use complete_type_or_else. 489052284Sobrien (complete_type_or_else): Always return NULL_TREE on failure, as 489152284Sobrien documented. 489252284Sobrien 489352284Sobrien * pt.c (tsubst_aggr_type): Prototype. 489452284Sobrien (tsubst_decl): New function, split out from tsubst. Set 489552284Sobrien input_filename and lineno as appropriate. 489652284Sobrien (pop_tinst_level): Restore the file and line number saved in 489752284Sobrien push_tinst_level. 489852284Sobrien (instantiate_class_template): Set input_filename and lineno as 489952284Sobrien appropriate. 490052284Sobrien (tsubst): Move _DECL processing to tsubst_decl. Make sure the 490152284Sobrien context for a TYPENAME_TYPE is complete. 490252284Sobrien 490352284Sobrien * decl2.c (grokbitfield): Issue errors on bitfields declared with 490452284Sobrien function type. 490552284Sobrien (do_dtors): As in do_ctors, pretend to be a member of the same 490652284Sobrien class as a static data member while generating a call to its 490752284Sobrien destructor. 490852284Sobrien 490952284Sobrien * cvt.c (cp_convert_to_pointer): Handle NULL pointer 491052284Sobrien conversions, even in complex virtual base class hierarchies. 491152284Sobrien 491252284Sobrien1998-08-06 Mark Mitchell <mark@markmitchell.com> 491352284Sobrien 491452284Sobrien * cp-tree.h (ENUM_TEMPLATE_INFO): New macro. 491552284Sobrien (TYPE_TEMPLATE_INFO): Likewise. 491652284Sobrien (SET_TYPE_TEMPLATE_INFO): Likewise. 491752284Sobrien (ENUM_TI_TEMPLATE): Likewise. 491852284Sobrien (ENUM_TI_ARGS): Likewise. 491952284Sobrien (lookup_nested_type_by_name): Remove. 492052284Sobrien * decl.c (maybe_process_template_type_declaration): Handle enums. 492152284Sobrien (start_enum): Don't check for primary-template enum declarations 492252284Sobrien here. 492352284Sobrien (finish_enum): Clean up, document. Make sure template enum 492452284Sobrien constants get the correct type. 492552284Sobrien (build_enumerator): Copy initializers for template enumerations, 492652284Sobrien too. 492752284Sobrien (grok_enum_decls): Document. 492852284Sobrien * lex.c (do_identifier): Document use of LOOKUP_EXPR a bit 492952284Sobrien better. Build LOOKUP_EXPRs for local variables, even if they are 493052284Sobrien TREE_PERMANENT. 493152284Sobrien * pt.c (tsubst_enum): Remove field_chain parameter. 493252284Sobrien (template_class_depth): Include the depth of surrounding function 493352284Sobrien contexts. 493452284Sobrien (push_template_decl): Check for primary-template enum declarations 493552284Sobrien here. Deal with enumeration templates. 493652284Sobrien (lookup_template_class): Likewise. 493752284Sobrien (for_each_template_parm): Likewise. 493852284Sobrien (instantiate_class_template): Don't call tsubst_enum directly, 493952284Sobrien call tsubst instead, to instantiate enums. Deal with all 494052284Sobrien field_chain issues here, not in tsubst_enum. 494152284Sobrien (lookup_nested_type_by_name): Remove. 494252284Sobrien (tsubst_aggr_type): Revise handling of enumeration types. 494352284Sobrien (tsubst): Likewise. 494452284Sobrien (tsubst_copy): Likewise. 494552284Sobrien (tsubst_expr): Call tsubst, not tsubst_enum for TAG_DEFNs. 494652284Sobrien 494750397Sobrien1998-08-04 Mark Mitchell <mark@markmitchell.com> 494850397Sobrien 494952284Sobrien * decl.c (pushtag): Don't mangle the name of a TYPE_DECL if it 495052284Sobrien uses template parameters. 495152284Sobrien * method.c (build_template_parm_names): Use the full set of 495252284Sobrien template arguments for tsubst'ing. 495352284Sobrien (build_overload_identifier): Pass the full set of template 495452284Sobrien arguments to build_template_parm_names, not just the 495552284Sobrien innermost_args. 495652284Sobrien * pt.c (TMPL_ARGS_DEPTH): Define using 495750397Sobrien TMPL_ARGS_HAVE_MULTIPLE_LEVELS, for clarity. 495850397Sobrien (NUM_TMPL_ARGS): New macro. 495950397Sobrien (add_outermost_template_args): Deal with the case where the outer 496052284Sobrien args will be completely discarded. 496152284Sobrien (coerce_template_parms): Use the full set of template arguments 496252284Sobrien for tsubst'ing. Simplify. Add some asserts. Improve 496352284Sobrien error messages. 496450397Sobrien (lookup_template_class): Pass the full set of template arguments 496552284Sobrien to coerce_template_parms. 496652284Sobrien (tsubst): Add assertion. 496752284Sobrien (do_type_instantiation): Don't instantiate member template 496852284Sobrien classes. 496952284Sobrien 497052284Sobrien * init.c (build_offset_ref): Deal with a TEMPLATE_ID_EXPR whose 497152284Sobrien name is a LOOKUP_EXPR, rather than an IDENTIFIER_NODE. 497252284Sobrien 497352284Sobrien1998-08-03 Jason Merrill <jason@yorick.cygnus.com> 497452284Sobrien 497552284Sobrien * method.c (set_mangled_name_for_decl): Change return type to void. 497652284Sobrien 497752284Sobrien * decl.c (lookup_name_real): A namespace-level decl takes priority 497852284Sobrien over implicit typename. Avoid doing the same lookup twice. 497952284Sobrien 498052284Sobrien * search.c (dependent_base_p): New fn. 498152284Sobrien (dfs_pushdecls, dfs_compress_decls): Use it. 498252284Sobrien 498352284Sobrien * typeck.c (get_member_function_from_ptrfunc): Don't try to handle 498452284Sobrien virtual functions if the type doesn't have any. 498552284Sobrien 498652284Sobrien1998-08-03 Mark Mitchell <mark@markmitchell.com> 498752284Sobrien 498852284Sobrien * decl2.c (grokfield): Don't mangle the name of a TYPE_DECL if it 498952284Sobrien uses template parameters. 499052284Sobrien 499152284Sobrien1998-08-02 Mark Mitchell <mark@markmitchell.com> 499252284Sobrien 499352284Sobrien * cp-tree.def (LOOKUP_EXPR): Document. Remove second argument. 499452284Sobrien * cp-tree.h (DECL_TI_TEMPLATE): Improve documentation. 499552284Sobrien * lex.c (do_identifier): Don't use a second argument, or a type, 499652284Sobrien when building LOOKUP_EXPRs. 499752284Sobrien (do_identifier): Likewise. 499852284Sobrien (do_scoped_id): Likewise. 499952284Sobrien * method.c (hack_identifier): Improve error message. 500052284Sobrien * pt.c (lookup_template_function): Don't needlessly call 500152284Sobrien copy_to_permanent or build_min. 500252284Sobrien (tsubst_copy): Remove #if 0'd code. tsubst into LOOKUP_EXPRs if 500352284Sobrien necessary. 500452284Sobrien (do_decl_instantiation): Improve error message. 500552284Sobrien * tree.c (mapcar, case LOOKUP_EXPR): Don't be sorry; make a copy. 500652284Sobrien (build_min): Copy the type to the permanent obstack, too. 500752284Sobrien 500852284Sobrien1998-08-01 Jason Merrill <jason@yorick.cygnus.com> 500952284Sobrien 501052284Sobrien * init.c (init_init_processing): Remove BI* handling. 501152284Sobrien (build_builtin_call): Remove. 501252284Sobrien (build_builtin_delete_call): New fn. 501352284Sobrien (build_delete): Use it. 501450397Sobrien 501550397Sobrien1998-07-31 Mark Mitchell <mark@markmitchell.com> 501650397Sobrien 501752284Sobrien * cp-tree.h (PROCESSING_REAL_TEMPLATE_DECL_P): New macro. 501850397Sobrien (maybe_check_template_type): New function. 501952284Sobrien * decl.c (maybe_process_template_type_declaration): New function, 502052284Sobrien split out from pushtag Call maybe_check_template_type. 502152284Sobrien (pushtag): Use it. Use PROCESSING_REAL_TEMPLATE_DECL_P. 502250397Sobrien (xref_tag): Use PROCESSING_REAL_TEMPLATE_DECL_P. 502352284Sobrien * friend.c (do_friend): Use PROCESSING_REAL_TEMPLATE_DECL_P. 502452284Sobrien * pt.c (template_class_depth_real): Generalization of ... 502552284Sobrien (template_class_depth): Use it. 502652284Sobrien (register_specialization): Use duplicate_decls for duplicate 502752284Sobrien declarations of specializations. 502852284Sobrien (maybe_check_template_type): New function. 502952284Sobrien (push_template_decl_real): Fix comment. 503052284Sobrien (convert_nontype_argument): Likewise. 503152284Sobrien (lookup_template_class): Likewise. Avoid an infinite loop on 503250397Sobrien erroneous code. 503352284Sobrien (tsubst_friend_function): Fix comment. 503452284Sobrien (tsubst, case FUNCTION_DECL): Deal with a DECL_TI_TEMPLATE that is 503552284Sobrien an IDENTIFIER_NODE. 503652284Sobrien * semantics.c (begin_function_definition): Use 503752284Sobrien reset_specialization to note that template headers don't apply 503850397Sobrien directly to declarations after the opening curly for a function. 503952284Sobrien 504052284Sobrien1998-07-29 Jason Merrill <jason@yorick.cygnus.com> 504152284Sobrien 504252284Sobrien * decl.c (push_overloaded_decl): Use current_namespace instead of 504352284Sobrien DECL_CONTEXT (decl) to determine where we go. 504452284Sobrien 504552284Sobrien * decl.c (lookup_name_real): Fix typo. 504652284Sobrien 504752284Sobrien1998-07-28 Mark Mitchell <mark@markmitchell.com> 504852284Sobrien 504952284Sobrien * friend.c (is_friend): Be lenient with member functions to deal 505052284Sobrien with nested friends. 505152284Sobrien 505252284Sobrien1998-07-28 Jason Merrill <jason@yorick.cygnus.com> 505352284Sobrien 505452284Sobrien * class.c (finish_struct_1): Convert integer_zero_node to 505552284Sobrien ssizetype before passing it to set_rtti_entry. 505652284Sobrien * typeck2.c (initializer_constant_valid_p): Allow conversion of 0 505752284Sobrien of any size to a pointer. 505852284Sobrien 505952284Sobrien1998-07-27 Mark Mitchell <mark@markmitchell.com> 506052284Sobrien 506152284Sobrien * cp-tree.h (TI_USES_TEMPLATE_PARMS): Remove. 506252284Sobrien (build_template_decl_overload): Remove. 506352284Sobrien (set_mangled_name_for_decl): New function. 506452284Sobrien (innermost_args): Remove is_spec parameter. 506552284Sobrien (most_specialized, most_specialized_class): Remove declarations. 506652284Sobrien (lookup_template_class): Add entering_scope parameter. 506752284Sobrien (maybe_process_partial_specialization): New function. 506852284Sobrien (finish_template_decl): Likewise. 506952284Sobrien (finish_template_type): Likewise. 507052284Sobrien * class.c (finish_struct): Clean up processing of member template 507152284Sobrien specializations. 507252284Sobrien * decl.c (pushtag): Fix formatting. 507352284Sobrien (lookup_tag): Improve handling of pseudo-global levels. 507452284Sobrien (make_typename_type): Adjust call to lookup_template_class. 507552284Sobrien (shadow_tag): Use maybe_process_partial_specialization. 507652284Sobrien (xref_tag): Improve handling of member friends. 507752284Sobrien (start_function): Call push_nested_class before 507852284Sobrien push_template_decl. Don't call push_template_decl for 507952284Sobrien specializations. 508052284Sobrien * decl2.c (grok_x_components): Don't call xref_tag for 508152284Sobrien template instantiations. Handle UNION_TYPEs like RECORD_TYPEs. 508252284Sobrien (grokclassfn): Use set_mangled_name_for_decl. 508352284Sobrien (arg_assoc_class): Adjust call to innermost_args. 508452284Sobrien (mark_used): Don't call instantiate_decl for a TEMPLATE_DECL. 508552284Sobrien * error.c (dump_function_name): Improve printing of template 508652284Sobrien function names. 508752284Sobrien * friend.c (is_friend): Don't compare types of decls to determine 508852284Sobrien friendship, unless flag_guiding_decls. 508952284Sobrien (make_friend_class): Partial specializations cannot be friends. 509052284Sobrien (do_friend): Use set_mangled_name_for_decl. Call 509152284Sobrien push_template_decl_real instead of push_template_decl. 509252284Sobrien * method.c (build_decl_overload_real): Remove prototype. Give it 509352284Sobrien external linkage. 509452284Sobrien (build_overload_identififer): Adjust call to innermost_args. 509552284Sobrien (build_template_decl_overload): Remove. 509652284Sobrien (set_mangled_name_for_decl): New function. 509752284Sobrien * parse.y (.finish_template_type): New non-terminal. 509852284Sobrien (template_def): Use finish_template_decl. Use template_extdef 509952284Sobrien instead of extdef. 510052284Sobrien (template_extdef, template_datadef): New non-terminals, containing 510152284Sobrien only those rules for things which can be templates. 510252284Sobrien (datadef): Tidy. 510352284Sobrien (template_type, self_template_type): Use .finish_template_type. 510452284Sobrien (named_class_head): Use maybe_process_partial_specialization. 510552284Sobrien * pt.c (mangle_class_name_for_template): Remove context parameter. 510652284Sobrien (get_class_bindings): Remove outer_args parameter. 510752284Sobrien (complete_template_args): Remove. 510852284Sobrien (add_outermost_template_args): New function. 510952284Sobrien (register_specialization): Return the specialization. 511052284Sobrien (unregister_specialization): New function. 511152284Sobrien (tsubst_template_parms): Likewise. 511252284Sobrien (most_specialized, most_specialized_class): Prototype here as 511352284Sobrien static. 511452284Sobrien (original_template): Rename to most_general_template. 511552284Sobrien (tsubst_template_parms): New function. 511652284Sobrien (set_mangled_name_for_template_decl): Likewise. 511752284Sobrien (TMPL_ARGS_DEPTH): New macro. 511852284Sobrien (TMPL_ARGS_HAVE_MULTIPLE_LEVELS): Adjust. 511952284Sobrien (TMPL_ARGS_LEVEL): New macro. 512052284Sobrien (SET_TMPL_ARGS_LEVEL): Likewise. 512152284Sobrien (TMPL_ARG): Likewise. 512252284Sobrien (SET_TMPL_ARG): Likewise. 512352284Sobrien (TMPL_ARGS_DEPTH): Likewise. 512452284Sobrien (finish_member_template_decl): Use finish_template_decl. 512552284Sobrien (maybe_process_partial_specialization): New function, split out 512652284Sobrien from tsubst. 512752284Sobrien (inline_needs_template_parms): Use TMPL_PARMS_DEPTH. 512852284Sobrien (maybe_begin_member_template_processing): Use new macros. 512952284Sobrien (is_member_template): Likewise. 513052284Sobrien (is_member_template_class): Likewise. 513152284Sobrien (add_to_template_args): Likewise. Deal with multiple levels of 513252284Sobrien args. 513352284Sobrien (maybe_process_partial_specialization): New function. 513452284Sobrien (retrieve_specialization): Add consistency check. 513552284Sobrien (determine_specialization): Return full argument list. 513652284Sobrien (check_explicit_specialization): Tweak friend handling. Use full 513752284Sobrien argument lists. Simplify. 513852284Sobrien (current_template_args): Use new macros. 513952284Sobrien (push_template_decl_real): Change ill-named mainargs to specargs. 514052284Sobrien Check that a partial specialization actually specializes at least 514152284Sobrien one parameter. Improve friend handling. Modify for full 514252284Sobrien template arguments. 514352284Sobrien (classtype_mangled_name): Don't mangle the names of 514452284Sobrien specializations. 514552284Sobrien (lookup_template_class): Add entering_scope parameter. Use it to 514652284Sobrien avoid finding a template type when an instantiation is required. 514752284Sobrien Simplify. Use full template arguments. 514852284Sobrien (tsubst_friend_function): Use unregister_specialization. Use new 514952284Sobrien macros. Use full template arguments. 515052284Sobrien (tsubst_friend_class): Substitute, using tsubst_template_parms, 515152284Sobrien into the template parameters before passing them to 515252284Sobrien redeclare_class_template. 515352284Sobrien (instantiate_class_template): Simplify. Use full template 515452284Sobrien arguments. Adjust calls to get_class_bindings. Use 515552284Sobrien SET_IDENTIFIER_TYPE_VALUE where needed. Improve friend handling. 515652284Sobrien (innermost_args): Use new macros. 515752284Sobrien (tsubst_aggr_type): New function, split out from tsubst. 515852284Sobrien (tsubst): Use tsubst_aggr_type, tsubst_template_parms, new calling 515952284Sobrien conventions for lookup_template_class. Refine handling of partial 516052284Sobrien instantiations. Remove calls to complete_template_args. 516152284Sobrien Simplify. Add consistency checks. Use set_mangled_name_for_decl 516252284Sobrien and set_mangled_name_for_template_decl. 516352284Sobrien (tsubst_copy): Use tsubst_aggr_type. 516452284Sobrien (instantiate_template): Use full template arguments. 516552284Sobrien (more_specialized): Improve formatting. 516652284Sobrien (more_specialized_class): Adjust calls to get_class_bindings. 516752284Sobrien (get_bindings_real): Don't call complete_template_args. 516852284Sobrien (most_specialized): Don't overwrite input; create a new list. 516952284Sobrien (most_specialized_class): Use most_general_template. 517050397Sobrien (regenerate_decl_from_template): Use unregister_specialization. 517150397Sobrien Use full template arguments. 517250397Sobrien (instantiate_decl): Use full template arguments. 517350397Sobrien (set_mangled_name_for_template_decl): New function. 517450397Sobrien * semantics.c (begin_class_definition): Use 517550397Sobrien maybe_process_partial_specialization. 517650397Sobrien (finish_member_class_template): New function. 517752284Sobrien (finish_template_decl): Likewise. 517852284Sobrien (finish_template_type): Likewise. 517952284Sobrien (typeck.c): Don't crash after issuing a compiler_error. 518052284Sobrien * Makefile.in (CONFLICTS): Adjust; we removed a s/r conflict. 518152284Sobrien 518250397Sobrien1998-07-27 Jason Merrill <jason@yorick.cygnus.com> 518350397Sobrien 518450397Sobrien * typeck2.c (build_functional_cast): Handle default-initialization. 518552284Sobrien 518650397Sobrien * call.c (build_over_call): Pass 1 to popclass. 518750397Sobrien 518850397Sobrien * parse.y (direct_notype_declarator): Add precedence declaration 518952284Sobrien to notype_unqualified_id case. 519052284Sobrien * Makefile.in (EXPECT): Adjust. 519152284Sobrien 519252284Sobrien * tree.c (ovl_member): Fix for single function in OVL. 519352284Sobrien 519452284Sobrien1998-07-27 Dave Brolley <brolley@cygnus.com> 519552284Sobrien 519652284Sobrien * c-lex.c (yylex): Fix boundary conditions in character literal and 519752284Sobrien string literal loops. 519852284Sobrien 519952284Sobrien1998-07-24 Jason Merrill <jason@yorick.cygnus.com> 520052284Sobrien 520152284Sobrien * decl.c (lookup_name_real): OK, do return the from_obj value 520252284Sobrien unless got_object depends on template parms. 520352284Sobrien 520452284Sobrien * parse.y (nested_name_specifier_1): Pull out the TYPE_MAIN_VARIANT. 520552284Sobrien 520652284Sobrien * pt.c (coerce_template_parms): Also complain about local enums. 520752284Sobrien 520852284Sobrien * cp-tree.h: Add prototype for set_identifier_local_value. 520952284Sobrien * decl.c (set_identifier_local_value_with_scope): Make static, 521052284Sobrien prototype. 521152284Sobrien * search.c (covariant_return_p): Likewise. 521252284Sobrien * except.c (build_terminate_handler, alloc_eh_object): Likewise. 521352284Sobrien 521452284Sobrien * call.c (build_method_call): Only pull out the type of a destructor 521552284Sobrien if it's a template type parm. 521652284Sobrien * decl.c (lookup_name_real): Never return the from_obj value. 521752284Sobrien 521852284Sobrien1998-07-23 Jason Merrill <jason@yorick.cygnus.com> 521952284Sobrien 522052284Sobrien * except.c (process_start_catch_block_old): Call start_decl_1 for 522152284Sobrien catch parm. 522252284Sobrien * decl.c (start_decl_1): Avoid duplicate error. 522352284Sobrien 522452284Sobrien * init.c (expand_default_init): Only perform the initialization if 522552284Sobrien it will do something. 522652284Sobrien 522752284Sobrien1998-07-23 H.J. Lu (hjl@gnu.org) 522852284Sobrien 522952284Sobrien * parse.y (base_class): Check for invalid base class. 523052284Sobrien 523152284Sobrien1998-07-23 Jason Merrill <jason@yorick.cygnus.com> 523252284Sobrien 523352284Sobrien * decl2.c (import_export_template): Fold in... 523452284Sobrien (import_export_class): ...to here. Handle dllimport/export. 523552284Sobrien 523652284Sobrien * class.c (build_vtable): Pass at_eof to import_export_vtable. 523752284Sobrien (prepare_fresh_vtable): Likewise. 523852284Sobrien * decl2.c (import_export_class): Split out... 523952284Sobrien (finish_prevtable_vardecl): From here. 524052284Sobrien * class.c (finish_struct_1): Call import_export_class if at_eof. 524152284Sobrien 524252284Sobrien * decl.c (start_function): #if 0 mysterious code I wrote and have 524352284Sobrien forgotten why. 524452284Sobrien * rtti.c (get_tinfo_fn): If this is for a class type, set 524552284Sobrien DECL_CONTEXT. 524652284Sobrien 524752284Sobrien1998-07-22 Jason Merrill <jason@yorick.cygnus.com> 524852284Sobrien 524952284Sobrien * inc/exception: Change terminate and unexpected to (). 525052284Sobrien 525152284Sobrien * parse.y (named_class_head_sans_basetype_defn): A 525252284Sobrien named_class_head_sans_basetype followed by '{' or ':' is a defn. 525352284Sobrien 525452284Sobrien1998-07-21 Jason Merrill <jason@yorick.cygnus.com> 525552284Sobrien 525652284Sobrien * tree.c (canonical_type_variant): New fn to handle arrays. 525752284Sobrien * cp-tree.h (CANONICAL_TYPE_VARIANT): Remove. 525852284Sobrien * pt.c (unify, default case): Also fold arg. Fix array bounds case. 525952284Sobrien * method.c (process_overload_item): Use build_overload_value for 526052284Sobrien arrays. 526152284Sobrien 526252284Sobrien1998-07-20 Dave Brolley <brolley@cygnus.com> 526352284Sobrien 526452284Sobrien * lex.c (mbchar.h): #include it. 526552284Sobrien (GET_ENVIRONMENT): New macro. 526652284Sobrien (init_parse): Set character set based on LANG environment variable. 526752284Sobrien (real_yylex): Handle multibyte characters in character literals. 526852284Sobrien (real_yylex): Handle multibyte characters in string literals. 526952284Sobrien 527052284Sobrien1998-07-19 Jason Merrill <jason@yorick.cygnus.com> 527152284Sobrien 527252284Sobrien * lex.c (do_identifier): Look for class value even if we don't 527352284Sobrien have a global value. Do implicit declaration if parsing is 2. 527452284Sobrien * semantics.c (finish_call_expr): Pass 2 if we're doing Koenig 527552284Sobrien lookup. 527652284Sobrien 527752284Sobrien1998-07-19 Mark Mitchell <mark@markmitchell.com> 527852284Sobrien 527952284Sobrien * decl.c (pushtag): Revert previous change. 528052284Sobrien * pt.c (lookup_template_class): Don't put out debugging 528152284Sobrien information for types that use template parameters. 528252284Sobrien 528352284Sobrien * decl.c (pushtag): Don't put out debugging information for 528452284Sobrien compiler-generated typedefs. 528552284Sobrien 528652284Sobrien * error.c (dump_type_real): Don't crash when presented with 528752284Sobrien intQI_type_node or the like. 528852284Sobrien 528952284Sobrien * semantics.c (finish_translation_unit): Fix spelling error in 529052284Sobrien comment. 529152284Sobrien 529252284Sobrien1998-07-17 Jason Merrill <jason@yorick.cygnus.com> 529352284Sobrien 529452284Sobrien * decl.c (lookup_name_real): Pull out single function here. 529552284Sobrien (select_decl): Not here. 529652284Sobrien (unqualified_namespace_lookup): Use CP_DECL_CONTEXT. 529752284Sobrien 529852284Sobrien * decl.c (qualify_lookup): Tweak again. 529952284Sobrien 530052284Sobrien * pt.c (lookup_template_class): Don't mess with the context of the 530152284Sobrien instantiation. 530252284Sobrien * decl2.c (current_decl_namespace): Remove special handling for 530352284Sobrien templates. 530452284Sobrien 530552284Sobrien * pt.c (tsubst, case FUNCTION_DECL): Fix getting complete args for 530652284Sobrien a member template specialization. 530752284Sobrien 530852284Sobrien * tree.c (ovl_member): Use decls_match to compare functions. 530952284Sobrien * decl.c (decls_match): Check the context of a function. 531052284Sobrien 531152284Sobrien * parse.y (primary): Use notype_unqualified_id instead of IDENTIFIER 531250397Sobrien in Koenig lookup support rules. 531350397Sobrien * semantics.c (finish_call_expr): Handle the new cases. 531450397Sobrien 531550397Sobrien * typeck.c (build_x_function_call): Handle overloaded methods. 531650397Sobrien 531750397Sobrien * decl.c (grokvardecl): Don't call build_static_name for extern "C". 531850397Sobrien 531950397Sobrien1998-07-16 Mark Mitchell <mark@markmitchell.com> 532050397Sobrien 532150397Sobrien * semantics.c (finish_object_call_expr): Revert previous change. 532250397Sobrien * call.c (build_new_method_call): Likewise. Instead, convert 532350397Sobrien TYPE_DECLs to IDENTIFIERs here, in the presence of templates. 532452284Sobrien 532552284Sobrien1998-07-16 Jason Merrill <jason@yorick.cygnus.com> 532652284Sobrien 532752284Sobrien * decl.c (qualify_lookup): Handle templates. 532852284Sobrien 532950397Sobrien * decl2.c (do_using_directive): Don't pass ancestor. 533050397Sobrien * decl.c (push_using_directive): Calculate ancestor. 533150397Sobrien 533250397Sobrien * decl2.c (do_nonmember_using_decl): Allow for type shadowing. 533350397Sobrien * decl.c (pushdecl): Move type shadowing handling from here... 533450397Sobrien (duplicate_decls): ...to here. 533550397Sobrien * decl.c (set_identifier_local_value_with_scope): New fn. 533650397Sobrien (pushdecl): Use it. 533750397Sobrien (set_identifier_local_value, lookup_type_current_level): New fns. 533850397Sobrien * decl2.c (do_local_using_decl): Handle types and binding level 533950397Sobrien stuff properly. 534050397Sobrien 534150397Sobrien * init.c (build_offset_ref): Don't call mark_used on an OVERLOAD. 534250397Sobrien * decl.c (select_decl): Extract a lone function from an OVERLOAD. 534350397Sobrien (lookup_namespace_name): Likewise. 534450397Sobrien * typeck.c (build_unary_op): Not here anymore. 534550397Sobrien 534650397Sobrien * decl2.c (do_class_using_decl): Make sure we get an identifier. 534750397Sobrien * class.c (handle_using_decl): Ignore TYPE_DECLs. 534850397Sobrien 534950397Sobrien * decl.c (qualify_lookup): New fn. 535050397Sobrien (lookup_name_real): Use it. 535150397Sobrien 535250397Sobrien1998-07-16 Martin v. Loewis <loewis@informatik.hu-berlin.de> 535350397Sobrien 535450397Sobrien * decl2.c (add_using_namespace): When directly using a namespace 535550397Sobrien that was indirect before, promote it. 535650397Sobrien 535750397Sobrien * cp-tree.h (LOOKUP_PREFER_TYPES, LOOKUP_PREFER_NAMESPACES, 535850397Sobrien LOOKUP_PREFER_BOTH, LOOKUP_NAMESPACES_ONLY, LOOKUP_TYPES_ONLY, 535950397Sobrien LOOKUP_QUALIFIERS_ONLY, LOOKUP_TEMPLATES_EXPECTED): New macros. 536050397Sobrien * decl.c (select_decl): Replace two flag parameters by one. 536150397Sobrien (unqualified_namespace_lookup): Likewise, pass flag. 536250397Sobrien (lookup_flags): New function. 536350397Sobrien (lookup_name_real): Compute flags, pass them. 536450397Sobrien (lookup_namespace_name): Call with zero-flag. 536550397Sobrien * decl2.c (ambiguous_decl): Add flag parameter, complain only 536650397Sobrien according to flags. 536750397Sobrien (lookup_using_namespace, qualified_lookup_using_namespace): 536850397Sobrien Add flag parameter, pass them through. 536950397Sobrien * lex.c (do_scoped_id): Call with zero-flag. 537050397Sobrien 537150397Sobrien1998-07-16 Jason Merrill <jason@yorick.cygnus.com> 537252284Sobrien 537350397Sobrien * typeck.c (convert_for_assignment): Use comptypes. 537450397Sobrien 537550397Sobrien1998-07-16 Mark Mitchell <mark@markmitchell.com> 537650397Sobrien 537750397Sobrien * semantics.c (finish_object_call_expr): Move test for the 537850397Sobrien function called being a TYPE_DECL to ... 537950397Sobrien * call.c (build_new_method_call): Here. 538050397Sobrien 538150397Sobrien1998-07-15 Jason Merrill <jason@yorick.cygnus.com> 538250397Sobrien 538350397Sobrien * decl2.c (arg_assoc_class): Also look at template arguments, if any. 538450397Sobrien (arg_assoc): Handle error_mark_node and multiple levels of TREE_LIST. 538550397Sobrien 538650397Sobrien * lex.c (looking_for_typename): Don't initialize. 538750397Sobrien 538850397Sobrien * decl2.c (ambiguous_decl): Clarify error message. 538950397Sobrien 539050397Sobrien * decl.c (push_using_directive): Iterate over namespaces used 539150397Sobrien indirectly. 539252284Sobrien 539352284Sobrien1998-07-15 Martin v. L�wis <loewis@informatik.hu-berlin.de> 539452284Sobrien 539552284Sobrien * decl2.c (add_using_namespace): Iterate over namespaces used 539652284Sobrien indirectly. 539752284Sobrien 539852284Sobrien * decl.c (lookup_name_real): Accept namespace aliases as locals. 539952284Sobrien (cat_namespace_levels): Ignore aliases. 540050397Sobrien (duplicate_decls): Ignore duplicate aliases. 540150397Sobrien * decl2.c (do_namespace_alias): Process block level namespace 540250397Sobrien aliases. Store alias with pushdecl. Remove odr errors. 540350397Sobrien * parse.y (namespace_alias): New non-terminal. 540450397Sobrien (extdef): Use it. 540550397Sobrien 540650397Sobrien1998-07-15 Jason Merrill <jason@yorick.cygnus.com> 540750397Sobrien 540850397Sobrien * decl2.c (arg_assoc_type): Handle METHOD_TYPE like FUNCTION_TYPE. 540950397Sobrien Handle TEMPLATE_TYPE_PARM. 541050397Sobrien (arg_assoc): Rewrite. 541150397Sobrien 541250397Sobrien * pt.c (complete_template_args): Don't look at the context unless 541350397Sobrien we have to. 541450397Sobrien 541552284Sobrien * method.c (build_decl_overload_real): Fix namespace handling. 541650397Sobrien 541750397Sobrien * typeck.c (build_unary_op): Extract a lone function from an 541818334Speter OVERLOAD. 541950397Sobrien 542050397Sobrien * call.c (build_scoped_method_call): Handle getting a namespace 542118334Speter for basetype in a destructor call. 542250397Sobrien (check_dtor_name): Handle enums. 542318334Speter 542450397Sobrien * parse.y (using_directive): New nonterminal. 542550397Sobrien (extdef, simple_stmt): Use it. 542650397Sobrien 542718334Speter1998-07-14 Martin von L�wis <loewis@informatik.hu-berlin.de> 542850397Sobrien 542918334Speter * decl2.c (add_function): Move error message ... 543050397Sobrien (arg_assoc_namespace): ... from here. 543150397Sobrien 543250397Sobrien1998-07-14 Jason Merrill <jason@yorick.cygnus.com> 543350397Sobrien 543418334Speter * parse.y (namespace_qualifier): Fix multiple level handling. 543550397Sobrien * decl2.c (namespace_ancestor): Use CP_DECL_CONTEXT. 543650397Sobrien (arg_assoc): Don't skip the first argument of a function. 543718334Speter 543850397SobrienTue Jul 14 20:09:22 1998 Jeffrey A Law (law@cygnus.com) 543950397Sobrien 544018334Speter * search.c (my_tree_cons): Clean up. 544150397Sobrien 544250397Sobrien1998-07-14 Jason Merrill <jason@yorick.cygnus.com> 544350397Sobrien 544418334Speter * call.c (joust): Don't warn about "confusing" conversions to the 544550397Sobrien same type. 544618334Speter 544750397Sobrien1998-07-14 Martin von L�wis <loewis@informatik.hu-berlin.de> 544818334Speter 544950397Sobrien * class.c (push_nested_class): Complain about namespaces. 545018334Speter * decl.c (start_decl): Enter the object's namespace. 545150397Sobrien (cp_finish_decl): Leave it. 545250397Sobrien (grokdeclarator): Likewise. 545350397Sobrien * decl2.c (check_decl_namespace): New function. 545418334Speter (finish_file): Call it. 545550397Sobrien * parse.y (complex_direct_notype_declarator): Set complexity 545618334Speter of namespace-qualified ids to -1, enter the namespace. 545750397Sobrien 545818334Speter * method.c (build_template_decl_overload): Expect _DECL as first 545950397Sobrien parameter. Put context temporarily into current_namespace. 546050397Sobrien * pt.c (check_explicit_specialization): Change caller. 546118334Speter (tsubst): Likewise. 546250397Sobrien 546350397Sobrien * init.c (build_offset_ref): Call mark_used and 546450397Sobrien convert_from_reference for namespace members. 546550397Sobrien 546650397SobrienMon Jul 13 23:25:28 1998 Martin von L�wis <loewis@informatik.hu-berlin.de> 546750397Sobrien 546850397Sobrien * search.c (my_tree_cons): The bitfield is at index 2. 546950397Sobrien 547018334SpeterMon Jul 13 17:21:01 1998 Nick Clifton <nickc@cygnus.com> 547150397Sobrien 547250397Sobrien * lang-options.h: Format changed to work with new --help support 547350397Sobrien in gcc/toplev.c 547450397Sobrien 547518334Speter1998-07-12 Martin von L�wis <loewis@informatik.hu-berlin.de> 547650397Sobrien 547750397Sobrien * decl2.c (build_expr_from_tree): Change calls of do_identifier. 547818334Speter Do Koenig lookup in CALL_EXPR. 547950397Sobrien (arg_assoc): Handle error_mark. 548050397Sobrien * lex.c (is_global): New function. 548118334Speter (do_identifier): Expect arguments for Koenig lookup. 548250397Sobrien * parse.y (primary): Add rules for calls of unqualified function calls. 548318334Speter (do_id): Change call of do_identifier. 548450397Sobrien * pt.c (finish_stmt_expr): Likewise. 548550397Sobrien * semantics.c (finish_id_expr): Likewise. 548618334Speter (finish_call_expr): Add integer parameter to indicate 548750397Sobrien argument-dependent lookup. 548850397Sobrien 548950397Sobrien * decl.c (struct binding_level): New field using_directives. 549050397Sobrien (push_using_decl): Not sorry anymore. 549150397Sobrien (push_using_directive): New function. 549250397Sobrien (lookup_tag): Use CP_DECL_CONTEXT to iterate. 549350397Sobrien (unqualified_namespace_lookup): New function, code from ... 549450397Sobrien (lookup_name_real): ... here. 549550397Sobrien * decl2.c (lookup_using_namespace): Pass using list instead of 549650397Sobrien initial scope. 549750397Sobrien (validate_nonmember_using_decl): New function. 549850397Sobrien (do_nonmember_using_decl): New function. 549950397Sobrien (do_toplevel_using_decl): Use them. 550018334Speter (do_local_using_decl): New function. 550150397Sobrien (do_using_directive): Support block-level directives. 550218334Speter * parse.y (simple_stmt): Support using declarations and 550350397Sobrien directives. 550418334Speter (namespace_qualifier, namespace_using_decl): New non-terminals. 550550397Sobrien 550618334Speter * xref.c (classname): New function. 550750397Sobrien (GNU_xref_hier): Change class and base parameters to tree. 550850397Sobrien * decl.c (xref_baseypes): Change caller. 550950397Sobrien * friend.c (make_friend_class): Likewise. 551018334Speter 551150397Sobrien1998-07-12 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu> 551218334Speter 551350397Sobrien * typeck.c (comptypes, case TEMPLATE_TEMPLATE_PARM): Add parameter 551450397Sobrien comparison. 551518334Speter 551650397Sobrien * pt.c (for_each_template_parm, case TEMPLATE_DECL): If it is a 551718334Speter template template parameter, record its use. 551850397Sobrien (for_each_template_parm, case TEMPLATE_TEMPLATE_PARM): Traverse 551918334Speter its template arguments if exists. 552050397Sobrien 552150397Sobrien * pt.c (coerce_template_template_parms): New function equivalent 552218334Speter to coerce_template_parms when IS_TMPL_PARM is true. 552350397Sobrien (coerce_template_parms): Use it. Remove the IS_TMPL_PARM parameter, 552418334Speter all callers changed. 552550397Sobrien 552650397Sobrien (coerce_template_parms): Access ARGLIST properly when creating a 552718334Speter new vector. Only accept implicit TYPE_DECL as valid argument for 552850397Sobrien a template template parameter when it is a base class of 552950397Sobrien current_class_type. Don't display error message when COMPLAIN is 553050397Sobrien false. 553150397Sobrien 553252284Sobrien1998-07-12 Klaus Kaempf (kkaempf@progis.de) 553350397Sobrien 553450397Sobrien * repo.c (get_base_filename): Use file_name_nondirectory. 553518334Speter (open_repo_file): Likewise. 553650397Sobrien * cp-tree.h (file_name_nondirectory): Add prototype. 553718334Speter 553850397Sobrien1998-07-12 Jason Merrill <jason@yorick.cygnus.com> 553950397Sobrien 554050397Sobrien * friend.c (do_friend): Pull the identifier out of declarator. 554118334Speter Use cp_error and friends. 554250397Sobrien * decl2.c (qualified_lookup_using_namespace): Fix call to 554350397Sobrien purpose_member. 554418334Speter * decl.c (lookup_name_real): Don't call complete_type on a namespace. 554550397Sobrien (grokvardecl): Use DECL_CLASS_SCOPE_P. 554618334Speter * cvt.c (convert_pointer_to_real): Check for error_mark_node sooner. 554750397Sobrien * class.c (warn_hidden): Fix for OVERLOAD. 554850397Sobrien From grahams@rcp.co.uk: 554918334Speter * cp-tree.h (DEFARG_NODE_CHECK): New macro. 555050397Sobrien (DEFARG_LENGTH, DEFARG_POINTER): Use it. 555150397Sobrien 555250397SobrienSun Jul 12 01:20:57 1998 Jeffrey A Law (law@cygnus.com) 555318334Speter 555450397Sobrien * g++.1 (-traditional): Remove duplicated documentation. 555550397Sobrien 555618334Speter1998-07-11 Mark Mitchell <mark@markmitchell.com> 555750397Sobrien 555818334Speter * method.c (flush_repeats): Add nrepeats parameter. 555950397Sobrien (issue_nrepeats): Likewise. 556050397Sobrien (is_back_referenceable_type): New function. Don't back-reference 556118334Speter TEMPLATE_TYPE_PARMs as well as simple types like integers. 556250397Sobrien (build_mangled_name_for_type): Likewise. 556318334Speter (build_mangled_name_for_type_with_Gcode): Likewise. 556450397Sobrien (lasttype): Remove. 556550397Sobrien (nrepeats): Likewise. 556650397Sobrien (Nrepeats): Likewise. 556718334Speter (start_squangling): Don't clear the variables removed above. 556852284Sobrien (end_squangling): Likewise. 556952284Sobrien (flush_repeats): Tidy. Use nrepeats parameter rather than 557052284Sobrien Nrepeats global. 557152284Sobrien (issue_nrepeats): Likewise, but with nrepeats global. Use 557252284Sobrien is_backreferenceable_type. 557352284Sobrien (build_overload_nested_name): Tidy. Add comment. Use 557450397Sobrien build_mangled_name_for_type. 557550397Sobrien (build_underscore_int): Comment. 557618334Speter (build_overload_scope_ref): Use build_mangled_name_for_type. 557750397Sobrien (build_overload_int): Likewise. 557818334Speter (build_template_template_parm_names): Tidy. 557950397Sobrien (build_template_parm_names): Use build_mangled_name_for_type. 558050397Sobrien (build_overload_identifier): Add comments. 558150397Sobrien (build_mangled_name_for_type_with_Gcode): Split out from 558250397Sobrien build_mangled_name. 558350397Sobrien (build_mangled_name_for_type): Use it. 558450397Sobrien (build_mangled_name): Rework to use build_mangled_name_for_type 558550397Sobrien and to not use global nrepeats/Nrepeats. Tidy. 558650397Sobrien (process_modifiers): Tidy. 558718334Speter (check_btype): Use is_backreferenceable_type. Add comment. 558850397Sobrien Rename `node' to `type'. 558952284Sobrien (process_overload_item): Set numeric_output_need_bar here. 559050397Sobrien Use build_mangled_name_for_type. Tidy. 559150397Sobrien (build_decl_overload_real): Tidy. Don't use Nrepeats. Use 559218334Speter build_mangled_name_for_type. 559350397Sobrien 559450397Sobrien * pt.c (push_template_decl_real): Don't look at DECL_TEMPLATE_INFO 559518334Speter for TYPE_DECLs. 559652284Sobrien 559718334Speter1998-07-08 Vladimir N. Makarov <vmakarov@cygnus.com> 559850397Sobrien 559918334Speter * cp-tree.h (warn_long_long): Define. 560050397Sobrien * decl.c (grokdeclarator): Add flag `warn_long_long' as guard for 560118334Speter warning "ANSI C++ does not support `long long'". 560250397Sobrien * decl2.c (warn_long_long): Define. 560350397Sobrien (lang_decode_option): Parse -Wlong-long, -Wno-long-long options. 560452284Sobrien 560550397Sobrien1998-07-07 Jason Merrill <jason@yorick.cygnus.com> 560618334Speter 560750397Sobrien * decl.c (xref_tag): Handle attributes between 'class' and name. 560850397Sobrien * parse.y (aggr): Likewise. 560950397Sobrien * semantics.c (finish_class_definition): Likewise. 561050397Sobrien * Makefile.in (EXPECTED): Adjust. 561150397Sobrien 561250397Sobrien * cp-tree.h: Declare flag_optional_diags and warn_multichar. 561350397Sobrien * decl2.c: Define them. 561450397Sobrien (lang_decode_option): Handle them. 561550397Sobrien * lang-options.h: Add -foptional-diags. 561650397Sobrien * class.c (finish_struct): Don't complain about multiple meanings of 561750397Sobrien name if -fno-optional-diags. 561818334Speter * decl.c (pushdecl_class_level): Likewise. 561950397Sobrien * lex.c (real_yylex): Check warn_multichar. 562050397Sobrien 562150397Sobrien1998-07-06 Jason Merrill <jason@yorick.cygnus.com> 562250397Sobrien 562350397Sobrien * decl.c (lookup_tag): Use CP_DECL_CONTEXT. 562450397Sobrien 562550397Sobrien * tree.c (make_binfo): Fix length. 562650397Sobrien 562750397Sobrien1998-06-30 Benjamin Kosnik <bkoz@bliss.nabi.net> 562850397Sobrien 562950397Sobrien * decl2.c (lang_decode_option): Remove warn_template_debugging. 563050397Sobrien * lang-options.h: Likewise. 563150397Sobrien 563250397SobrienMon Jun 29 20:17:40 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 563350397Sobrien 563450397Sobrien * except.c (build_eh_type_type_ref): Remove unused variable `susp'. 563518334Speter (process_start_catch_block): Likewise for variables 563650397Sobrien `false_label_rtx', `call_rtx' and `return_value_rtx'. 563750397Sobrien 563850397Sobrien1998-06-29 Brendan Kehoe <brendan@cygnus.com> 563950397Sobrien 564018334Speter * tree.c (build_srcloc): Make sure we allocate this node on the 564152284Sobrien permanent obstack. 564218334Speter 564352284SobrienSat Jun 27 23:34:18 1998 Fred Fish <fnf@ninemoons.com> 564450397Sobrien 564518334Speter * g++spec.c (NEED_MATH_LIBRARY): Define to 1 if not already defined. 564652284Sobrien (lang_specific_driver): Initialize need_math with NEED_MATH_LIBRARY. 564750397Sobrien (lang_specific_driver): Only add -lm automatically if need_math is 564852284Sobrien nonzero. 564950397Sobrien 565018334SpeterSat Jun 27 12:22:56 1998 Jeffrey A Law (law@cygnus.com) 565150397Sobrien 565250397Sobrien * Make-lang.in (g++): Depend on mkstemp.o. Link in mkstemp.o 565350397Sobrien 565450397SobrienSat Jun 27 07:36:09 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 565518334Speter 565650397Sobrien * Makefile.in (EXPR_H): New dependency variable. 565750397Sobrien (decl2.o): Depend on $(EXPR_H). 565850397Sobrien (typeck.o): Likewise. 565950397Sobrien (init.o): Likewise. 566050397Sobrien (expr.o): Likewise. 566118334Speter 566252284Sobrien1998-06-25 Benjamin Kosnik <bkoz@lisa.cygnus.com> 566318334Speter 566452284Sobrien * decl.c (start_enum): Put local enums on permanent_obstack. 566552284Sobrien 566650397Sobrien1998-06-25 Mark Mitchell <mark@markmitchell.com> 566718334Speter 566850397Sobrien * cp-tree.h (c_get_alias_set): Declare. 566918334Speter * decl.c (init_decl_processing): Set lang_get_alias_set. 567050397Sobrien 567150397Sobrien1998-06-25 Andrew MacLeod <amacleod@cygnus.com> 567252284Sobrien 567350397Sobrien * cp-tree.h (mark_all_runtime_matches): Add function prototype. 567450397Sobrien * except.c (mark_all_runtime_matches): Set TREE_SYMBOL_REFERENCED 567550397Sobrien flag for all function decls which are in the exception table. 567650397Sobrien * exception.cc (__cplus_type_matcher): Check for CATCH_ALL_TYPE match. 567750397Sobrien * decl2.c (finish_file): Call mark_all_runtime_matches to make sure 567850397Sobrien code is emitted for any referenced rtti function. 567950397Sobrien 568052284Sobrien1998-06-25 Dave Brolley <brolley@cygnus.com> 568118334Speter 568250397Sobrien * lang-specs.h: Use new | syntax to eliminate 568318334Speter string concatenation. 568450397Sobrien 568518334Speter1998-06-25 Jason Merrill <jason@yorick.cygnus.com> 568650397Sobrien 568718334Speter * cp-tree.h (CP_DECL_CONTEXT): New macro. 568850397Sobrien * decl2.c (is_namespace_ancestor, lookup_using_namespace): Use it. 568950397Sobrien * method.c (build_overload_nested_name): Likewise. 569050397Sobrien * sig.c (build_signature_pointer_or_reference_type): Don't set 569150397Sobrien DECL_CONTEXT. 569250397Sobrien 569350397Sobrien1998-06-24 Martin v. L�wis <loewis@informatik.hu-berlin.de> 569450397Sobrien 569550397Sobrien Set DECL_CONTEXT for globals to NULL_TREE instead of global_namespace. 569650397Sobrien * cp-tree.h (FROB_CONTEXT): New macro. 569750397Sobrien (DECL_MAIN_P): ::main should have a DECL_CONTEXT of NULL_TREE. 569850397Sobrien * decl.c (namespace_binding): Replace NULL_TREE with 569950397Sobrien global_namespace. 570050397Sobrien (set_namespace_binding, pop_namespace, lookup_name_real): Likewise. 570150397Sobrien * decl2.c (is_namespace_ancestor, lookup_using_namespace): 570250397Sobrien Likewise. 570350397Sobrien * decl.c (pushtag): Use FROB_CONTEXT. 570450397Sobrien (pushdecl, make_typename_type, define_function, grokdeclarator): 570550397Sobrien Likewise. 570650397Sobrien * decl2.c (set_decl_namespace, do_namespace_alias): Likewise. 570750397Sobrien * pt.c (push_template_decl_real, lookup_template_class, tsubst): 570850397Sobrien Likewise. 570950397Sobrien * decl2.c (decl_namespace): Return global_namespace if no context. 571050397Sobrien * method.c (build_overload_nested_name): Expect null as context. 571150397Sobrien * pt.c (mangle_class_name_for_template): Do nothing for null 571250397Sobrien contexts. 571350397Sobrien (lookup_template_class): Allow for null id_context. 571450397Sobrien 571550397Sobrien1998-06-25 Richard Henderson <rth@cygnus.com> 571650397Sobrien 571750397Sobrien * method.c (emit_thunk): Set current_function_is_thunk for the 571850397Sobrien ASM_OUTPUT_MI_THUNK case as well. 571950397Sobrien 572050397Sobrien1998-06-23 Andrew MacLeod <amacleod@cygnus.com> 572150397Sobrien 572250397Sobrien * exception.cc (__cplus_type_matcher): Get a match_info pointer 572318334Speter instead of an exception table entry as a parameter. 572450397Sobrien 572550397Sobrien1998-06-23 Andrew MacLeod <amacleod@cygnus.com> 572618334Speter 572750397Sobrien * parse.y (function_try_block): Don't call start_catch_handler. 572818334Speter * except.c (call_eh_info): Remove coerced field from declaration. 572950397Sobrien (build_eh_type_type_ref): New function to create an address of a 573050397Sobrien rtti function for the new style exception tables. 573150397Sobrien (expand_start_catch_block): Split function, this contains the 573250397Sobrien common part. 573350397Sobrien (process_start_catch_block_old): New function to perform the rest 573418334Speter of expand_start_catch_block under old style exceptions. 573550397Sobrien (process_start_catch_block_old): New function to perform the rest 573618334Speter of expand_start_catch_block under new style exceptions. 573750397Sobrien (expand_end_catch_block): Only pop the false label off the stack under 573850397Sobrien the old style of exceptions. 573950397Sobrien * semantics.c (finish_try_block): Don't call start_catch_handler. 574050397Sobrien * exception.cc (struct cp_eh_info): Add original_value field. 574118334Speter (__cplus_type_matcher): Perform type matching on the original exception 574250397Sobrien value, and if we have a match, set the current value. 574350397Sobrien (__cp_push_exception): Set the original exception value. 574450397Sobrien 574550397Sobrien1998-06-23 Jason Merrill <jason@yorick.cygnus.com> 574652284Sobrien 574750397Sobrien * call.c (joust): Fix confusing conversion warning. 574850397Sobrien 574950397Sobrien * call.c (build_op_delete_call): Add placement parm. Check 575018334Speter LOOKUP_SPECULATIVELY. 575150397Sobrien * cp-tree.h, decl2.c, init.c: Adjust. 575218334Speter * decl.c (finish_function): Use it. 575350397Sobrien 575418334Speter * pt.c (tsubst): Diagnose creating void fields or variables. 575550397Sobrien 575618334SpeterMon Jun 22 08:50:26 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 575750397Sobrien 575818334Speter * call.c (build_scoped_method_call): Remove unused variable `tmp'. 575952284Sobrien 576052284Sobrien * cp-tree.h (check_dtor_name): Add prototype. 576118334Speter 576250397Sobrien * init.c (expand_member_init): Remove unused variables 576318334Speter `ptr_type_node', `parm' and `rval'. 576450397Sobrien 576550397Sobrien * ptree.c (print_lang_type): Use HOST_WIDE_INT_PRINT_DEC specifier 576650397Sobrien in call to fprintf. 576718334Speter (lang_print_xnode): Likewise. 576850397Sobrien 576918334Speter * typeck2.c (enum_name_string): Cast argument to sprintf to long 577050397Sobrien and use %ld specifier. 577150397Sobrien 577218334Speter * xref.c (GNU_xref_end_scope): Use HOST_WIDE_INT_PRINT_DEC 577350397Sobrien specifier in call to fprintf. 577418334Speter (GNU_xref_member): Cast argument to sprintf to int. 577550397Sobrien 577650397SobrienFri Jun 19 23:22:42 1998 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> 577750397Sobrien 577850397Sobrien * typeck2.c (pop_init_level): Warn about implicit zero initialization 577918334Speter of struct members. 578050397Sobrien 578118334SpeterThu Jun 18 09:32:32 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 578252284Sobrien 578318334Speter * cp-tree.h: Prototype function `check_java_method'. 578450397Sobrien 578518334Speter1998-06-17 Jason Merrill <jason@yorick.cygnus.com> 578650397Sobrien 578750397Sobrien * class.c (finish_struct): Make conflicting use of id a pedwarn. 578850397Sobrien * decl.c (pushdecl_class_level): Likewise. 578950397Sobrien 579050397Sobrien1998-06-17 Mark Mitchell <mark@markmitchell.com> 579118334Speter 579250397Sobrien * pt.c (convert_nontype_argument): Issue an error when presented 579318334Speter with an integer (real) constant that cannot be simplified to an 579450397Sobrien INT_CST (REAL_CST). 579518334Speter 579650397Sobrien * cp-tree.h (c_get_alias_set): Remove declaration added in 579718334Speter 1998-06-13 change that should never have been checked in. 579850397Sobrien 579950397Sobrien1998-06-17 Jason Merrill <jason@yorick.cygnus.com> 580018334Speter 580150397Sobrien * typeck.c (build_binary_op_nodefault): Change % in format strings 580218334Speter to %%. 580350397Sobrien 580450397Sobrien * decl.c (grokvardecl): Don't build_static_name for decls that 580552284Sobrien aren't at namespace scope. 580650397Sobrien 580750397Sobrien * init.c (perform_member_init): Catch default-initialization of 580850397Sobrien references. 580918334Speter 581050397Sobrien1998-06-17 Mark Mitchell <mark@markmitchell.com> 581118334Speter 581250397Sobrien * errfn.c (cp_thing): Handle the `%%' formatting sequence. 581350397Sobrien 581418334Speter1998-06-17 Jason Merrill <jason@yorick.cygnus.com> 581550397Sobrien 581618334Speter * method.c (hack_identifier): Complain about getting a namespace 581750397Sobrien or class template. 581850397Sobrien * typeck.c (decay_conversion): Remove check for namespaces. 581950397Sobrien * typeck2.c (incomplete_type_error): Likewise. 582050397Sobrien * parse.y (template_arg): Add PTYPENAME expansion. 582150397Sobrien 582218334Speter1998-06-16 Andrew MacLeod <amacleod@cygnus.com> 582350397Sobrien 582418334Speter * decl.c (grokvardecl): Don't build external assembler names for 582550397Sobrien TYPENAMEs in other namespaces as there is no declarator. 582650397Sobrien * error.c (cp_file_of, cp_line_of): Don't extract file or line number 582750397Sobrien info from DECL_CONTEXT if it is NULL. 582850397Sobrien 582950397Sobrien1998-06-16 Jason Merrill <jason@yorick.cygnus.com> 583050397Sobrien 583150397Sobrien * call.c (check_dtor_name): Split out. 583250397Sobrien (build_scoped_method_call): Use it. 583350397Sobrien (build_method_call): Use it. 583450397Sobrien * init.c (build_offset_ref): Use it. 583550397Sobrien 583650397Sobrien * typeck.c (build_static_cast): Fix handling of pointers to members. 583750397Sobrien 583850397Sobrien * decl.c (finish_function): Just return nothing from a constructor. 583950397Sobrien * typeck.c (c_expand_return): Complain about returning a void 584050397Sobrien expression from a destructor. 584150397Sobrien 584250397Sobrien1998-06-13 Mark Mitchell <mark@markmitchell.com> 584350397Sobrien 584418334Speter * class.c (alter_access): Accept a BINFO explaining how to get 584550397Sobrien from the entity whose accessed is being altered to the type doing 584618334Speter the altering. 584750397Sobrien (handle_using_decl): New function containing code split out from ... 584850397Sobrien (finish_struct_1): Here. 584918334Speter 585050397Sobrien * cp-tree.h (complete_type_or_else): Declare. 585118334Speter * init.c (build_new_1, build_delete): Use it. 585250397Sobrien * typeck.c (require_complete_type): Use complete_type, rather than 585350397Sobrien expanding it inline. 585418334Speter (complete_type_or_else): New function. 585550397Sobrien (build_component_ref): Use it. 585618334Speter (pointer_int_sum): Make sure the type pointed to is complete. 585750397Sobrien (pointer_diff): Likewise. 585850397Sobrien 585950397Sobrien * pt.c (for_each_template_parm): Traverse the TYPE_CONTEXT for 586050397Sobrien types. 586150397Sobrien 586250397Sobrien * search.c (get_matching_virtual): Note that member templates 586350397Sobrien cannot override virtual functions. 586450397Sobrien 586550397Sobrien1998-06-12 Brendan Kehoe <brendan@cygnus.com> 586650397Sobrien 586750397Sobrien * pt.c (check_explicit_specialization): If DECLARATOR turned into 586850397Sobrien an error_mark_node from lookup_template_function, return the same. 586950397Sobrien (determine_specialization): Also make sure TEMPLATE_ID isn't an 587050397Sobrien error_mark_node, before we try to read its operands. 587150397Sobrien * decl.c (grokdeclarator): If we got an error_mark_node from 587250397Sobrien check_explicit_specialization, just return it right back. 587352284Sobrien 587418334Speter1998-06-12 Mark Mitchell <mark@markmitchell.com> 587550397Sobrien 587618334Speter * class.c (instantiate_type): Don't treat template-ids that don't 587750397Sobrien specify any template arguments as equivalent to ordinary 587818334Speter identifiers. Use OFFSET_REF instead of SCOPE_REF to refer to 587950397Sobrien pointer-to-members for member templates. Tidy slightly. 588050397Sobrien * cp-tree.def (TEMPLATE_ID_EXPR): Revise documentation. 588150397Sobrien * init.c (build_offset_ref): Handle template-ids like ordinary 588250397Sobrien identifiers, for the most part, but store a TEMPLATE_ID_EXPR in the 588318334Speter offset part of the OFFSET_REF. 588450397Sobrien * typeck.c (build_unary_op): Change check for unknown types to 588518334Speter look for OFFSET_REFs, not SCOPE_REFs. 588650397Sobrien 588718334Speter1998-06-11 Mark Mitchell <mark@markmitchell.com> 588850397Sobrien 588918334Speter * pt.c (is_member_template_class): New function. 589050397Sobrien (push_template_decl_real): Use it. 589118334Speter 589250397Sobrien1998-06-11 Benjamin Kosnik <bkoz@elmo.cygnus.com> 589350397Sobrien 589418334Speter * friend.c (do_friend): Add support for nested classes using 589550397Sobrien member functions of the enclosing class as friends. 589650397Sobrien 589750397Sobrien1998-06-10 Mark Mitchell <mark@markmitchell.com> 589818334Speter 589950397Sobrien * call.c (convert_default_arg): Make global, not static. 590050397Sobrien (convert_arg_for_ellipsis): Split out from ... 590118334Speter (build_over_call): Here. 590250397Sobrien * cp-tree.h (convert_default_arg); Declare. 590350397Sobrien (convert_arg_to_ellipsis): Likewise. 590450397Sobrien (do_member_init): Remove. 590518334Speter * init.c (do_member_init): Remove; this code is dead. 590650397Sobrien (expand_member_init): Remove much of this code; it is dead. 590718334Speter * typeck.c (convert_arguments): Use convert_default_arg and 590852284Sobrien convert_arg_for_ellipsis, rather than duplicating here. 590952284Sobrien 591018334Speter * call.c (convert_like): Don't fail silently if 591150397Sobrien build_user_type_conversion fails. Always return error_mark_node 591218334Speter for failure. 591350397Sobrien 591418334Speter1998-06-10 Jason Merrill <jason@yorick.cygnus.com> 591550397Sobrien 591618334Speter * search.c (covariant_return_p): Complain about ambiguous base. 591750397Sobrien 591850397Sobrien * typeck.c (build_component_ref): Diagnose ref to nested type. 591918334Speter 592050397Sobrien1998-06-10 Brendan Kehoe <brendan@cygnus.com> 592118334Speter 592250397Sobrien * decl.c (grokparms): Check that INIT isn't an error_mark_node 592350397Sobrien before giving error about invalid type for default arg. 592450397Sobrien 592518334Speter1998-06-10 Jason Merrill <jason@yorick.cygnus.com> 592650397Sobrien 592750397Sobrien * call.c (build_method_call): Fix thinko. 592818334Speter 592950397Sobrien1998-06-10 Dave Brolley <brolley@cygnus.com> 593018334Speter 593150397Sobrien * decl2.c (lang_decode_option): New argc/argv interface. 593250397Sobrien * cp-tree.h (lang_decode_option): New argc/argv interface. 593318334Speter * lang-specs.h (default_compilers): Only call cpp if -E, -M or -MM is 593450397Sobrien specified for cpplib-enabled compilers. 593550397Sobrien * lex.c (lang_init): Don't check_newline for cpplib. 593618334Speter (init_parse): Don't initialize cpplib here. 593750397Sobrien 593850397Sobrien1998-06-10 Brendan Kehoe <brendan@cygnus.com> 593918334Speter 594050397Sobrien * typeck.c (build_component_ref): Make sure FIELD has a lang_specific 594118334Speter piece before checking DECL_MUTABLE_P. 594250397Sobrien 594318334Speter1998-06-10 John Carr <jfc@mit.edu> 594450397Sobrien 594518334Speter * tree.c (debug_binfo): Make printf format match arguments. 594650397Sobrien 594750397Sobrien * error.c (OB_PUTI): Make printf format match arguments. 594850397Sobrien 594950397Sobrien1998-06-10 Jason Merrill <jason@yorick.cygnus.com> 595050397Sobrien 595118334Speter * init.c (perform_member_init): Handle default-initialization. 595250397Sobrien 595318334Speter * except.c (build_throw): Handle throwing NULL. 595452284Sobrien 595550397Sobrien * typeck.c (build_x_function_call): Use resolve_offset_ref. 595650397Sobrien 595750397Sobrien * search.c (compute_access): Only strip an anonymous union 595818334Speter for a FIELD_DECL. 595950397Sobrien 596018334Speter * call.c (add_builtin_candidates): Tweak. 596150397Sobrien 596250397Sobrien * cvt.c (build_expr_type_conversion): Restore code for conversion 596350397Sobrien from class types. 596450397Sobrien * decl2.c (delete_sanity): Use it. Clean up. 596518334Speter 596650397Sobrien * typeck.c (comp_ptr_ttypes_real): Fix cv-qual comparisons. 596718334Speter 596850397Sobrien1998-06-10 Branko Cibej <branko.cibej@hermes.si> 596950397Sobrien 597050397Sobrien * typeck.c (c_expand_return): Don't warn about void expressions on 597118334Speter return statements in functions returning void. 597250397Sobrien 597318334Speter1998-06-09 Mark Mitchell <mark@markmitchell.com> 597450397Sobrien 597550397Sobrien * pt.c (fn_type_unification): Revise documentation. Tidy. 597650397Sobrien (type_unification): Likewise. 597750397Sobrien 597850397Sobrien1998-06-09 Andrew MacLeod <amacleod@cygnus.com> 597918334Speter 598050397Sobrien * semantics.c (finish_try_block): Rename expand_start_catch, and delete 598150397Sobrien expand_end_catch. 598250397Sobrien * parse.y (function_try_block): Rename expand_start_catch, and delete 598350397Sobrien expand_end_catch. 598450397Sobrien * except.c (expand_end_eh_spec): Rename expand_start_catch, and delete 598550397Sobrien expand_end_catch. 598650397Sobrien 598750397Sobrien1998-06-09 Jason Merrill <jason@yorick.cygnus.com> 598818334Speter 598950397Sobrien * search.c (lookup_member): New fn. 599052284Sobrien * class.c (finish_struct_1): Use it. 599118334Speter * decl.c (lookup_name_real): Use it. 599250397Sobrien 599350397SobrienMon Jun 8 20:45:52 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 599418334Speter 599550397Sobrien * Makefile.in (decl2.o): Depend on dwarf2out.h and dwarfout.h. 599618334Speter 599750397Sobrien * cp-tree.h: Add prototype for `maybe_print_template_context' and 599850397Sobrien `maybe_make_one_only'. 599950397Sobrien 600050397Sobrien * decl.c (auto_function): Remove unused variable `decl'. 600150397Sobrien 600250397Sobrien * decl2.c: Include dwarf2out.h and dwarfout.h. 600318334Speter 600450397Sobrien * lex.c: Remove redundant declarations of `set_float_handler' and 600518334Speter `asm_out_file'. 600650397Sobrien 600750397Sobrien1998-06-08 Andrew MacLeod <amacleod@cygnus.com> 600850397Sobrien 600950397Sobrien * except.c (init_exception_processing): Remove NEW_EH_MODEL compile 601050397Sobrien time flag. Call __cp_eh_info instead of __cp_exception_info. 601150397Sobrien * exception.cc (struct cp_eh_info): Remove NEW_EH_MODEL flag. 601250397Sobrien (__cp_exception_info): Return offset into cp_eh_info structure to 601350397Sobrien match what use to be the start of this structure. 601450397Sobrien (__cp_eh_info): New function to return a pointer to cp_eh_info struct. 601550397Sobrien (__cplus_type_matcher, __cp_push_exception): Remove NEW_EH_MODEL 601618334Speter compile time flag. 601750397Sobrien (__uncatch_exception, __check_eh_spec, std::uncaught_exception): Call 601818334Speter __cp_eh_info instead of __cp_exception_info. 601950397Sobrien 602050397Sobrien1998-06-08 Jason Merrill <jason@yorick.cygnus.com> 602118334Speter 602250397Sobrien * decl.c (cp_finish_decl): Disable inlining of extern inlines 602318334Speter with static variables. 602450397Sobrien 602552284Sobrien1998-06-08 Mark Mitchell <mark@markmitchell.com> 602618334Speter 602750397Sobrien * init.c (build_offset_ref): Correct previous change to use build, 602818334Speter not build_min. 602950397Sobrien 603050397Sobrien1998-06-07 Mark Mitchell <mark@markmitchell.com> 603150397Sobrien 603250397Sobrien * class.c (instantiate_type): Handle pointer-to-members where the 603350397Sobrien member is a template. 603450397Sobrien * init.c (build_offset_ref): Likewise. 603550397Sobrien * typeck.c (build_unary_op): Likewise. 603650397Sobrien 603750397Sobrien1998-06-07 Richard Henderson <rth@cygnus.com> 603850397Sobrien 603952284Sobrien * lex.c (lang_init_options): New function. 604052284Sobrien (lang_init): Remove flag_exceptions == 2 hack. 604152284Sobrien 604250397Sobrien1998-06-05 Jason Merrill <jason@yorick.cygnus.com> 604318334Speter 604450397Sobrien * search.c (envelope_add_decl): Tweak for implicit typename. 604518334Speter 604650397Sobrien * call.c (joust): Also warn about confusing conversion op/constructor 604718334Speter overload resolution. 604850397Sobrien 604918334Speter * spew.c (yylex): Also return the TYPE_DECL if got_object. 605050397Sobrien Don't clear got_object after '~'. 605118334Speter * call.c (build_scoped_method_call): Tweak destructor handling. 605250397Sobrien (build_method_call): Likewise. 605350397Sobrien * pt.c (tsubst_copy, case METHOD_CALL_EXPR): Don't mess with 605418334Speter TYPE_MAIN_VARIANT for destructors. 605550397Sobrien * semantics.c (finish_object_call_expr): Complain about calling a 605618334Speter TYPE_DECL. 605750397Sobrien 605818334Speter1998-06-05 Per Bothner <bothner@cygnus.com> 605950397Sobrien 606018334Speter * g++spec.c (lang_specific_pre_link, lang_specific_extra_ofiles): 606150397Sobrien Define - update needed by gcc.c change. 606250397Sobrien 606350397Sobrien1998-06-05 Jason Merrill <jason@yorick.cygnus.com> 606450397Sobrien 606550397Sobrien * error.c (cp_printers): Use 'o' instead of '_' for the null entry. 606650397Sobrien 606718334Speter1998-06-05 Martin v. Loewis <loewis@informatik.hu-berlin.de> 606850397Sobrien 606918334Speter * cp-tree.h (DECL_NAMESPACE_ALIAS, ORIGINAL_NAMESPACE): Declare. 607050397Sobrien * decl.c (lookup_name_real): Add namespaces_only parameter. 607150397Sobrien If set, return only NAMESPACE_DECLs. 607218334Speter (select_decl): Likewise. 607350397Sobrien (identifier_type_value): Give additional parameter. 607418334Speter (lookup_name_nonclass): Likewise. 607550397Sobrien (lookup_name): Likewise. 607618334Speter (find_binding): Skip namespace aliases. 607750397Sobrien (binding_for_name): Likewise. 607818334Speter (push_namespace): Check for namespace aliases. 607950397Sobrien (lookup_name_namespace_only): New function. 608018334Speter (begin_only_namespace_names, end_only_namespace_names): New functions. 608150397Sobrien * decl2.c (set_decl_namespace): Skip namespace aliases. 608218334Speter (do_using_directive): Likewise. 608350397Sobrien (do_namespace_alias): Produce namespace aliases, fix alias 608418334Speter redeclaration. 608550397Sobrien * error.c (dump_decl): Support SCOPE_REF. 608618334Speter * parse.y (extdef): Wrap lookup with namespace_only for namespace 608750397Sobrien aliases and using declarations. 608850397Sobrien 608918334Speter1998-06-04 Jason Merrill <jason@yorick.cygnus.com> 609050397Sobrien 609118334Speter * tree.c (really_overloaded_fn): Only see through one TREE_LIST. 609250397Sobrien 609350397Sobrien * error.c (dump_expr): Clean up NEW_EXPR case. 609450397Sobrien 609518334Speter1998-06-04 Martin von L�wis <loewis@informatik.hu-berlin.de> 609650397Sobrien 609718334Speter Suggested by Brendan Kehoe 609850397Sobrien * decl2.c (do_toplevel_using_decl): When decl is a TYPE_DECL, 609918334Speter treat it as using ::decl. 610052284Sobrien 610152284Sobrien * decl2.c (arg_assoc_type): Process unknown_type_node and OFFSET_TYPE. 610218334Speter 610350397Sobrien * tree.c (mapcar): Support NEW_EXPR. 610418334Speter 610550397Sobrien * error.c (dump_expr): Support NEW_EXPR. 610650397Sobrien 610718334Speter1998-06-03 Jason Merrill <jason@yorick.cygnus.com> 610850397Sobrien 610918334Speter * method.c (make_thunk): Use overload machinery to make name. 611050397Sobrien * search.c (covariant_return_p): New fn. 611150397Sobrien (get_matching_virtual): Use it. 611250397Sobrien 611350397Sobrien * init.c (build_new_1): Fix check for void. 611450397Sobrien 611550397Sobrien1998-06-01 Per Bothner <bothner@cygnus.com> 611618334Speter 611750397Sobrien * cp-tree.h (TYPE_FOR_JAVA): New macro. 611818334Speter * decl.c, cp-tree.h (java_byte_type_node, java_short_type_node, 611950397Sobrien java_int_type_node, java_long_type_node, java_float_type_node, 612050397Sobrien java_double_type_node, java_char_type_node, java_boolean_type_node): 612150397Sobrien New "primitive" types, with predefined names __java_byte etc. 612218334Speter (record_builtin_java_type): New function. 612350397Sobrien (init_decl_processing): Make Java types with record_builtin_java_type. 612418334Speter (pushtag, grokdeclarator): Set TYPE_FOR_JAVA if in extern "JAVA". 612550397Sobrien (xref_baseypes): If base class was TYPE_FOR_JAVA, so is this class. 612618334Speter (grokfndecl): Call check_java_method for Java classes. 612750397Sobrien * method.c (is_java_type): Removed. Replaced with TYPE_FOR_JAVA. 612852284Sobrien (process_overload_item): Match types against specific 612918334Speter java_XX_type_node types, rather than using is_java_type. 613050397Sobrien * class.c (finish_struct_1): Don't add default copy constructor 613118334Speter or operator= if TYPE_FOR_JAVA. 613250397Sobrien (pop_lang_conext): Restore strict_prototyp proper if Java. 613318334Speter * decl2.c (acceptable_java_type, check_java_method): New functions. 613450397Sobrien * pt.c (instantiate_class_template): Copy TYPE_FOR_JAVA from pattern. 613552284Sobrien (tsubst): Move common statement after if statement. 613618334Speter * typeck.c (comptypes): If strict, TYPE_FOR_JAVA must match. 613750397Sobrien 613818334Speter1998-06-01 Jason Merrill <jason@yorick.cygnus.com> 613952284Sobrien 614050397Sobrien * pt.c (for_each_template_parm): Use first_rtl_op. 614150397Sobrien 614252284Sobrien * tree.c (build_cplus_array_type_1): Also check index_type for 614350397Sobrien template parms. 614450397Sobrien 614550397Sobrien1998-05-31 Jason Merrill <jason@yorick.cygnus.com> 614650397Sobrien 614752284Sobrien * pt.c (tsubst): Always copy BINFO_BASETYPES. 614850397Sobrien 614918334Speter1998-05-29 scott snyder <snyder@d0sgif.fnal.gov> 615050397Sobrien 615118334Speter * tree.c (layout_basetypes): If we change TYPE_SIZE, change 615250397Sobrien TYPE_SIZE_UNIT too. 615350397Sobrien 615418334Speter1998-05-29 Mark Mitchell <mark@markmitchell.com> 615550397Sobrien 615618334Speter * decl.c (grokdeclarator): Don't complain about in-class 615750397Sobrien initialization of static consts if we don't really know the type 615850397Sobrien of the variable. 615918334Speter 616050397Sobrien1998-05-29 Jason Merrill <jason@yorick.cygnus.com> 616118334Speter 616250397Sobrien * cp-tree.h (DECL_DESTRUCTOR_P): New macro. 616350397Sobrien * method.c (build_destructor_name): New fn. 616450397Sobrien * decl2.c (maybe_retrofit_in_chrg): Split out... 616550397Sobrien (grokclassfn): From here. Reorganize. 616618334Speter * decl.c (grok_ctor_properties): Make sure ctors for types with 616750397Sobrien vbases have the in_chrg parm. 616818334Speter * pt.c (instantiate_class_template): Update 616950397Sobrien TYPE_USES_VIRTUAL_BASECLASSES from tsubsted bases. Don't call 617050397Sobrien grok_*_properties. 617152284Sobrien (tsubst): Call grok_ctor_properties and maybe_retrofit_in_chrg. 617250397Sobrien 617318334Speter1998-05-28 Mark Mitchell <mark@markmitchell.com> 617450397Sobrien 617518334Speter * pt.c (instantiate_decl): Make test for whether or not static 617650397Sobrien variables should be instantiated early match its comment. 617750397Sobrien 617818334Speter1998-05-28 Jason Merrill <jason@yorick.cygnus.com> 617950397Sobrien 618050397Sobrien * decl.c (start_decl): Always pedwarn about vacuously redeclaring 618150397Sobrien a member. 618250397Sobrien (start_function): Call check_default_args. 618350397Sobrien * decl2.c (grokfield): Don't call check_default_args. 618450397Sobrien (check_default_args): Use cp_error_at. 618550397Sobrien * lex.c (do_pending_defargs): Call check_default_args. 618650397Sobrien 618718334Speter1998-05-27 Brendan Kehoe <brendan@cygnus.com> 618850397Sobrien 618918334Speter * call.c (build_method_call): Make sure get_type_value returns 619050397Sobrien something before we try to use its TYPE_MAIN_VARIANT. 619150397Sobrien (build_scoped_method_call): Likewise. 619218334Speter 619350397Sobrien1998-05-27 Jason Merrill <jason@yorick.cygnus.com> 619418334Speter 619550397Sobrien * typeck2.c (digest_init): Complain about getting a TREE_LIST to 619618334Speter initialize an array. 619750397Sobrien 619818334Speter * search.c (expand_upcast_fixups): Don't set DECL_CONTEXT and 619950397Sobrien DECL_VIRTUAL_P. 620050397Sobrien 620150397Sobrien * friend.c (do_friend): Clarify template warning. 620250397Sobrien 620350397Sobrien1998-05-27 Mark Mitchell <mark@markmitchell.com> 620450397Sobrien 620550397Sobrien * decl.c (shadow_label): Don't treat decls as identifiers. 620650397Sobrien (maybe_push_to_top_level): Clear shadowed_labels. 620750397Sobrien 620850397Sobrien * pt.c (instantiate_decl): Reset lineno and filename after calling 620950397Sobrien regenerate_decl_from_template. 621050397Sobrien 621150397Sobrien * decl.c (grokdeclarator): Don't try to use TYPE_OBSTACK on an 621250397Sobrien error_mark_node. 621352284Sobrien 621450397Sobrien1998-05-27 Kevin Buhr <buhr@stat.wisc.edu> 621550397Sobrien 621650397Sobrien * parse.y (base_class): Use is_aggr_type, not IS_AGGR_TYPE. 621750397Sobrien 621818334Speter1998-05-26 Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu> 621950397Sobrien 622018334Speter * pt.c (process_template_parm): Accept TYPENAME_TYPE nodes. 622150397Sobrien (convert_nontype_argument): Handle cases when nontype template 622218334Speter parameters become classes after substitution. 622350397Sobrien 622418334Speter1998-05-26 Mark Mitchell <mark@markmitchell.com> 622550397Sobrien 622618334Speter * friend.c (is_friend): Use comptypes, rather than == to compare 622750397Sobrien types. Modify for new representation of template friends. 622850397Sobrien (make_friend_class): Likewise. 622950397Sobrien * pt.c (tsubst_friend_class): Undo 1998-05-21 change. Tweak. 623018334Speter (instantiate_class_template): Deal with template friends. 623150397Sobrien 623218334Speter * decl.c (store_parm_decls): Remove redundant call to 623350397Sobrien expand_main_function. 623418334Speter 623550397Sobrien1998-05-26 Benjamin Kosnik <bkoz@loony.cygnus.com> 623618334Speter 623750397Sobrien * decl.c (start_decl): Check for DECL_LANG_SPECIFIC before 623818334Speter DECL_USE_TEMPLATE. 623950397Sobrien 624050397Sobrien1998-05-26 Per Bothner <bothner@cygnus.com> 624150397Sobrien 624218334Speter * language_as_string: Handle lang_java. 624350397Sobrien 624418334Speter1998-05-26 Jason Merrill <jason@yorick.cygnus.com> 624550397Sobrien 624618334Speter * decl.c (pushdecl): Don't copy the type_decl. 624750397Sobrien 624850397Sobrien1998-05-26 Martin v. L�wis <loewis@informatik.hu-berlin.de> 624950397Sobrien 625050397Sobrien * class.c (pushclass): Always store TYPE_MAIN_VARIANT in 625150397Sobrien current_class_type. 625250397Sobrien * decl.c (grokdeclarator): Put typedefs on the type's obstack. 625350397Sobrien 625450397Sobrien * parse.y (complex_direct_notype_declarator): Use $1 to access 625550397Sobrien scope of notype_qualified_id. 625650397Sobrien 625750397Sobrien1998-05-26 Dave Brolley <brolley@cygnus.com> 625850397Sobrien 625950397Sobrien * lex.c (parse_options,yy_cur,yy_lim): Add for cpplib. 626050397Sobrien (init_parse): Initialize cpplib interface. 626150397Sobrien 626250397Sobrien * Makefile.in (CXX_OBJS): Make sure dependencies never end with an 626350397Sobrien empty continuation. 626450397Sobrien 626550397Sobrien1998-05-26 Mark Mitchell <mark@markmitchell.com> 626650397Sobrien 626718334Speter * decl.c (pushtag): Avoid crashing on erroneous input. 626850397Sobrien 626918334Speter1998-05-25 Martin v. L�wis <loewis@informatik.hu-berlin.de> 627050397Sobrien 627118334Speter * decl.c (push_namespace): Only produce one unique name for 627250397Sobrien anonymous namespaces. 627318334Speter (get_unique_name): Remove. 627418334Speter 627550397Sobrien1998-05-25 Mark Mitchell <mark@markmitchell.com> 627618334Speter 627750397Sobrien * call.c (tourney): Don't do any extra comparisons. 627818334Speter 627950397Sobrien * decl2.c (build_anon_union_vars): Don't crash on empty sub-unions. 628018334Speter 628150397Sobrien * cp-tree.h (processing_template_parmlist): Declare. 628250397Sobrien * decl.c (pushtag): Don't call push_template_decl when we 628318334Speter shouldn't. 628450397Sobrien * pt.c (processing_template_parmlist): New variable. 628518334Speter (TMPL_ARGS_HAVE_MULTIPLE_LEVELS): New macro. 628650397Sobrien (complete_template_args): Use it. 628750397Sobrien (add_to_template_args): Likewise. 628850397Sobrien (innermost_args): Likewise. 628918334Speter (tsubst): Likewise. 629050397Sobrien (begin_template_parm_list): Use processing_template_parmlist. 629118334Speter (end_template_parm_list): Likewise. 629250397Sobrien 629350397Sobrien * cp-tree.h (ANON_UNION_TYPE_P): New macro. 629450397Sobrien * decl.c (grokdeclarator): Use it. 629550397Sobrien * decl2.c (grok_x_components): Likewise. 629652284Sobrien * init.c (initializing_context): Likewise. 629750397Sobrien * method.c (do_build_copy_constructor): Likewise. 629852284Sobrien (do_build_assign_ref): Likewise. 629950397Sobrien * search.c (compute_access): Likewise. 630050397Sobrien * typeck.c (build_component_ref): Likewise. 630150397Sobrien 630218334Speter * decl.c (grokdeclarator): Don't give a cv-qualified version of an 630350397Sobrien unnamed type a typedef name "for linkage purposes". 630418334Speter 630550397Sobrien * pt.c (lookup_template_class): Don't look at 630650397Sobrien IDENTIFIER_CLASS_VALUE when there's no current_class_type. 630718334Speter 630850397Sobrien * method.c (build_overload_int): Handle error cases gracefully. 630918334Speter 631052284Sobrien * pt.c (instantiate_decl): Handle static member variables 631150397Sobrien correctly. 631250397Sobrien 631350397Sobrien * pt.c (tsubst): Use the tsubst'd type when producing new 631450397Sobrien TEMPLATE_PARM_INDEX nodes. 631550397Sobrien 631618334Speter1998-05-24 Mark Mitchell <mark@markmitchell.com> 631750397Sobrien 631818334Speter * tree.c (cp_tree_equal): Handle pointers to member functions. 631950397Sobrien 632050397Sobrien * call.c (maybe_handle_implicit_object): Handle QUAL_CONVs. Make 632150397Sobrien sure the type of the REF_BIND is a reference type. 632218334Speter (maybe_handle_ref_bind, compare_ics): Rename reference_type to 632350397Sobrien target_type for clarity. 632418334Speter 632550397Sobrien * parse.y (xcond): Move call to condition_conversion ... 632650397Sobrien * semantics.c (finish_for_cond): Here. 632718334Speter * parse.c: Regenerated. 632850397Sobrien 632950397Sobrien1998-05-24 Jason Merrill <jason@yorick.cygnus.com> 633018334Speter 633150397Sobrien * decl.c (push_namespace): Namespaces have type void. 633218334Speter * typeck2.c (incomplete_type_error): Complain about namespace 633350397Sobrien used as expression. 633418334Speter * typeck.c (decay_conversion): Likewise. 633550397Sobrien 633650397Sobrien1998-05-24 Martin von L�wis <loewis@informatik.hu-berlin.de> 633718334Speter 633850397Sobrien * error.c (dump_expr): Support namespaces. 633952284Sobrien 634018334Speter1998-05-23 Jason Merrill <jason@yorick.cygnus.com> 634150397Sobrien 634250397Sobrien * cp-tree.def: Add SRCLOC. 634318334Speter * cp-tree.h: Add struct tree_srcloc and accessor macros. 634450397Sobrien * tree.c (build_srcloc, build_srcloc_here): New fns. 634518334Speter * pt.c (add_pending_template): Use build_srcloc_here. 634650397Sobrien (push_tinst_level): Update last_template_error_tick before erroring. 634718334Speter (instantiate_decl): Restore lineno and input_filename before 634850397Sobrien calling add_pending_template. 634918334Speter * decl2.c (finish_file): Set up lineno and input_filename for 635050397Sobrien pending templates. 635150397Sobrien 635250397Sobrien1998-05-22 Jason Merrill <jason@yorick.cygnus.com> 635318334Speter 635450397Sobrien * decl.c (lang_print_error_function): New fn. 635518334Speter (init_decl_processing): Set print_error_function to use it. 635650397Sobrien * errfn.c (cp_thing): Don't call maybe_print_template_context here. 635750397Sobrien 635850397Sobrien * call.c (maybe_handle_ref_bind): Propagate ICS_USER_FLAG and 635950397Sobrien ICS_BAD_FLAG. 636050397Sobrien 636118334Speter * cvt.c (ocp_convert): Don't set LOOKUP_NO_CONVERSION for 636250397Sobrien copy-initialization. 636350397Sobrien 636418334Speter * class.c (build_vtable_entry): Use int_fits_type_p. 636550397Sobrien (build_vtable): Pass a signed offset to build_vtable_entry. 636618334Speter (prepare_fresh_vtable, modify_one_vtable, fixup_vtable_deltas1, 636750397Sobrien set_rtti_entry): Likewise. 636852284Sobrien 636918334Speter1998-05-22 Per Bothner <bothner@cygnus.com> 637050397Sobrien 637118334Speter * cp-tree.h: Add comments documenting which LANG_FLAGS are used. 637250397Sobrien (C_TYPE_VARIABLE_SIZE, C_DECL_VARIABLE_SIZE): Removed, not used. 637318334Speter 637450397Sobrien1998-05-22 Jason Merrill <jason@yorick.cygnus.com> 637518334Speter 637650397Sobrien * pt.c (print_template_context): Use fprintf instead of cp_error. 637718334Speter 637850397Sobrien * pt.c (determine_specialization): Just return an error_mark_node. 637918334Speter Also print the decl we want in error messages. If we complain, 638050397Sobrien return error_mark_node. 638150397Sobrien (tsubst_friend_function): Set lineno and input_filename so 638250397Sobrien error messages will be useful. 638318334Speter (instantiate_template): Just return an error_mark_node. 638450397Sobrien (check_explicit_specialization): Don't mess with a returned 638550397Sobrien error_mark_node. 638618334Speter 638750397Sobrien * pt.c (print_template_context): Add new argument. 638818334Speter (maybe_print_template_context): New fn. 638950397Sobrien (push_tinst_level): Increment tinst_level_tick. 639050397Sobrien (pop_tinst_level): Likewise. 639118334Speter * errfn.c (cp_thing): Call maybe_print_template_context. Use 639250397Sobrien xrealloc instead of xmalloc. 639350397Sobrien 639418334Speter * typeck.c (build_unary_op, CONVERT_EXPR): Propagate TREE_CONSTANT. 639550397Sobrien 639618334Speter1998-05-21 Jason Merrill <jason@yorick.cygnus.com> 639750397Sobrien 639818334Speter * pt.c (tsubst_friend_class): Don't call redeclare_class_template 639950397Sobrien if the template we looked up is the same as the one we already 640018334Speter have. 640150397Sobrien 640250397SobrienThu May 21 11:54:44 1998 Dave Brolley <brolley@cygnus.com> 640350397Sobrien 640418334Speter * lex.c: (handle_sysv_pragma): FILE* parameter not used. 640550397Sobrien (cpp_reader,parse_in): Add for cpplib. 640618334Speter (check_newline): Call handle_sysv_pragma with new interface. 640750397Sobrien (check_newline): Call GET_DIRECTIVE_LINE, not get_directive_line. 640818334Speter 640950397Sobrien * input.c: (yy_cur,yy_lim,yy_get_token,GETC): Add for cpplib. 641018334Speter (sub_getch): Call GETC for cpplib. 641150397Sobrien 641250397Sobrien * cp-tree.h: (get_directive_line): Different prototype for cpplib. 641352284Sobrien (GET_DIRECTIVE_LINE): Macro wrapper for get_directive_line. 641450397Sobrien 641550397Sobrien * Makefile.in (CXX_OBJS): Add @extra_cxx_objs@ for cpplib. 641650397Sobrien 641750397Sobrien1998-05-21 Jason Merrill <jason@yorick.cygnus.com> 641850397Sobrien 641950397Sobrien * decl2.c (maybe_make_one_only): New fn. 642050397Sobrien (import_export_vtable): Use it. 642150397Sobrien (import_export_decl): Likewise. 642218334Speter * pt.c (mark_decl_instantiated): Likewise. 642350397Sobrien 642450397Sobrien1998-05-21 Mark Mitchell <mmitchell@usa.net> 642550397Sobrien 642650397Sobrien * decl2.c (find_representative_member): Rename to ... 642750397Sobrien (build_anon_union_vars): New function. 642850397Sobrien (finish_anon_union): Fix stupidity of previous change. 642950397Sobrien 643050397Sobrien1998-05-20 Jason Merrill <jason@yorick.cygnus.com> 643118334Speter 643250397Sobrien * decl.c (grokfndecl): Handle definition of specialization in 643350397Sobrien friend declaration. 643418334Speter 643550397Sobrien * error.c (dump_decl): Fix LOOKUP_EXPR handling. 643650397Sobrien 643718334Speter1998-05-20 Mark Mitchell <mmitchell@usa.net> 643850397Sobrien 643918334Speter * class.c (delete_duplicate_fields_1): Use DECL_DECLARES_TYPE_P 644050397Sobrien to look for type declarations. 644150397Sobrien (finish_struct): Deal with templates on the CLASSTYPE_TAGS list. 644218334Speter * cp-tree.h (DECL_DECLARES_TYPE_P): New macro. 644350397Sobrien (finish_member_class_template): Declare. 644450397Sobrien * decl.c (pushtag): Put member class templates on the 644518334Speter CLASSTYPE_TAGS list, just as for ordinary member classes. 644650397Sobrien (pushdecl_class_level): Use DECL_DECLARES_TYPE_P. 644718334Speter (lookup_tag): Look for IDENTIFIER_CLASS_VALUEs, just as with 644850397Sobrien IDENTIFIER_NAMESPACE_VALUEs. 644918334Speter * parse.y (component_decl): Move code to ... 645050397Sobrien * semantics.c (finish_member_class_template): New function. 645150397Sobrien Don't put member class templates on the list of components for a 645250397Sobrien class. 645350397Sobrien * parse.c: Regenerated. 645418334Speter * pt.c (classtype_mangled_name): Don't try DECL_CONTEXT on types. 645550397Sobrien In fact, don't use DECL_CONTEXT at all here. 645650397Sobrien 645750397Sobrien1998-05-20 Martin von Loewis <loewis@informatik.hu-berlin.de> 645852284Sobrien 645950397Sobrien * decl.c (record_unknown_type): New function. 646018334Speter (init_decl_processing): Call it for the unknown and global type 646150397Sobrien nodes. 646250397Sobrien 646350397Sobrien1998-05-20 Mark Mitchell <mmitchell@usa.net> 646450397Sobrien 646518334Speter * decl2.c (find_representative_member): New function. 646650397Sobrien (finish_anon_union): Use it. 646718334Speter 646850397Sobrien * cp-tree.h (MAIN_NAME_P): New macro. 646918334Speter (DECL_MAIN_P): Likwise. 647050397Sobrien * decl.c (pushdecl): Avoid crashing on redefinitions of `main'. 647118334Speter (grokfndecl): Use the new macros. 647250397Sobrien (grokdeclarator): Likewise. 647350397Sobrien (start_function): Likewise. 647450397Sobrien (store_parm_decls): Likewise. 647550397Sobrien (finsh_function): Likewise. 647650397Sobrien * friend.c (do_friend): Likewise. 647752284Sobrien * typeck.c (build_function_call_real): Likewise. 647850397Sobrien (build_unary_op): Likewise. 647950397Sobrien 648050397SobrienWed May 20 02:16:01 1998 Jason Merrill <jason@yorick.cygnus.com> 648118334Speter 648250397Sobrien * decl2.c (start_objects, finish_objects, do_dtors, 648318334Speter do_ctors): Split out from... 648452284Sobrien (finish_file): ...here. 648550397Sobrien 648650397SobrienTue May 19 20:36:23 1998 Jason Merrill <jason@yorick.cygnus.com> 648718334Speter 648850397Sobrien * tree.c (is_overloaded_fn): Don't abort on placeholders from 648950397Sobrien push_class_decls. 649018334Speter 649150397SobrienTue May 19 15:16:22 1998 Brendan Kehoe <brendan@cygnus.com> 649250397Sobrien 649318334Speter * class.c (is_empty_class): Return 0 if TYPE is an error_mark_node. 649450397Sobrien 649550397Sobrien * error.c (dump_expr): Handle an ARROW_EXPR. 649650397Sobrien 649750397SobrienTue May 19 15:13:39 1998 Mark Mitchell <mmitchell@usa.net> 649818334Speter 649950397Sobrien * decl.c (saveable_obstack): Declare. 650018334Speter (pushdecl): Copy TYPE_DECLs to the same obstack as the type they 650150397Sobrien declare, if necessary. 650250397Sobrien 650318334SpeterTue May 19 14:50:27 1998 Mark Mitchell <mmitchell@usa.net> 650450397Sobrien 650518334Speter * call.c (compare_qual): Remove. 650650397Sobrien (is_subseq): Tweak. 650718334Speter (is_properly_derived_from): New function. 650850397Sobrien (maybe_handle_ref_bind): Likewise. 650950397Sobrien (maybe_handle_implicit_object): Likewise. 651050397Sobrien (compare_ics): Modify substantially to bring into conformance with 651152284Sobrien the standard. 651250397Sobrien * cp-tree.h (TYPE_PTRMEMFUNC_OBJECT_TYPE): New macro. 651350397Sobrien (comp_cv_qualification): Declare. 651450397Sobrien (comp_cv_qual_signature): Likewise. 651550397Sobrien * typeck.c (comp_cv_qualification): Likewise. 651618334Speter (comp_cv_qual_signature): Likewise. 651750397Sobrien 651850397SobrienTue May 19 10:05:02 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 651950397Sobrien 652050397Sobrien * Makefile.in (parse.o): Depend on toplev.h. 652150397Sobrien 652250397Sobrien * class.c (typecode_p): Remove prototype and definition. 652318334Speter 652450397Sobrien * cp-tree.h (currently_open_class, is_empty_class, member_p): 652518334Speter Add prototype. 652650397Sobrien 652718334Speter * decl.c (push_overloaded_decl_top_level): Remove prototype and 652850397Sobrien definition. 652950397Sobrien 653050397Sobrien * errfn.c (cp_error): Cast function pointer `error' to (errorfn *) 653118334Speter in call to `cp_thing'. 653250397Sobrien (cp_warning): Likewise for function pointer `warning'. 653318334Speter 653450397Sobrien * except.c (do_function_call): Remove prototype and definition. 653550397Sobrien (call_eh_info): Wrap variable `t1' in macro NEW_EH_MODEL. 653650397Sobrien 653750397Sobrien * method.c (is_java_type): Add prototype and make it static. 653818334Speter 653950397Sobrien * parse.y: Include toplev.h. 654050397Sobrien 654118334Speter * pt.c (type_unification): Remove unused variable `arg'. 654250397Sobrien (instantiate_decl): Likewise for `save_ti'. 654350397Sobrien 654418334Speter * tree.c (propagate_binfo_offsets): Likewise for `base_binfos'. 654552284Sobrien 654618334SpeterTue May 19 02:43:25 1998 Jason Merrill <jason@yorick.cygnus.com> 654750397Sobrien 654818334Speter * init.c (build_member_call): Handle template_ids. 654950397Sobrien * parse.y (primary): Add global_scope template_id. 655050397Sobrien 655150397SobrienMon May 18 23:22:52 1998 Jason Merrill <jason@yorick.cygnus.com> 655250397Sobrien 655318334Speter * decl2.c (get_sentry): Use end_temporary_allocation. 655450397Sobrien Don't declare permanent_obstack. 655518334Speter 655650397SobrienMon May 18 12:28:44 1998 Mark Mitchell <mmitchell@usa.net> 655750397Sobrien 655850397Sobrien * parse.y (.finish_new_placement): New non-terminal. 655918334Speter (unary_expr, new_type_id): Use it. 656050397Sobrien * parse.c: Regenerated. 656118334Speter 656250397SobrienMon May 18 12:20:27 1998 Brendan Kehoe <brendan@cygnus.com> 656350397Sobrien 656418334Speter * pt.c (redeclare_class_template): Say where the original definition 656550397Sobrien of the template-parameter's default argument appeared. 656618334Speter 656750397SobrienMon May 18 03:00:57 1998 Jason Merrill <jason@yorick.cygnus.com> 656818334Speter 656950397Sobrien * call.c (build_over_call): Tweak empty class handling. 657050397Sobrien 657150397Sobrien * decl.c (make_typename_type): Use currently_open_class. 657250397Sobrien 657350397Sobrien * class.c (instantiate_type): Don't abort on TREE_NONLOCAL_FLAG. 657450397Sobrien 657550397SobrienMon May 18 01:43:01 1998 Martin v. Loewis <loewis@informatik.hu-berlin.de> 657650397Sobrien 657750397Sobrien * decl.c (lookup_name_real): Don't look at IDENTIFIER_LOCAL_VALUE 657852284Sobrien for a type unless it is one. 657950397Sobrien 658052284Sobrien * class.c (finish_struct_1): Use OVL_CURRENT in error message. 658150397Sobrien 658252284SobrienMon May 18 01:24:08 1998 Jeffrey A Law (law@cygnus.com) 658350397Sobrien 658450397Sobrien * Makefile.in (program_transform_name, objdir): Define. 658550397Sobrien 658618334Speter * Makefile.in (BISON): Use bison from the build tree if it exists. 658750397Sobrien (FLEX): Likewise. 658818334Speter 658950397SobrienSun May 17 14:52:08 1998 Martin v. Loewis <loewis@informatik.hu-berlin.de> 659050397Sobrien 659150397Sobrien * typeck.c (type_unknown_p): Return true for TREE_LIST also. 659218334Speter 659350397Sobrien * call.c (build_method_call): Use TYPE_MAIN_VARIANT on typedefs. 659418334Speter 659550397SobrienSun May 17 14:51:41 1998 Jason Merrill <jason@yorick.cygnus.com> 659650397Sobrien 659718334Speter * call.c (build_scoped_method_call): Likewise. 659850397Sobrien 659950397SobrienSun May 17 13:53:48 1998 Mark Mitchell <mmitchell@usa.net> 660050397Sobrien 660150397Sobrien * init.c (build_new_1): Call suspend_momentary around the creation 660250397Sobrien of values that must be saved for exception handling. 660350397Sobrien * parse.y (.build_new_placement): New non-terminal. 660450397Sobrien (unary_expr, new_placement): Use it. 660550397Sobrien * parse.c: Regenerated. 660650397Sobrien 660750397SobrienSun May 17 12:32:08 1998 Jason Merrill <jason@yorick.cygnus.com> 660850397Sobrien 660918334Speter * decl.c (duplicate_decls): Use CANONICAL_TYPE_VARIANT to compare 661050397Sobrien old and new types. 661118334Speter 661250397Sobrien * pt.c (tsubst): Make sure that BINFO_TYPE of new binfos is the 661350397Sobrien canonical type. 661450397Sobrien 661518334Speter * call.c (build_over_call): Don't use IS_SIGNATURE on a namespace. 661650397Sobrien 661718334SpeterFri May 15 20:28:00 1998 Jason Merrill <jason@yorick.cygnus.com> 661850397Sobrien 661950397Sobrien * decl.c (start_decl): Revert problem change. 662018334Speter 662150397Sobrien * Makefile.in (CONFLICTS): Fix. 662218334Speter 662350397SobrienFri May 15 15:34:02 1998 Benjamin Kosnik <bkoz@rhino.cygnus.com> 662418334Speter 662550397Sobrien * decl.c (duplicate_decls): Clean up, add DECL_DATA_AREA bits. 662618334Speter 662750397SobrienFri May 15 00:46:05 1998 Jason Merrill <jason@yorick.cygnus.com> 662818334Speter 662950397Sobrien * class.c (finish_struct_1): Use BINFO_SIZE. 663050397Sobrien 663150397Sobrien * decl.c (start_decl): Use 'tem'. 663218334Speter 663350397SobrienThu May 14 16:30:47 1998 Andrew MacLeod <amacleod@cygnus.com> 663418334Speter 663550397Sobrien * exception.cc: Include eh-common.h. 663650397Sobrien (struct cp_eh_info): Add eh_info struct with NEW_EH_MODEL. 663750397Sobrien (__cplus_type_matcher): First stab at new C++ runtime type matcher. 663850397Sobrien (__cp_push_exception): Initialize eh_info struct as well. 663950397Sobrien * except.c: Remove local structs and include eh-common.h. 664050397Sobrien (init_exception_processing): Set language and version codes. 664150397Sobrien (call_eh_info): Add presence of eh_info to runtime description of 664250397Sobrien struct cp_eh_info. 664350397Sobrien (expand_end_eh_spec): Call start_catch_block() and end_catch_block(). 664450397Sobrien * semantics.c (finish_try_block): Call start_catch_block() and 664550397Sobrien end_catch_block(). 664650397Sobrien * parse.y (function_try_block): Call start_catch_block() and 664718334Speter end_catch_block(). 664850397Sobrien 664918334SpeterThu May 14 12:27:34 1998 Brendan Kehoe <brendan@cygnus.com> 665050397Sobrien 665118334Speter * typeck.c (original_type): New function. 665250397Sobrien (common_type): Use it to get the DECL_ORIGINAL_TYPE for T1 and T2, 665318334Speter to see if they're actually the same. 665450397Sobrien * cp-tree.h (original_type): Declare. 665550397Sobrien 665618334SpeterWed May 13 12:54:30 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 665750397Sobrien 665850397Sobrien * Makefile.in (lex.o): Depend on output.h. 665918334Speter 666050397Sobrien * call.c (add_function_candidate): Remove unused variable `cand'. 666152284Sobrien (add_conv_candidate): Likewise. 666250397Sobrien (build_builtin_candidate): Likewise. 666318334Speter 666450397Sobrien * cp-tree.h: Add prototype for `types_overlap_p'. 666550397Sobrien 666618334Speter * decl.c (signal_catch): Mark parameter `sig' with ATTRIBUTE_UNUSED. 666750397Sobrien 666818334Speter * decl2.c (merge_functions): Remove unused variables `tmp' and 666950397Sobrien `tempn'. 667018334Speter 667150397Sobrien * error.c (expr_as_string): Mark parameter `v' with ATTRIBUTE_UNUSED. 667252284Sobrien (code_as_string): Likewise. 667318334Speter (language_as_string): Likewise. 667450397Sobrien (parm_as_string): Likewise. 667552284Sobrien (op_as_string): Likewise. 667650397Sobrien (assop_as_string): Likewise. 667718334Speter (cv_as_string): Likewise. 667850397Sobrien 667950397Sobrien * lex.c: Include output.h. 668018334Speter 668150397Sobrien * pt.c (type_unification): Cast first argument of `bzero' to a char*. 668218334Speter 668350397Sobrien * search.c (dfs_no_overlap_yet): Mark parameter `t' with 668450397Sobrien ATTRIBUTE_UNUSED. 668518334Speter 668650397Sobrien * tinfo.cc (__class_type_info::dcast): Change the type of variable 668718334Speter `i' from int to size_t. 668850397Sobrien 668952284Sobrien * typeck.c (language_lvalue_valid): Mark parameter `exp' with 669050397Sobrien ATTRIBUTE_UNUSED. 669152284Sobrien 669250397SobrienTue May 12 21:37:49 1998 Jason Merrill <jason@yorick.cygnus.com> 669318334Speter 669450397Sobrien * error.c (dump_simple_decl): Use DECL_CLASS_SCOPE_P and/or 669550397Sobrien DECL_NAMESPACE_SCOPE_P. 669618334Speter (lang_decl_name): Likewise. 669750397Sobrien * pt.c (tsubst_friend_function, tsubst): Likewise. 669818334Speter * decl.c (pushdecl, redeclaration_error_message, start_decl, 669950397Sobrien cp_finish_decl, start_function): Likewise. 670018334Speter * class.c (finish_struct_1): Likewise. 670150397Sobrien * call.c (build_over_call): Likewise. 670218334Speter (compare_ics): Use DERIVED_FROM_P. 670350397Sobrien 670418334SpeterTue May 12 07:24:18 1998 Mark Mitchell <mmitchell@usa.net> 670550397Sobrien 670618334Speter * cp-tree.h (CANONICAL_TYPE_VARIANT): New macro. 670752284Sobrien * method.c (build_mangled_name): Use it. 670850397Sobrien (build_decl_overload_real): Likewise. 670918334Speter 671050397Sobrien * error.c (dump_simple_decl): New function, broken out from ... 671118334Speter (dump_decl): Use it. 671250397Sobrien 671318334SpeterMon May 11 11:38:07 1998 Mark Mitchell <mmitchell@usa.net> 671450397Sobrien 671518334Speter * ptree.c (lang_print_xnode): Add missing `break'. 671650397Sobrien 671752284Sobrien * pt.c (tsubst): Remove duplicate check for IDENTIFIER_NODE. 671818334Speter 671950397Sobrien * call.c (add_template_candidate): Adjust for changes to 672018334Speter fn_type_unification. 672150397Sobrien (add_template_candidate_real): Likewise. 672218334Speter (add_template_conv_candidate): Likewise. 672350397Sobrien (build_user_type_conversion_1): Likewise. 672418334Speter (build_new_function_call): Likewise. 672550397Sobrien (build_object_call): Likewise. 672618334Speter (build_new_op): Likewise. 672750397Sobrien (build_new_method_call): Likewise. 672818334Speter * class.c (instantiate_type): Likewise. 672950397Sobrien * cp-tree.h (unification_kind_t): New type. 673018334Speter (fn_type_unification): Adjust prototype. 673150397Sobrien (type_unificaiton): Likewise. 673250397Sobrien * pt.c (UNIFY_ALLOW_NONE): New macro. 673350397Sobrien (UNIFY_ALLOW_MORE_CV_QUAL): Likewise. 673450397Sobrien (UNIFY_ALLOW_LESS_CV_QUAL): Likewise. 673550397Sobrien (UNIFY_ALLOW_DERIVED): Likewise. 673652284Sobrien (unify): Change prototype. 673750397Sobrien (maybe_adjust_types_for_deduction): New function. 673818334Speter (check_cv_quals_for_unify): Likewise. 673950397Sobrien (determine_specialization): Adjust. 674050397Sobrien (fn_type_unification): Likewise. 674118334Speter (type_unification): Likewise. 674250397Sobrien (type_unification_real): Likewise. Use 674350397Sobrien maybe_adjust_types_for_deduction. Fix mishandling of 674418334Speter back-unification of template functions passed as arguments. Pass 674550397Sobrien appropriate combination of UNIFY_ALLOW_* to unify. 674618334Speter (unify): Remove unused NTPARMS parameter. Use 674750397Sobrien check_cv_quals_for_unify. Remove bogus code that allowed 674818334Speter too-generous unification in order to adhere more closely to standard. 674950397Sobrien (get_bindings_real): Adjust. 675018334Speter (get_class_bindings): Likewise. 675150397Sobrien 675218334Speter * method.c (build_overload_identifier): Only use the innermost 675350397Sobrien template arguments when mangling. 675418334Speter * pt.c (tsubst_template_argument_vector): New function. 675552284Sobrien (complete_template_args): Deal with the situation where the 675618334Speter extra_args contain more than one level of arguments. 675750397Sobrien (lookup_template_class): Deal with member template classes, which 675818334Speter may have more than one level of arguments. 675950397Sobrien (tsubst): Don't tsbust into the TREE_TYPE of an IDENTIFIER_NODE. 676018334Speter Improve handling of member template classes. Use 676150397Sobrien DECL_PRIMARY_TEMPLATE instead of inline expansion. Use 676218334Speter tsubst_template_argument_vector where appropriate. 676352284Sobrien (regenerate_decl_from_template): Break out from ... 676418334Speter (instantiate_decl): Here. 676550397Sobrien 676652284Sobrien * lex.c (yyprint): Remove TYPENAME_ELLIPSIS. 676750397Sobrien * parse.h: Regenerated. 676850397Sobrien * parse.c: Really regenerated. 676950397Sobrien 677050397Sobrien * cp-tree.h (finish_unary_op_expr): New function. 677152284Sobrien (finish_id_expr): Likewise. 677250397Sobrien (begin_new_placement): Likewise. 677352284Sobrien (finish_new_placement): Likewise. 677452284Sobrien (finish_declarator): Likewise. 677550397Sobrien (finish_translation_unit): Likewise. 677652284Sobrien (finish_parmlist): Likewise. 677750397Sobrien (begin_class_definition): Likewise. 677818334Speter (finish_class_definition): Likewise. 677950397Sobrien (finish_default_args): Likewise. 678018334Speter (finish_inline_definitions): Likewise. 678150397Sobrien * parse.y (GCC_ASM_KEYWORD): Remove. 678250397Sobrien (TYPENAME_ELLIPSIS): Likewise. 678350397Sobrien * parse.c: Regenerated. 678450397Sobrien Use new functions in semantics.c in the actions for many rules. 678518334Speter * gxx.gperf (GCC_ASM_KEYWORD): Just use ASM_KEYWORD. 678650397Sobrien * hash.h: Regenerated. 678718334Speter * semantics.c (finish_expr_stmt): Allow NULL expr. 678850397Sobrien (finish_unary_op_expr): New function, containing 678952284Sobrien code previously in parse.y. 679050397Sobrien (finish_id_expr): Likewise. 679150397Sobrien (begin_new_placement): Likewise. 679250397Sobrien (finish_new_placement): Likewise. 679352284Sobrien (finish_declarator): Likewise. 679450397Sobrien (finish_translation_unit): Likewise. 679518334Speter (finish_parmlist): Likewise. 679650397Sobrien (begin_class_definition): Likewise. 679718334Speter (finish_class_definition): Likewise. 679850397Sobrien (finish_default_args): Likewise. 679950397Sobrien (finish_inline_definitions): Likewise. 680018334Speter 680150397SobrienSun May 10 23:43:13 1998 Mark Mitchell <mmitchell@usa.net> 680250397Sobrien 680350397Sobrien * typeck.c (build_c_cast): Don't decay arrays and functions to 680450397Sobrien pointer type when converting to a class type. 680550397Sobrien 680650397SobrienSun May 10 22:53:56 1998 Jason Merrill <jason@yorick.cygnus.com> 680750397Sobrien 680818334Speter * cp-tree.h (DECL_NAMESPACE_SCOPE_P): New macro. 680950397Sobrien (DECL_CLASS_SCOPE_P): Likewise. 681018334Speter 681150397SobrienSun May 10 22:48:22 1998 H.J. Lu (hjl@gnu.org) 681218334Speter 681350397Sobrien * class.c (finish_struct_1): Use OVL_CURRENT on TREE_VEC_ELT. 681450397Sobrien * decl2.c (constructor_name_full): Likewise. 681518334Speter 681650397SobrienSun May 10 22:48:12 1998 Mike Stump <mrs@wrs.com> 681750397Sobrien 681818334Speter * tree.c (mapcar): Add OVERLOAD support. 681950397Sobrien 682050397Sobrien * init.c (resolve_offset_ref): We must use basetype_path before we 682118334Speter destroy it with a call to convert_pointer_to. 682250397Sobrien 682318334SpeterSat May 9 14:44:37 1998 Jason Merrill <jason@yorick.cygnus.com> 682450397Sobrien 682550397Sobrien * class.c (currently_open_class): New fn. 682650397Sobrien * decl.c (lookup_name_real): Use it. 682750397Sobrien * search.c (lookup_field): Likewise. 682852284Sobrien 682950397SobrienFri May 8 23:32:42 1998 Martin von Loewis <loewis@informatik.hu-berlin.de> 683050397Sobrien 683150397Sobrien * cp-tree.def (OVERLOAD): New node. 683250397Sobrien * cp-tree.h (BINDING_TYPE, SET_IDENTIFIER_GLOBAL_VALUE, 683318334Speter SET_IDENTIFIER_NAMESPACE_VALUE): Define. 683450397Sobrien (NAMESPACE_BINDING): Remove. 683518334Speter (IDENTIFIER_GLOBAL_VALUE, IDENTIFIER_NAMESPACE_VALUE): Use 683650397Sobrien namespace_binding. 683750397Sobrien (OVL_FUNCTION, OVL_CHAIN, OVL_CURRENT, OVL_NEXT, OVL_USED): 683850397Sobrien Define. 683918334Speter (tree_overload): New struct. 684050397Sobrien (IDENTIFIER_TYPE_VALUE): Use identifier_type_value. 684150397Sobrien (REAL_IDENTIFIER_TYPE_VALUE): Define. 684218334Speter (IDENTIFIER_HAS_TYPE_VALUE): Use IDENTIFIER_TYPE_VALUE. 684350397Sobrien (lang_decl_flags): Remove in_namespace. 684418334Speter (lang_decl): Remove chain. 684550397Sobrien (DECL_CHAIN, DECL_NAMESPACE): Remove. 684618334Speter (flag_honor_std): Declare extern. 684750397Sobrien (identifier_type_value, pushdecl_namespace_level, push_using_decl, 684818334Speter namespace_binding, set_namespace_binding, 684950397Sobrien lookup_function_nonclass, cat_namespace_levels, 685052284Sobrien set_decl_namespace, lookup_arg_dependent, binding_init, ovl_cons, 685150397Sobrien scratch_ovl_cons, ovl_member, build_overload): Declare. 685250397Sobrien (decl_list_length, get_namespace_id, current_namespace_id, 685350397Sobrien overloaded_globals_p): Remove. 685450397Sobrien (lookup_using_namespace, qualified_lookup_using_namespace): Change 685550397Sobrien return type. 685650397Sobrien (push_scratch_obstack): New macro. 685750397Sobrien * call.c (add_function_candidate): Special-case type of OVERLOAD node. 685850397Sobrien (build_user_conversions_1): Iterate using OVL_NEXT for ctors, 685950397Sobrien convs, fns. 686050397Sobrien (build_new_function_call): Iterate using OVL_CHAIN. 686150397Sobrien Print DECL_NAME in when reporting ambiguities. 686250397Sobrien (build_object_call): Iterate using OVL_NEXT for fns, convs. 686350397Sobrien (build_new_op): Call lookup_function_nonclass. 686450397Sobrien Iterate using OVL_NEXT. 686550397Sobrien (build_op_delete_call): Change detection of members. 686650397Sobrien Do not wrap TREE_LIST around fields and single global functions. 686750397Sobrien (build_over_call): Don't push a class level if the context is a 686850397Sobrien namespace. 686950397Sobrien (build_new_method_call): Iterate using OVL_NEXT. 687050397Sobrien * class.c (add_method): Chain overloaded members using 687150397Sobrien build_overload. Remove copying of method. 687250397Sobrien (grow_method): When iterating through the obstack, expect OVERLOAD 687350397Sobrien nodes. Chain overload members. 687450397Sobrien (finish_struct_methods): Chain overload members. Unpack OVERLOAD 687550397Sobrien nodes in call to get_baselinks. 687650397Sobrien (duplicate_tag_error): Expect OVERLOAD nodes when unchaining. 687750397Sobrien (finish_struct_1): Iterate over ctor using OVL_NEXT. Handle 687850397Sobrien fdecls that are OVERLOAD nodes. 687950397Sobrien (validate_lhs): New function. 688050397Sobrien (instantiate_type): Do not copy OVERLOAD nodes. Remove dead 688118334Speter code. Use DECL_NAME in error messages. Split code between global 688250397Sobrien and member function processing. 688350397Sobrien * decl.c (global_type_node): New static variable. 688450397Sobrien (in_std): New global. 688550397Sobrien (struct binding_level): New field usings. 688650397Sobrien (resume_binding_level): Assert that we are not in a class. 688750397Sobrien (toplevel_bindings_p): Just check for namespace_p or 688850397Sobrien pseudo_global. 688950397Sobrien (resume_level): Remove. 689050397Sobrien (find_binding): New function. 689150397Sobrien (binding_for_name): Call it. 689250397Sobrien (namespace_binding, set_namespace_binding): New functions. 689350397Sobrien (push_namespace): Associate binding level with new namespace, 689450397Sobrien resume_binding_level for existing namespace. Remove old code. 689552284Sobrien Fake std by counting. 689650397Sobrien (store_bindings): Use REAL_IDENTIFIER_TYPE_VALUE. 689750397Sobrien (maybe_push_to_top_level): Save current namespace. 689850397Sobrien (pop_from_top_level): Restore saved namespace. 689952284Sobrien (pop_namespace): Call suspend_binding_level. Remove old code. 690050397Sobrien (cat_namespace_levels): New function. 690150397Sobrien (set_identifier_type_value_with_scope): For namespace bindings, 690250397Sobrien set BINDING_TYPE, and use global_type_node. 690350397Sobrien Use REAL_IDENTIFIER_TYPE_VALUE otherwise. 690450397Sobrien (identifier_type_value): New function. 690550397Sobrien (pushtag): If no context, use current_namespace. 690650397Sobrien (duplicate_decls): Don't process DECL_CHAIN. 690750397Sobrien (pushdecl): Set DECL_CONTEXT to current_namespace, if it is not 690850397Sobrien already set. Never reset it to NULL_TREE. Lookup global variables 690950397Sobrien in their namespace. Push overloaded templates if they are on 691050397Sobrien namespace level. 691150397Sobrien (pushdecl_namespace_level): New function. 691250397Sobrien (pushdecl_top_level): Implement using pushdecl_namespace_level. 691350397Sobrien (pushdecl_using_decl): New function. 691450397Sobrien (overloaded_globals_p): Remove. 691550397Sobrien (push_overloaded_decl): Create OVERLOAD nodes, and iterate through 691650397Sobrien them. Use namespace_binding and set_namespace_value. 691750397Sobrien (redeclaration_error_message): Complain if the declarations come 691850397Sobrien from different namespaces. 691950397Sobrien (lookup_tag): On namespace level, look in the BINDING_TYPE. 692050397Sobrien (lookup_namespace_name): Pass tree_bindings from stack. Remove 692150397Sobrien old code. 692250397Sobrien (select_decl): New function. 692350397Sobrien (lookup_name_real): Call it for qualified and unqualified lookup. 692450397Sobrien Pass tree_bindings from the stack. 692550397Sobrien If prefer_type is 1, also accept namespaces. 692650397Sobrien (lookup_function_nonclass): New function. 692750397Sobrien (init_decl_processing): Set the binding level of the global 692850397Sobrien namespace to global_binding_level. 692950397Sobrien Build a proper type list for __builtin_apply. 693018334Speter Initialize std_node to "fake std" if flag_honor_std is set. 693150397Sobrien Initialize global_type_node. 693218334Speter Allocated bad_alloc in namespace std if flag_honor_std. 693350397Sobrien (define_function): Set the DECL_CONTEXT to the current_namespace. 693450397Sobrien (start_decl): A namespace is not considered as a context here. If 693518334Speter the DECL_CONTEXT is a namespace, push the decl. 693650397Sobrien (cp_finish_decl): Check for namespaces used as initializers. 693718334Speter (grokfndecl): Add namespace parameter. Remove processing of 693850397Sobrien DECL_CHAIN. 693950397Sobrien (grokvardecl): Add namespace parameter. 694018334Speter (grokdeclarator): Process SCOPEs that are namespaces. For 694150397Sobrien mangling, temporarily set the DECL_CONTEXT on anonymous structs. 694218334Speter (start_function): Check for contexts that are namespaces. 694350397Sobrien Set context for declarations that have not been pushed. 694450397Sobrien (store_parm_decls): Check for ::main only. 694518334Speter (finish_function): Likewise. 694650397Sobrien (start_method): Check for contexts that are namespaces. 694718334Speter (start_method): Remove DECL_CHAIN processing. 694850397Sobrien * decl2.c (flag_honor_std): Declare. 694918334Speter (lang_decode_option): Set it if -fhonor-std or -fnew-abi is given. 695050397Sobrien (decl_namespace_list): New static global. 695150397Sobrien (grok_x_components): Ignore namespaces as type contexts. 695218334Speter (check_classfn): Expect OVERLOAD nodes. 695350397Sobrien (grokfield): Remove DECL_CHAIN processing. 695418334Speter (finish_file): Call cat_namespace_levels. 695550397Sobrien (merge_functions): New function. 695650397Sobrien (ambiguous_decl): Rewrite. 695750397Sobrien (lookup_using_namespace): Produce tree_bindings. 695818334Speter (qualified_lookup_using_namespace): Likewise. 695950397Sobrien (set_decl_namespace, decl_namespace, current_decl_namespace, 696018334Speter push_decl_namespace, pop_decl_namespace): New functions. 696152284Sobrien (arg_lookup): New struct. 696250397Sobrien (add_function, arg_assoc_namespace, arg_assoc_class, 696350397Sobrien arg_assoc_type, arg_assoc_args, arg_assoc, lookup_arg_dependent): 696450397Sobrien New functions. 696550397Sobrien (get_namespace_id, current_namespace_id): Remove. 696650397Sobrien (do_toplevel_using_decl): Rewrite. 696750397Sobrien (do_class_using_decl): Complain about namespace qualifiers. 696850397Sobrien (do_using_directive): Sorry if not on namespace level. Complain 696950397Sobrien about unknown namespaces. 697050397Sobrien * error.c (dump_aggr_type): Check for namespace contexts. 697150397Sobrien * except.c (init_exception_processing): Push terminate into std. 697250397Sobrien * friend.c (is_friend): A namespace is not a context, here. 697350397Sobrien * init.c (expand_member_init): Remove DECL_CHAIN processing. 697450397Sobrien (build_offset_ref): Process OVERLOAD nodes. 697550397Sobrien * lang-specs.h (__HONOR_STD): Define if -fnew-abi or -fhonor-std. 697650397Sobrien * lex.c (identifier_type): Loop using OVL_CHAIN. 697750397Sobrien (see_typename): Set looking_for_typename to 2. 697850397Sobrien (real_yylex): Likewise. 697950397Sobrien (do_identifier): Expect OVERLOAD nodes instead of TREE_LISTs. 698050397Sobrien (do_scoped_id): Expect OVERLOAD nodes. 698150397Sobrien Change calling convention for qualified_lookup_using_namespace. 698250397Sobrien (build_lang_decl): Don't set in_namespace anymore. 698350397Sobrien * method.c (typevec_size): New global. 698450397Sobrien (build_overload_nested_name): Return if global_namespace. 698550397Sobrien Otherwise, always expect a declaration context. 698650397Sobrien (build_qualified_name): Likewise. 698750397Sobrien Make sure we don't write beyond typevec_size. 698850397Sobrien (build_decl_overload_real): Likewise. 698950397Sobrien Allocate one extra slot for the namespace. 699052284Sobrien (hack_identifier): Mark code dead. 699150397Sobrien Process OVERLOAD and NAMESPACE_DECL nodes. 699250397Sobrien * parse.y (program): Pop namespaces until in global namespace. 699352284Sobrien (extdef): In a using-declaration, don't discard the identifier if 699450397Sobrien there is no declaration. 699550397Sobrien (left_curly): Ignore type contexts which are namespaces. 699650397Sobrien (typename_sub2): Use IDENTIFIER_TYPE_VALUE to retrieve the type 699750397Sobrien used as scope. 699850397Sobrien * pt.c (template_class_depth): Expect types to be namespaces. 699950397Sobrien (determine_specialization): Simplify by expecting OVERLOAD nodes. 700050397Sobrien (push_template_decl): Push into namespace level. 700150397Sobrien Reset ctx if it is a namespace. 700250397Sobrien Set DECL_CONTEXT to current_namespace if not set already. 700350397Sobrien Ignore real contexts that are namespaces. 700450397Sobrien (mangle_class_name_for_template): Skip global_namespace. 700550397Sobrien Mangle other namespaces as declarations. 700650397Sobrien (lookup_template_function): Set type of OVERLOAD nodes to unknown. 700750397Sobrien (lookup_template_class): Push into namespace of context. 700850397Sobrien If the context is a namespace, set it to global_namespace. 700950397Sobrien Use id_context for mangling. 701050397Sobrien (for_each_template_parm): Handle OVERLOAD and NAMESPACE_DECL nodes. 701152284Sobrien (tsubst_friend_function): Ignore namespace contexts. 701250397Sobrien Push into namespace level. 701350397Sobrien (tsubst): Handle NAMESPACE_DECL nodes. 701450397Sobrien Remove DECL_CHAIN processing. 701550397Sobrien (type_unification_real): Recognize OVERLOAD instead of TREE_LIST nodes. 701650397Sobrien * ptree.c (print_lang_identifier): Print bindings. 701750397Sobrien (lang_print_xnode): Print OVERLOAD nodes. 701850397Sobrien * rtti.c (init_rtti_processing): Push type_info into std. 701950397Sobrien * search.c (lookup_fnfields_here): Expect OVERLOAD nodes. 702050397Sobrien (lookup_fnfields_1, get_virtuals_named_this, get_matching_virtual, 702150397Sobrien dfs_debug_mark, dfs_pushdecls, dfs_compress_decls, add_conversions, 702250397Sobrien lookup_fnfields_here): Likewise. 702350397Sobrien Process all nodes, instead of going through TREE_CHAIN. 702450397Sobrien * sig.c (build_signature_pointer_or_reference_type): Set context 702550397Sobrien to global_namespace. 702650397Sobrien (build_signature_table_constructor): Expect OVERLOAD nodes. 702750397Sobrien * spew.c (yylex): Save old setting of looking_for_typename. 702850397Sobrien * tree.c (decl_list_length): Remove. 702950397Sobrien (binding_init): New function. 703050397Sobrien (count_functions): Rewrite. 703150397Sobrien (is_overloaded_fn): Expect OVERLOAD nodes. 703250397Sobrien (really_overloaded_fn, get_first_fn, lvalue_type): Likewise. 703350397Sobrien (ovl_cons, scratch_ovl_cons, build_overload, build_overload_after, 703450397Sobrien ovl_member): New functions. 703550397Sobrien * typeck.c (require_complete_type): Expect OVERLOAD nodes. 703650397Sobrien (type_unknown_p): Likewise. 703750397Sobrien (require_instantiated_type): Likewise. 703852284Sobrien (build_component_ref): Declare code dead. 703950397Sobrien (build_x_function_call): Create and expect OVERLOAD nodes. 704050397Sobrien (build_function_call_real): Check for ::main only. 704150397Sobrien (build_unary_op): Likewise. Expect OVERLOAD nodes. 704250397Sobrien (convert_for_assignment): Check for TREE_LIST before accessing 704350397Sobrien TREE_VALUE. 704450397Sobrien * decl.c (duplicate_decls): Check for namespace bindings instead 704550397Sobrien of global bindings. 704652284Sobrien (pushdecl, push_overloaded_decl, lookup_tag, lookup_name_real, 704750397Sobrien lookup_name_current_level, start_decl, xref_tag, 704850397Sobrien finish_enum): Likewise. 704950397Sobrien * init.c (build_offset_ref): Likewise. 705050397Sobrien * search.c (lookup_field): Likewise. 705150397Sobrien (lookup_fnfields): Likewise. 705250397Sobrien (dfs_debug_mark): Likewise. 705350397Sobrien * decl.c (poplevel): Use SET_IDENTIFIER_TYPE_VALUE. 705450397Sobrien (poplevel_class, pop_from_top_level): Likewise. 705550397Sobrien * decl2.c (finish_method): Likewise. 705650397Sobrien * class.c (build_vtable): Use SET_IDENTIFIER_GLOBAL_VALUE. 705750397Sobrien * decl.c (record_builtin_type): Likewise. 705850397Sobrien (init_decl_processing, grokfndecl): Likewise. 705950397Sobrien * lex.c (get_time_identifier, do_identifier, do_scoped_id): Likewise. 706050397Sobrien (make_lang_type): Likewise. 706150397Sobrien * parse.y (make_thunk): Likewise. 706250397Sobrien * pt.c (tsubst): Likewise. 706350397Sobrien * tree.c (debug_binfo): Likewise. 706450397Sobrien * exception.cc, new.cc, new1.cc, new2.cc, tinfo.cc, tinfo.h, 706550397Sobrien tinfo2.cc, inc/new.h: Add std qualifications. 706650397Sobrien * inc/new: Wrap with namespace std if __HONOR_STD. 706750397Sobrien * inc/typeinfo: Likewise. 706850397Sobrien 706950397SobrienFri May 8 00:43:50 1998 Jason Merrill <jason@yorick.cygnus.com> 707050397Sobrien 707150397Sobrien * call.c (build_user_type_conversion_1): Handle second_conv 707252284Sobrien properly for templates. 707350397Sobrien 707450397SobrienThu May 7 17:09:25 1998 Andrew MacLeod <amacleod@cygnus.com> 707550397Sobrien 707650397Sobrien * method.c (build_decl_overload_real): Set TREE_USED flag to 707750397Sobrien zero for build_type_variants nodes as well. 707850397Sobrien 707950397SobrienWed May 6 19:27:09 1998 Jason Merrill <jason@yorick.cygnus.com> 708050397Sobrien 708150397Sobrien * pt.c (tsubst): Don't tsubst the type of an IDENTIFIER_NODE. 708250397Sobrien 708350397SobrienWed May 6 16:49:48 1998 Jim Wilson <wilson@cygnus.com> 708450397Sobrien 708550397Sobrien * Makefile.in (call.o, class.o, decl.o, decl2.o, errfn.o, error.o, 708650397Sobrien except.o, expr.o, friend.o, init.o, lex.o, method.o, pt.o, repo.o, 708750397Sobrien rtti.o, search.o, semantics.o, sig.o, tree.o, typeck.o, typeck2.o, 708850397Sobrien xref.o): Add toplev.h dependencies. 708950397Sobrien 709050397SobrienWed May 6 16:44:58 1998 Jeffrey A Law (law@cygnus.com) 709150397Sobrien 709250397Sobrien * errfn.c (cp_error, cp_warning): Remove declarations for 709350397Sobrien error and warning respectively. 709450397Sobrien 709550397SobrienWed May 6 14:28:18 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 709650397Sobrien 709750397Sobrien * error.c: Convert to using ctype macros defined in system.h. 709850397Sobrien * method.c: Likewise. 709950397Sobrien * xref.c: Likewise. 710050397Sobrien * lex.c: Likewise. Also remove redundant system header stuff. 710150397Sobrien 710250397SobrienWed May 6 06:36:41 1998 Robert Lipe <robertl@dgii.com> 710350397Sobrien 710450397Sobrien * call.c, class.c, decl.c, decl2.c, errfn.c, error.c, except.c, 710550397Sobrien expr.c, friend.c, init.c, lex.c, method.c, pt.c, repo.c, rtti.c, 710650397Sobrien search.c, semantics.c, sig.c, tree.c, typeck.c, typeck2.c, 710750397Sobrien xref.c: Add include of toplev.h. 710852284Sobrien 710950397SobrienWed May 6 02:33:39 1998 Jason Merrill <jason@yorick.cygnus.com> 711050397Sobrien 711150397Sobrien * tree.c (perm_manip): Also regenerate the RTL of an extern. 711250397Sobrien (copy_to_permanent): Use end_temporary_allocation. 711350397Sobrien 711450397SobrienTue May 5 23:54:04 1998 Jason Merrill <jason@yorick.cygnus.com> 711550397Sobrien 711650397Sobrien * init.c (expand_vec_init): The initialization of each array 711750397Sobrien element is a full-expression. 711850397Sobrien 711950397SobrienTue May 5 18:24:13 1998 Andrew MacLeod <amacleod@cygnus.com> 712050397Sobrien 712150397Sobrien * method.c (build_mangled_name): Add a call to build_type_variant 712250397Sobrien to get the right type. 712350397Sobrien 712450397SobrienTue May 5 01:25:03 1998 Jason Merrill <jason@yorick.cygnus.com> 712550397Sobrien 712650397Sobrien * Makefile.in: Add .SUFFIXES. 712750397Sobrien 712850397Sobrien * cp-tree.def: Remove NAMESPACE_DECL. 712950397Sobrien 713050397SobrienSun May 3 01:32:14 1998 Jason Merrill <jason@yorick.cygnus.com> 713150397Sobrien 713250397Sobrien * call.c (build_over_call): Do evaluate arg even if it has empty 713350397Sobrien class type. 713450397Sobrien * decl.c (start_function): Don't push a member function. 713552284Sobrien 713650397SobrienThu Apr 30 18:59:23 1998 Jim Wilson <wilson@cygnus.com> 713750397Sobrien 713850397Sobrien * Makefile.in (g++FAQ.info): Put -o option before input file. 713950397Sobrien 714050397SobrienThu Apr 30 13:05:33 1998 Andrew MacLeod <amacleod@cygnus.com> 714150397Sobrien 714250397Sobrien * gxxint.texi: Add info for squangling codes K and B. 714350397Sobrien 714450397SobrienTue Apr 28 13:22:01 1998 Mark Mitchell <mmitchell@usa.net> 714550397Sobrien 714650397Sobrien * semantics.c (begin_stmt_expr): Avoid duplicating the effect of 714750397Sobrien the expression in templates. 714850397Sobrien (finish_stmt_expr): Likewise. 714950397Sobrien 715050397Sobrien1998-04-28 Brendan Kehoe <brendan@cygnus.com> 715150397Sobrien 715250397Sobrien * decl2.c (ambiguous_decl): Fix NAME parm to be a tree, not int. 715350397Sobrien 715450397SobrienMon Apr 27 13:58:10 1998 Mark Mitchell <mmitchell@usa.net> 715550397Sobrien 715650397Sobrien * decl.c (maybe_push_to_top_level): Always clear 715750397Sobrien current_template_parms and processing_template_decl. 715850397Sobrien (pushtag): Remove check of current_class_type and some comments, 715950397Sobrien since maybe_push_to_top_level no longer creates confusion. 716050397Sobrien 716150397SobrienSun Apr 26 12:10:18 1998 Mark Mitchell <mmitchell@usa.net> 716250397Sobrien 716350397Sobrien * cp-tree.h (CLASSTYPE_IS_TEMPLATE): New macro. 716450397Sobrien (DECL_CLASS_TEMPLATE_P): Likewise. 716550397Sobrien (DECL_PRIMARY_TEMPLATE): Likewise. 716650397Sobrien (PRIMARY_TEMPLATE_P): Use it. 716750397Sobrien (push_template_decl_real): New function. 716850397Sobrien (redeclare_class_template): Take new template parameters as 716950397Sobrien input. 717050397Sobrien (is_specialization_of): New function. 717150397Sobrien (comp_template_args): Declare. 717250397Sobrien * decl.c (pushtag): Handle friend template classes. 717350397Sobrien (xref_tag): Likewise. Use new calling convention for 717450397Sobrien redeclare_class_template. 717550397Sobrien * decl2.c (grok_x_components): Handle friend templates. 717650397Sobrien * friend.c (is_friend): Use is_specialization_of where 717752284Sobrien appropriate. Deal with friend class templates. 717850397Sobrien (make_friend_class): Let a class template be friends with itself. 717950397Sobrien * pt.c (comp_template_args): Remove declaration. 718050397Sobrien (tsubst_friend_class): New function. 718150397Sobrien (push_template_decl_real): New function. 718250397Sobrien (push_template_decl): Use it. 718350397Sobrien (redeclare_class_template): Adjust for new calling convention. 718450397Sobrien (comp_template_args): Give it external linkage. 718550397Sobrien (instantiate_class_type): Use tsubst_friend_class to deal 718650397Sobrien with friend templates. 718750397Sobrien * typeck.c (comptypes): Use comp_template_args, rather than 718850397Sobrien expanding it inline. 718950397Sobrien * parse.y (component_decl): Handle a nested template type 719050397Sobrien like other component type declarations. 719150397Sobrien 719250397Sobrien * pt.c (check_explicit_specialization): Handle overloaded 719350397Sobrien constructors correctly. 719452284Sobrien 719550397Sobrien * pt.c (mabybe_get_template_decl_from_type_decl): New function. 719650397Sobrien (lookup_template_class): Use it. 719750397Sobrien 719818334SpeterThu Apr 23 21:19:06 1998 Jason Merrill <jason@yorick.cygnus.com> 719950397Sobrien 720018334Speter * cp-tree.def: Add WRAPPER. USER_CONV now only has two ops. 720152284Sobrien * cp-tree.h: Add WRAPPER support. 720250397Sobrien * call.c (add_candidate): Split out from add_*_candidate fns. 720318334Speter (build_over_call): Take the candidate instead of function and args. 720452284Sobrien Enforce access control here. Emit overload warnings here. 720518334Speter (add_warning): New fn. 720650397Sobrien (joust): Add WARN parm. If not set, call add_warning instead of 720750397Sobrien printing a warning. Re-enable some warnings. 720818334Speter (tourney): Pass it. 720950397Sobrien (convert_like): Adjust. 721018334Speter (build_new_op): Adjust. 721150397Sobrien (build_new_function_call): Adjust. 721218334Speter (build_user_type_conversion_1): Adjust. 721350397Sobrien (USER_CONV_FN): Adjust. 721418334Speter * tree.c (build_expr_wrapper, build_expr_ptr_wrapper, 721550397Sobrien build_int_wrapper): New fns. 721650397Sobrien 721752284SobrienThu Apr 23 18:27:53 1998 Mark P. Mitchell <mmitchell@usa.net> 721850397Sobrien 721918334Speter * pt.c (unify): Fix typo in previous change. 722050397Sobrien 722118334SpeterThu Apr 23 09:32:58 1998 Jason Merrill <jason@yorick.cygnus.com> 722250397Sobrien 722350397Sobrien * error.c (dump_type_real): Declare canonical_name. 722418334Speter 722550397Sobrien * typeck.c (comp_target_types): Fix PMFs. 722618334Speter 722750397SobrienWed Apr 22 13:24:48 1998 Mark Mitchell <mmitchell@usa.net> 722850397Sobrien 722950397Sobrien * class.c (finish_struct): Set TREE_PRIVATE and TREE_PROTECTED for 723050397Sobrien the DECL_RESULTs of a member TEMPLATE_DECL, not just the 723118334Speter TEMPLATE_DECL. 723250397Sobrien 723318334Speter * pt.c (tsubst): Decrease the template-level of 723452284Sobrien TEMPLATE_TEMPLATE_PARMS. Likewise for the DECL_INITIAL of a 723552284Sobrien TEMPLATE_PARM_INDEX. 723652284Sobrien (template_decl_level): New function. 723750397Sobrien (unify): Make sure to record unifications for template 723818334Speter parameters, even when the parameters exactly match the arguments. 723950397Sobrien Combine duplicated code for TEMPLATE_TEMPLATE_PARMs and 724018334Speter TEMPLATE_TYPE_PARMS. Don't try to unify template parameters that 724150397Sobrien aren't from the level we're currently working on. 724250397Sobrien 724318334SpeterTue Apr 21 22:00:04 1998 Mark Mitchell <mmitchell@usa.net> 724450397Sobrien 724518334Speter * errfn.c (cp_thing): Use xrealloc, not xmalloc, to copy memory. 724650397Sobrien 724750397Sobrien * decl2.c (check_member_template): Set DECL_IGNORED for member 724818334Speter class templates, too. 724952284Sobrien 725018334Speter * decl2.c (grokfield): Remangle the name of a member TYPE_DECL. 725152284Sobrien 725250397SobrienTue Apr 21 18:59:11 1998 Benjamin Kosnik <bkoz@rhino.cygnus.com> 725318334Speter 725450397Sobrien * decl.c (duplicate_decls): Only check DECL_FRIEND_P if function. 725518334Speter 725650397SobrienTue Apr 21 14:22:00 1998 Jeffrey A Law (law@cygnus.com) 725718334Speter 725850397Sobrien * cp-tree.h (intTI_type_node, unsigned_intTI_type_node): Declare. 725918334Speter * decl.c (intTI_type_node, unsigned_intTI_type_node): Define. 726050397Sobrien (init_decl_processing): Handle TI types. 726118334Speter * typeck.c (unsigned_type, signed_type): Handle TI types. 726252284Sobrien 726350397SobrienSat Apr 18 15:25:21 1998 Jim Wilson <wilson@cygnus.com> 726450397Sobrien 726518334Speter * g++spec.c (lang_specific_driver): New argument in_added_libraries. 726650397Sobrien New local added_libraries. Increment count when add library to 726718334Speter arglist. 726850397Sobrien 726918334SpeterFri Apr 17 21:25:00 1998 Mark Mitchell <mmitchell@usa.net> 727052284Sobrien 727118334Speter * cp-tree.h (type_as_string_real): New function. 727250397Sobrien * pt.c (mangle_class_name_for_template): Use it. 727318334Speter * error.c (dump_aggr_type): Change prototype. 727450397Sobrien (dump_type_prefix): Likewise. 727518334Speter (dump_type_suffix): Likewise. 727650397Sobrien (dump_type_real): Convert from dump_type. If desired, the 727750397Sobrien "canonica" name of a typedef, i.e., the name of the underlying 727850397Sobrien type, can be printed. 727918334Speter (dump_type): Call dump_type_real. 728050397Sobrien 728118334SpeterFri Apr 17 14:30:45 1998 Jason Merrill <jason@yorick.cygnus.com> 728250397Sobrien 728318334Speter * decl2.c (lang_decode_option): -fnew-abi implies -fvtable-thunks. 728450397Sobrien 728518334Speter * typeck.c (comp_target_types): Tweak pedantic case. 728650397Sobrien (comp_target_parms): Tweak pedantic case. Clean up somewhat. 728750397Sobrien Return -1 or 1 instead of 1 or 2. 728850397Sobrien (compparms): Remove STRICT handling. 728950397Sobrien (convert_for_assignment): Fix handling of pmfs. 729018334Speter 729150397SobrienFri Apr 17 14:04:16 1998 Mark Mitchell <mmitchell@usa.net> 729218334Speter 729350397Sobrien * typeck.c (comp_target_types): Handle references like pointers. 729450397Sobrien (comp_target_parms): Note that return code from comp_target_types 729550397Sobrien can be negative to indicate failure. 729650397Sobrien 729750397SobrienFri Apr 17 09:10:52 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> 729850397Sobrien 729952284Sobrien * Make-lang.in (c++.all.build): Don't depend on $(DEMANGLER_PROG), 730050397Sobrien which requires a working target compiler to build. 730150397Sobrien 730250397SobrienFri Apr 17 08:57:35 1998 Jeffrey A Law (law@cygnus.com) 730350397Sobrien 730450397Sobrien * tree.c (avoid_overlap): Add prototype. 730550397Sobrien 730650397Sobrien * spew.c (num_tokens): Add prototype. 730750397Sobrien (nth_noken, add_token, consume_token, debug_yychar): Likewise. 730850397Sobrien 730950397Sobrien * search.c (dfs_check_overlap): Add prototype. 731050397Sobrien (dfs_no_overlap_yet): Likewise. 731150397Sobrien 731250397Sobrien * pt.c (original_template): Add prototype. 731350397Sobrien (inline_needs_template_parms): Likewise. 731450397Sobrien (push_inline_template_parms_recursive): Likewise. 731550397Sobrien (retrieve_specialization, register_specialization): Likewise. 731650397Sobrien (print_candidates, reduce_template_parm_level): Likewise. 731750397Sobrien (build_template_decl, mark_template_parm): Likewise. 731850397Sobrien (tsubst_friend_function, get_bindings_real): Likewise. 731952284Sobrien 732050397Sobrien * method.c (start_squangling): Add prototype. 732118334Speter (end_squangling, check_ktype, issue_ktype): Likewise. 732250397Sobrien (build_overloaded_scope_ref, check_btype): Likewise. 732350397Sobrien (build_mangled_template_parm_index): Likewise. 732418334Speter 732550397Sobrien * lex.c (init_cpp_parse): Add prototype. 732650397Sobrien (handle_cp_pragma, handle_sysv_pragma): Likewise. 732718334Speter (reduce_cmp, token_cmp): Likewise. 732850397Sobrien 732918334Speter * except.c (call_eh_info): Add prototype. 733050397Sobrien (push_eh_info, get_eh_info, get_eh_value, get_eh_type): Likewise. 733150397Sobrien (get_eh_caught, get_eh_handlers, do_pop_exception): Likewise. 733250397Sobrien 733350397Sobrien * decl2.c (is_namespace_ancestor): Add prototype. 733450397Sobrien (namespace_ancestor, add_using_namespace): Likewise. 733550397Sobrien (ambiguous_decl): Likewise. 733650397Sobrien 733752284Sobrien * decl.c (indent): Add prototype. 733850397Sobrien 733950397Sobrien * call.c (add_template_candidate_real): Add prototype. 734050397Sobrien 734150397SobrienFri Apr 17 01:57:12 1998 Jason Merrill <jason@yorick.cygnus.com> 734250397Sobrien 734350397Sobrien * decl2.c (build_expr_from_tree): Just return a PMF. 734452284Sobrien 734550397SobrienFri Apr 17 00:45:12 1998 Mark Mitchell <mmitchell@usa.net> 734618334Speter 734750397Sobrien * typeck2.c (process_init_constructor): Don't strip cv-qualifiers 734818334Speter when doing initializations. 734950397Sobrien 735018334Speter * pt.c (unify): Use comptypes to compare type args. 735150397Sobrien 735218334SpeterFri Apr 17 00:24:22 1998 Jason Merrill <jason@yorick.cygnus.com> 735350397Sobrien 735418334Speter * decl.c (duplicate_decls): Fix check for when it's safe to free 735550397Sobrien the new decl. 735618334Speter 735750397Sobrien * pt.c (mangle_class_name_for_template): Don't pass a typedef type 735818334Speter to type_as_string. 735950397Sobrien 736050397SobrienThu Apr 16 17:47:30 1998 Jeffrey A Law (law@cygnus.com) 736150397Sobrien 736218334Speter * pt.c (build_template_parm_index): Add prototype. 736352284Sobrien 736452284Sobrien * search.c (my_tree_cons): Don't clear words outside the 736552284Sobrien newly allocated node. 736652284Sobrien 736752284SobrienWed Apr 15 15:34:44 1998 Dave Brolley <brolley@cygnus.com> 736852284Sobrien 736952284Sobrien * lex.c (init_parse): Now returns char* containing the filename. 737052284Sobrien 737152284SobrienWed Apr 15 13:20:06 1998 John Carr <jfc@mit.edu> 737218334Speter Jeff Law <law@cygnus.com> 737350397Sobrien 737418334Speter * errfn.c: Rework to avoid problems when HOST_WIDE_INT is longer 737550397Sobrien than a pointer. 737618334Speter 737750397SobrienSun Apr 12 22:31:19 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 737850397Sobrien 737918334Speter * cvt.c (cp_convert_to_pointer): Use TYPE_PRECISION. 738050397Sobrien 738118334SpeterFri Apr 10 12:16:49 1998 Benjamin Kosnik <bkoz@loony.cygnus.com> 738250397Sobrien 738318334Speter * decl.c (duplicate_decls): Don't warn for redundant decls if 738450397Sobrien friend: let add_friend take care of it. 738518334Speter 738650397SobrienThu Apr 9 02:40:48 1998 Jason Merrill <jason@yorick.cygnus.com> 738718334Speter 738850397Sobrien * sig.c (build_signature_pointer_constructor): Don't set 738950397Sobrien TREE_HAS_CONSTRUCTOR for a signature pointer. 739050397Sobrien * cvt.c (ocp_convert): Don't force a temporary for internal structs. 739150397Sobrien * init.c (resolve_offset_ref): Warn about implicit & on pmfs 739218334Speter here, too. 739350397Sobrien * typeck.c (build_unary_op): Only allow taking the address of a 739418334Speter real constructor. 739550397Sobrien * typeck2.c (digest_init): Simplify. 739650397Sobrien (store_init_value): Don't pedwarn about using { } for pmfs. 739750397Sobrien 739818334SpeterThu Apr 9 22:16:57 1998 Per Bothner <bothner@cygnus.com> 739950397Sobrien 740018334Speter * cp-tree.h (start_decl): Update prototype. 740150397Sobrien * decl.c (start_decl): Like the C version, new parameters 740250397Sobrien for the attributes. Call cplus_decl_attributes here, 740350397Sobrien (pushdecl): Like C version, do build_type_copy if TYPE_DECL, 740450397Sobrien (grokdeclarator): Pass NULL for new start_decl arguments. 740550397Sobrien * pt.c (tsubst_expr): Likewise. 740650397Sobrien * parse.y: Merge cplus_decl_attribute calls into start_decl calls. 740750397Sobrien * typeck.c (common_type): Check TYPE_MAIN_VARIANT. 740850397Sobrien * lex.c (build_lang_decl): Add lang_name_java. 740950397Sobrien * class.c (push_lang_context): Add lang_name_java. 741018334Speter * method.c (build_mangled_name): Check for is_java_type. 741150397Sobrien 741218334SpeterThu Apr 9 22:16:57 1998 Benjamin Kosnik <bkoz@loony.cygnus.com> 741350397Sobrien 741418334Speter * decl.c (grokdeclarator): Check TYPE_MAIN_VARIANT. 741550397Sobrien * call.c (build_scoped_method_call): Check for TREE_CODE for 741650397Sobrien VOID_TYPE instead of type == void_type_node. 741750397Sobrien (build_method_call): Likewise. 741850397Sobrien * decl.c (lookup_name_real): Likewise. 741950397Sobrien (grokdeclarator): Likewise. 742018334Speter (start_decl): Likewise. 742150397Sobrien (grokparms): Likewise. 742218334Speter (start_function): Likewise. 742350397Sobrien (finish_function): Likewise. 742450397Sobrien (start_method): Likewise. 742550397Sobrien 742618334SpeterThu Apr 9 00:18:44 1998 Dave Brolley (brolley@cygnus.com) 742750397Sobrien 742818334Speter * lex.c (finput): New variable. 742950397Sobrien (init_cpp_parse): Renamed from init_parse. 743050397Sobrien (init_parse): Handle !USE_CPPLIB. Call init_cpp_parse when finished. 743118334Speter (finish_parse): New function. 743250397Sobrien * cp-tree.h (init_lex, init_parse): Remove declarations. 743318334Speter 743450397SobrienMon Apr 6 02:25:05 1998 Jason Merrill <jason@yorick.cygnus.com> 743518334Speter 743650397Sobrien * call.c (build_call): Still evaluate the actual argument. 743750397Sobrien * class.c (is_empty_class): Update for -fnew-abi. 743818334Speter 743950397Sobrien * decl2.c: -fnew-abi implies -fsquangle. 744050397Sobrien 744118334Speter * method.c (do_build_assign_ref): Don't do anything to copy 744250397Sobrien an empty class. 744350397Sobrien (do_build_copy_constructor): Likewise. 744450397Sobrien * call.c (build_over_call): Likewise. 744550397Sobrien 744650397SobrienSat Apr 4 18:43:58 1998 Jason Merrill <jason@yorick.cygnus.com> 744750397Sobrien 744850397Sobrien * tree.c (avoid_overlap): Return a value. 744918334Speter 745050397SobrienSat Apr 4 12:52:35 1998 Jeffrey A Law (law@cygnus.com) 745150397Sobrien 745250397Sobrien * method.c (check_btype): Add missing argument to xrealloc. 745350397Sobrien (check_ktype): Likewise. 745418334Speter 745550397SobrienFri Apr 3 02:22:59 1998 Jason Merrill <jason@yorick.cygnus.com> 745650397Sobrien 745750397Sobrien Implement empty base optimization. 745818334Speter * class.c (finish_struct_1): Add vbase fields earlier. Set 745950397Sobrien CLASSTYPE_SIZE of an empty base to 0. Types with bases can be empty. 746050397Sobrien * search.c (dfs_check_overlap, dfs_no_overlap_yet): New fns. 746150397Sobrien (types_overlap_p): New fn. 746218334Speter * tree.c (avoid_overlap): New fn. 746350397Sobrien (build_base_fields): Use it to avoid overlapping empty bases. 746450397Sobrien * cp-tree.h, decl2.c, lang-options.h: Add -fnew-abi. 746550397Sobrien 746618334Speter * decl.c (cplus_expand_expr_stmt): Strip unused INDIRECT_REFs. 746750397Sobrien 746818334Speter Re-implement allocation of base class subobjects. 746950397Sobrien * tree.c (unshare_base_binfos): New fn. 747018334Speter (layout_basetypes): Use it. Now handles offsets of both virtual and 747150397Sobrien non-virtual bases, after layout_type. 747218334Speter (layout_vbasetypes): Remove. 747350397Sobrien (build_base_fields): Generate FIELD_DECLs for each non-virtual base. 747418334Speter (build_vbase_pointer_fields): Split out from old layout_basetypes. 747550397Sobrien * class.c (finish_base_struct): Lose offset handling code. 747618334Speter Move nonvdtor warning here. Don't mess with t_binfo anymore. 747750397Sobrien (finish_struct_1): Don't mess with t_binfo anymore. Use fns above. 747850397Sobrien * cp-tree.h: Adjust. 747918334Speter 748050397SobrienThu Apr 2 14:25:13 1998 Jason Merrill <jason@yorick.cygnus.com> 748118334Speter 748250397Sobrien * cp-tree.h: Lose CLASSTYPE_VBASE_SIZE, some unused stuff. 748318334Speter * decl.c, decl2.c, pt.c, ptree.c, lex.c: Likewise. 748450397Sobrien * class.c (duplicate_tag_error): Likewise. 748550397Sobrien (finish_struct_1): Set CLASSTYPE_SIZE, CLASSTYPE_MODE, CLASSTYPE_ALIGN. 748618334Speter * tree.c (layout_vbasetypes): Update from layout_record, remove 748750397Sobrien var_size support, use CLASSTYPE_SIZE instead of CLASSTYPE_VBASE_SIZE. 748850397Sobrien (layout_basetypes): Likewise. 748918334Speter 749050397SobrienWed Apr 1 18:22:25 1998 Jeffrey A Law (law@cygnus.com) 749118334Speter 749250397Sobrien * class.c, Make sure system.h is included just after config.h. 749318334Speter Delete lingering stdio and errno references too. 749450397Sobrien * decl.c, errfn.c, parse.y, ptree.c search.c, xref.c: Likewise. 749550397Sobrien 749618334SpeterWed Apr 1 15:38:36 1998 Jason Merrill <jason@yorick.cygnus.com> 749750397Sobrien 749818334Speter * friend.c (is_friend): Fix access control for local classes. 749950397Sobrien 750018334Speter * class.c (is_empty_class): New fn. 750150397Sobrien * call.c (build_call): Don't pass empty class objects to a function. 750250397Sobrien 750318334SpeterWed Apr 1 14:58:35 1998 Mark Mitchell <mmitchell@usa.net> 750450397Sobrien 750550397Sobrien * call.c (build_over_call): Do name resolution for default 750618334Speter arguments of function templates in the scope of the templates. 750750397Sobrien 750818334SpeterTue Mar 31 13:43:57 1998 Jeffrey A Law (law@cygnus.com) 750950397Sobrien 751018334Speter * call.c: Include system.h. Remove includes, declarations and 751150397Sobrien defines provided by system.h. 751218334Speter * class.c, cvt.c, decl.c, decl2.c, errfn.c error.c: Likewise. 751350397Sobrien * except.c, expr.c friend.c, g++spec.c, init.c, input.c: Likewise. 751452284Sobrien * lex.c, parse.y, pt.c, ptree.c repo.c rtti.c, search.c: Likewise. 751518334Speter * semantics.c, sig.c, spew.c, tree.c, typeck.c: Likewise. 751650397Sobrien * typeck2.c, xref.c: Likewise. 751718334Speter * Makefile.in: Dependencies updated as appropriate. 751850397Sobrien * Make-lang.in: Likewise. 751950397Sobrien 752050397SobrienMon Mar 30 12:15:00 1998 Mark Mitchell <mmitchell@usa.net> 752152284Sobrien 752250397Sobrien * pt.c (fn_type_unification): Allow incomplete unification without 752352284Sobrien an immediate error message. 752450397Sobrien 752550397SobrienMon Mar 30 08:55:42 1998 Jason Merrill <jason@yorick.cygnus.com> 752650397Sobrien 752718334Speter * tree.c (member_p): New fn. 752850397Sobrien * decl2.c (finish_file): Only set DECL_STATIC_FUNCTION_P for 752918334Speter initializing class members. 753052284Sobrien 753152284Sobrien * cp-tree.def (TEMPLATE_PARM_INDEX): Class 'x'. 753252284Sobrien * ptree.c (lang_print_xnode): Handle TEMPLATE_PARM_INDEX. 753352284Sobrien 753452284Sobrien * call.c (build_method_call): Handle non-scoped destructors, too. 753552284Sobrien * pt.c (tsubst_copy): Likewise. 753652284Sobrien 753750397Sobrien * pt.c (print_template_context): Split out... 753850397Sobrien (push_tinst_level): ...from here. 753950397Sobrien 754050397Sobrien * friend.c (is_friend): Don't pass a type to decl_function_context. 754118334Speter 754250397Sobrien * typeck.c (convert_for_initialization): Always hand off 754318334Speter conversions to class type. 754450397Sobrien 754550397SobrienSun Mar 29 20:01:59 1998 Jason Merrill <jason@yorick.cygnus.com> 754650397Sobrien 754752284Sobrien * friend.c (is_friend): Local classes have the same access as the 754852284Sobrien enclosing function. 754952284Sobrien 755052284SobrienSun Mar 29 00:47:32 1998 Jeffrey A Law (law@cygnus.com) 755152284Sobrien 755252284Sobrien * typeck.c (expand_target_expr): Delete dead function. 755352284Sobrien 755452284Sobrien * search.c: Put various prototypes inside #ifdef MI_MATRIX. 755518334Speter 755650397Sobrien * repo.c (save_string): Delete dead function. 755718334Speter 755850397Sobrien * method.c (thunk_printable_name): Delete dead function. 755950397Sobrien 756050397Sobrien * lex.c (yynextch): Delete dead function. 756150397Sobrien 756250397Sobrien * expr.c (tree_extract_aggr_init): #if 0 out. 756318334Speter 756450397Sobrien * except.c (do_unwind): Delete dead function. 756518334Speter (easy_expand_asm): Likewise. 756650397Sobrien 756750397Sobrien * cvt.c (build_conversion_type_1): Delete dead function. 756818334Speter 756950397Sobrien * cp-tree.h (push_expression_obstack): Declare. 757018334Speter 757150397Sobrien * call.c (source_type): #if 0 out. 757250397Sobrien 757350397Sobrien * class.c (alter_access): Remove unused label. Add braces 757450397Sobrien around empty else clause. 757518334Speter 757650397Sobrien * lex.c (yyprint): Fix argument to printf. 757718334Speter 757850397SobrienSat Mar 28 17:43:52 1998 Mark Mitchell <mmitchell@usa.net> 757918334Speter 758050397Sobrien * pt.c (tsubst): Clear TREE_USED for new FUNCTION_DECLs. 758118334Speter 758250397Sobrien * pt.c (instantiate_class_template): Make sure template 758350397Sobrien arguments are permanent. 758418334Speter * init.c (resolve_offset_ref): Don't go looking around in 758550397Sobrien template types. 758618334Speter 758750397Sobrien * semantics.c: Add routines to handle expressions, and some 758852284Sobrien declaration processing. 758950397Sobrien * parse.y: Use them. 759050397Sobrien (current_class_depth): Move declaration to cp-tree.h. 759150397Sobrien * parse.c: Regenerated. 759250397Sobrien * cp-tree.h: Use them. 759350397Sobrien (current_class_depth): Declare. 759450397Sobrien * pt.c (tsubst_copy): Use begin_stmt_expr and finish_stmt_expr. 759518334Speter 759650397SobrienFri Mar 27 20:23:18 1998 Mark Mitchell <mmitchell@usa.net> 759718334Speter 759850397Sobrien * error.c (dump_decl): Be a bit more explicit with template 759950397Sobrien type arguments, when verbose. 760050397Sobrien 760150397SobrienFri Mar 27 18:16:40 1998 Jason Merrill <jason@yorick.cygnus.com> 760250397Sobrien 760350397Sobrien * inc/exception: Reorder closing braces. 760450397Sobrien 760550397SobrienFri Mar 27 13:22:18 1998 Mark Mitchell <mmitchell@usa.net> 760650397Sobrien 760750397Sobrien * pt.c (redeclare_class_template): New function. 760850397Sobrien * cp_tree.h (redeclare_class_template): Declare it. 760918334Speter * decl.c (xref_tag): Use it. 761050397Sobrien 761118334SpeterThu Mar 26 11:16:30 1998 Jason Merrill <jason@yorick.cygnus.com> 761250397Sobrien 761350397Sobrien * call.c (build_over_call): Check IS_AGGR_TYPE, not 761450397Sobrien TYPE_LANG_SPECIFIC. 761550397Sobrien * typeck.c (convert_arguments): Likewise. 761650397Sobrien 761750397Sobrien * decl.c (grokdeclarator): Remove const and volatile from type after 761850397Sobrien setting constp and volatilep. 761918334Speter 762050397Sobrien * class.c (finish_struct_1): Don't warn about bool bitfield larger 762118334Speter than one bit. 762250397Sobrien 762350397SobrienThu Mar 26 10:25:52 1998 Mark Mitchell <mmitchell@usa.net> 762450397Sobrien 762552284Sobrien * pt.c (convert_nontype_argument): STRIP_NOPS where appropriate. 762650397Sobrien 762718334SpeterThu Mar 26 10:24:05 1998 Mark Mitchell <mmitchell@usa.net> 762850397Sobrien 762918334Speter * call.c (build_object_call): Complain about ambiguous operator(), 763050397Sobrien rather that crashing. 763150397Sobrien (build_new_op): Likewise. 763218334Speter (build_op_delete_call): Likewise. 763350397Sobrien 763418334SpeterThu Mar 26 10:23:24 1998 Mark Mitchell <mmitchell@usa.net> 763550397Sobrien 763650397Sobrien * cvt.c (perform_qualification_conversions): Use comp_target_types 763718334Speter instead of comp_ptr_ttypes. 763850397Sobrien 763918334SpeterWed Mar 25 16:10:50 1998 Mark Mitchell <mmitchell@usa.net> 764050397Sobrien 764150397Sobrien * cp-tree.h (enforce_access): Declare. 764250397Sobrien * call.c (enforce_access): Make it extern, not static. 764350397Sobrien * class.c (alter_access): Use enforce_access; modify code for ISO 764450397Sobrien compliance, rather than ARM rules. 764550397Sobrien 764650397SobrienWed Mar 25 12:10:45 1998 Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu> 764750397Sobrien 764850397Sobrien * cp-tree.h: Fix typo. 764918334Speter 765050397SobrienWed Mar 25 02:01:02 1998 Jason Merrill <jason@yorick.cygnus.com> 765118334Speter 765252284Sobrien * expr.c (cplus_expand_expr): Only do PCC_STATIC_STRUCT_RETURN thing 765350397Sobrien if (aggregate_value_p (type)). 765418334Speter 765550397Sobrien * decl2.c (constructor_name_full): Handle TYPENAME_TYPE. 765618334Speter 765750397SobrienTue Mar 24 16:12:01 1998 Mark Mitchell <mmitchell@usa.net> 765850397Sobrien 765950397Sobrien * tree.c (mapcar): When dealing with a DECL, use it's constant 766018334Speter value, if any. 766150397Sobrien * pt.c (lookup_template_class): Don't mangle the names of template 766250397Sobrien classes whose arguments are unknown. 766318334Speter 766450397Sobrien * pt.c (tsubst_expr): Handle GOTO_STMT correctly. 766550397Sobrien 766618334SpeterTue Mar 24 12:21:55 1998 Benjamin Kosnik <bkoz@lisa.cygnus.com> 766750397Sobrien 766850397Sobrien * decl.c (init_decl_processing): Set TYPE_PRECISON for bools to 1. 766918334Speter 767050397SobrienTue Mar 24 12:21:48 1998 Jim Wilson <wilson@cygnus.com> 767118334Speter 767250397Sobrien * decl.c (init_decl_processing): Initialize TYPE_MAX_VALUE for 767350397Sobrien boolean_type_node to 1. 767418334Speter 767550397SobrienTue Mar 24 10:23:47 1998 Mark Mitchell <mmitchell@usa.net> 767618334Speter 767750397Sobrien * error.c (dump_expr): Remove unused variable `l'. 767850397Sobrien 767918334Speter * pt.c (for_each_template_parm): New function, created by 768050397Sobrien converting uses_template_parms. 768118334Speter (tree_fn_t): New typedef. 768250397Sobrien (uses_template_parms): Use it. 768318334Speter (mark_template_parm): New function. 768450397Sobrien (push_template_decl): Check that the argument list of a partial 768518334Speter specialization uses all the template parameters. 768650397Sobrien 768718334Speter * Make-lang.in (c++filt): Don't delete cxxmain.c after we're done 768850397Sobrien with it; we might want it for debugging. 768918334Speter * cp-tree.h (type_unification): Change interface. 769050397Sobrien * class.c (finish_struct_1): Skip nested template types, just like 769118334Speter ordinary nested types. 769250397Sobrien (instantiate_type): Use new interface to type_unification. 769318334Speter * lex.c (init_lex): Add __sz as opname for sizeof. 769450397Sobrien * method.c (build_overload_scope_ref): New function. 769550397Sobrien (build_overload_int): Handle complex expressions. Set 769618334Speter numeric_output_need_bar if necessary. 769750397Sobrien (build_overload_value): Handle non-PARM_DECL nodes; this 769818334Speter routine is now used by build_overload_int. Remove some 769950397Sobrien assignments to numeric_output_need_bar. Use 770018334Speter build_overload_scope_ref. 770150397Sobrien (build_qualified_name): Note that some template mangled names end 770218334Speter with digits, and set numeric_output_need_bar appropriately. Use 770350397Sobrien build_underscore_int. 770450397Sobrien * pt.c (unify): Change interface. 770518334Speter (type_unification_real): Likewise. 770650397Sobrien (determine_specialization): Use new interfaces. 770718334Speter (tsubst): Deal gracefully with situations in which the argument 770850397Sobrien vector is not fully filled. 770918334Speter (fn_type_unification): Use new interfaces. 771050397Sobrien (type_unification): Likewise. Remove NOP_EXPR hack. 771118334Speter (type_unification_real): Likewise. 771250397Sobrien (unify): Likewise. Deal with unification of complex expressions. 771350397Sobrien 771450397SobrienMon Mar 23 12:24:37 1998 Jason Merrill <jason@yorick.cygnus.com> 771550397Sobrien 771618334Speter * pt.c (complete_template_args): Initialize skip properly. 771750397Sobrien 771850397Sobrien * decl.c (make_typename_type): Revert. 771950397Sobrien (make_implicit_typename): Remove. 772050397Sobrien (lookup_name_real): Don't call it. Call lookup_field if we see a 772150397Sobrien TYPE_DECL from a template base. 772250397Sobrien * search.c (lookup_field): Do implicit typename stuff. 772350397Sobrien 772450397SobrienSun Mar 22 00:50:42 1998 Nick Clifton <nickc@cygnus.com> 772518334Speter Geoff Noer <noer@cygnus.com> 772650397Sobrien 772718334Speter * Makefile.in: Various fixes for building cygwin32 native toolchains. 772850397Sobrien * Make-lang.in: Likewise. 772950397Sobrien 773052284SobrienFri Mar 20 18:07:39 1998 Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu> 773150397Sobrien 773218334Speter * pt.c (tsubst, TEMPLATE_TEMPLATE_PARM): Simplify. 773350397Sobrien 773418334SpeterFri Mar 20 10:42:07 1998 Jason Merrill <jason@yorick.cygnus.com> 773550397Sobrien 773618334Speter * decl.c (make_implicit_typename): Rewrite removed code. 773750397Sobrien (make_typename_type): Call it if the type we look up comes from 773850397Sobrien a base that uses template parms. 773950397Sobrien 774018334Speter * pt.c (complete_template_args): Rewrite. 774150397Sobrien (tsubst, FUNCTION_DECL): Use it. 774218334Speter 774352284SobrienFri Mar 20 08:12:43 1998 H.J. Lu (hjl@gnu.org) 774450397Sobrien 774550397Sobrien * semantics.c (finish_asm_stmt): Fix combine strings. Call 774618334Speter c_expand_asm_operands () if output_operands, input_operands or 774750397Sobrien clobbers is not NULL_TREE. 774850397Sobrien 774918334SpeterFri Mar 20 00:10:19 1998 Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu> 775050397Sobrien 775150397Sobrien * pt.c (complete_template_args): New function. 775218334Speter (get_bindings): Deal with specializations of function templates 775350397Sobrien with return type containing parameters from outer class 775418334Speter templates. 775550397Sobrien (tsubst, TEMPLATE_TEMPLATE_PARM): When reducing parameter level, 775618334Speter substitute arguments and compose a new type. 775750397Sobrien 775818334SpeterThu Mar 19 19:01:48 1998 Mark Mitchell <mmitchell@usa.net> 775950397Sobrien 776050397Sobrien * pt.c (tsubst): Clear DECL_PENDING_INLINE_INFO for new 776150397Sobrien FUNCTION_DECLs. 776250397Sobrien 776318334SpeterThu Mar 19 11:51:58 1998 Jason Merrill <jason@yorick.cygnus.com> 776450397Sobrien 776518334Speter * decl.c (make_implicit_typename): Lose useless code. 776650397Sobrien 776750397Sobrien * call.c (standard_conversion): Handle A* -> const A* properly. 776818334Speter 776950397Sobrien * pt.c (get_bindings_real): Rename from get_bindings. Add 777018334Speter check_rettype parm. 777150397Sobrien (get_bindings): Pass 1. 777250397Sobrien (get_bindings_overload): Pass 0. 777350397Sobrien 777450397SobrienWed Mar 19 09:08:12 1998 Mark Mitchell <mmitchell@usa.net> 777518334Speter 777650397Sobrien * pt.c (check_explicit_specialization): When reverting a static 777718334Speter member function, also remove the `this' parameter from 777850397Sobrien last_function_parms. 777918334Speter 778050397SobrienThu Mar 19 02:27:48 1998 Jason Merrill <jason@yorick.cygnus.com> 778118334Speter 778250397Sobrien * pt.c (tsubst_copy, CONST_DECL): Don't bother tsubsting 778350397Sobrien a function context. 778418334Speter 778550397Sobrien * decl.c (store_bindings): Use free_binding_vecs. 778618334Speter (pop_from_top_level): Likewise. 778750397Sobrien 778818334SpeterWed Mar 18 12:41:43 1998 Jason Merrill <jason@yorick.cygnus.com> 778950397Sobrien 779050397Sobrien * decl.c (make_implicit_typename): Only change the type of a 779150397Sobrien TYPENAME_TYPE. 779250397Sobrien 779318334SpeterWed Mar 18 10:09:51 1998 Mark Mitchell <mmitchell@usa.net> 779450397Sobrien 779518334Speter * semantics.c: New file, containing routines to perform the 779650397Sobrien semantic phase of parsing. 779718334Speter * parse.y: Use it. 779850397Sobrien * pt.c (tsubst_expr): Likewise. 779918334Speter * cp-tree.h: Declare the various functions in semantics.c. 780050397Sobrien Provide macros to access _STMT tree nodes. 780118334Speter * cp-tree.def: Add ASM_STMT tree node. 780252284Sobrien * Makefile.in, Make-lang.in: Add dependencies on and for 780352284Sobrien semantics.c. 780418334Speter 780550397SobrienWed Mar 18 00:24:10 1998 Jason Merrill <jason@yorick.cygnus.com> 780618334Speter 780750397Sobrien * pt.c (push_template_decl): Only check primary templates. 780818334Speter 780950397Sobrien * pt.c (check_explicit_specialization): Complain about default args 781050397Sobrien in explicit specialization. 781150397Sobrien 781250397Sobrien * parse.y (nomods_initdcl0): Also call cp_finish_decl for a 781350397Sobrien constructor_declarator. 781450397Sobrien 781550397SobrienTue Mar 17 14:44:54 1998 Mark Mitchell <mmitchell@usa.net> 781618334Speter 781750397Sobrien * typeck2.c (build_x_arrow): Don't crash when an aggregate type 781850397Sobrien has no overloaded operator ->. 781950397Sobrien 782050397Sobrien * call.c (build_field_call): Don't crash when presented with a 782150397Sobrien field that is actually a nested type. 782250397Sobrien 782350397Sobrien * decl.c (pushtag): Deal with friend class injection in local 782450397Sobrien classes. 782550397Sobrien 782650397Sobrien * call.c (build_object_call): Don't crash if OBJ is a 782750397Sobrien pointer-to-member-function. 782850397Sobrien 782950397SobrienTue Mar 17 11:40:26 1998 Jason Merrill <jason@yorick.cygnus.com> 783050397Sobrien 783150397Sobrien * pt.c (push_template_decl): Complain about template with C linkage, 783250397Sobrien anonymous template class. 783350397Sobrien 783450397SobrienMon Mar 16 12:10:39 1998 Jason Merrill <jason@yorick.cygnus.com> 783550397Sobrien 783650397Sobrien * class.c (pushclass): Only use the mi_matrix stuff #ifdef MI_MATRIX. 783750397Sobrien * search.c: Likewise. 783850397Sobrien 783950397Sobrien * lex.c (do_pending_defargs): Only call 784050397Sobrien maybe_{begin,end}_member_template_processing for FUNCTION_DECLs. 784150397Sobrien 784252284Sobrien * parse.y (initdcl0_innards): Move maybeasm back into initdcl0 et al. 784318334Speter 784450397SobrienMon Mar 16 10:47:22 1998 Mark Mitchell <mmitchell@usa.net> 784518334Speter 784650397Sobrien * parse.y: Deal with CONSTRUCTORS in new_initializers. 784718334Speter 784850397SobrienMon Mar 16 10:54:21 1998 Mark Mitchell <mmitchell@usa.net> 784950397Sobrien 785050397Sobrien * pt.c (tsubst_copy): Deal with BIND_EXPR in a way that more 785150397Sobrien closely mimics the behavior in parse.y. 785250397Sobrien (tsubst_expr): Return the resulting BLOCK when making a tsubst'ing 785318334Speter into a compound statement. 785450397Sobrien 785552284SobrienSun Mar 15 02:07:26 1998 Jason Merrill <jason@yorick.cygnus.com> 785618334Speter 785750397Sobrien * cp-tree.h (TEMPLATE_PARMS_FOR_INLINE): New macro. 785850397Sobrien * pt.c (inline_needs_template_parms): New fn. 785918334Speter (original_template): New fn. 786050397Sobrien (push_inline_template_parms_recursive): New fn. 786118334Speter (maybe_begin_member_template_processing): Use them. 786250397Sobrien (maybe_end_member_template_processing): Likewise. 786318334Speter (is_member_or_friend_template): Rename to is_member_template. 786450397Sobrien Member functions of local classes are never member templates. 786518334Speter 786650397SobrienSun Mar 15 01:14:22 1998 Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu> 786750397Sobrien 786850397Sobrien * lex.c (do_identifier): Handle TEMPLATE_DECL that was 786918334Speter added in the class scope to catch redefinition error. 787050397Sobrien 787150397Sobrien * pt.c (reduce_template_parm_level): Also copy 787218334Speter the DECL_TEMPLATE_PARMS field. 787350397Sobrien 787418334SpeterSun Mar 15 10:54:08 1998 Mark Mitchell <mmitchell@usa.net> 787552284Sobrien 787650397Sobrien * pt.c (tsubst): Clear TYPE_REFERENCE_TO when creating a 787750397Sobrien reduced-level template type parameter. 787818334Speter 787950397SobrienSun Mar 15 12:26:02 1998 Manfred Hollstein <manfred@s-direktnet.de> 788018334Speter 788150397Sobrien * cp-tree.h (struct lang_decl_flags): Add needs_final_overrider. 788250397Sobrien (DECL_NEEDS_FINAL_OVERRIDER_P): New macro. 788352284Sobrien * class.c (override_one_vtable): Set DECL_NEEDS_FINAL_OVERRIDER_P. 788450397Sobrien * decl.c (duplicate_decls): Propagate it. 788550397Sobrien * typeck2.c (abstract_virtuals_error): Use two loops to emit 788650397Sobrien abstract virtual functions and virtual functions which need a 788718334Speter final overrider separately. 788850397Sobrien 788918334SpeterThu Mar 12 09:39:40 1998 Manfred Hollstein <manfred@s-direktnet.de> 789050397Sobrien 789150397Sobrien * lang-specs.h: Properly put brackets around array elements in 789218334Speter initializer. 789350397Sobrien 789418334Speter * typeck.c (build_binary_op_nodefault): Correctly place parens around 789550397Sobrien && and || in expression. 789618334Speter 789750397SobrienThu Mar 12 09:26:04 1998 Manfred Hollstein <manfred@s-direktnet.de> 789818334Speter 789952284Sobrien * call.c (default_parm_conversions): Remove prototype definition. 790050397Sobrien (build_method_call): Remove unused variable result. 790150397Sobrien 790250397Sobrien * cvt.c (ocp_convert): Remove unused variable conversion. 790318334Speter 790450397Sobrien * decl2.c (ambiguous_decl): Add explicit parameter definition for name. 790518334Speter 790650397Sobrien * except.c (do_unwind): #if 0 definition of unused variables fcall 790750397Sobrien and next_pc. 790850397Sobrien 790918334Speter * expr.c (extract_scalar_init): #if 0 prototype and function 791050397Sobrien definition. 791118334Speter 791250397Sobrien * init.c (expand_aggr_init_1): Remove unused variable init_type. 791350397Sobrien (build_new_1): Remove unused variable t. 791418334Speter 791550397Sobrien * pt.c (instantiate_class_template): Remove unused variable newtag; 791650397Sobrien cast called function return value to void. 791718334Speter (do_decl_instantiation): Remove unused variables name and fn. 791850397Sobrien 791918334Speter * tree.c (get_type_decl): Add default return to shut up compiler from 792052284Sobrien complaining control reaches end of non-void function. 792150397Sobrien 792218334Speter * typeck.c (build_x_conditional_expr): Remove unused variable rval. 792350397Sobrien 792418334SpeterThu Mar 12 09:12:15 1998 Manfred Hollstein <manfred@s-direktnet.de> 792550397Sobrien 792650397Sobrien * call.c (default_parm_conversions): Remove prototype definition. 792750397Sobrien (build_method_call): Remove unused variable result. 792850397Sobrien (build_over_call): Add default case in enumeration switch. 792950397Sobrien 793050397SobrienThu Mar 12 08:39:13 1998 Manfred Hollstein <manfred@s-direktnet.de> 793150397Sobrien 793250397Sobrien * decl2.c (lang_decode_option): Change j's type to size_t. 793350397Sobrien 793452284Sobrien * tree.c (layout_vbasetypes): record_align and desired_align are of 793550397Sobrien type unsigned int; const_size and nonvirtual_const_size likewise. 793618334Speter 793750397SobrienWed Mar 11 07:25:20 1998 Mark Mitchell <mmitchell@usa.net> 793818334Speter 793950397Sobrien * parse.y (new_initializer): Make sure all initializers are 794050397Sobrien lists. 794118334Speter 794252284SobrienTue Mar 10 07:32:36 1998 Mark Mitchell <mmitchell@usa.net> 794350397Sobrien 794418334Speter * decl2.c (import_export_decl): Mark tinfo functions for 794550397Sobrien cv-qualified versions of class types as DECL_NOT_REALLY_EXTERN. 794618334Speter 794750397SobrienFri Mar 6 23:27:35 1998 Jeffrey A Law (law@cygnus.com) 794850397Sobrien 794918334Speter * method.c: Fix typo. 795050397Sobrien 795150397SobrienFri Mar 6 10:06:59 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 795218334Speter 795350397Sobrien * method.c: Include "system.h" to get stdlib.h, stdio.h, 795450397Sobrien ctype.h, string.h, etc. 795518334Speter (issue_nrepeats): Add default case in enumeration switch. 795650397Sobrien (check_btype): Likewise. 795750397Sobrien (process_overload_item): Likewise. 795818334Speter 795950397Sobrien * Makefile.in (method.o): Depend on system.h. 796018334Speter 796150397SobrienWed Mar 4 22:26:53 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> 796250397Sobrien 796318334Speter * lex.c (do_scoped_id): Fix parenthesizing. 796450397Sobrien 796518334SpeterWed Mar 4 12:11:53 1998 Michael Tiemann <tiemann@axon.cygnus.com> 796650397Sobrien 796750397Sobrien * rtti.c (get_tinfo_fn_dynamic): If this function is called an 796850397Sobrien FLAG_RTTI is unset, initialize type info machinery and continue 796952284Sobrien with FLAG_RTTI enabled. 797050397Sobrien (get_typeid): Likewise. 797150397Sobrien 797250397SobrienWed Mar 4 11:47:55 1998 Jason Merrill <jason@yorick.cygnus.com> 797350397Sobrien 797450397Sobrien * typeck.c (unary_complex_lvalue): &D::i has type B::* if i comes 797550397Sobrien from B. 797650397Sobrien 797750397SobrienWed Mar 4 11:28:08 1998 Mark Mitchell <mmitchell@usa.net> 797850397Sobrien 797950397Sobrien * pt.c (finish_member_template_decl): Deal more gracefully with 798050397Sobrien invalid declarations. 798150397Sobrien 798252284SobrienTue Mar 3 01:38:17 1998 Jason Merrill <jason@yorick.cygnus.com> 798350397Sobrien 798452284Sobrien * cvt.c, decl.c, decl2.c, init.c, rtti.c, typeck.c, typeck2.c, 798550397Sobrien cp-tree.h: Clean up more old overloading code, old RTTI code, and 798618334Speter some formatting quirks. 798750397Sobrien 798850397Sobrien * call.c, class.c, cp-tree.h, cvt.c, decl.c, init.c, lex.c, 798950397Sobrien method.c, pt.c, ptree.c, typeck.c: Remove support for 799050397Sobrien -fno-ansi-overloading and overloading METHOD_CALL_EXPR. 799150397Sobrien * class.h: Remove. 799250397Sobrien * Makefile.in: Adjust. 799350397Sobrien 799450397Sobrien * pt.c (unify): Don't allow reduced cv-quals when strict. 799518334Speter 799650397Sobrien * call.c, class.c, pt.c, cp-tree.h: Remove nsubsts parm from 799718334Speter *type_unification* and unify. 799850397Sobrien 799950397SobrienMon Mar 2 12:11:06 1998 Jason Merrill <jason@yorick.cygnus.com> 800018334Speter 800152284Sobrien * parse.y (explicit_template_type): Remove TEMPLATE keyword. 800250397Sobrien (nested_name_specifier): And add it before this use. 800318334Speter (typename_sub0): And this use. Also add use without the keyword. 800450397Sobrien (typename_sub1): Likewise. 800518334Speter * pt.c (instantiate_class_template): Don't actually instantiate 800650397Sobrien anything if our type uses template parms. 800752284Sobrien 800818334SpeterMon Mar 2 11:04:59 1998 Jim Wilson <wilson@cygnus.com> 800950397Sobrien 801018334Speter * decl.c (start_function): Don't call temporary_allocation for a 801150397Sobrien nested function. 801250397Sobrien 801350397SobrienSun Mar 1 21:06:37 1998 Jason Merrill <jason@yorick.cygnus.com> 801450397Sobrien 801550397Sobrien * pt.c (instantiate_class_template): Don't mess with friends if 801650397Sobrien our type uses template parms. 801750397Sobrien 801852284SobrienSat Feb 28 12:06:44 1998 Jason Merrill <jason@yorick.cygnus.com> 801950397Sobrien 802018334Speter * parse.y (nested_name_specifier): Use explicit_template_type. 802152284Sobrien (typename_sub): Allow a template_type, an explicit_template_type, 802250397Sobrien or an implicit template type at the end. 802318334Speter * lex.c (yyprint): Handle a PTYPENAME being a TEMPLATE_DECL. 802450397Sobrien * decl.c (make_typename_type): Handle template-id where the name 802550397Sobrien is a TEMPLATE_DECL. 802618334Speter * call.c (build_scoped_method_call): Handle member template 802750397Sobrien destructor call. 802818334Speter * pt.c (tsubst_copy, METHOD_CALL_EXPR): Don't assume a member 802950397Sobrien destructor is represented by the type. 803050397Sobrien 803118334Speter * cp-tree.h (TYPENAME_TYPE_FULLNAME): New macro. 803250397Sobrien * parse.y (nested_name_specifier): Add 'template' case. 803318334Speter (explicit_template_type): New rule. 803450397Sobrien (typename_sub): Use it. 803518334Speter * decl.c (make_typename_type): Handle getting a template-id for NAME. 803650397Sobrien * pt.c (tsubst): Likewise. 803750397Sobrien 803818334SpeterFri Feb 27 11:17:50 1998 Jason Merrill <jason@yorick.cygnus.com> 803952284Sobrien 804050397Sobrien * pt.c (add_to_template_args): Fix thinko. 804118334Speter (instantiate_class_template): Call it later. 804250397Sobrien 804350397Sobrien * pt.c (get_class_bindings): Add outer_args parm. 804418334Speter (most_specialized_class): Likewise. 804550397Sobrien (instantiate_class_template): Pass it. 804650397Sobrien (more_specialized_class): Likewise. 804750397Sobrien (lookup_template_class): Get context from template if none 804818334Speter was specified. 804950397Sobrien (finish_member_template_decl): Don't do anything with a 805050397Sobrien partial specialization. 805118334Speter * decl2.c (check_member_template): Use IS_AGGR_TYPE instead of 805250397Sobrien AGGREGATE_TYPE_P. 805318334Speter * class.c (finish_struct): Member class templates have already been 805450397Sobrien checked for name clashes. 805518334Speter * decl.c (pushdecl_with_scope): Handle pushing at class level. 805650397Sobrien 805750397SobrienFri Feb 27 02:25:16 1998 Jason Merrill <jason@yorick.cygnus.com> 805850397Sobrien 805918334Speter * pt.c (tsubst, TEMPLATE_DECL): Support member class templates. 806050397Sobrien (tsubst, *_PARM): Support multiple levels of template classes. 806118334Speter (instantiate_class_template): Look up the pattern from the 806250397Sobrien original template. 806318334Speter (lookup_template_class): Handle getting a template for d1. 806450397Sobrien (push_template_decl): Correct setting of 'primary'. 806550397Sobrien (reduce_template_parm_level): Add 'levels' parm. 806618334Speter (finish_member_template_decl): Support member class templates. 806750397Sobrien (template_class_depth): Handle multiple levels. 806818334Speter * parse.y (component_decl_1, fn.def2): Remove member template case. 806950397Sobrien (component_decl): Add member template cases. 807050397Sobrien * decl2.c (check_member_template): We now handle member template 807118334Speter classes. 807250397Sobrien * decl.c (pushtag): Handle member templates. 807318334Speter * method.c (do_inline_function_hair): Don't touch 807450397Sobrien IDENTIFIER_GLOBAL_VALUE. 807550397Sobrien * init.c (build_offset_ref): If name isn't an identifier, just 807618334Speter return it. 807750397Sobrien * spew.c (yylex): Handle PTYPENAME like TYPENAME. 807818334Speter 807950397Sobrien * typeck.c (get_delta_difference): Do adjust for conversions to 808018334Speter and from virtual base. 808150397Sobrien 808218334SpeterWed Feb 25 09:51:29 1998 Jason Merrill <jason@yorick.cygnus.com> 808352284Sobrien 808452284Sobrien * typeck.c (get_delta_difference): Give hard error for conversion 808552284Sobrien from virtual base. 808652284Sobrien 808752284Sobrien * cp-tree.h: Tweak formatting. 808818334Speter 808952284SobrienWed Feb 25 00:35:33 1998 Jason Merrill <jason@yorick.cygnus.com> 809052284Sobrien 809150397Sobrien * decl.c (push_namespace): Handle redeclaration error. 809218334Speter 809350397Sobrien * cp-tree.h (IDENTIFIER_NAMESPACE_VALUE): New macro. 809418334Speter (IDENTIFIER_NAMESPACE_BINDINGS): New macro. 809550397Sobrien (NAMESPACE_BINDING): New macro. 809618334Speter (IDENTIFIER_GLOBAL_VALUE): Use NAMESPACE_BINDING. 809750397Sobrien * *.c: Use them. 809850397Sobrien 809950397Sobrien * pt.c (push_template_decl): Use innermost_args. 810052284Sobrien 810118334Speter * decl.c (get_unique_name): Tweak from earlier in the name. 810250397Sobrien 810318334SpeterTue Feb 24 22:15:04 1998 Martin von Loewis <loewis@informatik.hu-berlin.de> 810450397Sobrien 810550397Sobrien * cp-tree.def: Add CPLUS_BINDING node. 810618334Speter * cp-tree.h (tree_binding): New struct. 810750397Sobrien (BINDING_SCOPE, BINDING_VALUE): New macros. 810818334Speter (current_namespace, global_namespace): Declare extern. 810950397Sobrien (struct lang_decl_flags): New field in_namespace. 811050397Sobrien (DECL_NAMESPACE_USING, DECL_NAMESPACE_USERS): New macros. 811118334Speter (DECL_NAMESPACE, SET_DECL_NAMESPACE): New macros. 811250397Sobrien (TREE_INDIRECT_USING): New macro. 811318334Speter * decl2.c (current_namespace, global_namespace): Declare. The 811450397Sobrien value is a NAMESPACE_DECL now, not a TREE_LIST. 811550397Sobrien (is_namespace_ancestor, namespace_ancestor): New static functions. 811650397Sobrien (add_using_namespace, ambiguous_decl): Likewise. 811718334Speter (lookup_using_namespace): New support function for lookup_name. 811850397Sobrien (qualified_lookup_using_namespace): New support function for 811952284Sobrien do_scoped_id and lookup_namespace_name. 812050397Sobrien (get_namespace_id): Mark as obsolete. 812150397Sobrien (current_namespace_id): Likewise. 812250397Sobrien (do_namespace_alias): Implement. 812318334Speter (do_using_directive): Implement as call to add_using_namespace. 812450397Sobrien * decl.c (binding_for_name): New function. 812518334Speter (push_namespace, pop_namespace): Implement. 812650397Sobrien (push_decl): Don't install a FUNCTION_DECL in the global branch. 812750397Sobrien (lookup_namespace_name): Implement using qualified lookup. 812818334Speter (lookup_name_real): For global scoping, lookup in 812950397Sobrien global_namespace. For namespace scoping, lookup in given 813018334Speter namespace. For unscoped lookup, iterate over namespace, 813150397Sobrien considering using directives. 813250397Sobrien (init_decl_processing): Initialize global_namespace. 813350397Sobrien (grokvardecl): Build assembler name as static name for globals. 813450397Sobrien (grokdeclarator): Remove old namespace mangling. 813552284Sobrien (xref_tag): When installing a global binding for the 813650397Sobrien tag, make sure we have an identifier. 813718334Speter * method.c (build_overload_nested_name): Mangle namespaces. 813850397Sobrien (build_qualified_name): Likewise. 813918334Speter (build_decl_overload_real): Likewise. 814050397Sobrien * lex.c (build_lang_decl): Set namespace for new declaration to 814150397Sobrien current_namespace. 814218334Speter (do_scoped_id): Find global names in global or current 814350397Sobrien namespace, or using qualified namespace lookup, depending on 814418334Speter context. 814550397Sobrien * init.c (build_member_call): When scope is namespace, use 814650397Sobrien build_x_function_call instead. 814718334Speter (build_offset_ref): When scope is namespace, collapse processing 814850397Sobrien to lookup_namespace_name instead. 814918334Speter * error.c (dump_decl): Support NAMESPACE_DECL. 815050397Sobrien * decl.c (pushdecl): Bind globals to current namespace. 815150397Sobrien (push_overloaded_decl): Likewise. 815250397Sobrien (lookup_tag): Likewise. 815350397Sobrien (lookup_name_current_level): Likewise. 815450397Sobrien (xref_tag): Likewise. 815550397Sobrien (start_function): Likewise. 815652284Sobrien * lex.c (do_identifier): Likewise. 815750397Sobrien (identifier_typedecl_value): Likewise. 815852284Sobrien (real_yylex): Likewise. 815950397Sobrien * method.c (do_inline_function_hair): Likewise. 816018334Speter * parse.y (unscoped): Likewise. 816150397Sobrien * pt.c (check_explicit_specialization): Likewise. 816250397Sobrien (lookup_template_class): Likewise. 816350397Sobrien * rtti.c (call_void_fn): Likewise. 816450397Sobrien * sig.c (build_sigtable): Likewise. 816550397Sobrien * ptree.c (lang_print_xnode): New function. 816650397Sobrien 816718334SpeterTue Feb 24 01:40:24 1998 Jason Merrill <jason@yorick.cygnus.com> 816850397Sobrien 816918334Speter * pt.c (instantiate_class_template): Don't instantiate if pedantic 817050397Sobrien and the args use template parms. 817150397Sobrien 817218334Speter * pt.c (push_tinst_level): If the instantiation uses template parms, 817350397Sobrien fail silently. 817450397Sobrien * decl.c (xref_basetypes): Do call complete_type for basetypes 817550397Sobrien that involve template parameters. 817650397Sobrien 817750397SobrienTue Feb 24 00:36:43 1998 Jason Merrill <jason@yorick.cygnus.com> 817850397Sobrien 817950397Sobrien * typeck2.c (process_init_constructor): Fix labeled init check. 818050397Sobrien 818150397SobrienMon Feb 23 05:08:55 1998 Jason Merrill <jason@yorick.cygnus.com> 818250397Sobrien 818350397Sobrien * pt.c, call.c, decl.c, method.c, cp-tree.h: Remove unused NARGS 818450397Sobrien argument to tsubst and friends. 818550397Sobrien 818618334Speter * pt.c (tsubst, FUNCTION_DECL): Tidy. 818750397Sobrien 818818334Speter * typeck.c (build_x_function_call): Handle static member function 818950397Sobrien templates like non-templates. Handle friend templates like normal 819050397Sobrien function templates. 819150397Sobrien * pt.c (tsubst, *_PARM): Don't use orig_level. 819250397Sobrien (get_bindings): Don't call add_to_template_args. 819350397Sobrien (instantiate_template): Likewise. 819450397Sobrien (tsubst, FUNCTION_DECL): Call add_to_template_args as appropriate. 819550397Sobrien * ptree.c (print_lang_type): Print index/level for template parms. 819650397Sobrien 819750397SobrienMon Feb 23 02:52:29 1998 Mark Mitchell <mmitchell@usa.net> 819850397Sobrien 819950397Sobrien * Make-lang.in (cc1plus): Note that cc1plus depends on 820050397Sobrien cp/cp-tree.h and cp/cp-tree.def. 820150397Sobrien 820250397Sobrien * cp-tree.def (TEMPLATE_CONST_PARM): Remove. 820350397Sobrien (TEMPLATE_PARM_INDEX): New tree code, used to indicate a 820450397Sobrien position in a template parameter list. 820552284Sobrien * cp-tree.h (template_parm_index): New structure, used as the tree 820650397Sobrien structure for a TEMPLATE_PARM_INDEX. 820750397Sobrien (TEMPLATE_PARM_IDX): New macro. 820818334Speter (TEMPLATE_PARM_LEVEL): Likewise. 820950397Sobrien (TEMPLATE_PARM_DESCENDANTS): Likewise. 821050397Sobrien (TEMPLATE_PARM_ORIG_LEVEL): Likewise. 821118334Speter (TEMPLATE_PARM_DECL): Likewise. 821250397Sobrien (TEMPLATE_TYPE_PARM_INDEX): Likewise. 821318334Speter (TEMPLATE_TYPE_ORIG_LEVEL): Likewise. 821450397Sobrien (TEMPLATE_TYPE_DECL): Likewise. 821550397Sobrien (TEMPLATE_CONST_IDX): Remove. 821618334Speter (TEMPLATE_CONST_LEVEL): Likewise. 821750397Sobrien (TEMPLATE_CONST_SET_INFO): Likewise. 821818334Speter (TEMPLATE_TYPE_SET_INFO): Likewise. 821950397Sobrien (TEMPLATE_TYPE_IDX): Redefine in terms of TEMPLATE_PARM_INDEX 822018334Speter node. 822150397Sobrien (TEMPLATE_TYPE_LEVEL): Likewise. 822218334Speter * decl.c (decls_match): Call comp_template_parms, rather than 822350397Sobrien expanding it inline. 822450397Sobrien (duplicate_decls): If two template declarations are being merged, 822550397Sobrien then their TEMPLATE_INFOs should be merged as well. 822650397Sobrien (grokfndecl): Save template-id information when declaring a friend 822750397Sobrien with explicit template arguments. Pass arguments to 822818334Speter check_explicit_specialization via correct convention; at some 822950397Sobrien point check_explicit_specialization changed, but these call-sites 823018334Speter did not. 823150397Sobrien (grokdeclarator): Tidy up slightly. 823218334Speter * decl2.c (check_classfn): Tidy up slightly. Don't assume that 823350397Sobrien two template functions with the same DECL_ASSEMBLER_NAME the same, 823418334Speter since the names are not yet mangled. 823550397Sobrien * error.c (dump_decl): Use TEMPLATE_PARM_INDEX instead of 823652284Sobrien TEMPLATE_CONST_PARM. 823752284Sobrien (dump_expr): Likewise. Use the TEMPLATE_PARM_DECL to get at the 823852284Sobrien decl for a non-type parameter, rather than printing `<tparm ...>'. 823952284Sobrien * friend.c (is_friend): Handle TEMPLATE_DECL friends. 824052284Sobrien (do_friend): Deal with template friends. 824152284Sobrien * lex.c (do_pending_inlines): Call 824252284Sobrien maybe_begin_member_template_processing, rather than 824350397Sobrien conditionally calling begin_member_template_processing. 824450397Sobrien (process_next_inline): Likewise. Call 824552284Sobrien maybe_end_member_template_processing, rather than 824652284Sobrien conditionally calling end_member_template_processing. 824752284Sobrien (do_pending_defargs): Likewise. 824852284Sobrien (do_identifier): Use TEMPLATE_PARM_INDEX instead of 824952284Sobrien TEMPLATE_CONST_PARM. 825052284Sobrien * method.c (build_mangled_template_parm_index): New function. 825150397Sobrien (build_overload_value): Use it. 825250397Sobrien (build_overload_name): Likewise. 825350397Sobrien * pt.c (finish_member_template_decl): Allow friend declarations. 825452284Sobrien (template_class_depth): New function. 825552284Sobrien (is_member_template): Rename, and modify, to become... 825652284Sobrien (is_member_or_friend_template): New function. 825752284Sobrien (end_member_template_processing): Rename, and modify, to become... 825850397Sobrien (maybe_end_member_template_processing). 825952284Sobrien (build_template_parm_index): New function. 826052284Sobrien (reduce_template_parm_level): New function. 826150397Sobrien (process_template_parm): Modify to use build_template_parm_index. 826252284Sobrien (push_template_decl): Deal with friend templates. 826350397Sobrien (uses_template_parms): Use TEMPLATE_PARM_INDEX instead of 826450397Sobrien TEMPLATE_CONST_PARM. 826550397Sobrien (tsubst_friend_function): New function. 826650397Sobrien (instantiate_class_template): Generate the DECL_FRIENDLIST 826752284Sobrien for a new instantiation by using tsubst_friend_function rather 826850397Sobrien than just tsubst. 826950397Sobrien (tsubst): Don't tsubst into a type which is a TEMPLATE_DECL. 827052284Sobrien Use TEMPLATE_PARM_INDEX instead of TEMPLATE_CONST_PARM, and the 827150397Sobrien appropriate new macros. Use reduce_template_parm_level to 827252284Sobrien generate lower-level template parameters. Handle tsubst'ing into 827350397Sobrien TEMPLATE_DECLS that declare TEMPLATE_TEMPLATE_PARMS. Don't forget 827450397Sobrien to tsubst the DECL_CONTEXT and DECL_CLASS_CONTEXT of newly created 827550397Sobrien templates. Similarly for the template parameters for a new 827650397Sobrien template. 827750397Sobrien (tsubst_copy): Tidy up slightly. Use TEMPLATE_PARM_INDEX instead 827850397Sobrien of TEMPLATE_CONST_PARM. Handle TYPE_DECLs by tsubsting into them. 827950397Sobrien (unify): Use TEMPLATE_PARM_INDEX instead of TEMPLATE_CONST_PARM. 828050397Sobrien (get_bindings): Call add_to_template_args if necessary. 828150397Sobrien (instantiate_decl): Handle instantiations of friend templates. 828250397Sobrien * search.c (lookup_field_1): Don't treat the TYPE_FIELDS of a 828350397Sobrien TEMPLATE_TYPE_PARM as a list of fields; it's not! 828450397Sobrien * spew.c (yylex): Do a little manual constant propagation to 828550397Sobrien clarify the code. 828650397Sobrien 828750397SobrienSun Feb 22 19:53:29 1998 Jeffrey A Law (law@cygnus.com) 828850397Sobrien 828950397Sobrien * error.c: Include sys/types.h. 829050397Sobrien 829150397SobrienThu Feb 19 14:49:09 1998 Jeffrey A Law (law@cygnus.com) 829250397Sobrien 829350397Sobrien * method.c (build_mangled_name): Start CPP directives in column zero. 829450397Sobrien 829550397SobrienThu Feb 19 10:36:48 1998 Jason Merrill <jason@yorick.cygnus.com> 829618334Speter 829750397Sobrien * typeck2.c (process_init_constructor): Sorry about non-trivial 829818334Speter labeled initializers. 829950397Sobrien * parse.y (initlist): Re-enable labeled initializers. 830050397Sobrien 830118334SpeterThu Feb 19 10:15:55 1998 Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu> 830252284Sobrien 830350397Sobrien * pt.c (coerce_template_parms): Add a new parameter, is_tmpl_parm, 830450397Sobrien all callers changed. Rely on the new parameter instead of arg 830550397Sobrien being a TREE_LIST when determine whether we are working inside 830618334Speter template template parameter. Clean up is_type test. 830750397Sobrien 830818334SpeterThu Feb 19 10:04:12 1998 Jason Merrill <jason@yorick.cygnus.com> 830950397Sobrien 831018334Speter * cvt.c (cp_convert_to_pointer): Preserve TREE_CONSTANT. 831150397Sobrien * typeck2.c (initializer_constant_valid_p): Allow conversions 831218334Speter between pointers and references. 831350397Sobrien 831450397Sobrien1998-02-19 Brendan Kehoe <brendan@cygnus.com> 831518334Speter 831650397Sobrien * typeck.c (build_unary_op): Only warn about incr/decr a pointer 831718334Speter if pedantic || warn_pointer_arith. 831850397Sobrien 831950397SobrienThu Feb 19 09:37:21 1998 Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu> 832050397Sobrien 832150397Sobrien * pt.c (unify): Handle TEMPLATE_DECL. 832250397Sobrien 832350397Sobrien1998-02-18 Brendan Kehoe <brendan@cygnus.com> 832450397Sobrien 832550397Sobrien * cp-tree.h (strip_attrs): Remove decl. 832618334Speter 832750397Sobrien1998-02-18 Doug Evans <devans@cygnus.com> 832818334Speter 832950397Sobrien * decl.c (duplicate_decls): Call merge_machine_decl_attributes. 833050397Sobrien Update olddecl's attributes too. 833152284Sobrien (strip_attrs): Remove function. 833250397Sobrien * typeck.c (common_type): Call merge_machine_type_attributes. 833350397Sobrien 833450397SobrienTue Feb 17 14:07:52 1998 Mark Mitchell <mmitchell@usa.net> 833550397Sobrien 833650397Sobrien * parse.y (initdcl0_innards): New grammar symbol. 833750397Sobrien (nomods_initdecls, nomods_initdcl0): Change type from itype to 833850397Sobrien none, since the resulting value is never used. 833950397Sobrien (parse_decl): New function. 834050397Sobrien (datadef): Remove redundant actions. 834150397Sobrien (initdcl0, notype_initdcl0, nomods_initdcl0): Use initdcl0_innards. 834250397Sobrien * parse.c: Regenerated. 834350397Sobrien 834450397SobrienTue Feb 17 11:54:16 1998 Jason Merrill <jason@yorick.cygnus.com> 834550397Sobrien 834650397Sobrien * parse.y (simple_stmt): Use getdecls() to check for decl. 834750397Sobrien 834850397SobrienSat Feb 14 11:50:51 1998 Manfred Hollstein <manfred@s-direktnet.de> 834950397Sobrien 835050397Sobrien * Make-lang.in (DEMANGLER_INSTALL_NAME, DEMANGLER_CROSS_NAME): New 835150397Sobrien macros. 835250397Sobrien (c++.install-common): Install c++filt properly as native or as cross 835350397Sobrien variant. 835450397Sobrien (c++.uninstall): Add c++filt. 835550397Sobrien 835650397SobrienFri Feb 13 14:55:37 1998 Jason Merrill <jason@yorick.cygnus.com> 835750397Sobrien 835850397Sobrien * call.c (standard_conversion): Fix multi-level ptr conversions. 835950397Sobrien 836050397SobrienFri Feb 13 14:06:22 1998 Mike Stump <mrs@wrs.com> 836150397Sobrien 836250397Sobrien * init.c (build_new): Propagate error_mark_node up. 836350397Sobrien 836450397SobrienFri Feb 13 13:24:32 1998 Jason Merrill <jason@yorick.cygnus.com> 836550397Sobrien 836652284Sobrien * parse.y (simple_stmt): If the condition isn't a declaration, 836750397Sobrien start the controlled block after the test. 836850397Sobrien 836950397SobrienFri Feb 13 02:26:10 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> 837050397Sobrien 837150397Sobrien * call.c (build_over_call): Convert builtin abs, labs and fabs to 837250397Sobrien tree-codes. 837350397Sobrien * decl.c (init_decl_processing): Re-enable abs, labs and fabs as 837450397Sobrien builtins. 837550397Sobrien 837650397SobrienFri Feb 13 01:36:42 1998 Jason Merrill <jason@yorick.cygnus.com> 837750397Sobrien 837850397Sobrien * call.c (standard_conversion): A BASE_CONV replaces an RVALUE_CONV. 837952284Sobrien 838050397SobrienFri Feb 13 00:21:59 1998 Jason Merrill <jason@yorick.cygnus.com> 838150397Sobrien 838250397Sobrien * cp-tree.h: Add access_protected_virtual_node. 838350397Sobrien * class.c (init_class_processing): Initialize it. 838450397Sobrien * decl.c (xref_basetypes): Use it. 838550397Sobrien * parse.y (base_class_access_list): Likewise. 838650397Sobrien 838750397Sobrien * Make-lang.in (DEMANGLER_PROG): Add $(exeext). 838850397Sobrien (c++.install-common): Install c++filt. 838950397Sobrien 839050397SobrienThu Feb 12 12:46:51 1998 Benjamin Kosnik <bkoz@rhino.cygnus.com> 839150397Sobrien 839250397Sobrien * decl.c (shadow_tag): Give error for typedef-ing built-in types. 839350397Sobrien 839450397SobrienWed Feb 11 23:28:05 1998 Mark Mitchell <mmitchell@usa.net> 839550397Sobrien 839650397Sobrien * call.c (reference_binding): Use comptypes when comparing 839750397Sobrien TYPE_MAIN_VARIANTS to handle non-canonical array/index types. 839850397Sobrien 839950397SobrienWed Feb 11 16:42:04 1998 Mark Mitchell <mmitchell@usa.net> 840050397Sobrien 840150397Sobrien * tree.c (is_overloaded_fn): Use really_overloaded_fn. 840250397Sobrien (really_overloaded_fn): Move check here from is_overloaded_fn. 840350397Sobrien (get_first_fn): Use really_overloaded_fn and is_overloaded_fn. 840450397Sobrien 840550397SobrienWed Feb 11 15:54:18 1998 Mark Mitchell <mmitchell@usa.net> 840650397Sobrien 840750397Sobrien * typeck.c (build_ptrmemfunc): Type-check pointer-to-member 840850397Sobrien conversions. 840952284Sobrien 841050397SobrienMon Feb 9 22:23:31 1998 Mark Mitchell <mmitchell@usa.net> 841150397Sobrien 841250397Sobrien * cp-tree.h (push_template_decl): Return the decl passed in, or an 841350397Sobrien equivalent duplicate. 841452284Sobrien * decl.c (pushtag): Use the return value from push_template_decl. 841550397Sobrien (duplicate_decls): When duplicating a template declaration, merge 841652284Sobrien the DECL_TEMPLATE_RESULTs as well. 841750397Sobrien (make_implicit_typename): Don't try to dive into typename types to 841818334Speter find a context for making a new implicit typename. 841950397Sobrien (start_decl): Use the return value from push_template_decl. 842018334Speter (grokdeclarator): Complain about declarations list `const operator 842150397Sobrien int'. Since we don't correctly handle in-class initializations of 842218334Speter non-static data members, complain about this (now illegal) 842350397Sobrien practice. Issue an error for initializations of non-const statics 842418334Speter since that is illegal as well, and since we don't handle that case 842550397Sobrien correctly either. 842618334Speter (start_function): Use the return value from push_template_decl. 842750397Sobrien (start_method): Likewise. 842850397Sobrien * decl2.c (grokfield): Likewise. Since the change to 842952284Sobrien grokdeclarator ensures that all initialized fields are in fact 843018334Speter static, remove a redundant test for TREE_PUBLIC. 843150397Sobrien * parse.y (initlist): Disable labeled initializers since they do 843218334Speter not work as per the documentation, and since they do not use the 843352284Sobrien same syntax as the C front end. 843452284Sobrien * pt.c (push_template_decl): Return the decl passed in, or an 843550397Sobrien equivalent duplicate. 843650397Sobrien (lookup_template_class): When searching in a nested context, 843752284Sobrien use the right arguments. 843850397Sobrien (uses_template_parms): Handle the DECL_INITIAL for a CONST_DECL. 843918334Speter * typeck.c (build_component_ref): Assign the correct type to the 844050397Sobrien result of build_vfn_ref. 844150397Sobrien 844252284SobrienTue Feb 10 23:56:46 1998 Jason Merrill <jason@yorick.cygnus.com> 844318334Speter 844450397Sobrien * pt.c (convert_nontype_argument): Fix typo. 844518334Speter (check_explicit_specialization): Allow old-style specialization 844650397Sobrien of class template members. 844750397Sobrien 844818334SpeterTue Feb 10 20:36:52 1998 Jason Merrill <jason@yorick.cygnus.com> 844950397Sobrien Manfred Hollstein <manfred@s-direktnet.de> 845018334Speter 845150397Sobrien * decl.c (grokdeclarator): Use DECL_USE_TEMPLATE instead 845218334Speter when deciding to override DECL_ASSEMBLER_NAME. 845350397Sobrien 845418334SpeterTue Feb 10 15:30:55 1998 Andrew MacLeod <amacleod@torpedo.to.cygnus.com> 845550397Sobrien 845618334Speter * decl2.c (lang_f_options): Add -fsquangle to option processing list. 845750397Sobrien * cp-tree.h (flag_do_squangling): Add declaration. 845818334Speter * lang-options.h: Add -fsquangle and -fno-squangle. 845950397Sobrien * method.c: Add macros and static variables for squangling. 846050397Sobrien (build_overload_name): Rename to build_mangled_name, add logic for B 846150397Sobrien compression, and split into process_modifiers and 846250397Sobrien process_overload_item. 846318334Speter (process_modifiers): New function, to handle constant, reference, 846450397Sobrien and pointer types. 846518334Speter (process_overload_item): New function, handles issue of type codes. 846650397Sobrien (build_overload_name): New function, start squangling and call 846750397Sobrien build_mangled_name. 846850397Sobrien (ALLOCATE_TYPEVEC, DEALLOCATE_TYPEVEC): Remove macro and expand inline. 846950397Sobrien (start_squangling): New function to initialize squangling structs. 847050397Sobrien (end_squangling): New function to destroy squangling structs. 847150397Sobrien (nrepeats): Rename variable to Nrepeats. 847250397Sobrien (issue_nrepeats): New function for issuing 'n' type repeats. 847352284Sobrien (check_ktype): New function to check for type K name compression. 847450397Sobrien (build_overload_nested_name): Add a check for K name compression. 847518334Speter (build_qualified_name): Add a check for K name compression and don't 847650397Sobrien use DECL_ASSEMBLER_NAME when squangling is on. 847718334Speter (check_btype): New function, checks for B type compression. 847850397Sobrien (build_static_name, build_decl_overload_real): Initiate squangling. 847918334Speter (build_typename_overload, build_overload_with_type): Initiate 848052284Sobrien squangling 848150397Sobrien 848250397SobrienSun Feb 8 23:47:38 1998 scott snyder <sss@d0linux01.fnal.gov> 848350397Sobrien 848450397Sobrien * method.c (make_thunk): Avoid name buffer overflow. 848518334Speter 848650397SobrienSat Feb 7 16:48:54 1998 Jason Merrill <jason@yorick.cygnus.com> 848718334Speter 848850397Sobrien * pt.c (instantiate_decl): Call cp_finish_decl for vars even if we 848918334Speter don't define them yet. 849050397Sobrien 849118334Speter * parse.y (nomods_initdcl0): Add constructor_declarator case. 849250397Sobrien 849318334SpeterFri Feb 6 21:32:25 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 849450397Sobrien 849518334Speter * config-lang.in (diff_excludes): Use basename only. 849652284Sobrien 849750397SobrienThu Feb 5 19:10:40 1998 Jason Merrill <jason@yorick.cygnus.com> 849818334Speter 849950397Sobrien * tinfo2.cc: Add tinfo for signed char. 850018334Speter 850150397SobrienThu Feb 5 14:38:23 1998 Mike Stump <mrs@wrs.com> 850250397Sobrien 850352284Sobrien * search.c (compute_access): Handle protected constructors in derived 850450397Sobrien classes as accessible. 850518334Speter 850650397SobrienWed Feb 4 01:26:49 1998 Jason Merrill <jason@yorick.cygnus.com> 850718334Speter 850850397Sobrien * expr.c (cplus_expand_expr, PCC_STATIC_STRUCT_RETURN code): 850918334Speter Call convert_from_reference sooner. 851050397Sobrien 851118334SpeterTue Feb 3 23:50:52 1998 Mark Mitchell <mmitchell@usa.net> 851250397Sobrien 851350397Sobrien * cvt.c (ocp_convert): Obtain the constant values from constant 851450397Sobrien decls even if the destination type is the same as the type of the 851550397Sobrien decl. 851618334Speter 851750397Sobrien * decl2.c (finish_file): Make sure that static inlines with 851850397Sobrien definitions are not marked DECL_EXTERNAL before returning. 851918334Speter 852050397SobrienTue Feb 3 22:43:42 1998 Jason Merrill <jason@yorick.cygnus.com> 852118334Speter 852250397Sobrien * decl.c: Lose arg_looking_for_template. 852318334Speter (lookup_name_real): Likewise. 852450397Sobrien * parse.y: Lose processing_template_arg, template_arg1. 852518334Speter (primary): Likewise. 852650397Sobrien * spew.c (yylex): Set lastiddecl for PTYPENAMEs, too. 852750397Sobrien 852818334SpeterTue Feb 3 22:04:01 1998 Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu> 852950397Sobrien 853018334Speter * error.c (dump_decl): Fix type of default arguments for template 853150397Sobrien template parameters and nontype template parameters. 853252284Sobrien * parse.y (template_parm): Handle invalid default template 853350397Sobrien template arguments here. 853418334Speter 853550397Sobrien * parse.y (template_parm): Use template_arg instead of PTYPENAME 853618334Speter for default template template argument. 853750397Sobrien * pt.c (coerce_template_parms): Merge default template argument 853850397Sobrien codes. Can treat RECORD_TYPE as template name if it is implicitly 853918334Speter created. Fix argument index in error message. 854050397Sobrien * typeck.c (comptypes): Merge template argument comparison codes in 854118334Speter TEMPLATE_TEMPLATE_PARM and RECORD_TYPE. 854250397Sobrien 854350397SobrienTue Jan 6 01:42:44 1998 Mumit Khan <khan@xraylith.wisc.edu> 854450397Sobrien 854550397Sobrien * lex.c (file_name_nondirectory): Also check for '/'. 854650397Sobrien 854750397SobrienMon Feb 2 11:24:22 1998 Mark Mitchell <mmitchell@usa.net> 854850397Sobrien 854950397Sobrien * parse.y (primary): Deal with statement-expressions in 855050397Sobrien templates. 855150397Sobrien * pt.c (tsubst_copy): Handle BIND_EXPR. 855250397Sobrien * tree.c (mapcar): Likewise. 855350397Sobrien 855450397Sobrien * call.c (add_template_candidate_real): Pass extra parameter to 855550397Sobrien fn_type_unification. 855650397Sobrien * cp-tree.h (fn_type_unification): Add parameter. 855750397Sobrien * pt.c (fn_type_unification): Add additional parameter to deal with 855850397Sobrien static member functions. 855950397Sobrien (get_bindings): Deal with static member functions. 856050397Sobrien 856150397Sobrien * cp-tree.h (DECL_NONSTATIC_MEMBER_FUNCTION_P): New macro. 856250397Sobrien (revert_static_member_fn): Declare. 856350397Sobrien * decl.c (revert_static_member_fn): Remove declaration. Change 856450397Sobrien linkage from internal to external. 856550397Sobrien (cp_finish_decl): Deal with virtual functions in classes local to 856650397Sobrien template functions. 856750397Sobrien * decl2.c (finish_file): Don't forget to emit increment/decrement 856850397Sobrien expressions in initializers for file-scope variables. 856950397Sobrien * parse.y (typename_sub2): If the typename doesn't names a 857050397Sobrien template, rather than a type, issue an error message. 857152284Sobrien * pt.c (check_explicit_specialization): Handle specializations of 857250397Sobrien static member functions. 857318334Speter (coerce_template_parms): Handle offset references to lists of 857450397Sobrien member functions. 857550397Sobrien * search.c (note_debug_info_needed): Don't crash when handed a 857650397Sobrien type which is being defined. 857718334Speter * typeck.c (complete_type): Don't crash when handed NULL_TREE; 857850397Sobrien that can happen with some illegal code. 857950397Sobrien 858018334SpeterMon Feb 2 00:57:38 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 858150397Sobrien 858250397Sobrien * call.c (user_harshness): Initialize `code' to 0. 858318334Speter (build_method_call): Initialize `candidates', `cp' and `len' to 0. 858452284Sobrien (null_ptr_cst_p): Add parentheses around && within ||. 858518334Speter (standard_conversion): Likewise. 858650397Sobrien (z_candidate): Likewise. 858750397Sobrien (build_user_type_conversion_1): Initialize `args' to NULL_TREE. 858850397Sobrien (build_object_call): Likewise for `mem_args'. 858950397Sobrien (build_new_op): Likewise for `mem_arglist'. Add `return' from 859052284Sobrien default case in enumeration switch. 859152284Sobrien 859250397Sobrien * class.c (build_vtable_entry): Add explicit braces to avoid 859352284Sobrien ambiguous `else'. 859452284Sobrien (build_class_init_list): Likewise. 859550397Sobrien (finish_struct_1): Initialize `width' to 0. 859652284Sobrien (instantiate_type): Initialize `name' to NULL_TREE. Add 859750397Sobrien explicit braces to avoid ambiguous `else'. 859850397Sobrien 859950397Sobrien * cvt.c (convert_to_aggr): Add explicit braces to avoid ambiguous 860050397Sobrien `else'. 860150397Sobrien 860250397Sobrien * decl.c (grok_reference_init): Eliminate unused parameter, all 860350397Sobrien callers changed. 860450397Sobrien (record_builtin_type): Initialize `tdecl' to NULL_TREE. 860550397Sobrien (init_decl_processing): Initialize `vb_off_identifier' to NULL_TREE. 860650397Sobrien (cp_finish_decl): Initialize `ttype' to NULL_TREE. 860750397Sobrien (grokdeclarator): Add parentheses around && within ||. Add 860850397Sobrien explicit braces to avoid ambiguous `else'. 860952284Sobrien (grokparms): Initialize `type' to NULL_TREE. 861050397Sobrien (xref_tag): Remove unused label `just_return'. 861118334Speter (finish_enum): Initialize `minnode' and `maxnode' to NULL_TREE. 861250397Sobrien (finish_function): Initialize `cond' and `thenclause' to NULL_TREE. 861318334Speter (hack_incomplete_structures): Add parentheses around assignment 861450397Sobrien used as truth value. 861518334Speter 861650397Sobrien * decl2.c (coerce_delete_type): Hide definition of `e3'. 861718334Speter 861850397Sobrien * error.c: Include <stdlib.h>. 861950397Sobrien (dump_expr): Change the type of `i' to size_t. Remove unused 862018334Speter label `error'. 862150397Sobrien 862218334Speter * except.c (init_exception_processing): Remove unused variable `d'. 862350397Sobrien (expand_throw): Likewise for `label'. 862418334Speter 862550397Sobrien * friend.c (add_friends): Add explicit braces to avoid ambiguous 862618334Speter `else'. 862750397Sobrien 862818334Speter * init.c (sort_member_init): Initialize `last_field' to NULL_TREE. 862950397Sobrien (sort_base_init): Likewise for `binfo'. 863018334Speter (expand_member_init): Likewise for `rval'. 863150397Sobrien (build_member_call): Add parentheses around assignment used as 863218334Speter truth value. 863350397Sobrien (build_offset_ref): Add explicit braces to avoid ambiguous `else'. 863450397Sobrien (build_new): Initialize `nelts' to NULL_TREE. Initialize 863518334Speter `old_immediate_size_expand' to 0. 863650397Sobrien (build_new_1): Initialize `nelts' and `alloc_node' to NULL_TREE. 863718334Speter (build_vec_delete_1): Remove unused variable `block'. 863850397Sobrien (expand_vec_init): Initialize `itype' to NULL_TREE. 863950397Sobrien 864018334Speter * lex.c: Include <strings.h> if we don't have <string.h>. Protect 864150397Sobrien declaration of `index' and `rindex' with autoconf macros. 864218334Speter (reinit_parse_for_expr): Remove unused variables 864350397Sobrien `look_for_semicolon' and `look_for_lbrac'. 864450397Sobrien (cons_up_default_function): Initialize `args' to NULL_TREE. 864552284Sobrien (readescape): Initialize `firstdig' to 0. 864618334Speter (real_yylex): Add parentheses around assignment used as truth value. 864750397Sobrien 864850397Sobrien * method.c: Include <strings.h> if we don't have <string.h>. 864918334Speter Protect declaration of `index' with autoconf macro. 865050397Sobrien 865118334Speter * parse.y (primary): Add explicit braces to avoid ambiguous `else'. 865250397Sobrien Initialize `type' to NULL_TREE. 865350397Sobrien (structsp): Remove unused variable `id'. 865452284Sobrien 865550397Sobrien * pt.c (coerce_template_parms): Add explicit braces to avoid 865650397Sobrien ambiguous `else'. 865718334Speter (lookup_template_class): Initialize `template' to NULL_TREE. 865850397Sobrien (instantiate_class_template): Remove unused variable `name' and `e'. 865918334Speter (tsubst): Likewise for `i'. Initialize `last' to NULL_TREE. 866050397Sobrien (do_poplevel): Initialize `saved_warn_unused' to 0. 866150397Sobrien (type_unification): Remove unused varable `parm'. 866252284Sobrien (unify): Likewise for `j'. 866350397Sobrien 866418334Speter * repo.c (init_repo): Add parentheses around assignment used as 866552284Sobrien truth value. 866650397Sobrien (finish_repo): Remove unused varable `p'. 866752284Sobrien 866850397Sobrien * search.c (get_binfo): Initialize `type' to NULL_TREE. 866950397Sobrien (get_base_distance): Likewise. 867052284Sobrien (lookup_field): Initialize `rval_binfo_h', `type', `basetype_path' 867150397Sobrien and `new_v' to NULL_TREE. 867218334Speter (lookup_fnfields): Likewise for `rval_binfo_h'. 867352284Sobrien (breadth_first_search): Add parentheses around assignment used as 867418334Speter truth value. 867550397Sobrien (get_template_base): Initialize `type' to NULL_TREE. 867618334Speter 867750397Sobrien * sig.c (append_signature_fields): Initialize `last_mfptr' to 867818334Speter NULL_TREE. 867950397Sobrien (build_signature_table_constructor): Likewise for 868052284Sobrien `last_rhs_field', `pfn' and `vt_off'. 868150397Sobrien (build_sigtable): Likewise for `init'. 868250397Sobrien 868318334Speter * tree.c (break_out_calls): Initialize `t2' to NULL_TREE. 868450397Sobrien (propagate_binfo_offsets): Likewise for `delta'. 868552284Sobrien (hash_tree_cons): Initialize hashcode to 0. 868650397Sobrien (can_free): Likewise for `size'. 868750397Sobrien (cp_tree_equal): Add explicit braces to avoid ambiguous `else'. 868850397Sobrien 868950397Sobrien * typeck.c (convert_sequence): Hide prototype. 869018334Speter (common_type): Add explicit braces to avoid ambiguous `else'. 869152284Sobrien (comp_target_types): Likewise. 869250397Sobrien (build_x_function_call): Initialize `ctypeptr' to NULL_TREE. 869350397Sobrien (build_function_call_real): Add explicit braces to avoid ambiguous 869450397Sobrien `else'. 869550397Sobrien (convert_arguments): Initialize `called_thing' to 0. 869650397Sobrien (convert_for_initialization): Initialize `savew' and `savee' to 0. 869750397Sobrien 869850397Sobrien * typeck2.c (incomplete_type_error): Initialize `errmsg' to 0. 869950397Sobrien (digest_init): Initialize `old_tail_contents' to NULL_TREE. 870050397Sobrien (build_x_arrow): Likewise for `last_rval'. 870150397Sobrien 870250397Sobrien * xref.c (GNU_xref_decl): Initialize `cls' to 0. 870350397Sobrien 870450397SobrienSun Feb 1 12:45:34 1998 J"orn Rennecke <amylaar@cygnus.co.uk> 870550397Sobrien 870650397Sobrien * decl.c (init_decl_processing): Use set_sizetype. 870750397Sobrien * decl2.c (sizetype): Don't declare. 870850397Sobrien * typeck.c (c_sizeof): Convert result of *_DIV_EXPR to sizetype. 870918334Speter (c_sizeof_nowarn, build_binary_op_nodefault): Likewise. 871050397Sobrien (build_component_addr, unary_complex_lvalue): Likewise. 871118334Speter * rtti.c (expand_class_desc): Likewise. 871250397Sobrien * class.c (get_vfield_offset): Likewise. 871350397Sobrien 871450397SobrienThu Jan 29 10:39:30 1998 Mark Mitchell <mmitchell@usa.net> 871550397Sobrien 871650397Sobrien * pt.c (convert_nontype_argument): Move check for is_overloaded_fn 871750397Sobrien early to avoid bogus error. Handle overloaded function 871850397Sobrien names provided as template arguments correctly. 871950397Sobrien (coerce_template_parms): Don't mishandle overloaded functions when 872050397Sobrien dealing with template template parameters. 872118334Speter (lookup_template_class): Issue an error message, rather than 872250397Sobrien crashing, when the TYPE_DECL provided is not a template type. 872350397Sobrien 872450397SobrienWed Jan 28 23:14:44 1998 Jason Merrill <jason@yorick.cygnus.com> 872550397Sobrien 872650397Sobrien * class.c (instantiate_type): Don't just return a known type if 872750397Sobrien it's wrong. 872818334Speter 872950397SobrienWed Jan 28 11:04:07 1998 Mark Mitchell <mmitchell@usa.net> 873050397Sobrien 873118334Speter * class.c (instantiate_type): Remove handling of FUNCTION_DECL 873250397Sobrien since that code could never be reached. 873350397Sobrien 873450397Sobrien * error.c (dump_decl): Avoid aborting in the midst of printing an 873550397Sobrien error message about an illegal template declaration. 873650397Sobrien 873750397Sobrien * parse.y (structsp): Print an error message, rather than crashing, 873850397Sobrien when a class-head does not name a class. 873950397Sobrien 874052284Sobrien * pt.c (convert_nontype_argument): Allow REAL_TYPE and COMPLEX_TYPE 874150397Sobrien template arguments as a g++ extension. 874250397Sobrien 874350397Sobrien * cp-tree.def (ALIGNOF_EXPR): New tree code. 874450397Sobrien * decl2.c (grok_alignof): If processing_template_decl, just store 874518334Speter the expression. 874650397Sobrien * typeck.c (c_alignof): Likewise. 874718334Speter * decl2.c (build_expr_from_tree): Handle ALIGNOF_EXPR. 874850397Sobrien * error.c (dump_expr): Likewise. 874950397Sobrien * pt.c (tsubst_copy): Likewise. 875052284Sobrien * tree.c (cp_tree_equal): Likewise. 875118334Speter * pt.c (uses_template_parms): Correctly determine whether or not a 875250397Sobrien SIZEOF_EXPR/ALIGNOF_EXPR uses template parameters so that constant 875350397Sobrien folding can be done. 875418334Speter 875550397Sobrien * cp-tree.h (grok_enum_decls): Remove type parameter. 875650397Sobrien * decl.c (grok_enum_decls): Likewise. 875718334Speter * decl2.c (grok_x_components): Call grok_enum_decls 875850397Sobrien unconditionally, since it will do nothing if there is no 875950397Sobrien current_local_enum. Use the new calling sequence. 876050397Sobrien * pt.c (tsubst_enum): Use the new calling sequence for 876150397Sobrien grok_enum_decls. 876250397Sobrien 876350397Sobrien * decl.c (start_function): Make member functions of local classes 876450397Sobrien in extern inline functions have comdat linkage here... 876550397Sobrien (grokdeclarator): Rather than here. 876650397Sobrien 876750397SobrienWed Jan 28 10:55:47 1998 Jason Merrill <jason@yorick.cygnus.com> 876850397Sobrien 876918334Speter * pt.c (convert_nontype_argument): Use decl_constant_value. 877050397Sobrien 877150397SobrienTue Jan 27 16:42:21 1998 Mark Mitchell <mmitchell@usa.net> 877250397Sobrien 877350397Sobrien * call.c (add_template_candidate_real): New function. 877450397Sobrien (add_template_candidate): Use it. 877550397Sobrien (add_template_conv_candidate): Likewise. 877652284Sobrien (joust): Pass extra argument to more_specialized. 877718334Speter * class.c (instantiate_type): Handle a single FUNCTION_DECL. 877850397Sobrien (is_local_class): Remove. 877950397Sobrien (finish_struct): Check TI_PENDING_SPECIALIZATION_FLAG. 878018334Speter * cp-tree.h (is_local_class): Remove. 878150397Sobrien (perform_array_to_pointer_conversion): Likewise. 878250397Sobrien (finish_member_template_decl): Add. 878350397Sobrien (check_explicit_specialization): Return a tree, not an int. 878418334Speter (more_specialized): Take additional argument. 878550397Sobrien (get_bindings): Likewise. 878650397Sobrien (TI_PENDING_SPECIALIZATION_FLAG): New macro. 878750397Sobrien * cvt.c (perform_qualification_conversions): Use comp_ptr_ttypes. 878850397Sobrien (perform_array_to_pointer_conversion): Remove. 878950397Sobrien * decl.c (saved_scope): Add processing_specialization, 879050397Sobrien processing_explicit_instantiation fields. 879150397Sobrien (maybe_push_to_top_level): Save them. 879250397Sobrien (pop_from_top_level): Restore them. 879318334Speter (grokfndecl): Use new return value from 879450397Sobrien check_explicit_specialization. 879550397Sobrien (start_decl): Don't check flag_guiding_decls before pushing 879650397Sobrien decls. 879752284Sobrien (cp_finish_decl): Remove previous (bogus) change. 879852284Sobrien (grok_declarator): Use decl_function_context rather than 879950397Sobrien is_local_class. 880050397Sobrien * decl2.c (finish_file): Pass extra argument to get_bindings. 880150397Sobrien (build_expr_from_tree): Let build_x_component_ref check 880250397Sobrien validity of arguments rather than doing it here. 880350397Sobrien * lex.c (cons_up_default_function): Remove code fooling with 880450397Sobrien processing_specialization, processing_explicit_instantiation 880550397Sobrien flags, as that is now done in {maybe_push_top,pop_from}_top_level. 880618334Speter * method.c (build_overload_identifier): Mangle local classes in 880750397Sobrien template functions correctly. 880850397Sobrien * parse.y (finish_member_template_decl): Move to pt.c. 880950397Sobrien * pt.c (finish_member_template_decl): Moved here from parse.y. 881050397Sobrien (print_candidates): New function. 881150397Sobrien (determine_specialization): Change interface. Properly look for 881218334Speter most specialized versions of template candidates. 881350397Sobrien (check_explicit_specialization): Fully process explicit 881450397Sobrien instantiations. 881550397Sobrien (push_template_decl): Avoid looking at CLASSTYPE fields in 881650397Sobrien FUNCTION_DECLS. 881750397Sobrien (determine_overloaded_function): Remove. 881852284Sobrien (convert_nontype_argument): Change name from 881950397Sobrien convert_nontype_parameter. Use determine_overloaded_function 882050397Sobrien instead of instantiate_type. 882150397Sobrien (mangle_class_name_for_template): Handle type contexts as well as 882250397Sobrien function contexts. 882350397Sobrien (classtype_mangled_name): Likewise. 882450397Sobrien (lookup_template_class): Likewise. 882550397Sobrien (tsubst): Likewise. 882650397Sobrien (more_specialized): Take explict template arguments as a 882718334Speter parameter. 882850397Sobrien (most_specialized): Likewise. 882950397Sobrien (get_bindings): Likewise. Check that return types match before 883050397Sobrien proclaiming a function a match. 883118334Speter (do_decl_instantiation): Remove code searching for function to 883250397Sobrien instantiate; that is now done in check_explicit_specialization. 883318334Speter (add_maybe_template): Pass extra argument to get_bindings. 883452284Sobrien * tree.c (really_overloaded_fn): Use is_overloaded_fn to simplify 883518334Speter implementation. 883650397Sobrien * typeck.c (build_component_ref): Check for invalid arguments. 883750397Sobrien 883850397SobrienTue Jan 27 01:44:02 1998 Jason Merrill <jason@yorick.cygnus.com> 883950397Sobrien 884050397Sobrien * expr.c (cplus_expand_expr, AGGR_INIT_EXPR): Don't check that 884150397Sobrien return_target and call_target are equivalent. 884250397Sobrien 884318334Speter * pt.c (type_unification_real): Just accept function parms that 884450397Sobrien don't use any template parms. 884518334Speter 884650397SobrienSun Jan 25 03:30:00 1998 Jason Merrill <jason@yorick.cygnus.com> 884750397Sobrien 884850397Sobrien * decl.c (cp_finish_decl): When bailing on a comdat variable, also 884950397Sobrien unset DECL_NOT_REALLY_EXTERN. 885050397Sobrien 885150397Sobrien * parse.y (typename_sub*): Fix std::. 885250397Sobrien 885318334SpeterSat Jan 24 12:13:54 1998 Jason Merrill <jason@yorick.cygnus.com> 885450397Sobrien 885518334Speter * error.c (dump_decl): Fix type default template args. 885650397Sobrien (dump_type): Hand TEMPLATE_DECL off to dump_decl. 885752284Sobrien 885818334SpeterFri Jan 23 18:34:37 1998 Mumit Khan <khan@xraylith.wisc.edu> 885950397Sobrien 886018334Speter * lex.c (DIR_SEPARATOR): Define to be '/' if not already defined. 886150397Sobrien (file_name_nondirectory): Use. 886250397Sobrien 886352284SobrienWed Jan 21 10:29:57 1998 Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu> 886450397Sobrien 886550397Sobrien * pt.c (coerce_template_parms): Don't access elements of ARGLIST 886618334Speter that are not really present. Substitute default arguments in 886750397Sobrien template template arguments. Correctly convert TEMPLATE_DECL to 886850397Sobrien TEMPLATE_TEMPLATE_PARM. 886918334Speter (comp_template_args): TEMPLATE_DECL and TEMPLATE_TEMPLATE_PARM 887050397Sobrien are no longer treated specially here. 887150397Sobrien * parse.y (template_template_parm): Fix copy error. 887252284Sobrien * decl.c (grokdeclarator): Warn about missing `typename' for nested 887350397Sobrien type created from template template parameters. 887450397Sobrien * parse.y (bad_parm): Likewise 887550397Sobrien 887650397Sobrien * class.c (finish_struct): Handle TEMPLATE_TEMPLATE_PARM. 887750397Sobrien (push_nested_class): Likewise. 887850397Sobrien * cp-tree.def (TEMPLATE_TEMPLATE_PARM): New tree code. 887950397Sobrien * cp-tree.h (DECL_TEMPLATE_TEMPLATE_PARM_P): New macro. 888050397Sobrien (copy_template_template_parm): Declare. 888150397Sobrien * decl.c (arg_looking_for_template): New variable. 888250397Sobrien (lookup_name_real): Handle TEMPLATE_TEMPLATE_PARM. 888350397Sobrien Try to return TEMPLATE_DECL or TEMPLATE_TEMPLATE_PARM 888452284Sobrien node if arg_looking_for_template is nonzero. 888550397Sobrien (pushdecl): Handle TEMPLATE_TEMPLATE_PARM. 888650397Sobrien (grok_op_properties, xref_tag, xref_basetypes): Likewise. 888750397Sobrien (grokdeclarator): Handle TEMPLATE_DECL. 888850397Sobrien * decl2.c (constructor_name_full): Handle TEMPLATE_TEMPLATE_PARM. 888950397Sobrien * error.c (dump_type): Add TEMPLATE_DECL and TEMPLATE_TEMPLATE_PARM. 889050397Sobrien (dump_type_prefix, dump_type_suffix): Handle TEMPLATE_TEMPLATE_PARM. 889150397Sobrien (dump_decl): Handle unnamed template type parameters. 889218334Speter Handle template template parameters. 889350397Sobrien (dump_function_name): Handle template template parameters. 889450397Sobrien * init.c (is_aggr_typedef, is_aggr_type, get_aggr_from_typedef): 889550397Sobrien Handle TEMPLATE_TEMPLATE_PARM. 889652284Sobrien * method.c (build_template_template_parm_names): New function. 889750397Sobrien (build_template_parm_names): Handle TEMPLATE_DECL. 889818334Speter (build_overload_nested_name, build_overload_name): 889950397Sobrien Handle TEMPLATE_TEMPLATE_PARM. 890018334Speter * parse.y (maybe_identifier): New nonterminal. 890150397Sobrien (template_type_parm): Use it. 890218334Speter (template_template_parm, template_arg1): New nonterminal. 890350397Sobrien (template_parm): Add template_template_parm rules. 890450397Sobrien (template_arg): Set processing_template_arg. 890550397Sobrien (template_arg1): Rules moved from template_arg. 890650397Sobrien (primary, nonnested_type): Set arg_looking_for_template if we are 890750397Sobrien processing template arguments. 890850397Sobrien * pt.c (begin_member_template_processing): Handle TEMPLATE_DECL. 890950397Sobrien (process_template_parm): Handle template template parameters. 891050397Sobrien (coerce_template_parms, comp_template_args): Likewise. 891150397Sobrien (mangle_class_name_for_template, lookup_template_class): Likewise. 891250397Sobrien (uses_template_parms): Handle TEMPLATE_DECL and 891350397Sobrien TEMPLATE_TEMPLATE_PARM. 891450397Sobrien (current_template_args): Handle TEMPLATE_DECL. 891550397Sobrien (tsubst, tsubst_copy, unify): Handle TEMPLATE_TEMPLATE_PARM. 891650397Sobrien * search.c (dfs_walk, dfs_record_inheritance): 891750397Sobrien Handle TEMPLATE_TEMPLATE_PARM. 891850397Sobrien * tree.c (copy_template_template_parm): New function. 891950397Sobrien (mapcar): Handle TEMPLATE_TEMPLATE_PARM. 892050397Sobrien * typeck.c (comptypes): Handle TEMPLATE_TEMPLATE_PARM. 892150397Sobrien 892250397SobrienMon Jan 19 22:40:03 1998 Mark Mitchell <mmitchell@usa.net> 892350397Sobrien 892452284Sobrien * decl.c (start_decl): Don't allow duplicate definitions of static 892550397Sobrien data members. 892652284Sobrien 892750397Sobrien * call.c (build_user_type_conversion_1): Handle user-defined 892850397Sobrien template conversion operators correctly. 892952284Sobrien 893050397Sobrien * decl2.c (build_expr_from_tree): Issue an error message if the 893152284Sobrien object in a COMPONENT_REF is a TEMPLATE_DECL. 893250397Sobrien 893350397Sobrien * typeck.c (incomplete_type_error): Handle TEMPLATE_TYPE_PARMs. 893450397Sobrien 893552284Sobrien * class.c (is_local_class): New function. 893650397Sobrien * cp-tree.h (is_local_class): Declare it. 893750397Sobrien (last_tree): Likewise. 893850397Sobrien (begin_tree): Likewise. 893950397Sobrien (end_tree): Likewise. 894050397Sobrien (lookup_template_class): Change prototype. 894150397Sobrien * decl.c (cp_finish_decl): Check for NULL where necessary. 894250397Sobrien Consider FUNCTION_DECLS to declare objects with top-level binding, 894350397Sobrien when calling make_decl_rtl. 894452284Sobrien (grokdeclarator): Give members of local classes internal linkage. 894550397Sobrien (start_function): Remove declaration of last_tree. 894652284Sobrien (finish_function): Set flag_keep_inline_functions around call to 894750397Sobrien rest_of_compilation if we are processing a member function in a 894850397Sobrien local class. 894950397Sobrien (start_method): Call push_template_decl for member functions of 895050397Sobrien local classes in template functions. 895150397Sobrien * decl2.c (import_export_decl): Don't give external linkage to 895250397Sobrien instantiations of templates with internal linkage. 895350397Sobrien * parse.y (last_tree): Remove declaration. 895450397Sobrien (template_type): Pass extra parameter to lookup_template_class. 895550397Sobrien (self_template_type): Likewise. 895650397Sobrien (structsp): Move call to reset_specialization into left_curly. 895752284Sobrien (left_curly): Call reset_specialization, and begin_tree. 895850397Sobrien * pt.c (saved_trees): New variable. 895950397Sobrien (mangle_class_name_for_template): Change prototype. Use 896050397Sobrien additional function context to name local classes in templates 896150397Sobrien correctly. 896250397Sobrien (classtype_mangled_name): Pass the context. 896350397Sobrien (push_template_decl): Handle local classes and templates, and 896450397Sobrien member functions for such classes. 896550397Sobrien (convert_nontype_parameter): Fix handling of pointer-to-member 896650397Sobrien constants. 896718334Speter (lookup_template_class): Handle local classes in templates. 896850397Sobrien (tsubst): Likewise. Don't assume that template instantiations 896918334Speter have external linkage; pay attention to the template declaration. 897052284Sobrien (mark_decl_instantiated): Likewise. 897150397Sobrien (begin_tree): New function. 897218334Speter (end_tree): Likewise. 897350397Sobrien 897450397Sobrien * decl.c (xref_basetypes): Don't call complete_type for basetypes 897518334Speter that involve template parameters; that can lead to infinite 897650397Sobrien recursion unnecessarily. 897718334Speter 897850397Sobrien * pt.c (register_specialization): Do not register specializations 897950397Sobrien that aren't ready to be registered yet. 898018334Speter (check_explicit_specialization): Handle explicit specialization of 898150397Sobrien constructors and destructors. 898218334Speter (build_template_decl): New function. 898350397Sobrien (push_template_delc): Handle out-of-class specializations of 898418334Speter member templates. 898550397Sobrien 898650397Sobrien * pt.c (check_explicit_specialization): Set up the template 898718334Speter information before registering the specialization. 898852284Sobrien (coerce_template_parms): Fix thinko. 898918334Speter (tsubst): Handle specializations of member templates correctly. 899050397Sobrien 899150397Sobrien * class.c (finish_struct_methods): Remove calls to 899218334Speter check_explicit_specialization from here. 899350397Sobrien (finish_struct): And insert them here. 899418334Speter * cp-tree.h (perform_qualification_conversions): New function. 899550397Sobrien (perform_array_to_pointer_conversion): Likewise. 899652284Sobrien (begin_explicit_instantiation): Likewise. 899752284Sobrien (end_explicit_instantiation): Likewise. 899850397Sobrien (determine_specialization): Renamed from 899952284Sobrien determine_explicit_specialization. 900050397Sobrien (comp_template_parms): New function. 900150397Sobrien (processing_explicit_instantiation): New variable. 900250397Sobrien * cvt.c (perform_qualification_conversions): New function. 900350397Sobrien (perform_array_to_pointer_conversion): Likewise. 900450397Sobrien * decl.c (duplicate_decls): Don't consider template functions 900518334Speter alike unless they have the same parameters. Refine handling of 900650397Sobrien instantiation/specialization mismatches. 900750397Sobrien (start_decl): Don't call pushdecl for template specializations, 900850397Sobrien since they don't affect overloading. 900950397Sobrien (start_function): Likewise. 901050397Sobrien (grokfndecl): Call check_explicit_specialization a little later. 901150397Sobrien Don't call duplicate_decls for memberm template specializations. 901250397Sobrien (grokdeclarator): Don't update template_count for classes that are 901350397Sobrien themselves specializations. Remove use of `2' as parameter to 901450397Sobrien grokfndecl since that value isn't used. 901550397Sobrien * lex.c (cons_up_default_function): Save and restore 901650397Sobrien processing_explicit_instantiation around calls to grokfield. 901750397Sobrien * parse.y (finish_member_template_decl): New function. 901850397Sobrien (component_decl_1): Use it. 901950397Sobrien (fn.def2): Likewise. 902052284Sobrien (template_arg_list_opt): New nonterminal. 902150397Sobrien (template_type): Use it. 902250397Sobrien (self_template_type): Likewise. 902350397Sobrien (template_id): Likewise. 902452284Sobrien (object_template_id): Likewise. 902550397Sobrien (notype_template_declarator): Likwise. 902650397Sobrien (begin_explicit_instantiation): Likewise. 902750397Sobrien (end_explicit_instantiation): Likewise. 902852284Sobrien (explicit_instantiation): Use them. 902950397Sobrien * pt.c (coerce_template_parms): Add parameters. 903050397Sobrien (processing_explicit_instantiation): New variable. 903150397Sobrien (convert_nontype_parameter): New function. 903250397Sobrien (determine_overloaded_function): Likewise. 903350397Sobrien (begin_explicit_instantiation): Likewise. 903450397Sobrien (end_explicit_instantiation): Likewise. 903550397Sobrien (retrieve_specialization): Likewise. 903650397Sobrien (register_specialization): Likewise. 903750397Sobrien (processing_explicit_specialization): Removed. 903850397Sobrien (determine_specialization): Handle specializations of member 903950397Sobrien functions of template class instantiations. 904050397Sobrien (check_explicit_specialization): Refine to conform to standard. 904150397Sobrien (comp_template_parms): New function. 904252284Sobrien (coerce_template_parms): Call convert_nontype_parameter. 904350397Sobrien (tsubst): Refine handling of member templates. Use 904450397Sobrien register_specialization. 904550397Sobrien (instantiate_template): Use retrieve_specialization. 904652284Sobrien (do_decl_instantiation): Likewise. 904750397Sobrien (instantiate_decl): Likewise. 904850397Sobrien (type_unification): Improve handling of explict template 904950397Sobrien arguments. 905050397Sobrien * tree.c (mapcar): Return error_mark_node, rather than aborting, 905118334Speter on VAR_DECLS, FUNCTION_DECLS, and CONST_DECLS. 905250397Sobrien * typeck.c (build_unary_op): Call determine_specialization, rather 905318334Speter than determine_explicit_specialization. 905450397Sobrien 905550397SobrienMon Jan 19 13:18:51 1998 Jason Merrill <jason@yorick.cygnus.com> 905618334Speter 905750397Sobrien * cvt.c (build_up_reference): A TARGET_EXPR has side effects. 905850397Sobrien 905918334SpeterFri Jan 16 11:40:50 1998 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> 906050397Sobrien 906150397Sobrien * error.c (dump_decl): For enum tags, output the tag, not its value. 906252284Sobrien 906350397Sobrien1998-01-13 Brendan Kehoe <brendan@cygnus.com> 906452284Sobrien 906550397Sobrien * decl.c (init_decl_processing): Only call init_rtti_processing 906650397Sobrien FLAG_RTTI is set. 906750397Sobrien 906850397SobrienMon Jan 12 01:35:18 1998 Jason Merrill <jason@yorick.cygnus.com> 906950397Sobrien 907050397Sobrien * init.c (build_new_1): Split out from build_new. 907152284Sobrien (build_new): Just return a NEW_EXPR. 907250397Sobrien * expr.c (cplus_expand_expr): Handle NEW_EXPR. 907350397Sobrien 907450397Sobrien * decl2.c (get_temp_regvar): Tweak. 907550397Sobrien 907650397Sobrien * cp-tree.h (TREE_CALLS_NEW): Comment out. 907750397Sobrien * class.c (resolves_to_fixed_type_p): Remove use. 907850397Sobrien * method.c (build_opfncall): Likewise. 907950397Sobrien * call.c (build_new_op): Likewise. 908050397Sobrien 908150397SobrienWed Jan 7 23:47:13 1998 Jason Merrill <jason@yorick.cygnus.com> 908250397Sobrien 908350397Sobrien * exception.cc (__eh_alloc, __eh_free): New fns. 908450397Sobrien (__cp_push_exception, __cp_pop_exception): Use them. 908550397Sobrien (__uncatch_exception): Call terminate here if no exception. 908650397Sobrien * except.c (build_terminate_handler): New fn. 908750397Sobrien (expand_start_catch_block): Use it. 908850397Sobrien (expand_exception_blocks): Likewise. 908950397Sobrien (alloc_eh_object): New fn. 909050397Sobrien (expand_throw): Use it. Protect exception init with terminate. 909152284Sobrien * typeck.c (build_modify_expr): Remove code that ignores trivial 909250397Sobrien methods. 909350397Sobrien 909450397SobrienMon Dec 22 11:36:27 1997 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 909550397Sobrien 909652284Sobrien * call.c (add_builtin_candidate): Add default case in enumeration 909750397Sobrien switch. 909850397Sobrien (build_new_op): Likewise. 909952284Sobrien (convert_like): Likewise. 910050397Sobrien * cvt.c (build_expr_type_conversion): Likewise. 910150397Sobrien * tree.c (real_lvalue_p): Likewise. 910250397Sobrien (lvalue_p): Likewise. 910352284Sobrien (cp_tree_equal): Likewise. 910450397Sobrien * typeck.c (comptypes): Likewise. 910550397Sobrien (build_component_ref): Likewise. 910650397Sobrien (build_function_call_real): Likewise. 910718334Speter (build_binary_op_nodefault): Likewise. 910850397Sobrien (build_unary_op): Likewise. 910950397Sobrien (build_modify_expr): Likewise. 911050397Sobrien * typeck2.c (initializer_constant_valid_p): Likewise. 911150397Sobrien 911250397SobrienSun Dec 21 15:59:00 1997 Nick Clifton <nickc@cygnus.com> 911350397Sobrien 911450397Sobrien * decl2.c (lang_decode_option): Add support for -Wunknown-pragmas. 911518334Speter 911652284SobrienThu Dec 18 14:51:50 1997 Mark Mitchell <mmitchell@usa.net> 911752284Sobrien 911852284Sobrien * pt.c (coerce_template_parms): Make sure to digest_init if 911952284Sobrien possible. 912052284Sobrien 912150397Sobrien * decl.c (duplicate_decls): Make the newdecl virtual if the 912250397Sobrien olddecl was, just as is done with other attributes of olddecl. 912350397Sobrien 912450397SobrienThu Dec 18 14:43:19 1997 Jason Merrill <jason@yorick.cygnus.com> 912550397Sobrien 912650397Sobrien * typeck.c (unary_complex_lvalue): Ignore op0 when taking the 912750397Sobrien address of an OFFSET_REF. 912850397Sobrien 912952284Sobrien * cp-tree.def: Add AGGR_INIT_EXPR. 913050397Sobrien * error.c, tree.c, typeck.c: Replace uses of NEW_EXPR with 913150397Sobrien AGGR_INIT_EXPR where appropriate. 913250397Sobrien * expr.c (cplus_expand_expr): Likewise. Simplify. 913350397Sobrien 913450397Sobrien * decl2.c (finish_file): Remove call to register_exception_table. 913550397Sobrien 913650397SobrienWed Dec 17 17:08:52 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com> 913750397Sobrien 913850397Sobrien * pt.c (instantiate_class_template): Don't do injection when 913952284Sobrien processing_template_decl is true, as pollutes current_binding_level 914050397Sobrien for base classes. 914150397Sobrien 914250397SobrienWed Dec 17 21:17:39 1997 Peter Schmid <schmid@ltoi.iap.physik.tu-darmstadt.de> 914350397Sobrien 914450397Sobrien * pt.c (maybe_fold_nontype_arg): Add prototype. 914550397Sobrien 914650397SobrienTue Dec 16 10:31:20 1997 Jason Merrill <jason@yorick.cygnus.com> 914750397Sobrien 914850397Sobrien * tree.c (mapcar): Handle TRY_CATCH_EXPR et al. 914950397Sobrien * error.c (dump_expr): Likewise. 915052284Sobrien 915150397SobrienMon Dec 15 12:22:04 1997 Jason Merrill <jason@yorick.cygnus.com> 915250397Sobrien 915350397Sobrien * typeck.c (build_function_call_real): Remove "inline called before 915450397Sobrien definition" pedwarn. 915550397Sobrien 915650397Sobrien * pt.c (coerce_template_parms): Use maybe_fold_nontype_arg. 915750397Sobrien 915850397SobrienSun Dec 14 22:34:20 1997 Jason Merrill <jason@yorick.cygnus.com> 915950397Sobrien 916050397Sobrien * cvt.c (cp_convert_to_pointer): Fix base conversion of pm's. 916150397Sobrien 916250397Sobrien * pt.c (type_unification_real): Change __null to type void* with 916350397Sobrien a warning. 916450397Sobrien 916550397SobrienSun Dec 14 20:38:35 1997 Mark Mitchell <mmitchell@usa.net> 916650397Sobrien 916750397Sobrien * call.c (implicit_conversion): Don't call 916850397Sobrien build_user_type_conversion_1 with a NULL expr, since it will 916950397Sobrien crash. 917050397Sobrien 917150397Sobrien * pt.c (unify): Don't try to unify array bounds if either array is 917250397Sobrien unbounded. 917350397Sobrien 917452284SobrienFri Dec 12 16:09:14 1997 Jason Merrill <jason@yorick.cygnus.com> 917550397Sobrien 917650397Sobrien * errfn.c (cp_pedwarn, cp_pedwarn_at, cp_error_at, cp_warning_at): 917750397Sobrien Replace extern decls with casts. 917850397Sobrien 917952284Sobrien * decl.c (expand_start_early_try_stmts): Don't mess with a sequence. 918050397Sobrien Update last_parm_cleanup_insn. 918150397Sobrien (store_after_parms): Remove. 918250397Sobrien * cp-tree.h: Adjust. 918350397Sobrien 918418334SpeterThu Dec 11 22:18:37 1997 Jason Merrill <jason@yorick.cygnus.com> 918550397Sobrien 918618334Speter * decl2.c (comdat_linkage): Also set DECL_COMDAT. 918750397Sobrien (finish_file): Check DECL_COMDAT instead of weak|one_only. 918818334Speter (import_export_vtable): Use make_decl_one_only instead of 918950397Sobrien comdat_linkage for win32 tweak. 919018334Speter (import_export_decl): Likewise. 919152284Sobrien * pt.c (mark_decl_instantiated): Likewise. 919218334Speter 919350397Sobrien * decl2.c (finish_file): Lose handling of templates in pending_statics. 919418334Speter 919550397SobrienThu Dec 11 21:12:09 1997 Jason Merrill <jason@yorick.cygnus.com> 919650397Sobrien 919718334Speter * decl2.c (finish_file): Lose call to expand_builtin_throw. 919850397Sobrien * except.c (expand_builtin_throw): Remove. 919918334Speter * cp-tree.h: Remove ptr_ptr_type_node. 920050397Sobrien * decl.c: Likewise. 920150397Sobrien 920250397SobrienThu Dec 11 20:43:33 1997 Teemu Torma <tot@trema.com> 920318334Speter 920450397Sobrien * decl.c (ptr_ptr_type_node): Define. 920518334Speter (init_decl_processing): Initialize it. 920650397Sobrien * cp-tree.h: Declare it. 920750397Sobrien * exception.cc (__cp_exception_info): Use __get_eh_info. 920850397Sobrien (__cp_push_exception): Likewise. 920950397Sobrien (__cp_pop_exception): Likewise. 921018334Speter 921150397Sobrien From Scott Snyder <snyder@d0sgif.fnal.gov>: 921218334Speter * except.c (expand_builtin_throw): Use get_saved_pc_ref instead of 921350397Sobrien saved_pc. 921450397Sobrien (init_exception_processing): Removed saved_pc initialization. 921550397Sobrien 921650397SobrienWed Dec 10 11:04:45 1997 Jason Merrill <jason@yorick.cygnus.com> 921750397Sobrien 921850397Sobrien * pt.c (instantiate_decl): Defer all templates but inline functions. 921950397Sobrien 922050397SobrienMon Dec 8 23:17:13 1997 Jason Merrill <jason@yorick.cygnus.com> 922152284Sobrien 922250397Sobrien * init.c (expand_vec_init): Don't fold a list of parameters. 922318334Speter 922450397Sobrien * decl.c (copy_args_p): Handle copy elision for types with virtual 922552284Sobrien bases. 922650397Sobrien * call.c (build_over_call): Likewise. 922750397Sobrien 922850397SobrienSun Dec 7 22:38:12 1997 Mark Mitchell <mmitchell@usa.net> 922950397Sobrien 923050397Sobrien * pt.c (lookup_template_function): Copy the template arguments, 923150397Sobrien not just the list containing them, to the permanent obstack. 923250397Sobrien 923350397SobrienSun Dec 7 15:53:06 1997 Jason Merrill <jason@yorick.cygnus.com> 923450397Sobrien 923550397Sobrien * except.c (expand_start_catch_block): suspend_momentary for the 923650397Sobrien terminate handler. 923750397Sobrien 923850397Sobrien * error.c (dump_decl): Handle LOOKUP_EXPR. 923950397Sobrien 924050397SobrienSun Dec 7 15:45:07 1997 Mark Mitchell <mmitchell@usa.net> 924118334Speter 924250397Sobrien * rtti.c (build_dynamic_cast): Copy the cast-to type to the 924318334Speter permanent obstack if we are processing a template decl. 924450397Sobrien * typeck.c (build_static_cast): Likewise. 924518334Speter (build_const_cast): Likewise. 924650397Sobrien (build_reinterpret_cast): Likewise. 924718334Speter 924850397Sobrien * pt.c (coerce_template_parms): Coerce some expressions, even 924950397Sobrien when processing_template_decl. 925018334Speter 925150397SobrienSun Dec 7 01:46:33 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> 925250397Sobrien 925318334Speter * typeck.c (build_binary_op_nodefault, pointer_diff): Symmetric 925450397Sobrien handling of pointer difference expressions. 925518334Speter 925652284Sobrien * typeck.c (comp_target_types): Comparison of function/method types 925750397Sobrien is independent of nptrs. 925818334Speter 925950397SobrienSun Dec 7 01:40:27 1997 Mark Mitchell <mmitchell@usa.net> 926050397Sobrien 926150397Sobrien * pt.c (tsubst): Avoid creating pointer to reference and 926250397Sobrien reference to reference types. 926318334Speter 926450397SobrienSat Dec 6 01:29:37 1997 Jason Merrill <jason@yorick.cygnus.com> 926518334Speter 926650397Sobrien * parse.y (do_id): New nonterminal. 926718334Speter (template_id): Use it. 926850397Sobrien 926952284SobrienFri Dec 5 01:17:34 1997 Jason Merrill <jason@yorick.cygnus.com> 927052284Sobrien 927118334Speter * parse.y (template_id): do_identifier for PFUNCNAMEs, too. 927252284Sobrien * spew.c (yylex): Don't do_identifier here. 927318334Speter * decl2.c (build_expr_from_tree): Revert last change. 927450397Sobrien 927518334Speter * decl2.c (build_expr_from_tree): Expand the name for a method call. 927650397Sobrien * parse.y (object_template_id): Don't try to take the DECL_NAME. 927718334Speter 927850397SobrienWed Dec 3 20:02:39 1997 Jason Merrill <jason@yorick.cygnus.com> 927950397Sobrien 928018334Speter * init.c (build_new): Use a TARGET_EXPR instead of SAVE_EXPR for 928150397Sobrien alloc_expr. 928218334Speter * call.c (build_op_delete_call): Adjust. 928350397Sobrien 928450397Sobrien * except.c (expand_end_catch_block): Lose rethrow region. 928518334Speter (expand_start_catch_block): Likewise. 928650397Sobrien (expand_end_catch_block): Don't expand_leftover_cleanups. 928718334Speter 928850397SobrienWed Dec 3 13:24:04 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com> 928918334Speter 929050397Sobrien * pt.c (tsubst): Remove tree_cons call (places redundant info into 929118334Speter DECL_TEMPLATE_INSTANTIATION). 929252284Sobrien 929350397SobrienWed Dec 3 11:44:52 1997 Jason Merrill <jason@yorick.cygnus.com> 929418334Speter 929550397Sobrien * tree.c (is_overloaded_fn): Handle getting a fn template. 929618334Speter (really_overloaded_fn): Likewise. 929750397Sobrien * error.c (dump_decl): Handle TEMPLATE_ID_EXPRs better. 929850397Sobrien * pt.c (check_explicit_specialization): Tweak. 929952284Sobrien (determine_explicit_specialization): Tweak. 930018334Speter 930150397Sobrien * tree.c, cp-tree.h (get_target_expr): New fn. 930250397Sobrien 930318334SpeterWed Dec 3 08:47:27 1997 Paul Eggert <eggert@twinsun.com> 930450397Sobrien 930518334Speter * pt.c (check_explicit_specialization): Fix misspelling in 930652284Sobrien diagnostic: `preceeded'. 930750397Sobrien * typeck.c (get_delta_difference): Fix misspelling in diagnostic: 930818334Speter `conversiona'. 930950397Sobrien 931050397Sobrien1997-12-02 Mark Mitchell <mmitchell@usa.net> 931150397Sobrien 931250397Sobrien * pt.c (determine_explicit_specialization): Avoid an internal 931318334Speter error for bad specializations. 931450397Sobrien 931518334Speter * method.c (build_overload_value): Handle SCOPE_REF. 931650397Sobrien 931750397SobrienTue Dec 2 19:18:50 1997 Mike Stump <mrs@wrs.com> 931850397Sobrien 931952284Sobrien * class.c (prepare_fresh_vtable): Enable even more complex MI 932050397Sobrien vtable names. 932150397Sobrien 932218334SpeterTue Dec 2 01:37:19 1997 Jason Merrill <jason@yorick.cygnus.com> 932350397Sobrien 932418334Speter * exception.cc (__check_eh_spec): Optimize a bit. 932550397Sobrien 932618334Speter * exception.cc (__cp_pop_exception): Lose handler arg. 932750397Sobrien * except.c (do_pop_exception): Likewise. 932850397Sobrien (push_eh_cleanup): Let the cleanup mechanism supply the handler. 932950397Sobrien (expand_end_catch_block): Likewise. 933050397Sobrien 933118334SpeterFri Nov 28 01:58:14 1997 Jason Merrill <jason@yorick.cygnus.com> 933250397Sobrien 933352284Sobrien * pt.c (check_explicit_specialization): Complain about using a 933450397Sobrien template-id for a non-specialization. 933550397Sobrien 933650397SobrienFri Nov 28 12:35:19 1997 Scott Christley <scottc@net-community.com> 933750397Sobrien 933852284Sobrien * repo.c: Prototype rindex only if needed. 933952284Sobrien * xref.c: Likewise. 934018334Speter 934150397SobrienFri Nov 28 01:56:35 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> 934252284Sobrien 934350397Sobrien * error.c (dump_decl): Handle TEMPLATE_ID_EXPR. 934450397Sobrien 934518334SpeterThu Nov 27 00:59:46 1997 Jason Merrill <jason@yorick.cygnus.com> 934650397Sobrien 934718334Speter * typeck.c (build_const_cast): Handle references here instead of 934850397Sobrien handing off to convert_to_reference. 934918334Speter 935050397Sobrien * except.c: Lose Unexpected, SetTerminate, SetUnexpected, 935118334Speter TerminateFunctionCall. 935250397Sobrien (init_exception_processing): Likewise. Terminate et al are now 935318334Speter the fns, not ADDR_EXPRs. 935450397Sobrien (various): Lose redundant assemble_external calls. 935552284Sobrien (do_unwind): s/BuiltinReturnAddress/builtin_return_address_fndecl/. 935652284Sobrien 935718334Speter * cp-tree.h (struct lang_decl_flags): Add comdat. 935850397Sobrien (DECL_COMDAT): New macro. 935918334Speter * decl.c (duplicate_decls): Propagate it. 936050397Sobrien (cp_finish_decl): Handle it. 936150397Sobrien * decl2.c (import_export_decl): Just set DECL_COMDAT on VAR_DECLs. 936218334Speter 936350397Sobrien * class.c: Remove static pending_hard_virtuals. 936418334Speter (add_virtual_function): Take pointers to pending_virtuals 936550397Sobrien and pending_hard_virtuals. 936650397Sobrien (finish_struct_1): Pass them. Declare pending_hard_virtuals. 936718334Speter 936850397SobrienWed Nov 26 20:28:49 1997 Jason Merrill <jason@yorick.cygnus.com> 936918334Speter 937050397Sobrien * decl2.c (import_export_vtable): If we support one_only but not 937118334Speter weak symbols, mark instantiated template vtables one_only. 937250397Sobrien (import_export_decl): Likewise for tinfo functions. 937350397Sobrien (finish_vtable_vardecl): Also write out vtables from explicitly 937450397Sobrien instantiated template classes. 937550397Sobrien * pt.c (mark_class_instantiated): Revert last change. 937650397Sobrien 937718334Speter * except.c (expand_throw): Call mark_used on the destructor. 937850397Sobrien 937950397SobrienWed Nov 26 15:13:48 1997 Jeffrey A Law (law@cygnus.com) 938018334Speter 938150397Sobrien * lex.c (lang_init): Enable flag_exceptions by default if no 938218334Speter command line switch was specified. 938350397Sobrien 938450397Sobrien1997-11-26 Mark Mitchell <mmitchell@usa.net> 938518334Speter 938650397Sobrien * pt.c (unify): Handle `void' template parameters in 938750397Sobrien specializations. 938818334Speter 938950397SobrienWed Nov 26 01:11:24 1997 Jason Merrill <jason@yorick.cygnus.com> 939018334Speter 939150397Sobrien * rtti.c (build_dynamic_cast): Handle template case here. 939250397Sobrien (build_dynamic_cast_1): Not here. 939318334Speter 939450397Sobrien * typeck2.c (digest_init): Make copies where appropriate. 939518334Speter 939650397Sobrien * decl2.c (delete_sanity): resolve_offset_ref. 939750397Sobrien 939818334Speter * except.c: Call terminate without caching so many bits. 939950397Sobrien 940018334Speter * except.c (expand_start_catch_block): Fix catching a reference 940150397Sobrien to pointer. 940250397Sobrien 940350397SobrienTue Nov 25 11:28:21 1997 Jason Merrill <jason@yorick.cygnus.com> 940418334Speter 940550397Sobrien * init.c (build_new): Copy size to the saveable obstack. 940650397Sobrien 940718334Speter * init.c (build_new): Stick a CLEANUP_POINT_EXPR inside the 940850397Sobrien TRY_CATCH_EXPR for now. 940918334Speter 941050397SobrienMon Nov 24 12:15:55 1997 Jason Merrill <jason@yorick.cygnus.com> 941152284Sobrien 941252284Sobrien * typeck.c (mark_addressable): Don't assume a FUNCTION_DECL 941318334Speter has DECL_LANG_SPECIFIC. 941450397Sobrien 941550397Sobrien * exception.cc (struct cp_eh_info): Add handlers field. 941650397Sobrien (__cp_push_exception): Initialize it. 941718334Speter (__cp_pop_exception): Decrement it. Don't pop unless it's 0. 941850397Sobrien (__throw_bad_exception): Remove. 941918334Speter * except.c (call_eh_info): Add handlers field. 942050397Sobrien (get_eh_handlers): New fn. 942152284Sobrien (push_eh_cleanup): Increment handlers. 942218334Speter 942350397SobrienFri Nov 21 12:22:07 1997 Jason Merrill <jason@yorick.cygnus.com> 942418334Speter 942550397Sobrien * except.c (expand_start_eh_spec): Use the try/catch code. 942650397Sobrien (expand_end_eh_spec): Likewise. Call __check_eh_spec instead of 942750397Sobrien doing everything inline. 942850397Sobrien (init_exception_processing): throw_type_match now takes 942950397Sobrien const void pointers. 943018334Speter * exception.cc (__check_eh_spec): New fn. 943150397Sobrien * inc/exception: Neither terminate nor unexpected return. 943218334Speter * decl.c: Make const_ptr_type_node public. 943350397Sobrien * tinfo2.cc (__throw_type_match_rtti): Take the typeinfos constly. 943418334Speter 943550397Sobrien * except.c (expand_start_catch_block): We only need the rethrow 943650397Sobrien region for non-sjlj exceptions. 943750397Sobrien (expand_end_catch_block): Likewise. Use outer_context_label_stack. 943850397Sobrien 943918334SpeterThu Nov 20 14:40:17 1997 Jason Merrill <jason@yorick.cygnus.com> 944050397Sobrien 944118334Speter * Make-lang.in (CXX_LIB2FUNCS): Add new op new and op delete objs. 944250397Sobrien (various.o): Likewise. 944350397Sobrien * inc/new: Add placement deletes. Add throw specs for default new. 944418334Speter * new.cc (set_new_handler): Move here from libgcc2. 944550397Sobrien * new1.cc (new (nothrow)): Catch a bad_alloc thrown from the handler. 944618334Speter (new): Move from libgcc2. Throw bad_alloc. 944750397Sobrien * new2.cc: Move the rest of the op news and op deletes from libgcc2. 944818334Speter * decl.c (init_decl_processing): Update exception specs on new and 944950397Sobrien delete. 945050397Sobrien 945118334Speter * method.c (build_decl_overload_real): Don't mess with global 945250397Sobrien placement delete. 945318334Speter 945450397Sobrien * init.c (build_new): Check for null throw spec, not nothrow_t. 945518334Speter 945650397Sobrien * decl.c (duplicate_decls): Don't complain about different exceptions 945750397Sobrien from an internal declaration. 945850397Sobrien 945950397Sobrien * call.c (build_op_delete_call): Fix check for member fns again. 946018334Speter 946150397Sobrien * decl2.c (import_export_decl): Interface hackery affects 946218334Speter virtual synthesized methods. 946352284Sobrien 946450397SobrienWed Nov 19 18:24:14 1997 Jason Merrill <jason@yorick.cygnus.com> 946518334Speter 946650397Sobrien * decl.c (start_decl): Don't just complain about a mismatched 946718334Speter scope, fix it. 946850397Sobrien 946950397Sobrien * decl.c (make_implicit_typename): Handle case where t is not 947018334Speter actually from context. 947150397Sobrien * tree.c (get_type_decl): Lose identifier case. 947218334Speter * spew.c (yylex): Lose useless call to identifier_typedecl_value. 947352284Sobrien * parse.y (nonnested_type): Just use lookup_name. 947418334Speter (complex_type_name): Just use IDENTIFIER_GLOBAL_VALUE. 947550397Sobrien 947618334SpeterWed Nov 19 11:45:07 1997 Michael Tiemann <tiemann@axon.cygnus.com> 947750397Sobrien 947850397Sobrien * error.c (dump_function_name): Test DECL_LANG_SPECIFIC in case 947918334Speter T was built in C language context (for example, by 948050397Sobrien output_func_start_profiler). 948152284Sobrien 948250397SobrienWed Nov 19 10:39:27 1997 Jason Merrill <jason@yorick.cygnus.com> 948352284Sobrien 948450397Sobrien * decl.c (make_implicit_typename): New fn. 948550397Sobrien (lookup_name_real): Use it. Use current_class_type as the context. 948618334Speter 948750397SobrienMon Nov 17 23:42:03 1997 Bruno Haible <haible@ilog.fr> 948850397Sobrien 948950397Sobrien * pt.c (do_poplevel): Don't prohibit jumps into this contour. 949050397Sobrien 949150397SobrienMon Nov 17 02:01:28 1997 Jason Merrill <jason@yorick.cygnus.com> 949218334Speter 949350397Sobrien * friend.c (do_friend): Warn about non-template friends in templates. 949452284Sobrien 949550397Sobrien * call.c (build_op_delete_call): Fix handling of inherited delete. 949650397Sobrien 949718334Speter * search.c (dfs_record_inheritance): Ignore template type parms. 949850397Sobrien 949918334SpeterSat Nov 15 00:30:51 1997 Jason Merrill <jason@yorick.cygnus.com> 950050397Sobrien 950150397Sobrien * call.c (build_new_op): Fix copy error. 950250397Sobrien (build_op_new_call): New fn. 950352284Sobrien (build_op_delete_call): New fn. 950450397Sobrien * cp-tree.h: Declare them. 950550397Sobrien * init.c (build_new): Use them. Support placement delete. 950618334Speter (build_x_delete): Use build_op_delete_call. 950750397Sobrien (build_delete): Likewise. 950818334Speter * decl2.c (delete_sanity): Likewise. 950950397Sobrien (coerce_delete_type): Don't complain about placement delete. 951018334Speter 951150397SobrienThu Nov 13 01:52:36 1997 Jason Merrill <jason@yorick.cygnus.com> 951250397Sobrien 951318334Speter * call.c (build_new_function_call): Remove unused 'obj' parm. 951450397Sobrien * cp-tree.h, typeck.c: Adjust. 951518334Speter 951650397Sobrien * init.c (build_new): Make the cleanup last longer. 951750397Sobrien (expand_vec_init): Call do_pending_stack_adjust. 951818334Speter 951950397SobrienWed Nov 12 11:04:33 1997 Jason Merrill <jason@yorick.cygnus.com> 952018334Speter 952150397Sobrien * pt.c (do_type_instantiation): Fix typo. 952250397Sobrien (mark_class_instantiated): If we support one_only but not weak 952318334Speter symbols, don't mark this as known. 952450397Sobrien 952518334Speter * init.c (build_new): Handle vec delete in EH cleanup. 952650397Sobrien 952718334SpeterWed Nov 12 08:11:55 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com> 952850397Sobrien 952918334Speter * call.c (build_method_call): Call complete_type before checking 953050397Sobrien for destructor. 953150397Sobrien 953218334SpeterSun Nov 9 01:29:55 1997 Jim Wilson (wilson@cygnus.com) 953350397Sobrien 953418334Speter * decl.c (add_block_current_level): Delete. 953550397Sobrien * init.c (build_vec_delete_1): Delete build_block and 953618334Speter add_block_current_level calls. 953750397Sobrien 953852284SobrienWed Nov 12 00:48:16 1997 Jason Merrill <jason@yorick.cygnus.com> 953918334Speter 954050397Sobrien * init.c (build_new): Handle freeing allocated memory when the 954118334Speter constructor throws. 954250397Sobrien 954350397Sobrien * call.c (build_new_method_call): Fix flags arg. 954418334Speter 954550397Sobrien * pt.c (do_type_instantiation): Don't try to instantiate 954650397Sobrien member templates. 954750397Sobrien (mark_decl_instantiated): If we support one_only but not 954850397Sobrien weak symbols, mark this one_only. 954950397Sobrien * decl2.c (import_export_vtable): Don't defer handling of vtables 955050397Sobrien if MULTIPLE_SYMBOL_SPACES. 955150397Sobrien 955218334SpeterTue Nov 11 12:02:12 1997 Jason Merrill <jason@yorick.cygnus.com> 955350397Sobrien 955418334Speter * except.c (expand_end_catch_block): Lose call to __sjpopnthrow. 955550397Sobrien 955650397SobrienTue Nov 11 02:53:44 1997 Jason Merrill <jason@lasher.cygnus.com> 955750397Sobrien 955850397Sobrien * except.c (do_pop_exception): Return a value. 955952284Sobrien 956050397SobrienMon Nov 10 20:25:31 1997 Jason Merrill <jason@yorick.cygnus.com> 956150397Sobrien 956250397Sobrien * call.c (build_new_method_call): Handle getting a 956350397Sobrien TEMPLATE_ID_EXPR around a TEMPLATE_DECL. Don't look for a field 956418334Speter if we got template parms. 956550397Sobrien * typeck.c (build_x_function_call): Remember the TEMPLATE_ID_EXPR, 956652284Sobrien not just the args. 956750397Sobrien * decl2.c (build_expr_from_tree): Tweak last change. 956818334Speter * pt.c (tsubst_copy): Use get_first_fn instead of TREE_VALUE. 956950397Sobrien (maybe_fold_nontype_arg): Split out from tsubst_copy. 957018334Speter * tree.c (get_first_fn): Just return a TEMPLATE_ID_EXPR. 957150397Sobrien 957250397SobrienMon Nov 10 20:08:38 1997 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu> 957350397Sobrien 957450397Sobrien * pt.c (tsubst_copy): Handle explicit template arguments in 957550397Sobrien function calls. 957650397Sobrien * typeck.c (build_x_function_call): Likewise. 957750397Sobrien * decl2.c (build_expr_from_tree): Lookup function name if it 957850397Sobrien hasn't been done. 957950397Sobrien 958018334Speter * pt.c (tsubst): Instantiate template functions properly when 958152284Sobrien template parameter does not appear in function arguments and return 958250397Sobrien type. 958318334Speter (comp_template_args): Handle member templates required by tsubst. 958450397Sobrien 958518334SpeterMon Nov 10 20:08:38 1997 Jason Merrill <jason@yorick.cygnus.com> 958650397Sobrien 958750397Sobrien * decl.c (grokdeclarator): Tweak conditions for pedwarn in 958818334Speter previous change. 958950397Sobrien 959018334SpeterMon Nov 10 20:08:29 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> 959150397Sobrien 959250397Sobrien * pt.c (coerce_template_parms): Tweak error message. 959318334Speter 959450397Sobrien * decl.c (grokdeclarator): If -Wreturn-type, warn everytime a 959518334Speter return type defaults to `int', even if there are storage-class 959652284Sobrien specifiers. 959750397Sobrien 959818334SpeterMon Nov 10 03:04:20 1997 Jason Merrill <jason@yorick.cygnus.com> 959950397Sobrien 960052284Sobrien Complete nested exception support. 960150397Sobrien * except.c (do_pop_exception): Split out... 960252284Sobrien (push_eh_cleanup): From here. Handle the EH region by hand. 960350397Sobrien (expand_start_catch_block): Add a new level for the catch parm. 960450397Sobrien Move the rethrow region outside the two cleanup regions. 960518334Speter Protect the initializer for the catch parm with terminate. 960650397Sobrien (expand_end_catch_block): Likewise. End the region for the eh_cleanup. 960718334Speter * exception.cc (__cp_pop_exception): Now takes two parms. Handle 960850397Sobrien popping off the middle of the stack. 960950397Sobrien * tree.c (lvalue_p, real_lvalue_p): Handle TRY_CATCH_EXPR, 961050397Sobrien WITH_CLEANUP_EXPR, and UNSAVE_EXPR. 961118334Speter (build_cplus_new): Only wrap CALL_EXPRs. 961250397Sobrien * init.c (expand_default_init): Handle a TRY_CATCH_EXPR around 961318334Speter the constructor call. 961450397Sobrien 961550397SobrienSun Nov 9 18:00:26 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 961618334Speter 961752284Sobrien * Make-lang.in (c++.distdir): Make inc subdirectory. 961818334Speter 961950397SobrienFri Nov 7 11:57:28 1997 Jason Merrill <jason@yorick.cygnus.com> 962018334Speter 962150397Sobrien * decl2.c (finish_file): Put back some code. 962218334Speter 962350397SobrienThu Nov 6 11:28:14 1997 Jason Merrill <jason@yorick.cygnus.com> 962418334Speter 962550397Sobrien * decl2.c (finish_file): Remove redundant code. 962618334Speter * method.c (emit_thunk): Don't let the backend defer generic thunks. 962750397Sobrien 962818334SpeterWed Nov 5 23:52:50 1997 Jason Merrill <jason@yorick.cygnus.com> 962950397Sobrien 963018334Speter * except.c (call_eh_info): Split out... 963150397Sobrien (push_eh_info): From here. 963250397Sobrien (expand_builtin_throw): Use it. 963350397Sobrien (expand_start_catch_block): Move region start back. 963450397Sobrien 963550397SobrienTue Nov 4 13:45:10 1997 Doug Evans <devans@canuck.cygnus.com> 963650397Sobrien 963750397Sobrien * lex.c (MULTIBYTE_CHARS): #undef if cross compiling. 963850397Sobrien (real_yylex): Record wide strings using target endianness, not host. 963950397Sobrien 964018334Speter1997-11-03 Brendan Kehoe <brendan@lisa.cygnus.com> 964150397Sobrien 964218334Speter * repo.c (rindex): Add decl unconditionally. 964350397Sobrien (get_base_filename, open_repo_file): Don't cast rindex. 964450397Sobrien * xref.c (rindex): Add decl unconditionally. 964518334Speter (index): Remove unused decl. 964650397Sobrien (open_xref_file): Don't cast rindex. 964750397Sobrien 964818334SpeterSun Nov 2 15:04:12 1997 Jason Merrill <jason@yorick.cygnus.com> 964950397Sobrien 965018334Speter * class.c (build_vbase_path): Propagate the result type properly. 965150397Sobrien 965252284Sobrien1997-11-01 Brendan Kehoe <brendan@lisa.cygnus.com> 965350397Sobrien 965450397Sobrien * except.c (expand_builtin_throw) [!DWARF2_UNWIND_INFO]: Replace 965550397Sobrien remaining use of saved_throw_type with a call to get_eh_type. 965650397Sobrien 965750397Sobrien1997-10-31 Brendan Kehoe <brendan@lisa.cygnus.com> 965850397Sobrien 965950397Sobrien * lex.c (FILE_NAME_NONDIRECTORY): Delete macro. 966052284Sobrien (file_name_nondirectory): New function, doing the same as the macro. 966150397Sobrien (set_typedecl_interface_info): Use it instead of the macro. 966250397Sobrien (check_newline): Likewise. 966350397Sobrien (handle_cp_pragma): Likewise. 966450397Sobrien 966550397Sobrien * repo.c (get_base_filename): Cast result of rindex to char*. 966650397Sobrien (open_repo_file): Likewise. 966750397Sobrien * xref.c (open_xref_file): Likewise. 966850397Sobrien * error.c (dump_char): Make its arg int, not char. 966950397Sobrien 967050397Sobrien * except.c (push_eh_info): Pass the number of fields - 1 down, not 967150397Sobrien the exact number of fields. 967250397Sobrien 967350397SobrienFri Oct 31 01:47:57 1997 Jason Merrill <jason@yorick.cygnus.com> 967450397Sobrien 967550397Sobrien Support for nested exceptions. 967650397Sobrien * tinfo2.cc (__is_pointer): New fn. 967750397Sobrien * exception.cc (struct cp_eh_info): Define. 967850397Sobrien (__cp_exception_info, __uncatch_exception): New fns. 967950397Sobrien (__cp_push_exception, __cp_pop_exception): New fns. 968050397Sobrien * except.c: Lose saved_throw_{type,value,cleanup,in_catch}. 968150397Sobrien Lose empty_fndecl. 968250397Sobrien (init_exception_processing): Likewise. __eh_pc is now external. 968350397Sobrien (push_eh_info): New fn. 968450397Sobrien (get_eh_{info,value,type,caught}): New fns. 968550397Sobrien (push_eh_cleanup): Just call __cp_pop_exception. 968650397Sobrien (expand_start_catch_block): Use push_eh_info. Start the eh region 968750397Sobrien sooner. 968850397Sobrien (expand_end_eh_spec): Use push_eh_info. 968950397Sobrien (expand_throw): Call __cp_push_exception to set up the exception info. 969050397Sobrien Just pass the destructor or 0 as the cleanup. Call __uncatch_exception 969150397Sobrien when we rethrow. 969250397Sobrien (expand_builtin_throw): Don't refer to empty_fndecl. 969352284Sobrien 969452284SobrienThu Oct 23 02:01:30 1997 Jason Merrill <jason@yorick.cygnus.com> 969550397Sobrien 969652284Sobrien * pt.c (instantiate_decl): SET_DECL_IMPLICIT_INSTANTIATION on new decl. 969750397Sobrien 969850397Sobrien1997-10-22 Brendan Kehoe <brendan@cygnus.com> 969950397Sobrien 970050397Sobrien * method.c (build_template_parm_names, build_decl_overload_real): 970150397Sobrien Add static to definitions. 970252284Sobrien * pt.c (add_to_template_args, note_template_header, 970350397Sobrien processing_explicit_specialization, type_unification_real): Likewise. 970452284Sobrien ({determine,check}_explicit_specialization): Use a single string for 970550397Sobrien error messages. 970650397Sobrien 970752284SobrienMon Oct 20 12:06:34 1997 Jason Merrill <jason@yorick.cygnus.com> 970850397Sobrien 970950397Sobrien * except.c (expand_exception_blocks): Call do_pending_stack_adjust. 971052284Sobrien (expand_end_catch_block): Likewise. 971152284Sobrien (expand_end_eh_spec): Likewise. 971218334Speter 971350397SobrienMon Oct 20 11:44:20 1997 Mark Mitchell <mmitchell@usa.net> 971418334Speter 971550397Sobrien * decl.c (duplicate_decls): Handle template specializations 971618334Speter correctly. 971750397Sobrien * error.c (dump_function_name): Fix printing of specializations of 971852284Sobrien member functions that are not member templates. 971918334Speter * cp-tree.h (processing_specialization): Make global. 972050397Sobrien * pt.c (processing_specialization): Likewise. 972118334Speter * lex.c (cons_up_default_function): Save and restore 972250397Sobrien processing_specialization to avoid confusion. 972318334Speter 972450397SobrienMon Oct 20 10:52:22 1997 Jason Merrill <jason@yorick.cygnus.com> 972550397Sobrien 972650397Sobrien * decl.c (init_decl_processing): Give null_node unknown* type. 972718334Speter * typeck.c (comp_target_types): Handle UNKNOWN_TYPE. 972850397Sobrien (common_type): Likewise. 972918334Speter * error.c (args_as_string): Recognize null_node. 973050397Sobrien 973150397SobrienSun Oct 19 09:13:01 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 973250397Sobrien 973350397Sobrien * typeck.c (rationalize_conditional_expr): Handle {MIN,MAX}_EXPR. 973450397Sobrien (unary_complex_lvalue): Call it for {MIN,MAX}_EXPR. 973550397Sobrien 973650397Sobrien * decl.c (init_decl_processing): Call using_eh_for_cleanups. 973750397Sobrien 973850397Sobrien * Make-lang.in (g++): Include prefix.o. 973952284Sobrien 974050397SobrienThu Oct 16 15:31:09 1997 Judy Goldberg <judygold@sanwafp.com> 974150397Sobrien 974252284Sobrien * pt.c (determine_explicit_specialization): Initialize "dummy" 974350397Sobrien to keep Purify quiet. 974418334Speter 974550397SobrienThu Oct 16 00:14:48 1997 Jason Merrill <jason@yorick.cygnus.com> 974618334Speter 974750397Sobrien * method.c (build_overload_value): Handle TEMPLATE_CONST_PARMs here. 974818334Speter (build_overload_int): Not here. 974950397Sobrien 975018334SpeterWed Oct 15 00:35:28 1997 Mike Stump <mrs@wrs.com> 975150397Sobrien 975218334Speter * class.c (build_type_pathname): Remove. 975350397Sobrien (prepare_fresh_vtable): Fix problem with complex MI vtable names. 975418334Speter 975550397Sobrien1997-10-14 Brendan Kehoe <brendan@lisa.cygnus.com> 975650397Sobrien 975718334Speter * parse.y (unary_expr): Give a pedwarn if someone tries to use the 975850397Sobrien &&label GNU extension. 975918334Speter 976050397SobrienTue Oct 14 12:01:00 1997 Mark Mitchell <mmitchell@usa.net> 976150397Sobrien 976250397Sobrien * decl.c (pushtag): Unset DECL_ASSEMBLER_NAME before setting it, 976350397Sobrien so as to avoid incorrect manglings. 976418334Speter * method.c (build_decl_overload_real): Don't mangle return types 976550397Sobrien for constructors. 976618334Speter 976750397SobrienTue Oct 14 11:46:14 1997 Jason Merrill <jason@yorick.cygnus.com> 976850397Sobrien 976918334Speter * cp-tree.h (scratchalloc, build_scratch_list, make_scratch_vec, 977050397Sobrien scratch_tree_cons): Define as macros for now. 977118334Speter * call.c, class.c, cvt.c, decl.c, decl2.c, except.c, expr.c, init.c, 977250397Sobrien lex.c, method.c, parse.y, pt.c, rtti.c, search.c, tree.c, typeck.c, 977350397Sobrien typeck2.c: Use them and the expression_obstack variants. 977450397Sobrien 977550397SobrienMon Oct 13 17:41:26 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com> 977650397Sobrien 977718334Speter * decl.c (store_return_init): Allow classes with explicit ctors to 977850397Sobrien be used with the named return values extension. 977918334Speter 978050397SobrienFri Oct 10 12:21:11 1997 Jason Merrill <jason@yorick.cygnus.com> 978118334Speter 978250397Sobrien * pt.c (instantiate_decl): Fix previous change. 978318334Speter 978450397SobrienThu Oct 9 12:08:21 1997 Jason Merrill <jason@yorick.cygnus.com> 978550397Sobrien 978618334Speter * pt.c (tsubst): Fix thinko. 978750397Sobrien (instantiate_decl): Really use the original template. 978818334Speter 978950397Sobrien * call.c (build_new_method_call): Use simple constructor_name for 979050397Sobrien error messages. 979150397Sobrien 979250397SobrienWed Oct 8 22:44:42 1997 Jeffrey A Law <law@cygnus.com> 979350397Sobrien 979418334Speter * method.c (build_underscore_int): Don't use ANSI specific 979550397Sobrien features. 979650397Sobrien 979750397SobrienWed Oct 8 00:18:22 1997 Jason Merrill <jason@yorick.cygnus.com> 979850397Sobrien 979918334Speter * decl2.c (finish_prevtable_vardecl): Check DECL_REALLY_EXTERN 980050397Sobrien for our key method; it might have been inlined by -O3. 980150397Sobrien 980218334SpeterTue Oct 7 23:00:12 1997 Mark Mitchell <mmitchell@usa.net> 980350397Sobrien 980418334Speter * decl.c (make_typename_type): Do not try to call lookup_field for 980550397Sobrien non-aggregate types. 980650397Sobrien 980750397SobrienTue Oct 7 22:52:10 1997 Jason Merrill <jason@yorick.cygnus.com> 980850397Sobrien 980950397Sobrien * typeck.c (build_reinterpret_cast): Tweak. 981050397Sobrien 981152284SobrienTue Oct 7 22:45:31 1997 Alexandre Oliva <oliva@dcc.unicamp.br> 981250397Sobrien 981350397Sobrien * typeck.c (build_reinterpret_cast): Converting a void pointer 981450397Sobrien to function pointer with a reinterpret_cast produces a warning 981550397Sobrien if -pedantic is issued. 981650397Sobrien 981750397SobrienTue Oct 7 22:43:43 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> 981850397Sobrien 981950397Sobrien * typeck.c (c_expand_return): Don't warn about returning a 982050397Sobrien reference-type variable as a reference. 982150397Sobrien 982250397SobrienTue Oct 7 21:11:22 1997 Jason Merrill <jason@yorick.cygnus.com> 982318334Speter 982450397Sobrien * method.c (build_static_name): Fix typo. 982518334Speter 982650397Sobrien1997-10-07 Brendan Kehoe <brendan@lisa.cygnus.com> 982718334Speter 982850397Sobrien * decl.c (duplicate_decls): Make sure DECL_LANG_SPECIFIC is set on 982918334Speter OLDDECL before we try to do DECL_USE_TEMPLATE. 983050397Sobrien 983150397SobrienTue Oct 7 00:48:36 1997 Jason Merrill <jason@yorick.cygnus.com> 983250397Sobrien 983350397Sobrien * decl.c (duplicate_decls): Don't warn about template instances. 983450397Sobrien 983550397Sobrien * typeck.c (mark_addressable): Lose ancient code that unsets 983618334Speter DECL_EXTERNAL. 983750397Sobrien 983818334Speter * pt.c (do_decl_instantiation): Lose support for instantiating 983952284Sobrien non-templates. 984050397Sobrien 984150397Sobrien * call.c (build_new_function_call): Fix handling of null explicit 984218334Speter template args. 984350397Sobrien (build_new_method_call): Likewise. 984418334Speter 984550397SobrienMon Oct 6 23:44:34 1997 Mark Mitchell <mmitchell@usa.net> 984652284Sobrien 984750397Sobrien * method.c (build_underscore_int): Fix typo. 984850397Sobrien 984950397Sobrien1997-10-06 Brendan Kehoe <brendan@lisa.cygnus.com> 985050397Sobrien 985150397Sobrien * tree.c (print_lang_statistics): #if 0 call to 985250397Sobrien print_inline_obstack_statistics until its definition is checked in. 985352284Sobrien 985450397SobrienMon Oct 6 09:27:29 1997 Jason Merrill <jason@yorick.cygnus.com> 985518334Speter 985650397Sobrien * decl2.c (finish_file): Move dump_tree_statistics to end. 985750397Sobrien 985850397Sobrien * pt.c (instantiate_decl): Look for the original template. 985950397Sobrien (tsubst): Set DECL_IMPLICIT_INSTANTIATION on partial instantiations 986018334Speter of member templates. 986150397Sobrien 986218334SpeterWed Oct 1 08:41:38 1997 Jason Merrill <jason@yorick.cygnus.com> 986350397Sobrien 986450397Sobrien * Makefile.in (g++FAQ.*): New rules. 986518334Speter (CONFLICTS): Update. 986650397Sobrien * g++FAQ.texi: Moved from libg++. 986718334Speter 986850397Sobrien * parse.y (PFUNCNAME): Only specify the type once. 986918334Speter 987052284Sobrien1997-10-01 Brendan Kehoe <brendan@lasher.cygnus.com> 987118334Speter 987250397Sobrien * lex.c (real_yylex): Clean up the code to fully behave the way 987350397Sobrien the c-lex.c parser does for complex and real numbers. 987418334Speter 987550397SobrienTue Sep 30 08:51:36 1997 Jason Merrill <jason@yorick.cygnus.com> 987618334Speter 987750397Sobrien * method.c (build_decl_overload_real): Reformat. 987850397Sobrien 987918334SpeterTue Sep 30 00:18:26 1997 Jason Merrill <jason@yorick.cygnus.com> 988050397Sobrien 988118334Speter * method.c (synthesize_method): If at_eof, determine our linkage. 988250397Sobrien 988350397Sobrien1997-09-29 Paul Eggert <eggert@twinsun.com> 988418334Speter 988550397Sobrien * lex.c (real_yylex): Treat `$' just like `_', except issue a 988618334Speter diagnostic if !dollars_in_ident or if pedantic. 988750397Sobrien 988850397Sobrien * lang-specs.h (@c++): -ansi no longer implies -$. 988918334Speter 989050397Sobrien * decl2.c (lang_decode_option): 989118334Speter -traditional and -ansi now do not mess with 989250397Sobrien dollars_in_ident. 989350397Sobrien 989450397SobrienMon Sep 29 19:57:51 1997 H.J. Lu <hjl@gnu.ai.mit.edu> 989550397Sobrien 989652284Sobrien * Makefile.in (parse.o, decl.o): Also depend on 989750397Sobrien $(srcdir)/../except.h $(srcdir)/../output.h. 989818334Speter (decl2.o): Also depend on $(srcdir)/../expr.h ../insn-codes.h 989950397Sobrien $(srcdir)/../except.h $(srcdir)/../output.h. 990050397Sobrien (typeck.o, init.o): Also depend on $(srcdir)/../expr.h 990152284Sobrien ../insn-codes.h. 990250397Sobrien 990350397Sobrien * call.c, cp-tree.h, decl.c, tree.c: Finish prototyping. 990418334Speter 990550397Sobrien * expr.c (cplus_expand_expr): Make it static. 990618334Speter 990750397Sobrien * decl2.c, init.c, typeck.c: Include "expr.h". 990852284Sobrien (expand_expr): Use proper values when calling the function. 990918334Speter 991050397SobrienMon Sep 29 11:05:54 1997 Alexandre Oliva <oliva@dcc.unicamp.br> 991118334Speter 991250397Sobrien * lang-options.h: New -Wold-style-cast flag. 991318334Speter * cp-tree.h (warn_old_style_cast): New variable. 991450397Sobrien * decl2.c (warn_old_style_cast): Likewise. 991518334Speter (lang_decode_option): Support -Wold-style-cast. 991650397Sobrien (reparse_absdcl_as_casts): Produce old-style-cast warning. 991750397Sobrien 991818334SpeterMon Sep 29 09:20:53 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com> 991950397Sobrien 992050397Sobrien * decl.c (cp_finish_decl): Allow expand_aggr_init to set 992118334Speter TREE_USED, reset value based on already_used. 992252284Sobrien 992318334Speter * init.c (expand_member_init): Revert change. 992450397Sobrien 992550397SobrienMon Sep 29 08:57:53 1997 Jason Merrill <jason@yorick.cygnus.com> 992618334Speter 992750397Sobrien * cp-tree.h, decl.c, decl2.c, pt.c: 992818334Speter Lose DECL_C_STATIC and DECL_PUBLIC. Don't pretend statics are public. 992950397Sobrien 993050397Sobrien * decl2.c (lang_decode_option): Add missing ;. 993118334Speter 993250397SobrienSat Sep 27 16:22:48 1997 Jason Merrill <jason@yorick.cygnus.com> 993318334Speter 993450397Sobrien * friend.c (do_friend): Disable injection for all template-derived 993550397Sobrien decls. 993618334Speter * decl2.c (lang_decode_option): Handle -fguiding-decls. 993750397Sobrien * parse.y (notype_template_declarator): New nonterminal. 993818334Speter (direct_notype_declarator): Use it. 993950397Sobrien (complex_direct_notype_declarator): Likewise. 994018334Speter (object_template_id): Accept any kind of identifier after TEMPLATE. 994150397Sobrien (notype_qualified_id): Don't add template declarators here. 994218334Speter 994352284SobrienSat Sep 27 16:21:58 1997 Mark Mitchell <mmitchell@usa.net> 994450397Sobrien 994552284Sobrien * call.c (add_template_candidate): Add explicit_targs parameter. 994618334Speter (build_scoped_method_call): Use it. 994750397Sobrien (build_overload_call_real): Likewise. 994818334Speter (build_user_type_conversion_1): Likewise. 994950397Sobrien (build_new_function_call): Likewise. 995050397Sobrien (build_object_call): Likewise. 995118334Speter (build_new_op): Likewise. 995250397Sobrien (build_new_method_call): Likewise. 995318334Speter (build_new_function_call): Handle TEMPLATE_ID_EXPR. 995450397Sobrien (build_new_method_call): Likewise. 995518334Speter 995650397Sobrien * class.c (finish_struct_methods): Add specialization pass to 995718334Speter determine which methods were specializing which other methods. 995850397Sobrien (instantiate_type): Handle TEMPLATE_ID_EXPR. 995950397Sobrien 996018334Speter * cp-tree.def (TEMPLATE_ID_EXPR): New tree code. 996150397Sobrien 996218334Speter * cp-tree.h (name_mangling_version): New variable. 996350397Sobrien (flag_guiding_decls): Likewise. 996418334Speter (build_template_decl_overload): New function. 996550397Sobrien (begin_specialization): Likewise. 996650397Sobrien (reset_specialization): Likewise. 996718334Speter (end_specialization): Likewise. 996850397Sobrien (determine_explicit_specialization): Likewise. 996950397Sobrien (check_explicit_specialization): Likewise. 997018334Speter (lookup_template_function): Likewise. 997150397Sobrien (fn_type_unification): Add explicit_targs parameter. 997252284Sobrien (type_unification): Likewise. 997350397Sobrien 997418334Speter * decl.c (duplicate_decls): Add smarts for explicit 997550397Sobrien specializations. 997618334Speter (grokdeclarator): Handle TEMPLATE_ID_EXPR, and function 997750397Sobrien specializations. 997818334Speter (grokfndecl): Call check_explicit_specialization. 997950397Sobrien 998018334Speter * decl2.c (lang_decode_option): Handle -fname-mangling-version. 998150397Sobrien (build_expr_from_tree): Handle TEMPLATE_ID_EXPR. 998250397Sobrien (check_classfn): Handle specializations. 998318334Speter 998450397Sobrien * error.c (dump_function_name): Print specialization arguments. 998518334Speter 998650397Sobrien * friend.c (do_friend): Don't call pushdecl for template 998718334Speter instantiations. 998850397Sobrien 998950397Sobrien * init.c (build_member_call): Handle TEMPLATE_ID_EXPR. 999050397Sobrien 999118334Speter * lang-options.h: Add -fname-mangling-version, -fguiding-decls, 999250397Sobrien and -fno-guiding-decls. 999318334Speter 999450397Sobrien * lex.c (identifier_type): Return PFUNCNAME for template function 999550397Sobrien names. 999650397Sobrien 999718334Speter * method.c (build_decl_overload_real): New function. 999850397Sobrien (build_template_parm_names): New function. 999918334Speter (build_overload_identifier): Use it. 1000050397Sobrien (build_underscore_int): New function. 1000118334Speter (build_overload_int): Use it. Add levels for template 1000250397Sobrien parameters. 1000350397Sobrien (build_overload_name): Likewise. Also, handle TYPENAME_TYPEs. 1000418334Speter (build_overload_nested_names): Handle template type parameters. 1000550397Sobrien (build_template_decl_overload): New function. 1000618334Speter 1000750397Sobrien * parse.y (YYSTYPE): New ntype member. 1000818334Speter (nested_name_specifier): Use it. 1000950397Sobrien (nested_name_specifier_1): Likewise. 1001018334Speter (PFUNCNAME): New token. 1001150397Sobrien (template_id, object_template_id): New non-terminals. 1001218334Speter (template_parm_list): Note specializations. 1001350397Sobrien (template_def): Likewise. 1001418334Speter (structsp): Likewise. 1001550397Sobrien (fn.def2): Handle member template specializations. 1001650397Sobrien (component_decl_1): Likewise. 1001718334Speter (direct_notype_declarator): Handle template-ids. 1001850397Sobrien (component_decl_1): Likewise. 1001918334Speter (direct_notype_declarator): Handle template-ids. 1002050397Sobrien (primary): Handle TEMPLATE_ID_EXPR, and template-ids. 1002150397Sobrien 1002250397Sobrien * pt.c (processing_specializations): New variable. 1002318334Speter (template_header_count): Likewise. 1002452284Sobrien (type_unification_real): New function. 1002518334Speter (processing_explicit_specialization): Likewise. 1002650397Sobrien (note_template_header): Likewise. 1002750397Sobrien (is_member_template): Handle specializations. 1002850397Sobrien (end_template_decl): Call reset_specialization. 1002950397Sobrien (push_template_decl): Handle member template specializations. 1003050397Sobrien (tsubst): Likewise. 1003150397Sobrien (tsubst_copy): Handle TEMPLATE_ID_EXPR. 1003218334Speter (instantiate_template): Handle specializations. 1003350397Sobrien (instantiate_decl): Likewise. 1003418334Speter (fn_type_unification): Handle explicit_targs. 1003552284Sobrien (type_unification): Likewise. Allow incomplete unification 1003618334Speter without an error message, if allow_incomplete. 1003750397Sobrien (get_bindings): Use new calling sequence for fn_type_unification. 1003850397Sobrien 1003918334Speter * spew.c (yylex): Handle PFUNCNAME. 1004050397Sobrien 1004118334Speter * tree.c (is_overloaded_fn): Handle TEMPLATE_ID_EXPR. 1004252284Sobrien (really_overloaded_fn): Likewise. 1004352284Sobrien (get_first_fn): Handle function templates. 1004452284Sobrien 1004552284Sobrien * typeck.c (build_x_function_call): Use really_overloaded_fn. 1004652284Sobrien Handle TEMPLATE_ID_EXPR. 1004718334Speter (build_x_unary_op): Likewise. 1004850397Sobrien (build_unary_op): Likewise. 1004918334Speter (mark_addressable): Templates whose address is taken are marked 1005050397Sobrien as used. 1005152284Sobrien 1005218334Speter1997-09-25 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> 1005350397Sobrien 1005452284Sobrien * decl.c (init_decl_processing): Declare __builtin_constant_p as 1005550397Sobrien accepting any kind of type, not only int. 1005618334Speter 1005750397SobrienFri Sep 26 00:22:56 1997 Jason Merrill <jason@yorick.cygnus.com> 1005852284Sobrien 1005918334Speter * search.c (get_matching_virtual): Notice virtual bases when sorrying 1006050397Sobrien about covariant returns. 1006118334Speter 1006250397Sobrien * parse.y (member_init): Also imply typename here. Remove ancient 1006318334Speter extension for initializing base members. 1006450397Sobrien 1006552284SobrienThu Sep 25 11:11:13 1997 Jason Merrill <jason@yorick.cygnus.com> 1006650397Sobrien 1006750397Sobrien Handle multi-level typenames and implicit typename in base list. 1006850397Sobrien * parse.y (typename_sub{,[0-2]}): New rules. 1006950397Sobrien (structsp, rule TYPENAME_KEYWORD): Use typename_sub. 1007050397Sobrien (nonnested_type): New rule. 1007150397Sobrien (complete_type_name): Use it. 1007218334Speter (base_class.1): Use typename_sub and nonnested_type. 1007350397Sobrien (nested_name_specifier): Don't elide std:: here. 1007418334Speter * decl.c (make_typename_type): Handle getting a type for NAME. 1007552284Sobrien (lookup_name_real): Turn std:: into :: here. 1007652284Sobrien 1007752284Sobrien Rvalue conversions were removed in London. 1007852284Sobrien * call.c (is_subseq): Don't consider lvalue transformations. 1007952284Sobrien (build_conv): LVALUE_CONV and RVALUE_CONV get IDENTITY_RANK. 1008052284Sobrien (joust): Re-enable ?: kludge. 1008152284Sobrien 1008252284Sobrien1997-09-22 Brendan Kehoe <brendan@lisa.cygnus.com> 1008352284Sobrien 1008452284Sobrien * decl.c (start_function): Up warning of no return type to be a 1008518334Speter pedwarn. 1008652284Sobrien 1008752284SobrienMon Sep 22 14:15:34 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com> 1008852284Sobrien 1008918334Speter * init.c (expand_member_init): Don't set TREE_USED. 1009052284Sobrien * decl.c (cp_finish_decl): Mark decls used if type has TREE_USED 1009118334Speter set,don't clear TREE_USED wholesale. 1009252284Sobrien 1009350397SobrienSat Sep 20 15:31:00 1997 Jason Merrill <jason@yorick.cygnus.com> 1009452284Sobrien 1009552284Sobrien * call.c (build_over_call): Do require_complete_type before 1009652284Sobrien build_cplus_new. 1009752284Sobrien 1009852284SobrienThu Sep 18 16:47:52 1997 Jason Merrill <jason@yorick.cygnus.com> 1009952284Sobrien 1010052284Sobrien * search.c (lookup_field): Call complete_type in all cases. 1010152284Sobrien 1010252284Sobrien * decl.c (finish_function): Just warn about flowing off the end. 1010318334Speter 1010452284SobrienWed Sep 17 10:31:25 1997 Jason Merrill <jason@yorick.cygnus.com> 1010552284Sobrien 1010652284Sobrien * decl.c (grokparms): Don't bash a permanent list node if we're 1010752284Sobrien in a function. 1010852284Sobrien 1010918334Speter1997-09-17 Brendan Kehoe <brendan@lisa.cygnus.com> 1011052284Sobrien 1011152284Sobrien * Makefile.in (CONFLICTS): Fix s/r conflict count to 18. 1011252284Sobrien 1011318334SpeterTue Sep 16 14:06:56 1997 Jason Merrill <jason@yorick.cygnus.com> 1011452284Sobrien 1011518334Speter * call.c (build_new_op): Give better error for syntactically 1011652284Sobrien correct, but semantically invalid, use of undeclared template. 1011752284Sobrien 1011818334Speter * call.c (compare_qual): Handle pmfs. 1011952284Sobrien 1012018334Speter * decl.c (store_parm_decls): last_parm_cleanup_insn is the insn 1012152284Sobrien after the exception spec. 1012250397Sobrien 1012318334SpeterMon Sep 15 11:52:13 1997 Jason Merrill <jason@yorick.cygnus.com> 1012452284Sobrien 1012552284Sobrien * call.c (null_ptr_cst_p): Integer type, not integral type. 1012618334Speter 1012752284Sobrien * call.c (joust): Disable warnings until they can be moved to the 1012852284Sobrien right place. 1012952284Sobrien 1013052284SobrienFri Sep 12 16:11:13 1997 Per Bothner <bothner@cygnus.com> 1013152284Sobrien 1013252284Sobrien * Makefile.in, config-lang.in: Convert to autoconf. 1013352284Sobrien 1013452284SobrienThu Sep 11 17:14:55 1997 Jason Merrill <jason@yorick.cygnus.com> 1013552284Sobrien 1013618334Speter * decl.c (lookup_name_real): Add implicit 'typename' to types from 1013752284Sobrien base classes. 1013852284Sobrien 1013952284Sobrien * pt.c (most_specialized_class): Fix typo. 1014052284Sobrien (tsubst): Move constant folding to TREE_VEC case. 1014152284Sobrien 1014252284SobrienThu Sep 11 10:08:45 1997 Mark Mitchell <mmitchell@usa.net> 1014352284Sobrien 1014452284Sobrien * pt.c (do_poplevel): Don't warn about unused local variables 1014552284Sobrien while processing_template_decl since we don't always know whether 1014652284Sobrien or not they will need constructing/destructing. 1014752284Sobrien 1014852284Sobrien * pt.c (uses_template_parms): Check the values of an enumeration 1014952284Sobrien type to make sure they don't depend on template parms. 1015052284Sobrien 1015118334Speter * decl.c (make_typename_type): Don't lookup the field if the 1015252284Sobrien context uses template parms, even if we're not 1015352284Sobrien processing_template_decl at the moment. 1015452284Sobrien 1015552284Sobrien * pt.c (coerce_template_parms): Avoid looking at the 1015652284Sobrien TYPE_LANG_DECL portion of a typename type, since there won't be 1015752284Sobrien one. 1015852284Sobrien (tsubst): Do constant folding as necessary to make sure that 1015952284Sobrien arguments passed to lookup_template_class really are constants. 1016052284Sobrien 1016152284SobrienWed Sep 10 11:21:55 1997 Jason Merrill <jason@yorick.cygnus.com> 1016252284Sobrien 1016352284Sobrien * except.c (expand_builtin_throw): #ifndef DWARF2_UNWIND_INFO. 1016452284Sobrien * decl2.c (finish_file): Only register exception tables if we 1016552284Sobrien need to. 1016652284Sobrien 1016752284Sobrien * decl.c (init_decl_processing): Add __builtin_[fs]p. 1016818334Speter 1016952284SobrienTue Sep 9 19:49:38 1997 Jason Merrill <jason@yorick.cygnus.com> 1017018334Speter 1017152284Sobrien * pt.c (unify): Just return 0 for a TYPENAME_TYPE. 1017252284Sobrien 1017352284SobrienTue Sep 9 17:57:25 1997 Mark Mitchell <mmitchell@usa.net> 1017418334Speter 1017552284Sobrien * error.c (dump_decl): Avoid crashing when presented with a 1017652284Sobrien uninitialized constant, as can occur with a template parameter. 1017752284Sobrien (dump_expr): Make sure that there are enough levels of 1017852284Sobrien current_template_parms before we start diving through them. 1017952284Sobrien 1018052284Sobrien1997-09-09 Brendan Kehoe <brendan@lisa.cygnus.com> 1018118334Speter 1018250397Sobrien * typeck.c (build_indirect_ref): Heed FLAG_VOLATILE similar to 1018318334Speter c-typeck.c. 1018450397Sobrien 1018550397SobrienTue Sep 9 09:36:39 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com> 1018618334Speter 1018750397Sobrien * except.c (expand_throw): Call build_delete for all 1018818334Speter exception types, not just objects with destructors. 1018950397Sobrien 1019050397SobrienMon Sep 8 02:33:20 1997 Jody Goldberg <jodyg@idt.net> 1019118334Speter 1019250397Sobrien * decl.c (current_local_enum): Remove static. 1019350397Sobrien * pt.c (tsubst_enum): Save and restore value of current_local_enum 1019418334Speter in case template is expanded in enum decl. 1019550397Sobrien (instantiate_class_template): Use new tsubst_enum signature. 1019618334Speter (tsubst_expr): Likewise. 1019750397Sobrien 1019850397SobrienMon Sep 8 01:21:43 1997 Mark Mitchell <mmitchell@usa.net> 1019950397Sobrien 1020050397Sobrien * pt.c (begin_member_template_processing): Take a function as 1020150397Sobrien argument, not a set of template arguments. Use the template 1020250397Sobrien parameters, rather than the arguments. Handle non-type parameters 1020350397Sobrien correctly. Push a binding level for the parameters so that multiple 1020450397Sobrien member templates using the same parameter names can be declared. 1020550397Sobrien (end_member_template_processing): Pop the binding level. 1020618334Speter (push_template_decl): Mark member templates as static when 1020750397Sobrien appropriate. 1020850397Sobrien 1020950397Sobrien * lex.c (do_pending_inlines): Pass the function, not its template 1021052284Sobrien arguments, to begin_member_template_processing. 1021118334Speter (process_next_inline): Likewise. 1021250397Sobrien (do_pending_defargs): Likewise. 1021318334Speter 1021450397Sobrien * error.c (dump_expr): Obtain the correct declaration for a 1021550397Sobrien TEMPLATE_CONST_PARM. 1021618334Speter 1021750397Sobrien * call.c (add_template_conv_candidate): New function. 1021818334Speter (build_object_call): Handle member templates, as done in the other 1021950397Sobrien build_ functions. 1022050397Sobrien 1022150397SobrienSat Sep 6 10:20:27 1997 Mark Mitchell <mmitchell@usa.net> 1022218334Speter 1022350397Sobrien * decl.c (replace_defag): Undo previous change. 1022418334Speter * lex.c (do_pending_defargs): Deal with member templates. 1022550397Sobrien 1022650397Sobrien * pt.c (is_member_template): Avoid crashing when passed a 1022718334Speter non-function argument. 1022850397Sobrien 1022918334SpeterFri Sep 5 17:27:38 1997 Jason Merrill <jason@yorick.cygnus.com> 1023050397Sobrien 1023118334Speter * class.c (grow_method): Remove check for redeclaration. 1023250397Sobrien 1023318334SpeterFri Sep 5 01:37:17 1997 Mark Mitchell <mmitchell@usa.net> 1023450397Sobrien 1023518334Speter * cp-tree.h (INNERMOST_TEMPLATE_PARMS): New macro. 1023650397Sobrien (DECL_INNERMOST_TEMPLATE_PARMS): Likewise. 1023750397Sobrien (PRIMARY_TEMPLATE_P): Use it. 1023818334Speter * call.c (build_overload_call_real): Use it. 1023950397Sobrien * class.c (instantiate_type): Likewise. 1024018334Speter * decl.c (decls_match): Likewise. 1024150397Sobrien * method.c (build_overload_identifier): Likewise. 1024218334Speter * pt.c (push_template_decl): Likewise. 1024350397Sobrien (classtype_mangled_name): Likewise. 1024418334Speter (lookup_template_class): Likewise. 1024550397Sobrien 1024652284Sobrien * cp-tree.h (DECL_NTPARMS): Change name from DECL_NT_PARMS to 1024718334Speter DECL_NTPARMS to conform to usage elsewhere. 1024850397Sobrien * call.c (add_template_candidate): Likewise. 1024918334Speter * class.c (instantiate_type): Likewise. 1025050397Sobrien * pt.c (instantiate_template): Likewise. 1025152284Sobrien (get_bindings): Likewise. 1025218334Speter 1025350397Sobrien * class.c (grow_method): Use DECL_FUNCTION_TEMPLATE_P instead of 1025418334Speter is_member_template. 1025550397Sobrien 1025618334Speter * pt.c (unify): Undo changes to allow multiple levels of template 1025750397Sobrien parameters. 1025850397Sobrien (type_unification): Likewise. 1025918334Speter (fn_type_unification): Likewise. 1026050397Sobrien (get_class_bindings): Likewise. 1026118334Speter * cp-tree.h (Likewise). 1026250397Sobrien 1026318334Speter * decl.c (replace_defarg): Check that the type of the default 1026450397Sobrien parameter does not invlove a template type before complaining 1026518334Speter about the initialization. 1026650397Sobrien 1026750397Sobrien * error.c (dump_expr): Deal with template constant parameters in 1026818334Speter member templates correctly. 1026950397Sobrien 1027050397Sobrien * pt.c (is_member_template): Deal with class specializations 1027118334Speter correctly. 1027250397Sobrien (tsubst): Handle "partial instantiation" of member templates 1027318334Speter correctly. 1027450397Sobrien 1027550397SobrienWed Sep 3 12:30:24 1997 Mark Mitchell <mmitchell@usa.net> 1027650397Sobrien 1027718334Speter * pt.c (type_unification): Change calling sequence to allow for 1027850397Sobrien multiple levels of template parameters. 1027950397Sobrien (tsubst_expr): Likewise. 1028018334Speter (tsubst): Likewise. 1028150397Sobrien (tsubst_copy): Likewise. 1028250397Sobrien (instantiate_template): Likewise. 1028350397Sobrien (unify): Likewise. 1028418334Speter * call.c (build_overload_call_real): Use it. 1028550397Sobrien (add_builtin_candidate): Use it. 1028650397Sobrien (build_new_method_call): Use it. 1028752284Sobrien * class.c (instantiate_type): Use it. 1028850397Sobrien * decl.c (grokdeclarator): Use it. 1028952284Sobrien * decl2.c (finish_file): Use it. 1029018334Speter * method.c (build_overload_identifier): Use it. 1029150397Sobrien 1029218334Speter * call.c (add_template_candidate): Add additional parameter for 1029350397Sobrien the function return type. Call fn_type_unification istead of 1029450397Sobrien type_unification. 1029550397Sobrien (build_user_type_conversion_1): Handle member templates. 1029618334Speter (build_new_function_call): Likewise. 1029750397Sobrien (build_new_op): Likewise. 1029818334Speter (build_new_method_call): Likewise. 1029950397Sobrien 1030018334Speter * class.c (grow_method): Don't give an error message indicating 1030150397Sobrien that two member templates with the same name are ambiguous. 1030218334Speter (finish_struct): Treat member template functions just like member 1030350397Sobrien functions. 1030418334Speter 1030550397Sobrien * cp-tree.h (check_member_template): Add declaration. 1030652284Sobrien (begin_member_template_processing): Likewise. 1030750397Sobrien (end_member_template_processing): Likewise. 1030852284Sobrien (fn_type_unification): Likewise. 1030918334Speter (is_member_template): Likewise. 1031050397Sobrien (tsubst): Change prototype. 1031118334Speter (tsubst_expr): Likewise. 1031250397Sobrien (tsubst_copy): Likewise. 1031350397Sobrien (instantiate_template): Likewise. 1031418334Speter (get_bindings): Likewise. 1031550397Sobrien 1031618334Speter * decl.c (decls_match): Handle multiple levels of template 1031752284Sobrien parameters. 1031850397Sobrien (pushdecl): Handle template type params just like other type 1031918334Speter declarations. 1032050397Sobrien (push_class_level_binding): Return immediately if the 1032118334Speter class_binding_level is NULL. 1032250397Sobrien (grokfndecl): If check_classfn() returns a member_template, use 1032350397Sobrien the result of the template, not the template itself. 1032450397Sobrien 1032552284Sobrien * decl2.c (check_member_template): New function. Check to see 1032650397Sobrien that the entity declared to be a member template can be one. 1032718334Speter (check_classfn): Allow redeclaration of member template functions 1032850397Sobrien with different types; the new functions can be specializations or 1032918334Speter explicit instantiations. 1033050397Sobrien 1033150397Sobrien * error.c (dump_decl): Handle multiple levels of template 1033250397Sobrien parameters. 1033350397Sobrien (dump_function_decl): Update to handle function templates. 1033450397Sobrien 1033550397Sobrien * lex.c (do_pending_inlines): Set up template parameter context 1033650397Sobrien for member templates. 1033752284Sobrien (process_next_inline): Likewise. 1033818334Speter 1033950397Sobrien * method.c (build_overload_identifier): Adjust for multiple levels 1034050397Sobrien of template parameters. 1034150397Sobrien 1034250397Sobrien * parse.y (fn.def2): Add member templates. 1034318334Speter (component_decl_1): Likewise. 1034450397Sobrien 1034552284Sobrien * pt.c (begin_member_template_processing): New function. 1034618334Speter (end_member_template_processing): Likewise. 1034750397Sobrien (is_member_template): Likewise. 1034850397Sobrien (fn_type_unification): Likewise. 1034950397Sobrien (current_template_parms): Return a vector of all the template 1035052284Sobrien parms, not just the innermost level of parms. 1035150397Sobrien (push_template_decl): Deal with the possibility of member 1035218334Speter templates. 1035350397Sobrien (lookup_template_class): Likewise. 1035450397Sobrien (uses_template_parms): Likewise. 1035552284Sobrien (tsubst): Modify processing to TEMPLATE_TYPE_PARM and 1035650397Sobrien TEMPLATE_CONST_PARM to deal with multiple levels of template 1035750397Sobrien arguments. Add processing of TEMPLATE_DECL to produce new 1035818334Speter TEMPLATE_DECLs from old ones. 1035950397Sobrien (do_decl_instantiation): Handle member templates. 1036018334Speter 1036150397Sobrien * search.c (lookup_fnfields_1): Handle member template conversion 1036218334Speter operators. 1036350397Sobrien 1036418334Speter * tree.c (cp_tree_equal): Check the levels, as well as the 1036550397Sobrien indices, of TEMPLATE_CONST_PARMs. 1036650397Sobrien 1036750397Sobrien * typeck.c (comptypes): Check the levels, as well as the indices, 1036850397Sobrien fo TEMPLATE_TYPE_PARMs. 1036950397Sobrien (build_x_function_call): Treat member templates like member 1037050397Sobrien functions. 1037150397Sobrien 1037250397SobrienWed Sep 3 11:09:25 1997 Jason Merrill <jason@yorick.cygnus.com> 1037350397Sobrien 1037450397Sobrien * typeck.c (c_expand_return): Always convert_for_initialization 1037552284Sobrien before checking for returning a pointer to local. 1037650397Sobrien 1037750397Sobrien * pt.c (type_unification): If strict and the function parm doesn't 1037850397Sobrien use template parms, just compare types. 1037950397Sobrien 1038050397SobrienWed Sep 3 10:35:49 1997 Klaus Espenlaub <kespenla@student.informatik.uni-ulm.de> 1038150397Sobrien 1038252284Sobrien * method.c (build_overloaded_value): Replace direct call 1038350397Sobrien to the floating point emulator with REAL_VALUE_TO_DECIMAL macro. 1038450397Sobrien 1038518334SpeterWed Sep 3 00:02:53 1997 Jason Merrill <jason@yorick.cygnus.com> 1038650397Sobrien 1038752284Sobrien * typeck.c (convert_arguments): Don't arbitrarily choose the first 1038850397Sobrien of a set of overloaded functions. 1038950397Sobrien 1039050397SobrienTue Sep 2 12:09:13 1997 Jason Merrill <jason@yorick.cygnus.com> 1039150397Sobrien 1039252284Sobrien * lex.c (real_yylex): Don't elide __FUNCTION__. 1039350397Sobrien 1039450397Sobrien * method.c (build_overload_value): Add in_template parm. 1039550397Sobrien (build_overload_int): Likewise. 1039618334Speter (build_overload_identifier): Pass it. 1039750397Sobrien 1039850397Sobrien * decl.c (duplicate_decls): Don't bash a previous template 1039918334Speter definition with a redeclaration. 1040050397Sobrien 1040152284Sobrien * pt.c (unify): float doesn't match double. 1040250397Sobrien 1040352284Sobrien * pt.c (do_type_instantiation): Handle getting a _TYPE or a 1040418334Speter TYPE_DECL. Handle getting non-template types. 1040550397Sobrien * parse.y (explicit_instantiation): Use typespec instead of 1040618334Speter aggr template_type. 1040752284Sobrien 1040850397SobrienTue Sep 2 10:27:08 1997 Richard Henderson <rth@cygnus.com> 1040950397Sobrien 1041050397Sobrien * typeck.c (build_ptrmemfunc1): Clean up ptr->int cast warnings. 1041150397Sobrien 1041250397SobrienMon Sep 1 13:19:04 1997 Eugene Mamchits <eugin@ips.ras.ru> 1041350397Sobrien 1041450397Sobrien * call.c (add_builtin_candidate): Add missing TREE_TYPE. 1041550397Sobrien (compare_ics): Likewise. 1041650397Sobrien 1041750397SobrienMon Sep 1 13:19:04 1997 Jason Merrill <jason@yorick.cygnus.com> 1041850397Sobrien 1041950397Sobrien * call.c (joust): Warn about choosing one conversion op over 1042050397Sobrien another because of 'this' argument when the other return type is 1042152284Sobrien better. 1042250397Sobrien (source_type): New fn. 1042350397Sobrien 1042450397Sobrien * call.c (build_new_op): Strip leading REF_BIND from first operand 1042550397Sobrien to builtin operator. 1042650397Sobrien 1042750397Sobrien * decl2.c (mark_vtable_entries): Mark abort_fndecl as used when we 1042850397Sobrien use its RTL. 1042952284Sobrien 1043050397SobrienThu Aug 28 09:45:23 1997 Jason Merrill <jason@yorick.cygnus.com> 1043152284Sobrien 1043250397Sobrien * call.c (null_ptr_cst_p): Remove support for (void*)0. 1043352284Sobrien 1043452284SobrienWed Aug 27 02:03:34 1997 Jeffrey A Law <law@cygnus.com> 1043550397Sobrien 1043650397Sobrien * typeck.c (expand_target_expr): Make definition match declaration. 1043750397Sobrien 1043850397Sobrien * class.c (get_basefndecls): Make definition match declaration. 1043950397Sobrien 1044050397SobrienMon Aug 25 14:30:02 1997 Jason Merrill <jason@yorick.cygnus.com> 1044150397Sobrien 1044250397Sobrien * input.c (sub_getch): Eventually give up and release the input file. 1044350397Sobrien 1044450397Sobrien * decl.c (cp_finish_decl): If #p i/i, put inline statics in the 1044518334Speter right place. 1044650397Sobrien 1044752284Sobrien * call.c (joust): Tweak message. 1044850397Sobrien 1044952284SobrienSat Aug 23 18:02:59 1997 Mark Mitchell <mmitchell@usa.net> 1045050397Sobrien 1045150397Sobrien * error.c (type_as_string): Put const/volatile on template type 1045250397Sobrien parameters where appropriate. 1045350397Sobrien 1045452284SobrienSat Aug 23 17:47:22 1997 Jeffrey A Law <law@cygnus.com> 1045550397Sobrien 1045650397Sobrien * call.c (strictly_better): Make arguments unsigned ints. 1045750397Sobrien 1045850397SobrienThu Aug 21 18:48:44 1997 Jason Merrill <jason@yorick.cygnus.com> 1045950397Sobrien 1046052284Sobrien * lex.c (real_yylex): Refer to __complex instead of complex. 1046150397Sobrien 1046252284SobrienThu Aug 21 22:25:46 1997 J"orn Rennecke <amylaar@cygnus.co.uk> 1046352284Sobrien 1046418334Speter * lex.c (real_yylex): Don't use getc directly. 1046550397Sobrien 1046650397SobrienWed Aug 20 17:25:08 1997 Jason Merrill <jason@yorick.cygnus.com> 1046750397Sobrien 1046818334Speter * call.c (is_subseq): Don't try to be clever. 1046952284Sobrien 1047050397SobrienWed Aug 20 03:13:36 1997 H.J. Lu (hjl@gnu.ai.mit.edu) 1047152284Sobrien 1047250397Sobrien * parse.y, pt.c: Include "except.h". 1047350397Sobrien * call.c, class.c, class.h, cp-tree.h, cvt.c, decl.c, decl2.c, 1047418334Speter error.c, except.c, expr.c, friend.c, g++spec.c, init.c, input.c, 1047550397Sobrien lex.c, lex.h, method.c, parse.y, pt.c, repo.c, rtti.c, search.c, 1047650397Sobrien sig.c, spew.c, tree.c, typeck.c, typeck2.c, xref.c: Finish 1047750397Sobrien prototyping. 1047850397Sobrien 1047950397SobrienWed Aug 20 01:34:40 1997 Jason Merrill <jason@yorick.cygnus.com> 1048050397Sobrien 1048150397Sobrien * decl2.c (mark_vtable_entries): Instead of replacing pure 1048252284Sobrien virtuals with a reference to __pure_virtual, copy the decl and 1048350397Sobrien change the RTL. 1048450397Sobrien 1048550397SobrienTue Aug 19 02:26:07 1997 Jason Merrill <jason@yorick.cygnus.com> 1048650397Sobrien 1048750397Sobrien * pt.c (lookup_nested_type_by_name): Handle typedef wierdness. 1048850397Sobrien 1048950397Sobrien * typeck2.c (my_friendly_abort): Report bugs to egcs-bugs@cygnus.com. 1049018334Speter 1049150397Sobrien * pt.c (instantiate_class_template): Call repo_template_used 1049252284Sobrien before finish_prevtable_vardecl. 1049318334Speter 1049450397Sobrien * call.c (is_subseq): New fn. 1049550397Sobrien (compare_ics): Use it. 1049618334Speter 1049750397Sobrien * repo.c (finish_repo): Don't crash on no args. 1049850397Sobrien 1049950397Sobrien * parse.y (named_complex_class_head_sans_basetype): Handle 1050052284Sobrien explicit global scope. 1050152284Sobrien * decl2.c (handle_class_head): New fn. 1050250397Sobrien 1050318334Speter * pt.c (unify): Add CONST_DECL case. 1050450397Sobrien 1050552284SobrienThu Aug 14 10:05:13 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1050618334Speter 1050750397Sobrien * rtti.c (permanent_obstack): Fix decl to not be a pointer. 1050850397Sobrien 1050918334Speter * cp-tree.h (report_type_mismatch): Add prototype. 1051050397Sobrien * call.c (build_overload_call_real): Remove erroneous fourth 1051118334Speter argument to report_type_mismatch. 1051250397Sobrien (build_user_type_conversion_1): Remove erroneous second arg to 1051350397Sobrien tourney. 1051418334Speter (build_new_function_call): Likewise. 1051550397Sobrien (build_object_call): Likewise. 1051618334Speter (build_new_op): Likewise. 1051750397Sobrien (build_new_method_call): Likewise. 1051852284Sobrien 1051918334SpeterWed Aug 13 19:19:25 1997 Jason Merrill <jason@yorick.cygnus.com> 1052050397Sobrien 1052118334Speter * error.c (dump_decl): Don't bother processing a function with no 1052250397Sobrien DECL_LANG_SPECIFIC. 1052318334Speter 1052450397Sobrien * method.c (emit_thunk): Call init_function_start in the macro case. 1052550397Sobrien 1052650397SobrienWed Aug 13 10:46:19 1997 H.J. Lu (hjl@gnu.ai.mit.edu) 1052718334Speter 1052850397Sobrien * decl2.c (DEFAULT_VTABLE_THUNKS): Define to be 0 if not 1052952284Sobrien defined and used to set flag_vtable_thunks. 1053018334Speter 1053150397SobrienTue Aug 12 20:13:57 1997 Jason Merrill <jason@yorick.cygnus.com> 1053218334Speter 1053350397Sobrien * parse.y: Don't clear the inlines from their obstack until they've 1053452284Sobrien all been processed. 1053550397Sobrien 1053650397Sobrien * decl.c (duplicate_decls): Don't complain about exception 1053718334Speter specification mismatch if flag_exceptions is off. 1053850397Sobrien 1053918334SpeterMon Aug 11 15:01:56 1997 Marc Lehmann <pcg@goof.com> 1054050397Sobrien 1054118334Speter * Make-lang.in (c++.distclean): Remove g++.c on make distclean. 1054252284Sobrien 1054318334SpeterSun Aug 10 12:06:09 1997 Paul Eggert <eggert@twinsun.com> 1054450397Sobrien 1054550397Sobrien * cp-tree.h: Replace STDIO_PROTO with PROTO in include files. 1054618334Speter * cvt.c, error.c, except.c, expr.c, friend.c, init.c, rtti.c: 1054750397Sobrien Include <stdio.h> before include files that formerly used STDIO_PROTO. 1054818334Speter 1054950397Sobrien * decl.c, g++spec.c, lex.c, method.c, repo.c: 1055052284Sobrien Include "config.h" first, as per autoconf manual. 1055152284Sobrien 1055250397SobrienFri Aug 8 11:47:48 1997 Jason Merrill <jason@yorick.cygnus.com> 1055318334Speter 1055450397Sobrien * decl.c (duplicate_decls): Tweak wording. 1055550397Sobrien * lex.c (do_pending_defargs): Don't die if we see a default arg 1055618334Speter that isn't a DEFAULT_ARG. 1055750397Sobrien * error.c (dump_expr): Handle DEFAULT_ARG. 1055850397Sobrien 1055918334Speter * decl2.c (lang_decode_option): Handle -fhandle-exceptions. 1056050397Sobrien * lang-options.h: Add -fhandle-exceptions. 1056118334Speter 1056250397Sobrien * class.c (build_vtable): Vtables are artificial. 1056318334Speter (prepare_fresh_vtable): Likewise. 1056452284Sobrien 1056518334SpeterWed Aug 6 11:02:36 1997 Jason Merrill <jason@yorick.cygnus.com> 1056650397Sobrien 1056718334Speter * cvt.c (ocp_convert): After converting to the target type, set 1056850397Sobrien LOOKUP_NO_CONVERSION. 1056918334Speter 1057050397Sobrien * call.c (joust): Warn about potentially confusing promotion rules 1057118334Speter with -Wsign-promo. 1057250397Sobrien * cp-tree.h, lang-options.h, decl2.c: Support -Wsign-promo. 1057318334Speter 1057450397SobrienTue Aug 5 15:15:07 1997 Michael Meissner <meissner@cygnus.com> 1057550397Sobrien 1057618334Speter * exception.cc: Declare __terminate_func with noreturn attribute. 1057750397Sobrien 1057818334SpeterFri Aug 1 03:18:15 1997 Jason Merrill <jason@yorick.cygnus.com> 1057950397Sobrien 1058018334Speter * parse.y: Break out eat_saved_input, handle errors. 1058150397Sobrien (function_try_block): Use compstmt instead of compstmt_or_error. 1058250397Sobrien 1058318334SpeterThu Jul 31 17:14:04 1997 Jason Merrill <jason@yorick.cygnus.com> 1058452284Sobrien 1058518334Speter * tree.c (build_cplus_new): Don't set TREE_ADDRESSABLE. 1058650397Sobrien 1058718334SpeterFri Jul 4 01:45:16 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> 1058850397Sobrien 1058918334Speter * Make-lang.in (cplib2.txt, cplib2.ready): Instead of checking for 1059050397Sobrien existence of cc1plus check whether $(LANGUAGES) contains C++. 1059118334Speter 1059252284SobrienWed Jul 30 13:04:21 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> 1059318334Speter 1059450397Sobrien * method.c (do_build_copy_constructor): When copying an anonymous 1059518334Speter union member loop around to handle nested anonymous unions. Use 1059650397Sobrien the offset of the member relative to the outer structure, not the 1059718334Speter union. 1059850397Sobrien 1059918334SpeterTue Jul 29 21:17:29 1997 Jason Merrill <jason@yorick.cygnus.com> 1060050397Sobrien 1060118334Speter * call.c (resolve_args): New fn. 1060250397Sobrien (build_new_function_call): Use it. 1060350397Sobrien (build_object_call): Likewise. 1060452284Sobrien (build_new_method_call): Likewise. 1060552284Sobrien 1060652284SobrienMon Jul 28 16:02:36 1997 Jason Merrill <jason@yorick.cygnus.com> 1060752284Sobrien 1060818334Speter * call.c (build_over_call): tsubst all default parms from templates. 1060950397Sobrien 1061018334SpeterWed Jul 23 13:36:25 1997 Jason Merrill <jason@yorick.cygnus.com> 1061150397Sobrien 1061250397Sobrien * decl.c (struct cp_function): Add static_labelno. 1061350397Sobrien (push_cp_function_context): Save it. 1061418334Speter (pop_cp_function_context): Restore it. 1061550397Sobrien 1061618334SpeterTue Jul 22 14:43:29 1997 Jason Merrill <jason@yorick.cygnus.com> 1061750397Sobrien 1061818334Speter * typeck.c (build_component_ref_1): Convert from reference. 1061950397Sobrien 1062018334SpeterTue Jul 22 11:06:23 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1062150397Sobrien 1062250397Sobrien * parse.y (current_declspecs, prefix_attributes): Initialize to 1062318334Speter NULL_TREE. 1062450397Sobrien 1062550397Sobrien * parse.y (initdcl0): Make sure CURRENT_DECLSPECS is non-nil 1062618334Speter before we try to force it to be a TREE_LIST. 1062750397Sobrien (decl): Make sure $1.t is non-nil. 1062818334Speter 1062950397SobrienSun Jul 20 11:53:07 1997 Jason Merrill <jason@yorick.cygnus.com> 1063052284Sobrien 1063150397Sobrien * pt.c (uses_template_parms): Handle template first-parse codes. 1063218334Speter 1063350397Sobrien * decl.c (cp_finish_decl): Only warn about user-defined statics. 1063418334Speter 1063550397SobrienFri Jul 18 17:56:08 1997 Jason Merrill <jason@yorick.cygnus.com> 1063618334Speter 1063750397Sobrien * pt.c (unify): Handle BOOLEAN_TYPE. 1063818334Speter 1063950397Sobrien * cp-tree.h: Lose PARM_DEFAULT_FROM_TEMPLATE. 1064050397Sobrien * pt.c (tsubst): Don't set it. 1064150397Sobrien * call.c (build_over_call): Use uses_template_parms. 1064250397Sobrien 1064350397SobrienThu Jul 17 18:06:30 1997 Jason Merrill <jason@yorick.cygnus.com> 1064450397Sobrien 1064550397Sobrien * method.c (build_overload_nested_name): Use static_labelno 1064650397Sobrien instead of var_labelno. 1064750397Sobrien (build_qualified_name): New fn. 1064818334Speter (build_overload_name): Split out from here. 1064950397Sobrien (build_static_name): Use build_qualified_name. 1065018334Speter * decl.c (cp_finish_decl): Statics in extern inline functions 1065150397Sobrien have comdat linkage. 1065250397Sobrien (start_function): Initialize static_labelno. 1065318334Speter 1065450397SobrienThu Jul 17 11:20:17 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com> 1065518334Speter 1065650397Sobrien * class.c (finish_struct_methods): Add check of warn_ctor_dtor_privacy 1065718334Speter before "all member functions in class [] are private". 1065850397Sobrien 1065950397SobrienWed Jul 16 23:47:08 1997 Jason Merrill <jason@yorick.cygnus.com> 1066018334Speter 1066150397Sobrien * lex.c (do_scoped_id): convert_from_reference. 1066218334Speter * init.c (build_offset_ref): Likewise. 1066352284Sobrien 1066450397SobrienWed Jul 16 12:34:29 1997 Benjamin Kosnik <bkoz@lisa.cygnus.com> 1066518334Speter 1066650397Sobrien * error.c (dump_expr): Check TREE_OPERAND before dump_expr_list. 1066752284Sobrien 1066818334SpeterMon Jul 14 03:23:46 1997 Jason Merrill <jason@yorick.cygnus.com> 1066952284Sobrien 1067018334Speter * typeck.c (get_member_function_from_ptrfunc): Promote index 1067150397Sobrien before saving it. 1067218334Speter 1067350397SobrienSun Jul 13 00:11:52 1997 Jason Merrill <jason@yorick.cygnus.com> 1067418334Speter 1067550397Sobrien * tree.c (layout_basetypes): Move non-virtual destructor warning. 1067650397Sobrien * decl.c (xref_basetypes): Remove non-virtual destructor warning. 1067752284Sobrien 1067818334SpeterSat Jul 12 12:47:12 1997 Jason Merrill <jason@yorick.cygnus.com> 1067950397Sobrien 1068052284Sobrien * decl.c (grokdeclarator): Call add_defarg_fn for the function 1068118334Speter type, too. 1068250397Sobrien * lex.c (add_defarg_fn): Adjust. 1068318334Speter (do_pending_defargs): Adjust. Don't skip the first parm. 1068450397Sobrien 1068550397SobrienFri Jul 11 01:39:50 1997 Jason Merrill <jason@yorick.cygnus.com> 1068650397Sobrien 1068750397Sobrien * decl.c (build_enumerator): Global enumerators are also readonly. 1068818334Speter 1068950397Sobrien * rtti.c (build_dynamic_cast_1): Renamed from build_dynamic_cast. 1069050397Sobrien (build_dynamic_cast): Call it and convert_from_reference. 1069118334Speter 1069252284Sobrien * lex.c (add_defarg_fn): New fn. 1069350397Sobrien (snarf_defarg): Don't add to defarg_types. 1069418334Speter (do_pending_defargs): Lose defarg_types. All fns we process now 1069550397Sobrien have defargs. 1069618334Speter * decl.c (grokfndecl): Call add_defarg_fn. 1069750397Sobrien 1069852284Sobrien * Makefile.in (CONFLICTS): Expect 18 s/r conflicts. 1069918334Speter * cp-tree.def: Add DEFAULT_ARG. 1070050397Sobrien * spew.c (yylex): Call snarf_defarg as appropriate. 1070150397Sobrien * parse.y: New tokens DEFARG and DEFARG_MARKER. 1070250397Sobrien (defarg_again, pending_defargs, defarg, defarg1): New rules. 1070318334Speter (structsp): Use pending_defargs. 1070450397Sobrien (parms, full_parm): Use defarg. 1070518334Speter * lex.c (init_lex): Initialize inline_text_firstobj. 1070650397Sobrien (do_pending_inlines): Never pass the obstack to feed_input. 1070718334Speter (process_next_inline): Call end_input instead of restore_pending_input. 1070850397Sobrien (clear_inline_text_obstack, reinit_parse_for_expr, do_pending_defargs, 1070918334Speter finish_defarg, feed_defarg, snarf_defarg, maybe_snarf_defarg): New fns. 1071050397Sobrien * input.c (end_input): New fn. 1071150397Sobrien (sub_getch): At the end of some fed input, just keep returning EOF 1071218334Speter until someone calls end_input. 1071350397Sobrien Remove 'obstack' field from struct input_source. 1071418334Speter * decl.c (grokparms): Handle DEFAULT_ARG. 1071550397Sobrien (replace_defarg): New fn. 1071618334Speter * cp-tree.h (DEFARG_LENGTH, DEFARG_POINTER): New macros. 1071750397Sobrien 1071818334SpeterWed Jul 9 13:44:12 1997 Jason Merrill <jason@yorick.cygnus.com> 1071950397Sobrien 1072050397Sobrien * call.c (implicit_conversion): If nothing else works, try binding 1072118334Speter an rvalue to a reference. 1072250397Sobrien 1072318334SpeterWed Jul 9 13:04:38 1997 Geoffrey Noer <noer@cygnus.com> 1072450397Sobrien 1072550397Sobrien * decl.c (init_decl_processing): Fix Jun 30 patch -- move 1072650397Sobrien ifndef for Cygwin32 to include SIGSEGV. 1072750397Sobrien 1072818334SpeterThu Jul 3 01:44:05 1997 Jason Merrill <jason@yorick.cygnus.com> 1072950397Sobrien 1073018334Speter * class.c (finish_struct_1): Only complain about pointers without 1073150397Sobrien copy stuff if there are any constructors. 1073250397Sobrien 1073350397Sobrien * rtti.c (build_dynamic_cast): Call complete_type on the types. 1073450397Sobrien 1073518334Speter * decl.c (grokfndecl): If the function we chose doesn't actually 1073650397Sobrien match, die. 1073718334Speter 1073850397Sobrien * decl2.c (grokclassfn): Don't specify 'const int' for the 1073918334Speter artificial destructor parm. 1074050397Sobrien 1074118334Speter * pt.c (type_unification): If we are called recursively, nothing 1074250397Sobrien decays. 1074350397Sobrien 1074450397SobrienMon Jun 30 17:53:21 1997 Geoffrey Noer <noer@cygnus.com> 1074518334Speter 1074650397Sobrien * decl.c (init_decl_processing): Stop trying to catch signals 1074718334Speter other than SIGABRT since the Cygwin32 library doesn't support 1074850397Sobrien them correctly yet. This fixes a situation in which g++ causes 1074918334Speter a hang on SIGSEGVs and other such signals in our Win32-hosted 1075050397Sobrien tools. 1075118334Speter 1075250397SobrienMon Jun 30 14:50:01 1997 Jason Merrill <jason@yorick.cygnus.com> 1075350397Sobrien 1075418334Speter * tree.c (mapcar, case CALL_EXPR): Handle all the parse node data. 1075550397Sobrien 1075650397SobrienFri Jun 27 15:18:49 1997 Jason Merrill <jason@yorick.cygnus.com> 1075750397Sobrien 1075818334Speter * typeck2.c (store_init_value): Always return the value if our 1075950397Sobrien type needs constructing. 1076018334Speter 1076150397Sobrien * method.c (hack_identifier): Convert class statics from 1076218334Speter reference, too. 1076350397Sobrien 1076418334SpeterThu Jun 26 11:44:46 1997 Jason Merrill <jason@yorick.cygnus.com> 1076550397Sobrien 1076618334Speter * Make-lang.in (cplib2.ready): Add $(LANGUAGES) dependency. 1076750397Sobrien 1076818334SpeterThu Jun 19 16:49:28 1997 Mike Stump <mrs@cygnus.com> 1076950397Sobrien 1077050397Sobrien * typeck.c (c_expand_return): Make sure we clean up temporaries at 1077150397Sobrien the end of return x; 1077218334Speter 1077350397SobrienThu Jun 19 12:28:43 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1077418334Speter 1077550397Sobrien * lex.c (check_for_missing_semicolon): Also check for CV_QUALIFIER. 1077652284Sobrien 1077750397SobrienTue Jun 17 18:35:57 1997 Mike Stump <mrs@cygnus.com> 1077850397Sobrien 1077950397Sobrien * except.c (expand_builtin_throw): Add support 1078052284Sobrien -fno-sjlj-exceptions -fPIC exception handling on the SPARC. 1078150397Sobrien 1078250397SobrienMon Jun 16 01:24:37 1997 Jason Merrill <jason@yorick.cygnus.com> 1078318334Speter 1078450397Sobrien * repo.c (extract_string): Null-terminate. 1078518334Speter 1078652284Sobrien * cp-tree.h (TI_SPEC_INFO): New macro. 1078752284Sobrien (CLASSTYPE_TI_SPEC_INFO): New macro. 1078818334Speter * pt.c (push_template_decl): Correctly determine # of template parms 1078950397Sobrien for partial specs. 1079018334Speter 1079150397Sobrien * call.c (compare_ics): Really fix 'this' conversions. 1079250397Sobrien 1079318334Speter * pt.c (do_decl_instantiation): Don't crash on explicit inst of 1079450397Sobrien non-template fn. 1079518334Speter 1079650397Sobrien * pt.c (push_template_decl): Complain about mismatch in # of 1079718334Speter template parms between a class template and a member template. 1079850397Sobrien 1079918334SpeterSun Jun 15 02:38:20 1997 Jason Merrill <jason@yorick.cygnus.com> 1080050397Sobrien 1080152284Sobrien * method.c (synthesize_method): You can't call 1080218334Speter function_cannot_inline_p after finish_function. 1080350397Sobrien * decl.c (finish_function): Turn on flag_inline_functions and turn 1080418334Speter off DECL_INLINE before handing a synthesized method to the 1080550397Sobrien backend. 1080650397Sobrien 1080718334SpeterThu Jun 12 17:35:28 1997 Jason Merrill <jason@yorick.cygnus.com> 1080850397Sobrien 1080918334Speter * method.c (synthesize_method): Remove July 30 change to never set 1081050397Sobrien DECL_INLINE if at_eof. 1081150397Sobrien 1081250397SobrienThu Jun 12 15:25:08 1997 Mike Stump <mrs@cygnus.com> 1081350397Sobrien 1081418334Speter * xref.c (GNU_xref_member): Ensure that the node has a 1081550397Sobrien decl_lang_specific part before checking DECL_FRIEND_P. 1081618334Speter 1081750397SobrienThu Jun 12 12:36:05 1997 Jason Merrill <jason@yorick.cygnus.com> 1081818334Speter 1081950397Sobrien * pt.c (instantiate_class_template): Diagnose non-class types used 1082050397Sobrien as bases. 1082118334Speter 1082250397SobrienWed Jun 11 17:33:40 1997 Jason Merrill <jason@yorick.cygnus.com> 1082350397Sobrien 1082450397Sobrien * typeck.c (build_conditional_expr): Use convert_for_initialization 1082550397Sobrien instead of convert_and_check. 1082650397Sobrien 1082718334SpeterWed Jun 11 12:31:33 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1082850397Sobrien 1082950397Sobrien * parse.y (typespec): Don't pedwarn for typeof. 1083050397Sobrien 1083150397SobrienTue Jun 10 00:22:09 1997 Jason Merrill <jason@yorick.cygnus.com> 1083250397Sobrien 1083350397Sobrien * repo.c (finish_repo): Only check changes if we would write a 1083450397Sobrien repo file. 1083550397Sobrien 1083650397Sobrien * call.c (compare_ics): Fix handling of 'this' conversions. 1083750397Sobrien 1083850397Sobrien * pt.c (do_decl_instantiation): Support static data too. Rename 1083950397Sobrien from do_function_instantiation. 1084050397Sobrien * cp-tree.h: Adjust. 1084150397Sobrien * parse.y: Adjust. 1084250397Sobrien 1084350397Sobrien * repo.c (extract_string): New fn. 1084450397Sobrien (get_base_filename): Use it. 1084550397Sobrien (init_repo): Compare old args with current args. 1084650397Sobrien 1084718334SpeterMon Jun 9 14:25:30 1997 Mike Stump <mrs@cygnus.com> 1084850397Sobrien 1084918334Speter * Makefile.in, Make-lang.in: Protect C-ls with a comment 1085050397Sobrien character, idea from Paul Eggert <eggert@twinsun.com>. 1085150397Sobrien 1085218334SpeterMon Jun 9 01:52:03 1997 Jason Merrill <jason@yorick.cygnus.com> 1085350397Sobrien 1085418334Speter * typeck.c (c_expand_return): Be more persistent in looking for 1085552284Sobrien returned temps. 1085650397Sobrien 1085718334Speter * cvt.c (build_up_reference): Use NOP_EXPR for switching from 1085850397Sobrien pointer to reference. 1085918334Speter 1086050397Sobrien * class.c (build_vbase_path): Don't do anything if PATH has no steps. 1086150397Sobrien 1086218334SpeterSun Jun 8 03:07:05 1997 Jason Merrill <jason@yorick.cygnus.com> 1086350397Sobrien 1086418334Speter * init.c (build_member_call, build_offset_ref): 1086550397Sobrien Use do_scoped_id instead of do_identifier. 1086652284Sobrien 1086718334Speter * cvt.c (convert): Remove bogosity. 1086850397Sobrien 1086952284SobrienSat Jun 7 20:50:17 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1087018334Speter 1087152284Sobrien * cvt.c (build_up_reference): Do checks of ARGTYPE and 1087250397Sobrien TARGET_TYPE before trying to use get_binfo. 1087318334Speter 1087450397SobrienFri Jun 6 17:36:39 1997 Jason Merrill <jason@yorick.cygnus.com> 1087518334Speter 1087652284Sobrien * cvt.c (build_up_reference): Call get_binfo to get access control. 1087750397Sobrien 1087850397Sobrien * decl2.c (import_export_decl): If we don't support weaks, leave 1087950397Sobrien statics undefined. 1088050397Sobrien 1088118334SpeterFri Jun 6 15:55:49 1997 Mike Stump <mrs@cygnus.com> 1088250397Sobrien 1088318334Speter * except.c (expand_builtin_throw): Add support for machines that 1088450397Sobrien cannot access globals after throw's epilogue when 1088518334Speter -fno-sjlj-exceptions is used. 1088650397Sobrien 1088718334SpeterThu Jun 5 16:28:43 1997 Jason Merrill <jason@yorick.cygnus.com> 1088852284Sobrien 1088950397Sobrien * parse.y: 'std::' becomes '::'. 1089018334Speter * lex.c (real_yylex): Remove 'namespace' warning. 1089150397Sobrien * init.c (build_member_call): Ignore 'std::'. 1089252284Sobrien (build_offset_ref): Likewise. 1089318334Speter * decl2.c (do_using_directive): Ignore 'using namespace std;'. 1089450397Sobrien (do_toplevel_using_decl): Ignore 'using std::whatever'. 1089518334Speter * decl.c (push_namespace): Just sorry. 1089650397Sobrien (pop_namespace): Nop. 1089718334Speter (init_decl_processing): Declare std namespace. 1089850397Sobrien 1089918334SpeterTue Jun 3 18:08:23 1997 Jason Merrill <jason@yorick.cygnus.com> 1090050397Sobrien 1090150397Sobrien * search.c (push_class_decls): A name which ambiguously refers to 1090218334Speter several instantiations of the same template just refers to the 1090350397Sobrien template. 1090418334Speter 1090550397SobrienTue Jun 3 12:30:40 1997 Benjamin Kosnik <bkoz@cirdan.cygnus.com> 1090618334Speter 1090750397Sobrien * decl.c (build_enumerator): Fix problem with unsigned long 1090818334Speter enumerated values being smashed to ints, causing overflow 1090950397Sobrien when computing next enumerated value (for enum values around 1091052284Sobrien MAX_VAL). 1091118334Speter 1091250397SobrienMon Jun 2 17:40:56 1997 Jason Merrill <jason@yorick.cygnus.com> 1091318334Speter 1091450397Sobrien * typeck.c (build_component_ref): Only call mark_used on a decl. 1091518334Speter 1091650397SobrienThu May 29 15:54:17 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1091750397Sobrien 1091852284Sobrien * typeck.c (build_c_cast): Make the check for a ptr to function 1091950397Sobrien more specific before possible default_conversion call. 1092018334Speter 1092150397SobrienThu May 29 13:02:06 1997 Mike Stump <mrs@cygnus.com> 1092218334Speter 1092350397Sobrien * except.c (expand_exception_blocks): Simplify and fix and make 1092450397Sobrien sure we don't end a region in a sequence, as expand_end_bindings 1092518334Speter doesn't like it. 1092650397Sobrien 1092752284SobrienWed May 28 17:08:03 1997 Mike Stump <mrs@cygnus.com> 1092818334Speter 1092950397Sobrien * except.c (init_exception_processing): Mark terminate as not 1093018334Speter returning so that the optimizer can optimize better. 1093150397Sobrien 1093252284SobrienTue May 27 19:49:19 1997 Mike Stump <mrs@cygnus.com> 1093350397Sobrien 1093452284Sobrien * cvt.c (convert): Don't do any extra work, if we can avoid it 1093552284Sobrien easily. 1093618334Speter 1093750397SobrienTue May 27 18:21:47 1997 Mike Stump <mrs@cygnus.com> 1093818334Speter 1093950397Sobrien * *.[chy]: Change cp_convert to ocp_convert, change convert to 1094052284Sobrien cp_convert. convert is now reserved for the backend, and doesn't 1094118334Speter have the semantics a frontend person should ever want. 1094250397Sobrien 1094318334SpeterFri May 23 10:58:31 1997 Jason Merrill <jason@yorick.cygnus.com> 1094450397Sobrien 1094550397Sobrien * lang-specs.h: Define __EXCEPTIONS if exceptions are enabled. 1094618334Speter Lose -traditional support. 1094750397Sobrien 1094818334SpeterThu May 22 15:41:28 1997 Jason Merrill <jason@yorick.cygnus.com> 1094950397Sobrien 1095050397Sobrien * rtti.c (get_tinfo_var): Use TYPE_PRECISION (sizetype). 1095118334Speter 1095250397Sobrien * parse.y (self_reference): Do it for templates, too. 1095318334Speter * class.c (pushclass): Don't overload_template_name; the alias 1095450397Sobrien generated by build_self_reference serves the same purpose. 1095550397Sobrien 1095618334Speter * tree.c (list_hash): Make static, take more args. 1095750397Sobrien (list_hash_lookup): Likewise. 1095818334Speter (list_hash_add): Make static. 1095950397Sobrien (list_hash_canon): Lose. 1096018334Speter (hash_tree_cons): Only build a new node if one isn't already in the 1096150397Sobrien hashtable. 1096218334Speter (hash_tree_chain): Use hash_tree_cons. 1096350397Sobrien * cp-tree.h: Adjust. 1096450397Sobrien * decl.c (grokfndecl): Just check IDENTIFIER_GLOBAL_VALUE instead 1096518334Speter of calling lookup_name. 1096650397Sobrien 1096718334SpeterWed May 21 18:24:19 1997 Jason Merrill <jason@yorick.cygnus.com> 1096850397Sobrien 1096950397Sobrien * pt.c (instantiate_class_template): TYPE_VALUES for an enum 1097050397Sobrien doesn't refer to the CONST_DECLs. 1097150397Sobrien 1097218334SpeterTue May 20 21:09:32 1997 Bob Manson <manson@charmed.cygnus.com> 1097350397Sobrien 1097450397Sobrien * rtti.c (get_tinfo_var): Either INT_TYPE_SIZE or 32, whichever 1097550397Sobrien is bigger. 1097618334Speter (expand_class_desc): Convert the last argument to a sizetype. 1097750397Sobrien 1097818334SpeterTue May 20 13:55:57 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1097950397Sobrien 1098052284Sobrien * gxx.gperf (__complex, __complex__, __imag, __imag__, __real, 1098118334Speter __real__): Add reswords. 1098250397Sobrien * hash.h: Regenerate. 1098318334Speter * lex.h (rid): Add RID_COMPLEX. 1098450397Sobrien (RID_LAST_MODIFIER): Set to RID_COMPLEX. 1098552284Sobrien * lex.c (init_lex): Add building of RID_COMPLEX. 1098618334Speter (real_yylex): General cleanup in line with what c-lex.c also has, 1098750397Sobrien sans the cruft for traditional; add handling of SPEC_IMAG, complex 1098852284Sobrien types, and imaginary numeric constants. 1098918334Speter * parse.y (REALPART, IMAGPART): Add tokens. 1099050397Sobrien (unary_expr): Add REALPART and IMAGPART rules. 1099118334Speter * cp-tree.h (complex_{integer,float,double,long}_type_node): Declare. 1099250397Sobrien * decl.c (complex_{integer,float,double,long}_type_node): Define 1099318334Speter types. 1099450397Sobrien (init_decl_processing): Set up the types. 1099552284Sobrien (grokdeclarator): Add handling of RID_COMPLEX. Set and use 1099618334Speter DEFAULTED_INT instead of EXPLICIT_INT when we default to int type. 1099750397Sobrien * call.c (build_new_op): Add REALPART_EXPR and IMAGPART_EXPR cases. 1099818334Speter * cvt.c (cp_convert): Handle COMPLEX_TYPE. 1099950397Sobrien * error.c (dump_type_prefix, dump_type, dump_type_suffix): Add 1100018334Speter COMPLEX_TYPE case. 1100150397Sobrien * method.c (build_overload_name): Add handling of the different 1100250397Sobrien COMPLEX_TYPEs, prefixing them with `J'. 1100318334Speter * pt.c (process_template_parm): Don't let them use a COMPLEX_TYPE 1100450397Sobrien as a template parm. 1100518334Speter (uses_template_parms, tsubst, unify): Add COMPLEX_TYPE case. 1100650397Sobrien * tree.c (lvalue_p): Add REALPART_EXPR and IMAGPART_EXPR cases. 1100718334Speter (mapcar): Handle COMPLEX_CST. 1100850397Sobrien * typeck.c (build_binary_op_nodefault): Handle COMPLEX_TYPE. 1100952284Sobrien (common_type): Add code for complex types. 1101018334Speter (build_unary_op): Add REALPART_EXPR and IMAGPART_EXPR cases. 1101150397Sobrien (convert_for_assignment): Likewise. 1101218334Speter (mark_addressable): Add REALPART_EXPR and IMAGPART_EXPR cases. 1101350397Sobrien 1101452284SobrienMon May 19 12:26:27 1997 Jason Merrill <jason@yorick.cygnus.com> 1101552284Sobrien 1101618334Speter * pt.c (tsubst): Don't pass the MINUS_EXPR for an array domain to 1101750397Sobrien tsubst_expr, as it might try to do overload resolution. 1101818334Speter 1101950397SobrienSat May 17 10:48:31 1997 Jason Merrill <jason@yorick.cygnus.com> 1102050397Sobrien 1102150397Sobrien * pt.c (instantiate_class_template): Oops. 1102250397Sobrien 1102350397SobrienFri May 16 14:23:57 1997 Jason Merrill <jason@yorick.cygnus.com> 1102450397Sobrien 1102550397Sobrien * cp-tree.def: Add TAG_DEFN. 1102650397Sobrien * pt.c (tsubst_enum): New fn. 1102750397Sobrien (instantiate_class_template): Use it. 1102818334Speter (tsubst_expr): Support TAG_DEFN. 1102950397Sobrien (tsubst): Support local enums. 1103018334Speter (tsubst_copy): Likewise. 1103150397Sobrien * decl.c (finish_enum): Likewise. 1103252284Sobrien (start_enum): If this is a local enum, switch to permanent_obstack. 1103352284Sobrien 1103418334SpeterWed May 14 19:08:28 1997 Mike Stump <mrs@cygnus.com> 1103550397Sobrien 1103618334Speter * decl.c (store_parm_decls): Set last_parm_cleanup_insn here. 1103752284Sobrien (finish_function): Put the base init code for constructors just 1103850397Sobrien after the parm cleanup insns. 1103952284Sobrien (struct cp_function): Add last_parm_cleanup_insn. 1104050397Sobrien (push_cp_function_context): Likewise. 1104118334Speter (pop_cp_function_context): Likewise. 1104250397Sobrien 1104318334SpeterTue May 13 15:51:20 1997 Jason Merrill <jason@yorick.cygnus.com> 1104450397Sobrien 1104518334Speter * pt.c (tsubst_copy): Handle BIT_NOT_EXPR. 1104650397Sobrien 1104718334SpeterWed May 7 11:17:59 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1104850397Sobrien 1104950397Sobrien * method.c (emit_thunk) [ASM_OUTPUT_MI_THUNK]: Build up the RTL 1105018334Speter for THUNK_FNDECL before we switch to temporary allocation. 1105150397Sobrien 1105218334SpeterMon May 5 14:46:53 1997 Jason Merrill <jason@yorick.cygnus.com> 1105350397Sobrien 1105450397Sobrien * call.c (build_new_op): Handle null arg2 for ?:. 1105550397Sobrien 1105618334SpeterThu May 1 18:26:37 1997 Mike Stump <mrs@cygnus.com> 1105750397Sobrien 1105818334Speter * except.c (expand_exception_blocks): Ensure that we flow through 1105950397Sobrien the end of the exception region for the exception specification. 1106050397Sobrien Move exception region for the exception specification in, so that 1106118334Speter it doesn't protect the parm cleanup. Remove some obsolete code. 1106250397Sobrien * decl.c (store_parm_decls): Likewise. 1106318334Speter (finish_function): Likewise. 1106450397Sobrien 1106550397SobrienTue Apr 29 15:38:54 1997 Jason Merrill <jason@yorick.cygnus.com> 1106618334Speter 1106750397Sobrien * init.c (build_new): Fix nothrow handling. 1106818334Speter 1106950397SobrienTue Apr 29 14:29:50 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1107050397Sobrien 1107150397Sobrien * init.c (emit_base_init): Don't warn about the initialization 1107218334Speter list for an artificial member. 1107350397Sobrien 1107418334SpeterFri Apr 25 17:47:59 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1107550397Sobrien 1107650397Sobrien * expr.c (do_case): Handle !START case for the error msg. 1107718334Speter 1107850397SobrienFri Apr 25 11:55:23 1997 Jason Merrill <jason@yorick.cygnus.com> 1107918334Speter 1108050397Sobrien * decl2.c, lang-options.h: New option -Weffc++. 1108118334Speter * class.c, decl.c, init.c, typeck.c: Move Effective C++ warnings 1108250397Sobrien to -Weffc++. 1108350397Sobrien 1108450397Sobrien * decl2.c (finish_prevtable_vardecl): Change NO_LINKAGE_HEURISTICS 1108518334Speter to MULTIPLE_SYMBOL_SPACES. 1108650397Sobrien 1108750397SobrienWed Apr 23 18:06:50 1997 Jason Merrill <jason@yorick.cygnus.com> 1108850397Sobrien 1108950397Sobrien * method.c (emit_thunk, generic case): Set current_function_is_thunk. 1109050397Sobrien 1109150397Sobrien * method.c (emit_thunk, macro case): Set up DECL_RESULT. 1109250397Sobrien 1109350397Sobrien * typeck.c (c_expand_return): Don't complain about returning void 1109450397Sobrien to void in an artificial function. 1109550397Sobrien * method.c (make_thunk): Change settings of READONLY/VOLATILE, 1109618334Speter don't set DECL_RESULT, set DECL_ARTIFICIAL. 1109750397Sobrien (emit_thunk, generic code): Also set up DECL_LANG_SPECIFIC. 1109818334Speter 1109950397SobrienWed Apr 23 14:43:06 1997 Mike Stump <mrs@cygnus.com> 1110050397Sobrien 1110118334Speter * init.c (init_decl_processing): Add support for setjmp/longjmp based 1110250397Sobrien exception handling. 1110318334Speter * except.c (init_exception_processing): Likewise. 1110450397Sobrien (expand_end_catch_block): Likewise. 1110550397Sobrien (expand_exception_blocks): Likewise. 1110650397Sobrien (expand_throw): Likewise. 1110718334Speter * exception.cc (__default_terminate): Likewise. 1110850397Sobrien 1110918334Speter * init.c (perform_member_init): Use new method of expr level 1111050397Sobrien cleanups, instead of cleanups_this_call and friends. 1111150397Sobrien (emit_base_init): Likewise. 1111250397Sobrien (expand_aggr_vbase_init_1): Likewise. 1111350397Sobrien (expand_vec_init): Likewise. 1111450397Sobrien * decl.c (cp_finish_decl): Likewise. 1111550397Sobrien (expand_static_init): Likewise. 1111650397Sobrien (store_parm_decls): Likewise. 1111750397Sobrien (cplus_expand_expr_stmt): Likewise. 1111850397Sobrien * decl2.c (finish_file): Likewise. 1111950397Sobrien 1112050397Sobrien * Make-lang.in (exception.o): Ok to compile with -O now. 1112150397Sobrien 1112250397Sobrien * decl.c (maybe_build_cleanup_1): We no longer have to unsave, as 1112350397Sobrien we know it will be done later by the backend. 1112450397Sobrien 1112550397Sobrien * decl2.c (lang_f_options): Remove support for short temps. 1112650397Sobrien * lang-options.h: Likewise. 1112750397Sobrien 1112850397SobrienWed Apr 23 04:12:06 1997 Jason Merrill <jason@yorick.cygnus.com> 1112950397Sobrien 1113050397Sobrien * tree.c (varargs_function_p): New fn. 1113150397Sobrien * method.c (emit_thunk): Replace broken generic code with code to 1113250397Sobrien generate a heavyweight thunk function. 1113350397Sobrien 1113450397SobrienTue Apr 22 02:45:18 1997 Jason Merrill <jason@yorick.cygnus.com> 1113550397Sobrien 1113650397Sobrien * pt.c (process_template_parm): pedwarn about floating-point parms. 1113750397Sobrien 1113850397Sobrien * decl.c (grokdeclarator): inline no longer implies static. 1113950397Sobrien 1114050397Sobrien * spew.c (yylex): Always return the TYPE_DECL if we got a scope. 1114150397Sobrien 1114250397SobrienMon Apr 21 15:42:27 1997 Jason Merrill <jason@yorick.cygnus.com> 1114318334Speter 1114450397Sobrien * class.c (check_for_override): The signature of an overriding 1114518334Speter function is not changed. 1114650397Sobrien 1114750397Sobrien * call.c (build_over_call): Move setting of conv into the loop. 1114818334Speter Note: this change, along with the related changes of the 18th thru 1114950397Sobrien the 20th of April, fix an infinite loop problem in conversions. 1115018334Speter 1115150397SobrienSun Apr 20 16:24:29 1997 Jason Merrill <jason@yorick.cygnus.com> 1115218334Speter 1115350397Sobrien * call.c (build_user_type_conversion_1): Really ignore rvalue 1115418334Speter conversions when looking for a REFERENCE_TYPE. 1115550397Sobrien 1115650397Sobrien * cvt.c (build_up_reference): Eviscerate, use build_unary_op. 1115750397Sobrien * cp-tree.h (TREE_REFERENCE_EXPR): #if 0. 1115850397Sobrien * typeck.c (decay_conversion): Don't set TREE_REFERENCE_EXPR. 1115950397Sobrien (build_unary_op): Likewise. 1116050397Sobrien * call.c (build_over_call): See through a CONVERT_EXPR around the 1116150397Sobrien ADDR_EXPR for on a temporary. 1116250397Sobrien * typeck.c (c_expand_return): See through a CONVERT_EXPR around 1116318334Speter the ADDR_EXPR for a local variable. 1116450397Sobrien 1116518334SpeterFri Apr 18 12:11:33 1997 Jason Merrill <jason@yorick.cygnus.com> 1116650397Sobrien 1116750397Sobrien * call.c (build_user_type_conversion_1): If we're trying to 1116850397Sobrien convert to a REFERENCE_TYPE, only consider lvalue conversions. 1116950397Sobrien (build_new_function_call): Print candidates. 1117050397Sobrien (implicit_conversion): Try a temp binding if the lvalue conv is BAD. 1117150397Sobrien (reference_binding): Binding a temporary of a reference-related type 1117252284Sobrien is BAD. 1117350397Sobrien 1117418334SpeterThu Apr 17 14:37:22 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1117550397Sobrien 1117618334Speter * inc/typeinfo (type_info::before): Add cv-qualifier-seq. 1117750397Sobrien * tinfo2.cc (type_info::before): Likewise. 1117818334Speter 1117950397SobrienMon Apr 14 12:38:17 1997 Jason Merrill <jason@yorick.cygnus.com> 1118050397Sobrien 1118118334Speter * call.c (implicit_conversion): Oops. 1118250397Sobrien 1118318334SpeterFri Apr 11 02:18:30 1997 Jason Merrill <jason@yorick.cygnus.com> 1118450397Sobrien 1118518334Speter * call.c (implicit_conversion): Try to find a reference conversion 1118650397Sobrien before binding a const reference to a temporary. 1118718334Speter 1118850397SobrienWed Apr 2 12:51:36 1997 Mike Stump <mrs@cygnus.com> 1118950397Sobrien 1119050397Sobrien * exception.cc (__default_unexpected): Call terminate by default, 1119150397Sobrien so that if the user overrides terminate, the correct function will 1119250397Sobrien be called. 1119350397Sobrien 1119418334SpeterWed Mar 19 14:14:45 1997 Mike Stump <mrs@cygnus.com> 1119550397Sobrien 1119618334Speter * parse.y (left_curly): Avoid trying to use any fields of 1119750397Sobrien error_mark_node, as there aren't any. 1119818334Speter 1119950397SobrienThu Mar 13 16:33:22 1997 Jason Merrill <jason@yorick.cygnus.com> 1120018334Speter 1120150397Sobrien * lex.c (do_identifier): Avoid breaking on overloaded methods 1120250397Sobrien as default arguments. 1120318334Speter 1120450397SobrienWed Mar 12 13:55:10 1997 Hans-Peter Nilsson <Hans-Peter.Nilsson@axis.se> 1120518334Speter 1120650397Sobrien * call.c (add_template_candidate): Initialize the variable "dummy". 1120718334Speter 1120850397SobrienMon Mar 10 15:13:14 1997 Brendan Kehoe <brendan@canuck.cygnus.com> 1120918334Speter 1121050397Sobrien * decl.c (start_decl): Make sure TYPE isn't an error_mark_node 1121150397Sobrien before we try to use TYPE_SIZE and TREE_CONSTANT on it. 1121250397Sobrien 1121318334SpeterFri Mar 7 13:19:36 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1121450397Sobrien 1121550397Sobrien * cp-tree.h (comp_ptr_ttypes, more_specialized): Add decl. 1121618334Speter (debug_binfo): Delete decl, not needed. 1121750397Sobrien 1121818334Speter * tree.c (fnaddr_from_vtable_entry, function_arg_chain, 1121950397Sobrien promotes_to_aggr_type): Delete fns. 1122018334Speter * cp-tree.h (FNADDR_FROM_VTABLE_ENTRY, 1122150397Sobrien SET_FNADDR_FROM_VTABLE_ENTRY, FUNCTION_ARG_CHAIN, 1122218334Speter PROMOTES_TO_AGGR_TYPE): Delete alternates to #if 1. 1122350397Sobrien 1122450397Sobrien * decl.c (pending_invalid_xref{,_file,_line}): Delete unused vars. 1122552284Sobrien 1122650397Sobrien * friend.c (is_friend_type): Delete fn. 1122752284Sobrien * cp-tree.h (is_friend_type): Delete decl. 1122818334Speter 1122950397Sobrien * decl.c (original_result_rtx, double_ftype_double, 1123018334Speter double_ftype_double_double, int_ftype_int, long_ftype_long, 1123152284Sobrien float_ftype_float, ldouble_ftype_ldouble, last_dtor_insn): Make static. 1123250397Sobrien * typeck.c (original_result_rtx, warn_synth): Delete extern decls. 1123350397Sobrien 1123450397Sobrien * decl.c (push_overloaded_decl{,_top_level}): Make static, adding 1123550397Sobrien fwd decls. 1123650397Sobrien * cp-tree.h (push_overloaded_decl{,_top_level}): Delete decls. 1123750397Sobrien 1123818334Speter * decl.c (pushdecl_nonclass_level): #if 0, unused. 1123950397Sobrien * cp-tree.h (pushdecl_nonclass_level): #if 0 decl. 1124050397Sobrien 1124150397Sobrien * lex.c (reinit_lang_specific): #if 0, unused. 1124250397Sobrien * cp-tree.h (reinit_lang_specific): #if 0 decl. 1124350397Sobrien 1124450397Sobrien * decl.c (revert_static_member_fn): Make static, adding fwd decl. 1124550397Sobrien * cp-tree.h (revert_static_member_fn): Delete decl. 1124650397Sobrien 1124750397Sobrien * class.c (root_lang_context_p): Delete fn. 1124850397Sobrien * cp-tree.h (root_lang_context_p): Delete decl. 1124952284Sobrien 1125050397Sobrien * decl.c (set_current_level_tags_transparency): #if 0, unused. 1125118334Speter * cp-tree.h (set_current_level_tags_transparency): #if 0 decl. 1125250397Sobrien 1125350397Sobrien * lex.c (set_vardecl_interface_info): Make static. 1125418334Speter * cp-tree.h (set_vardecl_interface_info): Delete decl. 1125550397Sobrien 1125650397Sobrien * call.c (find_scoped_type): Make static. 1125752284Sobrien * cp-tree.h (find_scoped_type): Delete decl. 1125850397Sobrien 1125918334Speter * search.c (convert_pointer_to_vbase): Make static. 1126050397Sobrien * cp-tree.h (convert_pointer_to_vbase): Delete decl. 1126150397Sobrien 1126250397Sobrien * decl.c (const_ptr_type_node): Likewise. 1126318334Speter * cp-tree.h (const_ptr_type_node): Delete decl. 1126450397Sobrien 1126518334Speter * typeck.c (common_base_type): Make static. 1126650397Sobrien * cp-tree.h (common_base_types): Delete erroneous decl. 1126718334Speter 1126850397Sobrien * pt.c (classtype_mangled_name): Make static. 1126918334Speter * cp-tree.h (classtype_mangled_name): Delete decl. 1127050397Sobrien 1127118334Speter * lex.c (check_newline): Make static. 1127250397Sobrien * cp-tree.h (check_newline): Delete decl. 1127318334Speter 1127450397Sobrien * typeck.c (build_x_array_ref): Delete fn, same idea as 1127550397Sobrien grok_array_decl. 1127618334Speter * cp-tree.h (build_x_array_ref): Delete decl. 1127750397Sobrien 1127850397Sobrien * lex.c (copy_decl_lang_specific): Delete fn, same idea as 1127950397Sobrien copy_lang_decl. 1128018334Speter * cp-tree.h (copy_decl_lang_specific): #if 0 decl. 1128150397Sobrien 1128218334Speter * class.c (build_vtable_entry): Make static. 1128350397Sobrien * cp-tree.h (build_vtable_entry): Delete decl. 1128450397Sobrien 1128518334Speter * class.c (build_vbase_pointer): Make static. 1128650397Sobrien * cp-tree.h (build_vbase_pointer): Delete decl. 1128750397Sobrien 1128850397Sobrien * sig.c (build_sptr_ref): Add forward decl and make static. 1128950397Sobrien * cp-tree.h (build_sptr_ref): Delete decl. 1129050397Sobrien 1129150397Sobrien * call.c (build_new_method_call): Add forward decl and make static. 1129250397Sobrien * cp-tree.h (build_new_method_call): Delete decl. 1129350397Sobrien 1129418334Speter * call.c (build_object_call): Make static. 1129550397Sobrien * class.c (check_for_override, complete_type_p, mark_overriders): 1129618334Speter Likewise. 1129750397Sobrien * decl.c (cp_function_chain): Likewise. 1129850397Sobrien * lex.c (set_typedecl_interface_info, reinit_parse_for_block): 1129950397Sobrien Likewise. 1130050397Sobrien * pt.c (comp_template_args, get_class_bindings, push_tinst_level): 1130150397Sobrien Likewise. 1130250397Sobrien * tree.c (build_cplus_array_type_1): Likewise. 1130318334Speter * typeck.c (comp_ptr_ttypes_{const,real,reinterpret}): Likewise. 1130450397Sobrien (comp_target_parms): Likewise. 1130518334Speter 1130650397Sobrien * init.c (build_builtin_call): Make static. 1130750397Sobrien * cp-tree.h (build_builtin_call): Delete decl. 1130818334Speter 1130950397Sobrien * typeck.c (binary_op_error): Delete decl. 1131018334Speter * cp-tree.h (binary_op_error): Likewise. 1131150397Sobrien 1131218334SpeterThu Mar 6 16:13:52 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1131350397Sobrien 1131418334Speter * call.c (build_method_call): Compare against error_mark_node 1131550397Sobrien directly, rather than the ERROR_MARK tree code. 1131650397Sobrien * cvt.c (cp_convert): Likewise. 1131718334Speter * decl.c (print_binding_level): Likewise. 1131850397Sobrien (duplicate_decls): Likewise. 1131918334Speter (grokdeclarator): Likewise. 1132050397Sobrien (grokdeclarator): Likewise. 1132150397Sobrien * init.c (expand_aggr_init_1): Likewise. 1132250397Sobrien (decl_constant_value): Likewise. 1132352284Sobrien * method.c (build_opfncall): Likewise. 1132450397Sobrien (hack_identifier): Likewise. 1132518334Speter * typeck.c (build_modify_expr): Likewise. 1132650397Sobrien 1132750397Sobrien * typeck.c (build_c_cast): Don't decl TYPE as register tree. 1132818334Speter 1132950397SobrienSun Mar 2 02:54:36 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> 1133018334Speter 1133150397Sobrien * pt.c (unify): Strip NOP_EXPR wrappers before unifying integer values. 1133250397Sobrien 1133318334Speter * pt.c (coerce_template_parms): Add new error message. 1133450397Sobrien 1133518334Speter * method.c (build_overload_value): Implement name mangling for 1133650397Sobrien floating-point template arguments. 1133718334Speter 1133850397Sobrien * method.c (build_overload_int, icat, dicat): Fix mangling of template 1133918334Speter arguments whose absolute value doesn't fit in a signed word. 1134050397Sobrien 1134150397SobrienMon Mar 3 12:14:54 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1134218334Speter 1134350397Sobrien * friend.c: New file; put all of the friend stuff in here. 1134418334Speter * init.c: Instead of here. 1134550397Sobrien * Makefile.in (CXX_OBJS): Add friend.o. 1134650397Sobrien (friend.o): Add dependencies. 1134718334Speter * Make-lang.in (CXX_SRCS): Add $(srcdir)/cp/friend.c. 1134850397Sobrien 1134950397SobrienSun Mar 2 11:04:43 1997 Jason Merrill <jason@yorick.cygnus.com> 1135050397Sobrien 1135150397Sobrien * call.c (build_scoped_method_call): Complain if the scope isn't a 1135250397Sobrien base. 1135318334Speter 1135450397SobrienWed Feb 26 11:31:06 1997 Jason Merrill <jason@yorick.cygnus.com> 1135518334Speter 1135650397Sobrien * parse.y (left_curly): Don't crash on erroneous type. 1135750397Sobrien 1135818334Speter * init.c (build_delete): Fix type of ref. 1135950397Sobrien 1136050397SobrienTue Feb 25 12:41:48 1997 Jason Merrill <jason@yorick.cygnus.com> 1136150397Sobrien 1136250397Sobrien * search.c (get_vbase_1): Renamed from get_vbase. 1136318334Speter (get_vbase): Wrapper, now non-static. 1136450397Sobrien (convert_pointer_to_vbase): Now static. 1136550397Sobrien 1136650397Sobrien * call.c (build_scoped_method_call): Accept a binfo for BASETYPE. 1136718334Speter * init.c (build_delete): Pass one. 1136850397Sobrien (build_partial_cleanup_for): Use build_scoped_method_call. 1136950397Sobrien * decl.c (finish_function): Pass a binfo. 1137018334Speter 1137150397SobrienMon Feb 24 15:00:12 1997 Jason Merrill <jason@yorick.cygnus.com> 1137250397Sobrien 1137318334Speter * call.c (build_over_call): Only synthesize non-trivial copy ctors. 1137450397Sobrien 1137550397Sobrien * typeck.c (build_c_cast): Lose other reference to flag. 1137618334Speter 1137750397Sobrien * call.c (build_field_call): Don't look for [cd]tor_identifier. 1137850397Sobrien * decl2.c (delete_sanity): Remove meaningless use of 1137918334Speter LOOKUP_HAS_IN_CHARGE. 1138050397Sobrien * decl.c (finish_function): Use build_scoped_method_call instead 1138150397Sobrien of build_delete for running vbase dtors. 1138218334Speter * init.c (build_delete): Call overload resolution code instead of 1138350397Sobrien duplicating it badly. 1138450397Sobrien 1138518334SpeterThu Feb 20 15:12:15 1997 Jason Merrill <jason@yorick.cygnus.com> 1138650397Sobrien 1138750397Sobrien * call.c (build_over_call): Call mark_used before trying to elide 1138818334Speter the call. 1138950397Sobrien 1139050397Sobrien * decl.c (implicitly_declare): Don't set DECL_ARTIFICIAL. 1139118334Speter 1139250397SobrienWed Feb 19 11:18:53 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1139350397Sobrien 1139418334Speter * typeck.c (build_modify_expr): Always pedwarn for a cast to 1139550397Sobrien non-reference used as an lvalue. 1139650397Sobrien 1139718334SpeterWed Feb 19 10:35:37 1997 Jason Merrill <jason@yorick.cygnus.com> 1139850397Sobrien 1139950397Sobrien * cvt.c (cp_convert_to_pointer): Convert from 0 to a pmf properly. 1140018334Speter 1140150397SobrienTue Feb 18 15:40:57 1997 Jason Merrill <jason@yorick.cygnus.com> 1140250397Sobrien 1140318334Speter * parse.y (handler): Fix template typo. 1140450397Sobrien 1140550397SobrienSun Feb 16 02:12:28 1997 Jason Merrill <jason@yorick.cygnus.com> 1140650397Sobrien 1140718334Speter * error.c (lang_decl_name): New fn. 1140850397Sobrien * tree.c (lang_printable_name): Use it. 1140950397Sobrien 1141050397SobrienFri Feb 14 16:57:05 1997 Mike Stump <mrs@cygnus.com> 1141118334Speter 1141250397Sobrien * g++spec.c: Include config.h so that we can catch bzero #defines 1141350397Sobrien from the config file. 1141418334Speter 1141550397SobrienTue Feb 11 13:50:48 1997 Mike Stump <mrs@cygnus.com> 1141650397Sobrien 1141718334Speter * new1.cc: Include a declaration for malloc, to avoid warning, and 1141850397Sobrien avoid lossing on systems that require one (ones that define malloc 1141950397Sobrien in xm.h). 1142018334Speter 1142150397SobrienMon Feb 10 22:51:13 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> 1142250397Sobrien 1142318334Speter * decl2.c (max_tinst_depth): New variable. 1142450397Sobrien (lang_decode_option): Parse "-ftemplate-depth-NN" command line 1142550397Sobrien option. 1142650397Sobrien * pt.c (max_tinst_depth): Variable moved. 1142750397Sobrien * lang-options.h: Declare "-ftemplate-depth-NN" command line option 1142850397Sobrien as legal. 1142950397Sobrien 1143050397SobrienFri Feb 7 15:43:34 1997 Jason Merrill <jason@yorick.cygnus.com> 1143150397Sobrien 1143250397Sobrien * decl.c (xref_basetypes): Allow a base class that depends on 1143350397Sobrien template parms to be incomplete. 1143450397Sobrien 1143518334Speter * decl2.c (build_expr_from_tree): Support typeid(type). 1143650397Sobrien * rtti.c (get_typeid): Support templates. 1143750397Sobrien (expand_si_desc, expand_class_desc): Fix string length. 1143818334Speter (expand_ptr_desc, expand_attr_desc, expand_generic_desc): Likewise. 1143950397Sobrien 1144050397SobrienTue Feb 4 11:28:24 1997 Jason Merrill <jason@yorick.cygnus.com> 1144118334Speter 1144250397Sobrien * pt.c (unify, case TEMPLATE_CONST_PARM): Use cp_tree_equal. 1144318334Speter 1144450397Sobrien * pt.c (tsubst): Put it back for -fno-ansi-overloading. 1144550397Sobrien 1144650397SobrienMon Feb 3 18:41:12 1997 Jason Merrill <jason@yorick.cygnus.com> 1144750397Sobrien 1144850397Sobrien * pt.c (tsubst, case FUNCTION_DECL): Lose obsolete code that 1144950397Sobrien smashes together template and non-template decls of the same 1145050397Sobrien signature. 1145150397Sobrien 1145250397SobrienThu Jan 30 19:18:00 1997 Jason Merrill <jason@yorick.cygnus.com> 1145350397Sobrien 1145450397Sobrien * pt.c (tsubst): Don't recurse for the type of a TYPENAME_TYPE. 1145550397Sobrien 1145618334SpeterWed Jan 29 11:40:35 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1145750397Sobrien 1145818334Speter * decl.c (duplicate_decls): Next route, pedwarn about different 1145950397Sobrien exceptions if -pedantic *or* olddecl !DECL_IN_SYSTEM_HEADER. 1146018334Speter 1146150397SobrienTue Jan 28 20:43:29 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1146218334Speter 1146350397Sobrien * cp-tree.h (HAS_DEFAULT_IMPLEMENTATION): Delete macro. 1146418334Speter (struct lang_type): Delete has_default_implementation member. 1146550397Sobrien Increase dummy to 21. 1146650397Sobrien * decl.c (start_method): Delete usage. 1146718334Speter 1146850397Sobrien * cp-tree.h (build_call, null_ptr_cst_p, in_function_p, 1146950397Sobrien store_after_parms, start_decl_1, auto_function): Add decls. 1147018334Speter (get_arglist_len_in_bytes, declare_implicit_exception, 1147150397Sobrien have_exceptions_p, make_type_decl, typedecl_for_tag, 1147218334Speter store_in_parms, pop_implicit_try_blocks, push_exception_cleanup, 1147350397Sobrien build_component_type_expr, cplus_exception_name, 1147450397Sobrien {make,clear}_anon_parm_name, dont_see_typename): Removed decls. 1147550397Sobrien * call.c (build_this): Make static. 1147650397Sobrien (is_complete): Likewise. 1147750397Sobrien (implicit_conversion): Likewise. 1147818334Speter (reference_binding): Likewise. 1147950397Sobrien (standard_conversion): Likewise. 1148018334Speter (strip_top_quals): Likewise. 1148150397Sobrien (non_reference): Likewise. 1148250397Sobrien (build_conv): Likewise. 1148318334Speter (user_harshness): Likewise. 1148450397Sobrien (rank_for_ideal): Likewise. 1148518334Speter * decl.c (start_decl_1): Delete forward decl. 1148650397Sobrien (push_decl_level): Make static. 1148718334Speter (resume_binding_level): Make static. 1148850397Sobrien (namespace_bindings_p): Make static. 1148918334Speter (declare_namespace_level): Make static. 1149050397Sobrien (lookup_name_real): Make static. 1149118334Speter (duplicate_decls): Make static. Take register off NEWDECL and 1149250397Sobrien OLDDECL parm decls. 1149350397Sobrien * decl2.c (get_sentry): Make static. 1149450397Sobrien (temp_name_p): Delete fn. 1149518334Speter * except.c (auto_function): Delete decl. 1149650397Sobrien * lex.c (handle_{cp,sysv}_pragma): Make static. 1149750397Sobrien (handle_sysv_pragma) [HANDLE_SYSV_PRAGMA]: Add forward decl. 1149850397Sobrien * method.c (do_build_{copy_constructor,assign_ref}): Make static. 1149950397Sobrien * pt.c (tsubst_expr_values): Make static. 1150018334Speter * rtti.c (combine_strings): Delete decl. 1150150397Sobrien 1150218334SpeterTue Jan 28 16:40:40 1997 Jason Merrill <jason@yorick.cygnus.com> 1150350397Sobrien 1150418334Speter * pt.c (push_template_decl): Handle getting a typedef. 1150550397Sobrien 1150618334Speter * call.c (build_new_function_call): Complain about void arg. 1150750397Sobrien 1150850397SobrienTue Jan 28 15:25:09 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1150950397Sobrien 1151050397Sobrien * decl.c (duplicate_decls): Give pedwarn of different exceptions 1151150397Sobrien if -pedantic, instead of olddecl !DECL_IN_SYSTEM_HEADER. 1151250397Sobrien 1151350397SobrienMon Jan 27 19:21:29 1997 Mike Stump <mrs@cygnus.com> 1151418334Speter 1151550397Sobrien * except.c (expand_throw): Don't expand the cleanup tree here, 1151618334Speter since we are not going to write the rtl out. Fixes problem with 1151750397Sobrien -g -O on SPARC. 1151850397Sobrien 1151918334SpeterMon Jan 27 16:24:35 1997 Sean McNeil <sean@mcneil.com> 1152050397Sobrien 1152118334Speter * Make-lang.in: Add $(exeext) as necessary. 1152250397Sobrien 1152318334SpeterMon Jan 27 13:20:39 1997 Mike Stump <mrs@cygnus.com> 1152450397Sobrien 1152550397Sobrien * parse.y (handler_seq): Must have at least one catch clause. 1152618334Speter 1152750397SobrienSat Jan 25 12:00:05 1997 Jason Merrill <jason@yorick.cygnus.com> 1152818334Speter 1152950397Sobrien * call.c (add_builtin_candidate): Restore ?: hack. 1153018334Speter 1153150397Sobrien * decl.c (grok_op_properties): More warnings. 1153218334Speter 1153350397SobrienSat Jan 25 08:50:03 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1153418334Speter 1153550397Sobrien * decl.c (duplicate_decls): On second thought, do it as a pedwarn 1153618334Speter still but only if !DECL_IN_SYSTEM_HEADER (olddecl). 1153750397Sobrien 1153850397Sobrien * decl.c (duplicate_decls): Scale back to a warning, and only do 1153918334Speter 'em if -pedantic. 1154050397Sobrien 1154118334SpeterFri Jan 24 17:52:54 1997 Mike Stump <mrs@cygnus.com> 1154250397Sobrien 1154350397Sobrien * decl.c (duplicate_decls): pedwarn mismatched exception 1154418334Speter specifications. 1154550397Sobrien 1154618334SpeterThu Jan 23 18:18:54 1997 Mike Stump <mrs@cygnus.com> 1154750397Sobrien 1154850397Sobrien * call.c (build_new_method_call): Don't display the invisible 1154950397Sobrien argument for controlling virtual bases. 1155018334Speter 1155152284SobrienThu Jan 23 16:48:10 1997 Mike Stump <mrs@cygnus.com> 1155218334Speter 1155350397Sobrien * new: Add nothrow new and delete, bad_alloc and throw specifications 1155450397Sobrien for delete. 1155550397Sobrien * decl.c (init_decl_processing): Add throw specification for delete. 1155650397Sobrien * new.cc (nothrow): Define. 1155750397Sobrien * lex.c (real_yylex): Removing warning that throw and friends are 1155850397Sobrien keywords. 1155918334Speter * new1.cc (operator new (size_t sz, const nothrow_t&)): Define. 1156050397Sobrien * new2.cc (operator new[] (size_t sz, const nothrow_t&): Define. 1156118334Speter * Make-lang.in: Add new{1,2}.{cc,o}. 1156250397Sobrien 1156350397SobrienThu Jan 23 16:39:06 1997 Jason Merrill <jason@yorick.cygnus.com> 1156418334Speter 1156550397Sobrien * lex.c (cons_up_default_function): Fix return type of synth op=. 1156650397Sobrien 1156750397Sobrien * init.c (emit_base_init): Add warnings for uninitialized members 1156850397Sobrien and bases. 1156918334Speter 1157050397Sobrien * decl.c (xref_basetypes): Add warning for non-polymorphic type 1157118334Speter with destructor used as base type. 1157250397Sobrien 1157318334Speter * decl.c (grok_op_properties): Add warning for op= returning void. 1157450397Sobrien * typeck.c (c_expand_return): Add warning for op= returning anything 1157518334Speter other than *this. 1157650397Sobrien 1157718334Speter * class.c (finish_struct_1): Add warning for class with pointers 1157850397Sobrien but not copy ctor or copy op=. 1157950397Sobrien 1158050397Sobrien * cp-tree.h (TI_PENDING_TEMPLATE_FLAG): New macro. 1158118334Speter * pt.c (add_pending_template): Use it instead of LANG_FLAG_0. 1158250397Sobrien (instantiate_template): If -fexternal-templates, add this 1158318334Speter instantiation to pending_templates. 1158450397Sobrien 1158518334Speter * decl2.c (copy_assignment_arg_p): Disable old hack to support 1158650397Sobrien Booch components. 1158718334Speter 1158850397SobrienTue Jan 21 18:32:04 1997 Mike Stump <mrs@cygnus.com> 1158950397Sobrien 1159018334Speter * cvt.c (cp_convert): pedwarn enum to pointer conversions. 1159150397Sobrien 1159218334SpeterMon Jan 20 17:59:51 1997 Jason Merrill <jason@yorick.cygnus.com> 1159350397Sobrien 1159450397Sobrien * call.c (standard_conversion): Handle getting references. Tack 1159550397Sobrien on RVALUE_CONV here. Do it for non-class types, too. 1159650397Sobrien (reference_binding): Pass references to standard_conversion. 1159718334Speter (implicit_conversion): Likewise. 1159850397Sobrien (add_builtin_candidate): Disable one ?: kludge. 1159950397Sobrien (convert_like): Handle RVALUE_CONVs for non-class types. 1160050397Sobrien (joust): Disable the other ?: kludge. 1160150397Sobrien 1160250397SobrienMon Jan 20 14:53:13 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1160350397Sobrien 1160450397Sobrien * decl.c (init_decl_processing): Add code to build up common 1160550397Sobrien function types beforehand, to avoid creation then removal of 1160650397Sobrien things already in the hash table. 1160750397Sobrien 1160850397SobrienMon Jan 20 14:43:49 1997 Jason Merrill <jason@yorick.cygnus.com> 1160950397Sobrien 1161050397Sobrien * decl.c (finish_function): Also zero out DECL_INCOMING_RTL for 1161150397Sobrien the arguments. 1161250397Sobrien 1161350397Sobrien * error.c (dump_expr, TEMPLATE_CONST_PARM): Don't require 1161450397Sobrien current_template_parms. 1161550397Sobrien 1161650397SobrienFri Jan 17 10:25:42 1997 Jason Merrill <jason@yorick.cygnus.com> 1161750397Sobrien 1161850397Sobrien * search.c (lookup_field): Don't return a function, check want_type. 1161950397Sobrien 1162050397SobrienThu Jan 16 18:14:35 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1162150397Sobrien 1162250397Sobrien * init.c (build_new): Make sure PLACEMENT has a type. 1162350397Sobrien 1162450397SobrienThu Jan 16 17:40:28 1997 Jason Merrill <jason@yorick.cygnus.com> 1162550397Sobrien 1162650397Sobrien * init.c (build_new): Support new (nothrow). 1162750397Sobrien 1162850397SobrienWed Jan 15 12:38:14 1997 Jason Merrill <jason@yorick.cygnus.com> 1162950397Sobrien 1163050397Sobrien * pt.c (instantiate_decl): Also do push_to_top_level before setting 1163118334Speter up DECL_INITIAL. 1163250397Sobrien 1163318334Speter * cp-tree.h (PARM_DEFAULT_FROM_TEMPLATE): New macro. 1163450397Sobrien * pt.c (tsubst): Defer instantiation of default args. 1163518334Speter * call.c (build_over_call): Until here. 1163650397Sobrien 1163718334SpeterWed Jan 15 10:08:10 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1163850397Sobrien 1163918334Speter * search.c (lookup_field): Make sure we have an 1164050397Sobrien IDENTIFIER_CLASS_VALUE before we try to return it. 1164150397Sobrien 1164218334SpeterThu Jan 9 07:19:01 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 1164350397Sobrien 1164418334Speter * call.c (build_method_call): Delete unused var PARM. 1164550397Sobrien (build_overload_call_real): Likewise. 1164650397Sobrien (build_object_call): Delete unused var P. 1164750397Sobrien (build_new_op): Likewise. 1164818334Speter * decl.c (builtin_type_tdescs_{arr, len, max}): #if 0 out static 1164950397Sobrien var definitions, which are never used. 1165018334Speter (shadow_tag): Delete unused var FN. 1165150397Sobrien * expr.c (cplus_expand_expr): Delete unused var ORIGINAL_TARGET. 1165218334Speter * init.c (build_new): Delete unused var ALLOC_TEMP. 1165350397Sobrien * method.c (hack_identifier): Delete unused var CONTEXT. 1165418334Speter (do_build_copy_constructor): Delete unused var NAME. 1165550397Sobrien (synthesize_method): Delete unused var BASE. 1165618334Speter * pt.c (lookup_template_class): Delete unused var CODE_TYPE_NODE. 1165750397Sobrien * rtti.c (build_headof): Delete unused var VPTR. 1165818334Speter (get_typeid): Delete unused var T. 1165950397Sobrien * typeck.c (build_conditional_expr): Delete unused vars ORIG_OP1 1166018334Speter and ORIG_OP2. 1166150397Sobrien (build_ptrmemfunc): Delete unused vars U and NINDEX. 1166218334Speter * typeck2.c (build_functional_cast): Delete unused var BINFO. 1166350397Sobrien 1166418334SpeterWed Jan 8 13:09:54 1997 Jason Merrill <jason@yorick.cygnus.com> 1166550397Sobrien 1166650397Sobrien * search.c (lookup_field): Use IDENTIFIER_CLASS_VALUE to look up 1166718334Speter things in a type being defined. 1166850397Sobrien * decl.c (finish_enum): Reverse the values so that they are in 1166950397Sobrien the correct order. 1167018334Speter 1167150397Sobrien * pt.c (instantiate_class_template): Don't initialize 1167218334Speter BINFO_BASETYPES until the vector is filled out. 1167350397Sobrien (unify): Don't abort on conflicting bindings, just fail. 1167450397Sobrien (instantiate_decl): Do push_tinst_level before any tsubsting. 1167518334Speter 1167650397Sobrien * method.c (build_overload_value): Handle getting a 1167718334Speter TEMPLATE_CONST_PARM for a pointer. 1167850397Sobrien 1167950397SobrienTue Jan 7 14:00:58 1997 Jason Merrill <jason@yorick.cygnus.com> 1168018334Speter 1168150397Sobrien * init.c (expand_member_init): Don't give 'not a base' error for 1168218334Speter templates. 1168350397Sobrien 1168450397Sobrien * pt.c (instantiate_decl): Call import_export_decl later. 1168550397Sobrien 1168650397Sobrien * pt.c (instantiate_class_template): Return a value. 1168750397Sobrien 1168850397Sobrien * parse.y (extension): New rule for __extension__. 1168950397Sobrien (extdef, unary_expr, decl, component_decl): Use it. 1169050397Sobrien 1169150397SobrienTue Jan 7 09:20:28 1997 Mike Stump <mrs@cygnus.com> 1169218334Speter 1169350397Sobrien * class.c (base_binfo): Remove unused base_has_virtual member. 1169418334Speter (finish_base_struct): Likewise. 1169550397Sobrien (finish_struct_1): Likewise. 1169618334Speter 1169750397SobrienTue Dec 31 20:25:50 1996 Mike Stump <mrs@cygnus.com> 1169850397Sobrien 1169918334Speter * search.c (expand_upcast_fixups): Fix bogus code generation 1170050397Sobrien problem where the generated code uses the wrong index into the 1170150397Sobrien runtime built vtable on the stack. Old code could clobber random 1170218334Speter stack values. 1170350397Sobrien 1170450397SobrienTue Dec 31 15:16:56 1996 Mike Stump <mrs@cygnus.com> 1170550397Sobrien 1170618334Speter * init.c (perform_member_init): Make sure the partial EH cleanups 1170750397Sobrien live on the function_obstack. 1170850397Sobrien 1170918334SpeterFri Dec 27 10:31:40 1996 Paul Eggert <eggert@twinsun.com> 1171050397Sobrien 1171150397Sobrien * Make-lang.in (g++spec.o): Don't use $< with an explicit target; 1171250397Sobrien this isn't portable to some versions of `make' (e.g. Solaris 2.5.1). 1171350397Sobrien 1171418334SpeterTue Dec 24 10:24:03 1996 Jeffrey A Law <law@cygnus.com> 1171550397Sobrien 1171650397Sobrien * decl.c (grokvardecl): Avoid ANSI style initialization. 1171718334Speter 1171850397SobrienSun Dec 22 04:22:06 1996 Jason Merrill <jason@yorick.cygnus.com> 1171918334Speter 1172052284Sobrien * pt.c (tsubst): Tweak arg types for a FUNCTION_TYPE. 1172118334Speter 1172250397SobrienFri Dec 20 17:09:25 1996 Jason Merrill <jason@yorick.cygnus.com> 1172318334Speter 1172450397Sobrien * pt.c (instantiate_class_template): Call grok_{ctor,op}_properties. 1172550397Sobrien 1172650397SobrienFri Dec 20 12:17:12 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1172750397Sobrien 1172850397Sobrien * g++spec.c (lang_specific_driver): Put missing hyphen in front of 1172950397Sobrien arguments we compare against. Start the count of I at 1, not 0, 1173050397Sobrien since argv[0] is still the command. 1173118334Speter 1173250397SobrienThu Dec 19 11:53:57 1996 Stan Shebs <shebs@andros.cygnus.com> 1173318334Speter 1173450397Sobrien * lang-specs.h: Accept .cp as an C++ extension. 1173550397Sobrien 1173650397SobrienMon Dec 16 22:43:31 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1173718334Speter 1173850397Sobrien * cp-tree.h (ptr_reasonably_similar): Add decl. 1173918334Speter 1174050397SobrienThu Dec 12 15:00:35 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1174150397Sobrien 1174218334Speter * decl.c (grokvardecl): Change SPECBITS parm to be the SPECBITS_IN 1174350397Sobrien pointer. New local SPECBITS with the parm's value. 1174450397Sobrien (grokdeclarator): Pass &specbits down. 1174518334Speter 1174650397Sobrien * parse.y (expr_no_commas): Make sure $$ is not an error_mark_node 1174718334Speter before we try to do C_SET_EXP_ORIGINAL_CODE on it. 1174850397Sobrien 1174918334Speter * search.c (envelope_add_decl): Check that the CLASSTYPE_CID of 1175050397Sobrien CONTEXT is not 0 before we try to use TYPE_DERIVES_FROM. 1175118334Speter 1175250397Sobrien * decl.c (cplus_expand_expr_stmt): Only expand the expr if EXP is 1175318334Speter not an error_mark_node. 1175450397Sobrien 1175518334SpeterSat Dec 7 17:20:22 1996 Jason Merrill <jason@yorick.cygnus.com> 1175650397Sobrien 1175718334Speter * cp-tree.h (TYPE_MAIN_DECL): Use TYPE_STUB_DECL. 1175850397Sobrien * *.c: Use TYPE_MAIN_DECL instead of TYPE_NAME where appropriate. 1175918334Speter 1176050397SobrienFri Dec 6 14:40:09 1996 Jason Merrill <jason@yorick.cygnus.com> 1176150397Sobrien 1176218334Speter * decl.c (grokdeclarator): When giving an anonymous struct a name, 1176350397Sobrien replace TYPE_NAME instead of TYPE_IDENTIFIER (so TYPE_STUB_DECL is 1176450397Sobrien not affected). 1176550397Sobrien 1176618334Speter * typeck2.c (build_m_component_ref): If component is a pointer 1176750397Sobrien to data member, resolve the OFFSET_REF now. 1176818334Speter 1176950397Sobrien * call.c (convert_like): Don't go into infinite recursion. 1177050397Sobrien 1177118334Speter * pt.c (coerce_template_parms): Use tsubst_expr for non-type args. 1177250397Sobrien 1177318334Speter * class.c (finish_struct_1): Set DECL_ARTIFICIAL on the vptr. 1177450397Sobrien * tree.c (layout_basetypes): And on the vbase ptr. 1177550397Sobrien 1177650397SobrienThu Dec 5 02:11:28 1996 Jason Merrill <jason@yorick.cygnus.com> 1177750397Sobrien 1177850397Sobrien * decl.c (BOOL_TYPE_SIZE): Define in terms of POINTER_SIZE or 1177950397Sobrien CHAR_TYPE_SIZE so bool is always the same size as another type. 1178050397Sobrien 1178150397Sobrien * decl.c (pushtag): Set DECL_IGNORED_P for DWARF, too. 1178250397Sobrien 1178350397SobrienTue Dec 3 23:18:37 1996 Jason Merrill <jason@yorick.cygnus.com> 1178450397Sobrien 1178550397Sobrien * decl2.c (grok_x_components): Remove synthesized methods from 1178650397Sobrien TYPE_METHODS of an anonymous union, complain about member 1178750397Sobrien functions. 1178850397Sobrien * decl.c (shadow_tag): Wipe out memory of synthesized methods in 1178950397Sobrien anonymous unions. 1179050397Sobrien (finish_function): Just clear the DECL_RTL of our arguments. 1179150397Sobrien 1179250397SobrienFri Nov 29 21:54:17 1996 Jason Merrill <jason@yorick.cygnus.com> 1179318334Speter 1179450397Sobrien * decl2.c (finish_file): Emit DWARF debugging info for static data 1179518334Speter members. 1179650397Sobrien 1179750397Sobrien * pt.c (tsubst): If t is a stub decl, return the stub decl for type. 1179850397Sobrien 1179950397SobrienWed Nov 27 14:47:15 1996 Bob Manson <manson@charmed.cygnus.com> 1180018334Speter 1180150397Sobrien * typeck.c (build_component_ref): Don't die if COMPONENT isn't a 1180250397Sobrien IDENTIFIER_NODE. 1180350397Sobrien 1180450397SobrienWed Nov 27 16:05:19 1996 Michael Meissner <meissner@tiktok.cygnus.com> 1180518334Speter 1180650397Sobrien * Make-lang.in (g++-cross$(exeext)): Fix typo. 1180750397Sobrien 1180818334SpeterWed Nov 27 08:14:00 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1180950397Sobrien 1181018334Speter Make the g++ driver now be a standalone program, rather than one 1181150397Sobrien that tries to run the gcc driver after munging up the options. 1181250397Sobrien * Make-lang.in (g++.c, g++spec.o): New rules. 1181318334Speter (g++.o): New rule, based on gcc.o with -DLANG_SPECIFIC_DRIVER 1181450397Sobrien added. 1181518334Speter (g++$(exeext)): New rule, based on xgcc rule. 1181650397Sobrien (g++-cross$(exeext)): Now just copies g++$(exeext) over. 1181718334Speter * g++spec.c: New file. 1181850397Sobrien * g++.c: Removed file. 1181950397Sobrien 1182018334SpeterTue Nov 26 19:01:09 1996 Mike Stump <mrs@cygnus.com> 1182150397Sobrien 1182218334Speter * cvt.c (build_up_reference): Arrange for any temporary values 1182350397Sobrien that have been keep in registers until now to be put into memory. 1182450397Sobrien 1182550397SobrienMon Nov 25 15:16:41 1996 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1182618334Speter 1182750397Sobrien * Make-lang.in (c++.stage[1234]): Depend upon stage[1-4]-start, so 1182818334Speter that make -j3 bootstrap works better. 1182950397Sobrien 1183050397SobrienSun Nov 24 02:09:39 1996 Jason Merrill <jason@yorick.cygnus.com> 1183150397Sobrien 1183250397Sobrien * decl.c (pushtag): Do pushdecl for anon tags. 1183318334Speter 1183450397SobrienThu Nov 21 16:30:24 1996 Jason Merrill <jason@yorick.cygnus.com> 1183518334Speter 1183650397Sobrien * typeck.c (c_expand_return): Fix logic. 1183750397Sobrien (unary_complex_lvalue): Avoid unused warning on address of INIT_EXPR. 1183818334Speter 1183950397SobrienWed Nov 20 18:47:31 1996 Bob Manson <manson@charmed.cygnus.com> 1184018334Speter 1184150397Sobrien * g++.c (main): Make sure arglist has a final NULL entry. Add 1184250397Sobrien PEXECUTE_LAST to the flags passed to pexecute, as otherwise 1184318334Speter stdin/stdout of the invoked program are redirected to 1184452284Sobrien nowheresville. 1184518334Speter 1184650397SobrienTue Nov 19 16:12:44 1996 Jason Merrill <jason@yorick.cygnus.com> 1184718334Speter 1184850397Sobrien * decl.c (implicitly_declare): Set DECL_ARTIFICIAL. 1184918334Speter 1185050397SobrienTue Nov 19 15:48:19 1996 Mike Stump <mrs@cygnus.com> 1185118334Speter 1185250397Sobrien * init.c (resolve_offset_ref): Handle obj.vfn better. 1185318334Speter * typeck.c (build_component_ref): Set TREE_TYPE on result from 1185450397Sobrien build_vfn_ref. 1185518334Speter 1185650397SobrienTue Nov 19 13:14:33 1996 Mike Stump <mrs@cygnus.com> 1185718334Speter 1185850397Sobrien * typeck.c (convert_for_assignment): Also handle anachronistic 1185950397Sobrien implicit conversions from (::*)() to cv void*. 1186050397Sobrien * cvt.c (cp_convert_to_pointer): Likewise. 1186118334Speter 1186250397SobrienMon Nov 18 17:05:26 1996 Jason Merrill <jason@yorick.cygnus.com> 1186318334Speter 1186450397Sobrien * lex.c (handle_cp_pragma): Fix bogus warning. 1186518334Speter 1186650397SobrienMon Nov 18 16:10:43 1996 Mike Stump <mrs@cygnus.com> 1186718334Speter 1186850397Sobrien * cvt.c (cp_convert_to_pointer): Avoid thinking a POINTER_TYPE 1186918334Speter (METHOD_TYPE) is a TYPE_PTRMEMFUNC_P. 1187050397Sobrien 1187118334SpeterThu Nov 14 23:18:17 1996 Jason Merrill <jason@yorick.cygnus.com> 1187250397Sobrien 1187350397Sobrien * class.c (finish_struct_1): Support DWARF2_DEBUG. 1187450397Sobrien * search.c (dfs_debug_mark): Likewise. 1187518334Speter * decl2.c (finish_vtable_vardecl): Likewise. 1187650397Sobrien * decl.c (pushtag, finish_enum): Likewise. 1187750397Sobrien * lex.c (check_newline): Use debug_* instead of calling *out 1187818334Speter functions directly. 1187950397Sobrien 1188050397SobrienThu Nov 14 15:21:46 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1188118334Speter 1188250397Sobrien * Make-lang.in (cplib2.ready): Add else clause to avoid problems 1188350397Sobrien on some picky hosts. 1188418334Speter 1188550397SobrienWed Nov 13 12:32:07 1996 Jason Merrill <jason@yorick.cygnus.com> 1188618334Speter 1188750397Sobrien * class.c (finish_struct_1): A class has a non-trivial copy 1188850397Sobrien constructor if it has virtual functions. 1188952284Sobrien 1189050397Sobrien * cvt.c (cp_convert): Always call a constructor. 1189118334Speter 1189250397Sobrien * call.c (reference_binding): Still tack on a REF_BIND 1189350397Sobrien for bad conversions. 1189450397Sobrien (build_user_type_conversion_1): Propagate ICS_BAD_FLAG. 1189518334Speter 1189650397Sobrien * typeck.c (convert_arguments): Pass LOOKUP_ONLYCONVERTING. 1189750397Sobrien (c_expand_return): Likewise. 1189818334Speter * typeck2.c (digest_init): Likewise for { }. 1189950397Sobrien * init.c (expand_aggr_init_1): Keep the CONSTRUCTOR handling. 1190018334Speter * cvt.c (cp_convert): Handle failure better. 1190150397Sobrien 1190218334SpeterWed Nov 13 11:51:20 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1190350397Sobrien 1190450397Sobrien * g++.c (main): Also set PEXECUTE_SEARCH, to make the invocation 1190518334Speter of GCC be path-relative. 1190650397Sobrien 1190718334SpeterWed Nov 13 11:27:16 1996 Michael Meissner <meissner@tiktok.cygnus.com> 1190850397Sobrien 1190950397Sobrien * Make-lang.in (g++-cross): G++-cross doesn't need version.o, but 1191018334Speter it does need choose-temp.o and pexecute.o. 1191150397Sobrien 1191218334SpeterWed Nov 13 07:53:38 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1191350397Sobrien 1191418334Speter * g++.c (error) [!HAVE_VPRINTF]: Put error back for the only time 1191550397Sobrien that we still use it. 1191650397Sobrien (P_tmpdir, R_OK, W_OK, X_OK) [__MSDOS__]: Delete unnecessary macros. 1191750397Sobrien 1191850397SobrienWed Nov 13 02:00:26 1996 Jason Merrill <jason@yorick.cygnus.com> 1191950397Sobrien 1192050397Sobrien * init.c (expand_default_init): Avoid calling constructors to 1192150397Sobrien initialize reference temps. 1192250397Sobrien 1192350397Sobrien * cvt.c (convert_to_reference): Fix. 1192450397Sobrien 1192518334SpeterTue Nov 12 19:10:07 1996 Jason Merrill <jason@yorick.cygnus.com> 1192618334Speter 1192750397Sobrien * cvt.c (cp_convert): Simplify for flag_ansi_overloading. 1192818334Speter (convert_to_reference): Likewise. 1192950397Sobrien * typeck.c (convert_for_initialization): Likewise. 1193018334Speter * init.c (expand_default_init): Likewise. 1193150397Sobrien (expand_aggr_init_1): Likewise. 1193250397Sobrien * cp-tree.h (CONV_NONCONVERTING): Lose. 1193318334Speter * typeck.c (build_c_cast): Lose allow_nonconverting parm. 1193450397Sobrien * *.c: Adjust. 1193518334Speter * call.c (build_user_type_conversion_1): Assume LOOKUP_ONLYCONVERTING. 1193650397Sobrien 1193718334SpeterTue Nov 12 16:29:04 1996 Brendan Kehoe <brendan@canuck.cygnus.com> 1193850397Sobrien 1193918334Speter * pt.c (tsubst_expr): Reverse args to expand_start_catch_block. 1194050397Sobrien 1194150397SobrienTue Nov 12 15:26:17 1996 Jason Merrill <jason@yorick.cygnus.com> 1194250397Sobrien 1194350397Sobrien * init.c (expand_aggr_init_1): Don't crash on non-constructor 1194450397Sobrien TARGET_EXPR. 1194550397Sobrien 1194650397SobrienTue Nov 12 14:00:50 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1194750397Sobrien 1194850397Sobrien * g++.c: Include gansidecl.h. 1194918334Speter (VPROTO, PVPROTO, VA_START): Delete. 1195050397Sobrien (choose_temp_base_try, choose_temp_base, perror_exec, 1195118334Speter run_dos) [__MSDOS__]: Delete fns. 1195250397Sobrien (pfatal_with_name): Delete fn. 1195350397Sobrien (temp_filename): Declare like in gcc.c. 1195418334Speter (pexecute, pwait, choose_temp_base): Declare from gcc.c. 1195550397Sobrien (error_count, signal_count): Define. 1195618334Speter (error): Delete both definitions. 1195750397Sobrien (PEXECUTE_{FIRST,LAST,SEARCH,VERBOSE}): Define from gcc.c. 1195850397Sobrien (pfatal_pexecute): Add fn from gcc.c. 1195918334Speter (main): Rename local VERBOSE var to VERBOSE_FLAG. Rewrite the 1196050397Sobrien code to use the pexecute stuff also used by gcc.c. 1196118334Speter (MIN_FATAL_STATUS): Define. 1196250397Sobrien * Make-lang.in (g++): Add dependency on and linking with 1196318334Speter choose-temp.o and pexecute.o. 1196450397Sobrien 1196518334Speter * cp-tree.h: Include gansidecl.h. 1196650397Sobrien (STDIO_PROTO): Delete #undef/#define. 1196750397Sobrien * cvt.c (NULL): Delete #undef/#define. 1196818334Speter * expr.c (NULL): Likewise. 1196950397Sobrien * init.c (NULL): Likewise. 1197018334Speter * rtti.c (NULL): Likewise. 1197150397Sobrien * xref.c (NULL): Likewise. 1197250397Sobrien 1197350397Sobrien * cp-tree.h (build_user_type_conversion): Add prototype. 1197450397Sobrien * call.c (build_user_type_conversion): Delete prototype. Correct 1197518334Speter decl of FLAGS arg to be an int. 1197650397Sobrien * cvt.c (build_user_type_conversion): Likewise. 1197718334Speter 1197850397SobrienTue Nov 12 12:16:20 1996 Jason Merrill <jason@yorick.cygnus.com> 1197918334Speter 1198050397Sobrien * cp-tree.def: Add TRY_BLOCK and HANDLER. 1198118334Speter * except.c (expand_start_catch_block): Support templates. 1198250397Sobrien * parse.y (try_block, handler_seq): Likewise. 1198350397Sobrien * pt.c (tsubst_expr): Support TRY_BLOCK and HANDLER. 1198450397Sobrien 1198518334SpeterMon Nov 11 13:57:31 1996 Jason Merrill <jason@yorick.cygnus.com> 1198650397Sobrien 1198718334Speter * pt.c (current_template_args): New fn. 1198850397Sobrien (push_template_decl): Use it. 1198950397Sobrien * decl.c (grokdeclarator): Use it. 1199050397Sobrien 1199118334Speter * decl2.c (build_expr_from_tree): Dereference ref vars. 1199250397Sobrien 1199318334Speter * decl.c (grokdeclarator): Generalize handling of TYPENAME_TYPEs in 1199450397Sobrien the decl-specifier-seq. 1199518334Speter 1199650397Sobrien * decl.c (grok_op_properties): Don't force the type of a conversion 1199718334Speter op to be complete. Don't warn about converting to the same type 1199850397Sobrien for template instantiations. 1199950397Sobrien 1200018334Speter * decl2.c (finish_file): Don't call instantiate_decl on synthesized 1200150397Sobrien methods. 1200218334Speter 1200350397SobrienMon Nov 11 13:20:34 1996 Bob Manson <manson@charmed.cygnus.com> 1200450397Sobrien 1200550397Sobrien * typeck.c (get_delta_difference): Remove previous bogusness. 1200650397Sobrien Don't give errors if force is set. 1200750397Sobrien 1200850397SobrienFri Nov 8 17:38:44 1996 Jason Merrill <jason@yorick.cygnus.com> 1200918334Speter 1201050397Sobrien * decl2.c (finish_file): Don't emit debug info. 1201118334Speter * decl.c (pushdecl): Lose obsolete code. 1201250397Sobrien (grokdeclarator): Still do the long long thing after complaining. 1201350397Sobrien * search.c (note_debug_info_needed): Don't do anything if we're in a 1201418334Speter template. 1201550397Sobrien * method.c (synthesize_method): For non-local classes, 1201618334Speter push_to_top_level first. 1201750397Sobrien 1201850397SobrienFri Nov 8 11:52:28 1996 Bob Manson <manson@charmed.cygnus.com> 1201918334Speter 1202050397Sobrien * typeck.c (get_delta_difference): Add no_error parameter. 1202118334Speter (build_ptrmemfunc): Call get_delta_difference with no_error set; 1202250397Sobrien we don't want error messages when converting unrelated 1202350397Sobrien pointer-to-member functions. 1202450397Sobrien 1202518334SpeterThu Nov 7 11:16:24 1996 Mike Stump <mrs@cygnus.com> 1202650397Sobrien 1202750397Sobrien * error.c (dump_expr): Improve the wording on error messages that 1202850397Sobrien involve pointer to member functions. 1202950397Sobrien 1203050397SobrienTue Nov 5 17:12:05 1996 Mike Stump <mrs@cygnus.com> 1203118334Speter 1203250397Sobrien * cvt.c (cp_convert_to_pointer): Move code for conversions from 1203318334Speter (::*)() to void* or (*)() up a bit, so that we can convert from 1203450397Sobrien METHOD_TYPEs as well. 1203552284Sobrien 1203618334SpeterTue Nov 5 14:54:17 1996 Jason Merrill <jason@yorick.cygnus.com> 1203750397Sobrien 1203818334Speter * rtti.c (get_tinfo_fn): Make sure 'type' is permanent. 1203950397Sobrien There are no 'member' types. 1204050397Sobrien (get_tinfo_fn_dynamic): Diagnose typeid of overloaded fn. 1204118334Speter (build_x_typeid): Handle errors. 1204250397Sobrien 1204318334SpeterMon Nov 4 17:43:12 1996 Mike Stump <mrs@cygnus.com> 1204450397Sobrien 1204550397Sobrien * typeck.c (convert_for_assignment): Handle anachronistic implicit 1204650397Sobrien conversions from (::*)() to void* or (*)(). 1204718334Speter * cvt.c (cp_convert_to_pointer): Likewise. 1204850397Sobrien (cp_convert_to_pointer_force): Remove cp_convert_to_pointer 1204918334Speter conversions from here. 1205052284Sobrien * decl2.c (lang_decode_option): Add -W{no-,}pmf-conversions. 1205150397Sobrien * lang-options.h: Likewise. 1205218334Speter * decl2.c (warn_pmf2ptr): Define. 1205350397Sobrien * cp-tree.h: Declare it. 1205418334Speter * typeck2.c (digest_init): Allow pmfs down into 1205550397Sobrien convert_for_initialization. 1205618334Speter 1205750397SobrienSun Nov 3 09:43:00 1996 Jason Merrill <jason@yorick.cygnus.com> 1205850397Sobrien 1205950397Sobrien * typeck.c (c_expand_return): Fix for returning overloaded fn. 1206050397Sobrien 1206150397SobrienFri Nov 1 08:53:17 1996 Jason Merrill <jason@yorick.cygnus.com> 1206250397Sobrien 1206350397Sobrien * cp-tree.h (DIRECT_BIND): Change from INDIRECT_BIND. 1206450397Sobrien * decl.c (grok_reference_init): Pass DIRECT_BIND. 1206550397Sobrien * cvt.c (build_up_reference): Don't mark 'this' addressable. Use 1206618334Speter DIRECT_BIND. 1206750397Sobrien * call.c (convert_like): Don't pass INDIRECT_BIND. 1206818334Speter * typeck.c (convert_arguments): Likewise. 1206950397Sobrien * typeck.c (mark_addressable): Allow &this if flag_this_is_variable. 1207018334Speter 1207150397SobrienThu Oct 31 17:08:49 1996 Jason Merrill <jason@yorick.cygnus.com> 1207218334Speter 1207350397Sobrien * typeck.c (mark_addressable): Support TARGET_EXPR, unify with 1207450397Sobrien similar code in build_up_ref. 1207518334Speter * cvt.c (build_up_reference): Drastically simplify. 1207650397Sobrien 1207718334SpeterMon Oct 28 12:45:05 1996 Jeffrey A Law <law@cygnus.com> 1207850397Sobrien 1207950397Sobrien * typeck.c (signed_or_unsigned_type): If the given type already 1208050397Sobrien as the correct signedness, then just return it. 1208150397Sobrien 1208250397Sobrien * typeck.c ({un,}signed_type): If can't do anything, call 1208350397Sobrien signed_or_unsigned_type. 1208450397Sobrien 1208550397SobrienThu Oct 24 14:21:59 1996 Bob Manson <manson@charmed.cygnus.com> 1208650397Sobrien 1208750397Sobrien * decl2.c (copy_assignment_arg_p): Don't buy the farm if 1208850397Sobrien current_class_type is NULL. 1208950397Sobrien 1209050397SobrienWed Oct 23 00:43:10 1996 Jason Merrill <jason@gerbil.cygnus.com> 1209150397Sobrien 1209250397Sobrien * class.c (finish_struct_1): Avoid empty structs by adding a field 1209350397Sobrien so layout_type gets the mode right. 1209418334Speter 1209550397Sobrien * typeck.c (c_expand_return): Drastically simplify. 1209650397Sobrien 1209750397SobrienMon Oct 21 22:34:02 1996 Jason Merrill <jason@yorick.cygnus.com> 1209850397Sobrien 1209950397Sobrien * typeck.c (decay_conversion): Handle overloaded methods. 1210050397Sobrien 1210150397SobrienFri Oct 18 16:03:48 1996 Jason Merrill <jason@yorick.cygnus.com> 1210218334Speter 1210350397Sobrien * call.c (build_over_call): A TARGET_EXPR has side-effects. 1210450397Sobrien 1210550397SobrienThu Oct 17 11:31:59 1996 Mike Stump <mrs@cygnus.com> 1210650397Sobrien 1210718334Speter * cvt.c (convert_to_pointer_force): Add code to support pointer to 1210850397Sobrien member function to pointer to function conversions. 1210918334Speter * init.c (resolve_offset_ref): Add code to allow faked up objects, 1211050397Sobrien ignoring them if they are not used, and giving an error, if they 1211150397Sobrien are needed. 1211250397Sobrien * typeck.c (get_member_function_from_ptrfunc): Fold e1 to improve 1211350397Sobrien code, and so that we can give an error, if we needed an object, 1211418334Speter and one was not provided. 1211550397Sobrien (build_c_cast): Don't call default_conversion when we want to 1211618334Speter convert to pointer to function from a METHOD_TYPE. 1211750397Sobrien 1211850397SobrienMon Oct 14 00:28:51 1996 Jason Merrill <jason@yorick.cygnus.com> 1211950397Sobrien 1212018334Speter * Make-lang.in (cplib2.ready): Fix logic. 1212150397Sobrien 1212218334Speter * decl.c (shadow_tag): Only complain about non-artificial function 1212350397Sobrien members. 1212450397Sobrien 1212518334Speter * class.c (finish_struct_1): Add synthesized methods to TYPE_METHODS. 1212650397Sobrien 1212750397SobrienFri Oct 11 16:12:40 1996 Jason Merrill <jason@yorick.cygnus.com> 1212850397Sobrien 1212918334Speter * expr.c (cplus_expand_expr): Pre-tweak call_target like 1213050397Sobrien expand_inline_function would. 1213150397Sobrien 1213218334Speter * pt.c (mark_decl_instantiated): If extern_p, call 1213350397Sobrien mark_inline_for_output. 1213418334Speter 1213550397SobrienThu Oct 10 15:58:08 1996 Mike Stump <mrs@cygnus.com> 1213650397Sobrien 1213718334Speter * typeck.c (unary_complex_lvalue): Add code to handle intermediate 1213850397Sobrien pmd conversions. 1213918334Speter 1214050397Sobrien * typeck.c (get_delta_difference): Fix wording, as we can be used 1214150397Sobrien for pointer to data members. 1214250397Sobrien 1214352284SobrienTue Oct 8 12:43:51 1996 Bob Manson <manson@charmed.cygnus.com> 1214450397Sobrien 1214550397Sobrien * pt.c (tsubst): If the function decl isn't a member of this 1214650397Sobrien template, return a copy of the decl (including copying the 1214718334Speter lang-specific part) so we don't hose ourselves later. 1214850397Sobrien 1214918334SpeterThu Oct 3 16:24:28 1996 Jason Merrill <jason@yorick.cygnus.com> 1215050397Sobrien 1215150397Sobrien * class.c (finish_struct): Remove DWARF-specific tag handling. 1215250397Sobrien * decl.c (pushtag): Likewise. 1215350397Sobrien (finish_function): Always clear DECL_ARGUMENTS on function decls with 1215418334Speter no saved RTX. 1215550397Sobrien * decl2.c (finish_file): Emit DWARF debugging info for static data 1215618334Speter members. 1215750397Sobrien 1215850397SobrienWed Oct 2 21:58:01 1996 Bob Manson <manson@charmed.cygnus.com> 1215918334Speter 1216050397Sobrien * decl.c (duplicate_decls): Make sure the old DECL_LANG_SPECIFIC 1216118334Speter isn't the same as the new one before we whack it. 1216250397Sobrien 1216350397SobrienMon Sep 30 13:38:24 1996 Jason Merrill <jason@yorick.cygnus.com> 1216450397Sobrien 1216518334Speter * class.c, cp-tree.h, cvt.c, decl.c, decl2.c, gxx.gperf, hash.h, 1216650397Sobrien lex.c, method.c, parse.y, typeck.c, typeck2.c: Remove 1216718334Speter warn_traditional and warn_strict_prototypes; remove ancient 1216850397Sobrien 'overload' code; remove references to flag_traditional. 1216950397Sobrien 1217050397SobrienMon Sep 30 12:58:40 1996 Mike Stump <mrs@cygnus.com> 1217150397Sobrien 1217218334Speter * input.c (sub_getch): Handle 8-bit characters in string literals. 1217350397Sobrien 1217418334SpeterSun Sep 29 03:12:01 1996 Jason Merrill <jason@yorick.cygnus.com> 1217550397Sobrien 1217650397Sobrien * tree.c (mapcar): Handle CONSTRUCTORs. 1217750397Sobrien (copy_to_permanent): Handle expression_obstack properly. 1217850397Sobrien 1217950397Sobrien * Make-lang.in (cplib2.txt): Also depend on the headers. 1218050397Sobrien 1218150397Sobrien * rtti.c (get_tinfo_var): Don't assume that POINTER_SIZE == 1218250397Sobrien INT_TYPE_SIZE. 1218350397Sobrien (expand_class_desc): Use USItype for offset field. 1218450397Sobrien * tinfo.h (struct __class_type_info): Likewise. 1218550397Sobrien 1218618334Speter * method.c (build_overload_int): TYPE_PRECISION should be applied 1218750397Sobrien to types. 1218818334Speter 1218950397SobrienSat Sep 28 14:44:50 1996 Jason Merrill <jason@yorick.cygnus.com> 1219018334Speter 1219150397Sobrien * call.c (build_new_op): A COND_EXPR involving void must be a 1219218334Speter builtin. 1219350397Sobrien 1219450397SobrienFri Sep 27 16:40:30 1996 Jason Merrill <jason@yorick.cygnus.com> 1219550397Sobrien 1219650397Sobrien * typeck.c (build_x_component_ref): New fn. 1219750397Sobrien (build_object_ref): Use it. 1219850397Sobrien * parse.y (primary): Use it. 1219950397Sobrien * decl2.c (build_expr_from_tree): Use it. 1220018334Speter * cp-tree.h: Declare it. 1220150397Sobrien 1220218334Speter * decl.c (start_decl): Variable-sized arrays cannot be initialized. 1220350397Sobrien * error.c (dump_type_suffix): Handle variable arrays. 1220450397Sobrien 1220550397SobrienFri Sep 27 13:14:05 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1220618334Speter 1220752284Sobrien * Make-lang.in (exception.o): Put back compiling it with -fPIC. 1220818334Speter 1220950397SobrienFri Sep 27 03:00:09 1996 Jason Merrill <jason@yorick.cygnus.com> 1221050397Sobrien 1221118334Speter * decl.c (lookup_name_real): Don't try to look up anything in a 1221250397Sobrien TYPENAME_TYPE. 1221350397Sobrien 1221418334Speter * tinfo2.cc (__throw_type_match_rtti): Oops. 1221550397Sobrien 1221618334SpeterThu Sep 26 22:11:05 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1221750397Sobrien 1221850397Sobrien * Make-lang.in (exception.o): Use -fno-PIC for now. 1221918334Speter 1222050397SobrienThu Sep 26 10:59:00 1996 Jason Merrill <jason@yorick.cygnus.com> 1222118334Speter 1222250397Sobrien * rtti.c (build_dynamic_cast): Pass tinfo fns rather than 1222350397Sobrien calling them. 1222418334Speter (get_tinfo_fn_dynamic): Extracted from build_typeid. 1222550397Sobrien * tinfo2.cc (__dynamic_cast): Adjust. 1222618334Speter 1222750397Sobrien * rtti.c (build_typeid): Use resolves_to_fixed_type_p. 1222818334Speter (build_x_typeid): Likewise. 1222950397Sobrien 1223018334Speter * parse.y: Call build_x_typeid instead of build_typeid. 1223150397Sobrien * cp-tree.def: Add TYPEID_EXPR. 1223218334Speter * pt.c (tsubst_copy): Handle typeid. 1223350397Sobrien * decl2.c (build_expr_from_tree): Likewise. 1223418334Speter * rtti.c (build_x_typeid): Throw bad_typeid from here. 1223550397Sobrien (build_typeid): Not here. 1223618334Speter * cp-tree.h: Declare build_x_typeid. 1223750397Sobrien 1223850397SobrienWed Sep 25 17:26:16 1996 Jason Merrill <jason@yorick.cygnus.com> 1223950397Sobrien 1224050397Sobrien * call.c (convert_like): Pull out constant values. 1224150397Sobrien 1224250397Sobrien * tree.c (mapcar): Use build_cplus_array_type, not build_array_type. 1224350397Sobrien 1224450397SobrienWed Sep 25 17:28:53 1996 Michael Meissner <meissner@tiktok.cygnus.com> 1224550397Sobrien 1224650397Sobrien * decl.c (init_decl_processing): Create short int types before 1224718334Speter creating size_t in case a machine description needs to use 1224850397Sobrien unsigned short for size_t. 1224918334Speter 1225050397SobrienTue Sep 24 18:18:44 1996 Jason Merrill <jason@yorick.cygnus.com> 1225118334Speter 1225250397Sobrien * Make-lang.in (exception.o): Turn off pic. 1225350397Sobrien 1225418334Speter * tinfo2.cc (__throw_type_match_rtti): Fix cv-variants of the same 1225550397Sobrien type, multi-level ptr conversions. 1225618334Speter 1225750397Sobrien * rtti.c (call_void_fn): Renamed and genericized from throw_bad_cast. 1225818334Speter (throw_bad_cast): Use it. 1225950397Sobrien (throw_bad_typeid): New fn. 1226050397Sobrien (build_typeid): Throw bad_typeid as needed. 1226118334Speter Use build_call. 1226250397Sobrien (synthesize_tinfo_fn): Handle functions and arrays before checking 1226350397Sobrien for cv-quals. 1226418334Speter 1226550397Sobrien * Remove .h from standard C++ headers, add new.h, move into inc 1226618334Speter subdirectory. 1226750397Sobrien 1226850397Sobrien * exception*: Remove pointer from object, constructors. Add 1226918334Speter default exception::what that uses type_info::name. Add 1227050397Sobrien __throw_bad_typeid. 1227150397Sobrien 1227218334Speter * init.c (build_new): Don't add a cookie to new (void *) T[2]. 1227350397Sobrien 1227418334SpeterMon Sep 23 15:21:53 1996 Jason Merrill <jason@yorick.cygnus.com> 1227550397Sobrien 1227650397Sobrien * Make-lang.in: Building C++ code depends on cc1plus. 1227750397Sobrien 1227818334SpeterMon Sep 23 12:38:40 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1227950397Sobrien 1228018334Speter * decl.c (struct saved_scope): Declare PROCESSING_TEMPLATE_DECL as 1228150397Sobrien a HOST_WIDE_INT, not a tree. 1228250397Sobrien 1228350397SobrienMon Sep 23 12:36:02 1996 Jason Merrill <jason@yorick.cygnus.com> 1228450397Sobrien 1228550397Sobrien * exception.cc: Don't include <stdlib.h>. 1228650397Sobrien 1228718334Speter * Make-lang.in (c++.clean): Remove cplib2.*. 1228850397Sobrien 1228918334SpeterMon Sep 23 09:42:19 1996 Doug Evans <dje@canuck.cygnus.com> 1229050397Sobrien 1229150397Sobrien * parse.y (component_decl_1, component_costructor_declarator case): 1229218334Speter Pass attributes/prefix_attributes in tree list. 1229350397Sobrien 1229418334SpeterMon Sep 23 01:18:50 1996 Jason Merrill <jason@yorick.cygnus.com> 1229550397Sobrien 1229650397Sobrien * tinfo{,2}.cc: #include <stddef.h> instead of <stdlib.h>. 1229750397Sobrien 1229850397SobrienSun Sep 22 05:31:22 1996 Jason Merrill <jason@yorick.cygnus.com> 1229918334Speter 1230050397Sobrien * lex.c (do_identifier): Don't do deferred lookup in a template 1230118334Speter header. 1230250397Sobrien 1230318334Speter * typeck2.c (store_init_value): Oops. 1230450397Sobrien 1230518334Speter * new.{h,cc}, exception.{h,cc}, typeinfo.h, tinfo{2.cc,.cc,.h}: 1230650397Sobrien New files for C++ lang-support library. 1230750397Sobrien * Make-lang.in (CXX_EXTRA_HEADERS): Define. 1230818334Speter (CXX_LIB2FUNCS): Define. 1230950397Sobrien And rules for building the C++ lang-support code. 1231018334Speter * config-lang.in (headers): Define. 1231150397Sobrien (lib2funcs): Define. 1231250397Sobrien 1231350397SobrienSat Sep 21 19:17:28 1996 Jason Merrill <jason@yorick.cygnus.com> 1231450397Sobrien 1231518334Speter * decl2.c (build_expr_from_tree): If CONSTRUCTOR has a type, call 1231650397Sobrien digest_init. 1231750397Sobrien * pt.c (tsubst_copy): Compute type for CONSTRUCTOR. 1231818334Speter * typeck2.c (store_init_value): Check for initializing pmf with { } 1231950397Sobrien here. 1232018334Speter (process_init_constructor): Not here. 1232150397Sobrien 1232250397SobrienThu Sep 19 16:41:07 1996 Jason Merrill <jason@yorick.cygnus.com> 1232318334Speter 1232450397Sobrien * pt.c (begin_template_parm_list): Increment 1232518334Speter processing_template_decl here. 1232650397Sobrien (end_template_parm_list): Not here. 1232750397Sobrien (process_template_parm): No need to add 1 to it now. 1232850397Sobrien * *.c: Use processing_template_decl instead of current_template_parms 1232950397Sobrien to check for being in a template. 1233050397Sobrien 1233118334Speter * pt.c (uses_template_parms): Handle SCOPE_REF. Fix CONSTRUCTOR. 1233252284Sobrien (tsubst_copy): Handle CONSTRUCTOR. 1233350397Sobrien (instantiate_decl): Set up context properly for variables. 1233418334Speter * decl2.c (build_expr_from_tree): Handle CONSTRUCTOR. 1233550397Sobrien * class.c (finish_struct): Reverse CLASSTYPE_TAGS. 1233618334Speter 1233750397SobrienWed Sep 18 13:30:20 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1233818334Speter 1233950397Sobrien * lex.c (enum tree_node_kind) [GATHER_STATISTICS]: Put the enum back. 1234018334Speter 1234150397SobrienWed Sep 18 04:24:07 1996 Jason Merrill <jason@yorick.cygnus.com> 1234250397Sobrien 1234318334Speter * method.c (make_thunk): Call comdat_linkage before setting the 1234450397Sobrien TREE_CODE. 1234518334Speter 1234650397Sobrien * decl2.c (comdat_linkage): Use make_decl_one_only. 1234718334Speter (import_export_decl): Likewise. 1234850397Sobrien * decl.c (init_decl_processing): Check supports_one_only instead of 1234918334Speter SUPPORTS_WEAK. 1235050397Sobrien 1235118334SpeterSat Sep 14 08:34:41 1996 Jason Merrill <jason@yorick.cygnus.com> 1235250397Sobrien 1235350397Sobrien * decl2.c (grokfield): Tighten checking for access decls. 1235450397Sobrien 1235550397Sobrien * decl.c (make_typename_type): Resolve references to 1235652284Sobrien current_class_type. Set CLASSTYPE_GOT_SEMICOLON. 1235750397Sobrien (lookup_name_real): Types that depend on a template parameter get 1235850397Sobrien an implicit 'typename' unless they're in the current scope. 1235918334Speter (start_decl_1): We don't care about incomplete types that depend 1236050397Sobrien on a template parm. 1236150397Sobrien (grokdeclarator): Resolve 'typename's in the type specifier that 1236250397Sobrien refer to members of the current scope. 1236350397Sobrien 1236450397Sobrien * call.c (build_over_call): Remove 'inline called before 1236550397Sobrien definition' diagnostic. 1236650397Sobrien (build_method_call): Likewise. 1236718334Speter * decl.c (duplicate_decls): Downgrade 'used before declared 1236850397Sobrien inline' to a warning, only with -Winline. 1236918334Speter 1237050397SobrienFri Sep 13 17:31:40 1996 Stan Shebs <shebs@andros.cygnus.com> 1237118334Speter 1237250397Sobrien * mpw-make.sed: Fix include paths, add @DASH_C_FLAG@ to compile. 1237318334Speter 1237450397SobrienWed Sep 11 22:38:13 1996 Gerald Baumgartner <gb@cs.purdue.edu> 1237518334Speter 1237650397Sobrien * call.c (build_method_call): When calling a signature 1237750397Sobrien default implementation, as in other cases, let instance_ptr simply 1237850397Sobrien be instance. 1237918334Speter 1238050397SobrienWed Sep 11 22:14:44 1996 Mike Stump <mrs@cygnus.com> 1238118334Speter 1238250397Sobrien * parse.y (simple_stmt): Cleanup and use do_poplevel (). 1238318334Speter 1238450397SobrienWed Sep 11 22:10:48 1996 Mike Stump <mrs@cygnus.com> 1238550397Sobrien 1238618334Speter * except.c (expand_start_catch_block): Add a pushlevel so that -g 1238750397Sobrien works on hppa and SPARC. 1238850397Sobrien 1238950397SobrienWed Sep 11 10:18:06 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1239050397Sobrien 1239150397Sobrien * typeck.c (build_indirect_ref): Catch PTR being an error_mark_node. 1239250397Sobrien 1239350397SobrienMon Sep 9 19:51:14 1996 Gerald Baumgartner <gb@cs.purdue.edu> 1239418334Speter 1239550397Sobrien * call.c (build_over_call): Check first whether DECL_CONTEXT exists 1239650397Sobrien before testing whether it's a signature. 1239718334Speter 1239850397SobrienSun Sep 8 16:06:57 1996 Gerald Baumgartner <gb@cs.purdue.edu> 1239950397Sobrien 1240050397Sobrien * call.c (build_new_method_call): Don't complain about signature 1240118334Speter pointers and references not being an aggr type. 1240250397Sobrien (build_this): If a signature pointer or reference was passed in, 1240318334Speter just return it. 1240450397Sobrien (build_new_method_call): If instance is a signature pointer, set 1240518334Speter basetype to the signature type of instance. 1240650397Sobrien * sig.c (build_signature_method_call): Deleted basetype and 1240718334Speter instance parameters, they can be found as the DECL_CONTEXT of 1240850397Sobrien function and as the first argument passed in. 1240918334Speter * cp-tree.h: Changed declaration of build_signature_method_call. 1241050397Sobrien * call.c (build_method_call): Deleted first two arguments in call 1241150397Sobrien of build_signature_method_call. 1241218334Speter (build_over_call): Added call to build_signature_method_call. 1241350397Sobrien 1241418334SpeterThu Sep 5 16:51:28 1996 Jason Merrill <jason@yorick.cygnus.com> 1241550397Sobrien 1241618334Speter * typeck.c (build_c_cast): Don't tack a non_lvalue_expr onto a 1241750397Sobrien target_expr. 1241818334Speter 1241950397SobrienThu Sep 5 10:05:38 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1242018334Speter 1242150397Sobrien * cvt.c (convert_to_reference): Use %#T, not %#D, for error. 1242250397Sobrien 1242318334SpeterWed Sep 4 17:16:09 1996 Bob Manson <manson@charmed.cygnus.com> 1242450397Sobrien 1242518334Speter * except.c (expand_start_try_stmts): Move to except.c in the backend. 1242650397Sobrien (expand_end_try_stmts): Remove. 1242718334Speter 1242850397Sobrien * init.c (perform_member_init): Use add_partial_entry () instead 1242918334Speter of directly manipulating lists. 1243050397Sobrien (emit_base_init): Likewise. 1243150397Sobrien 1243218334SpeterWed Sep 4 12:14:36 1996 Mike Stump <mrs@cygnus.com> 1243350397Sobrien 1243418334Speter * except.c (expand_exception_blocks): Always make sure USE and 1243552284Sobrien CLOBBER insns that came at the end still do, the backend relies 1243650397Sobrien upon this. 1243750397Sobrien 1243850397SobrienWed Sep 4 07:44:48 1996 Jason Merrill <jason@yorick.cygnus.com> 1243950397Sobrien 1244050397Sobrien * call.c (build_over_call): We can only use a TARGET_EXPR of the 1244150397Sobrien right type. 1244218334Speter 1244350397SobrienTue Sep 3 19:26:05 1996 Jason Merrill <jason@yorick.cygnus.com> 1244418334Speter 1244550397Sobrien * cvt.c (convert_to_reference): Revert last change, don't complain 1244650397Sobrien about temp without target decl. 1244750397Sobrien 1244850397SobrienTue Sep 3 10:22:56 1996 Mike Stump <mrs@cygnus.com> 1244950397Sobrien 1245050397Sobrien * decl.c (grokdeclarator): Don't core dump when void() is given. 1245118334Speter 1245250397SobrienTue Sep 3 02:38:56 1996 Jason Merrill <jason@yorick.cygnus.com> 1245318334Speter 1245450397Sobrien * decl.c (copy_args_p): Don't crash. 1245550397Sobrien 1245650397SobrienFri Aug 30 14:26:57 1996 Mike Stump <mrs@cygnus.com> 1245750397Sobrien 1245850397Sobrien * pt.c (tsubst): And support template args inside the exception 1245950397Sobrien specification. 1246018334Speter 1246150397Sobrien * pt.c (tsubst): Add support for exception specifications in 1246250397Sobrien template functions. 1246350397Sobrien 1246450397SobrienFri Aug 30 10:01:55 1996 Mike Stump <mrs@cygnus.com> 1246550397Sobrien 1246618334Speter * cp-tree.def (DECL_STMT): Eliminate the throw spec field, only 3 1246750397Sobrien fields now. 1246818334Speter * cp-tree.h (start_decl): Eliminate the throw spec parameter. 1246950397Sobrien (start_function): Likewise. 1247018334Speter (start_method): Likewise. 1247150397Sobrien (grokfield): Likewise. 1247218334Speter (make_call_declarator): Add throw spec parameter. 1247350397Sobrien (set_quals_and_spec): Add routine. 1247450397Sobrien * lex.c (set_quals_and_spec): Likewise. 1247518334Speter * decl.h (grokdeclarator): Eliminate the throw spec parameter. 1247650397Sobrien * decl.c (shadow_tag): Eliminate the throw spec parameter to 1247750397Sobrien grokdeclarator. 1247850397Sobrien (groktypename): Likewise. 1247950397Sobrien (start_decl): Eliminate the throw spec parameter. Eliminate the 1248018334Speter throw spec parameter to grokdeclarator. Eliminate the throw spec 1248150397Sobrien field in DECL_STMT. 1248218334Speter (cp_finish_decl): Eliminate the throw spec field in DECL_STMT. 1248350397Sobrien (grokfndecl): Remove useless set of raises. 1248418334Speter (grokdeclarator): Eliminate the throw spec parameter. Eliminate 1248550397Sobrien the throw spec parameter to start_decl. Pull the throw spec out 1248650397Sobrien of the call declarator. 1248750397Sobrien (grokparms): Eliminate the throw spec parameter to grokdeclarator. 1248850397Sobrien (start_function): Eliminate the throw spec parameter. Eliminate 1248950397Sobrien the throw spec parameter to grokdeclarator. 1249050397Sobrien (start_method): Likewise. 1249150397Sobrien * decl2.c (grokfield): Likewise. 1249250397Sobrien (grokbitfield): Eliminate the throw spec parameter to grokdeclarator. 1249318334Speter (grokoptypename): Likewise. 1249450397Sobrien (finish_file): Eliminate the throw spec parameter to 1249550397Sobrien start_function. Add throw spec to make_call_declarator. 1249650397Sobrien * except.c (init_exception_processing): Add throw spec to 1249750397Sobrien make_call_declarator. Eliminate the throw spec parameter to 1249850397Sobrien start_decl. 1249918334Speter (expand_start_catch_block): Eliminate the throw spec parameter to 1250050397Sobrien grokdeclarator. 1250118334Speter (expand_builtin_throw): Add throw spec to make_call_declarator. 1250250397Sobrien Eliminate the throw spec parameter to start_function. 1250318334Speter (start_anon_func): Likewise. 1250450397Sobrien * lex.c (make_call_declarator): Add throw spec parameter. 1250518334Speter (set_quals_and_spec): New routine. 1250650397Sobrien (cons_up_default_function): Add throw spec to make_call_declarator. 1250750397Sobrien Eliminate the throw spec parameter to grokfield. 1250850397Sobrien * method.c (synthesize_method): Eliminate the throw spec parameter 1250918334Speter to start_function. 1251050397Sobrien * pt.c (process_template_parm): Eliminate the throw spec parameter 1251118334Speter to grokdeclarator. 1251250397Sobrien (tsubst): Add throw spec to make_call_declarator. 1251318334Speter (tsubst_expr): Eliminate the throw spec parameter to start_decl. 1251450397Sobrien (do_function_instantiation): Eliminate the throw spec parameter to 1251518334Speter grokdeclarator. Eliminate the throw spec parameter to 1251650397Sobrien start_function. 1251750397Sobrien * rtti.c (synthesize_tinfo_fn): Eliminate the throw spec parameter 1251818334Speter to start_function. 1251950397Sobrien * parse.y (datadef): Remove non-winning optimization. 1252018334Speter (decl): Likewise. 1252150397Sobrien (fndef): Remove ambiguous error productions uncovered by grammar 1252218334Speter fixing. 1252350397Sobrien (constructor_declarator): Add exception_specification_opt here. 1252418334Speter (component_constructor_declarator): Likewise. 1252550397Sobrien (direct_after_type_declarator): Likewise. 1252650397Sobrien (complex_direct_notype_declarator): Likewise. 1252718334Speter (direct_abstract_declarator): Likewise. 1252850397Sobrien (fn.def1): Remove exception_specification_opt. 1252918334Speter (fn.def2): Likewise. 1253050397Sobrien (condition): Likewise. 1253150397Sobrien (initdcl0): Likewise. 1253250397Sobrien (initdcl): Likewise. 1253350397Sobrien (notype_initdcl0): Likewise. 1253450397Sobrien (nomods_initdcl0): Likewise. 1253550397Sobrien (component_decl_1): Likewise. 1253650397Sobrien (component_declarator): Likewise. 1253750397Sobrien (after_type_component_declarator0): Likewise. 1253850397Sobrien (after_type_component_declarator): Likewise. 1253950397Sobrien (notype_component_declarator): Likewise. 1254050397Sobrien 1254150397SobrienWed Aug 28 01:40:30 1996 Jason Merrill <jason@yorick.cygnus.com> 1254250397Sobrien 1254318334Speter * call.c (build_over_call): Also use an INIT_EXPR when 1254450397Sobrien initializing anything from an rvalue. 1254518334Speter 1254650397Sobrien * call.c (build_over_call): Call stabilize_reference when building 1254750397Sobrien an INIT_EXPR instead of calling the copy ctor. 1254818334Speter 1254950397Sobrien * call.c (joust): Extend the previous change to all comparisons. 1255018334Speter 1255150397Sobrien * decl2.c, method.c, lex.c: Use MAKE_DECL_ONE_ONLY and 1255218334Speter NO_LINKAGE_HEURISTICS. 1255350397Sobrien 1255418334Speter * decl2.c (finish_file): Emit any statics that weren't already. 1255550397Sobrien 1255650397Sobrien * typeck.c (build_static_cast): Implement. 1255718334Speter * tree.c (build_cplus_new): Handle getting a TARGET_EXPR. 1255850397Sobrien * decl.c (grokparms): Use can_convert_arg instead of 1255950397Sobrien implicit_conversion directly. 1256052284Sobrien (copy_args_p): New fn. 1256118334Speter * cvt.c (convert_to_reference): Don't complain about temp with 1256250397Sobrien static_cast. 1256318334Speter (build_up_reference): Handle TARGET_EXPRs. 1256450397Sobrien * call.c (build_over_call): Elide unnecessary temps. 1256550397Sobrien (can_convert*): Use new overloading code. 1256650397Sobrien 1256718334SpeterTue Aug 27 13:12:21 1996 Jason Merrill <jason@yorick.cygnus.com> 1256850397Sobrien 1256918334Speter * call.c: Move TYPE_PTR*_MACROS ... 1257050397Sobrien * cp-tree.h: To here. 1257150397Sobrien * typeck.c (build_reinterpret_cast): Implement. 1257218334Speter 1257350397Sobrien * call.c (add_builtin_candidate): Use TYPE_PTROB_P instead of 1257418334Speter ptr_complete_ob. 1257550397Sobrien (joust): If we're comparing a function to a builtin and the worst 1257650397Sobrien conversion for the builtin is worse than the worst conversion for the 1257718334Speter function, take the function. 1257850397Sobrien 1257918334Speter * typeck.c (build_const_cast): Implement. 1258050397Sobrien (comp_ptr_ttypes_const): Like comp_ptr_ttypes, for const_cast. 1258118334Speter (comp_ptr_ttypes_reinterpret): Like cpt, for reinterpret_cast. 1258250397Sobrien 1258318334SpeterTue Aug 27 13:14:58 1996 Bob Manson <manson@charmed.cygnus.com> 1258450397Sobrien 1258550397Sobrien * rtti.c (build_dynamic_cast): Don't try to dereference exprtype 1258650397Sobrien too early. Make sure we explode if exprtype turns out to be a 1258750397Sobrien NULL_TREE when it shouldn't be. 1258850397Sobrien 1258950397SobrienTue Aug 27 10:56:21 1996 Mike Stump <mrs@cygnus.com> 1259050397Sobrien 1259150397Sobrien * cp-tree.h: New routine make_call_declarator. 1259250397Sobrien * lex.c (make_call_declarator): Define it. 1259350397Sobrien * except.c (init_exception_processing): Use it. 1259450397Sobrien (expand_builtin_throw): Likewise. 1259550397Sobrien (start_anon_func): Likewise. 1259650397Sobrien * decl2.c (finish_file): Likewise. 1259750397Sobrien * lex.c (cons_up_default_function): Likewise. 1259850397Sobrien * parse.y: Likewise. 1259950397Sobrien * pt.c (tsubst): Likewise. 1260050397Sobrien 1260150397SobrienMon Aug 26 17:40:03 1996 Mike Stump <mrs@cygnus.com> 1260250397Sobrien 1260350397Sobrien * decl2.c (groktypefield): Remove unused code. 1260450397Sobrien 1260550397SobrienMon Aug 26 17:00:33 1996 Mike Stump <mrs@cygnus.com> 1260650397Sobrien 1260750397Sobrien * gxx.gperf: Change TYPE_QUAL into CV_QUALIFIER. 1260850397Sobrien * parse.y: Likewise. Change maybe_type_qual into maybe_cv_qualifier. 1260950397Sobrien Change type_quals into cv_qualifiers. Change nonempty_type_quals into 1261050397Sobrien nonempty_cv_qualifiers. 1261150397Sobrien * hash.h: Rebuild. 1261250397Sobrien 1261350397Sobrien * lex.c (make_pointer_declarator): Change type_quals into 1261450397Sobrien cv_qualifiers. 1261550397Sobrien (make_reference_declarator): Likewise. 1261650397Sobrien 1261750397SobrienThu Aug 22 01:09:22 1996 Jason Merrill <jason@yorick.cygnus.com> 1261850397Sobrien 1261950397Sobrien * decl.c (start_function): Only check interface_* for templates 1262050397Sobrien with flag_alt_external_templates. 1262150397Sobrien 1262250397Sobrien * call.c (build_new_op): Check for comparison of different enum types. 1262350397Sobrien (build_over_call): Fix arg # output. 1262450397Sobrien 1262550397Sobrien * typeck.c (build_component_ref): Handle pre-found TYPE_DECL. 1262650397Sobrien 1262750397SobrienWed Aug 21 00:13:15 1996 Jason Merrill <jason@yorick.cygnus.com> 1262850397Sobrien 1262950397Sobrien * call.c (build_new_op): Check for erroneous args. 1263050397Sobrien 1263150397Sobrien * call.c (build_new_method_call): Add missing args to cp_error. 1263250397Sobrien 1263350397Sobrien * tree.c (error_type): Don't print reference-to-array. 1263450397Sobrien 1263550397Sobrien * typeck.c (convert_for_assignment): Don't say contravariance for 1263650397Sobrien removing const. 1263750397Sobrien 1263850397SobrienTue Aug 20 13:23:00 1996 Jason Merrill <jason@yorick.cygnus.com> 1263950397Sobrien 1264050397Sobrien * call.c (build_over_call): Diagnose bad convs for `this'. 1264150397Sobrien 1264250397Sobrien * lex.c (cons_up_default_function): Set DECL_ARTIFICIAL 1264350397Sobrien on _ctor_arg. 1264450397Sobrien 1264550397Sobrien * call.c (convert_like): Handle bad convs. 1264650397Sobrien (build_over_call): Handle bad convs better. 1264750397Sobrien 1264850397Sobrien * decl2.c: -fansi-overloading is now the default. 1264950397Sobrien 1265050397Sobrien * call.c (build_new_method_call): Check for erroneous args. 1265152284Sobrien 1265250397Sobrien * pt.c (instantiate_class_template): Propagate 1265350397Sobrien TYPE_USES_MULTIPLE_INHERITANCE. 1265450397Sobrien 1265550397SobrienTue Aug 20 13:09:57 1996 Mike Stump <mrs@cygnus.com> 1265650397Sobrien 1265750397Sobrien * call.c (enforce_access): Add static to routine. 1265850397Sobrien 1265950397SobrienSun Aug 18 14:35:54 1996 Jason Merrill <jason@yorick.cygnus.com> 1266050397Sobrien 1266150397Sobrien * call.c (build_user_type_conversion_1): Fix bad handling. 1266250397Sobrien (compare_ics): Likewise. 1266350397Sobrien 1266450397SobrienSat Aug 17 21:54:11 1996 Jason Merrill <jason@yorick.cygnus.com> 1266550397Sobrien 1266650397Sobrien * call.c (standard_conversion): Oops. 1266750397Sobrien 1266850397SobrienSat Aug 17 16:28:11 1996 Geoffrey Noer <noer@cygnus.com> 1266950397Sobrien 1267050397Sobrien * g++.c: Update test for win32 (&& ! cygwin32). 1267150397Sobrien 1267250397SobrienSat Aug 17 03:45:31 1996 Jason Merrill <jason@yorick.cygnus.com> 1267350397Sobrien 1267450397Sobrien * typeck.c (comp_ptr_ttypes_real): Handle OFFSET_TYPEs properly. 1267550397Sobrien (ptr_reasonably_similar): New fn. 1267650397Sobrien * call.c (BAD_RANK): New rank. 1267750397Sobrien (ICS_BAD_FLAG): New macro. 1267850397Sobrien (standard_conversion): Handle almost-right pointer conversions. 1267950397Sobrien (reference_binding): Handle bad rvalue bindings. 1268050397Sobrien (add_*_candidate): Stuff. 1268152284Sobrien (build_over_call): Pass bad conversions to convert_for_initialization. 1268250397Sobrien (compare_ics): Handle bad convs. 1268350397Sobrien (joust): Likewise. 1268450397Sobrien 1268550397SobrienFri Aug 16 15:02:19 1996 Bob Manson <manson@charmed.cygnus.com> 1268650397Sobrien 1268750397Sobrien * init.c (expand_vec_init): Use ptrdiff_type_node instead of 1268850397Sobrien integer_type_node when computing pointer offsets. 1268950397Sobrien 1269050397SobrienFri Aug 16 01:28:32 1996 Jason Merrill <jason@yorick.cygnus.com> 1269150397Sobrien 1269250397Sobrien * tree.c (lvalue_type): New fn. 1269350397Sobrien (error_type): New fn. 1269450397Sobrien * call.c (op_error): Use error_type. 1269550397Sobrien (add_conv_candidate): Use lvalue_type. 1269650397Sobrien (add_builtin_candidates): Likewise. 1269750397Sobrien * error.c (args_as_string): Use error_type. 1269850397Sobrien 1269950397SobrienThu Aug 15 17:27:13 1996 Jason Merrill <jason@yorick.cygnus.com> 1270050397Sobrien 1270150397Sobrien * pt.c (instantiate_decl): Evaluate DECL_INITIAL of a VAR_DECL here. 1270250397Sobrien (tsubst): Not here. 1270350397Sobrien 1270450397Sobrien * decl.c (init_decl_processing): With -ansi, __null's type is the 1270550397Sobrien signed integral type with the same number of bits as a pointer. 1270650397Sobrien Introduce a new variable null_node for it. 1270750397Sobrien * cp-tree.h: Adjust. 1270850397Sobrien * call.c (null_ptr_cst_p): Adjust. 1270950397Sobrien 1271050397SobrienThu Aug 15 17:09:54 1996 Mike Stump <mrs@cygnus.com> 1271150397Sobrien 1271250397Sobrien * except.c (do_unwind): Mark %i7 as used on the SPARC so we can 1271350397Sobrien optimize. 1271450397Sobrien 1271550397SobrienThu Aug 15 01:36:49 1996 Jason Merrill <jason@yorick.cygnus.com> 1271652284Sobrien 1271750397Sobrien * decl2.c (import_export_decl): Ignore #pragma interface for tinfo 1271850397Sobrien fns of classes without virtual functions. 1271950397Sobrien 1272050397Sobrien * call.c (add_function_candidate): Handle `this' specially. 1272150397Sobrien (compare_ics): Likewise. 1272250397Sobrien 1272350397SobrienTue Aug 13 12:16:10 1996 Jason Merrill <jason@yorick.cygnus.com> 1272450397Sobrien 1272550397Sobrien * typeck.c (build_conditional_expr): Fix handling of __null. 1272650397Sobrien 1272750397Sobrien * decl2.c (comdat_linkage): New fn. 1272850397Sobrien (import_export_vtable): Use it. 1272950397Sobrien (import_export_decl): Use it. 1273052284Sobrien * method.c (make_thunk): Use it. 1273150397Sobrien 1273218334SpeterMon Aug 12 00:09:18 1996 Jason Merrill <jason@yorick.cygnus.com> 1273350397Sobrien 1273418334Speter * pt.c (end_template_decl): If we don't actually have parms, return. 1273550397Sobrien * parse.y (template_header): Accept 'template <>'. 1273618334Speter 1273750397Sobrien * errfn.c: Allow 5 args. 1273850397Sobrien 1273950397SobrienSun Aug 11 15:20:58 1996 Jason Merrill <jason@yorick.cygnus.com> 1274050397Sobrien 1274150397Sobrien * tree.c (make_temp_vec): New fn. 1274252284Sobrien * pt.c (push_template_decl): Handle partial specs. 1274350397Sobrien (instantiate_class_template): Likewise. 1274450397Sobrien (more_specialized): Use get_bindings. 1274550397Sobrien (more_specialized_class): New fn. 1274652284Sobrien (get_class_bindings): New fn. 1274750397Sobrien (most_specialized_class): New fn. 1274818334Speter (do_function_instantiation): List candidates for ambiguous case. 1274950397Sobrien * decl.c (duplicate_decls): Lose reference to DECL_TEMPLATE_MEMBERS. 1275050397Sobrien (shadow_tag): Call push_template_decl for partial specializations. 1275118334Speter * parse.y: Likewise. 1275250397Sobrien * cp-tree.h (DECL_TEMPLATE_SPECIALIZATIONS): Replaces 1275350397Sobrien DECL_TEMPLATE_MEMBERS. 1275418334Speter * call.c (print_z_candidates): Reduce duplication. 1275550397Sobrien 1275618334SpeterFri Aug 9 14:36:08 1996 Jason Merrill <jason@yorick.cygnus.com> 1275750397Sobrien 1275818334Speter * decl2.c (lang_decode_option): Allow -fansi-overloading. 1275950397Sobrien 1276018334SpeterThu Aug 8 17:04:18 1996 Jason Merrill <jason@yorick.cygnus.com> 1276150397Sobrien 1276218334Speter * pt.c (get_bindings): New fn. 1276352284Sobrien (most_specialized): Likewise. 1276418334Speter (do_function_instantiation): Use them. 1276550397Sobrien (add_maybe_template): New fn. 1276650397Sobrien * cp-tree.h (DECL_MAYBE_TEMPLATE): New macro. 1276718334Speter * call.c (build_new_op): Handle guiding decls. 1276850397Sobrien (build_new_function_call): Likewise. 1276918334Speter * decl2.c (finish_file): Likewise. 1277050397Sobrien 1277118334Speter * decl2.c (mark_used): Do synthesis here. 1277250397Sobrien * call.c (build_method_call): Not here. 1277350397Sobrien (build_over_call): Or here. 1277418334Speter * typeck.c (build_function_call_real): Or here. 1277550397Sobrien * tree.c (bot_manip): Call mark_used on functions used in default 1277650397Sobrien args. 1277718334Speter 1277850397SobrienThu Aug 8 17:48:16 1996 Michael Meissner <meissner@tiktok.cygnus.com> 1277918334Speter 1278050397Sobrien * decl2.c (import_export_vtable): Delete code that disabled vtable 1278118334Speter heuristic on systems with ASM_OUTPUT_EXTERNAL. 1278250397Sobrien 1278350397SobrienWed Aug 7 12:44:11 1996 Jason Merrill <jason@yorick.cygnus.com> 1278418334Speter 1278550397Sobrien * typeck.c (build_x_function_call): Handle static call context 1278618334Speter better. 1278750397Sobrien 1278818334Speter * decl.c (finish_function): Set the DECL_CONTEXT of the result to 1278950397Sobrien the function, not its outer block. 1279018334Speter 1279150397Sobrien * call.c (build_field_call): Pass fields on to build_opfncall 1279250397Sobrien regardless of TYPE_OVERLOADS_CALL_EXPR. 1279318334Speter (build_method_call): Pass on to build_new_method_call sooner. 1279450397Sobrien 1279518334Speter * typeck.c (build_ptrmemfunc): Just return what instantiate_type 1279650397Sobrien gives us. 1279718334Speter * class.c (instantiate_type): Don't put a POINTER_TYPE to 1279850397Sobrien METHOD_TYPE on an expression. Also make a copy of rhs instead of 1279918334Speter modifying it. 1280050397Sobrien 1280118334SpeterTue Aug 6 12:58:46 1996 Jason Merrill <jason@yorick.cygnus.com> 1280250397Sobrien 1280318334Speter * call.c (compare_ics): Handle qual_conv after lvalue_conv. 1280450397Sobrien (add_builtin_candidate): Don't take enums for ++. 1280550397Sobrien (build_new_method_call): Handle non-aggregates and field calls. 1280650397Sobrien Move new overloading code from... 1280750397Sobrien * cvt.c: Here. 1280850397Sobrien 1280950397Sobrien * decl.c (grokparms): Don't check default args in templates. 1281050397Sobrien 1281150397SobrienMon Aug 5 17:17:06 1996 Jason Merrill <jason@yorick.cygnus.com> 1281250397Sobrien 1281350397Sobrien * cvt.c (build_new_op): Fix args to build_unary_op. 1281418334Speter (add_builtin_candidates): Don't call type_promotes_to on float. 1281550397Sobrien 1281618334Speter * decl.c (grokparms): Check the type of the default arg. 1281750397Sobrien 1281850397Sobrien * cvt.c (build_new_op): Pass non-overloaded cases on rather than 1281918334Speter returning NULL_TREE. 1282050397Sobrien 1282118334Speter * typeck.c (build_x_binary_op): Avoid doing extra work. 1282250397Sobrien (build_x_unary_op): Likewise. 1282350397Sobrien (build_x_conditional_expr): Likewise. 1282450397Sobrien * cvt.c (build_over_call): Return. 1282550397Sobrien (add_builtin_candidate): Fix MEMBER_REF. 1282650397Sobrien (build_new_op): Likewise. 1282750397Sobrien 1282818334SpeterMon Aug 5 17:07:47 1996 Mike Stump <mrs@cygnus.com> 1282950397Sobrien 1283018334Speter * method.c (build_overload_name): Put bug fix into code but leave 1283150397Sobrien disabled for now so we can be bug compatible with older releases 1283250397Sobrien that do repeats incorrectly. In the future, we can enable it. 1283318334Speter 1283450397SobrienMon Aug 5 13:46:28 1996 Jason Merrill <jason@yorick.cygnus.com> 1283550397Sobrien 1283650397Sobrien * cvt.c (convert_like): Don't call build_cplus_new twice. 1283750397Sobrien 1283850397Sobrien * call.c, cp-tree.h, cvt.c, decl2.c, init.c, method.c, pt.c, typeck.c: 1283918334Speter Control new overloading code with -fansi-overloading. 1284050397Sobrien 1284118334SpeterSun Aug 4 15:29:11 1996 Jason Merrill <jason@yorick.cygnus.com> 1284250397Sobrien 1284350397Sobrien * cvt.c (build_over_call): Call build_cplus_new. 1284418334Speter * call.c (build_method_call): Likewise. 1284550397Sobrien * typeck.c (build_function_call_real): Likewise. 1284618334Speter (build_conditional_expr): If both operands are TARGET_EXPRs, wrap 1284750397Sobrien the COND_EXPR in a TARGET_EXPR so they use the same slot. 1284850397Sobrien 1284918334Speter * cvt.c (build_up_reference): Propagate INDIRECT_BIND to 1285050397Sobrien recursive calls. 1285150397Sobrien * typeck.c (complete_type): Propagate 1285218334Speter TYPE_NEEDS_{CONSTRUCTING,DESTRUCTOR}. 1285350397Sobrien 1285418334SpeterSat Aug 3 14:05:07 1996 Jason Merrill <jason@yorick.cygnus.com> 1285550397Sobrien 1285618334Speter * cvt.c (joust): More ?: kludging. Sigh. 1285750397Sobrien (build_over_call): Don't try to synthesize global fns. 1285850397Sobrien 1285950397Sobrien * search.c (lookup_conversions): Use binfo marking. 1286050397Sobrien 1286118334SpeterSat Aug 3 12:33:42 1996 Bob Manson <manson@charmed.cygnus.com> 1286250397Sobrien 1286318334Speter * search.c (build_mi_matrix): Use the correct value of cid 1286450397Sobrien when determining the new mi_size. 1286550397Sobrien 1286618334SpeterSat Aug 3 01:27:41 1996 Jason Merrill <jason@yorick.cygnus.com> 1286750397Sobrien 1286818334Speter * cvt.c (add_builtin_candidates): Do consider type conversion ops 1286950397Sobrien for the first parms of += et al. 1287018334Speter (strip_top_quals): New fn. 1287150397Sobrien (reference_binding): Use it instead of TYPE_MAIN_VARIANT. 1287250397Sobrien (implicit_conversion): Likewise. 1287350397Sobrien (add_builtin_candidates): Be careful about arrays. 1287450397Sobrien (build_new_method_call): Handle vtable optimization. 1287550397Sobrien 1287650397SobrienFri Aug 2 01:26:59 1996 Jason Merrill <jason@yorick.cygnus.com> 1287750397Sobrien 1287850397Sobrien * cp-tree.h (LOOKUP_NO_TEMP_BIND): New flag. 1287950397Sobrien * cvt.c (reference_binding): Use it. 1288050397Sobrien (implicit_conversion): Use it. 1288150397Sobrien (add_builtin_candidate, COND_EXPR): Use it. 1288250397Sobrien 1288350397Sobrien * cvt.c (build_new_function_call): Check for error args. 1288450397Sobrien 1288518334Speter * typeck.c (comptypes): Just check DERIVED_FROM_P, not UNIQUELY. 1288650397Sobrien 1288718334Speter * gxx.gperf: Add __null. 1288850397Sobrien * hash.h: Regenerate. 1288918334Speter * lex.h: Add RID_NULL. 1289050397Sobrien * lex.c (init_lex): Create null_pointer_node here, stick it in 1289118334Speter RID_NULL. 1289250397Sobrien * decl.c (init_decl_processing): Still set its type here. 1289350397Sobrien * cvt.c (cp_convert_to_pointer): Don't produce null_pointer_node. 1289450397Sobrien (convert_to_pointer_force): Likewise. 1289550397Sobrien (null_ptr_cst_p): Check for null_pointer_node; only accept (void*)0 1289650397Sobrien if (! pedantic). 1289750397Sobrien * call.c (convert_harshness): Use null_ptr_cst_p. 1289850397Sobrien * typeck.c (convert_for_assignment): Likewise. Don't produce 1289950397Sobrien null_pointer_node. 1290018334Speter 1290150397Sobrien * error.c (args_as_string): Handle lists of actual args, too. 1290250397Sobrien * cvt.c (null_ptr_cst): Support (void*)0 for now. 1290350397Sobrien (build_user_type_conversion_1): Improve diagnostics. 1290450397Sobrien (build_new_function_call): Likewise. 1290550397Sobrien (build_object_call): Likewise. 1290650397Sobrien (build_new_method_call): Likewise. Move call before def diagnostic... 1290718334Speter (build_over_call): Here. 1290850397Sobrien 1290918334Speter * cvt.c (build_new_method_call): Don't complain about no match if 1291050397Sobrien LOOKUP_SPECULATIVELY. 1291150397Sobrien (build_over_call): Fix 'this' for virtual fn. 1291218334Speter (build_new_method_call): Add diagnostic. 1291350397Sobrien 1291418334SpeterThu Aug 1 16:45:09 1996 Jason Merrill <jason@yorick.cygnus.com> 1291550397Sobrien 1291650397Sobrien * cvt.c (add_function_candidate): Expect 'this' and 'in_chrg' for 1291718334Speter constructors to be passed in. 1291850397Sobrien (build_over_call): Likewise. 1291950397Sobrien (build_user_type_conversion_1): Pass them in. 1292018334Speter (convert_like): Likewise. 1292150397Sobrien (build_object_call): Handle overloaded conversions. 1292250397Sobrien (build_over_call): Pass the right args to build_vfn_ref. 1292350397Sobrien (standard_conversion): Fix pmf convs. 1292418334Speter (joust): Handle comparing statics and non-statics. 1292550397Sobrien (build_new_method_call): New fn. 1292650397Sobrien * call.c (build_method_call): Call it if NEW_OVER. 1292750397Sobrien 1292850397SobrienThu Aug 1 16:06:14 1996 Mike Stump <mrs@cygnus.com> 1292950397Sobrien 1293018334Speter * lex.c (do_identifier): Don't use %O on IDENTIFIER_OPNAME_Ps, use 1293150397Sobrien %D instead. 1293218334Speter 1293350397SobrienThu Aug 1 15:24:02 1996 Mike Stump <mrs@cygnus.com> 1293450397Sobrien 1293550397Sobrien * except.c (expand_throw): Use maybe_build_cleanup_and_delete 1293650397Sobrien instead of just maybe_build_cleanup so that we deallocate the 1293750397Sobrien thrown object. 1293818334Speter 1293950397SobrienThu Aug 1 15:18:00 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1294018334Speter 1294150397Sobrien * decl2.c (finish_prevtable_vardecl): Make non-static for pt.c's use. 1294218334Speter * cp-tree.h (finish_prevtable_vardecl): Add decl. 1294350397Sobrien 1294450397SobrienThu Aug 1 11:53:51 1996 Bob Manson <manson@charmed.cygnus.com> 1294518334Speter 1294650397Sobrien * pt.c (instantiate_class_template): Call complete_type. Also, if 1294718334Speter we're at the end of the file and we just instantiated a template 1294850397Sobrien class with a vtable, call finish_prevtable_vardecl. 1294950397Sobrien 1295018334Speter * error.c (dump_decl): Don't explode (or explode more gracefully 1295150397Sobrien as appropriate) if the object being dumped has a null type. 1295250397Sobrien (dump_expr): Likewise. 1295350397Sobrien 1295450397Sobrien * search.c (build_mi_matrix): Ensure that mi_size is large enough, 1295550397Sobrien by counting the number of nodes that we'll need before allocating 1295650397Sobrien the array. 1295718334Speter (lookup_fnfields): Fix comment. 1295850397Sobrien (breadth_first_search): Fix comment. 1295918334Speter 1296050397SobrienWed Jul 31 09:57:05 1996 Jason Merrill <jason@yorick.cygnus.com> 1296150397Sobrien 1296250397Sobrien * pt.c (instantiate_class_template): Propagate TYPE_PACKED and 1296318334Speter TYPE_ALIGN. 1296450397Sobrien * class.c (finish_struct): Call cplus_decl_attributes here. 1296518334Speter (finish_struct_1): Not here. 1296650397Sobrien * cp-tree.h: Adjust. 1296718334Speter 1296850397Sobrien * pt.c (type_unification): New parameter STRICT. 1296950397Sobrien (unify): If STRICT, don't allow cv addition or base deduction. 1297018334Speter * call.c, class.c, cvt.c, cp-tree.h: Adjust. 1297150397Sobrien 1297218334SpeterTue Jul 30 13:06:13 1996 Jason Merrill <jason@yorick.cygnus.com> 1297350397Sobrien 1297450397Sobrien * search.c (get_template_base{_recursive}): New fns. 1297550397Sobrien * pt.c (more_specialized): New fn. 1297650397Sobrien (do_function_instantiation): Use it. 1297750397Sobrien (unify): Handle base deduction. 1297818334Speter * cvt.c (joust): Use more_specialized. 1297952284Sobrien Don't arbitrarily choose between non-builtin candidates. 1298050397Sobrien (build_over_call): Call require_complete_type. 1298150397Sobrien 1298250397Sobrien * decl.c (start_function): Statics are static even in a #pragma 1298318334Speter interface file. 1298450397Sobrien 1298518334Speter * decl2.c (import_export_vtable): Disable vtable heuristic on 1298650397Sobrien systems with ASM_OUTPUT_EXTERNAL. 1298750397Sobrien 1298818334Speter * cvt.c (compare_ics): Fix comparison of PMEM_CONV and BASE_CONV. 1298950397Sobrien (standard_conversion): No std conv to enum type. 1299018334Speter 1299150397Sobrien * cvt.c (standard_conversion): Fix order of args to DERIVED_FROM_P 1299218334Speter for ptm's. 1299350397Sobrien 1299450397Sobrien * cvt.c (reference_binding): Bind directly to a base subobject of 1299518334Speter a class rvalue. 1299650397Sobrien 1299718334Speter * cvt.c (build_new_op): Enforce access control. 1299850397Sobrien 1299950397SobrienTue Jul 30 09:22:53 1996 Bob Manson <manson@charmed.cygnus.com> 1300050397Sobrien 1300150397Sobrien * typeck2.c (process_init_constructor): When scanning the 1300250397Sobrien union for a named field, skip things that aren't FIELD_DECLs. 1300350397Sobrien 1300450397Sobrien * method.c (synthesize_method): Don't scan fndecl's rtl if 1300518334Speter we're at the end of the file; just assume the function can't 1300650397Sobrien be inlined. 1300718334Speter 1300850397SobrienMon Jul 29 15:48:30 1996 Jason Merrill <jason@yorick.cygnus.com> 1300950397Sobrien 1301050397Sobrien * cvt.c (build_builtin_candidate): Stick a dummy conversion in if 1301150397Sobrien it failed. 1301218334Speter 1301350397Sobrien * cvt.c (build_user_type_conversion_1): Handle overloaded 1301418334Speter conversion ops. 1301550397Sobrien 1301618334Speter * cvt.c (add_builtin_candidates): Don't consider type conversion 1301750397Sobrien operators for the first parameter of operator=. 1301850397Sobrien 1301950397SobrienMon Jul 29 15:33:55 1996 Bob Manson <manson@charmed.cygnus.com> 1302050397Sobrien 1302150397Sobrien * typeck.c (complete_type): Only call layout_type if we're not 1302250397Sobrien expanding a template. 1302350397Sobrien 1302450397SobrienMon Jul 29 14:40:38 1996 Jason Merrill <jason@yorick.cygnus.com> 1302550397Sobrien 1302650397Sobrien * cvt.c (compare_ics): Oops. 1302750397Sobrien 1302850397Sobrien * cvt.c (op_error): Oops. 1302950397Sobrien 1303018334Speter * cp-tree.def: Add RVALUE_CONV, rename EXACT_CONV to IDENTITY_CONV. 1303150397Sobrien * cvt.c: Add IDENTITY_RANK before others. Use real_lvalue_p. 1303250397Sobrien (build_conv): Use them. 1303350397Sobrien (implicit_conversion): Use them. 1303450397Sobrien (convert_like): Handle them. 1303550397Sobrien (build_new_op): Handle builtin COND_EXPR again. 1303650397Sobrien (add_builtin_candidates): Strip cv-quals. Fix oops. Include enums 1303750397Sobrien in lists of types for COND_EXPR. 1303818334Speter (add_builtin_candidate): Add enum candidates for COND_EXPR. 1303950397Sobrien 1304050397SobrienMon Jul 29 12:05:40 1996 Bob Manson <manson@charmed.cygnus.com> 1304150397Sobrien 1304250397Sobrien * typeck.c (build_modify_expr): Always attempt to build a call to 1304318334Speter the assignment operator, even if we're using a default one. 1304450397Sobrien (convert_for_initialization): Call complete_type. 1304518334Speter 1304650397SobrienMon Jul 29 11:25:08 1996 Jason Merrill <jason@yorick.cygnus.com> 1304750397Sobrien 1304850397Sobrien * cvt.c (reference_binding): A REF_BIND gets the reference type. 1304950397Sobrien (implicit_conversion): Likewise. 1305050397Sobrien (convert_like): Likewise. 1305150397Sobrien (compare_ics): Likewise. 1305250397Sobrien (compare_qual): Likewise. 1305350397Sobrien (print_z_candidates): Handle no candidates. 1305450397Sobrien (build_new_op): Don't handle builtin COND_EXPR for now. 1305550397Sobrien 1305650397SobrienSat Jul 27 11:27:47 1996 Stan Shebs <shebs@andros.cygnus.com> 1305718334Speter 1305850397Sobrien * cvt.c (build_builtin_candidate): Init local var in an ANSI way. 1305918334Speter 1306050397SobrienFri Jul 26 01:07:22 1996 Jason Merrill <jason@yorick.cygnus.com> 1306150397Sobrien 1306218334Speter * cvt.c (joust): If the candidates are the same, arbitrarily pick one. 1306350397Sobrien 1306418334Speter * cvt.c (build_builtin_candidate): Oops. 1306550397Sobrien (build_new_op): Oops. 1306650397Sobrien 1306750397Sobrien * method.c (build_opfncall): Pass COND_EXPR on. 1306818334Speter * cvt.c (build_builtin_candidate): Reorganize, support COND_EXPR. 1306950397Sobrien (add_builtin_candidate{,s}): Likewise. 1307018334Speter (add_builtin_candidates): Likewise. 1307150397Sobrien (print_z_candidates, op_error, build_new_op): Likewise. 1307250397Sobrien (type_decays_to): New fn. 1307318334Speter * lex.c (init_lex): Just say ?: for COND_EXPR. 1307450397Sobrien 1307518334SpeterThu Jul 25 09:33:33 1996 Jason Merrill <jason@yorick.cygnus.com> 1307652284Sobrien 1307750397Sobrien * typeck.c (complete_type): Call layout_type rather than building 1307850397Sobrien a new array type. 1307918334Speter 1308050397Sobrien * cvt.c (add_builtin_candidate): Pointer arithmetic candidates 1308150397Sobrien only use ptrdiff_t. 1308250397Sobrien 1308318334SpeterWed Jul 24 12:45:08 1996 Jason Merrill <jason@yorick.cygnus.com> 1308450397Sobrien 1308550397Sobrien * cvt.c: Always compile the new overloading code (but don't use it). 1308650397Sobrien (implicit_conversion): Add a BASE_CONV when converting to 1308750397Sobrien the same class type. 1308850397Sobrien (convert_like): Handle BASE_CONV. 1308918334Speter 1309050397SobrienTue Jul 23 12:46:30 1996 Jason Merrill <jason@yorick.cygnus.com> 1309118334Speter 1309250397Sobrien * cvt.c (build_new_op): Support {MAX,MIN}_EXPR. 1309350397Sobrien (add_builtin_candidate): Likewise. 1309450397Sobrien 1309550397Sobrien NEW_OVER changes: 1309650397Sobrien * typeck.c (build_x_function_call): Try an operator function 1309718334Speter whenever we call an object of class type. 1309850397Sobrien * method.c (build_opfncall): Pass CALL_EXPRs through. 1309950397Sobrien * cvt.c (implicit_conversion): Do const-ref case first. 1310050397Sobrien (add_conv_candidate, build_object_call, op_error): New fns. 1310118334Speter (ptr_complete_ob, TYPE_PTROB_P): void is not an object type. 1310250397Sobrien ({add,build}_builtin_candidate{,s}, print_z_candidates): Display 1310318334Speter builtin candidates. 1310450397Sobrien (build_new_op): Handle CALL_EXPR. Don't try to decay void. 1310550397Sobrien Fall back on preincrement handling. Use op_error. 1310650397Sobrien Handle warn_synth. 1310750397Sobrien (convert_like): Pass INDIRECT_BIND. Don't try to do anything with 1310850397Sobrien an error_mark_node. 1310950397Sobrien (build_over_call): Handle PROMOTE_PROTOTYPES and ellipsis promotions 1311050397Sobrien properly. 1311118334Speter 1311250397SobrienMon Jul 22 16:21:55 1996 Bob Manson <manson@charmed.cygnus.com> 1311350397Sobrien 1311418334Speter * pt.c (tsubst_expr): Handle CONTINUE_STMT. 1311550397Sobrien 1311650397SobrienMon Jul 22 15:38:58 1996 Mike Stump <mrs@cygnus.com> 1311718334Speter 1311850397Sobrien * typeck.c (build_component_ref_1): Use build_component_ref 1311950397Sobrien instead of open coding it here. 1312018334Speter 1312150397SobrienMon Jul 22 12:18:54 1996 Jason Merrill <jason@yorick.cygnus.com> 1312250397Sobrien 1312318334Speter * g++.c (main): Don't link with -lg++. 1312450397Sobrien 1312550397Sobrien NEW_OVER changes: 1312618334Speter * cvt.c (convert_to_reference): Don't use convert_from_reference on 1312750397Sobrien result of build_type_conversion. 1312818334Speter (cp_convert): Only call build_method_call for ctors if 1312950397Sobrien build_type_conversion failed. 1313018334Speter (ptr_complete_ob): New function. 1313150397Sobrien (TYPE_PTR{,OB,MEM}_P): New macros. 1313250397Sobrien ({add,build}_builtin_candidate{,s}): New functions. 1313318334Speter (print_z_candidates): Handle builtins. 1313450397Sobrien (build_user_type_conversion_1): Don't use conversion fns for 1313550397Sobrien converting to a base type. 1313650397Sobrien (build_user_type_conversion_1): Set ICS_USER_FLAG on AMBIG_CONVs. 1313718334Speter (build_user_type_conversion): Use convert_from_reference. 1313850397Sobrien (build_new_op): New function. 1313918334Speter (build_over_call): Fix handling of methods. 1314050397Sobrien (compare_ics): Handle AMBIG_CONV properly. 1314150397Sobrien * typeck2.c: Increment abort count. 1314218334Speter * method.c (build_opfncall): Forward most requests to build_new_op. 1314350397Sobrien * cp-tree.h (IS_OVERLOAD_TYPE): Tweak. 1314450397Sobrien 1314518334SpeterFri Jul 19 17:59:29 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1314650397Sobrien 1314750397Sobrien * error.c (dump_expr, case CONSTRUCTOR, case CAST_EXPR): Take out 1314818334Speter invalid second argument to dump_expr_list. 1314950397Sobrien 1315018334SpeterFri Jul 19 14:04:05 1996 Mike Stump <mrs@cygnus.com> 1315150397Sobrien 1315250397Sobrien * decl.c (lookup_name_real): Make sure we do obj->X::i correctly. 1315318334Speter 1315450397SobrienThu Jul 18 14:48:23 1996 Bob Manson <manson@charmed.cygnus.com> 1315518334Speter 1315650397Sobrien * decl2.c (import_export_vtable): ASM_OUTPUT_EXTERNAL, not 1315718334Speter ASSEMBLE_EXTERNAL. 1315850397Sobrien 1315918334SpeterMon Jul 15 17:48:43 1996 Mike Stump <mrs@cygnus.com> 1316050397Sobrien 1316150397Sobrien * typeck2.c (process_init_constructor): New pedwarn for using { } 1316250397Sobrien to initialize a pointer to member function. 1316350397Sobrien * typeck.c (build_ptrmemfunc1): Avoid use of digest_init so that 1316450397Sobrien we can avoid the new error. 1316550397Sobrien 1316650397SobrienMon Jul 15 15:42:03 1996 Mike Stump <mrs@cygnus.com> 1316750397Sobrien 1316850397Sobrien * typeck.c (build_ptrmemfunc1): New function to hide details of 1316918334Speter pointer to member functions better. 1317050397Sobrien 1317118334SpeterMon Jul 15 14:23:02 1996 Mike Stump <mrs@cygnus.com> 1317250397Sobrien 1317350397Sobrien * init.c (resolve_offset_ref): Resolve OFFSET_REFs that are 1317450397Sobrien methods into the actual method, as we know the implied object is 1317518334Speter not used. 1317650397Sobrien 1317718334SpeterMon Jul 15 13:08:29 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1317850397Sobrien 1317950397Sobrien * parse.y (maybecomma_warn): Only emit the pedwarn if we're not 1318050397Sobrien inside a system header. 1318150397Sobrien 1318250397SobrienFri Jul 12 16:30:05 1996 Bob Manson <manson@charmed.cygnus.com> 1318350397Sobrien 1318450397Sobrien * call.c (build_method_call): Call complete_type on the 1318518334Speter instance type. 1318650397Sobrien 1318718334SpeterThu Jul 11 17:16:40 1996 Mike Stump <mrs@cygnus.com> 1318850397Sobrien 1318918334Speter * typeck.c (build_component_ref): Always build up an OFFSET_REF 1319050397Sobrien for obj_ptr->func so that we can know which object to use in a 1319118334Speter method call. 1319250397Sobrien 1319318334SpeterWed Jul 10 19:36:37 1996 Mike Stump <mrs@cygnus.com> 1319450397Sobrien 1319550397Sobrien * typeck.c (build_ptrmemfunc): Remove sorry, now we can cast 1319618334Speter around things. Also improve maintainability. 1319750397Sobrien 1319850397SobrienWed Jul 10 18:20:11 1996 Bob Manson <manson@charmed.cygnus.com> 1319950397Sobrien 1320050397Sobrien * decl.c (grokdeclarator): Check for overflow when evaluating an 1320150397Sobrien array dimension. 1320250397Sobrien 1320350397SobrienWed Jul 10 17:26:19 1996 Jason Merrill <jason@yorick.cygnus.com> 1320418334Speter 1320550397Sobrien * cvt.c (cp_convert): Don't check for ambiguity with constructor 1320618334Speter if NEW_OVER. 1320750397Sobrien 1320850397Sobrien * typeck.c (build_x_function_call): Pass function overload 1320918334Speter questions to new overloading code if NEW_OVER. 1321050397Sobrien * init.c (expand_aggr_init_1): Only check for type conversion ops 1321150397Sobrien if we're doing copy-initialization (i.e. LOOKUP_ONLYCONVERTING). 1321218334Speter Don't check for ambiguity with constructor if NEW_OVER. 1321350397Sobrien * cvt.c (convert_to_reference): Dereference the result of a type 1321418334Speter conversion operator. 1321550397Sobrien (build_conv): Propagate ICS_USER_FLAG. 1321650397Sobrien (implicit_conversion): Call instantiate_type. 1321750397Sobrien Pass LOOKUP_ONLYCONVERTING instead of LOOKUP_NORMAL. 1321850397Sobrien (add_function_candidate): Fix cv-quals on argtype. 1321918334Speter (print_z_candidates): New function. 1322050397Sobrien (build_new_function_call): Call it. 1322118334Speter (build_user_type_conversion_1): If LOOKUP_ONLYCONVERTING, don't 1322250397Sobrien consider non-converting constructors. 1322350397Sobrien Call print_z_candidates. 1322418334Speter Return an AMBIG_CONV for an ambiguous conversion. 1322550397Sobrien (build_user_type_conversion): Handle AMBIG_CONV. 1322650397Sobrien (convert_like): Fix test for building TARGET_EXPR. 1322750397Sobrien Call instantiate_type. 1322850397Sobrien Handle AMBIG_CONV and LVALUE_CONV. 1322950397Sobrien (build_over_call): Handle 0 args and ellipsis. 1323050397Sobrien * cp-tree.def: Add AMBIG_CONV. 1323150397Sobrien 1323252284SobrienTue Jul 9 17:48:48 1996 Mike Stump <mrs@cygnus.com> 1323350397Sobrien 1323450397Sobrien * decl.c (lookup_name_real): If we find mem in obj when parsing 1323552284Sobrien `obj->mem', make sure we return the right value. 1323650397Sobrien 1323752284SobrienTue Jul 9 16:11:28 1996 Bob Manson <manson@charmed.cygnus.com> 1323850397Sobrien 1323950397Sobrien * search.c (get_base_distance): Call complete_type. 1324050397Sobrien 1324118334SpeterTue Jul 9 12:46:34 1996 Mike Stump <mrs@cygnus.com> 1324250397Sobrien 1324318334Speter * decl.c (store_bindings): Make static. 1324450397Sobrien 1324518334SpeterMon Jul 8 16:42:31 1996 Jason Merrill <jason@yorick.cygnus.com> 1324650397Sobrien 1324718334Speter * init.c (expand_aggr_init_1): Don't check type conversions if 1324850397Sobrien NEW_OVER. 1324950397Sobrien 1325018334Speter * cvt.c (z_candidate): Put back template field. 1325150397Sobrien (add_function_candidate): Set it. 1325218334Speter (add_template_candidate): Likewise. 1325350397Sobrien (joust): Use it. 1325418334Speter (compare_qual): Handle references and pointers to members. 1325550397Sobrien (compare_ics): Handle reference bindings. 1325652284Sobrien 1325750397Sobrien * decl.c (duplicate_decls): Propagate DECL_ONE_ONLY. 1325850397Sobrien 1325950397SobrienMon Jul 8 16:18:56 1996 Bob Manson <manson@charmed.cygnus.com> 1326050397Sobrien 1326150397Sobrien * call.c (compute_conversion_costs): Call complete_type. 1326250397Sobrien 1326350397Sobrien * tree.c (vec_binfo_member): Use comptypes instead of comparing 1326452284Sobrien pointers, so we can handle template parameters. 1326550397Sobrien 1326650397SobrienFri Jul 5 16:51:53 1996 Bob Manson <manson@charmed.cygnus.com> 1326750397Sobrien 1326850397Sobrien * cvt.c (cp_convert_to_pointer): We have to call complete_type 1326950397Sobrien here; let's make it explicit instead of a side effect of an 1327050397Sobrien error check. 1327150397Sobrien 1327250397SobrienWed Jul 3 16:29:51 1996 Jason Merrill <jason@yorick.cygnus.com> 1327350397Sobrien 1327418334Speter * cvt.c (z_candidate): Remove template field. 1327550397Sobrien (reference_binding): Handle binding to temporary. 1327618334Speter (implicit_conversion): Likewise. 1327750397Sobrien (add_function_candidate): Handle artificial constructor parms. 1327850397Sobrien Handle functions with too few parms. 1327918334Speter (add_template_candidate): New function. 1328050397Sobrien (build_user_type_conversion_1): Handle constructors. 1328118334Speter (convert_like): Likewise. 1328250397Sobrien (build_over_call): Likewise. 1328318334Speter (build_new_function_call): Support templates. 1328450397Sobrien (compare_ics): Fix reference, inheritance handling. 1328518334Speter 1328650397SobrienMon Jul 1 22:58:18 1996 Bob Manson <manson@charmed.cygnus.com> 1328750397Sobrien 1328818334Speter * decl.c: Add signed_size_zero_node. 1328950397Sobrien (init_decl_processing): Build it. 1329018334Speter * class.c (prepare_fresh_vtable): Use it instead of size_zero_node 1329150397Sobrien when we're trying to make a negative delta. 1329250397Sobrien 1329350397SobrienMon Jul 1 17:56:19 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1329450397Sobrien 1329518334Speter Stop doing this damn index==strchr variable name confusion. 1329650397Sobrien * class.c (add_virtual_function): Change local var INDEX to be 1329718334Speter named IDX. 1329850397Sobrien (add_method): Likewise. 1329950397Sobrien * lex.c (print_parse_statistics): Likewise. 1330018334Speter * search.c (make_memoized_table_entry): Likewise. 1330150397Sobrien (lookup_fnfields_here): Likewise. 1330218334Speter (lookup_field): Likewise. 1330350397Sobrien (lookup_fnfields): Likewise. 1330450397Sobrien (get_baselinks): Likewise. 1330550397Sobrien * sig.c (build_signature_table_constructor): Likewise. 1330618334Speter (build_signature_method_call): Likewise. 1330750397Sobrien * typeck.c (build_x_array_ref): Change INDEX parm to be named IDX. 1330818334Speter (get_member_function_from_ptrfunc): Likewise. 1330950397Sobrien (build_ptrmemfunc): Change local var INDEX to be IDX. 1331050397Sobrien (c_expand_start_case): Likewise. 1331118334Speter 1331250397SobrienSat Jun 29 14:05:46 1996 Jason Merrill <jason@yorick.cygnus.com> 1331318334Speter 1331450397Sobrien * cvt.c (cp_convert_to_pointer): Move user-defined type conversion 1331550397Sobrien handling to before extraction of TYPE_PTRMEMFUNC_FN_TYPE. 1331650397Sobrien (convert_to_reference): Use build_type_conversion to convert to 1331750397Sobrien the reference type directly. 1331850397Sobrien (standard_conversion): Fix void* case, non-conversions. 1331950397Sobrien (reference_binding): Fix expr == 0 case, non-conversions. 1332050397Sobrien (convert_like): Support REF_BIND. 1332150397Sobrien (compare_qual): Split out from compare_ics. 1332250397Sobrien (compare_ics): Use it, handle icses with only a qual_conv. 1332350397Sobrien 1332450397Sobrien * init.c (expand_vec_init): Don't crash if decl is NULL. 1332550397Sobrien 1332650397SobrienFri Jun 28 11:52:51 1996 Stan Shebs <shebs@andros.cygnus.com> 1332750397Sobrien 1332850397Sobrien * mpw-config.in: New file, configury for Mac MPW. 1332950397Sobrien * mpw-make.sed: New file, makefile editing for MPW. 1333050397Sobrien 1333150397SobrienThu Jun 27 15:18:30 1996 Jason Merrill <jason@yorick.cygnus.com> 1333250397Sobrien 1333350397Sobrien * pt.c (instantiate_class_template): Call repo_template_used. 1333450397Sobrien 1333550397Sobrien * search.c (lookup_conversions): Only lookup conversions in 1333650397Sobrien complete types. 1333750397Sobrien 1333850397SobrienThu Jun 27 12:59:53 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1333950397Sobrien 1334050397Sobrien * cp-tree.def: Renamed from tree.def, to avoid confusion with 1334150397Sobrien gcc's tree.def. 1334250397Sobrien * cp-tree.h, lex.c: Include cp-tree.def. 1334350397Sobrien * Makefile.in (CXX_TREE_H): Reference cp-tree.def. 1334418334Speter 1334550397SobrienWed Jun 26 18:29:47 1996 Bob Manson <manson@charmed.cygnus.com> 1334650397Sobrien 1334750397Sobrien * init.c (build_vec_delete_1): Call complete_type. 1334850397Sobrien 1334950397SobrienMon Jun 24 17:17:32 1996 Mike Stump <mrs@cygnus.com> 1335050397Sobrien 1335150397Sobrien * except.c (start_anon_func): Make sure anonymous functions are 1335250397Sobrien never external. 1335350397Sobrien 1335450397SobrienFri Jun 21 15:10:58 1996 Jason Merrill <jason@yorick.cygnus.com> 1335550397Sobrien 1335650397Sobrien * decl.c (finish_function): If function_depth > 1, set nested. 1335750397Sobrien 1335850397Sobrien * decl2.c (grokbitfield): Revert Bob's change. 1335950397Sobrien * class.c (finish_struct_1): Fix handling of named bitfield widths. 1336050397Sobrien 1336118334SpeterThu Jun 20 23:35:38 1996 Jason Merrill <jason@yorick.cygnus.com> 1336250397Sobrien 1336318334Speter * pt.c (add_pending_template): Handle types. 1336450397Sobrien (lookup_template_class): With -fexternal-templates, just add the class 1336550397Sobrien to pending_templates instead of instantiating it now. 1336618334Speter * decl2.c (finish_file): Handle types in pending_templates. 1336750397Sobrien 1336818334SpeterThu Jun 20 14:08:40 1996 Bob Manson <manson@charmed.cygnus.com> 1336950397Sobrien 1337018334Speter * decl2.c (grokbitfield): Handle constant decls appropriately. 1337150397Sobrien Give an appropriate error message now instead of spewing core 1337218334Speter later. 1337350397Sobrien 1337418334SpeterThu Jun 20 13:01:51 1996 Jason Merrill <jason@yorick.cygnus.com> 1337550397Sobrien 1337618334Speter * decl2.c: Don't turn on thunks by default for now. 1337750397Sobrien 1337850397SobrienWed Jun 19 11:37:04 1996 Jason Merrill <jason@yorick.cygnus.com> 1337918334Speter 1338050397Sobrien * typeck.c (complete_type): Handle error_mark_node. 1338150397Sobrien (common_type, OFFSET_TYPE): Handle template_type_parms. 1338250397Sobrien 1338350397SobrienTue Jun 18 10:02:15 1996 Jason Merrill <jason@yorick.cygnus.com> 1338450397Sobrien 1338550397Sobrien * pt.c (instantiate_decl): If at_eof, call import_export_decl 1338618334Speter regardless of DECL_INLINE. 1338750397Sobrien 1338818334Speter * typeck.c (mark_addressable): Set TREE_ADDRESSABLE on CONSTRUCTORs. 1338950397Sobrien 1339018334Speter * class.c (finish_struct_bits): Copy TYPE_SIZE. 1339150397Sobrien 1339218334Speter * rtti.c (build_dynamic_cast): Support templates. 1339350397Sobrien * tree.def: Support DYNAMIC_CAST_EXPR. 1339450397Sobrien * pt.c (tsubst_copy): Likewise. 1339518334Speter * decl2.c (build_expr_from_tree): Likewise. 1339650397Sobrien 1339718334SpeterMon Jun 17 15:23:36 1996 Jason Merrill <jason@yorick.cygnus.com> 1339850397Sobrien 1339950397Sobrien * typeck.c (build_static_cast): Support templates. 1340050397Sobrien (build_const_cast): Likewise. 1340118334Speter * tree.def: Support CONST/STATIC_CAST_EXPR. 1340250397Sobrien * pt.c (tsubst_copy): Likewise. 1340318334Speter * decl2.c (build_expr_from_tree): Likewise. 1340450397Sobrien 1340550397SobrienSun Jun 16 12:33:57 1996 Jason Merrill <jason@yorick.cygnus.com> 1340650397Sobrien 1340750397Sobrien * decl2.c (finish_vtable_vardecl): Don't trust 1340850397Sobrien TREE_SYMBOL_REFERENCED for vtables of local classes. 1340950397Sobrien 1341050397SobrienFri Jun 14 18:13:36 1996 Jason Merrill <jason@yorick.cygnus.com> 1341150397Sobrien 1341250397Sobrien * pt.c (tsubst_copy): Handle operator T. 1341350397Sobrien 1341450397SobrienWed Jun 12 17:52:40 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1341518334Speter 1341650397Sobrien * init.c (build_delete): Move creation of PARMS inside test of 1341718334Speter TYPE_HAS_DESTRUCTOR, since it's never used outside of that block. 1341850397Sobrien 1341950397SobrienTue Jun 11 15:09:18 1996 Bob Manson <manson@charmed.cygnus.com> 1342050397Sobrien 1342150397Sobrien * typeck.c (build_conditional_expr): Don't assume that 1342218334Speter the arguments to ?: are always pointers or records. 1342350397Sobrien 1342418334SpeterTue Jun 11 13:56:23 1996 Jason Merrill <jason@yorick.cygnus.com> 1342550397Sobrien 1342650397Sobrien * decl2.c (import_export_decl): Still emit static/weak/comdat 1342750397Sobrien copies of inline template functions with -fno-implicit-templates. 1342850397Sobrien 1342950397SobrienTue Jun 11 11:42:13 1996 Bob Manson <manson@charmed.cygnus.com> 1343050397Sobrien 1343150397Sobrien * init.c (build_delete): Determine the complete basetype 1343250397Sobrien path to the destructor we're calling. 1343350397Sobrien 1343450397SobrienFri Jun 7 15:30:10 1996 Bob Manson <manson@charmed.cygnus.com> 1343550397Sobrien 1343650397Sobrien * decl.c (build_enumerator): Always copy the INTEGER_CST used to 1343750397Sobrien initialize the enum, because we really and truly don't know where 1343850397Sobrien it came from. 1343950397Sobrien (start_enum): Don't copy integer_zero_node because 1344050397Sobrien build_enumerator will do it. 1344118334Speter 1344250397SobrienFri Jun 7 11:11:09 1996 Jason Merrill <jason@yorick.cygnus.com> 1344318334Speter 1344450397Sobrien * decl.c (finish_function): Do access control on base destructors. 1344550397Sobrien 1344650397Sobrien * pt.c (tsubst, case FUNCTION_DECL): Set up 1344750397Sobrien IDENTIFIER_GLOBAL_VALUE for member functions so pushdecl doesn't 1344850397Sobrien hose us. 1344950397Sobrien 1345050397SobrienFri Jun 7 10:37:33 1996 Mike Stump <mrs@cygnus.com> 1345150397Sobrien 1345250397Sobrien * cvt.c (build_up_reference): If we have already extended the 1345318334Speter lifetime of the temporary, don't try it again. 1345450397Sobrien * typeck.c (c_expand_return): Don't try and convert the return 1345518334Speter value twice when we want a reference, once is enough. 1345650397Sobrien 1345718334SpeterTue Jun 4 15:41:45 1996 Jason Merrill <jason@yorick.cygnus.com> 1345850397Sobrien 1345950397Sobrien * pt.c (tsubst_expr, case DECL_STMT): Don't pass 1346018334Speter LOOKUP_ONLYCONVERTING at all for now. 1346150397Sobrien 1346218334Speter * search.c (add_conversions): Put the conversion function in 1346350397Sobrien TREE_VALUE, the basetype in TREE_PURPOSE. 1346418334Speter * cvt.c (build_type_conversion): Adjust. 1346550397Sobrien * cvt.c (build_expr_type_conversion): Adjust. 1346650397Sobrien * call.c (user_harshness): Adjust. 1346718334Speter 1346850397SobrienMon Jun 3 15:30:52 1996 Jason Merrill <jason@yorick.cygnus.com> 1346918334Speter 1347050397Sobrien * method.c (emit_thunk): Pretend this is a FUNCTION_DECL for the 1347150397Sobrien backend's benefit. 1347250397Sobrien 1347350397SobrienMon Jun 10 18:58:19 1996 Mike Stump <mrs@cygnus.com> 1347418334Speter 1347550397Sobrien * except.c (expand_start_catch_block): Add a dummy region, if we 1347618334Speter get an error, so that we can avoid core dumping later. 1347750397Sobrien 1347818334SpeterFri May 31 14:56:13 1996 Mike Stump <mrs@cygnus.com> 1347950397Sobrien 1348018334Speter * cp-tree.h (OFFSET_REF): Remove. 1348150397Sobrien * tree.def (CP_OFFSET_REF): Rename to OFFSET_REF. 1348250397Sobrien * expr.c (cplus_expand_expr): Cleanup callers of expand_expr. 1348318334Speter * init.c (expand_aggr_init_1): Likewise. 1348450397Sobrien (build_new): Likewise. 1348518334Speter * typeck.c (expand_target_expr): Likewise. 1348650397Sobrien 1348718334SpeterFri May 31 14:22:08 1996 Jason Merrill <jason@yorick.cygnus.com> 1348850397Sobrien 1348950397Sobrien * typeck.c (build_modify_expr): Don't use TREE_VALUE on a 1349018334Speter TARGET_EXPR. 1349150397Sobrien 1349218334SpeterWed May 29 17:04:33 1996 Mike Stump <mrs@cygnus.com> 1349350397Sobrien 1349450397Sobrien * cvt.c (build_up_reference): Redo how and when temporaries are 1349550397Sobrien created. 1349650397Sobrien * decl.c (grok_reference_init): Don't try and be smart about 1349718334Speter running cleanups. 1349850397Sobrien 1349918334SpeterWed May 29 16:02:08 1996 Mike Stump <mrs@cygnus.com> 1350050397Sobrien 1350150397Sobrien * cvt.c (build_up_reference): Add NULL_TREE to all calls to build 1350250397Sobrien (TARGET_EXPR...), now that it has 4 arguments. 1350318334Speter * tree.c (build_cplus_new): Likewise. 1350450397Sobrien 1350518334SpeterThu May 23 16:40:30 1996 Jason Merrill <jason@yorick.cygnus.com> 1350650397Sobrien 1350718334Speter * error.c (dump_expr, case CAST_EXPR): Handle T() properly. 1350850397Sobrien 1350918334Speter * pt.c (instantiate_decl): Don't call push/pop_cp_function_context. 1351050397Sobrien * decl.c (struct saved_scope): Remove named_labels, 1351150397Sobrien {base,member}_init_list. 1351218334Speter (maybe_push_to_top_level): Don't set them. Call 1351350397Sobrien push_cp_function_context if appropriate. 1351418334Speter (pop_from_top_level): Likewise. 1351550397Sobrien 1351650397Sobrien * method.c (do_build_assign_ref): Remove obsolete check of 1351718334Speter TYPE_HAS_ASSIGN_REF (basetype). 1351850397Sobrien 1351918334Speter * decl.c (grokfndecl): Diagnose user definition of 1352050397Sobrien implicitly-declared methods. 1352118334Speter 1352250397SobrienThu May 23 12:13:08 1996 Bob Manson <manson@charmed.cygnus.com> 1352350397Sobrien 1352450397Sobrien * method.c (do_build_copy_constructor): Add code to give 1352550397Sobrien meaningful error messages instead of crashing. 1352618334Speter (do_build_assign_ref): Don't synthesize assignment operators for 1352750397Sobrien classes containing reference or const members. 1352818334Speter 1352950397Sobrien * class.c (struct base_info): Remove cant_synth_copy_ctor 1353050397Sobrien and cant_synth_asn_ref. 1353150397Sobrien (finish_base_struct): Remove the code that tries to conditionalize 1353250397Sobrien synthesis of copy constructors & assignment operators based on 1353350397Sobrien access permissions. Instead, let it fail when it tries to 1353418334Speter synthesize the copy constructor. This will give meaningful error 1353550397Sobrien messages instead of silently generating code to perform a bitcopy. 1353618334Speter 1353750397SobrienWed May 22 11:45:19 1996 Bob Manson <manson@charmed.cygnus.com> 1353850397Sobrien 1353918334Speter * lex.c (real_yylex): Remove old-n-crufty #if 0 code for 1354050397Sobrien determining types for constant values. 1354118334Speter 1354250397Sobrien * decl.c (struct named_label_list): Use instead of stuffing 1354318334Speter random items into a TREE_LIST node. 1354450397Sobrien (named_label_uses): Use the new struct. 1354518334Speter (poplevel): Likewise. 1354650397Sobrien (lookup_label): Likewise. 1354750397Sobrien (define_label): Add an error message to tell the user the line 1354818334Speter where the goto is located in addition to the destination of the 1354950397Sobrien goto. 1355018334Speter (init_decl_processing): Use NULL instead of NULL_TREE to initialize 1355150397Sobrien named_label_uses. 1355250397Sobrien (finish_function): Likewise. 1355318334Speter 1355450397Sobrien (start_decl): Complain about defining a static data member 1355518334Speter in a different type from which it was declared. 1355650397Sobrien 1355750397SobrienWed May 22 09:33:23 1996 Jason Merrill <jason@yorick.cygnus.com> 1355818334Speter 1355950397Sobrien * cvt.c (build_expr_type_conversion): Adjust. 1356018334Speter 1356150397SobrienTue May 21 11:21:56 1996 Jason Merrill <jason@yorick.cygnus.com> 1356250397Sobrien 1356318334Speter * call.c (build_method_call): Always convert 'this' to the 1356450397Sobrien appropriate type. 1356518334Speter 1356650397Sobrien * search.c (add_conversions): Put the conversion function in 1356750397Sobrien TREE_VALUE, the type in TREE_PURPOSE. 1356850397Sobrien * cvt.c (build_type_conversion): Adjust. 1356950397Sobrien * call.c (user_harshness): Adjust. 1357050397Sobrien 1357118334Speter * method.c (emit_thunk): Call temporary_allocation and 1357250397Sobrien permanent_allocation around the ASM_OUTPUT_MI_THUNK case, too. 1357318334Speter 1357450397Sobrien * tree.c (build_cplus_array_type): Handle tweaking of 1357518334Speter TYPE_MAIN_VARIANT here. 1357650397Sobrien * typeck.c (common_type): Not here. 1357750397Sobrien 1357850397Sobrien * typeck.c (complete_type): Only try to complete an array type if 1357918334Speter it has a domain. 1358050397Sobrien 1358118334SpeterMon May 20 14:55:59 1996 Jason Merrill <jason@yorick.cygnus.com> 1358250397Sobrien 1358350397Sobrien * decl.c (grokvardecl): Call complete_type. 1358450397Sobrien (grokdeclarator): Call complete_type for PARM_DECLs. 1358550397Sobrien 1358652284SobrienFri May 17 16:41:17 1996 Jason Merrill <jason@yorick.cygnus.com> 1358750397Sobrien 1358818334Speter * pt.c (instantiate_class_template): Re-set 1358950397Sobrien CLASSTYPE_GOT_SEMICOLON after calling finish_struct_1. 1359050397Sobrien 1359118334SpeterFri May 17 14:56:55 1996 Mike Stump <mrs@cygnus.com> 1359250397Sobrien 1359350397Sobrien * cp-tree.h (cp_expand_decl_cleanup): Remove, the backend is now 1359450397Sobrien smart enough to do it right. 1359550397Sobrien * tree.c (cp_expand_decl_cleanup): Likewise. 1359650397Sobrien * decl.c (cp_finish_decl): Use expand_decl_cleanup instead of 1359718334Speter cp_expand_decl_cleanup. 1359850397Sobrien (store_parm_decls): Likewise. 1359918334Speter (hack_incomplete_structures): Likewise. 1360050397Sobrien * except.c (push_eh_cleanup): Likewise. 1360150397Sobrien 1360218334SpeterFri May 17 13:13:51 1996 Mike Stump <mrs@cygnus.com> 1360350397Sobrien 1360418334Speter * expr.c (expand_expr, cond UNSAVE_EXPR): Move from the C++ 1360550397Sobrien frontend to the backend where it belongs. 1360650397Sobrien * tree.c (unsave_expr): Likewise. 1360718334Speter (unsave_expr_now): Likewise. 1360850397Sobrien * tree.def (UNSAVE_EXPR): Likewise. 1360918334Speter * cp-tree.h (unsave_expr): Likewise. 1361050397Sobrien (unsave_expr_now): Likewise. 1361150397Sobrien 1361250397SobrienFri May 17 11:02:41 1996 Mike Stump <mrs@cygnus.com> 1361350397Sobrien 1361450397Sobrien * init.c (emit_base_init): Make sure the partial EH cleanups live 1361550397Sobrien on the function_obstack. 1361618334Speter 1361750397SobrienThu May 16 15:29:33 1996 Bob Manson <manson@charmed.cygnus.com> 1361818334Speter 1361950397Sobrien * expr.c (do_case): Don't try to dereference null TREE_TYPEs 1362050397Sobrien when checking for pointer types. 1362118334Speter 1362250397SobrienThu May 16 13:38:58 1996 Jason Merrill <jason@yorick.cygnus.com> 1362318334Speter 1362450397Sobrien * pt.c (instantiate_class_template): Remove obsolete check for 1362550397Sobrien access declarations. 1362650397Sobrien 1362750397SobrienThu May 16 13:34:15 1996 Mike Stump <mrs@cygnus.com> 1362818334Speter 1362950397Sobrien * call.c (build_overload_call): Simplify calls to 1363018334Speter build_overload_call by removing last parameter. 1363150397Sobrien (build_method_call): Likewise. 1363250397Sobrien * cp-tree.h: Likewise. 1363350397Sobrien * method.c (build_opfncall): Likewise. 1363418334Speter * typeck.c (build_x_function_call): Likewise. 1363550397Sobrien 1363618334SpeterThu May 16 13:15:43 1996 Mike Stump <mrs@cygnus.com> 1363750397Sobrien 1363818334Speter * call.c (default_parm_conversions): Factor out common code. 1363950397Sobrien (build_method_call): Use it. 1364050397Sobrien (build_overload_call_real): Use it. 1364150397Sobrien 1364250397SobrienWed May 15 14:46:14 1996 Mike Stump <mrs@cygnus.com> 1364350397Sobrien 1364450397Sobrien * call.c (build_method_call): Allow implicit & on METHOD_TYPEs, 1364518334Speter but pedwarn as the code is bogus. 1364650397Sobrien * typeck.c (decay_conversion): Likewise. 1364750397Sobrien (build_function_call_real): Use build_addr_func instead of 1364818334Speter default_conversion. Don't allow pointer-to-method functions down 1364950397Sobrien here. 1365050397Sobrien (build_unary_op): Use real pointer-to-member functions instead of 1365118334Speter fake ones. 1365250397Sobrien (build_ptrmemfunc): Use build_addr_func instead of build_unary_op. 1365318334Speter (convert_for_assignment): Removed some obsolete code. 1365450397Sobrien * decl2.c (reparse_absdcl_as_expr): Pass current_class_ref to 1365550397Sobrien build_x_function_call instead of current_class_ptr. Only call 1365650397Sobrien digest_init once on an initializer, we do this just checking 1365750397Sobrien TREE_TYPE. 1365818334Speter (build_expr_from_tree): Pass current_class_ref to 1365950397Sobrien build_x_function_call instead of current_class_ptr. 1366050397Sobrien * init.c (build_member_call): Likewise. 1366150397Sobrien * pase.y: Likewise. 1366250397Sobrien * error.c (dump_expr): Handle OFFSET_REFs better. 1366352284Sobrien * pt.c (unify): Handle pointer-to-member functions better. 1366452284Sobrien * decl.c (finish_function): Clear out current_class_ref just like 1366550397Sobrien we do for current_class_ptr. 1366618334Speter 1366750397Sobrien * typeck.c (get_delta_difference): Handle virtual bases better. 1366818334Speter 1366950397SobrienTue May 14 16:37:37 1996 Jason Merrill <jason@yorick.cygnus.com> 1367050397Sobrien 1367118334Speter * sig.c (build_signature_table_constructor): Use the delta for 1367250397Sobrien the original basetype for this virtual function with thunks. 1367350397Sobrien (build_signature_method_call): We still need to adjust 'this' 1367450397Sobrien with thunks. 1367550397Sobrien 1367650397SobrienTue May 14 16:27:25 1996 Mike Stump <mrs@cygnus.com> 1367750397Sobrien 1367850397Sobrien * call.c (build_addr_func): New routine. Used to get the `real' 1367950397Sobrien address of a function or a method. Needed to avoid getting a 1368050397Sobrien pointer-to-member function. 1368150397Sobrien (build_call): New routine to build CALL_EXPRs. 1368250397Sobrien (build_method_call): Use it. 1368352284Sobrien * cvt.c (convert_to_aggr): Likewise. 1368450397Sobrien * typeck.c (build_function_call_real): Likewise. 1368550397Sobrien * sig.c (build_signature_table_constructor): Use build_addr_func. 1368618334Speter * cp-tree.h (build_call, build_addr_func): Declare them. 1368750397Sobrien 1368818334SpeterTue May 14 12:47:47 1996 Mike Stump <mrs@cygnus.com> 1368950397Sobrien 1369018334Speter * cp-tree.h (LOOKUP_AGGR): Remove, unused. 1369150397Sobrien * parse.y: Remove uses of LOOKUP_AGGR. 1369218334Speter 1369350397SobrienTue May 14 12:07:51 1996 Mike Stump <mrs@cygnus.com> 1369450397Sobrien 1369518334Speter * *.[chy]: Rename current_class_decl to current_class_ptr, and 1369650397Sobrien C_C_D to current_class_ref. 1369750397Sobrien 1369850397SobrienMon May 13 16:55:23 1996 Jason Merrill <jason@yorick.cygnus.com> 1369950397Sobrien 1370018334Speter * call.c (convert_harshness): Tighten up pointer conversions. 1370150397Sobrien 1370250397SobrienSat May 11 04:33:50 1996 Doug Evans <dje@canuck.cygnus.com> 1370318334Speter 1370450397Sobrien * decl2.c (finish_vtable_vardecl): Surround DECL_ONE_ONLY with ifdef. 1370550397Sobrien (finish_file): Likewise. 1370650397Sobrien 1370718334SpeterFri May 10 11:09:57 1996 Jason Merrill <jason@yorick.cygnus.com> 1370850397Sobrien 1370950397Sobrien * cvt.c (convert_fn_ptr): We don't use thunks for pmfs. 1371018334Speter 1371150397Sobrien * method.c (emit_thunk): Set flag_omit_frame_pointer in default 1371218334Speter code. 1371350397Sobrien 1371450397SobrienThu May 9 18:18:30 1996 Jason Merrill <jason@yorick.cygnus.com> 1371518334Speter 1371650397Sobrien * decl2.c: Turn on thunks by default where supported. 1371718334Speter 1371850397SobrienTue May 7 20:39:57 1996 Mike Stump <mrs@cygnus.com> 1371950397Sobrien 1372018334Speter * cp-tree.h (build_overload_call_maybe): Removed. 1372150397Sobrien * call.c (build_overload_call_real): Invert meaning of last arg to 1372218334Speter be require_complete. 1372350397Sobrien (build_overload_call): Likewise. 1372450397Sobrien * typeck.c (build_x_function_call): Use build_overload_call_real 1372550397Sobrien instead of build_overload_call_maybe. 1372650397Sobrien 1372750397SobrienMon May 6 01:23:32 1996 Jason Merrill <jason@yorick.cygnus.com> 1372850397Sobrien 1372950397Sobrien * decl2.c (finish_file): Don't try to emit functions that haven't 1373050397Sobrien been compiled. 1373118334Speter 1373250397SobrienFri May 3 09:30:13 1996 Jason Merrill <jason@yorick.cygnus.com> 1373318334Speter 1373450397Sobrien * decl2.c (finish_vtable_vardecl): Oops. 1373550397Sobrien 1373650397Sobrien * decl.c (maybe_push_to_top_level): Do save previous_class_*. 1373750397Sobrien Also store the bindings from previous_class_values. 1373850397Sobrien (pop_from_top_level): Restore them. 1373950397Sobrien 1374050397SobrienThu May 2 21:56:49 1996 Jason Merrill <jason@yorick.cygnus.com> 1374118334Speter 1374250397Sobrien * decl2.c (finish_vtable_vardecl): Only write out vtable if its 1374318334Speter symbol has been referenced. 1374450397Sobrien (finish_file): Re-join synthesis/vtable loop with inline emission 1374550397Sobrien loop, disable inlining when an inline is output. 1374618334Speter 1374750397SobrienThu May 2 17:20:02 1996 Mike Stump <mrs@cygnus.com> 1374818334Speter 1374950397Sobrien * except.c (init_exception_processing): Setup saved_in_catch. 1375050397Sobrien (push_eh_cleanup): Reset __eh_in_catch. 1375118334Speter (expand_start_catch_block): Set __eh_in_catch. 1375250397Sobrien 1375318334SpeterThu May 2 16:21:17 1996 Mike Stump <mrs@cygnus.com> 1375450397Sobrien 1375550397Sobrien * except.c (push_eh_cleanup): Add tracking for whether or not we 1375618334Speter have an active exception object. 1375750397Sobrien (expand_builtin_throw): Use it to make sure a rethrow without an 1375818334Speter exception object is caught. 1375950397Sobrien 1376050397SobrienThu May 2 11:26:41 1996 Jason Merrill <jason@yorick.cygnus.com> 1376150397Sobrien 1376250397Sobrien * decl.c (maybe_push_to_top_level): Clear out class-level bindings 1376350397Sobrien cache. 1376450397Sobrien 1376518334SpeterWed May 1 11:26:52 1996 Jason Merrill <jason@yorick.cygnus.com> 1376650397Sobrien 1376718334Speter * decl2.c (finish_file): Also use sentries for vars with 1376850397Sobrien DECL_ONE_ONLY or DECL_WEAK set (should any such happen to be 1376950397Sobrien created). 1377050397Sobrien 1377118334Speter * lex.c (handle_cp_pragma): Disable #pragma 1377250397Sobrien interface/implementation if SUPPORTS_ONE_ONLY > 1. 1377318334Speter 1377450397SobrienTue Apr 30 11:25:46 1996 Jason Merrill <jason@yorick.cygnus.com> 1377550397Sobrien 1377650397Sobrien * method.c (emit_thunk): Wrap default case in 1377750397Sobrien temporary/permanent_allocation. 1377850397Sobrien 1377950397Sobrien * method.c (make_thunk): Use DECL_ONE_ONLY. 1378050397Sobrien (emit_thunk): Call assemble_end_function. 1378150397Sobrien 1378250397SobrienMon Apr 29 15:38:29 1996 Jason Merrill <jason@yorick.cygnus.com> 1378350397Sobrien 1378450397Sobrien * decl2.c (import_export_vtable): Use DECL_ONE_ONLY. 1378550397Sobrien (import_export_decl): Likewise. 1378650397Sobrien (finish_prevtable_vardecl): Disable vtable hack if 1378750397Sobrien SUPPORTS_ONE_ONLY > 1. 1378850397Sobrien 1378950397SobrienMon Apr 29 14:32:47 1996 Mike Stump <mrs@cygnus.com> 1379050397Sobrien 1379150397Sobrien * typeck.c (build_modify_expr): PREINCREMENT_EXPR and 1379250397Sobrien PREDECREMENT_EXPRs take two arguments, not one. 1379350397Sobrien 1379450397SobrienMon Apr 29 00:27:53 1996 Jason Merrill <jason@yorick.cygnus.com> 1379550397Sobrien 1379618334Speter * class.c (build_vtable_entry): Don't build thunks for abstract 1379750397Sobrien virtuals. 1379818334Speter 1379950397Sobrien * lex.c (real_yylex): Fix handling of __PRETTY_FUNCTION__ like C 1380018334Speter frontend. 1380150397Sobrien 1380250397SobrienSat Apr 27 16:45:35 1996 Jason Merrill <jason@yorick.cygnus.com> 1380350397Sobrien 1380450397Sobrien * class.c (set_rtti_entry): Use size_zero_node. 1380518334Speter (build_vtable): Likewise. 1380650397Sobrien 1380718334SpeterSat Apr 27 14:48:57 1996 Jason Merrill <jason@phydeaux.cygnus.com> 1380850397Sobrien 1380950397Sobrien * class.c (finish_struct_1): Pass size_zero_node to set_rtti_entry. 1381050397Sobrien (prepare_fresh_vtable): Likewise. 1381150397Sobrien 1381250397SobrienFri Apr 26 13:14:14 1996 Jason Merrill <jason@yorick.cygnus.com> 1381350397Sobrien 1381450397Sobrien * method.c (emit_thunk): Call mark_used on the target function. 1381550397Sobrien 1381650397Sobrien * call.c (build_method_call): Don't warn about pending templates. 1381718334Speter 1381850397SobrienThu Apr 25 14:55:44 1996 Jason Merrill <jason@yorick.cygnus.com> 1381918334Speter 1382050397Sobrien * decl2.c (finish_file): Fix list walking logic. 1382150397Sobrien 1382218334Speter * typeck2.c (check_for_new_type): Only warn if -pedantic. 1382350397Sobrien 1382418334SpeterWed Apr 24 15:41:15 1996 Bob Manson <manson@charmed.cygnus.com> 1382550397Sobrien 1382650397Sobrien * class.c (finish_struct_1): Remove old code for 1382718334Speter dont_allow_type_definitions. 1382850397Sobrien * cp-tree.h: Likewise. 1382918334Speter * spew.c: Make sure cp-tree.h is included before parse.h, so the 1383050397Sobrien definition of flagged_type_tree is found before it is used. 1383118334Speter * lex.c: Likewise. 1383250397Sobrien * parse.y: Added the ftype member to the type union, and changed a 1383318334Speter number of rules to use it instead of ttype. Added calls to 1383450397Sobrien check_for_new_type() as appropriate. 1383550397Sobrien * typeck2.c (check_for_new_type): New function for checking 1383618334Speter if a newly defined type appears in the specified tree. 1383750397Sobrien * cp-tree.h: Add new type flagged_type_tree. Add a prototype 1383818334Speter for check_for_new_type(). 1383950397Sobrien 1384018334SpeterWed Apr 24 00:36:21 1996 Jason Merrill <jason@yorick.cygnus.com> 1384150397Sobrien 1384250397Sobrien * decl2.c (finish_file): Only use a sentry if the decl is public. 1384318334Speter 1384450397Sobrien * pt.c (tsubst_expr, DECL_STMT): If we don't have an initializer, 1384518334Speter don't pass LOOKUP_ONLYCONVERTING. 1384650397Sobrien 1384718334SpeterTue Apr 23 17:18:47 1996 Bob Manson <manson@charmed.cygnus.com> 1384850397Sobrien 1384918334Speter * typeck.c (common_type): Fix the ARRAY_TYPE case so it 1385050397Sobrien properly keeps track of const and volatile type modifiers. 1385150397Sobrien 1385250397SobrienTue Apr 23 10:52:56 1996 Jason Merrill <jason@yorick.cygnus.com> 1385350397Sobrien 1385450397Sobrien * tree.c (cp_tree_equal): C++ version of simple_cst_equal. 1385550397Sobrien * pt.c (comp_template_args): Use it. 1385618334Speter 1385750397Sobrien * rtti.c (get_tinfo_fn, build_dynamic_cast, expand_*_desc): Call 1385818334Speter assemble_external for artificial function decls. 1385950397Sobrien 1386050397Sobrien * decl.c (cp_finish_decl): Oops. 1386118334Speter 1386250397SobrienMon Apr 22 17:28:27 1996 Jason Merrill <jason@yorick.cygnus.com> 1386318334Speter 1386450397Sobrien * decl2.c (import_export_decl): Put static data member templates 1386518334Speter into common storage, or make them weak, depending on whether they 1386650397Sobrien are dynamically or statically initialized. 1386750397Sobrien (get_sentry): New function. 1386850397Sobrien (finish_file): Do import_export_decl for static data members before 1386918334Speter building the init/fini functions. Don't init/fini a variable that's 1387050397Sobrien EXTERNAL. Use a sentry for variables in common. Fix mismatching 1387118334Speter push/pop_temp_slots. 1387250397Sobrien * decl.c (cp_finish_decl): If DECL_NOT_REALLY_EXTERN, do the 1387350397Sobrien expand_static_init thang. 1387450397Sobrien * method.c (get_id_2): New function. 1387550397Sobrien 1387618334SpeterMon Apr 22 15:32:45 1996 Bob Manson <manson@charmed.cygnus.com> 1387750397Sobrien 1387818334Speter * parse.y (empty_parms): Make sure we use C++-style prototypes 1387950397Sobrien when we're declaring member functions. 1388050397Sobrien 1388150397SobrienSun Apr 21 10:08:22 1996 Jason Merrill <jason@yorick.cygnus.com> 1388218334Speter 1388350397Sobrien * Makefile.in (CONFLICTS): 16 s/r conflicts. 1388418334Speter * parse.y (self_template_type): New nonterminal. 1388550397Sobrien 1388650397SobrienThu Apr 18 08:56:54 1996 Jason Merrill <jason@yorick.cygnus.com> 1388750397Sobrien 1388850397Sobrien * decl.c (make_typename_type): Handle getting a TYPE_DECL for a 1388918334Speter name. 1389050397Sobrien * parse.y (base_class.1): Allow 'typename foo::bar'. 1389118334Speter 1389250397Sobrien * lex.c (check_newline): Remove #pragma code that plays with the 1389350397Sobrien input stream, since we now deal with tokens. Clear nextchar when 1389418334Speter we're done. 1389550397Sobrien (handle_cp_pragma): Use real_yylex. 1389618334Speter (handle_sysv_pragma): Don't do skipline here. Only call real_yylex 1389750397Sobrien in one place. 1389850397Sobrien 1389950397Sobrien * lex.c (check_for_missing_semicolon): Handle SELFNAME. 1390018334Speter 1390150397Sobrien * lex.c (handle_cp_pragma): Fix "#pragma implementation". 1390250397Sobrien 1390318334SpeterWed Apr 17 16:51:33 1996 Jason Merrill <jason@yorick.cygnus.com> 1390450397Sobrien 1390518334Speter * parse.y: New token SELFNAME for potential constructor. 1390650397Sobrien * spew.c (yylex): Handle it. 1390750397Sobrien * lex.c (identifier_type): Produce it. 1390818334Speter 1390950397Sobrien * parse.y (complete_type_name): In :: case, don't push class binding. 1391050397Sobrien (complex_type_name): Likewise. 1391118334Speter 1391250397SobrienWed Apr 17 15:02:40 1996 Mike Stump <mrs@cygnus.com> 1391318334Speter 1391450397Sobrien * typeck.c (build_reinterpret_cast): Handle pointer to member 1391550397Sobrien functions. 1391650397Sobrien 1391750397SobrienWed Apr 17 12:28:26 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1391818334Speter 1391950397Sobrien * lex.c (handle_cp_pragma): New function, with decl, doing the cc1plus 1392018334Speter pragmas. 1392150397Sobrien (check_newline): Put the vtable/unit/implementation/interface pragma 1392250397Sobrien code into handle_cp_pragma, replacing it with a call. 1392318334Speter (handle_sysv_pragma): Give int return type, and take FINPUT and TOKEN 1392450397Sobrien args. Get the next token after handling the pragma token. 1392518334Speter 1392650397SobrienWed Apr 17 10:28:34 1996 Jason Merrill <jason@yorick.cygnus.com> 1392750397Sobrien 1392818334Speter * cvt.c (cp_convert_to_pointer): Avoid doing base analysis on pmfs. 1392950397Sobrien (convert_to_pointer_force): Likewise. 1393050397Sobrien 1393118334Speter * init.c (build_new): Fix array new without -fcheck-new. 1393250397Sobrien 1393318334SpeterTue Apr 16 13:44:58 1996 Jason Merrill <jason@yorick.cygnus.com> 1393450397Sobrien 1393550397Sobrien * cp-tree.h, call.c, class.c, decl.c, parse.y, pt.c, rtti.c, 1393618334Speter tree.c: Lose TYPE_NESTED_NAME. 1393750397Sobrien 1393818334Speter * parse.y (nested_name_specifier_1): Don't treat non-identifiers 1393950397Sobrien as identifiers. 1394050397Sobrien 1394118334Speter * tree.def: Add VEC_INIT_EXPR. 1394250397Sobrien * expr.c (cplus_expand_expr): Handle it. 1394318334Speter * init.c (build_new): Use it instead of the RTL_EXPR nastiness and 1394450397Sobrien the extra file-scope symbol nastiness. 1394518334Speter 1394650397SobrienMon Apr 15 16:21:29 1996 Jason Merrill <jason@yorick.cygnus.com> 1394718334Speter 1394850397Sobrien * method.c (make_thunk): Thunks are static. 1394918334Speter (emit_thunk): Use ASM_OUTPUT_MI_THUNK if it's defined. 1395050397Sobrien 1395118334Speter * decl2.c (mark_vtable_entries): Emit thunks as needed. 1395250397Sobrien (finish_file): Don't emit them here. 1395318334Speter 1395450397SobrienSun Apr 14 11:34:39 1996 Jason Merrill <jason@yorick.cygnus.com> 1395518334Speter 1395650397Sobrien * rtti.c (build_dynamic_cast): Handle null pointers. 1395750397Sobrien (ifnonnull): New function. 1395850397Sobrien 1395950397SobrienFri Apr 12 09:08:27 1996 Bob Manson <manson@charmed.cygnus.com> 1396050397Sobrien 1396150397Sobrien * call.c (build_method_call): Remember the original basetype we 1396250397Sobrien were called with. Give an error message instead of trying 1396352284Sobrien (incorrectly) to call a non-static member function through a 1396450397Sobrien non-inherited class. 1396550397Sobrien 1396650397Sobrien * search.c (expand_upcast_fixups): Mark the new fixup as 1396752284Sobrien DECL_ARTIFICIAL. 1396850397Sobrien 1396918334SpeterThu Apr 11 03:57:09 1996 Jason Merrill <jason@yorick.cygnus.com> 1397050397Sobrien 1397118334Speter * init.c (build_new): Use a TARGET_EXPR for alloc_expr. 1397250397Sobrien 1397318334Speter * class.c (set_rtti_entry): Fix for thunks. 1397450397Sobrien 1397550397Sobrien * decl2.c (import_export_decl): Still emit typeinfo fns for 1397618334Speter cv-variants of builtin types. 1397750397Sobrien 1397818334Speter * rtti.c (expand_class_desc): Set up base_info_type_node here. 1397950397Sobrien (init_rtti_processing): Instead of here. 1398050397Sobrien 1398118334SpeterWed Apr 10 14:17:13 1996 Jason Merrill <jason@yorick.cygnus.com> 1398250397Sobrien 1398318334Speter * rtti.c (init_rtti_processing): Do init regardless of -frtti. 1398450397Sobrien (build_typeid): Only complain about taking dynamic typeid without 1398550397Sobrien -frtti. 1398618334Speter 1398750397Sobrien * decl2.c: flag_rtti defaults to 1. 1398850397Sobrien 1398918334Speter * rtti.c (get_tinfo_var): The general class case is now smaller. 1399050397Sobrien (init_rtti_processing): Pack the latter three fields of base_info 1399118334Speter into 32 bits. 1399250397Sobrien 1399318334SpeterWed Apr 10 13:50:14 1996 Mike Stump <mrs@cygnus.com> 1399450397Sobrien 1399550397Sobrien * init.c (expand_member_init): Don't dump if name is NULL_TREE. 1399650397Sobrien 1399750397SobrienWed Apr 10 12:56:02 1996 Mike Stump <mrs@cygnus.com> 1399850397Sobrien 1399950397Sobrien * search.c (make_memoized_table_entry): Undefer the pop, if necessary. 1400050397Sobrien (push_memoized_context): Split out code to undefer pop_type_level to 1400150397Sobrien (clear_memoized_cache): here. 1400250397Sobrien (pop_memoized_context): We can only handle one layer of deferral of 1400350397Sobrien pop_type_level so clear the cache, if there was a previous level. 1400450397Sobrien 1400518334SpeterTue Apr 9 23:06:09 1996 Jason Merrill <jason@yorick.cygnus.com> 1400650397Sobrien 1400718334Speter * rtti.c (init_rtti_processing): Build up base_info_type_node. 1400850397Sobrien (expand_class_desc): Use one pointer to an array of base_info 1400950397Sobrien structs, passed using a CONSTRUCTOR. 1401018334Speter 1401150397SobrienTue Apr 9 14:20:57 1996 Mike Stump <mrs@cygnus.com> 1401218334Speter 1401350397Sobrien * class.c (build_vbase_path): Remove block extern for 1401450397Sobrien flag_assume_nonnull_objects here. 1401518334Speter (build_vfn_ref): Split out functionality into build_vtbl_ref. 1401650397Sobrien (build_vtbl_ref): New routine. 1401718334Speter (build_vtable): Set up rtti info here. 1401850397Sobrien (add_virtual_function): Note in CLASSTYPE_RTTI the best 1401950397Sobrien place where we can get the rtti pointers from to avoid having to 1402050397Sobrien search around for a place. 1402118334Speter (finish_base_struct): Likewise. 1402250397Sobrien (finish_struct_1): Likewise. Never create totally new vtables 1402350397Sobrien with totally new vtable pointers for rtti. Disable code to layout 1402450397Sobrien vtable pointers better until we want to break binary 1402550397Sobrien compatibility. 1402650397Sobrien * rtti.c (build_headof_sub): New routine to convert down to a 1402750397Sobrien sub-object that has an rtti pointer in the vtable. 1402818334Speter (build_headof): Use it. Also, use build_vtbl_ref now to be more 1402950397Sobrien maintainable. 1403018334Speter (build_dynamic_cast): Make sure we have saved it, if we need to. 1403150397Sobrien * search.c (dfs_init_vbase_pointers): Disable code that deals with 1403218334Speter a more efficient vtable layout, enable later. 1403350397Sobrien * call.c (flag_assume_nonnull_objects): Moved declaration to 1403418334Speter * cp-tree.h: here. Declare build_vtbl_ref. 1403550397Sobrien * pt.c (instantiate_class_template): Use NULL_TREE instead of 0 in 1403650397Sobrien function calls that want a tree. 1403750397Sobrien 1403818334SpeterTue Apr 9 12:10:26 1996 Jason Merrill <jason@yorick.cygnus.com> 1403950397Sobrien 1404050397Sobrien * rtti.c (build_dynamic_cast): Handle downcasting to X* given 1404118334Speter other X subobjects in the most derived type. Ack. 1404250397Sobrien 1404318334Speter * rtti.c (build_dynamic_cast): No need to strip cv-quals here, 1404450397Sobrien get_typeid will do it for us. 1404550397Sobrien (get_typeid_1): Break out call-building for expand_*_desc to use. 1404618334Speter (get_typeid): Call it. 1404750397Sobrien (expand_*_desc): Likewise. 1404818334Speter * decl.c (init_decl_processing): Don't set TYPE_BUILT_IN on char * 1404950397Sobrien and void *. 1405050397Sobrien (init_decl_processing): Lose builtin_type_tdescs lossage. 1405150397Sobrien * decl2.c (finish_vtable_vardecl): Remove obsolete code. 1405250397Sobrien 1405350397SobrienMon Apr 8 17:23:23 1996 Bob Manson <manson@charmed.cygnus.com> 1405450397Sobrien 1405518334Speter * pt.c (tsubst): When calling set_nested_typename, use 1405650397Sobrien TYPE_NESTED_NAME (current_class_type) instead of 1405718334Speter current_class_name. 1405850397Sobrien 1405950397Sobrien * decl.c (pushdecl): Likewise. 1406018334Speter (pushdecl_class_level): Likewise. 1406150397Sobrien (grokdeclarator): Use NULL_TREE instead of 0 in the call to 1406218334Speter set_nested_typename. 1406350397Sobrien 1406418334SpeterSun Apr 7 10:44:31 1996 Jason Merrill <jason@yorick.cygnus.com> 1406550397Sobrien 1406650397Sobrien * rtti.c (synthesize_tinfo_fn): Handle arrays. 1406718334Speter 1406850397Sobrien * cp-tree.h (DECL_REALLY_EXTERN): New macro. 1406950397Sobrien 1407018334SpeterSat Apr 6 13:56:27 1996 Jason Merrill <jason@yorick.cygnus.com> 1407150397Sobrien 1407250397Sobrien * rtti.c (throw_bad_cast): Use entry point __throw_bad_cast. 1407350397Sobrien (init_rtti_processing): Lose bad_cast_type. 1407450397Sobrien (build_dynamic_cast): Use throw_bad_cast. 1407518334Speter 1407650397Sobrien * rtti.c (synthesize_tinfo_fn): Handle enums and pmfs. 1407718334Speter 1407850397Sobrien * decl2.c (finish_file): Don't synthesize artificial functions 1407950397Sobrien that are external and not inline. 1408018334Speter 1408150397Sobrien * rtti.c (get_tinfo_fn): If at_eof, call import_export_decl. 1408250397Sobrien 1408318334Speter * decl2.c (finish_file): Handle having new inlines added to 1408450397Sobrien saved_inlines by synthesis. 1408518334Speter 1408650397Sobrien * rtti.c (get_bad_cast_node): Don't require <typeinfo>. 1408750397Sobrien 1408818334SpeterFri Apr 5 17:02:09 1996 Jason Merrill <jason@yorick.cygnus.com> 1408950397Sobrien 1409018334Speter RTTI rewrite to initialize nodes as needed, not require that 1409150397Sobrien users #include <typeinfo>, complete functionality and reduce wasted 1409252284Sobrien space. 1409350397Sobrien * rtti.c (init_rtti_processing): New fn. 1409450397Sobrien (build_typeid): The vtable entry is now a function. 1409518334Speter (get_tinfo_var): New fn. 1409650397Sobrien (get_tinfo_fn): Likewise. 1409750397Sobrien (get_typeid): Use it. 1409818334Speter (build_dynamic_cast): Declare and use entry point __dynamic_cast. 1409950397Sobrien (build_*_desc): Rename to expand_*_desc and rewrite to use entry 1410018334Speter points __rtti_*. 1410150397Sobrien (add_uninstantiated_desc, get_def_to_follow, build_t_desc): Lose. 1410218334Speter (synthesize_tinfo_fn): New fn. 1410350397Sobrien * method.c (build_t_desc_overload): Lose. 1410418334Speter (build_overload_with_type): More generic. 1410550397Sobrien * decl.c (init_decl_processing): Call init_rtti_processing. 1410650397Sobrien * class.c (set_rtti_entry): Use get_tinfo_fn. 1410718334Speter * decl2.c (mark_vtable_entries): Mark the rtti function. 1410850397Sobrien (finish_prevtable_vardecl): Don't build_t_desc. 1410950397Sobrien (import_export_decl): Handle tinfo functions. 1411018334Speter (finish_file): Likewise. 1411150397Sobrien * typeck.c (inline_conversion): New fn. 1411218334Speter (build_function_call_real): Use it. 1411350397Sobrien * cp-tree.h: Add decls. 1411450397Sobrien 1411550397Sobrien * method.c (hack_identifier): Also convert component_refs from 1411618334Speter references. 1411750397Sobrien 1411818334Speter * lex.c (cons_up_default_function): Use the type, not the name, in 1411950397Sobrien declspecs. 1412050397Sobrien 1412150397Sobrien * decl2.c (import_export_vtable): Fix weak vtables. 1412218334Speter 1412350397SobrienFri Apr 5 13:30:17 1996 Bob Manson <manson@charmed.cygnus.com> 1412418334Speter 1412550397Sobrien * search.c (get_base_distance_recursive): Fix access checks for 1412618334Speter protected bases. 1412750397Sobrien 1412818334SpeterFri Apr 5 11:02:06 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1412950397Sobrien 1413050397Sobrien * call.c (unary_complex_lvalue): Delete unneeded decl, it's in 1413150397Sobrien cp-tree.h. 1413250397Sobrien (convert_harshness): Add prototypes wrapped by PROTO. 1413350397Sobrien * decl2.c (grok_function_init): Likewise. 1413418334Speter (do_toplevel_using_decl): Change to void return type. 1413550397Sobrien * class.c (build_vtable_entry): Remove decl of make_thunk. 1413618334Speter (merge_overrides): Fix order of arg definitions. 1413750397Sobrien (finish_vtbls): Likewise. 1413850397Sobrien (fixup_vtable_deltas): Likewise. 1413950397Sobrien (modify_all_direct_vtables): Likewise. 1414018334Speter (modify_all_indirect_vtables): Likewise. 1414150397Sobrien * search.c (get_base_distance_recursive): Likewise. 1414218334Speter (get_abstract_virtuals_1): Likewise. 1414350397Sobrien (fixup_virtual_upcast_offsets): Likewise. 1414450397Sobrien (lookup_fnfields_1): Add prototypes wrapped by PROTO. 1414550397Sobrien * init.c (perform_member_init): Fix order of arg definitions. 1414650397Sobrien (expand_aggr_init_1): Add prototypes wrapped by PROTO. 1414750397Sobrien * cp-tree.h (make_thunk): Add decl. 1414850397Sobrien (overload_template_name, push_template_decl): Add decls. 1414950397Sobrien (do_toplevel_using_decl): Change to void return type. 1415050397Sobrien (vec_binfo_member): Add decl. 1415150397Sobrien 1415250397SobrienThu Apr 4 13:33:10 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1415350397Sobrien 1415450397Sobrien * typeck.c (mark_addressable, convert_for_assignment, 1415550397Sobrien convert_for_initialization, pointer_int_sum, pointer_diff, 1415650397Sobrien unary_complex_lvalue): Add prototypes wrapped by PROTO. 1415750397Sobrien (convert_sequence): #if 0 fn decl, since definition also is. 1415850397Sobrien 1415950397SobrienThu Apr 4 11:00:53 1996 Mike Stump <mrs@cygnus.com> 1416050397Sobrien 1416150397Sobrien * rtti.c (build_dynamic_cast): Make sure we strip qualifiers on 1416250397Sobrien cast to pointer types for type searching. 1416350397Sobrien 1416450397SobrienWed Apr 3 17:10:57 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1416550397Sobrien 1416650397Sobrien * typeck.c (get_delta_difference): Use cp_error, not error, in the 1416718334Speter case where BINFO == 0. 1416850397Sobrien 1416918334SpeterWed Apr 3 12:01:02 1996 Mike Stump <mrs@cygnus.com> 1417050397Sobrien 1417150397Sobrien * call.c (build_method_call): Fix wording of error messages so 1417218334Speter constructors come out right. 1417350397Sobrien 1417450397SobrienTue Apr 2 16:06:59 1996 Bob Manson <manson@charmed.cygnus.com> 1417550397Sobrien 1417650397Sobrien * decl.c (push_overloaded_decl): Don't warn about hidden 1417750397Sobrien constructors when both the type and the function are declared 1417850397Sobrien in a system header file. 1417950397Sobrien 1418050397SobrienMon Apr 1 09:03:13 1996 Bob Manson <manson@charmed.cygnus.com> 1418150397Sobrien 1418218334Speter * class.c (finish_struct_1): Propagate the TYPE_PACKED 1418350397Sobrien flag for the type to the type's fields. 1418418334Speter 1418550397SobrienSat Mar 30 12:14:33 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1418650397Sobrien 1418750397Sobrien * parse.y (complex_parmlist, ELLIPSES): Take out ARM-based warning. 1418818334Speter 1418950397SobrienFri Mar 29 15:51:36 1996 Bob Manson <manson@charmed.cygnus.com> 1419050397Sobrien 1419150397Sobrien * class.c (base_info, finish_base_struct): Replace 1419250397Sobrien needs_virtual_dtor with base_has_virtual. 1419318334Speter 1419450397Sobrien (finish_struct_1): Remove the old code that tried to make default 1419518334Speter destructors virtual. Use base_has_virtual when checking if we need 1419650397Sobrien to add a vtable entry for the rtti code. 1419718334Speter 1419850397SobrienFri Mar 29 14:02:36 1996 Jason Merrill <jason@yorick.cygnus.com> 1419918334Speter 1420050397Sobrien * pt.c (push_template_decl): Complain about template decl with 1420118334Speter inappropriate declaration. 1420250397Sobrien 1420350397SobrienFri Mar 29 12:15:35 1996 Bob Manson <manson@charmed.cygnus.com> 1420450397Sobrien 1420518334Speter * typeck.c (build_x_unary_op): Remove bogus check for taking 1420650397Sobrien the address of a member function. 1420718334Speter 1420850397SobrienFri Mar 29 11:56:02 1996 Jason Merrill <jason@yorick.cygnus.com> 1420950397Sobrien 1421018334Speter * parse.y (constructor_declarator): Only push the class if 1421150397Sobrien we are not already in the class. 1421218334Speter 1421350397SobrienFri Mar 29 09:41:02 1996 Jeffrey A. Law <law@cygnus.com> 1421450397Sobrien 1421518334Speter * method.c (emit_thunk): Remove current_call_is_indirect nonsense. 1421650397Sobrien Add additional argument to INIT_CUMULATIVE_ARGS. 1421718334Speter 1421850397SobrienThu Mar 28 16:41:39 1996 Jason Merrill <jason@yorick.cygnus.com> 1421918334Speter 1422050397Sobrien * decl.c (shadow_tag): Fix error about anon union with methods. 1422152284Sobrien 1422250397Sobrien * parse.y (self_reference): Only generate a self-reference if this 1422350397Sobrien is a non-template class. 1422450397Sobrien (opt.component_decl_list): Only use it if it was generated. 1422550397Sobrien 1422650397Sobrien * parse.y (component_decl_1): Use constructor_declarator. 1422750397Sobrien (fn.def2): Likewise. 1422850397Sobrien (notype_component_declarator0): Likewise. 1422950397Sobrien 1423050397SobrienThu Mar 28 15:11:35 1996 Bob Manson <manson@charmed.cygnus.com> 1423150397Sobrien 1423250397Sobrien * typeck.c (build_x_unary_op): Add checks for taking the address 1423350397Sobrien of a TARGET_EXPR or of a member function, and give appropriate 1423450397Sobrien warnings. 1423550397Sobrien 1423650397SobrienThu Mar 28 14:49:26 1996 Jason Merrill <jason@yorick.cygnus.com> 1423750397Sobrien 1423850397Sobrien * pt.c (process_template_parm): Allow template type parms to be 1423950397Sobrien used as types for template const parms. 1424050397Sobrien 1424150397SobrienWed Mar 27 15:51:19 1996 Mike Stump <mrs@cygnus.com> 1424250397Sobrien 1424350397Sobrien * init.c (expand_vec_init): Ensure the eh cleanups are on the 1424418334Speter function_obstack. 1424550397Sobrien 1424650397SobrienWed Mar 27 10:14:30 1996 Jason Merrill <jason@yorick.cygnus.com> 1424718334Speter 1424850397Sobrien * decl.c (lookup_name_real): Be even more picky about the 1424950397Sobrien ambiguous lookup warning. 1425018334Speter (grokdeclarator): Tweak SCOPE_REF constructor declarators here. 1425150397Sobrien * parse.y (constructor_declarator): Rather than here. 1425218334Speter 1425350397Sobrien * parse.y (constructor_declarator): New nonterminal. 1425418334Speter (fn.def1): Use it. 1425550397Sobrien (explicit_instantiation): Likewise. 1425650397Sobrien 1425718334SpeterTue Mar 26 13:41:33 1996 Jason Merrill <jason@yorick.cygnus.com> 1425850397Sobrien 1425918334Speter Add implicit declaration of class name at class scope. 1426050397Sobrien * decl.c (lookup_name_real): Restrict pedwarn about ambiguous lookup. 1426150397Sobrien * parse.y (self_reference): New nonterminal. 1426250397Sobrien (opt.component_decl_list): Use it. 1426350397Sobrien (fn.def1): Add nested_name_specifier type_name cases. 1426450397Sobrien * class.c (build_self_reference): New function. 1426550397Sobrien (finish_struct): Handle access_default later, move self-reference 1426650397Sobrien decl to the end. 1426750397Sobrien * pt.c (lookup_template_class): Handle getting a TYPE_DECL. 1426850397Sobrien * cp-tree.h: Adjust. 1426950397Sobrien 1427050397Sobrien * pt.c (do_function_instantiation): Separate handling of member 1427150397Sobrien functions and non-member functions properly. 1427250397Sobrien 1427350397SobrienMon Mar 25 14:23:22 1996 Jason Merrill <jason@yorick.cygnus.com> 1427450397Sobrien 1427550397Sobrien * pt.c (process_template_parm): Improve error for 'volatile class K'. 1427650397Sobrien 1427750397Sobrien * class.c (finish_struct_1): Check the right slot for destructors. 1427850397Sobrien 1427950397Sobrien * decl.c (start_enum): Complain about enum templates. 1428050397Sobrien 1428118334SpeterMon Mar 25 13:25:31 1996 Mike Stump <mrs@cygnus.com> 1428250397Sobrien 1428318334Speter * init.c (resolve_offset_ref): Offset pointers to member data by one. 1428450397Sobrien * typeck.c (unary_complex_lvalue): Likewise. 1428550397Sobrien 1428650397SobrienMon Mar 25 13:30:42 1996 Bob Manson <manson@charmed.cygnus.com> 1428750397Sobrien 1428818334Speter * typeck.c (c_expand_return): Check for a returned local 1428950397Sobrien array name, similar to the check for an ADDR_EXPR. 1429018334Speter 1429150397SobrienMon Mar 25 13:07:19 1996 Jason Merrill <jason@yorick.cygnus.com> 1429250397Sobrien 1429318334Speter * decl.c (cp_finish_decl): Don't build cleanups for static 1429450397Sobrien variables here. 1429518334Speter 1429650397SobrienFri Mar 22 17:57:55 1996 Mike Stump <mrs@cygnus.com> 1429750397Sobrien 1429818334Speter * typeck.c (build_modify_expr): Fix error messages to be more 1429950397Sobrien accurate. 1430018334Speter * cp-tree.h (assop_as_string): Parallel to op_as_string, but for 1430150397Sobrien assignment operators. 1430250397Sobrien * error.c (assop_as_string): Likewise. Add support for `%Q' for 1430318334Speter assignment operators. 1430450397Sobrien 1430518334SpeterFri Mar 22 13:48:29 1996 Jason Merrill <jason@yorick.cygnus.com> 1430650397Sobrien 1430750397Sobrien * decl.c (grokdeclarator): Call bad_specifiers for typedefs. Also 1430850397Sobrien give an error if initialized. pedwarn about nested type with the 1430918334Speter same name as its enclosing class. 1431050397Sobrien 1431118334Speter * pt.c (tsubst, case TYPE_DECL): Set DECL_CONTEXT. 1431250397Sobrien 1431350397Sobrien * typeck.c (require_complete_type): Be sure to instantiate the 1431418334Speter MAIN_VARIANT of the type. 1431550397Sobrien 1431618334Speter * decl2.c (finish_file): Instantiate pending templates before 1431750397Sobrien processing static constructors and destructors. 1431818334Speter 1431950397Sobrien * pt.c (instantiate_decl): Don't instantiate functions at toplevel 1432018334Speter unless at_eof. 1432152284Sobrien 1432250397SobrienFri Mar 22 09:30:17 1996 Bob Manson <manson@beauty.cygnus.com> 1432318334Speter 1432450397Sobrien * decl2.c (delete_sanity): If error_mark_node is passed 1432552284Sobrien in as an expression, quit while we're ahead. 1432650397Sobrien 1432718334Speter * decl.c (grokdeclarator): Give an error message if `friend' 1432850397Sobrien is combined with any storage class specifiers. 1432918334Speter 1433050397SobrienWed Mar 20 14:51:55 1996 Jason Merrill <jason@yorick.cygnus.com> 1433150397Sobrien 1433218334Speter * parse.y (named_complex_class_head_sans_basetype): Don't crash on 1433350397Sobrien definition of nonexistent nested type. 1433418334Speter 1433550397Sobrien * error.c (dump_decl, case TYPE_DECL): Fix decision for whether or 1433650397Sobrien not to say 'typedef'. 1433718334Speter 1433850397SobrienWed Mar 20 00:11:47 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1433918334Speter 1434050397Sobrien * cp-tree.h (struct lang_type): Make search_slot a tree, not a char*. 1434150397Sobrien * search.c (dfs_walk, dfs_init_vbase_pointers, 1434218334Speter expand_upcast_fixups): Remove cast of CLASSTYPE_SEARCH_SLOT. 1434350397Sobrien (dfs_find_vbases): Remove cast for CLASSTYPE_SEARCH_SLOT init. 1434418334Speter 1434550397SobrienTue Mar 19 17:56:03 1996 Jason Merrill <jason@yorick.cygnus.com> 1434650397Sobrien 1434718334Speter * except.c (build_throw): Support minimal parse. 1434850397Sobrien * pt.c (tsubst_copy): Support THROW_EXPR. 1434918334Speter * decl2.c (build_expr_from_tree): Likewise. 1435050397Sobrien 1435118334Speter * pt.c (mangle_class_name_for_template): Always allocate 1435250397Sobrien scratch_firstobj. 1435350397Sobrien 1435450397SobrienTue Mar 19 16:34:31 1996 Bob Manson <manson@beauty.cygnus.com> 1435518334Speter 1435650397Sobrien * cvt.c (cp_convert_to_pointer): Give an appropriate error 1435750397Sobrien when trying to cast from an incomplete type. 1435850397Sobrien 1435918334SpeterTue Mar 19 16:00:33 1996 Jason Merrill <jason@yorick.cygnus.com> 1436050397Sobrien 1436118334Speter * pt.c (instantiate_class_template): Don't bother setting up 1436250397Sobrien CLASSTYPE_TAGS explicitly, as the nested types will add 1436350397Sobrien themselves. 1436450397Sobrien 1436518334SpeterTue Mar 19 15:48:43 1996 Bob Manson <manson@beauty.cygnus.com> 1436650397Sobrien 1436718334Speter * decl.c (shadow_tag): Remove old error check for usage of 1436850397Sobrien an enum without a previous declaration. 1436950397Sobrien (xref_tag): Add error message about usage of enums without a 1437018334Speter previous declaration. 1437150397Sobrien 1437218334SpeterTue Mar 19 09:21:35 1996 Jason Merrill <jason@yorick.cygnus.com> 1437350397Sobrien 1437450397Sobrien * lex.c (do_identifier): Only do name consistency check if we're 1437518334Speter parsing. 1437650397Sobrien 1437718334Speter * pt.c (push_template_decl): Don't crash if we get a member defn 1437850397Sobrien that doesn't match. 1437950397Sobrien 1438050397Sobrien * decl.c (xref_tag_from_type): New function to do an xref without 1438150397Sobrien always having to figure out code_type_node. 1438218334Speter * cp-tree.h: Declare it. 1438350397Sobrien * pt.c (instantiate_class_template): Use it for friend classes. 1438450397Sobrien (lookup_template_class): Use it. 1438550397Sobrien 1438618334Speter * typeck2.c (build_functional_cast): Pull out a single parm before 1438750397Sobrien passing it to build_c_cast. 1438818334Speter 1438950397SobrienTue Mar 19 09:07:15 1996 Bob Manson <manson@beauty.cygnus.com> 1439050397Sobrien 1439150397Sobrien * expr.c (do_case): Give an error message if a pointer is 1439250397Sobrien given as a case value. 1439350397Sobrien 1439450397SobrienMon Mar 18 21:57:54 1996 Jason Merrill <jason@yorick.cygnus.com> 1439550397Sobrien 1439650397Sobrien * typeck.c (build_c_cast): Don't pull single TEMPLATE_DECL out of 1439750397Sobrien an overload list. 1439850397Sobrien 1439918334Speter * lex.c (cons_up_default_function): Really, now, interface hackery 1440050397Sobrien does not apply to synthesized methods. 1440150397Sobrien 1440218334SpeterMon Mar 18 18:20:57 1996 Mike Stump <mrs@cygnus.com> 1440350397Sobrien 1440418334Speter * call.c (build_method_call): Ctors and dtors now have special names 1440550397Sobrien with respect to lookups. 1440618334Speter * class.c (add_method): Likewise. 1440750397Sobrien (grow_method): Likewise. 1440818334Speter (finish_struct_methods): Likewise. 1440950397Sobrien (warn_hidden): Likewise. 1441018334Speter (finish_struct_1): Likewise. 1441150397Sobrien * cvt.c (convert_to_reference): Likewise. 1441218334Speter (convert_to_aggr): Likewise. 1441350397Sobrien (cp_convert): Likewise. 1441450397Sobrien * decl2.c (check_classfn): Likewise. 1441518334Speter * init.c (expand_member_init): Likewise. 1441650397Sobrien (expand_default_init): Likewise. 1441718334Speter (expand_aggr_init_1): Likewise. 1441850397Sobrien (build_offset_ref): Likewise. 1441950397Sobrien (build_new): Likewise. 1442018334Speter (build_delete): Likewise. 1442150397Sobrien * lex.c (do_inline_function_hair): Likewise. 1442218334Speter * search.c (lookup_field_1): Likewise. 1442350397Sobrien (lookup_fnfields_here): Likewise. 1442450397Sobrien (lookup_field): Likewise. 1442518334Speter (lookup_fnfields): Likewise. 1442650397Sobrien (get_virtual_destructor): Likewise. 1442718334Speter (dfs_debug_mark): Likewise. 1442850397Sobrien (dfs_pushdecls): Likewise. 1442950397Sobrien (dfs_compress_decls): Likewise. 1443050397Sobrien * tree.c (layout_basetypes): Likewise. 1443150397Sobrien * typeck.c (build_component_ref): Likewise. 1443250397Sobrien (build_x_function_call): Likewise. 1443350397Sobrien (build_modify_expr): Likewise. 1443418334Speter (convert_for_initialization): Likewise. 1443550397Sobrien (build_functional_cast): Likewise. 1443618334Speter * cp-tree.h (CLASSTYPE_FIRST_CONVERSION): Likewise. 1443750397Sobrien (CTOR_NAME): New. 1443852284Sobrien (DTOR_NAME): New. 1443950397Sobrien * decl.c (ctor_identifier): New. 1444018334Speter (dtor_identifier): New. 1444150397Sobrien (init_decl_processing): Set them. 1444218334Speter 1444350397SobrienMon Mar 18 18:00:51 1996 Mike Stump <mrs@cygnus.com> 1444450397Sobrien 1444518334Speter * typeck.c (build_component_ref): Don't get confused by fields whose 1444650397Sobrien context has no type name, like pointer to member functions. 1444750397Sobrien 1444818334SpeterMon Mar 18 13:19:03 1996 Jason Merrill <jason@yorick.cygnus.com> 1444950397Sobrien 1445050397Sobrien * decl.c (grokdeclarator): Handle typedef without declarator. 1445118334Speter 1445250397Sobrien * pt.c (tsubst): Handle SCOPE_REF in declarator. 1445318334Speter 1445450397Sobrien * parse.y (bad_parm): Catch another case of missing `typename'. 1445550397Sobrien 1445618334Speter * lex.c (yyprint): Handle TYPE_DECLs. 1445750397Sobrien 1445850397Sobrien * decl.c (start_function): Don't try to be clever. 1445918334Speter 1446050397Sobrien * lex.c: Lose compiler_error_with_decl. 1446118334Speter * typeck2.c: Lose error_with_aggr_type. 1446250397Sobrien (incomplete_type_error): Use cp_* instead of old functions. 1446350397Sobrien (readonly_error): Likewise. 1446418334Speter * typeck.c (convert_arguments): Likewise. 1446550397Sobrien * search.c (lookup_nested_field): Likewise. 1446650397Sobrien * method.c (make_thunk): Likewise. 1446718334Speter * decl.c (grokparms): Likewise. 1446850397Sobrien * cp-tree.h: Update. 1446918334Speter 1447050397Sobrien * tree.c (min_tree_cons): Call copy_to_permanent for the purpose 1447150397Sobrien and value. 1447250397Sobrien 1447350397SobrienMon Mar 18 11:25:52 1996 Bob Manson <manson@beauty.cygnus.com> 1447418334Speter 1447550397Sobrien * method.c (build_opfncall): When deleting a pointer to an 1447618334Speter array, build a new pointer to the tree past any ARRAY_TYPE 1447750397Sobrien nodes. 1447850397Sobrien 1447950397SobrienMon Mar 18 10:11:46 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1448018334Speter 1448150397Sobrien * decl.c (lookup_name_real): Initialize local var TYPE to NULL_TREE. 1448250397Sobrien 1448318334SpeterFri Mar 15 11:03:57 1996 Jason Merrill <jason@yorick.cygnus.com> 1448450397Sobrien 1448518334Speter * pt.c (instantiate_decl): Only call import_export_decl if at_eof 1448650397Sobrien and ! DECL_INLINE. 1448750397Sobrien 1448818334Speter * decl.c (finish_function): Don't set nested based on 1448950397Sobrien hack_decl_function_context. 1449018334Speter * parse.y (function_try_block): Check for nested function. 1449150397Sobrien (pending_inlines): Likewise. 1449250397Sobrien 1449350397Sobrien * decl2.c (build_expr_from_tree): If a unary op already has a 1449418334Speter type, just return it. 1449550397Sobrien 1449618334Speter * decl2.c (finish_prevtable_vardecl): Use ADJUST_VTABLE_LINKAGE. 1449750397Sobrien 1449850397Sobrien * decl2.c (walk_vtables): vardecl_fn returns int; return 1 if it does. 1449950397Sobrien (finish_file): Check the return value of walk_vtables. 1450050397Sobrien (finish_prevtable_vardecl): Return int. 1450118334Speter (finish_vtable_vardecl): Likewise. 1450250397Sobrien (prune_vtable_vardecl): Likewise. 1450318334Speter * lex.c (set_vardecl_interface_info): Likewise. 1450450397Sobrien * cp-tree.h: Adjust return types. 1450550397Sobrien 1450618334Speter * class.c (delete_duplicate_fields_1): Don't complain about 1450750397Sobrien duplicate nested types if they're the same type. 1450850397Sobrien (finish_struct): Remove check for duplicate. 1450918334Speter * decl2.c (grokfield): Don't check for typedef of anonymous type. 1451050397Sobrien 1451150397SobrienThu Mar 14 10:00:19 1996 Jason Merrill <jason@yorick.cygnus.com> 1451250397Sobrien 1451350397Sobrien * cp-tree.h: Lose SIGNATURE_GROKKING_TYPEDEF. 1451450397Sobrien 1451518334Speter * decl.c (grokdeclarator): Lose special handling of class-level 1451650397Sobrien typedef. Lose SIGNATURE_GROKKING_TYPEDEF. Set 1451750397Sobrien SIGNATURE_HAS_OPAQUE_TYPEDECLS later. 1451818334Speter 1451950397Sobrien * cvt.c (convert_pointer_to_real): Retain cv-quals in conversion. 1452018334Speter 1452150397Sobrien * pt.c (tsubst_copy): Strip cv-quals from destructor name types. 1452250397Sobrien 1452318334Speter * search.c (compute_access): Fix handling of anonymous union 1452450397Sobrien members. 1452518334Speter * class.c (finish_struct_anon): Propagate TREE_{PRIVATE,PROTECTED} 1452650397Sobrien from anonymous unions to their members. 1452750397Sobrien 1452818334Speter * typeck.c (build_x_function_call): For static member functions, 1452950397Sobrien hand off to build_member_call. 1453050397Sobrien 1453118334SpeterWed Mar 13 14:03:34 1996 Jason Merrill <jason@yorick.cygnus.com> 1453250397Sobrien 1453318334Speter * typeck.c (build_component_ref): Handle OFFSET_REFs. 1453450397Sobrien 1453550397Sobrien * init.c (expand_vec_init): Fix init == 0 case. 1453650397Sobrien 1453750397SobrienTue Mar 12 14:36:02 1996 Jason Merrill <jason@yorick.cygnus.com> 1453850397Sobrien 1453950397Sobrien * init.c (build_new): pedwarn about init and array new. 1454050397Sobrien (expand_vec_init): Handle lists, use convert_for_initialization. 1454150397Sobrien 1454250397Sobrien * typeck.c (convert_for_initialization): Pass LOOKUP_NO_CONVERSION 1454350397Sobrien when converting to an aggregate type. 1454450397Sobrien * cvt.c (cp_convert): Pass it through. 1454550397Sobrien 1454650397Sobrien * typeck.c (build_conditional_expr): Handle user-defined 1454750397Sobrien conversions to slightly different types. 1454850397Sobrien 1454950397Sobrien * decl.c (grokdeclarator): Force an array type in a parm to be 1455050397Sobrien permanent. 1455150397Sobrien 1455250397Sobrien * decl2.c (do_using_directive): Sorry. 1455350397Sobrien (do_namespace_alias): Likewise. 1455450397Sobrien * lex.c (real_yylex): Warn about using the `namespace' keyword. 1455550397Sobrien 1455650397SobrienSun Mar 10 22:26:09 1996 Jason Merrill <jason@yorick.cygnus.com> 1455750397Sobrien 1455850397Sobrien * parse.y (datadef): Move call to note_list_got_semicolon up. 1455950397Sobrien 1456050397SobrienFri Mar 8 11:47:26 1996 Mike Stump <mrs@cygnus.com> 1456150397Sobrien 1456250397Sobrien * tree.c (unsave_expr): Don't unsave, UNSAVE_EXPRs. 1456350397Sobrien 1456450397SobrienFri Mar 8 11:29:06 1996 Mike Stump <mrs@cygnus.com> 1456550397Sobrien 1456650397Sobrien * decl.c (cp_finish_decl): The exception regions have to be 1456750397Sobrien nested, not overlapping. We start the exception region for a 1456850397Sobrien decl, after it has been fully built, and all temporaries for it 1456950397Sobrien have been cleaned up. 1457050397Sobrien 1457150397SobrienThu Mar 7 17:46:06 1996 Mike Stump <mrs@cygnus.com> 1457218334Speter 1457350397Sobrien * tree.c (vec_binfo_member): Don't core dump if we have no bases. 1457418334Speter 1457550397SobrienThu Mar 7 14:11:49 1996 Jason Merrill <jason@yorick.cygnus.com> 1457650397Sobrien 1457718334Speter * tree.def: Add RETURN_INIT. 1457850397Sobrien * pt.c (instantiate_decl): Handle RETURN_INIT. 1457918334Speter * decl.c (store_return_init): Handle minimal_parse_mode. 1458050397Sobrien 1458118334Speter * tree.c (cp_build_type_variant): Just return an error_mark_node. 1458250397Sobrien * decl.c (make_typename_type): Don't try to get the file and line 1458318334Speter of an identifier. 1458450397Sobrien * typeck.c (comptypes): Handle TYPENAME_TYPE. 1458518334Speter 1458650397SobrienWed Mar 6 18:47:50 1996 Per Bothner <bothner@kalessin.cygnus.com> 1458718334Speter 1458850397Sobrien * decl.c (poplevel): Make sure we clear out and restore old local 1458918334Speter non-VAR_DECL values by default when they go out of scope. 1459050397Sobrien 1459150397SobrienWed Mar 6 09:57:36 1996 Jason Merrill <jason@yorick.cygnus.com> 1459250397Sobrien 1459350397Sobrien * method.c (build_overload_value): Use DECL_ASSEMBLER_NAME in 1459450397Sobrien referring to addresses of variables and functions. 1459550397Sobrien 1459650397Sobrien * error.c (dump_expr): Support SIZEOF_EXPR. 1459750397Sobrien 1459850397Sobrien * init.c (do_friend): Use the return value of check_classfn. 1459918334Speter 1460050397Sobrien * typeck.c (convert_arguments): Call complete_type. 1460150397Sobrien 1460218334Speter * method.c (hack_identifier): After giving an error, set value to 1460350397Sobrien error_mark_node. 1460418334Speter 1460550397SobrienTue Mar 5 16:00:15 1996 Jason Merrill <jason@yorick.cygnus.com> 1460650397Sobrien 1460750397Sobrien * tree.c (hack_decl_function_context): Kludge around DECL_CONTEXT 1460818334Speter lossage for local classes. 1460950397Sobrien * cp-tree.h: Declare it. 1461018334Speter * decl.c (lookup_name_real): Evil, painful hack for local classes. 1461150397Sobrien (grokfndecl): Set DECL_CLASS_CONTEXT and DECL_NO_STATIC_CHAIN here. 1461218334Speter Use hack_decl_function_context. 1461350397Sobrien (grokdeclarator): Don't set DECL_NO_STATIC_CHAIN here. 1461418334Speter (start_function): Use hack_decl_function_context. 1461550397Sobrien (finish_function): Likewise. 1461650397Sobrien * method.c (synthesize_method): Likewise. 1461718334Speter * lex.c (process_next_inline): Likewise. 1461850397Sobrien (do_pending_inlines): Likewise. 1461950397Sobrien * decl2.c (finish_file): Unset DECL_STATIC_FUNCTION_P when we're 1462050397Sobrien done with it. 1462150397Sobrien 1462218334SpeterMon Mar 4 22:38:39 1996 Gerald Baumgartner <gb@alexander.cs.purdue.edu> 1462350397Sobrien 1462450397Sobrien * sig.c (build_signature_pointer_or_reference_type): Align 1462518334Speter signature pointers/references on 8-byte boundaries so they can be 1462650397Sobrien grabbed 2 words at a time on a Sparc. 1462718334Speter 1462850397SobrienTue Mar 5 10:21:01 1996 Jason Merrill <jason@yorick.cygnus.com> 1462950397Sobrien 1463050397Sobrien * method.c (hack_identifier): Requiring a static chain is now a 1463150397Sobrien hard error. 1463250397Sobrien * decl.c (grokdeclarator): Set DECL_NO_STATIC_CHAIN on nested 1463350397Sobrien functions. 1463450397Sobrien 1463518334SpeterMon Mar 4 20:03:33 1996 Jason Merrill <jason@yorick.cygnus.com> 1463650397Sobrien 1463750397Sobrien * init.c (build_offset_ref): Call complete_type. 1463850397Sobrien 1463950397Sobrien * decl.c (pop_from_top_level): Always pop previous_class_type. 1464018334Speter 1464150397Sobrien * parse.y: Handle multiple decls in a for-init-statement. 1464218334Speter * pt.c (tsubst_expr): Likewise. 1464350397Sobrien 1464418334Speter * pt.c (tsubst): Use tsubst_expr for the second operand of an 1464550397Sobrien ARRAY_REF. 1464650397Sobrien 1464750397Sobrien * decl.c (maybe_push_to_top_level): Don't save previous_class_type. 1464818334Speter (poplevel_class): Set it here. 1464950397Sobrien (pop_from_top_level): Pop it here if we're returning to class scope. 1465018334Speter * class.c (pushclass): Don't set it here. 1465150397Sobrien 1465218334Speter * decl.c (maybe_push_to_top_level): Save current_template_parms, 1465350397Sobrien and clear it if !pseudo. 1465450397Sobrien (pop_from_top_level): Restore it. 1465550397Sobrien 1465650397Sobrien * decl2.c (finish_file): Push the dummy each time we walk the list 1465718334Speter of vtables. 1465850397Sobrien 1465950397Sobrien * error.c (dump_expr): Support LOOKUP_EXPR and actually do 1466018334Speter something for CAST_EXPR. 1466150397Sobrien 1466218334SpeterMon Feb 19 14:49:18 1996 Rusty Russell <rusty@adelaide.maptek.com.au> 1466350397Sobrien 1466418334Speter * cvt.c (cp_convert): Warn about implicit conversion of the 1466550397Sobrien address of a function to bool, as it is always true. 1466618334Speter 1466750397SobrienFri Feb 23 23:06:01 1996 Rusty Russell <rusty@adelaide.maptek.com.au> 1466818334Speter 1466952284Sobrien * typeck.c (c_expand_return): Fix warning for local externs returned. 1467050397Sobrien 1467118334SpeterMon Mar 4 15:03:11 1996 Jason Merrill <jason@yorick.cygnus.com> 1467250397Sobrien 1467350397Sobrien * tree.c (mapcar): Propagate const and volatile properly. 1467450397Sobrien 1467518334Speter * typeck.c (complete_type): Be sure to instantiate the 1467650397Sobrien MAIN_VARIANT of the type. 1467750397Sobrien 1467818334Speter * method.c (synthesize_method): Class interface hackery does not 1467950397Sobrien apply to synthesized methods. 1468050397Sobrien 1468118334SpeterMon Mar 4 14:05:23 1996 Jason Merrill <jason@yorick.cygnus.com> 1468250397Sobrien 1468350397Sobrien * pt.c (comp_template_args): Use comptypes rather than just 1468450397Sobrien checking for TEMPLATE_TYPE_PARM equivalence. 1468518334Speter 1468650397Sobrien * typeck.c (build_x_function_call): Call complete_type before 1468718334Speter checking TYPE_OVERLOADS_CALL_EXPR. 1468850397Sobrien 1468918334SpeterMon Mar 4 18:48:30 1996 Manfred Hollstein <manfred@lts.sel.alcatel.de> 1469050397Sobrien 1469118334Speter * g++.c (main): Check also for new define ALT_LIBM. 1469250397Sobrien 1469318334SpeterFri Mar 1 13:09:33 1996 Jason Merrill <jason@yorick.cygnus.com> 1469450397Sobrien 1469518334Speter * pt.c (instantiate_class_template): If we don't have a pattern 1469650397Sobrien yet, that's OK. 1469750397Sobrien (coerce_template_parms): If we see a local class, bail. 1469850397Sobrien 1469950397Sobrien * decl.c (grok_reference_init): Make sure there's a type before 1470018334Speter checking its code. 1470150397Sobrien 1470218334Speter * pt.c (do_function_instantiation): Avoid crashing on invalid decls. 1470350397Sobrien (push_template_decl): Likewise. 1470418334Speter 1470550397Sobrien * parse.y (named_class_head): Set 1470618334Speter CLASSTYPE_TEMPLATE_SPECIALIZATION here if we have basetypes. 1470750397Sobrien 1470850397Sobrien * decl.c (xref_tag): Diagnose redeclaration of template 1470950397Sobrien type-parameter name. 1471018334Speter 1471150397Sobrien * error.c (dump_type): Handle anonymous template type parms. 1471250397Sobrien 1471350397Sobrien * pt.c (instantiate_template): Use TYPE_MAIN_DECL instead of 1471450397Sobrien TYPE_STUB_DECL. 1471518334Speter (coerce_template_parms): Likewise. 1471650397Sobrien 1471718334SpeterThu Feb 29 16:26:01 1996 Mike Stump <mrs@cygnus.com> 1471850397Sobrien 1471950397Sobrien * class.c (instantiate_type, case {ARRAY,INDIRECT}_REF, 1472018334Speter case ADDR_EXPR): Don't modify rhs if a subinstantiation fails. 1472150397Sobrien 1472218334SpeterThu Feb 29 08:20:25 1996 Jason Merrill <jason@yorick.cygnus.com> 1472350397Sobrien 1472450397Sobrien * pt.c (instantiate_template): Take the MAIN_VARIANT of the type 1472518334Speter before trying to get its STUB_DECL. 1472650397Sobrien (coerce_template_parms): Likewise. 1472718334Speter 1472850397Sobrien * parse.y (template_type_parm): If they didn't use 'class', 1472918334Speter pretend they did after giving an error. 1473050397Sobrien 1473118334Speter * pt.c (coerce_template_parms): Diagnose use of local class. 1473250397Sobrien 1473350397Sobrien * decl.c (grok_reference_init): Use instantiate_type. 1473418334Speter 1473550397Sobrien * error.c (dump_expr): Handle TEMPLATE_DECLs. 1473618334Speter 1473750397Sobrien * parse.y (named_class_head): Diagnose mismatching types and tags. 1473850397Sobrien 1473950397Sobrien * decl.c (pushdecl): Type decls and class templates clash with 1474050397Sobrien artificial type decls, not hide them. 1474150397Sobrien 1474250397Sobrien * decl.c (redeclaration_error_message): Diagnose redefinition of 1474350397Sobrien templates properly. 1474450397Sobrien (duplicate_decls): Diagnose disallowed overloads for template 1474550397Sobrien functions, too. 1474650397Sobrien 1474750397Sobrien * decl.c (start_decl): Call complete_type before checking for a 1474850397Sobrien destructor. 1474950397Sobrien 1475050397Sobrien * pt.c (tsubst): Use tsubst_expr on the elts of a VEC. 1475118334Speter 1475250397Sobrien * decl.c (xref_tag): A TEMPLATE_TYPE_PARM is a match. 1475350397Sobrien 1475450397SobrienWed Feb 28 09:28:44 1996 Jason Merrill <jason@yorick.cygnus.com> 1475550397Sobrien 1475650397Sobrien * decl.c (grok_op_properties): Don't check for operator++(int) in 1475750397Sobrien a template. 1475850397Sobrien 1475950397Sobrien * tree.c (perm_manip): Return a copy of variable and function 1476050397Sobrien decls with external linkage. 1476150397Sobrien 1476250397Sobrien * tree.def: Change some of the min tree codes to type "1". 1476350397Sobrien * pt.c (uses_template_parms): Handle 'e's, return 1 for LOOKUP_EXPRs. 1476450397Sobrien * method.c (build_overload_int): Emit something arbitrary for 1476550397Sobrien anything but an INTEGER_CST if we're in a template. 1476650397Sobrien 1476750397Sobrien * decl.c (cp_finish_decl): Call complete_type before deciding 1476850397Sobrien whether or not to lay out the decl. 1476950397Sobrien 1477050397Sobrien * lex.c (do_identifier): Check for DECL_INITIAL before using it. 1477150397Sobrien 1477250397SobrienTue Feb 27 16:35:32 1996 Jason Merrill <jason@yorick.cygnus.com> 1477350397Sobrien 1477450397Sobrien * typeck2.c (build_x_arrow): Call complete_type. 1477550397Sobrien 1477650397Sobrien * pt.c (add_pending_template): Broken out. 1477750397Sobrien (lookup_template_class): If -fexternal-templates, call it for all 1477850397Sobrien the methods of implemented types. 1477950397Sobrien (instantiate_class_template): Instead of instantiating them here. 1478050397Sobrien (instantiate_decl): Handle -fexternal-templates earlier. 1478150397Sobrien 1478250397SobrienTue Feb 27 15:51:32 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1478350397Sobrien 1478450397Sobrien * search.c, lex.c, decl.c, class.c, cp-tree.h: Don't wrap the 1478550397Sobrien memoized lookup stuff inside GATHER_STATISTICS. 1478650397Sobrien 1478750397SobrienTue Feb 27 10:38:08 1996 Jason Merrill <jason@yorick.cygnus.com> 1478850397Sobrien 1478950397Sobrien * decl.c (start_decl): Complain about array of incomplete type 1479050397Sobrien here. 1479152284Sobrien (grokdeclarator): Not here. 1479250397Sobrien 1479318334Speter * parse.y (template_parm): Expand full_parm inline so we can set 1479450397Sobrien the rule's precedence. 1479550397Sobrien 1479618334Speter * pt.c (tsubst_expr): If we're in a template, just do tsubst_copy. 1479750397Sobrien (tsubst): tsubst_expr the DECL_INITIAL of FIELD_DECLs. 1479818334Speter * decl2.c (grokbitfield): Don't check for integer constant here. 1479950397Sobrien * class.c (finish_struct_1): Check here. 1480018334Speter 1480150397Sobrien * decl.c (define_label): Make the min decl go on permanent_obstack. 1480218334Speter 1480350397Sobrien * pt.c (unify): Don't handle CONST_DECLs. 1480418334Speter (uses_template_parms): Don't check DECL_INITIAL on a CONST_DECL. 1480550397Sobrien (tsubst_copy): Likewise. 1480650397Sobrien 1480718334Speter * lex.c (do_identifier): Do pull the DECL_INITIAL out of a 1480850397Sobrien CONST_DECL for a template parm. 1480950397Sobrien 1481018334SpeterMon Feb 26 12:48:18 1996 Jason Merrill <jason@yorick.cygnus.com> 1481150397Sobrien 1481218334Speter * decl.c (grokdeclarator): Complain about array of incomplete type 1481350397Sobrien here. 1481450397Sobrien (start_decl_1): Not here. 1481518334Speter 1481650397Sobrien * pt.c (tsubst): Handle pointer-to-function declarators. 1481750397Sobrien 1481818334Speter * method.c (hack_identifier): If pedantic, diagnose local class 1481950397Sobrien methods that require a static chain. 1482018334Speter 1482150397Sobrien * decl.c (grok_op_properties): No longer static. 1482218334Speter * cp-tree.h: Declare it. 1482350397Sobrien * pt.c (tsubst): Call it for operators. 1482418334Speter Use tsubst_copy for TREE_VECs. 1482550397Sobrien 1482650397Sobrien * parse.y (template_arg): The expr has precedence like '>'. 1482750397Sobrien 1482818334SpeterFri Feb 23 14:51:52 1996 Jason Merrill <jason@yorick.cygnus.com> 1482950397Sobrien 1483050397Sobrien * pt.c (coerce_template_parms): Don't coerce an expression using 1483118334Speter template parms. 1483250397Sobrien (uses_template_parms): Also check DECL_INITIAL in CONST_DECLs. 1483350397Sobrien (tsubst): Don't use build_index_2_type if the max_value uses template 1483418334Speter parms. 1483550397Sobrien * method.c (build_overload_int): Emit something arbitrary for an 1483650397Sobrien expression using template parms. 1483718334Speter 1483850397Sobrien * parse.y (template_close_bracket): New non-terminal to catch use 1483950397Sobrien of '>>' instead of '> >' in template class names. 1484018334Speter (template_type): Use it. 1484150397Sobrien * Makefile.in (CONFLICTS): Causes one more r/r conflict. 1484218334Speter 1484350397Sobrien * tree.def: Add CAST_EXPR. 1484450397Sobrien * typeck2.c (build_functional_cast): Use CAST_EXPR instead of 1484550397Sobrien CONVERT_EXPR for minimal_parse_mode. 1484618334Speter * typeck.c (build_c_cast): Likewise. 1484750397Sobrien * pt.c (tsubst_copy): Likewise. 1484818334Speter * decl2.c (build_expr_from_tree): Likewise. 1484950397Sobrien * error.c (dump_expr): Likewise. 1485050397Sobrien 1485118334SpeterFri Feb 23 10:36:46 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1485250397Sobrien 1485318334Speter * except.c (SetTerminate, SetUnexpected): Put back global vars. 1485450397Sobrien (init_exception_processing): Put back decl/init of 1485550397Sobrien set_unexpected_fndecl and set_terminate_fndecl, needed to get the 1485650397Sobrien fns from libstdc++. 1485718334Speter 1485850397Sobrien * decl.c (struct binding_level): Delete ACCEPT_ANY bitfield. 1485950397Sobrien (declare_uninstantiated_type_level, uninstantiated_type_level_p): 1486018334Speter Delete unused fns. 1486150397Sobrien * cp-tree.h (declare_uninstantiated_type_level, 1486218334Speter uninstantiated_type_level_p): Delete prototypes. 1486350397Sobrien 1486418334SpeterThu Feb 22 19:36:15 1996 Jason Merrill <jason@yorick.cygnus.com> 1486550397Sobrien 1486618334Speter * pt.c (tsubst_expr): Add default return. 1486750397Sobrien 1486818334SpeterThu Feb 22 16:47:24 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1486950397Sobrien 1487050397Sobrien * error.c (fndecl_as_string): Delete unused arg CNAME. 1487118334Speter * sig.c (build_signature_table_constructor, 1487250397Sobrien build_signature_method_call): Fix calls. 1487350397Sobrien 1487450397Sobrien * class.c (the_null_vtable_entry): Delete var definition. 1487550397Sobrien (init_class_processing): Delete tree the_null_vtable_entry init. 1487618334Speter * decl.c (no_print_{functions, builtins}): Declare as static. 1487750397Sobrien (__tp_desc_type_node): #if 0 var definition. 1487850397Sobrien (init_type_desc): #if 0 init of __tp_desc_type_node. 1487918334Speter (vb_off_identifier): Move var decl into init_decl_processing. 1488050397Sobrien (current_function_assigns_this): Declare as static. 1488118334Speter (int_ftype_ptr_ptr_int, void_ftype_ptr_int_int): Delete var decls. 1488250397Sobrien (init_decl_processing): Delete init of void_ftype_ptr_ptr_int. 1488318334Speter Move decls of string_ftype_ptr_ptr and int_ftype_string_string here. 1488450397Sobrien * decl2.c (delete_sanity): Delete definition/mod of local var ELT_SIZE. 1488550397Sobrien * init.c (BI_header_type, BI_header_size): Declare as static. 1488650397Sobrien * pt.c (template_classes): Delete unused var. 1488750397Sobrien (add_pending_template): Delete decl for non-existent fn. 1488850397Sobrien (lookup_template_class): Delete vars CODE and TAG_CODE. 1488950397Sobrien (instantiate_template): Delete unused var TARGS. 1489050397Sobrien * cp-tree.h (vb_off_identifier, current_function_assigns_this): 1489150397Sobrien Delete decls. 1489250397Sobrien (__tp_desc_type_node): #if 0 var decl. 1489350397Sobrien (fndecl_as_string): Fix prototype. 1489450397Sobrien 1489550397SobrienThu Feb 22 15:56:19 1996 Jason Merrill <jason@yorick.cygnus.com> 1489650397Sobrien 1489750397Sobrien * tree.def: Add GOTO_STMT. 1489850397Sobrien * pt.c (tsubst_expr): Support goto and labels. 1489950397Sobrien * decl.c (define_label): Support minimal parsing. 1490050397Sobrien * parse.y (simple_stmt): Likewise. 1490150397Sobrien 1490250397SobrienThu Feb 22 15:30:12 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1490350397Sobrien 1490450397Sobrien * xref.c (GNU_xref_member): Only define/set var I if 1490550397Sobrien XREF_SHORT_MEMBER_NAMES is defined, to match when it's actually 1490650397Sobrien used. 1490750397Sobrien (GNU_xref_end_scope): Delete unused fifth arg TRNS. 1490850397Sobrien (GNU_xref_end): Fix call. 1490950397Sobrien * decl.c (poplevel, poplevel_class, finish_method): Fix calls. 1491050397Sobrien * cp-tree.h (GNU_xref_end_scope): Fix prototype. 1491150397Sobrien 1491250397Sobrien * tree.c (build_exception_variant): Delete unused vars I, A, T, 1491350397Sobrien T2, and CNAME. 1491450397Sobrien (layout_vbasetypes): Delete unused var NONVIRTUAL_VAR_SIZE. 1491550397Sobrien (mapcar): Delete unused var CODE. 1491650397Sobrien (build_cplus_new): Delete unused arg WITH_CLEANUP_P. 1491750397Sobrien (break_out_cleanups): Fix call. 1491850397Sobrien (bot_manip): Likewise. 1491950397Sobrien * call.c (build_method_call): Likewise. 1492018334Speter * cvt.c (build_up_reference, convert_to_reference, cp_convert): 1492150397Sobrien Likewise. 1492218334Speter * typeck.c (unary_complex_lvalue, build_modify_expr, 1492350397Sobrien convert_for_initialization): Likewise. 1492450397Sobrien * typeck2.c (build_functional_cast): Likewise. 1492518334Speter * cp-tree.h (build_cplus_new): Fix prototype. 1492650397Sobrien 1492750397Sobrien * repo.c (open_repo_file): Delete unused var Q. 1492850397Sobrien (repo_compile_flags, repo_template_declared, 1492950397Sobrien repo_template_defined, repo_class_defined, repo_inline_used, 1493018334Speter repo_vtable_used, repo_tinfo_used): #if 0 unused fns. 1493150397Sobrien (repo_get_id, repo_vtable_used): Declare as static. 1493218334Speter * cp-tree.h (mark_{decl,class}_instantiated, finish_repo): Add 1493350397Sobrien prototypes. 1493450397Sobrien 1493550397SobrienThu Feb 22 14:53:35 1996 Jason Merrill <jason@yorick.cygnus.com> 1493618334Speter 1493750397Sobrien * parse.y (pending_inlines): Add function_try_block case. 1493850397Sobrien 1493918334Speter * pt.c (unify): Fix for template const parms. 1494050397Sobrien 1494118334SpeterThu Feb 22 13:24:15 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1494250397Sobrien 1494350397Sobrien * lex.c (extract_interface_info): Delete forward decl. 1494450397Sobrien (default_copy_constructor_body, default_assign_ref_body): Delete 1494518334Speter decls for non-existent functions. 1494650397Sobrien (synth_firstobj, inline_text_firstobjs): Delete unused vars. 1494718334Speter (init_lex): Delete setting them. 1494850397Sobrien (cons_up_default_function): Delete unused vars FUNC_BUF, 1494950397Sobrien FUNC_LEN, and COMPLEX. Delete code setting COMPLEX. Delete old 1495018334Speter #if 0'd synth code. 1495150397Sobrien (toplevel, expression_obstack): Delete unused extern decls. 1495250397Sobrien (tree_node_kind): Delete unused enum. 1495350397Sobrien (tree_node_counts, tree_node_sizes): Wrap with #ifdef 1495450397Sobrien GATHER_STATISTICS. 1495518334Speter (tree_node_kind_names): Delete unused extern decl. 1495650397Sobrien (synth_obstack): Delete unused var. 1495718334Speter (init_lex): Don't set it. 1495850397Sobrien (init_parse): Add decl before use. 1495918334Speter (reduce_count): Only define #ifdef GATHER_STATISTICS && REDUCE_LENGTH. 1496050397Sobrien (current_unit_{name, language}): Delete unused vars. 1496150397Sobrien (check_newline): Don't bother setting them, just accept the #pragma. 1496250397Sobrien * cp-tree.h (init_repo, peek_yylex): Add prototypes. 1496350397Sobrien (current_unit_{name, language}): Delete decls. 1496450397Sobrien 1496550397Sobrien * search.c: Wrap all of the memoized functions, macros, and 1496650397Sobrien variables inside #ifdef GATHER_STATISTICS. 1496718334Speter (lookup_field, lookup_fnfields): Likewise. 1496850397Sobrien (init_search_processing): Likewise. 1496950397Sobrien (reinit_search_statistics): Wrap whole function. 1497050397Sobrien * lex.c (reinit_lang_specific): Wrap call to reinit_search_statistics. 1497150397Sobrien 1497218334Speter * decl.c (finish_function): Only call pop_memoized_context if 1497350397Sobrien GATHER_STATISTICS is defined. 1497450397Sobrien (start_function): Likewise for push_memoized_context. 1497550397Sobrien * class.c (pushclass, popclass): Likewise. 1497650397Sobrien 1497750397Sobrien * cp-tree.h (CLASSTYPE_MTABLE_ENTRY): Move definition from here... 1497850397Sobrien * search.c (CLASSTYPE_MTABLE_ENTRY): ... to here. 1497950397Sobrien 1498018334Speter * cvt.c (cp_convert): Delete unused local var FORM. 1498150397Sobrien * cp-tree.h (can_convert, can_convert_arg, real_lvalue_p): Add 1498218334Speter prototypes. 1498350397Sobrien 1498450397SobrienThu Feb 22 13:19:44 1996 Jason Merrill <jason@yorick.cygnus.com> 1498550397Sobrien 1498650397Sobrien * pt.c (do_poplevel): Oops; really return what we get from 1498718334Speter poplevel this time. 1498850397Sobrien 1498950397SobrienThu Feb 22 11:41:44 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1499050397Sobrien 1499150397Sobrien * cp-tree.h (is_aggr_type): Add prototype. 1499250397Sobrien 1499318334Speter * cp-tree.h ({push,pop}_cp_function_context): Add decls. 1499450397Sobrien * method.c ({push,pop}_cp_function_context): Delete decls. 1499518334Speter * except.c (start_eh_unwinder, end_eh_unwinder): Declare as void. 1499650397Sobrien (SetUnexpected, SetTerminate): Delete unused vars. 1499718334Speter (init_exception_processing): Don't set SetUnexpected or 1499850397Sobrien SetTerminate. Don't set SET_UNEXPECTED_FNDECL or SET_TERMINATE_FNDECL. 1499918334Speter (output_exception_table_entry): Delete unused array LABEL. 1500050397Sobrien (expand_internal_throw): Delete unused var PARAMS. 1500150397Sobrien (expand_start_catch_block): Delete unused var CLEANUP. 1500250397Sobrien (emit_exception_table): Delete unused var EH_NODE_DECL. 1500318334Speter (expand_builtin_throw): Delete unused vars UNWIND_AND_THROW and 1500450397Sobrien GOTO_UNWIND_AND_THROW. Don't set them. 1500550397Sobrien (end_eh_unwinder): Add top decl. 1500650397Sobrien (pop_rtl_from_perm): Delete unused decl of PERMANENT_OBSTACK. 1500750397Sobrien (exception_section, push_rtl_perm, do_function_call, 1500850397Sobrien lang_interim_eh, push_eh_cleanup, eh_outer_context, 1500950397Sobrien expand_end_eh_spec, end_eh_unwinder): Declare as static. 1501050397Sobrien (saved_pc, saved_throw_type, saved_throw_value, saved_cleanup, 1501150397Sobrien throw_used): Likewise. 1501250397Sobrien * cp-tree.h (expand_end_eh_spec): Delete prototype. 1501350397Sobrien 1501450397Sobrien * search.c (dfs_mark, dfs_mark_vtable_path, 1501550397Sobrien dfs_unmark_vtable_path, dfs_mark_new_vtable, 1501650397Sobrien dfs_unmark_new_vtable, dfs_clear_search_slot, 1501750397Sobrien dfs_search_slot_nonempty_p, bfs_markedp, bfs_unmarkedp, 1501850397Sobrien bfs_marked_vtable_pathp, bfs_unmarked_vtable_pathp, 1501950397Sobrien bfs_marked_new_vtablep, bfs_unmarked_new_vtablep): #if 0 unused 1502050397Sobrien functions. 1502150397Sobrien (n_fields_searched, n_calls_lookup_field, n_calls_lookup_field_1, 1502250397Sobrien n_calls_lookup_fnfields, n_calls_lookup_fnfields_1, 1502350397Sobrien n_calls_get_base_type, n_outer_fields_searched, n_contexts_saved): 1502418334Speter Only define #ifdef GATHER_STATISTICS. 1502550397Sobrien (reinit_search_statistics): Only init some vars if GATHER_STATISTICS 1502618334Speter is defined. 1502750397Sobrien (vbase_decl): Delete var definition. 1502850397Sobrien (init_search): Delete old decl. 1502950397Sobrien (init_vbase_pointers): Delete building of VBASE_DECL, since it's 1503050397Sobrien never actually used. 1503118334Speter (expand_indirect_vtbls_init): Delete init of VBASE_DECL. 1503250397Sobrien (get_base_distance_recursive): Delete unused fourth arg 1503318334Speter BASETYPE_PATH. Fix call . 1503450397Sobrien (get_base_distance): Fix call. 1503550397Sobrien (push_class_decls): Delete unused var ID. 1503650397Sobrien (make_memoized_table_entry): Declare as static. 1503750397Sobrien (breadth_first_search): Declare as static. 1503850397Sobrien (tree_has_any_destructor_p): Declare as static. 1503950397Sobrien (pop_class_decls): Delete unused arg pop_class_decls. 1504050397Sobrien * class.c (popclass): Fix call to pop_class_decls. 1504118334Speter * cp-tree.h (make_memoized_table_entry, breadth_first_search, 1504250397Sobrien tree_has_any_destructor_p): Delete prototypes. 1504350397Sobrien 1504450397Sobrien * rtti.c (build_ptmf_desc): Delete unused arg TYPE. 1504550397Sobrien (build_t_desc): Fix call. Delete unused vars ELEMS and TT. 1504650397Sobrien (build_dynamic_cast): Delete unused local vars TMP1 and RETVAL. 1504750397Sobrien (build_user_desc): Delete unused var T. 1504850397Sobrien (build_class_desc): Delete unused vars T and OFF. 1504950397Sobrien (build_t_desc): Delete unused var NAME_STRING. 1505050397Sobrien (build_headof): Make static. 1505150397Sobrien (get_bad_cast_node): Likewise. 1505250397Sobrien (get_def_to_follow): Likewise. 1505350397Sobrien * cp-tree.h (init_type_desc): Add prototype. 1505450397Sobrien (build_headof): Remove prototype. 1505550397Sobrien 1505618334SpeterThu Feb 22 00:54:22 1996 Jason Merrill <jason@yorick.cygnus.com> 1505750397Sobrien 1505850397Sobrien * pt.c (tsubst): Only look for matching decls at file scope for 1505950397Sobrien non-member functions. 1506050397Sobrien 1506152284Sobrien * call.c (build_scoped_method_call): Handle scoped destructor 1506250397Sobrien calls in templates. 1506350397Sobrien 1506418334Speter * decl.c (*_top_level): Also save previous_class_values. 1506550397Sobrien 1506618334Speter * pt.c (tsubst_expr): Support do {} while loops. 1506750397Sobrien * parse.y (simple_stmt): Likewise. 1506818334Speter * tree.def: Likewise. 1506950397Sobrien 1507018334Speter * method.c (build_overload_identifier): For a class nested in a 1507150397Sobrien template class, don't mangle in the template parms from our 1507218334Speter context. 1507350397Sobrien 1507450397Sobrien * lex.c, cp-tree.h: Remove support for template instantiations in 1507550397Sobrien the pending_inlines code. 1507650397Sobrien * pt.c: Remove dead functions and unused arguments. 1507750397Sobrien (uses_template_parms): TYPENAME_TYPEs always use template parms. 1507850397Sobrien * parse.y: Stop passing anything to end_template_decl. 1507950397Sobrien * tree.c (print_lang_statistics): Only print tinst info #ifdef 1508050397Sobrien GATHER_STATISTICS. 1508150397Sobrien 1508250397SobrienWed Feb 21 16:57:33 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1508350397Sobrien 1508450397Sobrien * init.c (expand_recursive_init{,_1}): Delete decls. 1508550397Sobrien (sort_member_init): Delete unused var INIT. 1508650397Sobrien (emit_base_init): Delete unused var X. 1508750397Sobrien (build_offset_ref): Delete unused var CNAME. 1508850397Sobrien (sort_member_init): Delete unused var FIELDS_TO_UNMARK. 1508950397Sobrien (emit_base_init): Delete unused local var BASE. Delete extern 1509052284Sobrien decl of IN_CHARGE_IDENTIFIER. 1509150397Sobrien (build_delete): Delete unused local var VIRTUAL_SIZE. 1509250397Sobrien 1509350397Sobrien * init.c (build_vec_delete): Delete unused third arg ELT_SIZE. 1509418334Speter (build_delete): Fix call. 1509550397Sobrien * decl2.c (delete_sanity): Likewise. 1509650397Sobrien * cp-tree.h (build_vec_delete): Update prototype. 1509750397Sobrien 1509850397Sobrien * typeck.c (common_base_type): Delete unused var TMP. 1509950397Sobrien (build_binary_op): Delete local var ARGS_SAVE. 1510050397Sobrien (build_array_ref): Delete unused var ITYPE. 1510118334Speter (c_expand_return): Delete unused var USE_TEMP. 1510250397Sobrien 1510350397Sobrien * typeck.c (compexcepttypes): Delete unused arg STRICT. 1510450397Sobrien (comptypes): Fix calls. 1510550397Sobrien * decl.c (duplicate_decls): Likewise. 1510618334Speter * cp-tree.h (compexcepttypes): Delete extra arg. 1510750397Sobrien 1510850397Sobrien * decl2.c (check_classfn): Delete unused second arg CNAME. 1510918334Speter * decl.c (start_decl, grokfndecl): Fix calls. 1511050397Sobrien * init.c (do_friend): Likewise. 1511150397Sobrien * cp-tree.h (check_classfn): Update prototype. 1511250397Sobrien 1511318334Speter * cp-tree.h (signature_error, import_export_vtable, 1511450397Sobrien append_signature_fields, id_in_current_class, mark_used, 1511518334Speter copy_assignment_arg_p): Add decls. 1511650397Sobrien * decl2.c (mark_used): Delete decl. 1511750397Sobrien 1511818334Speter * class.c (n_*): Wrap with #ifdef GATHER_STATISTICS. 1511950397Sobrien 1512018334Speter * class.c (get_vtable_entry): Disable unused function. 1512150397Sobrien (doing_hard_virtuals): Delete unused static global var. 1512218334Speter (finish_struct_1): Don't init DOING_HARD_VIRTUALS. 1512350397Sobrien (prepare_fresh_vtable): Delete unused vars PATH and RESULT. 1512450397Sobrien (overrides): Delete unused vars RETTYPE and BASE_RETTYPE. 1512550397Sobrien (modify_one_vtable): Delete unused var OLD_RTTI. 1512650397Sobrien (finish_struct_anon): Delete unused vars OFFSET and X. 1512750397Sobrien (finish_struct_bits): Delete unused var METHOD_VEC. 1512850397Sobrien (get_basefndecls): Delete unused var PURPOSE. Delete unused 1512950397Sobrien for-scope local variable METHODS. 1513050397Sobrien 1513150397Sobrien * call.c (user_harshness): Delete unused/unneeded arg PARM. 1513250397Sobrien (ideal_candidate): Delete unused args BASETYPE and PARMS. 1513350397Sobrien (build_method_call): Delete unused args passed into ideal_candidate. 1513450397Sobrien (build_overload_call_real): Likewise. Delete unused var OVERLOAD_NAME. 1513550397Sobrien * cp-tree.h (synthesize_method): Add decl. 1513650397Sobrien 1513750397Sobrien * decl.c (note_level_for_for): Give void return type. 1513850397Sobrien (pushdecl_nonclass_level): Likewise. 1513950397Sobrien (finish_function): Delete unused vars VFIELDS and ALLOCATED_THIS. 1514050397Sobrien (poplevel): Delete unused var IMPLICIT_TRY_BLOCK. 1514150397Sobrien (suspend_binding_level): Delete unused var LEVEL. 1514250397Sobrien (duplicate_decls): Delete unused var CTYPE. 1514318334Speter (duplicate_decls): Delete unused var PREVIOUS_C_DECL. 1514450397Sobrien (init_decl_processing): Delete unused vars FLOAT_ENDLINK and 1514550397Sobrien PTR_ENDLINK. 1514650397Sobrien (grokdeclarator): Delete unused var C. 1514750397Sobrien (grokdeclarator): Delete unused var SIZE_VARIES. 1514850397Sobrien (grokparms): Delete unused var SAW_VOID. 1514950397Sobrien (start_function): Delete unused var OLDDECL. 1515050397Sobrien (cplus_expand_expr_stmt): Delete unused var 1515150397Sobrien REMOVE_IMPLICIT_IMMEDIATELY. 1515250397Sobrien 1515350397Sobrien * cp-tree.h (pushdecl_nonclass_level): Fix prototype. 1515450397Sobrien 1515550397Sobrien * Makefile.in (CONFLICTS): Update to 12 shift/reduce. 1515650397Sobrien 1515750397SobrienWed Feb 21 00:06:17 1996 Jason Merrill <jason@yorick.cygnus.com> 1515850397Sobrien 1515950397Sobrien * tree.c (build_min): Set TREE_COMPLEXITY to lineno. 1516050397Sobrien (build_min_nt): Likewise. 1516150397Sobrien * pt.c (do_pushlevel): Emit line note. 1516250397Sobrien (do_poplevel): Return what we get from poplevel. 1516350397Sobrien (tsubst_expr): Set lineno from TREE_COMPLEXITY in stmt nodes. 1516450397Sobrien * parse.y: Use do_pushlevel and do_poplevel. 1516550397Sobrien * cp-tree.h: Declare do_poplevel. 1516650397Sobrien 1516750397Sobrien * cp-tree.h: Declare at_eof. 1516850397Sobrien * decl.c (cp_finish_decl): Pass it to rest_of_decl_compilation. 1516950397Sobrien * decl2.c (import_export_decl): Renamed from import_export_inline. 1517050397Sobrien (finish_file): Call it to do interface handling for statics. 1517150397Sobrien * pt.c (tsubst_copy): Call mark_used on variables and functions 1517250397Sobrien used here. 1517318334Speter 1517450397Sobrien * decl2.c (finish_file): Don't emit statics we can't generate. 1517550397Sobrien * pt.c (instantiate_decl): Don't set interface on instantiations 1517650397Sobrien we can't generate. 1517750397Sobrien 1517850397Sobrien * cp-tree.h (struct tinst_level): Change 'classname' to 'decl'. 1517950397Sobrien * tree.c (print_lang_statistics): Print max template depth. 1518050397Sobrien * pt.c (push_tinst_level): Dump entire instantiation context. 1518150397Sobrien (instantiate_class_template): Use it and pop_tinst_level. 1518250397Sobrien (instantiate_decl): Likewise. 1518350397Sobrien 1518450397Sobrien * call.c class.c cp-tree.h decl.c decl2.c error.c lex.c method.c 1518518334Speter pt.c ptree.c tree.def: Remove all traces of UNINSTANTIATED_P_TYPE. 1518650397Sobrien 1518718334SpeterTue Feb 20 18:21:51 1996 Jason Merrill <jason@yorick.cygnus.com> 1518850397Sobrien 1518950397Sobrien * call.c class.c cp-tree.h cvt.c decl.c decl2.c error.c expr.c 1519018334Speter init.c lex.c method.c parse.y pt.c repo.c search.c spew.c tree.c 1519150397Sobrien tree.def typeck.c typeck2.c xref.c: Massive, systemic changes for 1519250397Sobrien the new template implementation. 1519318334Speter 1519450397SobrienTue Feb 20 17:14:29 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1519518334Speter 1519650397Sobrien * decl2.c (check_cp_case_value): Use STRIP_TYPE_NOPS. 1519750397Sobrien 1519850397SobrienThu Feb 15 18:44:42 1996 Mike Stump <mrs@cygnus.com> 1519918334Speter 1520050397Sobrien * decl.c (cp_finish_decl): Delay emitting the debug information for 1520150397Sobrien a typedef that has been installed as the canonical typedef, if the 1520250397Sobrien type has not yet been defined. 1520318334Speter 1520450397SobrienThu Feb 15 09:39:08 1996 Jason Merrill <jason@yorick.cygnus.com> 1520550397Sobrien 1520650397Sobrien * decl2.c (grokfield): Still call pop_nested_class for access decls. 1520750397Sobrien 1520850397SobrienWed Feb 14 17:30:04 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1520950397Sobrien 1521050397Sobrien * decl.c (lookup_label): Call label_rtx. 1521118334Speter 1521250397Sobrien * decl.c (make_binding_level): New function. 1521318334Speter (pushlevel, pushlevel_class): Call it instead of explicit 1521452284Sobrien duplicate calls to xmalloc. 1521550397Sobrien 1521650397Sobrien * decl.c (init_decl_processing): Delete useless build_pointer_type 1521750397Sobrien call. 1521850397Sobrien 1521950397Sobrien * decl.c (float_ftype_float, ldouble_ftype_ldouble): Add definitions. 1522050397Sobrien (sizet_ftype_string): Delete variable. 1522150397Sobrien (init_decl_processing): Add built-in functions fabsf, fabsl, 1522218334Speter sqrtf, sqrtl, sinf, sin, sinl, cosf, cos, cosl. New local 1522350397Sobrien variable strlen_ftype, used for strlen. 1522450397Sobrien 1522550397SobrienWed Feb 14 16:21:25 1996 Jason Merrill <jason@yorick.cygnus.com> 1522650397Sobrien 1522718334Speter * decl.c (push_to_top_level): Start from current_binding_level 1522850397Sobrien again for now; the stl hacks depend on g++ being broken in this 1522950397Sobrien way, and it'll be fixed in the template rewrite. 1523050397Sobrien 1523150397Sobrien * tree.def: Add USING_DECL. 1523218334Speter * decl2.c (do_class_using_decl): Implement. 1523350397Sobrien (grokfield): Pass access decls off to do_class_using_decl instead of 1523450397Sobrien grokdeclarator. 1523550397Sobrien * error.c (dump_decl): Handle USING_DECLs. 1523650397Sobrien * decl.c (grokdeclarator): Remove code for handling access decls. 1523718334Speter * class.c (finish_struct_1): Adjust accordingly, treat using-decls 1523850397Sobrien as access decls for now. 1523950397Sobrien (finish_struct): Don't check USING_DECLs for other uses of the name. 1524050397Sobrien 1524150397Sobrien * search.c (get_matching_virtual): Use cp_error_at. 1524218334Speter 1524350397SobrienWed Feb 14 10:36:58 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1524450397Sobrien 1524550397Sobrien * typeck.c (comptypes): Default COMP_TYPE_ATTRIBUTES to 1, to 1524650397Sobrien match c-typeck.c. 1524718334Speter (self_promoting_args_p): Move the check that TYPE is non-nil 1524850397Sobrien before trying to look at its main variant. 1524918334Speter (unsigned_type, signed_type): Add checking of DI/SI/HI/QI nodes. 1525052284Sobrien 1525150397Sobrien * cp-tree.h (DECL_WAITING_FRIENDS, SET_DECL_WAITING_FRIENDS): 1525250397Sobrien Delete macros. 1525350397Sobrien * init.c (xref_friend, embrace_waiting_friends): Delete functions. 1525450397Sobrien (do_friend): Delete call to xref_friend. 1525550397Sobrien * class.c (finish_struct_1): Delete call to embrace_waiting_friends. 1525650397Sobrien 1525750397Sobrien * typeck.c (convert_sequence): #if 0 unused function. 1525850397Sobrien 1525950397Sobrien * cp-tree.h (DECL_IN_MEMORY_P): New macro w/ the check that used to 1526018334Speter be in decl_in_memory_p. 1526150397Sobrien (decl_in_memory_p): Delete decl. 1526250397Sobrien * expr.c (decl_in_memory_p): Delete fn. 1526350397Sobrien * typeck.c (mark_addressable): Use DECL_IN_MEMORY_P. 1526450397Sobrien 1526550397Sobrien * decl.c (cp_finish_decl): Use DECL_IN_MEMORY_P. 1526618334Speter 1526750397SobrienTue Feb 13 12:51:21 1996 Jason Merrill <jason@yorick.cygnus.com> 1526850397Sobrien 1526950397Sobrien * class.c (finish_struct_1): Check for a pure-specifier on a 1527050397Sobrien non-virtual function here. 1527150397Sobrien 1527250397Sobrien * decl2.c (grok_function_init): Don't check whether the function 1527350397Sobrien is virtual here. 1527450397Sobrien (grokfield): Don't call check_for_override here. 1527550397Sobrien 1527650397Sobrien * decl.c (push_to_top_level): Start from inner_binding_level, 1527750397Sobrien check class_shadowed in class levels. 1527850397Sobrien 1527950397SobrienMon Feb 12 17:46:59 1996 Mike Stump <mrs@cygnus.com> 1528050397Sobrien 1528152284Sobrien * decl.c (resume_level): Ignore things that don't have names, instead 1528218334Speter of core dumping. 1528350397Sobrien 1528418334SpeterMon Feb 12 15:47:44 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1528550397Sobrien 1528618334Speter * decl2.c (grokfield): Set DECL_VINDEX properly for FUNCTION_DECLs. 1528750397Sobrien 1528818334SpeterSat Feb 10 17:59:45 1996 Jason Merrill <jason@yorick.cygnus.com> 1528950397Sobrien 1529050397Sobrien * class.c (finish_struct_1): Set DECL_VINDEX properly on a 1529150397Sobrien synthesized dtor. 1529250397Sobrien 1529350397Sobrien * parse.y (complete_type_name): Bind global_scope earlier. 1529450397Sobrien (complex_type_name): Likewise. 1529550397Sobrien (qualified_type_name): Remove. 1529652284Sobrien 1529750397SobrienThu Feb 8 15:15:14 1996 Jason Merrill <jason@yorick.cygnus.com> 1529850397Sobrien 1529950397Sobrien * decl.c (grokfndecl): Move code that looks for virtuals in base 1530050397Sobrien classes... 1530150397Sobrien * class.c (check_for_override): ... to a new function. 1530250397Sobrien (finish_struct_1): Call it. 1530318334Speter 1530450397Sobrien * cp-tree.h: Declare warn_sign_compare. 1530550397Sobrien 1530650397Sobrien * typeck.c (build_binary_op_nodefault): Check warn_sign_compare 1530718334Speter rather than extra_warnings to decide whether to warn about 1530850397Sobrien comparison of signed and unsigned. 1530950397Sobrien 1531050397Sobrien * decl2.c (lang_decode_option): Handle warn_sign_compare. -Wall 1531150397Sobrien implies -Wsign-compare. -Wall doesn't imply -W. 1531250397Sobrien 1531318334SpeterWed Feb 7 15:27:57 1996 Mike Stump <mrs@cygnus.com> 1531450397Sobrien 1531550397Sobrien * typeck.c (build_component_ref): Fix to handle anon unions in base 1531618334Speter classes as well. 1531750397Sobrien 1531818334SpeterWed Feb 7 14:29:12 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1531950397Sobrien 1532050397Sobrien * class.c (resolves_to_fixed_type_p): Delete code dealing with 1532150397Sobrien a WITH_CLEANUP_EXPR, since we don't generate them any more. 1532250397Sobrien * cvt.c (build_up_reference): Likewise. 1532318334Speter * decl.c (grok_reference_init): Likewise. 1532450397Sobrien (cp_finish_decl): Likewise. 1532518334Speter * error.c (dump_expr): Likewise. 1532650397Sobrien * tree.c (real_lvalue_p): Likewise. 1532718334Speter (lvalue_p): Likewise. 1532850397Sobrien (build_cplus_new): Likewise. 1532918334Speter (unsave_expr_now): Likewise. 1533050397Sobrien * typeck.c (unary_complex_lvalue, build_modify_expr, 1533150397Sobrien c_expand_return): Likewise. 1533250397Sobrien 1533318334SpeterTue Feb 6 13:39:22 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1533450397Sobrien 1533518334Speter Make the C++ front-end pay attention to attributes for structures. 1533650397Sobrien * class.c (finish_struct): New argument ATTRIBUTES, passed down into 1533718334Speter finish_struct_1. 1533850397Sobrien (finish_struct_1): New argument ATTRIBUTES; call cplus_decl_attributes. 1533918334Speter Take out old round_up_size use and setting the DECL_ALIGN possibly 1534050397Sobrien using it. Take out setting of TYPE_ALIGN to round_up_size, which 1534118334Speter can override what the attribute set. 1534250397Sobrien * cp-tree.h (finish_struct): Update prototype. 1534350397Sobrien * parse.y (template_instantiate_once): Pass a NULL_TREE for the 1534450397Sobrien attributes to finish_struct. 1534518334Speter (structsp): For a CLASS decl, add maybe_attribute to rule and pass that 1534650397Sobrien value down into finish_struct. 1534750397Sobrien * Makefile.in (CONFLICTS): Switch to 7 shift/reduce conflicts. 1534818334Speter 1534950397SobrienTue Feb 6 13:12:15 1996 Per Bothner <bothner@kalessin.cygnus.com> 1535050397Sobrien 1535150397Sobrien * decl.c (poplevel): Re-word dead for local handling. 1535250397Sobrien (pushdecl): Remove useless DECL_DEAD_FOR_LOCAL test. 1535350397Sobrien (cp_finish_decl): If is_for_scope, check for duplicates so 1535418334Speter we can disable is_for_scope. Otherwise, preserve_temp_slots. 1535550397Sobrien 1535618334Speter * lex.c (do_identifier): Use global binding in preference of 1535750397Sobrien dead for local variable. 1535850397Sobrien 1535950397SobrienMon Feb 5 17:46:46 1996 Mike Stump <mrs@cygnus.com> 1536018334Speter 1536150397Sobrien * init.c (initializing_context): Handle anon union changes, the 1536250397Sobrien context where fields of anon unions can be initialized now has to be 1536350397Sobrien found by walking up the TYPE_CONTEXT chain. 1536450397Sobrien 1536550397SobrienFri Feb 2 14:54:04 1996 Doug Evans <dje@charmed.cygnus.com> 1536650397Sobrien 1536750397Sobrien * decl.c (start_decl): #ifdef out code to set DECL_COMMON 1536850397Sobrien if ASM_OUTPUT{,_ALIGNED}_BSS is defined. 1536950397Sobrien (obscure_complex_init): If bss is supported, always set 1537018334Speter DECL_INITIAL to error_mark_node. 1537150397Sobrien 1537218334SpeterThu Feb 1 16:19:56 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1537350397Sobrien 1537418334Speter * init.c (is_friend): Make sure there's a context before we see if 1537550397Sobrien it's an aggr type. 1537650397Sobrien 1537750397SobrienThu Feb 1 15:44:53 1996 Mike Stump <mrs@cygnus.com> 1537850397Sobrien 1537950397Sobrien * init.c (is_friend): Classes are not friendly with nested classes. 1538018334Speter 1538150397SobrienThu Feb 1 15:27:37 1996 Doug Evans <dje@charmed.cygnus.com> 1538250397Sobrien 1538350397Sobrien * lex.c (check_newline): Pass last character read to HANDLE_PRAGMA, 1538450397Sobrien and record its result. 1538550397Sobrien 1538618334SpeterThu Feb 1 09:27:01 1996 Mike Stump <mrs@cygnus.com> 1538750397Sobrien 1538818334Speter * class.c (finish_struct_anon): Switch around code to not move anon 1538950397Sobrien union elements around, nor mess up their contexts, nor offsets, 1539050397Sobrien instead we now build up the right number of COMPONENT_REFs for all 1539150397Sobrien the anon unions that may be present at build_component_ref time. 1539250397Sobrien * typeck.c (lookup_anon_field): New routine to handle field lookup 1539350397Sobrien on fields without names. We find them, based upon their unique type 1539418334Speter instead. 1539550397Sobrien * typeck.c (build_component_ref): Allow FIELD_DECL components. 1539618334Speter Handle finding components in anonymous unions, and ensure that a 1539750397Sobrien COMPONENT_REF is built for each level as necessary. 1539818334Speter 1539950397SobrienTue Jan 30 18:18:23 1996 Mike Stump <mrs@cygnus.com> 1540050397Sobrien 1540118334Speter * cvt.c (build_up_reference): Make the INDIRECT_BIND case come after 1540250397Sobrien code that ensures that copy ctors are used if appropriate. 1540350397Sobrien 1540450397SobrienTue Jan 30 17:35:14 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1540518334Speter 1540650397Sobrien * init.c (build_vec_delete): Only give an error if base isn't an 1540750397Sobrien error_mark_node. 1540818334Speter 1540950397SobrienMon Jan 29 17:09:06 1996 Mike Stump <mrs@cygnus.com> 1541018334Speter 1541150397Sobrien * spew.c (do_aggr): `new struct S;' isn't a forward declaration. 1541250397Sobrien (yylex): If we see `new', keep slurping. 1541318334Speter 1541450397SobrienThu Jan 25 18:31:36 1996 Mike Stump <mrs@cygnus.com> 1541518334Speter 1541650397Sobrien * class.c (finish_struct_1): Move code for handling anon unions... 1541718334Speter (finish_struct_anon): to here. Fixup so that we do the offset 1541850397Sobrien calculations right, and so that the fields are physically moved to 1541918334Speter the containers's chain. 1542050397Sobrien 1542150397SobrienThu Jan 25 18:27:37 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1542218334Speter 1542350397Sobrien * decl.c (grokdeclarator): Avoid trying to get an operand off an 1542450397Sobrien identifier node. 1542550397Sobrien 1542618334SpeterWed Jan 24 11:25:30 1996 Jim Wilson <wilson@chestnut.cygnus.com> 1542750397Sobrien 1542818334Speter * typeck.c (pointer_int_sum): Use TYPE_PRECISION (sizetype) not 1542950397Sobrien POINTER_SIZE to agree with expr.c. 1543050397Sobrien 1543150397SobrienThu Jan 25 13:01:23 1996 Mike Stump <mrs@cygnus.com> 1543250397Sobrien 1543318334Speter * search.c (lookup_field): Don't report ambiguities if protect is 0, 1543450397Sobrien instead return NULL_TREE. 1543518334Speter 1543650397SobrienWed Jan 24 13:01:26 1996 Mike Stump <mrs@cygnus.com> 1543750397Sobrien 1543850397Sobrien * class.c (finish_struct_1): Call warn_hidden if we want warnings 1543918334Speter about overloaded virtual functions. 1544050397Sobrien (warn_hidden): New routine to warn of virtual functions that are 1544150397Sobrien hidden by other virtual functions, that are not overridden. 1544218334Speter (get_basefndecls): New routine, used by warn_hidden. 1544350397Sobrien (mark_overriders): New routine, used by warn_hidden. 1544418334Speter * search.c (get_matching_virtual): Remove old warning that just 1544550397Sobrien isn't very useful. 1544650397Sobrien 1544718334SpeterTue Jan 23 12:26:10 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1544850397Sobrien 1544918334Speter * decl.c (output_builtin_tdesc_entries): #if 0 the function definition. 1545050397Sobrien 1545150397Sobrien * typeck.c (null_ptr_cst_p): Delete unused fn. 1545250397Sobrien (build_function_call_maybe): Delete unused fn. 1545350397Sobrien 1545450397Sobrien * expr.c (extract_init): #if 0 the code after unconditional return 0 1545550397Sobrien for now. 1545650397Sobrien 1545750397Sobrien Delete old cadillac code. 1545850397Sobrien * edsel.c: Remove file. 1545950397Sobrien * Make-lang.in (CXX_SRCS): Take edsel.c off the list. 1546050397Sobrien * Makefile.in (CXX_OBJS): Delete edsel.o. 1546150397Sobrien (edsel.o): Delete rule. 1546218334Speter * cp-tree.h (flag_cadillac): Delete var decl. 1546350397Sobrien * lang-options.h: Delete "-fcadillac" and "-fno-cadillac". 1546418334Speter * decl2.c (flag_cadillac): Delete var definition. 1546550397Sobrien (lang_decode_option): Delete handling of -fcadillac and -fno-cadillac. 1546650397Sobrien (grokfield): Delete code depending on flag_cadillac. 1546750397Sobrien (finish_anon_union): Likewise. 1546850397Sobrien * class.c (finish_struct_1): Likewise. 1546950397Sobrien (pushclass): Likewise. 1547050397Sobrien (popclass): Likewise. 1547150397Sobrien (push_lang_context): Likewise. 1547250397Sobrien (pop_lang_context): Likewise. 1547350397Sobrien * decl.c (init_decl_processing): Likewise. 1547450397Sobrien (start_decl): Likewise. 1547550397Sobrien (cp_finish_decl): Likewise. 1547650397Sobrien (xref_tag): Likewise. 1547750397Sobrien (finish_enum): Likewise. 1547818334Speter (start_function): Likewise. 1547950397Sobrien (finish_function): Likewise. 1548018334Speter (finish_stmt): Likewise. 1548150397Sobrien * lex.c (lang_init): Likewise. 1548250397Sobrien (check_newline): Likewise. 1548350397Sobrien 1548450397Sobrien * lex.c (do_pending_inlines): Delete synthesized method kludge. 1548518334Speter 1548650397Sobrien Delete defunct, ancient garbage collection implementation. 1548750397Sobrien * rtti.c: New file with the RTTI stuff from gc.c. 1548818334Speter * gc.c: Removed file (moved the remaining stuff into rtti.c). 1548950397Sobrien * Makefile.in (CXX_OBJS): Replace gc.o with rtti.o. 1549018334Speter (rtti.o): New rule, replacing gc.o. 1549150397Sobrien * Make-lang.in (CXX_SRCS): Replace gc.c with rtti.c. 1549250397Sobrien * cp-tree.h: Delete gc-related fn decls. 1549350397Sobrien (DECL_GC_OFFSET): Delete macro. 1549418334Speter (flag_gc): Delete extern decl. 1549550397Sobrien * decl.c (current_function_obstack_index): Delete var decl. 1549618334Speter (current_function_obstack_usage): Delete var decl. 1549750397Sobrien (start_function): Delete clearing of current_function_obstack_index 1549850397Sobrien and current_function_obstack_usage. 1549950397Sobrien (init_decl_processing): Delete code relying on -fgc. 1550050397Sobrien Delete call to init_gc_processing. 1550118334Speter (cp_finish_decl): Delete calls to build_static_gc_entry and 1550250397Sobrien type_needs_gc_entry. Delete gc code setting DECL_GC_OFFSET. 1550318334Speter (store_parm_decls): Delete -fgc calls to cp_expand_decl_cleanup 1550450397Sobrien and to expand_expr of a __gc_main call. 1550550397Sobrien (maybe_gc_cleanup): Delete var decl. 1550618334Speter (finish_function): Delete call to expand_gc_prologue_and_epilogue. 1550750397Sobrien * decl2.c (flag_gc): Delete var decl. 1550818334Speter (lang_f_options): Delete offering of -fgc. 1550950397Sobrien (lang_decode_option): Delete -fgc and -fno-gc handling. 1551018334Speter (get_temp_regvar): Delete gc code. 1551150397Sobrien * init.c (build_new): Delete gc code. 1551218334Speter * lex.c (init_lex): Delete checking of flag_gc. 1551350397Sobrien 1551450397Sobrien * typeck.c (convert_arguments): Delete gc code. 1551518334Speter (build_component_addr): Delete -fgc warning. 1551650397Sobrien (build_modify_expr): Delete gc code. 1551718334Speter 1551850397Sobrien * decl2.c (build_push_scope): Delete fn. 1551950397Sobrien * cp-tree.h (build_push_scope): Delete decl. 1552050397Sobrien 1552150397Sobrien * search.c (clear_search_slots): Delete fn. 1552250397Sobrien * cp-tree.h (clear_search_slots): Delete decl. 1552350397Sobrien 1552450397Sobrien * search.c (tree_needs_constructor_p): Delete fn. 1552550397Sobrien * cp-tree.h (tree_needs_constructor_p): Delete decl. 1552650397Sobrien 1552750397Sobrien * tree.c (id_cmp): Delete fn. 1552818334Speter 1552950397Sobrien * tree.c (set_fnaddr_from_vtable_entry): Delete fn. 1553018334Speter * cp-tree.h (set_fnaddr_from_vtable_entry): Delete decl. 1553150397Sobrien 1553250397Sobrien * tree.c (decl_value_member): Delete fn. 1553318334Speter * cp-tree.h (decl_value_member): Delete decl. 1553450397Sobrien 1553518334Speter * tree.c (list_hash_lookup_or_cons): Delete fn. 1553650397Sobrien * cp-tree.h (list_hash_lookup_or_cons): Delete decl. 1553750397Sobrien 1553818334Speter * method.c (cplus_exception_name): Delete fn. 1553950397Sobrien (EXCEPTION_NAME_{PREFIX, LENGTH}): Delete macros. 1554018334Speter 1554150397Sobrien * spew.c (shift_tokens): Delete fn. 1554250397Sobrien 1554318334SpeterMon Jan 22 17:49:33 1996 Jason Merrill <jason@yorick.cygnus.com> 1554450397Sobrien 1554518334Speter * except.c (init_exception_processing): Pass 1 to needs_pop in calls 1554650397Sobrien to cp_finish_decl. 1554750397Sobrien * parse.y: Likewise. 1554850397Sobrien 1554950397SobrienMon Jan 22 17:34:29 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1555018334Speter 1555150397Sobrien * tree.c (build_cplus_staticfn_type): Delete function definition; 1555218334Speter never used. 1555350397Sobrien * cp-tree.h (build_cplus_staticfn_type): Delete decl. 1555450397Sobrien 1555518334Speter * tree.c (virtual_member): Delete function definition; never used. 1555650397Sobrien * cp-tree.h (virtual_member): Delete decl. 1555718334Speter 1555850397SobrienFri Jan 19 18:03:14 1996 Mike Stump <mrs@cygnus.com> 1555950397Sobrien 1556018334Speter * typeck.c (build_component_ref): Handle getting vbase pointers 1556150397Sobrien out of complex multiple inheritance better. 1556218334Speter 1556350397SobrienFri Jan 19 16:27:40 1996 Mike Stump <mrs@cygnus.com> 1556450397Sobrien 1556518334Speter * typeck.c (build_object_ref): Make sure we use the real type, not 1556650397Sobrien any reference type. 1556718334Speter 1556850397SobrienFri Jan 19 16:01:47 1996 Mike Stump <mrs@cygnus.com> 1556950397Sobrien 1557050397Sobrien * tree.c (build_exception_variant): Don't create new types if we 1557150397Sobrien don't have to, also build new types on the right obstack. 1557250397Sobrien 1557350397SobrienFri Jan 19 14:09:44 1996 Jason Merrill <jason@yorick.cygnus.com> 1557450397Sobrien 1557550397Sobrien * decl.c (store_bindings): Split out from push_to_top_level. 1557618334Speter (push_to_top_level): Call it for b->type_shadowed on class binding 1557750397Sobrien levels. 1557818334Speter 1557950397SobrienFri Jan 19 13:53:14 1996 Mike Stump <mrs@cygnus.com> 1558018334Speter 1558150397Sobrien * search.c (expand_upcast_fixups): Fix so that offsets stored in 1558250397Sobrien vbase_offsets are always right. Fixes a problem where virtual base 1558318334Speter upcasting and downcasting could be wrong during conversions on this 1558450397Sobrien during virtual function dispatch at ctor/dtor time when dynamic 1558550397Sobrien vtable fixups for deltas are needed. This only sounds easier than 1558618334Speter it is. :-) 1558750397Sobrien (fixup_virtual_upcast_offsets): Change to reflect new calling 1558850397Sobrien convention for expand_upcast_fixups. 1558950397Sobrien 1559050397SobrienFri Jan 19 12:23:08 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1559150397Sobrien 1559250397Sobrien * decl2.c (grokbitfield): Strip the NOPs from WIDTH before we 1559350397Sobrien check that it's usable as the bitfield width. 1559450397Sobrien 1559550397SobrienWed Jan 17 21:22:40 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1559650397Sobrien 1559750397Sobrien * decl2.c (grokfield): Call cplus_decl_attributes with the attrlist. 1559850397Sobrien Pass a null tree to grokdeclarator for its ATTRLIST arg, since it's 1559950397Sobrien only ever used for functions in it. 1560050397Sobrien 1560150397SobrienWed Jan 17 12:10:38 1996 Jason Merrill <jason@yorick.cygnus.com> 1560250397Sobrien 1560350397Sobrien * parse.y (qualified_type_name): Use the TYPE_DECL, not the type. 1560450397Sobrien (nested_type): Likewise. 1560550397Sobrien (nested_name_specifier): Use lastiddecl. 1560650397Sobrien 1560750397Sobrien * decl.c (grokdeclarator): Adjust accordingly. 1560850397Sobrien * init.c (expand_member_init): Likewise. 1560950397Sobrien * parse.y (base_class): Likewise. 1561050397Sobrien * typeck2.c (build_functional_cast): Likewise. 1561150397Sobrien 1561250397Sobrien * typeck2.c (build_functional_cast): Fill in name after we've 1561318334Speter checked for non-aggr type. 1561450397Sobrien 1561518334SpeterWed Jan 17 10:18:01 1996 Mike Stump <mrs@cygnus.com> 1561650397Sobrien 1561750397Sobrien * decl2.c (warn_pointer_arith): Default to on. 1561850397Sobrien 1561950397SobrienTue Jan 16 12:45:38 1996 Jason Merrill <jason@yorick.cygnus.com> 1562050397Sobrien 1562150397Sobrien * lex.c (is_rid): New function. 1562250397Sobrien * decl.c (grokdeclarator): Diagnose reserved words used as 1562350397Sobrien declarator-ids. 1562450397Sobrien 1562550397SobrienTue Jan 16 11:39:40 1996 Jason Merrill <jason@yorick.cygnus.com> 1562650397Sobrien 1562750397Sobrien * tree.c (get_decl_list): Don't lose cv-quals. 1562850397Sobrien 1562950397Sobrien * decl.c (grokdeclarator): Fix SCOPE_REF handling and diagnose 1563050397Sobrien typespecs used as declarator-ids. 1563150397Sobrien 1563250397SobrienTue Jan 16 11:09:42 1996 Mike Stump <mrs@cygnus.com> 1563350397Sobrien 1563450397Sobrien * decl.c (poplevel): When poping a level, don't give a warning for 1563550397Sobrien any subblocks that already exist. 1563650397Sobrien 1563750397SobrienTue Jan 16 00:25:33 1996 Jason Merrill <jason@yorick.cygnus.com> 1563850397Sobrien 1563950397Sobrien * typeck.c (build_object_ref): Finish what I started. 1564050397Sobrien 1564150397Sobrien * parse.y (qualified_type_name): Don't check TYPE_BUILT_IN. 1564250397Sobrien 1564318334Speter * decl2.c (constructor_name_full): Handle TEMPLATE_TYPE_PARMs. 1564450397Sobrien 1564550397Sobrien * decl.c (grokdeclarator): Also accept TEMPLATE_TYPE_PARM as a 1564650397Sobrien scope. 1564718334Speter 1564850397SobrienMon Jan 15 16:19:32 1996 Jason Merrill <jason@yorick.cygnus.com> 1564950397Sobrien 1565018334Speter * decl.c (xref_tag): Handle passing a type in directly. 1565150397Sobrien 1565250397Sobrien * parse.y (qualified_type_name): Pull out the type. 1565318334Speter (nested_type): Likewise. 1565450397Sobrien Take types directly instead of as identifiers. 1565550397Sobrien * call.c (build_scoped_method_call): Take types directly instead of 1565618334Speter as identifiers. 1565750397Sobrien * decl.c (xref_basetypes): Likewise. 1565818334Speter * init.c (expand_member_init): Likewise. 1565950397Sobrien (build_member_call): Likewise. 1566050397Sobrien (build_offset_ref): Likewise. 1566118334Speter * typeck2.c (build_scoped_ref): Likewise, remove bogus code. 1566250397Sobrien * method.c (do_build_assign_ref): Likewise. 1566350397Sobrien * decl.c (grokdeclarator): Handle a type appearing as the 1566418334Speter declarator-id for constructors. 1566550397Sobrien * method.c (do_build_copy_constructor): current_base_init_list now 1566650397Sobrien uses the types directly, not their names. 1566718334Speter * init.c (sort_base_init): Likewise. 1566850397Sobrien (expand_member_init): Likewise. 1566950397Sobrien * init.c (is_aggr_type): New function, like is_aggr_typedef. 1567018334Speter 1567150397SobrienMon Jan 15 08:45:01 1996 Jeffrey A Law <law@cygnus.com> 1567218334Speter 1567350397Sobrien * tree.c (layout_basetypes): Call build_lang_field_decl instead 1567418334Speter of build_lang_decl if first arg is a FIELD_DECL. 1567550397Sobrien 1567650397SobrienThu Jan 11 14:55:07 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1567750397Sobrien 1567818334Speter * decl.c (cp_finish_decl): Only clear TREE_USED if DECL_NAME is 1567950397Sobrien non-empty. 1568018334Speter * except.c (expand_start_catch_block): Set TREE_USED to avoid 1568150397Sobrien warnings about the catch handler. 1568250397Sobrien 1568350397SobrienMon Jan 8 17:35:12 1996 Jason Merrill <jason@yorick.cygnus.com> 1568418334Speter 1568550397Sobrien * typeck.c (build_modify_expr): Use a COMPOUND_EXPR instead of 1568650397Sobrien expand_target_expr. 1568718334Speter 1568850397SobrienThu Jan 4 12:30:32 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 1568918334Speter 1569050397Sobrien Fix access control to use trees rather than integers. 1569150397Sobrien * class.c (access_{default, public, protected, private, 1569218334Speter default_virtual, public_virtual, private_virtual}_node): Add 1569350397Sobrien definitions. 1569418334Speter (init_class_processing): Do creation of those nodes. 1569550397Sobrien * cp-tree.h (access_type): Delete enum decl. 1569650397Sobrien (access_{default, public, protected, private, default_virtual, 1569718334Speter public_virtual, private_virtual}_node): Add decls. 1569850397Sobrien (compute_access): Change return type. 1569918334Speter * search.c (compute_access): Have tree return type, instead of enum. 1570050397Sobrien (lookup_field): Declare THIS_V and NEW_V to be tree nodes. 1570150397Sobrien * lex.c (real_yylex): Use yylval.ttype for giving the value of the 1570218334Speter access_* node for each of RID_{PUBLIC, PRIVATE, PROTECTED}. 1570350397Sobrien * parse.y (VISSPEC): Make ttype rather than itype. 1570418334Speter (base_class_access_list): Likewise. 1570550397Sobrien * *.[cy]: Change all refs of `access_public' to `access_public_node', 1570650397Sobrien etc. 1570750397Sobrien * call.c (build_method_call): Make ACCESS be a tree. 1570818334Speter * class.c (alter_access, finish_struct_1, filter_struct): Likewise. 1570950397Sobrien * cvt.c (convert_to_aggr): Likewise. 1571018334Speter * init.c (build_offset_ref, resolve_offset_ref, build_delete): 1571150397Sobrien Likewise. 1571250397Sobrien * method.c (hack_identifier): Likewise. 1571350397Sobrien * typeck.c (build_component_ref_1, build_component_ref): ): Likewise. 1571450397Sobrien 1571550397SobrienThu Jan 4 11:02:20 1996 Mike Stump <mrs@cygnus.com> 1571650397Sobrien 1571750397Sobrien * typeck.c (pointer_int_sum, pointer_diff): Make code agree with C 1571850397Sobrien frontend, and make it more consistent with respect to 1571918334Speter warn_pointer_arith. 1572050397Sobrien 1572118334SpeterTue Jan 2 00:13:38 1996 Rusty Russell <rusty@adelaide.maptek.com.au> 1572250397Sobrien 1572350397Sobrien * decl.c (pushdecl): Check for duplicate parameter names. 1572418334Speter 1572550397SobrienWed Jan 3 09:25:48 1996 Mike Stump <mrs@cygnus.com> 1572618334Speter 1572750397Sobrien * decl.c (expand_static_init): Call assemble_external for atexit. 1572850397Sobrien 1572950397SobrienWed Jan 3 07:55:19 1996 Mike Stump <mrs@cygnus.com> 1573018334Speter 1573150397Sobrien * except.c (do_unwind): Remove some generated dead code. 1573218334Speter (eh_outer_context): New routine, factor out some common code from 1573350397Sobrien expand_builtin_throw and end_eh_unwinder. Add code to do return 1573450397Sobrien address masking for the PA. 1573550397Sobrien (expand_builtin_throw): Use eh_outer_context instead of open coding 1573618334Speter it here. 1573750397Sobrien (end_eh_unwinder): Likewise. 1573850397Sobrien 1573950397SobrienTue Jan 2 17:00:56 1996 Mike Stump <mrs@cygnus.com> 1574050397Sobrien 1574118334Speter * except.c (expand_throw): Call assemble_external for __empty, if we 1574250397Sobrien use it. 1574350397Sobrien 1574418334SpeterThu Dec 28 11:13:15 1995 Mike Stump <mrs@cygnus.com> 1574550397Sobrien 1574618334Speter * except.c (expand_builtin_throw): Use RETURN_ADDR_OFFSET instead of 1574750397Sobrien NORMAL_RETURN_ADDR_OFFSET. 1574818334Speter (end_eh_unwinder): Likewise. 1574950397Sobrien 1575018334SpeterWed Dec 27 22:18:16 1995 Mike Stump <mrs@cygnus.com> 1575150397Sobrien 1575250397Sobrien * gc.c (build_dynamic_cast): Make sure we don't cast away const 1575350397Sobrien when dealing with references, and make sure we handle dynamic 1575418334Speter casting to a cv qualified reference. 1575550397Sobrien 1575618334SpeterThu Dec 21 23:50:35 1995 Mike Stump <mrs@cygnus.com> 1575750397Sobrien 1575818334Speter * except.c (struct eh_context): New structure top hold eh context 1575950397Sobrien information. 1576050397Sobrien (push_eh_context): New routine. 1576118334Speter (pop_eh_context): Likewise. 1576250397Sobrien * decl.c (push_cp_function_context): Use them. 1576318334Speter (pop_cp_function_context): Likewise. 1576450397Sobrien 1576550397SobrienWed Dec 20 12:42:51 1995 Jason Merrill <jason@yorick.cygnus.com> 1576618334Speter 1576750397Sobrien * decl2.c (finish_file): Also prune uninteresting functions in the 1576818334Speter inline emission loop. 1576950397Sobrien 1577018334SpeterWed Dec 20 02:32:07 1995 Jeffrey A Law <law@cygnus.com> 1577150397Sobrien 1577218334Speter * sig.c (build_signature_table_constructor): Mark functions 1577350397Sobrien in the signature as referenced. 1577418334Speter 1577550397SobrienTue Dec 19 22:36:56 1995 Jason Merrill <jason@yorick.cygnus.com> 1577650397Sobrien 1577718334Speter * decl2.c (finish_file): Do all the vtable/synthesis stuff before 1577850397Sobrien the inline emission stuff. 1577918334Speter 1578050397SobrienMon Dec 18 15:51:33 1995 Jason Merrill <jason@yorick.cygnus.com> 1578118334Speter 1578250397Sobrien * cp-tree.h, decl2.c (flag_weak): New flag to control the use of 1578350397Sobrien weak symbols. 1578450397Sobrien * lang-options.h: Add -f{no-,}weak. 1578550397Sobrien * decl.c (init_decl_processing): If the target does not support weak 1578650397Sobrien symbols, don't use them. 1578750397Sobrien * decl2.c, pt.c: s/SUPPORTS_WEAK/flag_weak/. 1578850397Sobrien 1578950397SobrienSun Dec 17 21:13:23 1995 Rusty Russell <rusty@adelaide.maptek.com.au> 1579050397Sobrien 1579150397Sobrien * init.c (expand_member_init): warning for base init after members. 1579250397Sobrien 1579350397SobrienFri Dec 15 15:32:18 1995 Jason Merrill <jason@yorick.cygnus.com> 1579450397Sobrien 1579550397Sobrien * cvt.c (build_expr_type_conversion): Don't convert to a reference 1579650397Sobrien type. 1579750397Sobrien 1579850397SobrienThu Dec 14 16:05:58 1995 Mike Stump <mrs@cygnus.com> 1579950397Sobrien 1580018334Speter * method.c (report_type_mismatch): Improve wording for volatile 1580150397Sobrien mismatches. 1580218334Speter 1580350397SobrienThu Dec 14 14:16:26 1995 Mike Stump <mrs@cygnus.com> 1580450397Sobrien 1580518334Speter * init.c (expand_aggr_init_1): Use expand_aggr_init_1 instead of 1580650397Sobrien expand_assignment, as the later doesn't handle things that have 1580718334Speter copy constructors well. The compiler would do bitwise copying, 1580850397Sobrien instead of ctor calling in some cases. 1580950397Sobrien 1581050397SobrienWed Dec 13 17:05:54 1995 Paul Eggert <eggert@twinsun.com> 1581150397Sobrien 1581218334Speter * g++.c (my_strerror): Return "cannot access" if errno is 0. 1581350397Sobrien (pfatal_with_name, perror_exec): Don't assume that 1581418334Speter the returned value from my_strerror contains no '%'s. 1581550397Sobrien (concat): Remove. 1581650397Sobrien (sys_nerror): Declare only if HAVE_STRERROR is not defined. 1581718334Speter 1581850397SobrienWed Dec 13 16:22:38 1995 Jason Merrill <jason@yorick.cygnus.com> 1581918334Speter 1582050397Sobrien Lose CLASSTYPE_METHODS/DECL_NEXT_METHOD chain; make 1582150397Sobrien TYPE_METHODS/TREE_CHAIN mean what they used to. 1582250397Sobrien * decl2.c (constructor_name_full): Refer to CLASSTYPE_METHOD_VEC 1582350397Sobrien instead of TYPE_METHODS. 1582450397Sobrien * decl.c (duplicate_decls): Lose references to DECL_NEXT_METHOD. 1582550397Sobrien * tree.c (tree_copy_lang_decl_for_deferred_output): Likewise. 1582650397Sobrien * cp-tree.h (CLASSTYPE_METHODS): Lose. 1582750397Sobrien (CLASSTYPE_METHOD_VEC): Point to lang_spec->methods instead of 1582850397Sobrien TYPE_METHODS. 1582950397Sobrien (struct lang_decl): Lose next_method field. 1583050397Sobrien (DECL_NEXT_METHOD): Lose. 1583150397Sobrien * class.c (finish_struct_methods): Don't mess with TYPE_METHODS. 1583250397Sobrien (finish_struct): Just use TYPE_METHODS; we don't need fn_fields 1583350397Sobrien anymore. 1583450397Sobrien (finish_struct_methods): Don't mess with the TREE_CHAINs in 1583550397Sobrien fn_fields. 1583650397Sobrien 1583750397Sobrien * search.c (add_conversions): Don't use TREE_CHAIN to traverse method 1583850397Sobrien vector. 1583950397Sobrien 1584050397Sobrien * call.c (build_method_call): Synthesize here even when not inlining. 1584150397Sobrien * typeck.c (build_function_call_real): Likewise. 1584250397Sobrien 1584350397SobrienWed Dec 13 15:02:39 1995 Ian Lance Taylor <ian@cygnus.com> 1584418334Speter 1584550397Sobrien * cp/lex.c (check_newline): If DBX_DEBUGGING_INFO and write_symbols 1584618334Speter == DBX_DEBUG, call dbxout_start_new_source_file and 1584750397Sobrien dbxout_resume_previous_source_file when appropriate. 1584850397Sobrien 1584950397SobrienTue Dec 12 20:38:55 1995 Mike Stump <mrs@cygnus.com> 1585018334Speter 1585150397Sobrien * except.c (start_anon_func): Push to the top level. 1585218334Speter (end_anon_func): Pop from the top level. 1585350397Sobrien 1585418334SpeterMon Dec 11 18:56:14 1995 Mike Stump <mrs@cygnus.com> 1585550397Sobrien 1585618334Speter * cp-tree.h (build_cleanup): New routine to build cleanups. 1585750397Sobrien * decl.c (expand_static_init): Use build_cleanup to build a cleanup 1585818334Speter call at ctor time and use atexit to run it later. 1585950397Sobrien * decl2.c (build_cleanup): New routine, taken from finish_file. 1586018334Speter (finish_file): Use build_cleanup instead, and don't put function 1586150397Sobrien local statics in global dtor list. 1586250397Sobrien 1586350397SobrienWed Dec 6 14:34:29 1995 Mike Stump <mrs@cygnus.com> 1586450397Sobrien 1586550397Sobrien * except.c (expand_throw): Ensure that we have cleanups, if we try 1586650397Sobrien and expand cleanups. 1586750397Sobrien 1586818334SpeterWed Dec 6 11:48:21 1995 Mike Stump <mrs@cygnus.com> 1586950397Sobrien 1587018334Speter * except.c (expand_throw): Add logic to manage dynamic cleanups for 1587150397Sobrien the EH object. 1587250397Sobrien (expand_end_catch_block): Use the magic of expand_goto, instead of 1587318334Speter emit_jump so that we get the cleanup for any catch clause parameter 1587450397Sobrien and the cleanup for the exception object. Update to reflect label 1587518334Speter changes. 1587650397Sobrien (push_eh_cleanup): New routine to register a cleanup for an 1587750397Sobrien exception object. 1587850397Sobrien (empty_fndecl): Used to default cleanup actions to 1587918334Speter nothing. 1588050397Sobrien (init_exception_processing): Setup empty_fndecl. Setup 1588118334Speter saved_cleanup. 1588250397Sobrien (expand_start_catch_block): Update to reflect label changes. Call 1588350397Sobrien push_eh_object to register the cleanup for the EH object. 1588450397Sobrien (start_anon_func): New routine to start building lambda expressions 1588518334Speter from trees. 1588650397Sobrien (end_anon_func): New routine to end them. 1588718334Speter (struct labelNode): Change so that we can use tree labels, or rtx 1588850397Sobrien labels. 1588950397Sobrien (saved_cleanup): Object to check for dynamic cleanups for the 1589050397Sobrien exception handling object. 1589150397Sobrien (push_label_entry): Change so that we can use tree labels, or rtx 1589250397Sobrien labels. 1589350397Sobrien (pop_label_entry): Likewise. 1589418334Speter (top_label_entry): Likewise. 1589550397Sobrien (expand_start_all_catch): Use tree label instead of rtx label, so 1589618334Speter that we can get the magic of expand_goto. 1589750397Sobrien (expand_end_all_catch): Update to reflect label changes. 1589850397Sobrien 1589918334Speter * class.c (build_vfn_ref): Remove building_cleanup logic, as we now 1590050397Sobrien use UNSAVE_EXPRs. 1590118334Speter * typeck.c (get_member_function_from_ptrfunc): Remove remnants of 1590250397Sobrien building_cleanup logic, as we now use UNSAVE_EXPRs. 1590350397Sobrien * cp-tree.h (unsave_expr): Declare it. 1590418334Speter * decl.c (building_cleanup): Remove. 1590550397Sobrien (maybe_build_cleanup): Remove building_cleanup logic, and use 1590618334Speter UNSAVE_EXPR instead. 1590750397Sobrien 1590850397SobrienSun Dec 3 01:34:58 1995 Mike Stump <mrs@cygnus.com> 1590918334Speter 1591050397Sobrien * gc.c (build_t_desc): Update error message to say <typeinfo>. 1591118334Speter 1591250397SobrienThu Nov 30 12:30:05 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 1591352284Sobrien 1591450397Sobrien * decl.c (pushdecl): Only warn about shadowing a local variable if 1591550397Sobrien warn_shadow is true. 1591650397Sobrien 1591750397SobrienSun Nov 26 16:06:55 1995 Rusty Russell <rusty@adelaide.maptek.com.au> 1591818334Speter 1591950397Sobrien * typeck.c (build_binary_op_nodefault): Added warning about 1592018334Speter comparisons between different enum types with -Wall, unless 1592150397Sobrien -fenum-int-equiv set. 1592218334Speter 1592350397SobrienWed Nov 22 15:44:02 1995 Mike Stump <mrs@cygnus.com> 1592418334Speter 1592550397Sobrien * class.c (finish_struct_1): Skip down to the inner type in 1592650397Sobrien multidimensional arrays. Ensures ctors will be made for types that 1592718334Speter need constructing. 1592850397Sobrien 1592918334SpeterWed Nov 22 14:19:22 1995 Mike Stump <mrs@cygnus.com> 1593050397Sobrien 1593150397Sobrien * decl.c (last_dtor_insn): New to track the last compiler generated 1593218334Speter insn in a dtor. 1593350397Sobrien (store_parm_decls): Set it. 1593418334Speter (finish_function): Use it to see if the dtor is empty. Avoid doing 1593550397Sobrien vtable setup all the time, if we can. 1593650397Sobrien (struct cp_function): Add last_dtor_insn. 1593750397Sobrien (push_cp_function_context): Save it. 1593850397Sobrien (pop_cp_function_context): Restore it. 1593918334Speter 1594052284SobrienWed Nov 22 11:52:19 1995 Paul Russell <Rusty.Russell@adelaide.maptek.com.au> 1594118334Speter 1594250397Sobrien * typeck.c (build_unary_op): Set TREE_NO_UNUSED_WARNING to avoid 1594350397Sobrien warnings. 1594450397Sobrien 1594550397SobrienTue Nov 21 17:15:23 1995 Mike Stump <mrs@cygnus.com> 1594650397Sobrien 1594718334Speter * typeck.c (expand_target_expr): Make sure targets get put into the 1594850397Sobrien current temp_slot_level, so that the free_temp_slots call will reuse 1594918334Speter them. 1595050397Sobrien 1595152284SobrienTue Nov 21 13:32:03 1995 Mike Stump <mrs@cygnus.com> 1595250397Sobrien 1595350397Sobrien * class.c (finish_struct_1): Delay delta fixups for virtual bases 1595450397Sobrien until after we have done the hard virtuals, to avoid a bogus `every 1595550397Sobrien virtual function must have a unique final overrider' for virtual 1595650397Sobrien functions that are only overridden by hard virtuals. 1595750397Sobrien 1595850397SobrienThu Nov 9 13:35:30 1995 Jason Merrill <jason@yorick.cygnus.com> 1595950397Sobrien 1596050397Sobrien * pt.c (do_function_instantiation): Don't try to find a file-scope 1596150397Sobrien template for a member function. 1596250397Sobrien 1596350397SobrienTue Nov 14 06:20:35 1995 Mike Stump <mrs@cygnus.com> 1596450397Sobrien 1596550397Sobrien * g++.c (main): Add handling of -nodefaultlibs. 1596618334Speter 1596750397SobrienMon Nov 13 15:45:34 1995 Mike Stump <mrs@cygnus.com> 1596850397Sobrien 1596918334Speter * cp-tree.h (INDIRECT_BIND): Add a way for the frontend to 1597050397Sobrien distinguish between direct bindings of reference variables, and 1597150397Sobrien indirect bindings of reference variables. 1597218334Speter * cvt.c (build_up_reference): Use it. 1597350397Sobrien * typeck.c (convert_arguments): Use it to indicate this is an 1597418334Speter indirect binding. 1597550397Sobrien * decl.c (cp_finish_decl): Ensure that we reuse stack slots as fast 1597650397Sobrien as they are unused. 1597750397Sobrien (expand_static_init): Likewise. 1597818334Speter (cplus_expand_expr_stmt): Likewise. 1597950397Sobrien * decl2.c (finish_file): Likewise. 1598018334Speter * init.c (perform_member_init): Likewise. 1598150397Sobrien (emit_base_init): Likewise. 1598250397Sobrien (expand_aggr_vbase_init_1): Likewise. 1598318334Speter 1598450397SobrienFri Nov 10 09:18:09 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 1598518334Speter 1598650397Sobrien * decl.c (push_namespace): Rewrite to use build_lang_decl, so we 1598750397Sobrien get a DECL_LANG_SPECIFIC node. 1598850397Sobrien * cp-tree.h (lang_decl_flags): Add new member `level'. 1598950397Sobrien (NAMESPACE_LEVEL): Don't use decl.arguments, instead use the 1599050397Sobrien decl_flags level member. 1599150397Sobrien 1599252284SobrienMon Nov 6 18:36:13 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 1599350397Sobrien 1599418334Speter * call.c (build_method_call): Make sure instance has a 1599550397Sobrien TYPE_LANG_SPECIFIC node before we dive into it. 1599650397Sobrien 1599718334SpeterSat Nov 4 20:01:52 1995 Jason Molenda <crash@phydeaux.cygnus.com> 1599850397Sobrien 1599918334Speter * method.c (make_thunk): Use TREE_SET_CODE to set thunk's tree code. 1600050397Sobrien 1600150397SobrienThu Nov 2 17:56:57 1995 Mike Stump <mrs@cygnus.com> 1600250397Sobrien 1600350397Sobrien * decl.c (duplicate_decls): When smashing decls, smash staticness in 1600450397Sobrien the usual way. 1600550397Sobrien 1600650397SobrienThu Nov 2 16:44:02 1995 Mike Stump <mrs@cygnus.com> 1600750397Sobrien 1600850397Sobrien * decl.c (poplevel): Handle the merging of subblocks of cleanups 1600950397Sobrien when finishing blocks that have already been created (usually due to 1601050397Sobrien the fixup goto code). Fixes bad debugging information. 1601150397Sobrien 1601250397SobrienWed Nov 1 12:33:53 1995 Jason Merrill <jason@yorick.cygnus.com> 1601350397Sobrien 1601450397Sobrien * method.c (hack_identifier): Don't abort when we get a TREE_LIST 1601550397Sobrien that's not a list of overloaded functions. 1601650397Sobrien 1601750397SobrienWed Nov 1 11:38:58 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 1601850397Sobrien 1601950397Sobrien * decl2.c (mark_vtable_entries): Check DECL_LANG_SPECIFIC on fn 1602050397Sobrien before trying to use DECL_ABSTRACT_VIRTUAL_P. 1602150397Sobrien 1602250397SobrienTue Oct 31 11:56:55 1995 Jason Merrill <jason@yorick.cygnus.com> 1602350397Sobrien 1602450397Sobrien * decl2.c (mark_used): New function for hooking into setting of 1602550397Sobrien TREE_USED on decls. 1602650397Sobrien * call.c (build_method_call): Use it. 1602750397Sobrien * class.c (instantiate_type): Likewise. 1602818334Speter * init.c (build_offset_ref): Likewise. Don't call assemble_external 1602950397Sobrien for all like-named functions. 1603050397Sobrien * method.c (hack_identifier): Likewise. 1603152284Sobrien (emit_thunk): Don't call assemble_external. 1603250397Sobrien (make_thunk): Create thunk as a FUNCTION_DECL so that it 1603350397Sobrien gets the right mode and ENCODE_SECTION_INFO works. 1603450397Sobrien 1603550397Sobrien * parse.y: Use mark_used. Pass operator names to do_identifier. 1603650397Sobrien * lex.c (do_identifier): Handle operator names. 1603718334Speter 1603850397Sobrien * decl2.c (grokclassfn): Tweak __in_chrg attributes. 1603918334Speter 1604050397SobrienThu Oct 26 16:45:58 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 1604118334Speter 1604250397Sobrien * errfn.c: Include stdio.h. 1604318334Speter (cp_sprintf): Take out decl of sprintf, and cast sprintf to errorfn*. 1604450397Sobrien 1604550397SobrienWed Oct 25 18:58:41 1995 Mike Stump <mrs@cygnus.com> 1604618334Speter 1604750397Sobrien * typeck2.c (digest_init): Always convert initializers to the 1604818334Speter right type. 1604950397Sobrien 1605050397SobrienWed Oct 25 13:25:24 1995 Mike Stump <mrs@cygnus.com> 1605150397Sobrien 1605218334Speter * init.c (member_init_ok_or_else): Don't allow member initializers 1605350397Sobrien for indirect members, as it is invalid. 1605418334Speter 1605550397SobrienWed Oct 25 11:35:28 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 1605650397Sobrien 1605750397Sobrien * decl.c (grokdeclarator): Don't allow `friend signed ()'. 1605818334Speter 1605950397SobrienFri Oct 20 10:30:59 1995 Mike Stump <mrs@cygnus.com> 1606018334Speter 1606150397Sobrien * parse.y (for.init.statement): Catch compound statements inside for 1606250397Sobrien initializations, if we're being pedantic. 1606350397Sobrien 1606450397SobrienFri Oct 20 10:03:42 1995 Mike Stump <mrs@cygnus.com> 1606550397Sobrien 1606650397Sobrien * decl.c (lookup_tag): Return NULL_TREE if we don't find what we are 1606750397Sobrien looking for. 1606850397Sobrien 1606918334SpeterThu Oct 19 14:26:10 1995 Mike Stump <mrs@cygnus.com> 1607050397Sobrien 1607118334Speter * error.c (dump_expr): Don't core dump when a boolean expression is 1607250397Sobrien used as a default argument. 1607350397Sobrien 1607418334SpeterThu Oct 19 10:36:30 1995 Jason Merrill <jason@yorick.cygnus.com> 1607550397Sobrien 1607618334Speter * class.c (finish_struct_bits): Check aggregate_value_p instead of 1607750397Sobrien RETURN_IN_MEMORY. 1607850397Sobrien 1607950397SobrienWed Oct 18 18:12:32 1995 Jason Merrill <jason@yorick.cygnus.com> 1608018334Speter 1608150397Sobrien * class.c (finish_struct_bits): Also set TREE_ADDRESSABLE on a 1608218334Speter BLKmode type that would otherwise be returned in registers. 1608350397Sobrien 1608450397SobrienMon Oct 16 12:32:19 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 1608550397Sobrien 1608650397Sobrien * g++.c (WITHLIBC): New macro. 1608718334Speter (main): Declare saw_libc. Use WITHLIBC if `-lc' was used; set 1608850397Sobrien saw_libc and pass it at the end if it was set. 1608918334Speter 1609050397SobrienWed Oct 11 16:30:34 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 1609150397Sobrien 1609218334Speter * parse.y (fn.def1): Call split_specs_attrs in 1609350397Sobrien declmods notype_declarator case. 1609418334Speter