ChangeLog revision 70635
1193323SedFri Jun 9 17:55:08 2000 Jeffrey A Law (law@cygnus.com) 2193323Sed 3193323Sed 2000-02-07 <loewis@informatik.hu-berlin.de> 4193323Sed * decl2.c (import_export_decl): vlist ctor wrappers follow virtual 5193323Sed methods in their interface. 6193323Sed (vlist_ctor_wrapper_p): new function. 7193323Sed (finish_vlist_ctor_wrapper): likewise. 8193323Sed 9193323Sed 2000-02-06 <loewis@informatik.hu-berlin.de> 10193323Sed * decl2.c (maybe_retrofit_in_chrg): Move call to 11193323Sed make_vlist_ctor_wrapper from here ... 12193323Sed * decl.c (grok_ctor_properties): ... to here. 13193323Sed * decl.c (grokfndecl): ... and here. 14193323Sed * init.c (no_vlist_base_init): Declare unseen Vlist ctor weak. 15193323Sed * decl2.c (maybe_retrofit_in_chrg): Be sorry about varargs ctors. 16193323Sed 17193323Sed2000-03-08 Nathan Sidwell <nathan@codesourcery.com> 18206083Srdivacky 19206083Srdivacky * exception.cc (__cp_pop_exception): Cleanup the original object. 20206083Srdivacky 21206083Srdivacky1999-11-13 Jason Merrill <jason@yorick.cygnus.com> 22193323Sed 23193323Sed * rtti.c (get_tinfo_fn_unused): Split out from get_tinfo_fn. 24193323Sed * class.c (set_rtti_entry): Use it. 25193323Sed 26193323SedWed Apr 12 00:45:49 2000 Jeffrey A Law (law@cygnus.com) 27193323Sed 28193323Sed 2000-02-03 <loewis@informatik.hu-berlin.de> 29193323Sed * call.c (add_function_candidate): Do not add vlist ctor into 30193323Sed candidates in compatibility mode. 31193323Sed (build_user_type_conversion_1): Add LOOKUP_HAS_VLIST when adding 32193323Sed vlist. 33193323Sed (convert_like): Likewise. 34193323Sed (build_over_call): Skip vlist only if it is mentioned in flags. 35193323Sed (build_new_method_call): Do not add vlist in compatibility mode, 36193323Sed except for dtors. 37193323Sed * cp-tree.h (flag_vtable_thunks): Has now four possible values. 38193323Sed (DECL_VLIST_CTOR_WRAPPER_P, DECL_VLIST_CTOR_WRAPPED): New macros. 39193323Sed (in_charge_identifier): Declare external. 40193323Sed * decl.c (xref_basetypes): Check for vtable_thunks >=2. 41193323Sed (finish_dtor): Use bit 2 of in_chrg. 42204961Srdivacky (finish_function): Do not finish vlist ctor wrappers. 43193323Sed * decl2.c (flag_vtable_thunks_compat): New variable. 44193323Sed (lang_decode_option): Set it accordingly. 45193323Sed (maybe_retrofit_in_chrg): Call make_vlist_ctor_wrapper. 46204961Srdivacky * init.c (build_base_dtor_call): Pass 4 in in_chrg. 47193323Sed (no_vlist_base_init): New function. 48193323Sed (expand_default_init): Do not pass vlist in compatibility mode. 49193323Sed Try to call old base ctor if new one was not generated. 50204961Srdivacky (build_new_1): Do not pass vlist in compatibility mode. 51193323Sed * method.c (get_id_2): Do not put _Vlist into dtor name in 52193323Sed compatibility mode. 53193323Sed (make_vlist_ctor_wrapper, emit_vlist_ctor_wrapper): New functions. 54204961Srdivacky (synthesize_method): Call emit_vlist_ctor_wrapper. 55193323Sed * pt.c (instantiate_class_template): Check for vtable_thunks >=2. 56193323Sed 57193323Sed Sat Nov 13 15:48:59 1999 H.J. Lu <hjl@gnu.org> 58204961Srdivacky * init.c (finish_dtor): Call mark_all_temps_used () before 59193323Sed declaring vlist. 60193323Sed 61193323Sed Tue Nov 9 15:01:57 1999 H.J. Lu <hjl@gnu.org> 62204961Srdivacky * init.c (construct_virtual_bases): Update. 63193323Sed (expand_cleanup_for_base): Update. 64193323Sed 65193323Sed Tue Nov 9 08:25:04 1999 H.J. Lu <hjl@gnu.org> 66193323Sed * init.c (construct_virtual_bases): Update. 67193323Sed (expand_cleanup_for_base): Take vlist parameter. 68204961Srdivacky (emit_base_init): Pass vlist to expand_cleanup_for_base. 69193323Sed (construct_virtual_bases): Likewise. 70193323Sed 71193323Sed 1999-05-02 Martin von L�wis <loewis@informatik.hu-berlin.de> 72193323Sed * class.c (prepare_ctor_vtable, finish_one_ctor_vtable, 73193323Sed prepend_ctor_vfields_for_vbase, finish_ctor_vtables_for_vbases, 74193323Sed finish_ctor_vtables_1, prepend_vbase_vfields, 75193323Sed finish_ctor_vtables): New functions. 76193323Sed (finish_struct_1): Call finish_ctor_vtables. 77193323Sed * cp-tree.h (TYPE_USES_PVBASES): New macro. 78193323Sed (constructor_for_vbase_attr): Widen to two bits. 79193323Sed (CONSTRUCTOR_FOR_VBASE, CONSTRUCTOR_FOR_PVBASE, 80193323Sed DESTRUCTOR_FOR_PVBASE): New macros. 81193323Sed (DECL_CONSTRUCTOR_FOR_VBASE_P): Adopt to new enumeration. 82193323Sed (DECL_CONSTRUCTOR_FOR_VBASE): New macro. 83193323Sed (DECL_CONSTRUCTOR_FOR_PVBASE_P, DECL_DESTRUCTOR_FOR_PVBASE_P): New 84193323Sed macros. 85193323Sed (vlist_identifier, vlist_type_node, vlist_zero_node): Declare. 86193323Sed (VCTABLE_NAME, VLIST_NAME_FORMAT, VLIST_NAME, VLIST1_NAME, 87193323Sed VLIST_TYPE_NAME): New macros. 88193323Sed (LOOKUP_HAS_VLIST): New macro. 89193323Sed (build_base_dtor_call, init_vlist): Declare. 90193323Sed (build_destructor_name): Add int argument. 91193323Sed * decl.c (vlist_identifier, vlist_type_node, vlist_zero_node): 92193323Sed Define. 93193323Sed (init_decl_processing): Initialize them. 94193323Sed (grokdeclarator): Handle vlist argument. 95193323Sed (copy_args_p): Likewise. 96193323Sed (grok_ctor_properties): Don't try to skip initial int for 97193323Sed templates. Skip vlist if available. 98193323Sed (xref_basetypes): Set TYPE_USES_PVBASES. 99193323Sed (finish_dtor, finish_ctor): New functions, moved out of ... 100193323Sed (finish_function): ... here. 101193323Sed * decl2.c (lang_decode_option): Set flag_vtable_thunks explicitly. 102193323Sed (maybe_retrofit_in_chrg): Retrofit __vlist parameter. 103193323Sed (grokclassfn): Pass pvbase flag into mangled name. 104193323Sed * init.c (build_base_dtor_call): New function. 105193323Sed (build_partial_cleanup_for): Call it. 106193323Sed (pvbasecount, init_vlist, ): New functions. 107193323Sed (emit_base_init): Process vlist argument. 108193323Sed (expand_aggr_vbase_init_1): Likewise. 109193323Sed (expand_aggr_vbase_init): Likewise. 110193323Sed (expand_default_init): Likewise. 111193323Sed (build_new_1): Pass null vlist argument. 112193323Sed (build_delete): Likewise. Call build_base_dtor_call. 113193323Sed * method.c (process_overload_item): Mangle _Vlist specially. 114193323Sed (build_base_path, get_vlist_vtable_id): New functions. 115193323Sed (build_destructor_name): Potentially mangle _Vlist into it. 116193323Sed (do_build_copy_constructor): Skip vlist argument. 117193323Sed (synthesize_method): Likewise. 118193323Sed * pt.c (has_pvbases_p): New function. 119193323Sed (instantiate_class_template): Call it. 120193323Sed (tsubst_decl): Retrofit before mangling. Pass pvbase_p to 121193323Sed destructor mangling. 122193323Sed * search.c (expand_direct_vtbls_init_thunks): New function. 123193323Sed (expand_indirect_vtbls_init_thunks): New function. 124193323Sed (expand_indirect_vtbls_init): Call it. 125193323Sed * call.c (add_function_candidate): Process vlist argument. 126193323Sed (build_user_type_conversion_1): Add vlist argument. 127193323Sed (convert_like): Likewise. 128193323Sed (build_over_call): Likewise. 129193323Sed (build_new_method_call): Likewise. 130193323Sed 131193323Sed2000-02-18 Martin von Loewis <loewis@informatik.hu-berlin.de> 132193323Sed 133193323Sed * typeck2.c (my_friendly_abort): Use GCCBUGURL. 134193323Sed 135193323Sed1999-11-01 Jason Merrill <jason@yorick.cygnus.com> 136193323Sed 137193323Sed * decl2.c (maybe_make_one_only): Always make things comdat on 138193323Sed ELF targets, too. 139193323Sed 140193323SedSun Oct 24 23:54:10 PDT 1999 Jeff Law (law@cygnus.com) 141193323Sed 142193323Sed * gcc-2.95.2 Released. 143193323Sed 144193323Sed1999-09-06 Mark Mitchell <mark@codesourcery.com> 145193323Sed 146193323Sed * pt.c (tsubst): Back out 1999-08-06 patch. Use fold and 147193323Sed decl_constant_value to simplify array bounds. 148193323Sed 149193323Sed1999-08-19 Jason Merrill <jason@yorick.cygnus.com> 150193323Sed 151193323Sed * cp-tree.h: Declare flag_use_repository. 152193323Sed * pt.c (do_decl_instantiation): Don't complain about duplicate 153193323Sed instantiation with -frepo. 154193323Sed (do_type_instantiation): Likewise. 155193323Sed 156193323Sed1999-08-14 Jason Merrill <jason@yorick.cygnus.com> 157193323Sed 158193323Sed * decl2.c (lookup_arg_dependent): Note that we've already checked 159193323Sed the current namespace. 160193323Sed 161193323SedMon Aug 16 01:29:24 PDT 1999 Jeff Law (law@cygnus.com) 162193323Sed 163193323Sed * gcc-2.95.1 Released. 164193323Sed 165193323Sed1999-08-12 Mark Mitchell <mark@codesourcery.com> 166193323Sed 167193323Sed * decl2.c (lang_decode_option): Deprecate signatures. 168193323Sed 169193323Sed1999-08-11 Martin v. Loewis <martin@mira.isdn.cs.tu-berlin.de> 170193323Sed 171193323Sed * lex.c (do_identifier): If we find a hidden type after a global 172193323Sed was selected already, continue using the global. 173193323Sed 174193323Sed1999-08-10 Martin v. Loewis <martin@mira.isdn.cs.tu-berlin.de> 175193323Sed 176193323Sed * decl2.c (set_decl_namespace): Do not complain about non-matching 177193323Sed decls if processing a template. 178193323Sed 179193323Sed1999-08-09 Jason Merrill <jason@yorick.cygnus.com> 180193323Sed 181193323Sed * parse.y (function_try_block): Call end_protect_partials 182193323Sed before expand_start_all_catch. 183193323Sed 184193323Sed1999-08-06 Jason Merrill <jason@yorick.cygnus.com> 185193323Sed 186193323Sed * pt.c (maybe_get_template_decl_from_type_decl): Make sure that 187193323Sed we're looking at a class. 188193323Sed 189193323Sed * decl.c (lookup_name_real): Set the complain flag if we're 190193323Sed looking for a namespace member. 191193323Sed 192193323Sed * decl.c (pushdecl): Only give an error for shadowing a parm 193193323Sed from *this* function. 194193323Sed 195193323Sed * decl2.c (build_expr_from_tree, case METHOD_CALL_EXPR): Only 196193323Sed build_expr_from_tree on the args of a TEMPLATE_ID_EXPR. 197193323Sed 198193323Sed * class.c (mark_overriders): Fix order of args to overrides. 199193323Sed (warn_hidden): Likewise. Fix for having virtual and non-virtual 200193323Sed functions with the same name. 201193323Sed 202193323Sed * cp-tree.h (DECL_VIRTUAL_CONTEXT): New macro. 203193323Sed * typeck.c (expand_ptrmemfunc_cst): Calculate delta correctly for 204193323Sed virtual functions and MI. Simplify. 205193323Sed 206193323Sed * typeck.c (c_expand_return): Downgrade pedwarn about returning NULL 207193323Sed from op new to warning. 208193323Sed 209193323Sed * decl2.c (reparse_absdcl_as_casts): Don't warn about old-style 210193323Sed casts in system headers or extern "C" blocks. 211193323Sed 212193323Sed * pt.c (do_decl_instantiation): Downgrade duplicate instantiation 213193323Sed errors to pedwarn. 214193323Sed 215193323Sed * error.c (dump_type_real): Handle TREE_LIST again. 216193323Sed 217193323Sed * typeck.c (comp_target_parms): Don't complain about 218193323Sed converting from () to (...) if !flag_strict_prototype. 219193323Sed 220193323Sed * class.c (instantiate_type): Downgrade errors for object-dependent 221193323Sed memfn refs to pedwarn. 222193323Sed 223193323Sed1999-08-06 Alexandre Oliva <oliva@dcc.unicamp.br> 224193323Sed 225193323Sed * pt.c (tsubst): Use build_index_type to build in-template array 226193323Sed index type. Fixes g++.oliva/dwarf1.C. 227193323Sed * decl.c (grokdeclarator): Likewise, just for consistency, as it 228193323Sed doesn't seem to trigger the bug without it. 229193323Sed 230193323SedThu Aug 5 02:40:42 1999 Jeffrey A Law (law@cygnus.com) 231193323Sed 232193323Sed * typeck2.c: Update URLs and mail addresses. 233193323Sed 234193323Sed1999-08-03 Mumit Khan <khan@xraylith.wisc.edu> 235193323Sed 236193323Sed * decl.c (start_decl): Set attributes before duplicate_decls call. 237193323Sed 238193323SedWed Jul 28 21:39:31 PDT 1999 Jeff Law (law@cygnus.com) 239193323Sed 240193323Sed * gcc-2.95 Released. 241193323Sed 242193323SedSun Jul 25 15:24:21 1999 Jeffrey A Law (law@cygnus.com) 243193323Sed 244193323Sed * g++FAQ.texi: Deleted per Joe Buck's request. 245193323Sed * Makefile.in: Corresponding changes. 246193323Sed 247193323SedSat Jul 17 23:50:47 1999 Jeffrey A Law (law@cygnus.com) 248193323Sed 249193323Sed * Makefile.in (INTERFACE): Bump to 2. 250193323Sed 251193323Sed1999-07-17 Alexandre Oliva <oliva@dcc.unicamp.br> 252193323Sed 253193323Sed * typeck2.c (my_friendly_abort): Updated URL with bug reporting 254193323Sed instructions to gcc.gnu.org. Removed e-mail address. 255193323Sed 256193323Sed1999-07-15 Mark Mitchell <mark@codesourcery.com> 257193323Sed 258193323Sed * pt.c (check_default_tmpl_args): Handle friends defined in the 259193323Sed class just like member functions defined in the class. 260193323Sed 261193323SedThu Jul 15 01:26:49 1999 H.J. Lu <hjl@gnu.org> 262193323Sed 263193323Sed * decl.c (duplicate_decls): Relax restriction for exception 264193323Sed checks on duplicate symbols. 265193323Sed 266193323Sed1999-07-07 Jason Merrill <jason@yorick.cygnus.com> 267193323Sed 268193323Sed * decl.c (grokdeclarator): Update the names of all variants when 269193323Sed de-anonymizing. 270193323Sed 271193323SedWed Jul 7 01:26:47 1999 Alexandre Oliva <oliva@dcc.unicamp.br> 272193323Sed 273193323Sed * decl2.c (mark_vtable_entries): Fix check for rtti offset. 274193323Sed 275193323Sed1999-06-26 Richard Henderson <rth@cygnus.com> 276193323Sed 277193323Sed * decl.c (cp_finish_decl): Fix typo in cp_warning_at call. 278193323Sed 279193323Sed1999-06-21 Mark Mitchell <mark@codesourcery.com> 280193323Sed 281193323Sed * init.c (expand_aggr_vbase_init): Rename to 282193323Sed construct_virtual_bases. Conditionalize construction here, 283193323Sed rather than ... 284193323Sed (emit_base_init): Here. 285193323Sed 286193323Sed1999-06-19 Mark Mitchell <mark@codesourcery.com> 287193323Sed 288193323Sed * semantics.c (finish_asm_statement): Apply decay conversions to 289193323Sed input operands. 290193323Sed 291193323Sed * decl.c (expand_static_init): When building an anonymous function 292193323Sed for use with atexit, compute its body before and after entering 293193323Sed the function. 294193323Sed 295193323Sed1999-06-18 Mark Mitchell <mark@codesourcery.com> 296193323Sed 297193323Sed * init.c (expand_aggr_vbase_init): Add flag parameter. 298193323Sed (build_partial_cleanup_for): Remove, inlining into .. 299193323Sed (expand_cleanup_for_base): ... here. Take flag parameter. 300193323Sed (emit_base_init): Pass the in_chrg parameter to 301193323Sed emit_aggr_vbase_init. 302193323Sed (emit_aggr_vbase_init): Pass it to expand_cleanup_for_base. 303193323Sed 304193323Sed1999-06-16 Mark Mitchell <mark@codesourcery.com> 305193323Sed 306193323Sed * decl2.c (import_export_decl): Use same_type_p, rather than 307193323Sed relying on pointer-equality for types. 308193323Sed 309193323Sed * method.c (do_build_copy_constructor): Simplify. 310193323Sed 311193323Sed * call.c (build_method_call): Remove bogus code for two-argument 312193323Sed delete. 313193323Sed * init.c (build_new_1): Expand on comment, and remove dead code. 314193323Sed 315193323Sed * init.c (expand_cleanup_for_base): New function, split out 316193323Sed from ... 317193323Sed (emit_base_init): Here. 318193323Sed (expand_aggr_vbase_init): Use it. 319193323Sed 320193323Sed1999-06-15 Mark Mitchell <mark@codesourcery.com> 321193323Sed 322193323Sed * cp-tree.h (class_cache_firstobj): Declare. 323193323Sed (maybe_push_cache_obstack): Rename to push_cache_obstack. 324193323Sed * class.c (permanent_obstack): Remove declaration. 325193323Sed (class_cache_firstobj): Make it global. 326193323Sed (add_method): Don't use permanent_obstack directly. 327193323Sed (pushclass): Only free the class_cache_obstack if we know how far 328206083Srdivacky back to free it. 329206083Srdivacky (maybe_push_cache_obstack): Rename to push_cache_obstack. 330193323Sed * decl.c: Remove dead comment. 331193323Sed (saved_scope): Add class_cache_firstobj. 332193323Sed (push_to_top_level): Save it. 333193323Sed (pop_from_top_level): Restore it. 334193323Sed (push_class_level_binding): Use push_cache_obstack, not 335193323Sed maybe_push_cache_obstack. 336193323Sed * search.c (push_class_decls): Likewise. 337193323Sed 338193323Sed1999-06-14 Nathan Sidwell <nathan@acm.org> 339193323Sed 340193323Sed * call.c (build_new_op): Remove REF_BIND from all operands. 341193323Sed 342193323Sed1999-06-07 Mark Mitchell <mark@codesourcery.com> 343193323Sed 344193323Sed * search.c (convert_pointer_to_single_level): Reimplement without 345193323Sed using get_binfo. 346193323Sed 347193323Sed1999-06-06 Mark Mitchell <mark@codesourcery.com> 348193323Sed 349193323Sed * method.c (is_back_referenceable_type): Back-reference bools when 350193323Sed not squangling. 351193323Sed 352193323Sed1999-06-04 Jason Merrill <jason@yorick.cygnus.com> 353193323Sed 354193323Sed * semantics.c (finish_if_stmt_cond): Copy cond to permanent_obstack. 355193323Sed (finish_while_stmt_cond, finish_do_stmt, finish_for_cond): Likewise. 356193323Sed 357193323Sed1999-05-30 Mark Mitchell <mark@codesourcery.com> 358193323Sed 359193323Sed * lex.c (make_lang_type): Create TYPE_BINFO for 360193323Sed TEMPLATE_TYPE_PARMs just like for non-template types. 361193323Sed 362193323Sed1999-05-28 Nathan Sidwell <nathan@acm.org> 363193323Sed 364193323Sed * decl.c (complete_array_type): Allocate off same obstack. Fix 365193323Sed DO_DEFAULT comment to match reality. 366193323Sed 367193323Sed1999-05-22 Mark Mitchell <mark@codesourcery.com> 368193323Sed 369193323Sed * tree.c (mapcar): Handle NON_LVALUE_EXPR. 370193323Sed 371193323Sed1999-05-21 Mark Mitchell <mark@codesourcery.com> 372193323Sed 373193323Sed * typeck.c (build_ptrmemfunc): Handle PTRMEM_CSTs carefully to 374193323Sed reveal optimization opportunities. 375193323Sed 376193323Sed1999-05-20 Mark Mitchell <mark@codesourcery.com> 377193323Sed 378193323Sed * decl.c (grokdeclarator): Don't treat [] as indicating a 379193323Sed zero-sized array in a typedef. 380193323Sed 381193323Sed * call.c (build_object_call): Don't look at DECL_NAME for a type. 382193323Sed (pt.c): Or CP_TYPE_QUALS for an ERROR_MARK. 383193323Sed (typeck.c): Or TYPE_MAIN_VARIANT for a type. 384193323Sed 385193323Sed1999-05-20 Jason Merrill <jason@yorick.cygnus.com> 386193323Sed 387193323Sed * tree.c (lvalue_p_1): A NOP_EXPR can be an lvalue. 388193323Sed (build_cplus_new): Make sure that what we return is of the right type. 389193323Sed 390193323Sed1999-05-20 Mark Mitchell <mark@codesourcery.com> 391193323Sed 392193323Sed * cp-tree.h (make_ptrmem_cst): New function. 393193323Sed * expr.c (cplus_expand_constant): Split out from ... 394193323Sed (cplus_expand_expr): Here. Use cplus_expand_constant. 395193323Sed (init_cplus_expand): Set lang_expand_constant. 396193323Sed * pt.c (convert_nontype_argument): Use make_ptrmem_cst. 397193323Sed * tree.c (make_ptrmem_cst): Define. 398193323Sed * typeck.c (unary_complex_lvalue): Use make_ptrmem_cst. 399193323Sed * typeck2.c (initializer_constant_valid_p): Use make_ptrmem_cst. 400193323Sed 401193323Sed1999-05-19 Mark Mitchell <mark@codesourcery.com> 402193323Sed 403193323Sed * decl2.c (start_static_storage_duration_function): Fix comment. 404193323Sed (finish_file): Create static storage duration functions lazily. 405193323Sed 406193323SedWed May 19 02:50:53 1999 Arvind Sankar <arvinds@mit.edu> 407193323Sed 408193323Sed * gxxint.texi: Fix typo. 409193323Sed 410193323Sed1999-05-18 Jason Merrill <jason@yorick.cygnus.com> 411193323Sed 412193323Sed * call.c (joust): Compare the types of the conv ops, not the 413193323Sed target types of the conversions. 414193323Sed 415193323SedTue May 18 00:21:34 1999 Zack Weinberg <zack@rabi.phys.columbia.edu> 416193323Sed 417193323Sed * lang-specs.h: Define __GNUC__ and __GNUC_MINOR__ only if -no-gcc 418193323Sed was not given. 419193323Sed 420193323Sed1999-05-17 Mark Mitchell <mark@codesourcery.com> 421193323Sed 422193323Sed * cp-tree.def (TEMPLATE_ID_EXPR): Update documentation. 423193323Sed * decl.c (grokfndecl): Don't allow inline declarations of friend 424193323Sed template specializations, or friend template specializations with 425193323Sed default arguments. 426193323Sed * pt.c (tsubst): Handle substitution into array types that does 427193323Sed not yield a fixed upper bound, even when not processing a 428193323Sed template. 429193323Sed (tsubst_copy): Deal with the fact that the second operand to a 430193323Sed TEMPLATE_ID_EXPR may be NULL_TREE, a TREE_LIST, or a TREE_VEC. 431193323Sed * search.c (marked_pushdecls_p): Don't descend into 432193323Sed TEMPLATE_TYPE_PARMs and the like. 433193323Sed (unmarked_pushdecls_p): Likewise. 434193323Sed 435193323Sed * call.c (build_over_call): Don't throw away 436193323Sed initializations/copies of empty classes; use MODIFY_EXPR and 437193323Sed INIT_EXPR as for non-empty classes. 438193323Sed * class.c (finish_struct_1): Put the padding byte for an empty 439193323Sed class on the TYPE_NONCOPIED_PARTS list for the class. 440193323Sed 441193323Sed1999-05-16 Mark Mitchell <mark@codesourcery.com> 442193323Sed 443206083Srdivacky * decl2.c (build_expr_from_tree): Handle COMPONENT_REFs that 444206083Srdivacky indicate a reference to a field that is a qualified name. 445193323Sed 446193323Sed1999-05-16 Jason Merrill <jason@yorick.cygnus.com> 447193323Sed 448193323Sed * decl2.c (finish_objects): Don't use .?tors.* if we don't have 449193323Sed ASM_OUTPUT_CONSTRUCTOR. 450193323Sed 451193323Sed * friend.c (do_friend): Add attrlist arg. Remove support for 452193323Sed getting a non-decl as 'decl'. 453193323Sed * decl.c (grokfndecl): Remove attrlist arg. Don't set attrs or 454193323Sed rtl. 455193323Sed (grokdeclarator): Adjust. 456193323Sed * cp-tree.h: Adjust. 457193323Sed 458193323Sed1999-05-16 Mark Mitchell <mark@codesourcery.com> 459193323Sed 460193323Sed * cp-tree.h (permanent_p): New function. 461193323Sed * init.c (build_new_1): Use mapcar, not copy_node, to copy a 462193323Sed possibly complex tree node. 463193323Sed * tree.c (mapcar): Adjust comments, and follow coding standards in 464193323Sed conditional. 465193323Sed (permanent_p): New function. 466193323Sed 467193323Sed1999-05-13 Per Bothner <bothner@cygnus.com> 468193323Sed 469193323Sed * class.c (push_lang_context): Turn off DECL_IGNORED_P for 470193323Sed primitive Java types, if we actually see `extern "Java"'. 471193323Sed 472193323Sed1999-05-10 18:21 -0400 Zack Weinberg <zack@rabi.phys.columbia.edu> 473193323Sed 474193323Sed * lang-specs.h: Pass -$ to the preprocessor. 475193323Sed 476193323Sed1999-05-10 Jason Merrill <jason@yorick.cygnus.com> 477193323Sed 478193323Sed * init.c (build_offset_ref): Wrap baselinks in OFFSET_REF, too. 479193323Sed Don't bother wrapping an OFFSET_TYPE around unknown_type_node. 480193323Sed (resolve_offset_ref): Don't handle a raw baselink. 481193323Sed * cvt.c (build_expr_type_conversion): Likewise. 482193323Sed * typeck.c (decay_conversion, build_c_cast, convert_for_assignment, 483193323Sed convert_for_initialization): Likewise. 484193323Sed * class.c (instantiate_type): Handle seeing a baselink under an 485193323Sed OFFSET_REF. 486193323Sed * error.c (dump_expr): Likewise. 487193323Sed * pt.c (for_each_template_parm): Likewise. 488193323Sed (resolve_overloaded_unification): Likewise. 489193323Sed * tree.c (is_overloaded_fn, really_overloaded_fn): Likewise. 490193323Sed * typeck.c (expr_sizeof): Also complain about other permutations 491193323Sed of overloaded functions. 492193323Sed 493193323Sed1999-05-07 Jason Merrill <jason@yorick.cygnus.com> 494193323Sed 495193323Sed * init.c (resolve_offset_ref): Don't return a raw method. 496193323Sed Use BASELINK_P. 497193323Sed * typeck.c (decay_conversion): Don't handle a raw method. 498193323Sed Resolve all OFFSET_REFs. 499193323Sed (get_member_function_from_ptrfunc): 0 is a valid vtable index. 500193323Sed (build_binary_op_nodefault): Handle resolving overloaded fns. Use 501193323Sed same_type_p for pmf bits. Don't use build_binary_op to compare 502193323Sed raw pointers to methods. 503193323Sed (convert_for_assignment): Check for OFFSET_REF, not OFFSET_TYPE, 504193323Sed to decide when to call resolve_offset_ref. 505193323Sed (build_c_cast, convert_for_initialization): Likewise. 506193323Sed * cvt.c (build_expr_type_conversion): Likewise. 507193323Sed 508193323Sed1999-05-06 Nathan Sidwell <nathan@acm.org> 509193323Sed 510193323Sed * call.c (build_new_method_call): Use TYPE_MAIN_VARIANT of class. 511193323Sed 512193323Sed1999-05-05 Mark Mitchell <mark@codesourcery.com> 513193323Sed 514193323Sed * decl2.c (start_objects): Don't let static constructors and 515193323Sed destructors get inlined. 516193323Sed 517193323Sed * parse.y (nested_name_specifier): Make sure ordinary types are 518193323Sed complete, just like template types. 519193323Sed * parse.c: Regenerated. 520193323Sed 521193323Sed * pt.c (check_explicit_specialization): Improve error messages. 522193323Sed 523193323Sed1999-05-04 Martin von L�wis <loewis@informatik.hu-berlin.de> 524193323Sed 525193323Sed * typeck.c (string_conv_p): Use same_type_p to check whether we 526193323Sed try to convert between char and wchar_t. 527193323Sed 528193323Sed1999-05-03 Mark Mitchell <mark@codesourcery.com> 529193323Sed 530193323Sed * search.c (lookup_field_r): Set the TREE_TYPE of an ambiguous 531193323Sed lookup to error_mark_node here. 532193323Sed (lookup_member): Revise documentation. Add comments. Don't set 533193323Sed the TREE_TYPE to error_mark_node here, and don't build up an extra 534193323Sed TREE_LIST for ambiguous lookups. 535193323Sed (setup_class_bindings): Adjust accordingly. 536193323Sed (push_class_decls): Revise out-of-date comments. 537193323Sed 538193323Sed * typeck.c (build_const_cast): Tighten checks for legality. 539193323Sed 540193323Sed1999-05-02 Martin von L�wis <loewis@informatik.hu-berlin.de> 541193323Sed 542193323Sed * init.c (build_member_call): Lookup names coming from 543193323Sed namespace-scoped LOOKUP_EXPR. 544193323Sed 545193323Sed1999-05-03 Jim Blandy <jimb@zwingli.cygnus.com> 546193323Sed 547193323Sed * gxxint.texi: Add documentation for 'I'. 548193323Sed 549193323Sed1999-05-02 Martin von L�wis <loewis@informatik.hu-berlin.de> 550193323Sed 551193323Sed * tinfo.cc (operator==): Qualify type_info with std::. 552193323Sed 553193323Sed1999-05-02 Mark Mitchell <mark@codesourcery.com> 554193323Sed 555193323Sed * cp-tree.h (lang_decl_flags): Remove comdat. Updated dummy. 556193323Sed (DECL_COMDAT): Remove definition. 557193323Sed 558193323Sed1999-05-01 Mark Mitchell <mark@codesourcery.com> 559193323Sed 560193323Sed * decl.c (wrapup_globals_for_namespace): Fix thinko in previous 561193323Sed change. 562193323Sed 563193323Sed1999-04-30 Mark Mitchell <mark@codesourcery.com> 564193323Sed 565193323Sed * class.c (build_vtable): Use build_lang_decl when building 566193323Sed vtables, not just build_decl. 567193323Sed (prepare_fresh_vtable): Likewise. 568193323Sed * decl.c (wrapup_globals_for_namespace): Mark vtables as 569193323Sed DECL_EXTERNAL when calling wrapup_global_declarations. 570193323Sed * decl2.c (priority_info_s): Add initializations_p and 571193323Sed destructions_p members. 572193323Sed (finish_vtable_vardecl): Use TREE_SYMBOL_REFERENCED, not TREE_USED, 573193323Sed when deciding what vtables to write out. 574193323Sed (ssdf_decls): New variable. 575193323Sed (ssdf_decls_used): Likewise. 576193323Sed (start_static_storage_duration_function): Deal with being called 577193323Sed multiple times. Avoid inlining this function. 578193323Sed (generate_inits_for_priority): Deal with reuse of priority map. 579193323Sed (get_priority_info): Clear initializations_p and destructions_p. 580193323Sed (do_static_initialization): Tweak comment. 581193323Sed (do_static_destruction): Likewise. Fix condition on sentries for 582193323Sed destruction. 583193323Sed (generate_ctor_or_dtor_function): Call all of the static storage 584193323Sed duration functions. 585193323Sed (generate_ctor_or_dtor_function_for_priority): Check 586193323Sed initializations_p and destructions_p to see what priorities need 587193323Sed initialization functions. 588193323Sed (finish_file): Rework to generate multiple static storage duration 589193323Sed functions, rather than just one. 590193323Sed 591193323Sed * typeck.c (build_const_cast): Tweak last change to handle 592193323Sed templates correctly. 593193323Sed 594193323Sed * typeck.c (build_const_cast): Disallow use of const_cast to 595193323Sed anything but a pointer or reference type. 596193323Sed 597193323Sed1999-04-30 Nathan Sidwell <nathan@acm.org> 598193323Sed 599193323Sed * decl.c (cp_finish_decl): Don't permit arrays of abstract or 600193323Sed signature type. 601193323Sed 602193323Sed1999-04-29 Mark Mitchell <mark@codesourcery.com> 603193323Sed 604193323Sed * decl2.c (do_static_destruction): Remove obsolete FIXME comment. 605193323Sed (finish_file): Indent comments properly. 606193323Sed 607193323Sed1999-04-29 Richard Henderson <rth@cygnus.com> 608193323Sed 609193323Sed * decl2.c (do_static_initialization): Call do_pending_stack_adjust. 610193323Sed (do_static_destruction): Likewise. 611193323Sed 612193323Sed1999-04-29 Nathan Sidwell <nathan@acm.org> 613193323Sed 614193323Sed * cp-tree.h (TYPE_NOTHROW_P): New macro. 615193323Sed * decl2.c (delete_sanity): Warn on deleting void *. 616193323Sed * init.c (build_new_1): Use TYPE_NOTHROW_P. 617193323Sed * typeck.c (c_expand_return): cp_pedwarn on returning NULL from 618193323Sed throwing operator new. 619193323Sed 620193323Sed1999-04-28 Nathan Sidwell <nathan@acm.org> 621193323Sed 622193323Sed * cp-tree.h (build_component_addr): Remove prototype. 623193323Sed * typeck.c (build_component_addr): Make static. Remove MSG 624193323Sed argument. 625193323Sed (build_component_addr): Remove MSG parameter, clean up 626193323Sed comment. 627193323Sed (build_x_function_call): Use cp_error. 628193323Sed (build_unary_op): Adjust call of build_component_addr. 629193323Sed 630193323Sed1999-04-28 Mark Mitchell <mark@codesourcery.com> 631193323Sed 632193323Sed * pt.c (tsubst_friend_class): Check for NULL. 633193323Sed 634193323SedWed Apr 28 11:42:22 1999 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> 635193323Sed 636193323Sed * search.c (binfo_for_vtable): Initialize bfvi.var. 637193323Sed 638193323Sed1999-04-27 Nathan Sidwell <nathan@acm.org> 639193323Sed 640193323Sed * rtti.c (build_x_typeid): Check rtti is enabled. 641193323Sed 642193323Sed1999-04-26 Mark Mitchell <mark@codesourcery.com> 643193323Sed 644193323Sed * search.c (is_subobject_of_p): Make sure we're looking at the 645193323Sed right baseclasses. 646193323Sed 647193323Sed1999-04-26 Marc Espie <espie@cvs.openbsd.org> 648193323Sed 649206083Srdivacky * Make-lang.in (cplib2.ready): Don't depend on phony targets. 650193323Sed 651206083Srdivacky1999-04-23 Mark Mitchell <mark@codesourcery.com> 652193323Sed 653206083Srdivacky * decl2.c (finish_file): Tweak handling of extern inlines so that 654193323Sed they are not unnecessarily put out. 655193323Sed 656193323Sed * search.c (is_subobject_of_p): Handle TEMPLATE_TYPE_PARMs and 657193323Sed such as base classes. 658193323Sed 659193323Sed1999-04-22 Brendan Kehoe <brendan@cygnus.com> 660193323Sed 661193323Sed * tree.c (build_exception_variant): Fix typo: use the chain of U, 662193323Sed not trying V, while cycling through U. 663193323Sed 664193323Sed1999-04-22 Mark Mitchell <mark@codesourcery.com> 665193323Sed 666193323Sed * cp-tree.h (lang_decl_flags): Remove returns_first_arg and 667193323Sed preserves_first_arg. Enlarge dummy accordingly. 668193323Sed (DECL_TINFO_FN_P): New macro. 669193323Sed (SET_DECL_TINFO_FN_P): Likeiwse. 670193323Sed (DECL_RETURNS_FIRST_ARG): Remove. 671193323Sed (DECL_PRESERVES_THIS): Likewise. 672193323Sed (DECL_INIT_PRIORITY): New macro. 673193323Sed (finish_struct_1): Change prototype. 674193630Sed (cat_namespace_levels): Remove prototype. 675193630Sed (vtable_decl_p): New prototype. 676193630Sed (vtype_decl_p): Likewise. 677193630Sed (sigtable_decl_p): Likewise. 678193630Sed (walk_globals_pred): New typedef. 679193630Sed (walk_globals_fn): Likewise. 680193630Sed (walk_globals): New prototype. 681193630Sed (walk_namespaces_fn): New typedef. 682193630Sed (walk_namespaces): New prototype. 683193630Sed (wrapup_globals_for_namespace): Likewise. 684193630Sed (walk_vtables): Remove prototype. 685193630Sed (walk_sigtables): Likewise. 686193630Sed (instantiate_pending_templates): New prototype. 687193630Sed * class.c (finish_struct_1): Don't return a value. 688193630Sed * decl.h (pending_statics): Remove declaration. 689193630Sed * decl.c (walk_namespaces_r): New function. 690193630Sed (walk_globals_r): Likewise. 691193630Sed (vtable_decl_p): Likewise. 692193630Sed (vtype_decl_p): Likewise. 693193630Sed (sigtable_decl_p): Likewise. 694193630Sed (walk_namespaces): Likewise. 695193630Sed (walk_globals_data): New type. 696 (walk_globals): New function. 697 (wrapup_globals_for_namespace): Likewise. 698 (expand_static_init): Remove assertion. Remove redundancy in 699 conditional. Don't put static data members in static_aggregates 700 Tidy. 701 (finish_function): Remove redundancy in conditional. Don't set 702 DECL_RETURNS_FIRST_ARG. 703 (cat_namespace_levels): Remove. 704 * decl2.c: Include splay-tree.h and varray.h. 705 (priority_info_s): New structure. 706 (finish_vtable_vardecl): Change prototype. Adjust for new calling 707 conventions. 708 (prune_vtable_vardecl): Likewise. 709 (finish_sigtable_vardecl): Likewise. 710 (setup_initp): Remove. 711 (do_dtors): Remove. 712 (do_ctors): Remove. 713 (start_static_storage_duration_function): New function. 714 (generate_inits_for_priority): Likewise. 715 (finish_static_storage_duration_function): Likewise. 716 (get_priority_info): Likewise. 717 (do_static_initialization): Likewise. 718 (do_static_destruction): Likewise. 719 (do_static_initialization_and_destruction): Likewise. 720 (generate_ctor_or_dtor_function): Likewise. 721 (generate_ctor_and_dtor_functions_for_priority): Likewise. 722 (pending_statics): Make it a varray. 723 (pending_statics_used): New variable. 724 (saved_inlines): Make it a varray. 725 (saved_inlines_used): New variable. 726 (finish_static_data_member): Change method of updating 727 pending_statics. 728 (mark_inline_for_output): Remove #if 0'd code. Change method of 729 updating saved_inlines. 730 (walk_vtables): Remove. 731 (walk_sigtables): Likewise. 732 (import_export_decl): Use DECL_TINFO_FN_P. 733 (pending_templates): Remove declaration. 734 (maybe_templates): Likewise. 735 (static_aggregates_initp): Likewise. 736 (setup_initp): Likewise. 737 (finish_objects): Simplify. 738 (INITIALIZE_P_IDENTIFIER): New macro. 739 (PRIORITY_IDENTIFIER): New macro. 740 (SSDF_IDENTIFIER): New macro. 741 (initialize_p_decl): New variable. 742 (priority_decl): Likewise. 743 (ssdf_decl): Likewise. 744 (priority_info_map): Likewise. 745 (finish_file): Recode output of static intializers and other 746 file-scope finalization tasks. 747 * error.c (OB_END_TEMPLATE_ID): New macro. 748 (dump_type_real): Use it. 749 (dump_decl): Likewise. 750 (dump_function_name): Likewise. 751 * lex.c (set_typedecl_interface_info): Adjust for new walk_globals 752 interface. 753 (check_newline): Use walk_globals, not walk_vtables. 754 * pt.c (pending_tempalte_expansions): Remove. 755 (set_vardecl_interface_info): Likewise. 756 (pending_templates): Make static. 757 (maybe_templates): Likewise. 758 (instantiate_class_template): Adjust call to finish_struct_1. 759 (instantiate_pending_templates): New function. 760 * rtti.c (get_tinfo_fn): Use SET_DECL_TINFO_FN_P. 761 * tree.c (static_aggregates_initp): Remove. 762 (cp_valid_lang_attribute): Don't use it; use DECL_INIT_PRIORITY 763 instead. 764 * Makefile.in (decl2.o): Depend on varray.h and splay-tree.h. 765 766 * gxx.gperf (RETURN): Rename to RETURN_KEYWORD to avoid clashes 767 with the RTL code RETURN. 768 * hash.h: Regenerated. 769 * lex.c (reinit_parse_for_block): Use RETURN_KEYWORD. 770 * parse.y: Replace RETURN with RETURN_KEYWORD throughout. 771 * parse.c: Regenerated. 772 * pt.c: Include varray.h. Include rtl.h since varray.h requires 773 it. 774 (inline_parm_levels): New variable. 775 (inline_parm_levels_used): Likewise. 776 (maybe_begin_member_template_processing): Update them. 777 (maybe_end_member_template_processing): Use them, rather than 778 guessing how many levels to pop. 779 780 * decl.c (make_typename_type): Tighten error-checking. 781 7821999-04-20 Mark Mitchell <mark@codesourcery.com> 783 784 * cp-tree.h (build_binary_op): Remove unneeded parameter. 785 * class.c (build_vrable_entry_ref): Adjust call to 786 build_binary_op. 787 * decl.c (expand_static_init): Likewise. 788 (grokdeclarator): Likewise. 789 (finish_function): Likewise. 790 * decl2.c (delete_sanity): Likewise. 791 (do_dtors): Likewise. 792 (do_ctors): Likewise. 793 * error.c (dump_type_suffix): Likewise. 794 * expr.c (cplus_expand_expr): Likewise. 795 * init.c (resolve_offset_ref): Likewise. 796 (build_new): Likewise. 797 (build_new_1): Likewise. 798 (build_vec_delete_1): Likewise. 799 (expand_vec_init_catch_clause): Likewise. 800 (build_delete): Likewise. 801 * pt.c (tsubst): Likewise. 802 * rtti.c (synthesize_tinfo_fn): Likewise. 803 * search.c (expand_upcast_fixups): Likewise. 804 (expand_direct_vtbls_init): Likewise. 805 * typeck.c (get_member_function_from_ptrfunc): Likewise. 806 (build_binary_op_nodefault): Likewise. 807 (point_int_sum): Likewise. 808 (pointer_diff): Likewise. 809 (build_unary_op): Likewise. 810 (build_modify_expr): Likewise. 811 (get_delta_difference): Likewise. 812 (build_ptrmemfunc): Likewise. 813 (expand_ptrmemfunc_cst): Likewise. 814 8151999-04-20 Jason Merrill <jason@yorick.cygnus.com> 816 817 * decl.c (grokfndecl): Always call cplus_decl_attributes. 818 * decl2.c (grokfield): Pass attrlist to grokdeclarator. 819 8201999-04-19 Mark Mitchell <mark@codesourcery.com> 821 822 * cp-tree.h (finish_static_data_member_decl): New function. 823 * decl2.c (finish_static_data_member_decl): Split out from ... 824 (grokfield): Here. 825 * pt.c (instantiate_class_template): Use it here instead of 826 trying to fake it. 827 (tsubst_decl): Don't set DECL_ASSEMBLER_NAME; 828 finish_static_data_member_decl will do that. Explicit set 829 DECL_EXTERNAL to match non-template processing. 830 8311999-04-18 Mark Mitchell <mark@codesourcery.com> 832 833 * cp-tree.h (finish_class_definition): Add parameter. 834 * parse.y (structsp): Use it. Don't call pop_scope here. 835 * parse.c: Regenerated. 836 * semantics.c (finish_class_definition): Pop it here. 837 8381999-04-17 Mark Mitchell <mark@codesourcery.com> 839 840 * decl.c (xref_tag): Revise handling of nested template 841 declarations. 842 * pt.c (check_explicit_specialization): Tweak handling of friend 843 templates in template classes. 844 (tsubst_friend_class): Handle friend declarations for nested 845 member template classes. 846 8471999-04-16 Mark Mitchell <mark@codesourcery.com> 848 849 * class.c (finish_struct): Remove unused variable. 850 (pushclass): Likewise. 851 (invalidate_class_lookup_cache): Likewise. 852 * cp-tree.def (TYPENAME_TYPE): Improve documentation. 853 * decl.c (build_typename_type): Make sure TYPENAME_TYPE_FULLNAME 854 doesn't get obliterated. 855 (make_typename_type): Handle template classes correctly. 856 857 * cp-tree.h (TREE_NONLOCAL_FLAG): Remove. 858 (storetags): Declare. 859 * class.c (finish_struct): Don't use TREE_NONLOCAL_FLAG. 860 (pushclass): Likewise. Use storetags to install tag declarations, 861 not pushtag. 862 (invalidate_class_lookup_cache): Don't use TREE_NONLOCAL_FLAG. 863 * decl.c (storetags): Make it global. 864 (push_class_binding): Set INHERITED_VALUE_BINDING_P for an 865 implicit typename declaration. 866 (pushtag): Tidy. Don't use TREE_NONLOCAL_FLAG. 867 * method.c (hack_identifier): Likewise. 868 * search.c (lookup_member): Likewise. 869 870 * decl.c (warn_about_implicit_typename_lookup): New function. 871 (lookup_name_real): Use it. Rework handling of implicit typename 872 extension. 873 8741999-04-15 Mark Mitchell <mark@codesourcery.com> 875 876 * cp-tree.h (lookup_nested_field): Remove. 877 * class.c (push_nested_class): Handle UNION_TYPEs. 878 (pop_nested_class): Likewise. 879 * decl.c (lookup_name_real): Don't call lookup_nested_field. 880 (start_decl): Use push_nested_class, not just pushclass. 881 (cp_finish_decl): Use pop_nested_class, not just popclass. 882 * search.c (lookup_nested_field): Remove. 883 884 * cp-tree.h (lang_type): Add documentation. 885 * decl2.c (handle_class_head): Create template declarations here, 886 as appropriate. 887 * parse.y (class_head): Return whether or not we entered a new 888 scope, as well as the type named. 889 (named_class_head): Likewise. 890 (named_complex_class_head_sans_basetype): Likewise. 891 (structsp): Adjust accordingly. Pop scope when required. 892 * parse.c: Regenerated. 893 * pt.c (check_default_tmpl_args): Robustify. 894 (redeclare_class_template): Likewise. 895 (instantiate_class_template): An instantiation of an 896 anonymous union is itself an anonymous union. 897 * semantics.c (begin_class_definition): Don't create template 898 declarations here. 899 9001999-04-15 Jason Merrill <jason@yorick.cygnus.com> 901 902 * parse.y (after_type_declarator_intern): New nonterminal. 903 (after_type_declarator): Use it. 904 (direct_after_type_declarator): Likewise. Move above 905 nonnested_type to fix reduce/reduce conflict resolution. 906 (declmods): Reducing from just 'attributes' has EMPTY precedence. 907 * Makefile.in (CONFLICTS): Update. 908 909 * decl.c (define_label): Downgrade error for jumping over a 910 non-POD decl to pedwarn. 911 9121999-04-14 Mark Mitchell <mark@codesourcery.com> 913 914 * cp-tree.h (popclass): Change declaration. 915 (pop_nested_class): Likewise. 916 (poplevel_class): Remove declaration. 917 * call.c (convert_default_argument): Pass no arguments to 918 popclass. 919 * class.c (finish_struct_1): Likewise. 920 (finish_struct): Likewise. 921 (popclass): Remove argument. Simplify code accordingly. 922 (pop_nested_class): Likewise. 923 * decl.c (poplevel_class): Declare it here, and make it static. 924 (poplevel): Handle class scopes. 925 (poplevel_class): Don't take an rgument. Simplify. 926 (pop_everything): Pass no arguments to pop_nested_class. 927 (cp_finish_decl): Pass no arguments to popclass. 928 (grokdeclarator): Pass no arguments to pop_nested_class. 929 (finish_function): Likewise. 930 * decl2.c (grokfield): Likewise. 931 (pop_scope): Pass no arguments to popclass. 932 * lex.c (do_pending_defargs): Pass no arguments to pop_nested_class. 933 * pt.c (instantiate_class_template): Move call to pushclass, and 934 document. Pass no arguments to popclass. 935 (regenerate_decl_from_template): Likewise. 936 9371999-04-14 Jason Merrill <jason@yorick.cygnus.com> 938 939 * typeck.c (build_unary_op): Handle taking the address of a unique 940 bound non-static member function. 941 9421999-04-13 Martin von Loewis <loewis@informatik.hu-berlin.de> 943 944 * lang-options.h (-Wdeprecated): New flag. 945 * decl2.c (warn_deprecated): New flag. 946 (lang_decode_option): Deprecated this-is-variable, 947 external-templates, alt-external-templates. 948 Support -Wdeprecated. 949 * errfn.c (cp_deprecated): New function. 950 9511999-04-13 Jason Merrill <jason@yorick.cygnus.com> 952 953 * decl2.c (setup_initp): Compare DECL_ASSEMBLER_NAME instead 954 of the decls themselves. 955 956 * pt.c (tsubst_function_type): Copy attributes over. 957 958 * tree.c (cp_valid_lang_attribute): New fn. Handle init_priority 959 and com_interface. 960 * cp-tree.h: Add prototype. 961 * decl.c (init_decl_processing): Set valid_lang_attribute. 962 9631999-04-13 Mark Mitchell <mark@codesourcery.com> 964 965 * class.c (finish_struct_1): Look at the const-ness of the field's 966 type, not the TREE_READONLY-ness of the declaration. 967 * method.c (synthesize_method): Likewise. 968 * pt.c (tsubst_decl): Call c_apply_type_quals_to_decl when 969 creating new declarations. 970 9711999-04-13 Mike Stump <mrs@wrs.com> 972 973 * decl2.c (import_export_decl): Because vtables always reference 974 virtual functions, even if they are inlined, don't allow 975 -fno-implement-inlines to not emit them, instead, emit them with 976 the vtable. 977 * decl.c (start_function): Likewise. 978 9791999-04-12 Jason Merrill <jason@yorick.cygnus.com> 980 981 * cp-tree.h (struct lang_type): Add com_interface. 982 (CLASSTYPE_COM_INTERFACE): New macro. 983 * class.c (set_rtti_entry): COM interface classes have no RTTI 984 entries in their vtables; adjust. 985 (add_virtual_function, finish_base_struct, skip_rtti_stuff, 986 modify_one_vtable, fixup_vtable_deltas1, override_one_vtable, 987 finish_struct_1): Likewise. 988 * decl2.c (mark_vtable_entries): Likewise. 989 * rtti.c (build_headof, get_tinfo_fn_dynamic): Likewise. 990 * search.c (get_abstract_virtuals_1, get_abstract_virtuals, 991 expand_upcast_fixups): Likewise. 992 * tree.c (debug_binfo): Likewise. 993 994 * cp-tree.h (COMPARE_NO_ATTRIBUTES): New macro. 995 * typeck.c (comptypes): If we get it, ignore attributes. 996 * class.c (instantiate_type): Use BASELINK_P. Change complain 997 parameter to flags; 2 means ignore attributes. 998 * call.c (build_op_delete_call): Pass it. 999 1000 * decl.c (xref_tag): Only complain once about using a typedef-name 1001 with 'struct'. Downgrade to pedwarn. 1002 1003 * decl.c (grokdeclarator): Allow [] syntax for zero-length array. 1004 1005 * parse.y (absdcl_intern): New nonterminal. 1006 (absdcl, direct_abstract_declarator): Use it. 1007 1008 * pt.c (lookup_template_class): Look through implict typename. 1009 10101999-04-11 Mark Mitchell <mark@codesourcery.com> 1011 1012 * friend.c (add_friend): Deal gracefully with error_mark_node. 1013 * method.c (build_overload_value): Handle pointers-to-members as 1014 template parameters. 1015 1016 * decl.c (push_binding): Fix typo in comment. 1017 10181999-04-10 Mark Mitchell <mark@codesourcery.com> 1019 1020 * error.c (dump_type_real): If a typename is a template-id, put 1021 out the template arguments. 1022 (dump_expr): Handle TEMPLATE_ID_EXPR. 1023 * pt.c (lookup_template_class): Now that full arguments are 1024 available everywhere, remove code that tried to guess them. 1025 10261999-04-09 Mark Mitchell <mark@codesourcery.com> 1027 1028 * decl.c (make_typename_type): Complain if we don't find a type 1029 when trying to make a typename type for a non-template type. 1030 10311999-04-09 Jason Merrill <jason@yorick.cygnus.com> 1032 1033 * decl.c (start_decl): Pass attributes to grokdeclarator. 1034 (grokdeclarator): Handle attributes on constructor-syntax 1035 initializers. 1036 10371999-04-08 Mark Mitchell <mark@codesourcery.com> 1038 1039 * error.c (dump_expr): Don't crash on INDIRECT_REFs whose operands 1040 don't have types. 1041 1042 * search.c (template_self_reference_p): Tweak. 1043 10441999-04-07 Mark Mitchell <mark@codesourcery.com> 1045 1046 * init.c (build_offset_ref): Don't build yet another weird data 1047 structure to describe overloaded functions. 1048 10491999-04-06 Mark Mitchell <mark@codesourcery.com> 1050 1051 * cp-tree.h (BASELINK_P): New macro. 1052 (SET_BASELINK_P): Likewise. 1053 * init.c (build_member_call): Remove needless assignment in if 1054 statement. 1055 * search.c (lookup_field_r): Fix handling when we are looking 1056 specifically for a type; these are not hidden by functions and 1057 variables. 1058 (lookup_member): Use SET_BASELINK_P. 1059 * tree.c (is_overloaded_fn): Use BASELINK_P. 1060 (really_overloaed_fn): Likewise. 1061 (get_first_fn): Likewise. 1062 10631999-04-05 Mark Mitchell <mark@codesourcery.com> 1064 1065 * decl.c (lookup_name_current_level): Tweak, and improve 1066 documentation. 1067 1068 * class.c (maybe_fixup_vptrs): Remove declaration. 1069 (build_class_init_list): Likewise. 1070 * decl.c (pushdecl_class_level): Call check_template_shadow here 1071 ... 1072 (push_class_level_binding): ... not here. 1073 * search.c (dfs_push_type_decls): Only avoid 1074 template-self-reference TYPE_DECLs if they are from base classes. 1075 10761999-04-04 Mark Mitchell <mark@codesourcery.com> 1077 1078 * pt.c (check_template_shadow): Don't treat OVERLOADs as _DECL 1079 nodes. Tidy. 1080 10811999-04-03 Jason Merrill <jason@yorick.cygnus.com> 1082 1083 * class.c (maybe_fixup_vptrs, build_class_init_list): Lose. 1084 (finish_struct_1): Don't call build_class_init_list. 1085 10861999-04-02 Mark Mitchell <mark@codesourcery.com> 1087 1088 * tinfo.h (__class_type_info): Fix illegal declaration. 1089 1090 * cp-tree.def (TEMPLATE_ID_EXPR): Update comment. 1091 * cp-tree.h (INHERITED_VALUE_BINDING_P): New macro. 1092 (IDENTIFIER_CLASS_VALUE): Improve documentation. 1093 (is_properly_derived_from): Declare. 1094 (invalidate_class_lookup_cache): Likewise. 1095 (maybe_maybe_note_name_used_in_class): Likewise. 1096 (note_name_declared_in_class): Likewise. 1097 (push_using_decl): Remove duplicate declaration. 1098 (id_in_current_class): Remove declaration. 1099 (push_class_binding): Change prototype. 1100 (clear_identitifer_class_values): Declare. 1101 * call.c (is_properly_derived_from): Make it global. 1102 (build_new_function_call): Be careful about updating candidates. 1103 (build_new_method_call): Handle COMPONENT_REFs. Don't crash when 1104 asked to make illegal calls. 1105 * class.c: Include splay-tree.h. 1106 (class_stack_node): Add names_used slot. 1107 (check_member_decl_is_same_in_complete_scope): Remove. 1108 (add_method): Fix comment. Push the declaration into class 1109 scope. 1110 (finish_struct_1): When popping the class, pop the bindings too. 1111 Remove check for data member/function member conflict. 1112 (finish_struct): Remove calls to 1113 check_member_decl_is_same_in_complete_scope. Change calls to 1114 popclass. 1115 (pushclass): Clear names_used in the class stack entry. 1116 Use invalidate_class_lookup_cache to remove cached entries, rather 1117 than magic values with popclass. Clear IDENTIFIER_CLASS_VALUE 1118 before entering a new class. Remove dead code. Don't mess with 1119 current_function_decl when pushing declarations. 1120 (invalidate_class_lookup_cache): New function, split out from ... 1121 (popclass): Here. Clean up names_used on our way out. 1122 (instantiate_type): Adjust. 1123 (build_self_reference): Don't push the declaration here. 1124 (maybe_note_name_used_in_class): New function. 1125 (note_name_declared_in_class): Likewise. 1126 * decl.c (add_binding): Change prototype. 1127 (find_class_binding_level): New function. 1128 (innermost_nonclass_level): Likewise. 1129 (current_binding_level): Update documentation. 1130 (inner_binding_level): Remove. Replace with current_binding_level 1131 throughout. 1132 (push_binding_level): Remove special handling of 1133 class_binding_level. 1134 (pop_binding_level): Likewise. Use find_class_binding_level. 1135 (suspend_binding_level): Likewise. 1136 (global_bindings_p): Use innermost_nonclass_level. 1137 (toplevel_bindings_p): Likewise. 1138 (namespace_bindings_p): Likewise. 1139 (pseudo_global_level_p): Likewise. 1140 (push_binding): Clear INHERITED_VALUE_BINDING_P. 1141 (add_binding): Check for illegal multiple declarations. Return a 1142 value indicating whether or not the new binding was legal. 1143 (push_local_binding): Skip over class binding levels. Check 1144 return value from add_binding. 1145 (push_class_binding): Set INHERITED_VALUE_BINDING_P. Call 1146 note_name_declared_in_class. 1147 (pushlevel_class): Remove "fake out the rest of the compiler" 1148 code. 1149 (poplevel_class): Reset IDENTIFIER_CLASS_VALUEs. 1150 (clear_identifier_class_values): New function. 1151 (pop_from_top_level): Use it. 1152 (pop_everything): Tweak. 1153 (maybe_process_template_type_declaration): Don't push the 1154 declaration for the template here. 1155 (pushtag): Don't push tag declarations into class scope here. 1156 (pushdecl): Apply DeMorgan's law for readability. 1157 (pushdecl_class_level): Remove special-case code for 1158 TYPE_BEING_DEFINED. Handle OVERLOADs and anonymous unions. 1159 (push_class_level_bindng): Deal with inherited bindings. 1160 (lookup_name_real): Remove special-case code for 1161 TYPE_BEING_DEFINED, and some implicit typename magic. 1162 (grokdeclarator): Handle COMPONENT_REF for a template function. 1163 (build_enumerator): Don't call pushdecl_class_level here. 1164 (id_in_current_class): Remove. 1165 * decl2.c (grokfield): Don't call pushdecl_class_level or 1166 check_template_shadow. 1167 * errfn.c (cp_file_of): Don't declare. 1168 (cp_line_of): Likewise. 1169 * error.c (dump_decl): Handle an OVERLOAD. 1170 (cp_file_of): Likewise. 1171 (cp_line_of): Likewise. 1172 * init.c (build_member_call): Handle a COMPONENT_REF. 1173 * lex.c (do_identifier): Call maybe_note_name_used_in_class, not 1174 pushdecl_class_level. 1175 * method.c (hack_identifier): Build COMPONENT_REFs for references 1176 to member templates as well as member functions. Remove dead 1177 code. 1178 * parse.y (left_curly): Remove. 1179 (nonnested_type): Call maybe_note_name_used_in_class, not 1180 pushdecl_class_level. 1181 * parse.c: Regenerated. 1182 (nested_name_specifier_1): Likewise. 1183 * pt.c (check_explicit_specialization): Adjust, for robustness. 1184 (check_template_shadow): Handle OVERLOADs. 1185 (build_template_decl): Set DECL_CONSTRUCTOR_P on the 1186 TEMPLATE_DECL, if appropriate. 1187 * search.c (envelope_add_decl): Remove. 1188 (dfs_pushdecls): Likewise. 1189 (dfs_compress_decls): Likewise. 1190 (dfs_push_decls): New function. 1191 (dfs_push_type_decls): Likewise. 1192 (setup_class_bindings): Likewise. 1193 (template_self_reference_p): Likewise. 1194 (lookup_field_r): Use it. 1195 (looup_member): Remove old comment. Deal with ambiguity. 1196 (push_class_decls): Use dfs_push_decls and dfs_push_type_decls, 1197 and remove envelope processing. 1198 * semantics.c (begin_class_definition): Let pushclass push 1199 declarations for base classes. 1200 (finish_member_declaration): Push declarations into class scope. 1201 * typeck.c (build_component_ref): Just put an OVERLOAD into the 1202 COMPONENT_REF, not a TREE_LIST of an OVERLOAD. 1203 (build_x_function_call): Deal with OVERLOAD. Handle template-ids. 1204 * Makefile.in (class.o): Depend on splay-tree.h. 1205 1206Wed Mar 31 11:30:43 1999 Nathan Sidwell <nathan@acm.org> 1207 1208 * cvt.c (convert_pointer_to_real): Use same_type_p. 1209 * typeck.c (comp_target_types): Use same_type_p. 1210 12111999-03-31 Jason Merrill <jason@yorick.cygnus.com> 1212 1213 * semantics.c (begin_inline_definitions, 1214 finish_inline_definitions): Rename from finish_default_args and 1215 begin_inline_definitions, respectively, to something that isn't a 1216 total lie. :) 1217 * parse.y (structsp): Adjust. 1218 1219 * tree.c (hash_tree_cons): Remove obsolete via_* parms. 1220 (list_hash_lookup): Likewise. 1221 (hash_tree_chain): Adjust. 1222 * pt.c (tsubst): Adjust. 1223 (tsubst_arg_types): Use plain hash_tree_cons. 1224 * cp-tree.h (hash_tree_cons_simple): Lose. 1225 * parse.y (declmods, nonempty_cv_qualifiers): Use hash_tree_cons. 1226 1227Wed Mar 31 10:48:29 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1228 1229 * Makefile.in (hash.h): Generate using gperf language 'C', not 1230 'KR-C', so gperf uses the `const' keyword on strings. 1231 1232 * gxx.gperf (resword): Const-ify a char*. 1233 12341999-03-30 Jason Merrill <jason@yorick.cygnus.com> 1235 1236 * cp-tree.h (IDENTIFIER_AS_DESC, IDENTIFIER_AS_LIST, 1237 CLASSTYPE_BASELINK_VEC, CLASSTYPE_N_SUPERCLASSES, 1238 CLASSTYPE_N_BASECLASSES, CLASSTYPE_MAX_DEPTH, 1239 CLASSTYPE_BASE_INIT_LIST, CLASSTYPE_AS_LIST, CLASSTYPE_ID_AS_LIST, 1240 CLASSTYPE_BINFO_AS_LIST): Remove cruft. 1241 * class.c, lex.c, parse.y, ptree.c, search.c, semantics.c, 1242 tree.c: Adjust. 1243 12441999-03-29 Jason Merrill <jason@yorick.cygnus.com> 1245 1246 * decl2.c (lang_decode_option): Remove -Wsign-promo from -Wall. 1247 12481999-03-28 Jason Merrill <jason@yorick.cygnus.com> 1249 1250 * pt.c (fn_type_unification): Ignore 'this' parm from conversion ops. 1251 12521999-03-27 Mark Mitchell <mark@codesourcery.com> 1253 1254 * cp-tree.h (add_friend): Declare. 1255 (add_friends): Likewise. 1256 * friend.c (add_friend): Make it global. Don't add to 1257 DECL_BEFRIENDING_CLASSES if the befriending class is a template. 1258 (add_friends): Make it global. 1259 (make_friend_class): Don't add to DECL_BEFRIENDING_CLASSES if the 1260 befriending class is a template. 1261 * parse.y (component_decl_1): Fix typo in comment. 1262 * parse.c: Regenerated. 1263 * pt.c (instantiate_class_template): Use add_friend and 1264 add_friends rather that duplicating some of their functionality 1265 here. 1266 12671999-03-27 Jason Merrill <jason@yorick.cygnus.com> 1268 1269 * call.c (build_field_call): Unify 'this' and non-'this' cases. 1270 1271 * typeck.c (build_indirect_ref): Check for 'this' sooner. 1272 1273Fri Mar 26 10:20:34 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1274 1275 * call.c (op_error): Const-ify a char*. 1276 (add_candidate, source_type, add_warning): Add static prototype. 1277 (print_z_candidates): Const-ify a char*. 1278 1279 * class.c (resolve_address_of_overloaded_function, 1280 fixed_type_or_null, build_vtable_entry_ref): Add static prototype. 1281 (get_vtable_name, finish_struct_1): Const-ify a char*. 1282 1283 * cvt.c (convert_to_reference): Likewise. 1284 1285 * decl.c (redeclaration_error_message, record_builtin_type, 1286 record_unknown_type, member_function_or_else, bad_specifiers): 1287 Likewise. 1288 (find_binding, select_decl, unqualified_namespace_lookup, 1289 lookup_flags, qualify_lookup, record_builtin_java_type, tag_name): 1290 Add static prototype. 1291 (warn_extern_redeclared_static, duplicate_decls, pushdecl, 1292 implicitly_declare, record_builtin_java_type, define_function, 1293 grok_op_properties, tag_name): Const-ify a char*. 1294 1295 * cp-tree.h (FORMAT_VBASE_NAME): Allow parameter `BUF' to be const. 1296 (define_function, finish_builtin_type): Const-ify a char*. 1297 (cp_error, cp_error_at, cp_warning, cp_warning_at, cp_pedwarn, 1298 cp_pedwarn_at, cp_compiler_error, cp_sprintf): Add prototype args. 1299 (file_name_nondirectory): Const-ify a char*. 1300 (init_filename_times): Don't prototype. 1301 (compiler_error): Prototype. 1302 (yyerror, init_repo): Const-ify a char*. 1303 (build_srcloc): Don't prototype. 1304 (build_x_indirect_ref, build_indirect_ref, build_component_addr): 1305 Const-ify a char*. 1306 (warn_for_assignment): Don't prototype. 1307 (convert_for_initialization, readonly_error, check_for_new_type, 1308 GNU_xref_begin, GNU_xref_file, GNU_xref_ref, GNU_xref_call): 1309 Const-ify a char*. 1310 1311 * decl2.c (acceptable_java_type, output_vtable_inherit, 1312 setup_initp, start_objects, finish_objects, do_dtors, do_ctors, 1313 merge_functions, decl_namespace, validate_nonmember_using_decl, 1314 do_nonmember_using_decl): Add static prototype. 1315 (lang_f_options): Const-ify a char*. 1316 (finish_builtin_type): Likewise. 1317 (add_function, arg_assoc_namespace, arg_assoc_class): Add static 1318 prototype. 1319 1320 * errfn.c: Include cp-tree.h. 1321 (cp_thing): Add static prototype. 1322 (compiler_error): Don't protoptype. 1323 (cp_compiler_error): Cast `compiler_error' to `errorfn' before 1324 passing it to `cp_thing'. 1325 1326 * error.c (interesting_scope_p): Add static prototype. 1327 1328 * except.c (build_eh_type_type, build_eh_type_type_ref): Const-ify 1329 a char*. 1330 1331 * init.c (compiler_error): Don't prototype. 1332 (member_init_ok_or_else): Const-ify a char*. 1333 (build_java_class_ref): Add static prototype. 1334 1335 * lex.c (compiler_error): Don't prototype. 1336 (get_time_identifier, interface_strcmp, extend_token_buffer, 1337 handle_cp_pragma): Const-ify a char*. 1338 (is_global, init_filename_times): Add static prototype. 1339 (file_name_nondirectory, cplus_tree_code_name): Const-ify a char*. 1340 (compiler_error): Change from fixed args to variable args. 1341 (yyerror): Const-ify a char*. 1342 1343 * parse.y (cond_stmt_keyword): Const-ify a char*. 1344 (parse_decl): Add static prototype. 1345 1346 * pt.c (template_args_equal, print_template_context): Likewise. 1347 (print_candidates, check_default_tmpl_args): Const-ify a char*. 1348 (instantiate_class_template): Likewise. 1349 1350 * repo.c (get_base_filename, open_repo_file, init_repo): Likewise. 1351 1352 * rtti.c (call_void_fn, expand_generic_desc, expand_si_desc, 1353 expand_class_desc, expand_ptr_desc, expand_attr_desc): Likewise. 1354 1355 * search.c (lookup_field_info, lookup_member): Likewise. 1356 (lookup_member): Cast the first argument of `bzero' to a PTR. 1357 1358 * sig.c (compiler_error): Don't prototype. 1359 (build_signature_pointer_or_reference_nam): Const-ify a char*. 1360 (get_sigtable_name, build_member_function_pointer): Likewise. 1361 1362 * tree.c (compiler_error): Don't prototype. 1363 (no_linkage_helper, build_srcloc): Add static prototype. 1364 (build_vbase_pointer_fields): Const-ify a char*. 1365 (__eprintf): Don't unnecessarily handle `const' when !__STDC__. 1366 1367 * typeck.c (compiler_error): Don't prototype. 1368 (convert_for_assignment): Const-ify a char*. 1369 (comp_cv_target_types): Add static prototype. 1370 (build_x_indirect_ref, build_indirect_ref, convert_arguments, 1371 build_component_addr, build_unary_op, convert_for_initialization): 1372 Const-ify a char*. 1373 1374 * typeck2.c (ack): Add static prototype and change from fixed args 1375 to variable args. 1376 (readonly_error, check_for_new_type): Const-ify a char*. 1377 1378 * xref.c (_XREF_FILE, find_file, filename, fctname, declname, 1379 fixname, open_xref_file, classname, GNU_xref_begin): Likewise. 1380 (GNU_xref_file): Likewise. Also use `xmalloc' instead of `malloc'. 1381 (GNU_xref_end_scope, GNU_xref_ref, GNU_xref_decl, GNU_xref_call, 1382 gen_assign, GNU_xref_member): Const-ify a char*. 1383 13841999-03-25 Martin von L�wis <loewis@informatik.hu-berlin.de> 1385 1386 * gxxint.texi: Remove old discussion on copying virtual bases. 1387 13881999-03-25 Zack Weinberg <zack@rabi.columbia.edu> 1389 1390 * Make-lang.in: Remove all references to g++.o/g++.c. 1391 Link g++ from gcc.o. 1392 13931999-03-25 Jason Merrill <jason@yorick.cygnus.com> 1394 1395 * decl2.c (comdat_linkage): Treat vtables like functions. 1396 13971999-03-25 Mark Mitchell <mark@codesourcery.com> 1398 1399 * pt.c (tsubst_decl): tsubst into DECL_BEFRIENDING_CLASSES. 1400 14011999-03-25 Nathan Sidwell <nathan@acm.org> 1402 1403 * decl.c (init_decl_processing): Add `signed' type as a synonym 1404 for `int'. 1405 14061999-03-25 Jason Merrill <jason@yorick.cygnus.com> 1407 1408 * typeck.c (common_type): Handle cv-qual unification for pointers 1409 to members. 1410 1411 * decl.c (unqualified_namespace_lookup): Return error_mark_node 1412 on error. 1413 (lookup_name_real): Set LOOKUP_COMPLAIN when *not* parsing. 1414 * lex.c (do_identifier): If we got error_mark_node, call 1415 lookup_name again. 1416 14171999-03-24 Martin von L�wis <loewis@informatik.hu-berlin.de> 1418 1419 * class.c (finish_struct_1): Always reset TYPE_FIELDS for empty 1420 classes. 1421 14221999-03-24 Jason Merrill <jason@yorick.cygnus.com> 1423 1424 * decl.c (lookup_name_real): Do nested field lookup regardless of 1425 TYPE_BEING_DEFINED. 1426 14271999-03-24 Mark Mitchell <mark@codesourcery.com> 1428 1429 * cp-tree.h (lang_type): Remove has_assignment and 1430 has_real_assignment. Add befriending_classes. 1431 (TYPE_HAS_ASSIGNMENT): Remove. 1432 (TYPE_HAS_REAL_ASSIGNMENT): Likewise. 1433 (CLASSTYPE_BEFRIENDING_CLASSES): New macro. 1434 (lang_decl): Document. 1435 (DECL_BEFRIENDING_CLASSES): New macro. 1436 (FRIEND_NAME): Move declaration to more obvious location. 1437 (FRIEND_DECLS): Likewise. 1438 * class.c (finish_struct_1): Don't use TYPE_HAS_REAL_ASSIGNMENT. 1439 * decl.c (duplicate_decls): Copy DECL_BEFRIENDING_CLASSES. 1440 (fixup_anonymous_union): Don't use TYPE_HAS_ASSIGNMENT. 1441 (grok_op_properties): Likewise. 1442 * friend.c (is_friend): Use FRIEND_NAME and FRIEND_DECLS. 1443 (add_friend): Likewise. Don't do weird things with assignment 1444 operators. Update DECL_BEFRIENDING_CLASSES. 1445 (add_friends): Don't do weird things with assignment operators. 1446 (make_friend_class): Likewise. Update 1447 CLASSTYPE_BEFRIENDING_CLASSES. 1448 * pt.c (instantiate_class_template): Don't set 1449 TYPE_HAS_ASSIGNMENT. 1450 (tsubst_copy): Substitute the TREE_TYPE for more unary 1451 expressions. 1452 * ptree.c (print_lang_type): Don't look at TYPE_HAS_ASSIGNMENT. 1453 * search.c (protected_accessible_p): New function. 1454 (friend_accessible_p): Likewise. 1455 (accessible_p): Use them. 1456 14571999-03-23 Mark Mitchell <mark@codesourcery.com> 1458 1459 * pt.c (convert_nontype_argument): Don't create things that aren't 1460 PTRMEM_CSTs when applying a qualification conversion to a 1461 PTRMEM_CST. 1462 14631999-03-23 Mark Mitchell <mark@codesourcery.com> 1464 1465 * Makefile.in (OBJS): Don't mention hash.o. 1466 (OBJDEPS): Likewise. 1467 14681999-03-23 Jason Merrill <jason@yorick.cygnus.com> 1469 1470 * decl2.c (finish_file): Set at_eof to 2 after expanding ctors. 1471 * decl.c (expand_static_init): Make sure we don't add any after 1472 then. 1473 1474 * decl.c (cp_finish_decl): Move intelligence about handling 1475 DECL_COMDAT for variables from here... 1476 * decl2.c (comdat_linkage): ...to here. 1477 (maybe_make_one_only): Tweak. 1478 (import_export_decl): Call comdat_linkage for variables, too. 1479 (finish_file): Handle template statics properly. 1480 14811999-03-22 Mark Mitchell <mark@codesourcery.com> 1482 1483 * cp-tree.h (TYPE_PTRMEMFUNC_P): Use TYPE_PTRMEMFUNC_FLAG. 1484 Document internals of pointer-to-member-functions. 1485 (DELTA2_FROM_PTRMEMFUNC): Make it call delta2_from_ptrmemfunc. 1486 (PFN_FROM_PTRMEMFUNC): Likewise. 1487 (build_type_conversion): Remove unused parameter. 1488 (build_ptrmemfunc1): Declare. 1489 (expand_ptrmemfunc_cst): New function. 1490 (delta2_from_ptrmemfunc): Likewise. 1491 (pfn_from_ptrmemfunc): Likewise. 1492 * cvt.c (cp_convert_to_pointer): Remove unused parameter to 1493 build_type_conversion. Use TYPE_PTRMEM_P for readability. 1494 (convert_to_reference): Remove unused parameter to 1495 build_type_conversion. 1496 (ocp_convert): Likewise. 1497 (build_user_type_conversion): Likewise. 1498 * error.c (dump_expr): Handle NULL pointer-to-member functions. 1499 * expr.c (cplus_expand_expr): Handle PTRMEM_CSTs for functions. 1500 * method.c (build_overload_value): Don't go splitting CONSTRUCTORs 1501 open when handling pointer-to-member functions. 1502 * pt.c (convert_nontype_argument): Clean up error messages. Be 1503 more stringent with pointers-to-members. 1504 * typeck.c (build_ptrmemfunc1): Don't declare. Make it global. 1505 (build_unary_op): Tidy ever-so-slightly. 1506 (build_conditional_expr): Remove extra parameter to 1507 build_type_conversion. 1508 (build_ptrmemfunc): Build PTRMEM_CSTs if we know what function 1509 we're using. 1510 (expand_ptrmemfunc_cst): Define. 1511 (delta2_from_ptrmemfunc): Likewise. 1512 (pfn_from_ptrmemfunc): Likewise. 1513 15141999-03-19 Mark Mitchell <mark@codesourcery.com> 1515 1516 * init.c (build_member_call): Handle template-id expressions 1517 correctly. 1518 * typeck.c (build_x_function_call): Likewise. 1519 15201999-03-19 Chip Salzenberg <chip@perlsupport.com> 1521 1522 * friend.c (make_friend_class): Avoid core dump when 1523 not-yet-defined friend type lacks TYPE_LANG_SPECIFIC(). 1524 15251999-03-18 Jason Merrill <jason@yorick.cygnus.com> 1526 1527 * decl.c (start_function): Suppress normal linkage heuristics 1528 for #pragma interface under MULTIPLE_SYMBOL_SPACES. 1529 15301999-03-19 Alexandre Oliva <oliva@dcc.unicamp.br> 1531 1532 * Make-lang.in: ($(INTL_TARGETS)): Depend on cp/parse.c. 1533 ($(srcdir)/cp/parse.c): Moved from ../Makefile.in. 1534 15351999-03-17 Martin von L�wis <loewis@informatik.hu-berlin.de> 1536 1537 * parse.y (named_complex_class_head_sans_basetype): 1538 Do not push a scope for error_mark_node. 1539 (maybe_base_class_list): Likewise. 1540 1541 * decl.c (start_decl): Check for error_mark_node as a type. 1542 Detected by g++.brendan/array-refs.C. 1543 (start_decl_1): Likewise. Detected by g++.bugs/900322_01.C. 1544 (maybe_build_cleanup_1): Likewise. Detected by 1545 g++.jason/incomplete1.C. 1546 1547 * tree.c (build_dummy_object): Use void_zero_node instead of the 1548 error_mark_node. 1549 (is_dummy_object): Check for such a node. 1550 Detected by g++.bob/inherit1.C 1551 15521999-03-16 Jason Merrill <jason@yorick.cygnus.com> 1553 1554 * method.c (old_backref_index): Split out... 1555 (flush_repeats): From here. Rename back from try_old_backref. 1556 (build_mangled_name): Put back some old-style repeat handling. 1557 1558Mon Mar 15 21:57:16 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1559 1560 * lex.c: Don't include setjmp.h. 1561 (parse_float): New static function. 1562 (pf_args): New struct. 1563 (real_yylex): Use them in call to `do_float_handler'. 1564 15651999-03-15 Mark Mitchell <mark@markmitchell.com> 1566 1567 * decl.c (xref_basetypes): Set CLASSTYPE_VBASECLASSES here. 1568 * tree.c (layout_basetypes): Not here. 1569 * search.c (dfs_search): Remove; no longer used. 1570 15711999-03-12 Mark Mitchell <mark@markmitchell.com> 1572 1573 * decl2.c (validate_nonmember_using_decl): Issue sensible 1574 error-messages on bogus qualifiers. 1575 15761999-03-14 Jason Merrill <jason@yorick.cygnus.com> 1577 1578 * call.c (add_function_candidate): Fix uninitialized variable. 1579 1580 * Makefile.in (search.o): Add dependency on varray.h. 1581 15821999-03-13 Jason Merrill <jason@yorick.cygnus.com> 1583 1584 * decl.c (duplicate_decls): Use same_type_p. 1585 * method.c (try_old_backref): Renamed from flush_repeats. Use 1586 same_type_p. Don't try to handle repeats. Return success. 1587 (is_back_referenceable_type): Return 0 if TYPE_FOR_JAVA. Support 1588 calls from old-style code, too. 1589 (check_ktype): Use same_type_p. 1590 (check_btype): Use same_type_p. Don't pull out TYPE_MAIN_VARIANT. 1591 (build_qualified_name): Simplify logic. 1592 (process_overload_item): Strip typedefs and quals at the top. 1593 (build_mangled_name_for_type_with_Gcode): Remove call to 1594 type_canonical_variant. 1595 (build_mangled_name): Likewise. Remove support for old-style 1596 repeats, which have been disabled since 2.7.2. Don't mess with 1597 TREE_USED. 1598 (build_decl_overload_real): Don't mess with TREE_USED. 1599 16001999-03-13 Nathan Sidwell <nathan@acm.org> 1601 1602 * error.c (cp_printers): Add 'F' escape character. 1603 (dump_type_real): Remove TREE_LIST (fnargs) printing. 1604 Functionality moved to dump_parameters. 1605 (dump_type_suffix): Use dump_parameters and dump_exception_spec. 1606 (dump_function_decl): Extend meaning of V parameter. Use 1607 dump_parameters and dump_exception_spec. 1608 (dump_parameters): New static function. 1609 (dump_exception_spec): New static function. 1610 (fndecl_as_string): Change argument semantics. Use 1611 dump_function_decl directly. 1612 1613 * sig.c (build_signature_table_constructor): Use cp_error. 1614 16151999-03-13 Martin von L�wis <loewis@informatik.hu-berlin.de> 1616 1617 * semantics.c (finish_switch_cond): Handle error cases gracefully. 1618 Detected by g++.law/enum5.C. 1619 1620 * typeck.c (build_modify_expr): Check for errors after resolving 1621 offsets. Detected by g++.brendan/static1.C. 1622 1623 * decl.c (complete_array_type): Ignore initial_value if it is an 1624 error. Detected by g++.benjamin/17930.C. 1625 1626 * typeck2.c (process_init_constructor): Return error if one argument 1627 is in error. Detected by g++.benjamin/13478.C. 1628 16291999-03-12 Martin von L�wis <loewis@informatik.hu-berlin.de> 1630 1631 * decl.c (select_decl): Allow class templates when we need types. 1632 * decl2.c (ambiguous_decl): Likewise. 1633 16341999-03-12 Mark Mitchell <mark@markmitchell.com> 1635 1636 * lex.c (do_identifier): Correct call to enforce_access. 1637 * search.c (accessible_p): Tweak comment. 1638 16391999-03-10 Mark Mitchell <mark@markmitchell.com> 1640 1641 * semantics.c (begin_class_definition): Call build_self_reference. 1642 (finish_member_declaration): Set DECL_CONTEXT for TYPE_DECLs. 1643 1644 * search.c (assert_canonical_unmarked): Fix typo in prototype. 1645 1646 * search.c (dfs_canonical_queue): New function. 1647 (dfs_assert_unmarked_p): Likewise. 1648 (assert_canonical_unmarked): Likewise. 1649 (access_in_type): Use it. 1650 (accessible_p): Likewise. Walk the whole tree when umarking. 1651 1652 * sig.c (build_signature_table_constructor): Use accessible_p 1653 instead of compute_access. 1654 16551999-03-09 Jason Merrill <jason@yorick.cygnus.com> 1656 1657 * call.c (add_builtin_candidates): Handle overloaded conversion ops. 1658 16591999-03-09 Mark Mitchell <mark@markmitchell.com> 1660 1661 * cp-tree.h (flag_access_control): Declare. 1662 (TREE_VIA_PPUBLIC): Document. 1663 (DECL_NONSTATIC_MEMBER_P): New macro. 1664 (enforce_access): Return an indication of whether or not access 1665 was permitted. 1666 (build_self_reference): Change prototype. 1667 (compute_access): Replace with ... 1668 (accessible_p): New function. 1669 (dfs_walk): Change prototype. 1670 (dfs_unmark): Likewise. 1671 (markedp): Likewise. 1672 * call.c (enforce_access): Use accessible_p. 1673 * class.c (build_self_reference): Insert the declaration into the 1674 list of members for this type, and make it public. 1675 * decl.c (xref_basetypes): Avoid ill-timed recursion. 1676 * init.c (build_offset_ref): Use lookup_member, not three separate 1677 name-lookups. Call enforce_access rather than checking for 1678 illegal accesses here. 1679 (resolve_offset_ref): Likewise. 1680 * lex.c (do_identifier): Likewise. 1681 * method.c (hack_identifier): Likewise. 1682 * parse.y (self_reference): Remove. 1683 (opt_component_decl_list): Don't use it. 1684 * parse.c: Regenerated. 1685 * pt.c (print_candidates): Generalize to handle lists of 1686 overloaded functions. 1687 (instantiate_class_template): Don't rely on TREE_VIA_PRIVATE; it's 1688 not set. 1689 (get_template_base): Use new calling convention for dfs_walk. 1690 * search.c: Include varray.h. Add prototypes. 1691 (dfs_walk): Accept a data pointer to pass to the work functions. 1692 All callers changed. All work functions changed. 1693 (breadth_first_search): Rename to bfs_walk, and make consistent 1694 with dfs_walk. 1695 (dfs_walk_real): New function. 1696 (canonical_binfo): New function. 1697 (context_for_name_lookup): Likewise. 1698 (shared_marked_p): Likewise. 1699 (shared_unmarked_p): Likewise. 1700 (lokup_field_queue_p): Likewise. 1701 (lookup_field_r): Generalize to handle both functions and fields. 1702 (lookup_field): Just call lookup_member. 1703 (lookup_fnfields): Likewise. 1704 (lookup_member): Move body of lookup_field here and generalize. 1705 (dfs_accessible_queue_p): Likewise. 1706 (dfs_accessible_p): Likewise. 1707 (dfs_access_in_type): Likewise. 1708 (access_in_type): Likewise. 1709 (compute_access): Remove, and replace with ... 1710 (accessible_p): New function. 1711 (vbase_types): Remove. 1712 (vbase_decl_ptr_intermediate): Likewise. 1713 (vbase_decl_ptr): Likewise. 1714 (vbase_init_result): Likewise. 1715 (closed_envelopes): Likewise. 1716 (bvtable): Likewise. 1717 17181999-03-09 Jason Merrill <jason@yorick.cygnus.com> 1719 1720 * call.c (add_function_candidate): Check for proper number of args 1721 before checking the validity of those args. 1722 17231999-03-06 Jason Merrill <jason@yorick.cygnus.com> 1724 1725 * cp-tree.h (struct lang_type): Add anon_union field. 1726 (ANON_UNION_TYPE_P): Use it instead of examining type. 1727 (SET_ANON_UNION_TYPE_P): New macro. 1728 * decl.c (check_tag_decl): Use it. 1729 1730 * search.c (compute_access): Handle non-type contexts earlier, and 1731 handle NULL_TREE. 1732 1733 * tree.c (build_exception_variant): Use copy_to_permanent. 1734 1735 * decl2.c (setup_initp): Give statics with no priority the default 1736 priority here. 1737 (do_dtors, do_ctors, finish_file): Remove special handling of 1738 non-prioritized statics. 1739 17401999-03-05 Mark Mitchell <mark@markmitchell.com> 1741 1742 * cp-tree.h (ANON_UNION_TYPE_P): Robustify. 1743 * decl.c (make_typename_type): Don't issue an error if an 1744 immediate lookup fails; it migt be resolved later. 1745 * friend.c (is_friend): Add comment. 1746 * search.c (breadth_first_search): Add POSTFN and DATA 1747 parameters. Tidy. All callers changed. 1748 (lookup_field_queue_p): New function. 1749 (lookup_field_r): Likewise. 1750 (lookup_field_post): Likewise. 1751 (lookup_field): Use them, via breadth_first_search, instead of 1752 duplicating logic. 1753 (compute_access): Robustify. 1754 (lookup_fnfield_info): New structure. 1755 17561999-03-05 Jason Merrill <jason@yorick.cygnus.com> 1757 1758 * pt.c (tsubst, case ARRAY_REF): Use tsubst_expr again. 1759 17601999-03-03 Jason Merrill <jason@yorick.cygnus.com> 1761 1762 * class.c, decl2.c, method.c, pt.c: Add 'static' to make SunOS 4 1763 cc happy. 1764 1765 * decl2.c (import_export_class): Also return if 1766 CLASSTYPE_INTERFACE_ONLY is set. 1767 17681999-03-03 Martin von L�wis <loewis@informatik.hu-berlin.de> 1769 1770 * decl.c (push_overloaded_decl): Only overwrite the old binding if 1771 there was one. 1772 * decl2.c (do_local_using_decl): Fix loop termination. 1773 17741999-03-02 Mark Mitchell <mark@markmitchell.com> 1775 1776 * cp-tree.h (determine_specialization): Don't declare. 1777 * pt.c (determine_specialization): Make it static. Eliminate 1778 complain parameter. Note that decl is always non-NULL now, and 1779 simplify accordingly. 1780 1781 * decl.c (maybe_push_to_top_level): Always call 1782 push_cp_function_context. 1783 (pop_from_top_level): Always call pop_cp_function_context. 1784 17851999-02-26 Nathan Sidwell <nathan@acm.org> 1786 1787 * typeck.c (complete_type_or_else): Add VALUE arg, for helpful 1788 diagnostics. 1789 * cp-tree.h (complete_type_or_else): Added VALUE parameter. 1790 * init.c (build_new_1): Extra arg to complete_type_or_else. 1791 (build_delete): Likewise. 1792 * typeck.c (require_complete_type): Likewise. 1793 (pointer_int_sum): Likewise. 1794 (pointer_diff): Likewise. 1795 (build_component_ref): Likewise. 1796 1797 * typeck2.c (incomplete_type_error): Always use cp_error. 1798 Show declaration of undefined type, if appropriate. 1799 Deal with UNKNOWN_TYPE nodes. 1800 1801 * typeck.c (require_complete_type): Use TYPE_SIZE as 1802 size_zero_node to mean incomplete type. 1803 (require_complete_type_in_void): New function. 1804 (build_compound_expr): Call complete_type_in_void for LHS. 1805 (build_c_cast): Call complete_type_in_void for void cast. 1806 * cvt.c (ocp_convert): Call complete_type_in_void for void cast. 1807 * decl.c (cplus_expand_expr_stmt): Void expression checks moved to 1808 require_complete_type_in_void. Call it. 1809 * cp-tree.h (require_complete_type_in_void): Prototype new function. 1810 1811 * typeck.c (convert_arguments): Use alternative format for 1812 function decls. Don't require_complete_type here. Simplify 1813 diagnostic printing. 1814 (convert_for_initialization): Don't require_complete_type on RHS yet. 1815 * call.c (convert_arg_to_ellipsis): Call require_complete_type. 1816 1817 * call.c (build_over_call): Cope with qualified void return type. 1818 * semantics.c (finish_call_expr): Likewise. 1819 * typeck.c (build_function_call_real): Likewise. 1820 (c_expand_return): Likewise. 1821 * decl2.c (reparse_absdcl_as_expr): Cope with qualified void type. 1822 1823 * call.c (print_z_candidates): Use alternate print format, to be 1824 consistent with (pt.c) print_candidates. 1825 * method.c (hack_identifier): List candidate members. 1826 * search.c (lookup_field): Build ambiguous list, and show it, if 1827 ambiguous. 1828 18291999-02-26 Mark Mitchell <mark@markmitchell.com> 1830 1831 * typeck.c (decay_conversion): Don't confuse constant array 1832 variables with their initializers. 1833 1834 * decl.c (duplicate_decls): Copy DECL_TEMPLATE_INSTANTIATED when 1835 merging decls. 1836 * pt.c (regenerate_decl_from_template): Tweak for clarity. 1837 (instantiate_decl): Mark a decl instantiated before regenerating 1838 it to avoid recursion. 1839 * tree.c (mapcar): Don't call decl_constant_value unless we know 1840 something is TREE_READONLY_DECL_P. 1841 1842 * class.c (check_for_override): Don't stop checking when we find 1843 the first overridden function. Delete #if 0'd code. 1844 * search.c (get_matching_virtual): Likewise. 1845 18461999-02-25 Richard Henderson <rth@cygnus.com> 1847 1848 * lang-specs.h: Define __FAST_MATH__ when appropriate. 1849 18501999-02-24 Mike Stump <mrs@wrs.com> 1851 1852 * typeck.c (convert_for_assignment): Allow boolean integral constant 1853 expressions to convert to null pointer. 1854 18551999-02-24 Martin von Loewis <loewis@informatik.hu-berlin.de> 1856 1857 * decl.c (lookup_namespace_name): Resolve namespace aliases. 1858 1859 * class.c (push_nested_class): Allow namespaces. 1860 1861 * decl2.c (set_decl_namespace): Add friendp parameter. 1862 * decl.c (grokfndecl): Pass it. 1863 (grokvardecl): Likewise. 1864 * cp-tree.h: Change declaration. 1865 18661999-02-24 Jason Merrill <jason@yorick.cygnus.com> 1867 1868 * pt.c (tsubst): Allow an array of explicit size zero. 1869 18701999-02-23 Jason Merrill <jason@yorick.cygnus.com> 1871 1872 * errfn.c: Change varargs code to look like toplev.c. 1873 1874 * method.c (process_modifiers): Don't prepend 'U' for char or 1875 wchar_t. 1876 18771999-02-20 Craig Burley <craig@jcb-sc.com> 1878 1879 * Make-lang.in (cplib2.ready): Don't consider updating 1880 cplib2 stuff if the current directory isn't writable, as 1881 it won't work (such as during a `make install'). 1882 1883Sun Feb 21 20:38:00 1999 H.J. Lu (hjl@gnu.org) 1884 1885 * decl2.c (start_objects): Make file scope constructors and 1886 destructors local to the file if ASM_OUTPUT_CONSTRUCTOR and 1887 ASM_OUTPUT_DESTRUCTOR are defined. 1888 18891999-02-19 Mark Mitchell <mark@markmitchell.com> 1890 1891 * cp-tree.h (CLASSTYPE_METHOD_VEC): Adjust comment. 1892 (fn_type_unification): Adjust prototype. 1893 (lookup_fnfields_1): Declare. 1894 * call.c (add_template_candidate_real): Adjust call to 1895 fn_type_unification. 1896 * class.c (add_method): Don't allow duplicate declarations of 1897 constructors or destructors. 1898 (resolve_address_of_overloaded_function): Remove unused variable. 1899 Adjust call to fn_type_unification. 1900 * decl.c (grokfndecl): Be more robust in the face of illegal 1901 specializations. 1902 * decl2.c (check_classfn): Remove hokey handling of member 1903 templates. 1904 * pt.c (determine_specialization): Improve comments. Adjust to 1905 handle template argument deduction as per the standard. 1906 (check_explicit_specialization): Fix comment spacing. Handle 1907 type-conversion operators correctly. Improve error-recovery. 1908 (fn_type_unification): Remove EXTRA_FN_ARG parameter. 1909 (get_bindings_real): Simplify handling of static members. 1910 * search.c (lookup_fnfields_1): Make it have external linkage. 1911 * typeck.c (compparms): Fix comment. 1912 (build_unary_op): Don't try to figure out which template 1913 specialization is being referred to when when the address-of 1914 operator is used with a template function. 1915 1916Thu Feb 18 23:40:01 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1917 1918 * cp-tree.h (lvalue_or_else): Qualify a char* with the `const' 1919 keyword to match an analogous change at the top level. 1920 1921 * tree.c (lvalue_or_else): Likewise. 1922 19231999-02-17 Mark Mitchell <mark@markmitchell.com> 1924 1925 * decl.c (xref_basetypes): Comment. 1926 * pt.c (instantiate_class_template): Use xref_basetypes. 1927 19281999-02-16 Mark Mitchell <mark@markmitchell.com> 1929 1930 * cp-tree.h (tsubst): Change prototype. 1931 (tsubst_expr): Likewise. 1932 (tsubst_copy): Likewise. 1933 (type_unification): Remove prototype. 1934 * call.c (convert_default_arg): Adjust call to tsubst_expr. 1935 * class.c (resolve_address_of_overloaded_function): Just use 1936 fn_type_unification. 1937 * decl.c (grokdeclarator): Adjust call to tsubst. 1938 * method.c (build_template_parm_names): Likewise. 1939 * pt.c (GTB_VIA_VIRTUAL): New macro. 1940 (GTB_IGNORE_TYPE): Likewise. 1941 (resolve_overloaded_unification): Add `complain' parameter. 1942 (try_one_overload): Likewise. 1943 (tsubst_template_arg_vector): Likewise. 1944 (tsubst_template_parms): Likewise. 1945 (tsubst_aggr_type): Likewise. 1946 (tsubst_arg_types): Likewise. 1947 (tsubst_call_declarator_parms): Likewise. 1948 (unify): Remove explicit_mask. 1949 (type_unification_real): Likewise. 1950 (get_template_base_recursive): Likewise. 1951 (coerce_template_template_parms): Provide prototype. 1952 (tsubst_function_type): Likewise. 1953 (try_class_unification): New function. 1954 All callers changed to use new complain parameter. 1955 (get_template_base): Use try_class_unification. 1956 (unify): Adjust handling of classes derived from template types. 1957 (fn_type_unification): Substitute explicit arguments before 1958 unification. 1959 19601999-02-16 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu> 1961 1962 * decl.c (pushdecl): Remove dead code. 1963 19641999-02-16 Jason Merrill <jason@yorick.cygnus.com> 1965 1966 * decl2.c (finish_objects): Fix code I missed in previous change. 1967 19681999-02-13 Jason Merrill <jason@yorick.cygnus.com> 1969 1970 * decl.c (grokfndecl): Return NULL_TREE instead of error_mark_node. 1971 (grokdeclarator): Don't expect error_mark_node from grokfndecl. 1972 1973 * pt.c (maybe_process_partial_specialization): Complain about 1974 'template <>' on non-specialization. 1975 19761999-02-10 Jason Merrill <jason@yorick.cygnus.com> 1977 1978 * decl.c (grokdeclarator): Catch wierd declarators. 1979 * decl2.c (finish_file): Don't abort because of namespace parsing 1980 failure. 1981 (check_decl_namespace): Remove. 1982 19831999-02-09 Mark Mitchell <mark@markmitchell.com> 1984 1985 * cp-tree.h (get_template_base): Don't declare. 1986 (dfs_walk): Declare. 1987 (dfs_unmark): Likewise. 1988 (markedp): Likewise. 1989 * pt.c (unify): Remove duplicate declaration. Pass tparms and 1990 targs to get_template_base. 1991 (get_template_base_recursive): Move here from search.c. Check to 1992 see that the base found can be instantiated to form the desired 1993 type. 1994 (get_template_base): Likewise. 1995 (get_class_bindings): Simplify. 1996 * search.c (get_template_base_recursive): Move to pt.c. 1997 (get_template_base): Likewise. 1998 (markedp): Make it global. 1999 (dfs_walk): Likewise. 2000 (dfs_unmark): Likewise. 2001 20021999-02-07 Jason Merrill <jason@yorick.cygnus.com> 2003 2004 * pt.c (maybe_process_partial_specialization): Complain about 2005 specialization in wrong namespace. 2006 * tree.c (decl_namespace_context): New fn. 2007 20081999-02-06 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu> 2009 2010 * decl2.c (arg_assoc_type): Handle TEMPLATE_TEMPLATE_PARM. 2011 * pt.c (coerce_template_template_parms): Handle nested 2012 template template parameters. 2013 2014Sat Feb 6 18:08:40 1999 Jeffrey A Law (law@cygnus.com) 2015 2016 * typeck2.c: Update email addresses. 2017 20181999-02-04 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu> 2019 2020 * pt.c (unify): Call coerce_template_parms with the COMPLAIN flag 2021 turned off. 2022 20231999-02-04 Jason Merrill <jason@yorick.cygnus.com> 2024 2025 * lex.c (retrofit_lang_decl): Split out... 2026 (build_lang_decl): From here. 2027 * decl.c (pushdecl): Call it for functions generated by the middle 2028 end that don't have DECL_LANG_SPECIFIC. 2029 * cp-tree.h: Declare it. 2030 2031 * decl2.c: Remove flag_init_priority. Always enable initp stuff. 2032 (start_objects, finish_objects): Only use special 2033 init_priority code if the user specified a priority. 2034 (do_ctors, do_dtors): Use DEFAULT_INIT_PRIORITY for the non-initp 2035 objects. 2036 2037Wed Feb 3 22:50:17 1999 Marc Espie <Marc.Espie@liafa.jussieu.fr> 2038 2039 * Make-lang.in (GXX_OBJS): Remove choose-temp.o, pexecute.o and 2040 mkstemp.o. Get them from libiberty now. 2041 (DEMANGLER_PROG): Simlarly, remove getopt.o getopt1.o. 2042 2043Tue Feb 2 22:38:48 1999 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> 2044 2045 * decl2.c (lang_decode_option): Use read_integral_parameter. 2046 20471999-02-01 Mark Mitchell <mark@markmitchell.com> 2048 2049 * pt.c (tsubst, case TYPENAME_TYPE): Check TYPE_BEING_DEFINED 2050 before calling complete_type_or_else. 2051 2052Mon Feb 1 09:49:52 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2053 2054 * input.c (inline): Don't define, its handled by system.h. 2055 2056Sun Jan 31 20:34:29 1999 Zack Weinberg <zack@rabi.columbia.edu> 2057 2058 * decl2.c: Don't define flag_no_ident here. Don't process 2059 -f(no-)ident here. 2060 * cp-tree.h: Don't declare flag_no_ident here. 2061 * lang-specs.h: Map -Qn to -fno-ident. 2062 20631999-01-28 Jason Merrill <jason@yorick.cygnus.com> 2064 2065 * cp-tree.h (struct tree_binding): Replace scope field with a union. 2066 (BINDING_SCOPE): Adjust. 2067 * decl.c (BINDING_LEVEL): Adjust. 2068 20691999-01-26 Jason Merrill <jason@yorick.cygnus.com> 2070 2071 * pt.c (instantiate_class_template): Set up the DECL_INITIAL of 2072 member constants. 2073 2074 * init.c (expand_member_init): Pull out TYPE_MAIN_VARIANT in 2075 a ctor initializer. 2076 2077 * tree.c (equal_functions): Fix name in prototype. 2078 2079 * decl.c (push_local_binding): Add FLAGS argument. 2080 (pushdecl, push_overloaded_decl): Pass it. 2081 * decl2.c (do_local_using_decl): Likewise. 2082 * cp-tree.h: Adjust prototype. 2083 * decl.c (poplevel): Fix logic. 2084 2085 * decl.c (push_local_binding): Also wrap used decls in a TREE_LIST. 2086 (poplevel): Handle that. Fix logic for removing TREE_LISTs. 2087 (cat_namespace_levels): Don't loop forever. 2088 20891999-01-25 Richard Henderson <rth@cygnus.com> 2090 2091 * typeck.c (build_reinterpret_cast): Fix typo in duplicated test. 2092 20931999-01-25 Jason Merrill <jason@yorick.cygnus.com> 2094 2095 * class.c (resolve_address_of_overloaded_function): Mark the 2096 chosen function used. 2097 2098 * call.c (build_call): Make sure that a function coming in has 2099 been marked used already. 2100 * decl.c (expand_static_init): Call mark_used instead of 2101 assemble_external. 2102 * except.c (call_eh_info, do_pop_exception, expand_end_eh_spec, 2103 alloc_eh_object, expand_throw): Likewise. 2104 * init.c (build_builtin_delete_call): Likewise. 2105 * rtti.c (call_void_fn, get_tinfo_fn, build_dynamic_cast_1, 2106 expand_si_desc, expand_class_desc, expand_ptr_desc, expand_attr_desc, 2107 expand_generic_desc): Likewise. 2108 21091999-01-25 Martin von L�wis <loewis@informatik.hu-berlin.de> 2110 2111 * tree.c (equal_functions): New function. 2112 (ovl_member): Call it. 2113 21141999-01-24 Jason Merrill <jason@yorick.cygnus.com> 2115 2116 * cvt.c (cp_convert_to_pointer): Fix conversion of 0 to pmf. 2117 21181999-01-25 Martin von Loewis <loewis@informatik.hu-berlin.de> 2119 2120 * decl.c (decls_match): Return 1 if old and new are identical. 2121 (push_overloaded_decl): Set OVL_USED when PUSH_USING. 2122 21231999-01-24 Jason Merrill <jason@yorick.cygnus.com> 2124 2125 * decl.c (start_function): Make member functions one_only on windows. 2126 * decl2.c (import_export_decl): Likewise. 2127 2128 * decl.c (grokdeclarator): Don't complain about implicit int in 2129 a system header. Change same-name field check to not complain in 2130 a system header instead of within extern "C". 2131 21321999-01-21 Mark Mitchell <mark@markmitchell.com> 2133 2134 * cp-tree.h (PUSH_GLOBAL): New macro. 2135 (PUSH_LOCAL): Likewise. 2136 (PUSH_USING): Likewise. 2137 (namespace_bindings_p): Declare. 2138 (push_overloaded_decl): Likewise. 2139 * decl.c (push_overloaded_decl): Don't make it static. Check for 2140 illegal declarations after using declarations here. 2141 (namespace_bindings_p): Likewise. 2142 (duplicate_decls): Don't consider declarations from different 2143 namespaces to be the same. 2144 (pushdecl): Use symbolic PUSH_ constants in calls to 2145 push_overloaded_decl. 2146 (push_overloaded_decl_1): Likewise. 2147 * decl2.c (validate_nonmember_using_decl): Tweak `std' handling. 2148 (do_nonmember_using_decl): Check for illegal using declarations 2149 after ordinary declarations here. 2150 (do_local_using_decl): Call pushdecl to insert declarations. 2151 21521999-01-21 Jason Merrill <jason@yorick.cygnus.com> 2153 2154 * decl.c (grokdeclarator): Fix lang_c -> lang_name_c typo. 2155 21561999-01-21 Mark Mitchell <mark@markmitchell.com> 2157 2158 * tree.c (build_cplus_array_type_1): Don't call build_array_type 2159 for types involving template parameters. 2160 2161 * cp-tree.h (PARM_DECL_EXPR): Delete. 2162 (convert_default_arg): Change prototype. 2163 (check_default_argument): Declare. 2164 (search_tree): Likewise. 2165 * call.c (convert_default_arg): Take the function to which the 2166 default argument belongs as a parameter, and do any necessary 2167 instantiation here, instead of ... 2168 (build_over_call): Here. 2169 * decl.c (local_variable_p): New function. 2170 (check_default_argument): Likewise, split out and tidied from ... 2171 (grokparms): Here. 2172 * error.c (dump_expr): Don't set PARM_DECL_EXPR. 2173 * pt.c (tsubst_call_declarator_parms): New function. 2174 (for_each_template_parm): Handle ARRAY_REFs. Do the obvious thing 2175 with CALL_EXPRs, rather than trying to be clever. 2176 (tsubst): Use tsubst_call_declarator_parms. 2177 * tree.c (search_tree): Don't make it static. 2178 * typeck.c (convert_arguments): Use new interface to 2179 convert_default_arg. 2180 21811999-01-20 Mark Mitchell <mark@markmitchell.com> 2182 2183 * error.c (dump_function_decl): Don't print the argument types for 2184 a function when the verbosity level is negative. 2185 2186 * call.c (build_over_call): Check format attributes at call-time. 2187 2188 * pt.c (tsubst_copy): Fix comment. 2189 (unify): Don't allow unification with variable-sized arrays. 2190 2191 * semantics.c (finish_stmt_expr): When processing a template make 2192 the BIND_EXPR long-lived. 2193 21941999-01-19 Jason Merrill <jason@yorick.cygnus.com> 2195 2196 * decl2.c (finish_vtable_vardecl): Make vtables comdat here. 2197 (import_export_vtable): Not here. 2198 21991999-01-18 Jason Merrill <jason@yorick.cygnus.com> 2200 2201 * typeck.c (build_component_ref): Wrap an OVERLOAD around a unique 2202 non-static member function. 2203 22041999-01-18 Nathan Sidwell <nathan@acm.org> 2205 2206 * class.c (instantiate_type): Only diagnose illegal address of member 2207 function if complaining. 2208 2209 * decl.c (lookup_name_real): Remove duplicate code. 2210 22111999-01-18 Jason Merrill <jason@yorick.cygnus.com> 2212 2213 * tree.c (copy_template_template_parm): Use permanent_obstack. 2214 22151999-01-18 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu> 2216 2217 * pt.c (unify): Remove restrictions on deduction of argument 2218 of template template parameters. 2219 22201999-01-18 Nathan Sidwell <nathan@acm.org> 2221 2222 * rtti.c (build_dynamic_cast_1): Resolve OFFSET_REF exprs. 2223 2224 * class.c (resolve_address_of_overloaded_function): Show list of 2225 all candidates, when none of them match. 2226 22271999-01-18 Chip Salzenberg <chip@perlsupport.com> 2228 2229 * typeck.c (comp_ptr_ttypes_reinterpret): Per ANSI, tighten up 2230 definition of 'casting away const' in reinterpret_cast<>. 2231 22321999-01-18 Graham <grahams@rcp.co.uk> 2233 2234 * cvt.c: Add include for decl.h, remove extern for 2235 static_aggregates which is now provided by decl.h. 2236 2237 * Makefile.in (cvt.o): Add dependency for decl.h and missing 2238 dependencies for convert.h and flags.h. 2239 22401999-01-18 Nathan Sidwell <nathan@acm.org> 2241 2242 * decl2.c (do_dtors): Set current location to that of the 2243 decl, for sensible diagnostics and debugging. 2244 (check_classfn): Issue `incomplete type' error, if 2245 class is not defined. 2246 22471999-01-16 Jason Merrill <jason@yorick.cygnus.com> 2248 2249 * cp-tree.h: Add prototype for bound_pmf_p. 2250 22511999-01-16 Jason Merrill <jason@yorick.cygnus.com> 2252 Manfred Hollstein <manfred@s-direktnet.de> 2253 2254 * decl.c (grokdeclarator): Don't make 'main(){}' an error with only 2255 -Wreturn-type. 2256 22571999-01-16 Nathan Sidwell <nathan@acm.org> 2258 2259 * cp-tree.h (struct lang_type): Added has_mutable flag. 2260 (CLASSTYPE_HAS_MUTABLE): New macro to access it. 2261 (TYPE_HAS_MUTABLE_P): New macro to read it. 2262 (cp_has_mutable_p): Prototype for new function. 2263 * class.c (finish_struct_1): Set has_mutable from members. 2264 * decl.c (cp_finish_decl): Clear decl's TREE_READONLY flag, if 2265 it contains a mutable. 2266 * typeck.c (cp_has_mutable_p): New function. 2267 22681999-01-15 Mark Mitchell <mark@markmitchell.com> 2269 2270 * pt.c (process_template_parm): Ignore top-level qualifiers on 2271 non-type parameters. 2272 2273 * decl.c (start_function): Use current_function_parms in the call 2274 to require_complete_type_for_parms, not the probably empty 2275 DECL_ARGUMENTS. 2276 22771999-01-14 Jason Merrill <jason@yorick.cygnus.com> 2278 2279 * semantics.c (finish_asm_stmt): Don't warn about redundant volatile. 2280 2281 * decl2.c (import_export_class): MULTIPLE_SYMBOL_SPACES only means 2282 that we don't suppress the other copies. 2283 * lex.c (handle_cp_pragma): Likewise. 2284 22851999-01-13 Mark Mitchell <mark@markmitchell.com> 2286 2287 * decl.c (grokdeclarator): Undo 1998-12-14 change. 2288 * tree.c (build_cplus_array_type_1): Likewise. 2289 * pt.c (instantiate_class_template): Remove misleading comment. 2290 (tsubst_aggr_type): Substitute if there are template parameters, 2291 regardless of whether or not they use template arguments. 2292 (unify): Likewise, but for unification. 2293 22941999-01-12 Richard Henderson <rth@cygnus.com> 2295 2296 * cp-tree.h (flag_permissive): Declare extern. 2297 22981999-01-06 Mark Mitchell <mark@markmitchell.com> 2299 2300 * cp-tree.h (IDENTIFIER_TYPENAME_P): Use OPERATOR_TYPENAME_FORMAT 2301 here. 2302 (lang_type): Add is_partial_instantiation. Decrease width of 2303 dummy. 2304 (PARTIAL_INSTANTIATION_P): New macro. 2305 (OPERATOR_TYPENAME_P): Remove. 2306 * decl.c (unary_op_p): Use IDENTIFIER_TYPENAME_P, not 2307 OPERATOR_TYPENAME_P. 2308 (grok_op_properties): Likewise. 2309 * friend.c (do_friend): Handle friends that are member functions 2310 correctly. 2311 * lex.c (init_parse): Use OPERATOR_TYPENAME_FORMAT. 2312 * pt.c (instantiate_class_template): Rework for clarity. Avoid 2313 leaving TYPE_BEING_DEFINED set in obscure cases. Don't do 2314 any more partial instantiation than is absolutely necessary for 2315 implicit typename. Set PARTIAL_INSTANTIATION_P. 2316 (tsubst_decl): Use IDENTIFIER_TYPENAME_P. 2317 * semantics.c (begin_class_definition): Handle partial 2318 specializations of a type that was previously partially 2319 instantiated. 2320 2321Wed Jan 6 03:18:53 1999 Mark Elbrecht <snowball3@usa.net. 2322 2323 * g++spec.c (LIBSTDCXX): Provide default definition. 2324 (lang_specific_driver): Use LIBSTDCXX instead of "-lstdc++". 2325 2326Tue Jan 5 22:11:25 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2327 2328 * Make-lang.in (g++.o): Depend on prefix.h. 2329 23301999-01-04 Jason Merrill <jason@yorick.cygnus.com> 2331 2332 * tree.c (bound_pmf_p): New fn. 2333 * typeck.c (build_c_cast): Use it. 2334 2335 * decl.c (grok_op_properties): Use same_type_p. 2336 2337Tue Dec 22 15:09:25 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2338 2339 * Makefile.in (cvt.o): Depend on toplev.h. 2340 2341 * cp-tree.h (check_template_shadow, pod_type_p): Add prototypes. 2342 2343 * cvt.c: Include toplev.h. 2344 2345 * except.c (get_eh_caught, get_eh_handlers): Hide prototypes and 2346 definitions. 2347 2348 * init.c (expand_vec_init): Initialize variable `itype'. 2349 2350 * lex.c (yyerror): Cast the argument passed to a ctype function to 2351 an unsigned char. 2352 2353 * method.c (build_mangled_C9x_name): Wrap prototype and definition 2354 in "HOST_BITS_PER_WIDE_INT >= 64". 2355 2356 * typeck.c (build_binary_op): Mark parameter `convert_p' with 2357 ATTRIBUTE_UNUSED. 2358 23591998-12-22 Mark Mitchell <mark@markmitchell.com> 2360 2361 * cp-tree.h (TYPE_RAISES_EXCEPTIONS): Improve documentation. 2362 * tree.c (build_exception_variant): Don't crash on empty throw 2363 specs. 2364 23651998-12-18 DJ Delorie <dj@cygnus.com> 2366 2367 * cvt.c (convert_to_reference): Check for both error_mark_node 2368 and NULL_NODE after call to convert_for_initialization. 2369 23701998-12-17 Jason Merrill <jason@yorick.cygnus.com> 2371 2372 * error.c (interesting_scope_p): New fn. 2373 (dump_simple_decl): Use it. 2374 (dump_expr, case CONSTRUCTOR): Force a & for a PMF. 2375 (dump_expr, case OFFSET_REF): Print ->* if appropriate. 2376 23771998-12-16 Mark Mitchell <mark@markmitchell.com> 2378 2379 * class.c (resolve_address_of_overloaded_function): Do conversion 2380 to correct type here, rather than ... 2381 (instantiate_type): Here. 2382 2383 * cp-tree.h (DECL_TEMPLATE_PARM_P): New macro. 2384 (DECL_TEMPLATE_TEMPLATE_PARM_P): Use it. 2385 (decl_template_parm_p): Remove. 2386 * decl.c (pushdecl): Don't set DECL_CONTEXT for a template 2387 parameter. 2388 * lex.c (do_identifier): Use DECL_TEMPLATE_PARM_P. 2389 * pt.c (push_inline_template_parms_recursive): Set it. 2390 (decl_template_parm_p): Remove. 2391 (check_template_shadow): Use DECL_TEMPLATE_PARM_P. 2392 (process_template_parm): Set it. 2393 2394Wed Dec 16 16:33:58 1998 Dave Brolley <brolley@cygnus.com> 2395 2396 * lang-specs.h (default_compilers): Pass -MD, -MMD and -MG to cc1plus 2397 if configured with cpplib. 2398 23991998-12-15 Mark Mitchell <mark@markmitchell.com> 2400 2401 * decl.c (poplevel): Make sure ns_binding is initialized. 2402 2403 * decl.c (finish_function): Undo inadvertent change in previous 2404 patch. 2405 24061998-12-14 Mark Mitchell <mark@markmitchell.com> 2407 2408 * class.c (pushclass): Tweak handling of class-level bindings. 2409 (resolve_address_of_overloaded_function): Update pointer-to-member 2410 handling. 2411 (instantiate_type): Likewise. 2412 * cvt.c (cp_convert_to_pointer): Likewise. 2413 * decl.c (pop_binding): Take the DECL to pop, not just the name. 2414 Deal with `struct stat' hack. 2415 (binding_level): Add to documentation. 2416 (push_binding): Clear BINDING_TYPE. 2417 (add_binding): New function. 2418 (push_local_binding): Use it. 2419 (push_class_binding): Likewise. 2420 (poplevel): Adjust calls to pop_binding. 2421 (poplevel_class): Likewise. 2422 (pushdecl): Adjust handling of TYPE_DECLs; add bindings for hidden 2423 declarations to current binding level. 2424 (push_class_level_binding): Likewise. 2425 (push_overloaded_decl): Adjust handling of OVERLOADs in local 2426 bindings. 2427 (lookup_namespace_name): Don't crash when confronted with a 2428 TEMPLATE_DECL. 2429 (lookup_name_real): Do `struct stat' hack in local binding 2430 contexts. 2431 (build_ptrmemfunc_type): Adjust documentation. 2432 (grokdeclarator): Don't avoid building real array types when 2433 processing templates unless really necessary. 2434 (finish_method): Adjust calls to pop_binding. 2435 * decl2.c (reparse_absdcl_as_expr): Recursively call ourselves, 2436 not reparse_decl_as_expr. 2437 (build_expr_from_tree): Deal with a template-id as the function to 2438 call in a METHOD_CALL_EXPR. 2439 * pt.c (convert_nontype_argument): Tweak pointer-to-member handling. 2440 (maybe_adjust_types_For_deduction): Don't do peculiar things with 2441 METHOD_TYPEs here. 2442 (resolve_overloaded_unification): Handle COMPONENT_REFs. Build 2443 pointer-to-member types where necessary. 2444 * tree.c (build_cplus_array_type_1): Don't avoid building real 2445 array types when processing templates unless really necessary. 2446 (build_exception_variant): Compare the exception lists correctly. 2447 24481998-12-13 Mark Mitchell <mark@markmitchell.com> 2449 2450 * cp-tree.def (CPLUS_BINDING): Update documentation. 2451 * cp-tree.h (LOCAL_BINDING_P): New macro. 2452 (lang_identifier): Rename local_value to bindings. 2453 (tree_binding): Make `scope' of type `void*', not `tree'. 2454 (BINDING_SCOPE): Update documentation. 2455 (IDENTIFIER_LOCAL_VALUE): Remove. 2456 (IDENTIFIER_CLASS_VALUE): Document. 2457 (IDENTIFIER_BINDING): New macro. 2458 (IDENTIFIER_VALUE): Likewise. 2459 (TIME_IDENTIFIER_TIME): Likewise. 2460 (TIME_IDENTIFIER_FILEINFO): Likewise. 2461 (IMPLICIT_TYPENAME_P): Likewise. 2462 (set_identifier_local_value): Remove. 2463 (push_local_binding): New function. 2464 (push_class_binding): Likewise. 2465 * class.c (pushclass): Update comments; use push_class_binding. 2466 * decl.c (set_identifier_local_value_with_scope): Remove. 2467 (set_identifier_local_value): Likewise. 2468 (push_binding): New function. 2469 (pop_binding): Likewise. 2470 (binding_level): Update documentation. Remove shadowed. 2471 (BINDING_LEVEL): New macro. 2472 (free_binding_nodes): New variable. 2473 (poplevel): Adjust for new name-lookup scheme. Don't mess up 2474 BLOCK_VARs when doing for-scope extension. Remove effectively 2475 dead code. 2476 (pushlevel_class): Tweak formatting. 2477 (poplevel_class): Adjust for new name-lookup scheme. 2478 (print_binding_level): Likewise. 2479 (store_bindings): Likewise. 2480 (pushdecl): Likewise. 2481 (pushdecl_class_level): Likewise. 2482 (push_class_level_binding): Likewise. 2483 (push_overloaded_decl): Update comments. Adjust for new 2484 name-lookup scheme. 2485 (lookup_name_real): Likewise. 2486 (lookup_name_current_level): Likewise. 2487 (cp_finish_decl): Likewise. 2488 (require_complete_types_for_parms): Likewise. Remove misleading 2489 #if 0'd code. 2490 (grok_parms): Likewise. Don't call 2491 require_complete_types_for_parms here. 2492 (grok_ctor_properties): Don't treat templates as copy 2493 constructors. 2494 (grop_op_properties): Or as assignment operators. 2495 (start_function): Document. Adjust for new name-lookup scheme. 2496 (finish_function): Likewise. 2497 * decl2.c (do_local_using_decl): Use push_local_binding. 2498 * lex.c (begin_definition_of_inclass_inline): New function, split 2499 out from ... 2500 (do_pending_inlines): Here, and ... 2501 (process_next_inline): Here. 2502 (get_time_identifier): Use TIME_IDENTIFIER_* macros. 2503 (init_filename_times): Likewise. 2504 (extract_interface_info): Likewise. 2505 (ste_typedecl_interface_info): Likewise. 2506 (check_newline): Likewise. 2507 (dump_time_statistics): Likewise. 2508 (handle_cp_pragma): Likewise. 2509 (do_identifier): Adjust for new name-lookup scheme. 2510 * parse.y (function_try_block): Return ctor_initializer_opt value. 2511 (fndef): Use it. 2512 (fn.defpen): Pass appropriate values to start_function. 2513 (pending_inline): Use functor_try_block value, and pass 2514 appropriate values to finish_function. 2515 * pt.c (is_member_template): Update documentation; remove handling 2516 of FUNCTION_DECLs. As per name, this function should deal only in 2517 TEMPLATE_DECLs. 2518 (decl_template_parm_p): Change name of olddecl parameter to decl. 2519 (check_template_shadow): Adjust for new name-lookup scheme. 2520 (lookup_template_class): Likewise. 2521 (tsubst_decl): Tweak so as not to confuse member templates with 2522 copy constructors and assignment operators. 2523 (unify): Handle UNION_TYPEs. 2524 * ptree.c (print_lang_identifier): Adjust for new name-lookup scheme. 2525 (lang_print_xnode): Adjust for new name-lookup scheme. 2526 * typeck.c (mark_addressable): Likewise. 2527 (c_expand_return): Likewise. 2528 25291998-12-08 Jason Merrill <jason@yorick.cygnus.com> 2530 2531 * decl.c (grokdeclarator): Allow field with same name as class 2532 in extern "C". 2533 2534 * decl.c (lookup_name_real): Don't limit field lookup to types. 2535 * class.c (check_member_decl_is_same_in_complete_scope): No error 2536 if icv and x are the same. 2537 * lex.c (do_identifier): Tweak error message. 2538 25391998-12-10 Mark Mitchell <mark@markmitchell.com> 2540 2541 * decl.c (start_enum): Use push_obstacks, not 2542 end_temporary_allocation. 2543 (finish_enum): Call pop_obstacks. 2544 25451998-12-10 Mark Mitchell <mark@markmitchell.com> 2546 2547 * class.c (instantiate_type): Return error_mark_node rather than 2548 junk. 2549 25501998-12-09 Mark Mitchell <mark@markmitchell.com> 2551 2552 * cp-tree.h (most_specialized_instantiation): New function. 2553 (print_candidates): Likewise. 2554 * class.c (validate_lhs): Remove. 2555 (resolve_address_of_overloaded_function): New function, split out 2556 and then substantially reworked, from ... 2557 (instantiate_type): Use it. Simplify. 2558 * cvt.c (convert_to_reference): Complain when caller has indicated 2559 that's the right thing to do. Don't crash if instantiate_type 2560 fails. 2561 * pt.c: Substitute `parameters' for `paramters' throughout. 2562 (print_candidates): Don't make it static. 2563 (most_specialized_instantiation): Split out from ... 2564 (most_specialized): Here. 2565 2566Wed Dec 9 15:33:01 1998 Dave Brolley <brolley@cygnus.com> 2567 2568 * lex.c (lang_init_options): Initialize cpplib. 2569 * decl2.c (parse_options,cpp_initialized): Removed. 2570 (lang_decode_option): Move initialization of cpplib to 2571 lang_init_options. 2572 25731998-12-09 Mark Mitchell <mark@markmitchell.com> 2574 2575 * decl.c (grokdeclarator): Update the name of the TEMPLATE_DECL, as 2576 well as the TYPE_DECL, when a typedef name is assigned to a 2577 previously anonymous type. 2578 25791998-12-08 Andrew MacLeod <amacleod@cygnus.com> 2580 2581 * cp/except.c (call_eh_info): Use __start_cp_handler instead of 2582 __cp_eh_info for getting the eh info pointer. Add table_index to 2583 field list. 2584 (push_eh_cleanup): Don't increment 'handlers' data field. 2585 (process_start_catch_block): Don't set the 'caught' field. 2586 2587 * cp/exception.cc (CP_EH_INFO): New macro for getting the 2588 exception info pointer within library routines. 2589 (__cp_eh_info): Use CP_EH_INFO. 2590 (__start_cp_handler): Get exception info pointer, set caught field, 2591 and increment the handlers field. Avoids this being done by handlers. 2592 (__uncatch_exception, __check_eh_spec): Use CP_EH_INFO macro. 2593 (uncaught_exception): Use CP_EH_INFO macro. 2594 2595Tue Dec 8 10:48:21 1998 Jeffrey A Law (law@cygnus.com) 2596 2597 * Make-lang.in (cxxmain.o): Depend on $(DEMANGLE_H), not demangle.h 2598 2599Mon Dec 7 17:56:06 1998 Mike Stump <mrs@wrs.com> 2600 2601 * lex.c (check_newline): Add support for \ as `natural' 2602 characters in file names in #line to be consistent with #include 2603 handling. We support escape processing in the # 1 "..." version of 2604 the command. See also support in cp/lex.c. 2605 26061998-12-07 Zack Weinberg <zack@rabi.phys.columbia.edu> 2607 2608 * cp/decl2.c: s/data/opts/ when initializing cpp_reader 2609 structure. 2610 26111998-12-07 Jason Merrill <jason@yorick.cygnus.com> 2612 2613 * decl.c (build_typename_type): Set DECL_ARTIFICIAL. 2614 2615 * error.c (dump_simple_decl): Also print namespace context. 2616 (dump_function_decl): Likewise. 2617 2618 * decl2.c (ambiguous_decl): Don't print old value if it's 2619 error_mark_node. 2620 2621 * decl.c (lookup_name_real): Fix handling of local types shadowed 2622 by a non-type decl. Remove obsolete code. 2623 * cp-tree.h (DECL_FUNCTION_SCOPE_P): New macro. 2624 2625 * lang-options.h: Add -fpermissive. 2626 * decl2.c: Likewise. 2627 * cp-tree.h: Add flag_permissive. 2628 * decl.c (init_decl_processing): If neither -fpermissive or -pedantic 2629 were specified, set flag_pedantic_errors. 2630 * call.c (build_over_call): Turn dropped qualifier messages 2631 back into pedwarns. 2632 * cvt.c (convert_to_reference): Likewise. 2633 * typeck.c (convert_for_assignment): Likewise. 2634 26351998-12-05 Jason Merrill <jason@yorick.cygnus.com> 2636 2637 * decl2.c (coerce_new_type): Use same_type_p. 2638 (coerce_delete_type): Likewise. 2639 2640 * call.c (check_dtor_name): Return 1, not error_mark_node. 2641 26421998-12-04 Jason Merrill <jason@yorick.cygnus.com> 2643 2644 * lex.c (handle_cp_pragma): Disable #pragma interface/implementation 2645 if MULTIPLE_SYMBOL_SPACES. 2646 2647 * pt.c (check_template_shadow): New fn. 2648 * decl2.c (grokfield): Use it. 2649 * decl.c (pushdecl): Likewise. 2650 (pushdecl_class_level): Likewise. 2651 (start_method): Likewise. 2652 (xref_tag): Don't try to use 't' if we're defining. 2653 2654 * call.c (check_dtor_name): Just return an error_mark_node. 2655 * pt.c (lookup_template_class): Complain about using non-template here. 2656 * parse.y (apparent_template_type): Not here. 2657 2658 * pt.c (check_explicit_specialization): Complain about specialization 2659 with C linkage. 2660 2661 * lang-options.h: Add -f{no-,}implicit-inline-templates. 2662 2663 * pt.c (convert_nontype_argument): Don't assume that any integer 2664 argument is intended to be a constant-expression. 2665 26661998-12-03 Mark Mitchell <mark@markmitchell.com> 2667 2668 * class.c (handle_using_decl): Fix comment. Don't lookup 2669 constructors in base classes. 2670 (validate_lhs): Fix typo in comment. 2671 * search.c (lookup_field_1): Don't return a USING_DECL. 2672 2673 * cp-tree.h (DECL_ACCESS): Improve documentation. 2674 2675 * decl.c (expand_static_init): Don't set the initialization-done 2676 flag until the initialization is done. 2677 26781998-12-02 Mark Mitchell <mark@markmitchell.com> 2679 2680 * decl2.c (validate_nonmember_using_decl): Complain about using 2681 declarations for class members. 2682 26831998-11-29 Jason Merrill <jason@yorick.cygnus.com> 2684 2685 * typeck2.c (process_init_constructor): Use same_type_p. 2686 2687 * decl.c (check_tag_decl): Don't warn about null decl inside a 2688 class. 2689 2690 * pt.c (unify, case OFFSET_TYPE): Pass down 'strict' rather than 2691 UNIFY_ALLOW_NONE. 2692 (convert_nontype_argument): Use TYPE_PTRMEMFUNC_FN_TYPE. 2693 (resolve_overloaded_unification): Strip baselinks. 2694 2695Fri Nov 27 13:07:23 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2696 2697 * g++spec.c: Don't prototype xmalloc. 2698 26991998-11-25 Jason Merrill <jason@yorick.cygnus.com> 2700 2701 * except.c (expand_throw): Use TYPE_PTR_P to check for pointers. 2702 2703 * decl.c (check_tag_decl): Do complain about null friend decl at 2704 file scope. 2705 27061998-11-25 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> 2707 2708 * lex.c (make_lang_type): Clear the whole struct lang_type, not 2709 only the first multiple of sizeof (int). 2710 27111998-11-24 Jason Merrill <jason@yorick.cygnus.com> 2712 2713 * decl.c (start_decl): An explicit specialization of a static data 2714 member is only a definition if it has an initializer. 2715 2716 * except.c (expand_throw): Use cp_finish_decl for the throw temp. 2717 * cvt.c (build_up_reference): Pass DIRECT_BIND down into 2718 cp_finish_decl. 2719 * init.c (expand_default_init): Check for DIRECT_BIND instead of 2720 DECL_ARTIFICIAL. 2721 2722 * call.c (build_over_call): Use build_decl. 2723 2724 * except.c (expand_throw): Just use convert, not 2725 build_reinterpret_cast. 2726 2727 * lex.c (handle_generic_pragma): Use token_buffer. 2728 2729 * decl.c (check_tag_decl): Don't complain about null friend decl. 2730 27311998-11-24 Dave Pitts <dpitts@cozx.com> 2732 2733 * Make-lang.in (DEMANGLER_PROG): Move the output arguments to the 2734 first position. 2735 * lex.c (check_newline): Use ISALPHA. 2736 (readescape): Use ISGRAPH. 2737 (yyerror): Use ISGRAPH. 2738 27391998-11-24 Nathan Sidwell <nathan@acm.org> 2740 2741 * search.c (get_abstract_virtuals): Do not use initial 2742 CLASSTYPE_ABSTRACT_VIRTUALS. 2743 * typeck2.c (abstract_virtuals_error): Show location of abstract 2744 declaration. 2745 * call.c (build_new_method_call): Use 2746 CLASSTYPE_ABSTRACT_VIRTUAL, rather than recalculate. 2747 * class.c (finish_struct_bits): Don't bother working out whether 2748 get_abstract_virtuals will do anything, just do it. 2749 27501998-11-24 Graham <grahams@rcp.co.uk> 2751 2752 * typeck.c (build_component_ref): Remove unused statement. 2753 27541998-11-24 Jason Merrill <jason@yorick.cygnus.com> 2755 2756 * class.c (add_method): Catch invalid overloads. 2757 2758 * class.c (add_method): Build up OVERLOADs properly for conversion ops. 2759 * search.c (lookup_conversions): Handle getting real OVERLOADs. 2760 (add_conversions): Likewise. Revert last change. 2761 * call.c (add_conv_candidate): Pass totype to add_candidate instead 2762 of fn. Don't add a new candidate if the last one was for the same 2763 type. 2764 (print_z_candidates): Handle getting a type as a function. 2765 (joust): If we got two conversion candidates to the same type, 2766 just pick one. 2767 (build_object_call): Lose 'templates'. 2768 (build_user_type_conversion_1): Handle getting real OVERLOADs. 2769 27701998-11-23 Jason Merrill <jason@yorick.cygnus.com> 2771 2772 * typeck2.c (process_init_constructor): If there are elements 2773 that don't have initializers and they need to have constructors 2774 run, supply them with initializers. 2775 2776 * class.c (finish_struct_1): A class with a 0-width bitfield is 2777 still empty. 2778 27791998-11-23 Mark Mitchell <mark@markmitchell.com> 2780 2781 * pt.c (instantiate_class_template): Don't try to figure out what 2782 specialization to use for a partial instantiation. Correct 2783 typos in a couple of comments. Avoid calling uses_template_parms 2784 multiple times. 2785 27861998-11-23 Benjamin Kosnik <bkoz@cygnus.com> 2787 2788 * method.c (process_overload_item): Add call to 2789 build_mangled_C9x_name for intTI_type_nodes. 2790 (build_mangled_C9x_name): Add prototype, define. 2791 * decl.c (init_decl_processing): Add names for 2792 TImode_type_node. 2793 27941998-11-23 Jason Merrill <jason@yorick.cygnus.com> 2795 2796 * parse.y (named_class_head): Update CLASSTYPE_DECLARED_CLASS. 2797 2798 * class.c (finish_struct_1): Set things up for 0-width bitfields 2799 like we do for others. 2800 2801 * decl.c (check_tag_decl): New fn. 2802 (shadow_tag): Split out from here. 2803 * decl2.c (grok_x_components): Call it. 2804 28051998-11-22 Jason Merrill <jason@yorick.cygnus.com> 2806 2807 * decl.c: Lose warn_about_return_type. 2808 (grokdeclarator): Always complain about implicit int, except for 2809 `main () { ... }'. 2810 2811 * decl.c (tag_name): New fn. 2812 (xref_tag): Complain about using typedef-name after class-key. 2813 2814 * init.c (expand_vec_init): Also keep going if from_array. 2815 2816 * tree.c (is_overloaded_fn): Also handle the output of 2817 build_offset_ref. 2818 2819 * decl.c (grokdeclarator): Use constructor_name when comparing 2820 field name against enclosing class. 2821 * class.c (finish_struct_anon): Likewise. 2822 28231998-11-22 Mark Mitchell <mark@markmitchell.com> 2824 2825 * decl.c (poplevel): Remove code to handle KEEP == 2. 2826 (finish_function): Don't confuse BLOCK-order when 2827 processing a destructor. 2828 28291998-11-21 Jason Merrill <jason@yorick.cygnus.com> 2830 2831 * decl.c (require_complete_types_for_parms): Call layout_decl 2832 after we've completed the type. 2833 28341998-11-21 Martin von L�wis <loewis@informatik.hu-berlin.de> 2835 2836 * decl2.c (validate_nonmember_using_decl): Allow using templates 2837 from the global namespace. 2838 28391998-11-21 Jason Merrill <jason@yorick.cygnus.com> 2840 2841 Handle specifying template args to member function templates. 2842 * tree.c (build_overload): Always create an OVERLOAD for a template. 2843 * search.c (add_conversions): Handle finding an OVERLOAD. 2844 * decl2.c (check_classfn): Likewise. 2845 * lex.c (identifier_type): See through a baselink. 2846 * parse.y (do_id): Don't call do_identifier if we got a baselink. 2847 * class.c (instantiate_type, case TREE_LIST): Recurse. 2848 2849 * decl.c (grokdeclarator): Allow a boolean constant for array 2850 bounds, odd as that sounds. 2851 2852 * pt.c (unify): Be more strict about non-type parms, except for 2853 array bounds. 2854 (UNIFY_ALLOW_INTEGER): New macro. 2855 28561998-11-19 Manfred Hollstein <manfred@s-direktnet.de> 2857 2858 * Make-lang.in (mandir): Replace all uses of $(mandir) by $(man1dir). 2859 28601998-11-19 Jason Merrill <jason@yorick.cygnus.com> 2861 2862 * semantics.c (begin_class_definition): Call 2863 maybe_process_partial_specialization before push_template_decl. 2864 Don't call push_template_decl for a specialization. 2865 * search.c (lookup_field): Do return a member template class. 2866 * decl2.c (handle_class_head): Handle member template classes. 2867 2868 * decl.c (grokdeclarator): A parm type need not be complete. 2869 2870 * pt.c (convert_nontype_argument): Fix thinko. 2871 28721998-11-18 Mark Mitchell <mark@markmitchell.com> 2873 2874 * cp-tree.h (PTRMEM_CST_CLASS): Fix typo. 2875 (global_delete_fndecl): New variable. 2876 * decl.c (global_delete_fndecl): Define it. 2877 (init_decl_processing): Set it. 2878 * init.c (build_builtin_delete_call): Use it. 2879 * tree.c (mapcar): Recursively call mapcar for the type of EXPR 2880 nodes. 2881 28821998-11-18 Jason Merrill <jason@yorick.cygnus.com> 2883 2884 * decl.c (cplus_expand_expr_stmt): Always complain about unresolved 2885 type. 2886 2887 * tree.c (lvalue_p_1): An INDIRECT_REF to a function is an lvalue. 2888 * call.c (build_object_call): Also support references to functions. 2889 * typeck.c (convert_for_initialization): Don't decay a function 2890 if the target is a reference to function. 2891 2892 * search.c (add_conversions): Get all the overloads from a class. 2893 2894 * decl.c (grok_ctor_properties): Complain about any constructor 2895 that will take a single arg of the class type by value. 2896 2897 * typeck2.c (build_functional_cast): Can't create objects of 2898 abstract classes this way. 2899 * cvt.c (ocp_convert): Likewise. 2900 2901 * decl.c (grokfndecl): Member functions of local classes are not 2902 public. 2903 29041998-11-18 Mark Mitchell <mark@markmitchell.com> 2905 2906 * Make-lang.in (cc1plus): Add dependency on hash.o. 2907 29081998-11-18 Jason Merrill <jason@yorick.cygnus.com> 2909 2910 * search.c (get_abstract_virtuals): Complain about virtuals with 2911 no final overrider. 2912 * typeck2.c (abstract_virtuals_error): Remove handling for virtuals 2913 with no final overrider. 2914 * class.c (override_one_vtable): Don't set DECL_ABSTRACT_VIRTUAL_P 2915 on virtuals with no final overrider. 2916 2917 * lex.c (reinit_parse_for_block): Add a space after the initial ':'. 2918 2919 * class.c (finish_struct_1): Don't remove zero-width bit-fields until 2920 after layout_type. 2921 2922 * friend.c (do_friend): Don't set_mangled_name_for_decl. 2923 2924 * class.c (finish_struct_anon): Complain about non-fields. 2925 * decl2.c (build_anon_union_vars): Likewise. 2926 2927 * decl.c (grokdeclarator): Normal data members can't have the same 2928 name as the class, either. 2929 * class.c (finish_struct_anon): Neither can members of an 2930 anonymous union. 2931 29321998-11-17 Mark Mitchell <mark@markmitchell.com> 2933 2934 * cp-tree.h (TYPE_ALIAS_SET): Document language-dependent uses. 2935 (TYPE_BINFO): Likewise. 2936 (IS_AGGR_TYPE): Tweak. 2937 (SET_IS_AGGR_TYPE): New macro. 2938 (CLASS_TYPE_P): Tweak. 2939 (lang_type): Group mark bitfields together. Remove linenum. 2940 (CLASSTYPE_SOURCE_LINE): Remove macro. 2941 (CLASSTYPE_MARKED_N): New macro. 2942 (SET_CLASSTYPE_MARKED_N): Likewise. 2943 (CLEAR_CLASSTYPE_MARKED_N): Likewise. 2944 (CLASS_TYPE_MARKED_*): Use them. 2945 (SET_CLASSTYPE_MARKED_*): Likewise. 2946 (CLEAR_CLASSTYPE_MARKED_*): Likewise. 2947 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Likewise. 2948 (TYPE_TEMPLATE_INFO): Handle TEMPLATE_TEMPLATE_PARMs as well. 2949 (TYPENAME_TYPE_FULLNAME): Use TYPE_BINFO rather than CLASSTYPE_SIZE. 2950 * class.c (class_cache_obstack): New variable. 2951 (class_cache_firstobj): Likewise. 2952 (finish_struct): Don't set CLASSTYPE_SOURCE_LINE. 2953 (pushclass): Free the cache, when appropriate. 2954 (popclass): Tidy. 2955 (maybe_push_cache_obstack): Use class_cache_obstack. 2956 * decl.c (include hash.h). 2957 (typename_hash): New function. 2958 (typename_compare): Likewise. 2959 (build_typename_type): Check the hash table to avoid creating 2960 duplicates. 2961 (build_ptrmemfunc_type): Use SET_IS_AGGR_TYPE. 2962 (grokdeclarator): Use CLASS_TYPE_P. 2963 (xref_basetypes): Likewise. 2964 (start_function): Likewise. Don't put current_class_ref on the 2965 permanent obstack. 2966 * error.c (dump_type_real): Use TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO 2967 and TYPE_TI_ARGS. 2968 * lex.c (note_got_semicolon): Use CLASS_TYPE_P. 2969 (make_lang_type): Don't create TYPE_LANG_SPECIFIC and associated 2970 fields for types other than class types. Do clear TYPE_ALIAS_SET 2971 for types other than class types, though. 2972 * method.c (build_overload_identifier): Use CLASS_TYPE_P and 2973 TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO. 2974 * pt.c (process_template_parm): Don't set 2975 CLASSTYPE_GOT_SEMICOLON. 2976 (lookup_template_class): Use TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO. 2977 Coerce arguments on the momentary obstack. 2978 (for_each_template_parm): Use TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO. 2979 (instantiate_class_template): Calculate template arguments on the 2980 momentary obstack. Tidy. 2981 (tsubst_template_arg_vector): Use make_temp_vec. 2982 (tsubst_aggr_type): Put template arguments on the momentary 2983 obstack. 2984 (tsubst_decl): Likewise. 2985 (tsubst): Copy the array bounds index to the permanent obstack 2986 before building index types. Use new macros. 2987 (unify): Use new macros. 2988 (do_type_instantiation): Likewise. 2989 * search.c (lookup_fnfields_1): Use new macros. 2990 (dfs_pushdecls): Build envelopes on the cache obstack. 2991 (dfs_compress_decls): Use new macros. 2992 (push_class_decls): Build on the cache obstack. 2993 * semantics.c (finish_typeof): Don't set CLASSTYPE_GOT_SEMICOLON. 2994 * sign.c (build_signature_pointer_or_reference_type): Use 2995 SET_IS_AGGR_TYPE. 2996 * tree.c (make_binfo): Check CLASS_TYPE_P. 2997 (copy_template_template_parm): Adjust. 2998 (make_temp_vec): Use push_expression_obstack. 2999 * typeck.c (complete_type): Use new macros. 3000 (comptypes): Likewise. 3001 30021998-11-17 Jason Merrill <jason@yorick.cygnus.com> 3003 3004 * pt.c (tsubst): Add diagnostics for invalid array, reference 3005 and pointer to member types. 3006 30071998-11-16 Jason Merrill <jason@yorick.cygnus.com> 3008 3009 * typeck2.c (my_friendly_abort): Don't fatal twice in a row. 3010 3011 * typeck.c (c_expand_start_case): Use build_expr_type_conversion. 3012 Simplify. 3013 3014 * parse.y (structsp): Fix cut-and-paste error. 3015 3016 * init.c (build_new): Complain about non-integral size. 3017 3018 * parse.y (unary_expr): Complain about defining types in sizeof. 3019 3020 * typeck.c (expr_sizeof): Complain about sizeof an overloaded fn. 3021 3022 * rtti.c (build_x_typeid): Complain about typeid without 3023 including <typeinfo>. 3024 (get_typeid): Likewise. Complain about typeid of incomplete type. 3025 (get_tinfo_fn_dynamic): Likewise. 3026 (get_typeid_1): Not static anymore. 3027 * except.c (build_eh_type_type): Use get_typeid_1. 3028 3029 * rtti.c (build_dynamic_cast_1): Give errors for dynamic_cast to 3030 ambiguous or private bases. Fix warning for reference cast. 3031 30321998-11-16 Mark Mitchell <mark@markmitchell.com> 3033 3034 * cp-tree.h (DECL_TEMPLATE_INSTANTIATED): New macro. 3035 * decl.c (duplicate_decls): Remove special-case code to deal with 3036 template friends, and just do the obvious thing. 3037 * pt.c (register_specialization): Tweak for clarity, and also to 3038 clear DECL_INITIAL for an instantiation before it is merged with a 3039 specialization. 3040 (check_explicit_specialization): Fix indentation. 3041 (tsubst_friend_function): Handle both definitions in friend 3042 declaration and outside friend declarations. 3043 (tsubst_decl): Don't clear DECL_INITIAL for an instantiation. 3044 (regenerate_decl_from_template): Tweak accordingly. 3045 (instantiate_decl): Likewise. 3046 30471998-11-16 Jason Merrill <jason@yorick.cygnus.com> 3048 3049 * decl.c (cplus_expand_expr_stmt): Promote warning about naked 3050 member function reference to error. 3051 * cvt.c (ocp_convert): Complain about converting an overloaded 3052 function to void. 3053 3054 * init.c (build_offset_ref): Just return a lone static member 3055 function. 3056 3057 * decl.c (cp_finish_decl): Only complain about real CONSTRUCTORs, 3058 not internal ones. 3059 3060 * typeck.c (build_binary_op_nodefault): Improve error handling. 3061 3062 * decl.c (grokfndecl): Complain about making 'main' a template. 3063 3064 * typeck.c (string_conv_p): Don't convert from wchar_t[] to char*. 3065 3066 * call.c (build_method_call): Handle a BIT_NOT_EXPR around a 3067 TYPE_DECL in a template. 3068 30691998-11-15 Jason Merrill <jason@yorick.cygnus.com> 3070 3071 * typeck2.c (my_friendly_abort): Add URL in the other case, too. 3072 3073 * decl.c (struct cp_function): Add named_label_uses. 3074 (push_cp_function_context): Save it. 3075 (pop_cp_function_context): Restore it. 3076 (define_label): Also complain about jumping into the scope of 3077 non-POD objects that don't have constructors. 3078 * tree.c (pod_type_p): New fn. 3079 3080 * pt.c (instantiate_class_template): Clear TYPE_BEING_DEFINED sooner. 3081 * rtti.c (synthesize_tinfo_fn): Call import_export_decl here. 3082 (get_tinfo_fn): Not here. 3083 * repo.c (repo_get_id): Abort if we get called for an incomplete 3084 type. 3085 30861998-11-13 Mark Mitchell <mark@markmitchell.com> 3087 3088 * except.c (expand_throw): Make sure first argument to 3089 __cp_push_exception is of type `void*' to avoid spurious error 3090 messages. 3091 30921998-11-11 Jason Merrill <jason@yorick.cygnus.com> 3093 3094 * pt.c (try_one_overload): Take orig_targs again. Only check for 3095 mismatches against them; we don't care what a previous call found. 3096 (resolve_overloaded_unification): Adjust. 3097 3098 * search.c (lookup_field): Don't return anything for a non-type 3099 field from a dependent type. 3100 * decl.c (grokdeclarator): Resolve SCOPE_REFs of the current class 3101 in an array declarator. 3102 (start_decl): Push into the class before looking for the field. 3103 31041998-11-08 Mark Mitchell <mark@markmitchell.com> 3105 3106 * method.c (build_overload_value): Handle REFERENCE_TYPE. 3107 31081998-11-08 Martin von L�wis <loewis@informatik.hu-berlin.de> 3109 3110 * decl.c (grokdeclarator): Allow namespace-scoped members if they 3111 are friends. 3112 31131998-11-08 Jason Merrill <jason@yorick.cygnus.com> 3114 3115 * pt.c (tsubst_decl): Don't mess with the global value of an 3116 un-mangled DECL_ASSEMBLER_NAME. 3117 31181998-11-03 Christopher Faylor <cgf@cygnus.com> 3119 3120 * decl.c (init_decl_processing): Remove CYGWIN conditional 3121 since CYGWIN is now able to deal with trapping signals. 3122 3123Sat Nov 7 15:48:02 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3124 3125 * cp-tree.h: Don't include gansidecl.h. 3126 * exception.cc: Include gansidecl.h (since we don't include config.h) 3127 * g++spec.c: Don't include gansidecl.h. 3128 31291998-11-06 Mark Mitchell <mark@markmitchell.com> 3130 3131 * cp-tree.h (lang_decl_flags): Add defined_in_class. Decrease 3132 size of dummy. 3133 (DECL_DEFINED_IN_CLASS_P): New macro. 3134 (TEMPLATE_PARMS_FOR_INLINE): Document. 3135 (check_static_variable_definition): New function. 3136 * decl.c (cp_finish_decl): Set DECL_DEFINED_IN_CLASS_P, if 3137 appropriate. 3138 (check_static_variable_definition): Split out from ... 3139 (grokdeclarator): Here. 3140 * pt.c (check_default_tmpl_args): New function, split out from ... 3141 (push_template_decl_real): Here. 3142 (instantiate_template): Fix comment. 3143 31441998-11-04 Mark Mitchell <mark@markmitchell.com> 3145 3146 * cp-tree.h (CP_TYPE_CONST_P): Make {0,1}-valued. 3147 (CP_TYPE_VOLATILE_P): Likewise. 3148 (CP_TYPE_RESTRICT_P): Likewise. 3149 31501998-11-03 Mark Mitchell <mark@markmitchell.com> 3151 3152 * pt.c (tsubst): Use build_index_type, not build_index_2_type. 3153 31541998-11-02 Jason Merrill <jason@yorick.cygnus.com> 3155 3156 * class.c (instantiate_type): Be more helpful. 3157 3158 * decl2.c (import_export_decl): Call import_export_class. 3159 3160 * cp-tree.h (EMPTY_CONSTRUCTOR_P): Check !TREE_HAS_CONSTRUCTOR. 3161 * decl2.c (build_expr_from_tree): Propagate TREE_HAS_CONSTRUCTOR. 3162 * pt.c (tsubst_copy): Likewise. 3163 31641998-11-02 Mark Mitchell <mark@markmitchell.com> 3165 3166 * init.c (expand_vec_init): Fix off-by-one error. 3167 31681998-11-02 Alexandre Oliva <oliva@dcc.unicamp.br> 3169 3170 * parse.y (apparent_template_type): New type. 3171 (named_complex_class_head_sans_basetype): Use it. 3172 * Makefile.in (CONFLICTS): One new conflict. 3173 * parse.c: Regenerated. 3174 31751998-11-01 Mark Mitchell <mark@markmitchell.com> 3176 3177 * cp-tree.h (COMPARE_STRICT): New macro. 3178 (COMPARE_BASE): Likewise. 3179 (COMPARE_RELAXED): Likewise. 3180 (COMPARE_REDECLARATION): Likewise. 3181 (same_type_p): Likewise. 3182 (same_or_base_type_p): Likewise. 3183 * call.c (standard_conversion): Use them, in place of comptypes 3184 with numeric arguments. 3185 (reference_binding): Likewise. 3186 (convert_like): Likewise. 3187 (build_over_call): Likewise. 3188 (is_subseq): Likewise. 3189 (is_properly_derived_from): Likewise. 3190 (compare_ics): Likewise. 3191 (joust): Likewise. 3192 * class.c (delete_duplicate_fields_1): Likewise. 3193 (resolves_to_fixed_type_p): Likewise. 3194 (instantiate_type): Likewise. Remove #if 0'd code. 3195 * decl.c (decls_match): Likewise. Use COMPARE_REDECLARATION here. 3196 (pushdecl): Likewise. 3197 (lookup_name_real): Likewise. 3198 (grokdeclarator): Likewise. Check for illegal array declarations. 3199 (grokparms): Likewise. 3200 (grok_op_properties): Likewise. 3201 * decl2.c (check_classfn): Likewise. 3202 * friend.c (is_friend): Likewise. 3203 (make_friend_class): Likewise. 3204 * init.c (expand_aggr_init): Likewise. 3205 (expand_vec_init): Likewise. 3206 * pt.c (is_member_template_class): Remove declaration. 3207 (is_specialization_of): Use COMPARE_* and new macros. 3208 (comp_template_parms): Likewise. 3209 (convert_nontype_argument): Likewise. 3210 (coerce_template_template_parms): Likewise. 3211 (template_args_equal): Likewise. 3212 (lookup_template_class): Likewise. 3213 (type_unification_real): Likewise. 3214 (unify): Likewise. 3215 (get_bindings_real): Likewise. 3216 * search.c (covariant_return_p): Likewise. 3217 (get_matching_virtual): Likewise. 3218 * sig.c (match_method_types): Likewise. 3219 * tree.c (vec_binfo_member): Likewise. 3220 (cp_tree_equal): Likewise. 3221 * typeck.c (common_type): Likewise. 3222 (comp_array_types): Likewise. Get issues involving unknown array 3223 bounds right. 3224 (comptypes): Update comments. Use new flags. 3225 (comp_target_types): Use new macros. 3226 (compparms): Likewise. 3227 (comp_target_parms): Likewise. 3228 (string_conv_p): Likewise. 3229 (build_component_ref): Likewise. 3230 (build_indirect_ref): Likewise. 3231 (build_conditional_expr): Likewise. 3232 (build_static_cast): Likewise. 3233 (build_reinterpret_cast): Likewise. 3234 (build_const_cast): Likewise. 3235 (build_modify_expr): Likewise. 3236 (convert_for_assignment): Likewise. 3237 (comp_ptr_ttypes_real): Likewise. 3238 (ptr_reasonably_similar): Likewise. 3239 (comp_ptr_ttypes_const): Likewise. 3240 32411998-10-31 Jason Merrill <jason@yorick.cygnus.com> 3242 3243 * rtti.c (build_dynamic_cast_1): Fix cut-and-paste error. 3244 32451998-10-30 Mark Mitchell <mark@markmitchell.com> 3246 3247 * decl2.c (delete_sanity): Pass integer_zero_node, not 3248 integer_two_node, to build_vec_delete. 3249 * init.c (build_array_eh_cleanup): Remove. 3250 (expand_vec_init_try_block): New function. 3251 (expand_vec_init_catch_clause): Likewise. 3252 (build_vec_delete_1): Don't deal with case that auto_delete_vec 3253 might be integer_two_node anymore. 3254 (expand_vec_init): Rework for initialization-correctness and 3255 exception-correctness. 3256 * typeck2.c (process_init_constructor): Make mutual exclusivity 3257 of cases more obvious. 3258 32591998-10-29 Jason Merrill <jason@yorick.cygnus.com> 3260 3261 * decl.c (lookup_name_real): OK, only warn if not lexing. 3262 Simplify suggested fix. 3263 3264 * cp-tree.h (IDENTIFIER_MARKED): New macro. 3265 * search.c (lookup_conversions): Use breadth_first_search. 3266 (add_conversions): Avoid adding two conversions to the same type. 3267 (breadth_first_search): Work with base binfos, rather 3268 than binfos and base indices. 3269 (get_virtual_destructor): Adjust. 3270 (tree_has_any_destructor_p): Adjust. 3271 (get_matching_virtual): Adjust. 3272 3273 * pt.c (push_template_decl_real): Generalize check for incorrect 3274 number of template parms. 3275 (is_member_template_class): #if 0. 3276 32771998-10-29 Richard Henderson <rth@cygnus.com> 3278 3279 * Makefile.in (cc1plus): Put CXX_OBJS, and thence @extra_cxx_objs@, 3280 last. 3281 32821998-10-28 Zack Weinberg <zack@rabi.phys.columbia.edu> 3283 3284 * lex.c: Call check_newline from lang_init always. After 3285 calling cpp_start_read, set yy_cur and yy_lim to read from the 3286 cpplib token buffer. 3287 32881998-10-28 Jason Merrill <jason@yorick.cygnus.com> 3289 3290 * class.c (instantiate_type): Don't consider templates for a normal 3291 match. 3292 3293 * class.c (finish_struct_1): Don't complain about non-copy 3294 assignment ops in union members. 3295 3296 * class.c (build_vtable): Don't pass at_eof to import_export_vtable. 3297 (prepare_fresh_vtable): Likewise. 3298 (finish_struct_1): Don't call import_export_class. 3299 * decl2.c (finish_vtable_vardecl): Do import/export stuff. 3300 (finish_prevtable_vardecl): Lose. 3301 (finish_file): Don't call it. 3302 * pt.c (instantiate_class_template): Likewise. 3303 * cp-tree.h: Remove it. 3304 3305 * init.c (build_delete): Reset TYPE_HAS_DESTRUCTOR here. 3306 * decl.c (finish_function): Not here. 3307 (start_function): Do set DECL_INITIAL. 3308 3309 * pt.c (push_template_decl_real): Complain about default template 3310 args for enclosing classes. 3311 3312 * call.c (add_function_candidate): Treat conversion functions 3313 as coming from the argument's class. 3314 * cp-tree.h (DECL_CONV_FN_P): New fn. 3315 (DECL_DESTRUCTOR_P): Also check DECL_LANGUAGE. 3316 * class.c (add_method): Use DECL_CONV_FN_P. 3317 * decl2.c (check_classfn): Likewise. 3318 * error.c (dump_function_name): Likewise. 3319 (dump_function_decl): Likewise. 3320 * pt.c (fn_type_unification): Likewise. 3321 * search.c (add_conversions): Likewise. 3322 33231998-10-27 Jason Merrill <jason@yorick.cygnus.com> 3324 3325 * lex.c (do_identifier): Also generate LOOKUP_EXPR for RESULT_DECL. 3326 * method.c (hack_identifier): Also check for using RESULT_DECL 3327 from outer context. 3328 33291998-10-27 Mark Mitchell <mark@markmitchell.com> 3330 3331 * decl.c (grokdeclarator): Use type_quals, rather than constp, 3332 consistently. 3333 33341998-10-27 Jason Merrill <jason@yorick.cygnus.com> 3335 3336 * call.c (standard_conversion): instantiate_type here. 3337 (reference_binding): And here. 3338 (implicit_conversion): Not here. 3339 (build_op_delete_call): No need to cons up an OVERLOAD. 3340 * cvt.c (cp_convert_to_pointer): instantiate_type here. 3341 (convert_to_reference): And here. 3342 * decl.c (grok_reference_init): Not here. 3343 (grokparms): Or here. 3344 * typeck2.c (digest_init): Or here. 3345 * typeck.c (decay_conversion): Take the address of overloaded 3346 functions, too. 3347 (require_instantiated_type): Lose. 3348 (convert_arguments): Don't handle unknown types here. 3349 (build_c_cast): Likewise. 3350 (build_binary_op): Gut. 3351 (build_conditional_expr): Don't require_instantiated_type. 3352 (build_modify_expr): Likewise. 3353 (build_static_cast): Don't instantiate_type. 3354 (build_reinterpret_cast): Likewise. 3355 (build_const_cast): Likewise. 3356 (convert_for_initialization): Likewise. 3357 (build_ptrmemfunc): Use type_unknown_p. 3358 (convert_for_assignment): Also do default_conversion on overloaded 3359 functions. Hand them off to ocp_convert. 3360 33611998-10-26 Mark Mitchell <mark@markmitchell.com> 3362 3363 * error.c (dump_decl): Deal with TEMPLATE_DECLs that are 3364 VAR_DECLs. Handle vtables whose DECL_CONTEXT is not a type. 3365 3366 * class.c (finish_struct_1): Use build_cplus_array_type to build 3367 array types. 3368 * decl.c (init_decl_processing): Likewise. 3369 * except.c (expand_end_eh_spec): Likewise. 3370 * search.c (expand_upcast_fixups): Simplify very slightly. 3371 33721998-10-26 Jason Merrill <jason@yorick.cygnus.com> 3373 3374 * decl.c (grokdeclarator): Complain about a variable using 3375 constructor syntax coming back null from start_decl. 3376 3377 * friend.c (make_friend_class): Complain about trying to make 3378 a non-class type a friend. 3379 3380 * decl.c (grokfndecl): Set DECL_INITIAL for a defn here. 3381 (start_function): Not here. 3382 33831998-10-26 Brendan Kehoe <brendan@cygnus.com> 3384 3385 * decl.c (grokdeclarator): Disallow `explicit' in a friend declaration. 3386 33871998-10-26 Jason Merrill <jason@yorick.cygnus.com> 3388 3389 * typeck2.c (process_init_constructor): Only skip anonymous fields 3390 if they are bitfields. 3391 3392 * cp-tree.def (TYPEOF_TYPE): New code. 3393 * error.c (dump_type_real): Handle it. 3394 * pt.c (tsubst): Likewise. 3395 * tree.c (search_tree): Likewise. 3396 * semantics.c (finish_typeof): New fn. 3397 * parse.y (typespec): Use it. 3398 * cp-tree.h: Declare it. 3399 34001998-10-26 Manfred Hollstein <manfred@s-direktnet.de> 3401 3402 * cp-tree.h (FORMAT_VBASE_NAME): Make definition unconditional. 3403 34041998-10-26 Jason Merrill <jason@yorick.cygnus.com> 3405 3406 * typeck.c (convert_arguments): Don't handle pmf references 3407 specially. 3408 3409 * init.c (build_member_call): Don't try to convert to the base type 3410 if it's ambiguous or pedantic. 3411 3412 * typeck2.c (check_for_new_type): Only depend on pedantic for 3413 C-style casts. 3414 34151998-10-25 Mark Mitchell <mark@markmitchell.com> 3416 3417 * decl.c (grokdeclarator): Set DECL_NONCONVERTING_P for all 3418 non-converting constructors. 3419 34201998-10-24 Martin von L�wis <loewis@informatik.hu-berlin.de> 3421 3422 * gxxint.texi: Correct documentation for n, N, Q, and B. 3423 34241998-10-23 Martin von L�wis <loewis@informatik.hu-berlin.de> 3425 3426 * parse.y (condition): Convert VAR_DECL from reference to indirect 3427 reference. 3428 34291998-10-23 Andrew MacLeod <amacleod@cygnus.com> 3430 3431 * exception.cc (__cp_pop_exception): Free the original exception 3432 value, not the potentially coerced one. 3433 34341998-10-23 Mark Mitchell <mark@markmitchell.com> 3435 3436 * Makefile.in (hash.h): Run gperf when necessary. 3437 3438 * cp-tree.h (CP_TYPE_READONLY): Remove. 3439 (CP_TYPE_VOLATILE): Likewise. 3440 (CP_TYPE_QUALS): New macro. 3441 (CP_TYPE_CONST_P): Likewise. 3442 (CP_TYPE_VOLATILE_P): Likewise. 3443 (CP_TYPE_RESTRICT_P): Likewise. 3444 (CP_TYPE_CONST_NON_VOLATILE_P): Likewise. 3445 (cp_build_type_variant): Rename to ... 3446 (cp_build_qualified_type): New function. 3447 (c_apply_type_quals_to_decl): Declare. 3448 (SIGNATURE_POINTER_NAME_FORMAT): Modify to allow `restrict'. 3449 (SIGNATURE_REFERENCE_NAME_FORMAT): Likewise. 3450 (cp_type_qual_from_rid): New function. 3451 (compparms): Remove unused parameter. All callers changed. 3452 (cp_type_quals): New function. 3453 (at_least_as_qualified_p): Likewise. 3454 (more_qualified_p): Likewise. 3455 3456 * call.c (standard_conversion): Replace calls to 3457 cp_build_type_variant with cp_build_qualified_type. Use 3458 CP_TYPE_QUALS to get qualifiers and at_least_as_qualified_p to 3459 compare them. Use CP_TYPE_* macros to check qualifiers. 3460 (reference_binding): Likewise. 3461 (implicit_conversion): Likewise. 3462 (add_builtin_candidates): Likewise. 3463 (build_over_call): Likewise. 3464 * class.c (overrides): Compare all qualifiers, not just `const', 3465 on method declarations. 3466 * cvt.c (convert_to_reference): More CP_TYPE_QUALS conversion, etc. 3467 (convert_pointer_to_real): Likewise. 3468 (type_promotes_to): Likewise. 3469 * decl.c (check_for_uninitialized_const_var): New function. 3470 (init_decl_processing): More CP_TYPE_QUALS conversion, etc. 3471 (cp_finish_decl): Use check_for_uninitialized_const_var. 3472 (grokdeclarator): More CP_TYPE_QUALS conversion, etc. Update to 3473 handle `restrict'. 3474 (grok_ctor_properties): Likewise. 3475 (grok_op_properties): Likewise. 3476 (start_function): Likewise. 3477 (rever_static_member_fn): Likewise. 3478 * decl2.c (grok_method_quals): Likewise. 3479 (grokfield): Likewise. 3480 * error.c (dump_readonly_or_volatile): Rename to ... 3481 (dump_qualifiers): New function. Handle `restrict'. 3482 (dump_type_real): Use it. 3483 (dump_aggr_type): Likewise. 3484 (dump_type_prefix): Likewise. 3485 (dump_type_suffix): Likewise. 3486 (dump_function_decl): Likewise. 3487 (cv_as_string): Likewise. 3488 * gxx.gperf: Add __restrict and __restrict__. 3489 * gxxint.texi: Document `u' as used for `__restrict', and a few 3490 other previously undocumented codes. 3491 * hash.h: Regenerated. 3492 * init.c (expand_aggr_init): More CP_TYPE_QUALS conversion, etc. 3493 (build_member_call): Likewise. 3494 (build_new_1): Likewise. 3495 * lex.c (init_parse): Add entry for RID_RESTRICT. 3496 (cons_up_default_function): More CP_TYPE_QUALS conversion, etc. 3497 (cp_type_qual_from_rid): Define. 3498 * lex.h (enum rid): Add RID_RESTRICT. 3499 * method.c (process_modifiers): Deal with `restrict'. 3500 * parse.y (primary): More CP_TYPE_QUALS conversion, etc. 3501 * parse.c: Regenerated. 3502 * pt.c (convert_nontype_argument): More CP_TYPE_QUALS conversion, etc. 3503 (tsubst_aggr_type): Likewise. 3504 (tsubst): Likewise. 3505 (check_cv_quals_for_unify): Likewise. 3506 (unify): Likewise. 3507 * rtti.c (init_rtti_processing): Likewise. 3508 (build_headof): Likewise. 3509 (get_tinfo_var): Likewise. 3510 (buidl_dynamic_cast_1): Likewise. Fix `volatile' handling. 3511 (expand_class_desc): Likewise. 3512 (expand_attr_desc): Likewise. 3513 (synthesize_tinfo_fn): Likewise. 3514 * search.c (covariant_return_p): Likewise. Fix `volatile' handling. 3515 (get_matching_virtual): Likewise. 3516 (expand_upcast_fixups): Likewise. 3517 * sig.c (build_signature_pointer_or_reference_name): Take 3518 type_quals, not constp and volatilep. 3519 (build_signature_pointer_or_reference_type): Likewise. 3520 (match_method_types): More CP_TYPE_QUALS conversion, etc. 3521 (build_signature_pointer_constructor): Likewise. 3522 (build_signature_method_call): Likewise. 3523 * tree.c (build_cplus_array_type): Likewise. 3524 (cp_build_type_variant): Rename to ... 3525 (cp_build_qualified_type): New function. Deal with `__restrict'. 3526 (canonical_type_variant): More CP_TYPE_QUALS conversion, etc. 3527 (build_exception_variant): Likewise. 3528 (mapcar): Likewise. 3529 * typeck.c (qualif_type): Likewise. 3530 (common_type): Likewise. 3531 (comptypes): Likewise. 3532 (comp_cv_target_types): Likewise. 3533 (at_least_as_qualified_p): Define. 3534 (more_qualified_p): Likewise. 3535 (comp_cv_qualification): More CP_TYPE_QUALS conversion, etc. 3536 (compparms): Likewise. 3537 (inline_conversion): Likewise. 3538 (string_conv_p): Likewise. 3539 (build_component_ref): Likewise. 3540 (build_indirect_ref): Likewise. 3541 (build_array_ref): Likewise. 3542 (build_unary_op): Likewise. 3543 (build_conditional_expr): Likewise. 3544 (build_static_cast): Likewise. 3545 (build_c_cast): Likewise. 3546 (build_modify_expr): Likewise. 3547 (convert_For_assignment): Likewise. 3548 (comp_ptr_ttypes_real): Likewise. 3549 (cp_type_quals): New function. 3550 35511998-10-23 Jason Merrill <jason@yorick.cygnus.com> 3552 3553 * cp-tree.h (CP_TYPE_READONLY): New macro to handle arrays. 3554 (CP_TYPE_VOLATILE): Likewise. 3555 * decl.c (grokdeclarator): Use them. 3556 * tree.c (canonical_type_variant): Likewise. 3557 35581998-10-22 Martin von L�wis <loewis@informatik.hu-berlin.de> 3559 3560 * parse.y (named_class_head): Push into class while parsing the 3561 base class list. 3562 * decl2.c (push_scope, pop_scope): New functions. 3563 * cp-tree.h: Declare them. 3564 * init.c (build_new_1): Delay cleanup until end of full expression. 3565 35661998-10-21 Jason Merrill <jason@yorick.cygnus.com> 3567 3568 * typeck.c (build_component_ref): Use of a type here is an error. 3569 35701998-10-19 Jason Merrill <jason@yorick.cygnus.com> 3571 3572 Revamp references to member functions. 3573 * method.c (hack_identifier): Call build_component_ref for a 3574 reference to a member function. 3575 * typeck.c (build_component_ref): Only return a single function 3576 if it's static. Otherwise, return a COMPONENT_REF. 3577 (build_x_function_call): Handle a COMPONENT_REF. 3578 (build_unary_op): Handle all unknown-type things. 3579 * decl2.c (arg_assoc): Handle COMPONENT_REF. 3580 * class.c (instantiate_type): Complain if the function we get is a 3581 nonstatic member function. Remove code for finding "compatible" 3582 functions. 3583 * pt.c (tsubst_copy): Handle NOP_EXPR. 3584 * tree.c (build_dummy_object): New fn. 3585 (maybe_dummy_object): New fn. 3586 (is_dummy_object): New fn. 3587 * cp-tree.h: Declare them. 3588 * cvt.c (cp_convert_to_pointer): Use maybe_dummy_object. 3589 * error.c (dump_expr, case OFFSET_REF): Use is_dummy_object. 3590 * init.c (build_member_call): Use maybe_dummy_object and 3591 is_dummy_object. 3592 (build_offset_ref): Use maybe_dummy_object. 3593 (resolve_offset_ref): Use is_dummy_object. 3594 * typeck.c (build_x_function_call): Call build_dummy_object. 3595 (unary_complex_lvalue): Call is_dummy_object. 3596 3597 * typeck.c (build_component_addr): Make sure field is a field. 3598 3599 * call.c (build_new_op): Delete obsolete code. 3600 3601 * pt.c (tsubst, TEMPLATE*PARM*): Abort if we don't have any args. 3602 36031998-10-18 Martin von L�wis <loewis@informatik.hu-berlin.de> 3604 3605 * decl2.c (validate_nonmember_using_decl): Fix using-directives of 3606 std if std is ignored. 3607 36081998-10-18 Jason Merrill <jason@yorick.cygnus.com> 3609 3610 * decl.c (grokvardecl): Fix thinko. 3611 3612 * decl.c (grokdeclarator): Embedded attrs bind to the right, 3613 not the left. 3614 3615 * parse.y (fn.def2): Fix 'attrs' format. 3616 36171998-10-18 Alastair J. Houghton <ajh8@doc.ic.ac.uk> 3618 3619 * Makefile.in (CONFLICTS): Update. 3620 * parse.y (expr_or_declarator_intern): New rule. 3621 (expr_or_declarator, direct_notype_declarator, primary, 3622 functional_cast): Use it. 3623 (notype_declarator_intern): New rule. 3624 (notype_declarator, complex_notype_declarator): Use it. 3625 36261998-10-17 Jason Merrill <jason@yorick.cygnus.com> 3627 3628 * decl.c (grokfndecl): Set DECL_CONTEXT to namespace if appropriate. 3629 (grokvardecl): Likewise. 3630 3631Sat Oct 17 23:27:20 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3632 3633 * class.c (make_method_vec): Cast 1st argument of `bzero' to (PTR). 3634 (add_method): Likewise for arguments 1 & 2 of `bcopy'. 3635 3636 * decl.c (signal_catch): Mark with ATTRIBUTE_NORETURN. 3637 3638 * pt.c (process_partial_specialization): Cast 1st argument of 3639 `bzero' to (PTR). 3640 3641 * tree.c (build_base_fields): Cast `base_align' to (int) when 3642 comparing against one. 3643 36441998-10-16 Mark Mitchell <mark@markmitchell.com> 3645 3646 * decl.c (lookup_name_real): Handle template parameters for member 3647 templates where said parameters have the same name as the 3648 surrounding class. 3649 3650 * decl.c (expand_static_init): Build cleanups before entering the 3651 anonymous function used to do them to avoid access-checking 3652 confusion. 3653 3654 * decl.c (grokfndecl): Add back call to cplus_decl_attributes 3655 accidentally removed by previous change, and make DECL_RTL here. 3656 * class.c (add_method): Don't make DECL_RTL here. 3657 3658 * pt.c (for_each_template_parm): Don't examine uninstantiated 3659 default arguments. 3660 36611998-10-16 Dave Brolley <brolley@cygnus.com> 3662 3663 * lex.c (real_yylex): Fix unaligned access of wchar_t. 3664 36651998-10-16 Mark Mitchell <mark@markmitchell.com> 3666 3667 * class.c (add_method): Fix documentation to reflect previous 3668 changes. Check for duplicate method declarations here. 3669 * decl.c (decls_match): Handle FUNCTION_DECL vs TEMPLATE_DECL 3670 correctly; such things never match. 3671 (grokfndecl): Don't look for duplicate methods here. 3672 * decl2.c (check_classfn): Don't assume names are mangled. 3673 Don't add bogus member function declarations to a class before the 3674 class type is complete. 3675 (grokfield): Reformat error message. 3676 * method.c (set_mangled_name_for_decl): Don't mangle names while 3677 processing_template_decl. 3678 36791998-10-16 Jason Merrill <jason@yorick.cygnus.com> 3680 3681 * typeck.c (build_indirect_ref): Complain about a pointer to data 3682 member, too. 3683 * typeck2.c (build_m_component_ref): Don't indirect a pointer to 3684 data member. 3685 * init.c (resolve_offset_ref): Don't undo the above. 3686 3687 * cp-tree.h (DECL_C_BIT_FIELD, SET_DECL_C_BIT_FIELD): New macros. 3688 (struct lang_decl_flags): Add `bitfield'. 3689 * class.c (finish_struct_1): Use DECL_C_BIT_FIELD instead of 3690 DECL_BIT_FIELD. 3691 * decl2.c (grokbitfield, grok_alignof): Likewise. 3692 * init.c (build_offset_ref): Likewise. 3693 * typeck.c (build_component_addr, expr_sizeof): Likewise. 3694 * cvt.c (build_up_reference): Don't crash if taking the address 3695 returns error_mark_node. 3696 3697 * decl.c (grokfndecl): Also check ctype when checking for ::main(). 3698 36991998-10-15 Jason Merrill <jason@yorick.cygnus.com> 3700 3701 * decl.c (grokfndecl): ::main and __builtin_* get C linkage. 3702 Do mangling here. 3703 (grokdeclarator): Instead of here. 3704 * friend.c (do_friend): Lose special handling of ::main and 3705 __builtin_*. 3706 * cp-tree.h (DECL_MAIN_P): Check for C linkage. 3707 3708 * spew.c (yylex): Clear looking_for_typename if we got 3709 'enum { ... };'. 3710 37111998-10-15 Mark Mitchell <mark@markmitchell.com> 3712 3713 * class.c (maybe_warn_about_overly_private_class): Improve error 3714 messages for class with only private constructors. 3715 3716 * cp-tree.def (TYPENAME_TYPE): Add to documentation. 3717 * cp-tree.h (TYPENAME_TYPE_FULLNAME): Document. 3718 (build_typename_type): New function. 3719 * decl.c (build_typename_type): Broken out from ... 3720 (make_typename_type): Use it. 3721 * search.c (lookup_field): Likewise. 3722 37231998-10-14 Benjamin Kosnik <bkoz@rhino.cygnus.com> 3724 3725 * pt.c (convert_nontype_argument): Check against type_referred_to. 3726 * decl.c (grokvardecl): Check for declarator name before building 3727 DECL_ASSEMBLER_NAME. 3728 37291998-10-14 Mark Mitchell <mark@markmitchell.com> 3730 3731 * pt.c (lookup_template_class): Add comment. 3732 (instantiate_class_template): Don't mark the _TYPE node for 3733 member class templates as an instantiation. 3734 37351998-10-14 Jason Merrill <jason@yorick.cygnus.com> 3736 3737 * decl.c (grokfndecl): Fix my thinko. 3738 37391998-10-13 Jason Merrill <jason@yorick.cygnus.com> 3740 3741 * tinfo2.cc (fast_compare): Remove. 3742 (before): Just use strcmp. 3743 * tinfo.cc (operator==): Just use strcmp. 3744 37451998-10-13 Klaus-Georg Adams <Klaus-Georg.Adams@chemie.uni-karlsruhe.de> 3746 3747 * decl.c (grokfndecl): Don't check for linkage in `extern "C"' 3748 declarations. 3749 37501998-10-13 Mark Mitchell <mark@markmitchell.com> 3751 3752 * cp-tree.h (specializations_of_same_template_p): Remove. 3753 * search.c (get_template_base): Don't use it. 3754 (get_template_base_recursive): Likewise. 3755 * pt.c (specializations_of_same_template_p): Remove. 3756 (unify): Don't use it. 3757 (lookup_template_class): Find the correct parent when setting 3758 CLASSTYPE_TI_TEMPLATE. 3759 37601998-10-12 Jason Merrill <jason@yorick.cygnus.com> 3761 3762 * tinfo.cc (operator==): Always compare names. 3763 37641998-10-12 Herman ten Brugge <Haj.Ten.Brugge@net.HCC.nl> 3765 3766 * decl.c (start_function): Fix cut-and-paste error. 3767 37681998-10-12 Jason Merrill <jason@yorick.cygnus.com> 3769 3770 * inc/typeinfo: Add #pragma interface. 3771 (operator!=): Just call operator==. 3772 * tinfo.cc: Add #pragma implementation. 3773 (operator==): Move from inc/typeinfo and tinfo2.cc. 3774 Check __COMMON_UNRELIABLE instead of _WIN32. 3775 3776 * typeck2.c (my_friendly_abort): Add URL. 3777 37781998-10-12 Alastair J. Houghton <ajh8@doc.ic.ac.uk> 3779 3780 * decl.c (start_method): Added extra parameter for attributes. 3781 * cp-tree.h (start_method): Update prototype. 3782 * parse.y (fn.def2): Update start_method parameter list. 3783 37841998-10-11 Mark Mitchell <mark@markmitchell.com> 3785 3786 * cp-tree.h (specializations_of_same_template_p): Declare. 3787 * pt.c (specializations_of_same_template_p): New function. 3788 (unify): Use it. 3789 * search.c (get_template_base): Use it. 3790 (get_template_base_recursive): Likewise. 3791 37921998-10-10 Manfred Hollstein <manfred@s-direktnet.de> 3793 3794 * decl2.c (start_objects): Add new variable `joiner' and 3795 initialize it properly. 3796 37971998-10-09 Mark Mitchell <mark@markmitchell.com> 3798 3799 * search.c (expand_upcast_fixups): Tweak to match 1998-10-07 3800 change to vtable types. 3801 3802 * cvt.c (ocp_convert): Avoid infinite recursion caused by 3803 1998-10-03 change. 3804 38051998-10-08 Jason Merrill <jason@yorick.cygnus.com> 3806 3807 * pt.c (resolve_overloaded_unification): New fn. 3808 (try_one_overload): Likewise. 3809 (unify): Don't fail on unknown type. 3810 (type_unification_real): Likewise. Use resolve_overloaded_unification 3811 to handle an overloaded argument. 3812 (template_args_equal): Split out... 3813 (comp_template_args): From here. 3814 (determine_specialization): Also allow a template with more 3815 parms than were explicitly specified. 3816 * cp-tree.h: Add template_args_equal. 3817 * call.c (resolve_args): Remove TEMPLATE_ID_EXPR code. 3818 3819Thu Oct 8 15:58:30 1998 Anthony Green <green@cygnus.com> 3820 3821 * semantics.c (finish_asm_stmt): Revert my 1998-09-28 3822 change. 3823 3824Thu Oct 8 06:00:19 1998 Jeffrey A Law (law@cygnus.com) 3825 3826 * typeck.c (unsigned_type): Only return TItype nodes when 3827 HOST_BITS_PER_WIDE_INT is >= 64 bits. 3828 (signed_type): Likewise. 3829 * decl.c (intTI_type_node, unsigned_intTI_type_node): Only declare 3830 when HOST_BITS_PER_WIDE_INT is >= 64 bits. 3831 (init_decl_processing): Only create TItype nodes when 3832 HOST_BITS_PER_WIDE_INT is >= 64 bits. 3833 * cp-tree.h (intTI_type_node, unsigned_intTI_type_node): Only declare 3834 when HOST_BITS_PER_WIDE_INT is >= 64 bits. 3835 3836Wed Oct 7 12:32:44 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3837 3838 * Makefile.in (hash.h): Add -L KR-C -F ', 0, 0' flags to gperf. 3839 (gxx.gperf): Update comments describing invocation flags. 3840 (hash.h): Regenerate using gperf 2.7.1 (19981006 egcs). 3841 38421998-10-07 Mark Mitchell <mark@markmitchell.com> 3843 3844 * class.c (finish_struct_1): Add commentary on previous change. 3845 3846 * cp-tree.h (vtbl_ptr_type_node): New variable. 3847 * class.c (build_vtbl_ref): Don't indirect through the vptr; it's 3848 already of the right type. 3849 (finish_struct_1): Make the vptr be of type vtbl_ptr_type_node. 3850 Simplify code to grow vtable. 3851 * decl.c (vtbl_ptr_type_node): Define. 3852 (init_decl_processing): Initialize it. 3853 38541998-10-06 Mark Mitchell <mark@markmitchell.com> 3855 3856 * cp-tree.def (PTRMEM_CST): New tree node. 3857 * cp-tree.h (ptrmem_cst): New type. 3858 (lang_type): Remove local_typedecls. 3859 (dummy): Increase to 12 bits from 11. 3860 (CLASSTYPE_LOCAL_TYPEDECLS): Remove. 3861 (PTRMEM_CST_CLASS): New macro. 3862 (PTRMEM_CST_MEMBER): Likewise. 3863 (current_access_specifier): New variable. 3864 (current_class_type): Remove duplicate declaration. 3865 (finish_struct): Change prototype. 3866 (unreverse_member_declarations): New function. 3867 (pushdecl_class_level): Change prototype. 3868 (grok_enum_decls): Remove. 3869 (fixup_anonymous_union): New function. 3870 (grok_x_components): Change prototype. 3871 (tsubst_chain): Remove. 3872 (finish_member_template_decl): Likewise. 3873 (check_explicit_specialization): Fix indentation. 3874 (finish_class_definition): Change prototype. 3875 (finish_member_class_template): Likewise. 3876 (finish_member_declaration): New function. 3877 (check_multiple_declarators): Likewise. 3878 * class.c (class_stack_node_t): New type. 3879 (current_class_base): Remove. 3880 (current_class_stack): Change type. 3881 (current_access_specifier): New variable. 3882 (grow_method): Remove. 3883 (check_member_decl_is_same_in_complete_scope): Break out from 3884 finish_struct. 3885 (make_method_vec): New function. 3886 (free_method_vec): Likewise. 3887 (add_implicitly_declared_members): Break out from finish_struct_1. 3888 (free_method_vecs): New variable. 3889 (add_method): Rework for direct use from parser. 3890 (handle_using_decl): Watch for NULL_TREE while iterating through 3891 CLASSTYPE_METHOD_VEC. 3892 (finish_struct_methods): Don't build CLASSTYPE_METHOD_VEC here; 3893 just do some error-checking. 3894 (warn_hidden): Change iteration through CLASSTYPE_METHOD_VEC. 3895 (finish_struct_1): Simplify. Use add_implicitly_declared_members. 3896 (finish_struct): Change prototype. Simplify; fields and methods 3897 are already set up at this point. 3898 (init_class_processing): Set up current_class_stack. 3899 (pushclass): Save current_access_specifier. 3900 (popclass): Restore it. 3901 (currently_open_class): Simplify. 3902 (build_self_reference): Remove use of CLASSTYPE_LOCAL_TYPEDECLS. 3903 * decl.c (saved_scope): Add access_specifier. 3904 (maybe_push_to_top_level): Save it. 3905 (pop_from_top_level): Restore it. 3906 (maybe_process_template_type_declaration): Use 3907 finish_member_declaration. 3908 (pushtag): Likewise. 3909 (pushdecl_class_level): Don't return a value. 3910 (fixup_anonymous_union): Break out from grok_x_components. 3911 (shadow_tag): Use it. 3912 (xref_tag): Complain about using an elaborated type specifier to 3913 reference a template type parameter or typedef name. 3914 (xref_basetypes): Don't set CLASSTYPE_LOCAL_TYPEDECLS. 3915 (current_local_enum): Remove. 3916 (build_enumerator): Call finish_member_declaration. 3917 (grok_enum_decls): Remove. 3918 * decl2.c (grok_x_components): Simplify. 3919 (check_classfn): Change iteration through CLASSTYPE_METHOD_VEC. 3920 (grokfield): Don't set CLASSTYPE_LOCAL_TYPEDECLS. 3921 (merge_functions): Add to comment. 3922 (arg_assoc_type): Prototype. 3923 (arg_assoc): Pass as many arguments as there are parameters. 3924 * error.c (dump_expr): Handle PTRMEM_CST. Improve handling of 3925 OFFSET_REF. 3926 * expr.c (cpls_expand_expr): Remove dead code. Handle 3927 PTRMEM_CST. 3928 * friend.c (do_friend): Lookup friends when in nested classes. 3929 Change comments. 3930 * init.c (build_offset_ref): Do lookup even for classes that are 3931 only partially defined. 3932 (decl_constant_value): Remove dead code. 3933 * method.c (build_overload_value): Remove hack where by TYPE was 3934 not a TYPE. Handle PTRMEM_CST. 3935 (build_template_parm_names): Don't pass a PARM_DECL where a TYPE 3936 should go. 3937 * parse.y (components, notype_components, component_decl, 3938 component_decl_1, component_declarator, component_declarator0): 3939 Now all are itype rather than ttype. Rework to add members to 3940 classes on the fly. 3941 (typesqpecqual_reserved): Use check_multiple_declarators. 3942 (structsp): Update class to finish_class_definition. 3943 (do_xref_defn): Unsplit into named_class_head. 3944 (access_specifier): Set current_access_specifier. 3945 * pt.c (set_current_access_from_decl): New function. 3946 (finish_member_template_decl): Don't take the parameters. 3947 (comp_template_args): Make more robust. 3948 (lookup_template_class): Don't use current_local_enum. 3949 (for_each_template_parm): Handle PTRMEM_CST. 3950 (instantiate_class_template): Use set_current_access_from_decl, 3951 finish_member_declaration and unreverse_member_declarations. Set 3952 lineno/input_filename before generating implicit member functions. 3953 (type_unification_real): Don't assume back-unification happens 3954 only for the last argument. 3955 (regenerate_decl_from_template): Call pushclass a bit earlier. 3956 (tsubst_chain): Remove. 3957 (tsubst_enum): Use set_current_access_from_decl. 3958 (set_mangled_name_for_template_decl): Fix indentation. 3959 * search.c (lookup_fnfields_1): Change iteration through 3960 CLASSTYPE_METHOD_VEC. 3961 (dfs_pushdecls): Likewise. 3962 (dfs_compress_decls): Likewise. 3963 (add_conversions): Likewise. 3964 * semantics.c (finish_class_definition): Don't take components. 3965 Change call to finish_struct. 3966 (finish_member_declaration): New function. 3967 (finish_member_class_template): Don't take template parameters. 3968 Change call to grok_x_components. Call finish_member_template_decl. 3969 (check_multiple_declarators): New function. 3970 * sig.c (append_signature_fields): Work from the TYPE_METHODS, not 3971 a passed in fieldlist. 3972 * tree.c (search_tree): Handle PTRMEM_CST. 3973 (mapcar): Likewise. 3974 * typeck.c (unary_complex_lvalue): Build PTRMEM_CSTs, not 3975 INTEGER_CSTs, for pointer-to-data members. 3976 3977 * call.c (resolve_args): Resolve template specializations, if 3978 possible. 3979 3980Tue Oct 6 07:57:26 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3981 3982 * Makefile.in (spew.o): Depend on toplev.h. 3983 3984 * call.c (compare_ics): Initialize variables `deref_from_type2', 3985 `deref_to_type1' and `deref_to_type2'. 3986 3987 * except.c (get_eh_type): Hide prototype and definition. 3988 (process_start_catch_block_old): Remove unused static prototype. 3989 3990 * pt.c (tsubst_decl): Initialize variable `argvec'. 3991 3992 * spew.c: Include toplev.h. 3993 39941998-10-05 Jason Merrill <jason@yorick.cygnus.com> 3995 3996 * pt.c (instantiate_decl): Do save and restore file position. 3997 39981998-10-05 Martin von L�wis <loewis@informatik.hu-berlin.de> 3999 4000 * method.c (build_decl_overload_real): Clear 4001 numeric_output_need_bar after __. 4002 40031998-10-05 Nathan Sidwell <nathan@acm.org> 4004 4005 * call.c (build_new_method_call): Issue 'incomplete type' error, 4006 if class is not defined. 4007 40081998-10-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 4009 4010 * call.c (build_object_call): Move declaration of variable 4011 `fn' into the scope where it is used. Don't access variable 4012 `fn' when it is uninitialized, instead use `fns'. 4013 40141998-10-04 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> 4015 4016 * errfn.c (cp_thing): Print buf as a string not as a printf format 4017 to avoid problems with the operator%. Consequently, `%%' sequences 4018 in format are copied as `%' in buf. 4019 40201998-10-04 Jason Merrill <jason@yorick.cygnus.com> 4021 4022 * pt.c (pop_tinst_level): Call extract_interface_info. 4023 (instantiate_decl): Don't save and restore file position. 4024 4025 * decl.c (cp_finish_decl): Make statics in extern inlines and 4026 templates common, if possible and the target doesn't support weak 4027 symbols. 4028 4029 * decl.c (grokdeclarator): Remove redundant calls to 4030 build_type_variant and some duplicated code. 4031 * sig.c (build_signature_reference_type): Only take the type parm. 4032 (build_signature_pointer_type): Likewise. 4033 * tree.c (build_cplus_method_type): Adjust. 4034 * cp-tree.h: Update. 4035 40361998-10-04 Mark Mitchell <mark@markmitchell.com> 4037 4038 * call.c (build_over_call): Make pedwarns about dropped qualifiers 4039 into full-fledged errors. 4040 * cvt.c (convert_to_reference): Likewise. 4041 * typeck.c (convert_for_assignment): Likewise. 4042 4043 * search.c (expand_upcast_vtables): In addition to unsetting 4044 TREE_READONLY, remove top-level const type qualifier. 4045 40461998-10-03 Mark Mitchell <mark@markmitchell.com> 4047 4048 * class.c (current_class_ptr, current_class_ref): Clarify 4049 documentation. 4050 * cvt.c (ocp_convert): Don't expect fold to remove all trivial 4051 NOP type conversions. 4052 * decl.c (decls_match): Use comptypes directly; ignore 4053 qualifiers on the DECL. 4054 (duplicate_decls): Remove qualifier checks on DECL. 4055 (grokdeclarator): Make the type built up include top-level 4056 qualifiers. 4057 * decl2.c (do_dtors): Fix spelling error. 4058 * error.c (dump_simple_decl): Don't look at qualifiers on the decl 4059 when printing type information. 4060 * init.c (build_new_1): Add documentation. Deal with the fact 4061 that type of allocated memory now contains qualifiers. 4062 * lex.c (is_global): Improve error-recovery. 4063 * sig.c (build_member_function_pointer): Don't cast away const 4064 on fields of sigtable_entry_type. 4065 * tree.c (lvalue_type): Don't look at top-level qualifiers on 4066 expressions. 4067 * typeck.c (decay_conversion): Likewise. 4068 (build_component_ref): Make sure the type of the COMPONENT_REF 4069 contains top-level qualifiers, as appropriate. Improve 4070 error-handling. 4071 (build_indirect_ref): Simplify. Don't strip top-level qualifiers. 4072 (build_array_ref): Likewise. 4073 (build_unary_op): Improve error-recovery. 4074 (unary_complex_lvalue): Make taking the address a bound member 4075 function an error, not a sorry. 4076 (build_conditional_expr): Look at the type qualifiers, not the 4077 qualifiers on the expression itself. 4078 40791998-10-03 Jason Merrill <jason@yorick.cygnus.com> 4080 4081 * decl2.c (merge_functions): Remove duplicates. 4082 4083 * decl2.c: Add -f{no-,}implicit-inline-templates. 4084 (import_export_decl): Check it. 4085 4086 * decl.c (lookup_name_real): Template parms also take precedence 4087 over implicit typename. Only warn if yylex. 4088 4089 * typeck.c (build_conditional_expr): Only fold if ifexp is an 4090 INTEGER_CST. 4091 4092 * decl2.c (finish_vtable_vardecl): Check DECL_INTERFACE_KNOWN 4093 instead of linkage. 4094 40951998-10-01 Jason Merrill <jason@yorick.cygnus.com> 4096 4097 * cp-tree.h (FORMAT_VBASE_NAME): New macro. 4098 * class.c (build_vbase_pointer): Use it. 4099 * rtti.c (expand_class_desc): Likewise. 4100 * tree.c (build_vbase_pointer_fields): Likewise. 4101 4102Thu Oct 1 10:43:45 1998 Nick Clifton <nickc@cygnus.com> 4103 4104 * decl.c (start_decl): Add invocation of 4105 SET_DEFAULT_DECL_ATTRIBUTES, if defined. 4106 (start_function): Add invocation of 4107 SET_DEFAULT_DECL_ATTRIBUTES, if defined. 4108 4109 * lex.c: Replace occurrences of HANDLE_SYSV_PRAGMA with 4110 HANDLE_GENERIC_PRAGMAS. 4111 41121998-09-28 Anthony Green <green@cygnus.com> 4113 4114 * semantics.c (finish_asm_stmt): Always permit volatile asms. 4115 41161998-09-28 Mark Mitchell <mark@markmitchell.com> 4117 4118 * decl.c (grokdeclarator): Tighten checks for invalid 4119 destructors. Improve error-messages and error-recovery. 4120 * decl2.c (check_classfn): Don't assume that mangled destructor 4121 names contain type information. 4122 41231998-09-25 Jason Merrill <jason@yorick.cygnus.com> 4124 4125 * search.c (get_base_distance): Remove assert. 4126 4127 * decl2.c (build_anon_union_vars): Don't process a field with no 4128 name. 4129 (finish_anon_union): Also complain about local anon unions with no 4130 members. 4131 41321998-09-25 Martin von L�wis <loewis@informatik.hu-berlin.de> 4133 4134 * decl.c (lookup_namespace_name): If the name is a namespace, 4135 return it immediately. 4136 4137Fri Sep 25 11:45:38 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 4138 4139 * cp-tree.h (define_case_label): Remove unused parameter. 4140 (check_java_method): Likewise. 4141 (grokclassfn): Likewise. 4142 (expand_aggr_init): Likewise. 4143 (build_x_delete): Likewise. 4144 (maybe_end_member_template_processing): Likewise. 4145 (unshare_base_binfos): Add prototype. 4146 (string_conv_p): Likewise. 4147 (my_friendly_abort): Mark with ATTRIBUTE_NORETURN. 4148 4149 * cvt.c (build_up_reference): Remove unused parameter 4150 `checkconst', all callers changed. 4151 (build_type_conversion): Mark parameter `code' with 4152 ATTRIBUTE_UNUSED. 4153 (build_expr_type_conversion): Initialize variable `conv'. 4154 4155 * decl.c (push_namespace): Initialize variable `d'. 4156 (define_case_label): Remove unused parameter `decl', all callers 4157 changed. 4158 4159 * decl2.c (lang_decode_option): If !USE_CPPLIB, mark parameter 4160 `argc' with ATTRIBUTE_UNUSED. 4161 (grokclassfn): Remove unused parameter `cname', all callers 4162 changed. 4163 (check_java_method): Likewise for parameter `ctype'. 4164 (copy_assignment_arg_p): Mark parameter `virtualp' with 4165 ATTRIBUTE_UNUSED. 4166 (finish_prevtable_vardecl): Likewise for parameter `prev'. 4167 4168 * expr.c (extract_init): Likewise for parameters `decl' and `init'. 4169 4170 * init.c (expand_aggr_init_1): Remove unused parameter 4171 `alias_this', all callers changed. 4172 (expand_aggr_init): Likewise. 4173 (expand_default_init): Likewise. 4174 (build_new_1): Initialize variable `susp'. 4175 (build_x_delete): Remove unused parameter `type', all callers 4176 changed. 4177 4178 * lex.c (set_typedecl_interface_info): Mark parameter `prev' with 4179 ATTRIBUTE_UNUSED. 4180 (readescape): Use (unsigned) value in shift. 4181 (real_yylex): Likewise. Likewise. Also cast `sizeof' to int when 4182 comparing to a signed quantity. 4183 4184 * pt.c (maybe_end_member_template_processing): Remove unused 4185 parameter `decl', all callers changed. 4186 (check_explicit_specialization): Add braces around empty body in 4187 an else-statement. 4188 (current_template_args): Initialize variable `args'. 4189 (lookup_template_class): Likewise for variable `prev_local_enum'. 4190 (tsubst_decl): Likewise for variable `r'. 4191 (set_mangled_name_for_template_decl): Initialize variable 4192 `context'. 4193 4194 * spew.c (scan_tokens): Change type of parameter `n' to unsigned. 4195 Likewise for variable `i'. 4196 (yylex): Initialize variable `trrr'. 4197 4198 * typeck.c (compparms): Mark variable `strict' with 4199 ATTRIBUTE_UNUSED. 4200 4201 * xref.c (simplify_type): Cast argument of ctype function to 4202 `unsigned char'. 4203 42041998-09-24 Mark Mitchell <mark@markmitchell.com> 4205 4206 * cp-tree.h (language_lvalue_valid): Remove. 4207 * decl.c (grokdeclarator): Don't disallow references to functions. 4208 * tree.c (lvalue_p_1): New function, combining duplicated 4209 code from ... 4210 (lvalue_p): Use it. 4211 (real_lvalue_p): Likewise. 4212 * typeck.c (language_lvalue_valid): Remove. 4213 (build_modify_expr): Treat FUNCTION_TYPEs as readonly, even though 4214 they don't have TREE_READONLY set. 4215 * typeck2.c (readonly_error): Add case for FUNCTION_DECLs. 4216 42171998-09-24 Benjamin Kosnik <bkoz@loony.cygnus.com> 4218 4219 * spew.c (yylex): Give diagnostic. 4220 * hash.h (is_reserved_word): Add export. 4221 * gxx.gperf: Likewise. 4222 * lex.h (rid): Add RID_EXPORT. 4223 * lex.c (init_parse): Likewise. 4224 4225Tue Sep 22 21:01:19 1998 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> 4226 4227 * friend.c (do_friend): Make warning a full sentence. 4228 42291998-09-22 Mark Mitchell <mark@markmitchell.com> 4230 4231 * parse.y (component_decl_list): Improve error-recovery. 4232 42331998-09-22 Benjamin Kosnik <bkoz@loony.cygnus.com> 4234 4235 * decl.c (make_typename_type): Move error to point where name 4236 variable can be used by dump_type. 4237 42381998-09-22 Mark Mitchell <mark@markmitchell.com> 4239 4240 * decl.c (grokfndecl): Improve error-recovery. 4241 * decl2.c (grokfield): Likewise. 4242 * pt.c (finish_member_template_decl): Likewise. 4243 42441998-09-20 Martin von L�wis <loewis@informatik.hu-berlin.de> 4245 4246 * method.c (hack_identifier): Finding multiple members is always 4247 an error. 4248 42491998-09-21 Per Bothner <bothner@cygnus.com> 4250 4251 * Make-lang.in (c++-filt): Link libiberty.a after cxxmain.o. 4252 4253Mon Sep 21 01:53:05 1998 Felix Lee <flee@cygnus.com> 4254 4255 * lex.c (init_lex): Use getenv ("LANG"), not GET_ENVIRONMENT (). 4256 42571998-09-20 Mark Mitchell <mark@markmitchell.com> 4258 4259 * class.c (maybe_warn_about_overly_private_class): Reformat. 4260 42611998-09-17 Andrew MacLeod <amacleod@cygnus.com> 4262 4263 * exception.cc (__cplus_type_matcher): Realign some code. 4264 42651998-09-16 Mark Mitchell <mark@markmitchell.com> 4266 4267 * Make-lang.in (tinfo.o): Use CXXFLAGS when compiling. 4268 (tinfo2.o): Likewise. 4269 (exception.o): Likewise. 4270 (new.o): Likewise. 4271 (opnew.o): Likewise. 4272 (opnewnt.o): Likewise. 4273 (opvnew.o): Likewise. 4274 (opvnewnt.o): Likewise. 4275 (opdel.o): Likewise. 4276 (opdelnt.o): Likewise. 4277 (opvdel.o): Likewise. 4278 (opvdelnt.o): Likewise. 4279 42801998-09-16 Richard Henderson <rth@cygnus.com> 4281 4282 * decl.c (init_decl_processing): Kill __builtin_fp and __builtin_sp. 4283 42841998-09-15 Alexandre Oliva <oliva@dcc.unicamp.br> 4285 4286 * call.c (build_field_call): Handle static data members too. 4287 4288 * typeck.c (comptypes): When comparing pointer types, check 4289 whether referred types match even in strictest modes. 4290 42911998-09-15 Mark Mitchell <mark@markmitchell.com> 4292 4293 * cp-tree.h: Revert previous change. 4294 (finish_struct_methods): Remove declaration. 4295 * class.c: Revert previous change. 4296 (maybe_warn_about_overly_private_class): New function. 4297 (finish_struct_methods): Declare here, and make static. Remove 4298 unnecessary parameters. Tidy slightly. Use 4299 maybe_warn_about_overly_private_class. 4300 (finish_struct_1): Adjust. Remove check for private constructors, 4301 now done elsewhere. 4302 (finish_struct): Adjust. 4303 43041998-09-15 Andrew MacLeod <amacleod@cygnus.com> 4305 4306 * except.c (expand_start_catch_block): No need to check for new 4307 exception model. 4308 (process_start_catch_block_old): Deleted. 4309 (process_start_catch_block): Add call to start_decl_1(). 4310 (expand_end_catch_block): Add call to end_catch_handler(). 4311 * exception.cc (__cplus_type_matcher): Only check the exception 4312 language if there is an exception table. 4313 43141998-09-15 Andrew MacLeod <amacleod@cygnus.com> 4315 4316 * search.c (expand_indirect_vtbls_init): Mark temporary stack slots 4317 as used to prevent conflicts with virtual function tables. 4318 43191998-09-14 Mark Mitchell <mark@markmitchell.com> 4320 4321 * cp-tree.h (lang_type): Add has_non_private_static_mem_fn. 4322 (CLASSTYPE_HAS_NON_PRIVATE_STATIC_MEM_FN): New macro, to access it. 4323 * class.c (maybe_class_too_private_p): New function. 4324 (finish_struct_methods): Use it. 4325 (finish_struct_1): Likewise. 4326 (finish_struct): Set CLASSTYPE_HAS_NON_PRIVATE_STATIC_MEM_FN if 4327 appropriate. 4328 4329 * pt.c (check_specialization_scope): Fix spelling error. 4330 (check_explicit_specialization): Remove code to handle explicit 4331 specializations in class scope; they are now correctly diagnosed 4332 as errors. 4333 43341998-09-10 Mark Mitchell <mark@markmitchell.com> 4335 4336 * decl.c (pushdecl): Don't copy types if the 4337 DECL_ABSTRACT_ORIGIN of the new decl matches the TYPE_NAME of the 4338 type. 4339 43401998-09-09 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu> 4341 4342 * class.c (get_enclosing_class): New function. 4343 (is_base_of_enclosing_class): Likewise. 4344 * cp-tree.h (get_enclosing_class): Declare. 4345 (is_base_of_enclosing_class): Likewise. 4346 * pt.c (coerce_template_parms): Use them. 4347 43481998-09-09 Jason Merrill <jason@yorick.cygnus.com> 4349 4350 * g++spec.c (lang_specific_driver): Check whether MATH_LIBRARY is 4351 null to decide whether to use it. 4352 4353 * error.c (dump_type_real): Handle NAMESPACE_DECL. 4354 * parse.y (base_class.1): Avoid crash on error. 4355 43561998-09-08 Martin von L�wis <loewis@informatik.hu-berlin.de> 4357 4358 * decl.c (make_typename_type): If context is a namespace, the code 4359 is in error. 4360 43611998-09-08 Mumit Khan <khan@xraylith.wisc.edu> 4362 4363 * parse.y (nomods_initdcl0): Set up the parser stack correctly. 4364 43651998-09-08 Mark Mitchell <mark@markmitchell.com> 4366 4367 * cp-tree.h (anonymous_namespace_name): Declare. 4368 * decl.c: Define it. 4369 (push_namespace): Use anonymous_namespace_name, rather than local 4370 static anon_name. 4371 * error.c (dump_decl): If a namespace is named 4372 anonymous_namespace_name, call it {anonymous}. 4373 4374 * decl.c (grokparms): Distinguish between references and pointers 4375 in error message. 4376 43771998-09-08 Richard Henderson <rth@cygnus.com> 4378 Mark Mitchell <mark@markmitchell.com> 4379 4380 * pt.c (process_partial_specialization): Consistently allocate 4381 and zero tpd.parms based on ntparms. Use tpd2.parms, not 4382 tpd.parms, where appropriate. 4383 4384Sun Sep 6 00:00:51 1998 Jeffrey A Law (law@cygnus.com) 4385 4386 * Makefile.in (INCLUDES): Update after recent toplevel gcc 4387 reorganizations. 4388 43891998-09-05 Mark Mitchell <mark@markmitchell.com> 4390 4391 * cp-tree.h (TI_PENDING_SPECIALIZATION_FLAG): Remove. 4392 * class.c (finish_struct): Remove hackery to deal with explicit 4393 specializations in class scope. 4394 * decl.c (grokfndecl): Improve error-recovery. 4395 * decl2.c (grokfield): Likewise. 4396 * pt.c (check_specialization_scope): New function. 4397 (begin_specialization): Call it. 4398 (process_partial_specialization): New function, split out from 4399 push_template_decl. Check partial specializations more 4400 stringently. 4401 (push_template_decl): Call it. 4402 (check_explicit_specialization): Don't attempt to handle explicit 4403 specializations in class scope. 4404 (template_parm_data): Document. Add current_arg and 4405 arg_uses_template_parms. 4406 (mark_template_parm): Set it. 4407 (tsubst_arg_types): Remove unused variable. 4408 * semantics.c (begin_class_definition): Tweak. 4409 44101998-09-04 Mark Mitchell <mark@markmitchell.com> 4411 4412 * inc/typeinfo (type_info::type_info(const char*)): Make 4413 `explicit'. 4414 4415 * cp-tree.h (hash_tree_cons_simple): New macro. 4416 * pt.c (tsubst_arg_types): New function. Use hash_tree_cons. 4417 (coerce_template_parms): Use make_temp_vec, instead of 4418 make_tree_vec. Document this behavior. 4419 (lookup_template_class): Likewise. 4420 (tsubst, cases METHOD_TYPE, FUNCTION_TYPE): Use tsubst_arg_types. 4421 Remove dead code (and add assertion to check its deadness). Fix 4422 bug w.r.t. exception specifications. 4423 44241998-09-03 Jason Merrill <jason@yorick.cygnus.com> 4425 4426 * decl2.c (import_export_vtable): Always make artificials comdat. 4427 (import_export_decl): Likewise. 4428 * pt.c (mark_decl_instantiated): Likewise. 4429 44301998-09-03 Mark Mitchell <mark@markmitchell.com> 4431 4432 * cp-tree.h (finish_globally_qualified_member_call_expr): 4433 Rename to ... 4434 (finish_qualified_call_expr). 4435 * semantics.c: Likewise. 4436 * parse.y (primary): Use it. 4437 * method.c (hack_identifier): Remove redundant code. 4438 4439 * init.c (resolve_offset_ref): Call convert_from_reference to 4440 handle members of reference type. Improve error recovery. 4441 44421998-09-03 Benjamin Kosnik <bkoz@cygnus.com> 4443 4444 * cp-tree.h: Declare warn_nontemplate_friend. 4445 * decl2.c (lang_decode_option): Set. 4446 * lang-options.h: Add -Wnon-template-friend. 4447 * friend.c (do_friend): Use to toggle non-template function warning. 4448 44491998-09-03 Mark Mitchell <mark@markmitchell.com> 4450 4451 * decl.c (finish_enum): Don't resolve CONST_DECLs to their 4452 corresponding INTEGER_CSTs when processing_template_decl. 4453 * pt.c (tsubst_enum): Tweak accordingly. 4454 44551998-09-03 Benjamin Kosnik <bkoz@rhino.cygnus.com> 4456 4457 * decl.c (pushdecl_class_level): Add warning here. 4458 (pushdecl): Tweak. 4459 44601998-09-02 Jason Merrill <jason@yorick.cygnus.com> 4461 4462 * cvt.c (convert_pointer_to_real): Tidy. 4463 * search.c (get_base_distance_recursive): Simplify. 4464 (get_base_distance): Likewise. 4465 4466 * pt.c (unify): Only special-case INTEGER_TYPE if it uses template 4467 parms. 4468 4469Wed Sep 02 09:25:29 1998 Nick Clifton <nickc@cygnus.com> 4470 4471 * lex.c (check_newline): Call HANDLE_PRAGMA before 4472 HANDLE_SYSV_PRAGMA if both are defined. Generate warning messages 4473 if unknown pragmas are encountered. 4474 (handle_sysv_pragma): Interpret return code from 4475 handle_pragma_token (). Return success/failure indication rather 4476 than next unprocessed character. 4477 (pragma_getc): New function: retrieves characters from the 4478 input stream. Defined when HANDLE_PRAGMA is defined. 4479 (pragma_ungetc): New function: replaces characters back into the 4480 input stream. Defined when HANDLE_PRAGMA is defined. 4481 44821998-09-01 Jason Merrill <jason@yorick.cygnus.com> 4483 4484 * decl2.c (output_vtable_inherit): Use %cDIGIT in the operands. 4485 * class.c (build_vtable_entry_ref): Likewise. 4486 44871998-09-01 Mark Mitchell <mark@markmitchell.com> 4488 4489 * cp-tree.h (DECL_FRIEND_PSEUDO_TEMPLATE_INSTANTIATION): New macro. 4490 * decl2.c (import_export_decl): Likewise. 4491 * pt.c (instantiate_decl): Use it. 4492 44931998-09-01 Jason Merrill <jason@yorick.cygnus.com> 4494 4495 * decl.c (lookup_name_real): Also do implicit typename thing for 4496 artificial TYPE_DECLs. 4497 * search.c (lookup_field): Likewise. 4498 (lookup_fnfields, lookup_field): Adjust for implicit typename kludge. 4499 * semantics.c (begin_constructor_declarator): Use enter_scope_of. 4500 (enter_scope_of): Extract type from implicit typename. 4501 (begin_class_definition): Likewise. 4502 * lex.c (identifier_type): Handle implicit typename when checking 4503 for SELFNAME. 4504 4505 * cp-tree.h: Declare flag_strict_prototype. 4506 * lex.c (do_scoped_id, do_identifier): Don't implicitly_declare if 4507 -fstrict-prototype. 4508 * decl.c (init_decl_processing): If -f{no,-}strict-prototype wasn't 4509 specified, set it to the value of pedantic. 4510 45111998-09-01 Mark Mitchell <mark@markmitchell.com> 4512 4513 * decl2.c (arg_assoc): Handle template-id expressions as arguments. 4514 45151998-08-31 Mark Mitchell <mark@markmitchell.com> 4516 4517 * decl.c (finish_enum): Handle member enums of classes declared in 4518 template functions. 4519 4520 * decl2.c (grok_x_components): Strip attributes before calling 4521 groktypename. 4522 45231998-08-31 Jason Merrill <jason@yorick.cygnus.com> 4524 4525 * cp-tree.h, decl2.c: Remove support for -fall-virtual, 4526 -fenum-int-equivalence and -fno-nonnull-objects. 4527 * class.c (check_for_override): Remove support for -fall-virtual. 4528 (finish_struct_1): Likewise. 4529 * call.c (build_new_op): Remove support for -fenum-int-equivalence. 4530 * typeck.c (build_binary_op_nodefault): Likewise. 4531 * cvt.c (ocp_convert): Likewise. 4532 * call.c (build_vfield_ref): Remove support for -fno-nonnull-objects. 4533 * class.c (build_vbase_path): Likewise. 4534 4535Sun Aug 30 22:16:31 1998 H.J. Lu (hjl@gnu.org) 4536 4537 * Makefile.in (INTERFACE): New, set to 1. 4538 45391998-08-30 Mark Mitchell <mark@markmitchell.com> 4540 4541 * error.c (dump_decl): Use CP_DECL_CONTEXT, not DECL_CONTEXT, when 4542 comparing with global_namespace. 4543 (dump_aggr_type): Likewise. 4544 4545 * decl.c (grokfndecl): Issue error on declaration of friend 4546 templates with explicit template arguments. 4547 4548 * pt.c (convert_template_argument): New function, split out 4549 from... 4550 (coerce_template_parms): Here. 4551 (tsubst): Attempt better error-recovery. 4552 45531998-08-28 Benjamin Kosnik <bkoz@loony.cygnus.com> 4554 4555 * pt.c (decl_template_parm_p): Add checks for 4556 TEMPLATE_TEMPLATE_PARM. 4557 45581998-08-28 Mark Mitchell <mark@markmitchell.com> 4559 4560 * lex.c (do_identifier): Fix thinko in previous change. 4561 45621998-08-28 Jason Merrill <jason@yorick.cygnus.com> 4563 4564 * search.c (dfs_search, binfo_for_vtable, dfs_bfv_helper): New fns. 4565 * decl2.c (output_vtable_inherit): Call binfo_for_vtable. 4566 45671998-08-28 Richard Henderson <rth@cygnus.com> 4568 4569 Add support for discarding unused virtual functions. 4570 * lang-options.h: Add -fvtable-gc. 4571 * cp-tree.h: Add flag_vtable_gc. 4572 * decl2.c (output_vtable_inherit): New fn. 4573 (finish_vtable_vardecl): Call it. 4574 * class.c (build_vtable_entry_ref): New fn. 4575 (build_vtbl_ref): Call it. 4576 45771998-08-28 Mark Mitchell <mark@markmitchell.com> 4578 4579 * cp-tree.h (build_enumerator): Take the enumeration type as a 4580 parameter. 4581 * decl.c (finish_enum): Don't set the TREE_TYPE for the 4582 enumeration constant values if we're processing_template_decls. 4583 Don't set the type for the CONST_DECLs either; that's done in 4584 build_enumerator. 4585 (build_enumerator): Take the enumeration type as a 4586 parameter. 4587 * lex.c (do_identifier): Don't resolve enumeration constants while 4588 processing template declarations, even if they happen to be 4589 TEMPLATE_PARM_INDEXs. 4590 4591 * parse.y (current_enum_type): New variable. 4592 (primary): Don't allow statement-expression in local classes just 4593 as we don't in global classes. 4594 (structsp): Use current_enum_type. 4595 (enum_list): Likewise. 4596 * pt.c (tsubst_enum): Don't check for NOP_EXPRs introduced by 4597 finish_enum; they no longer occur. 4598 4599 * cp-tree.h (finish_base_specifier): New function. 4600 * parse.y (base_class): Use it. 4601 * semantics.c (finish_base_specifier): Define it. 4602 4603 * parse.y (structsp): Warn on use of typename outside of template 4604 declarations. 4605 46061998-08-27 Jason Merrill <jason@yorick.cygnus.com> 4607 4608 * lex.c (handle_cp_pragma): Remove #pragma vtable. 4609 * lang-options.h: Remove +e options. 4610 * decl2.c (lang_decode_option): Likewise. 4611 (import_export_vtable): Don't check write_virtuals. 4612 (finish_vtable_vardecl, finish_file): Likewise. 4613 * search.c (dfs_debug_mark): Likewise. 4614 * semantics.c (begin_class_definition): Likewise. 4615 * class.c (build_vtable, finish_vtbls, finish_struct_1): Likewise. 4616 4617 * call.c (build_over_call): Check flag_elide_constructors. 4618 * decl2.c: flag_elide_constructors defaults to 1. 4619 * typeck.c (convert_arguments): Remove return_loc parm. 4620 (build_function_call_real): Adjust. 4621 4622 * search.c: Tear out all mi_matrix and memoize code. 4623 (lookup_field, lookup_fnfields): Use scratch_tree_cons. 4624 * lang-options.h: Remove documentation for -fhandle-exceptions, 4625 -fmemoize-lookups and -fsave-memoized. 4626 * cp-tree.h: Lose mi_matrix and memoize support. 4627 * decl2.c: Ignore -fmemoize-lookups and -fsave-memoized. 4628 * class.c: Lose struct class_level. 4629 (pushclass, popclass): Lose memoize support. 4630 * init.c (build_offset_ref): Likewise. 4631 4632 Never change BINFO_INHERITANCE_CHAIN. 4633 * init.c (emit_base_init): Change modification of 4634 BINFO_INHERITANCE_CHAIN to an assert. 4635 * search.c (get_base_distance_recursive): Likewise. 4636 (get_base_distance): Likewise. 4637 (lookup_member): Likewise. 4638 (convert_pointer_to_single_level): Likewise. 4639 (lookup_field): Likewise. Lose setting TREE_VIA_* on TREE_LISTs. 4640 (lookup_fnfields): Likewise. 4641 * tree.c (propagate_binfo_offsets): Don't call unshare_base_binfos. 4642 (unshare_base_binfos): Don't call propagate_binfo_offsets. 4643 (layout_basetypes): Call propagate_binfo_offsets instead of 4644 unshare_base_binfos. 4645 * decl.c (xref_basetypes): Call unshare_base_binfos. 4646 * pt.c (instantiate_class_template): Likewise. 4647 * tree.c (reverse_path): Remove 'copy' parm; always make a 4648 temporary copy. 4649 * class.c (build_vbase_path): Just call it. 4650 * search.c (compute_access): Likewise. Don't re-reverse. 4651 46521998-08-27 Mark Mitchell <mark@markmitchell.com> 4653 4654 * class.c (build_vbase_path): Use reverse_path. 4655 (finish_base_struct): Move warnings for inaccessible bases to 4656 layout_basetypes. 4657 (modify_one_vtable): Remove check of TREE_USED (binfo). 4658 (fixup_vtable_deltas1): Likewise. 4659 * cp-tree.h (BINFO_INHERITANCE_CHAIN): Document here. 4660 (xref_tag): Remove binfos parameter. 4661 (make_binfo): Remove chain parameter. 4662 (reverse_path): Add copy parameter. 4663 * decl.c (init_decl_processing): Change calls to xref_tag. 4664 (xref_tag): Remove binfos parameter. 4665 (xref_basetypes): Change calls to make_binfo. 4666 * decl2.c (grok_x_components): Change calls to xref_tag. 4667 (handle_class_head): Likewise. 4668 * friend.c (do_friend): Likewise. 4669 * lex.c (make_lang_type): Change calls to make_binfo. 4670 * parse.y (structsp): Change calls to xref_tag. 4671 (named_complex_class_head_sans_basetype): Likewise. 4672 (named_class_head): Likewise. 4673 * rtti.c (init_rtti_processing): Likewise. 4674 * search.c (compute_access): Change calls to reverse_path. 4675 (dfs_get_vbase_types): Change calls to make_binfo. 4676 (get_vbase_types): Remove dead code. 4677 * tree.c (unshare_base_binfos): Change calls to make_binfo. 4678 (layout_basetypes): Warn here about inaccessible bases. 4679 (make_binfo): Remove chain parameter. 4680 (reverse_path): Add copy parameter. 4681 46821998-08-27 Jason Merrill <jason@yorick.cygnus.com> 4683 4684 * class.c: #if 0 complete_type_p. 4685 * init.c (build_java_class_ref, build_new_1): Remove unused locals. 4686 * method.c (process_overload_item): Likewise. 4687 * typeck.c (comp_target_types): Likewise. 4688 4689 Stop sharing binfos for indirect virtual bases. 4690 * tree.c (propagate_binfo_offsets): Unshare vbases, too. 4691 (layout_basetypes): Likewise. 4692 (unshare_base_binfos): Copy vbases, too. 4693 * cp-tree.h (BINFO_VIA_PUBLIC, BINFO_BASEINIT_MARKED, 4694 BINFO_VBASE_INIT_MARKED): Remove obsolete macros. 4695 (BINFO_PUSHDECLS_MARKED, SET_BINFO_PUSHDECLS_MARKED, 4696 CLEAR_BINFO_PUSHDECLS_MARKED): New macros. 4697 * search.c (lookup_field, lookup_fnfields, lookup_member): Remove 4698 reference to BINFO_VIA_PUBLIC. 4699 (marked_pushdecls_p, unmarked_pushdecls_p): New fns. 4700 (push_class_decls): Use them. 4701 (dfs_pushdecls): Use SET_BINFO_PUSHDECLS_MARKED. 4702 (dfs_compress_decls): Use CLEAR_BINFO_PUSHDECLS_MARKED. 4703 47041998-08-27 Mark Mitchell <mark@markmitchell.com> 4705 4706 * decl.c (build_enumerator): Set DECL_CONTEXT for the 4707 CONST_DECLs. 4708 47091998-08-26 Mark Mitchell <mark@markmitchell.com> 4710 4711 * cp-tree.h (finish_enum): Change prototype. 4712 * decl.c (finish_enum): Use TYPE_VALUES, rather than taking a 4713 VALUES parameter. Don't try to compute mins/maxs if 4714 processing_template_decl. 4715 * parse.y (structsp): Use new calling sequence for finish_enum. 4716 * pt.c (tsubst_enum): Likewise. Take the new type as input. 4717 (lookup_template_class): Remove unused variables. Tweak. 4718 Register enums on instantiation list before substituting 4719 enumeration constants. 4720 (tsubst_decl): Remove unused variables. 4721 (regenerate_decl_from_template): Likewise. 4722 4723 * decl.c (duplicate_decls): Don't obliterate the 4724 DECL_TEMPLATE_INFO for a template if we're not replacing it with 4725 anything. 4726 4727 * lex.c (do_identifier): Fix typo in comment. 4728 4729Wed Aug 26 10:54:51 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 4730 4731 * errfn.c: Remove stdarg.h/varargs.h. 4732 * tree.c: Likewise. 4733 47341998-08-25 Brendan Kehoe <brendan@cygnus.com> 4735 4736 * pt.c (tsubst_copy): Only do typename overloading on an 4737 IDENTIFIER_NODE that happens to look like a typename if it actually 4738 has a type for us to use. 4739 47401998-08-25 Jason Merrill <jason@yorick.cygnus.com> 4741 4742 * typeck.c (comp_cv_target_types): Split out... 4743 (comp_target_types): From here. Don't allow cv-qual changes under 4744 a pointer if nptrs == 0. Fix OFFSET_TYPE handling. 4745 (build_ptrmemfunc): Pass 1 to nptrs. 4746 * cvt.c (perform_qualification_conversions): Use comp_ptr_ttypes. 4747 47481998-08-25 Mark Mitchell <mark@markmitchell.com> 4749 4750 * search.c (dependent_base_p): Don't compare a binfo to 4751 current_class_type; use the TREE_TYPE of the binfo instead. 4752 4753 * cp-tree.h (CLASS_TYPE_P): Revise definition. 4754 47551998-08-25 Jason Merrill <jason@yorick.cygnus.com> 4756 4757 * decl.c (duplicate_decls): Don't complain about different 4758 exceptions from an internal decl even if pedantic. 4759 4760 * typeck.c (convert_for_assignment): Converting from pm of vbase 4761 to derived is an error, not a sorry. 4762 4763 * call.c (build_over_call): Use convert_pointer_to_real for 'this'. 4764 * class.c (fixed_type_or_null): Rename from 4765 resolves_to_fixed_type_p. Return the dynamic type of the 4766 expression, if fixed, or null. 4767 (resolves_to_fixed_type_p): Use it. Return 0 if the dynamic type 4768 does not match the static type. 4769 (build_vbase_path): Rename 'alias_this' to 'nonnull'. Use 4770 resolves_to_fixed_type_p again. 4771 47721998-08-24 Mark Mitchell <mark@markmitchell.com> 4773 4774 * pt.c (tsubst_decl): Move special case code for dealing with 4775 tricky friend templates here from ... 4776 (regenerate_decl_from_template): Here. 4777 47781998-08-24 Jason Merrill <jason@yorick.cygnus.com> 4779 4780 * decl.c (start_decl): Remove redundant linkage check. 4781 47821998-08-24 Gavin Romig-Koch <gavin@cygnus.com> 4783 4784 * typeck.c (c_expand_return): Handle the case that valtype 4785 is wider than the functions return type. 4786 47871998-08-24 Mark Mitchell <mark@markmitchell.com> 4788 4789 * cp-tree.h (CLASS_TYPE_P): New macro. 4790 * decl.c (grokdeclarator): Use it instead of IS_AGGR_TYPE. 4791 * pt.c (process_template_parm): Undo previous change. 4792 47931998-08-24 Benjamin Kosnik <bkoz@cygnus.com> 4794 4795 * cp-tree.h: Declare. 4796 * pt.c (decl_template_parm_p): New function. 4797 * decl.c (pushdecl): Check decls for redeclaring template parms. 4798 (xref_tag): Make redeclaration an error, print decl. 4799 * decl2.c (grokfield): Check field_decls for redeclaration as well. 4800 48011998-08-24 Jason Merrill <jason@yorick.cygnus.com> 4802 4803 * parse.y (primary): Fix up the type of string constants. 4804 48051998-08-24 Mark Mitchell <mark@markmitchell.com> 4806 4807 * typeck.c (convert_for_initialization): Move check for odd uses 4808 of NULL to avoid duplicate warnings. 4809 48101998-08-24 Jason Merrill <jason@yorick.cygnus.com> 4811 4812 * tree.c (lvalue_type): Fix for arrays. 4813 * typeck.c (string_conv_p): New fn. 4814 (convert_for_assignment): Use it. 4815 (build_unary_op): Use lvalue_type. 4816 * call.c (standard_conversion, convert_like): Use string_conv_p. 4817 (add_function_candidate): Use lvalue_type. 4818 * cvt.c (convert_to_reference): Likewise. 4819 * decl2.c (lang_decode_option): Ignore -traditional. 4820 * decl.c (init_decl_processing): flag_writable_strings inhibits 4821 flag_const_strings. 4822 48231998-08-24 Andrew MacLeod <amacleod@cygnus.com> 4824 4825 * lang-options.h (lang_options): Add fconst-strings to the list 4826 of valid options. 4827 * decl2.c (lang_f_options, lang_decode_option): Likewise. 4828 48291998-08-24 Nathan Sidwell <nathan@acm.org> 4830 4831 * lex.c (real_yylex): Don't warn about long long constants if 4832 we're allowing long long. 4833 48341998-08-24 Martin von L�wis <loewis@informatik.hu-berlin.de> 4835 4836 * decl.c (pushdecl): Use IDENTIFIER_NAMESPACE_VALUE instead of 4837 accessing bindings directly. 4838 4839 * search.c (my_tree_cons): Reimplement. 4840 4841 * lang-specs.h: Remove __HONOR_STD. 4842 * inc/exception, inc/new, inc/new.h, inc/typeinfo: Likewise. 4843 48441998-08-23 Mark Mitchell <mark@markmitchell.com> 4845 4846 * decl.c (grokdeclarator): Complain about in-class initialization 4847 of aggregates and/or references. 4848 * pt.c (process_template_parm): Clear IS_AGGR_TYPE for 4849 TEMPLATE_TYPE_PARMs. 4850 4851 * decl2.c (grok_array_decl): Add comment. 4852 (mark_used): Don't instantiate an explicit instantiation. 4853 * friend.c (make_friend_class): Remove bogus comment. Fix check 4854 for partial specializations. 4855 * pt.c (check_explicit_specialization): Don't 4856 SET_DECL_EXPLICIT_INSTANTIATION here. 4857 (mark_decl_instantiated): Or here. 4858 (do_decl_instantiation): Do it here, instead. Add checks for 4859 duplicate explicit instantiations, etc. Tidy. 4860 (do_type_instantiation): Likewise. 4861 (instantiate_decl): Improve comments. Complain about explicit 4862 instantiations where no definition is available. 4863 4864 * cp-tree.h (ansi_null_node): Remove. 4865 * call.c (build_over_call): Warn about converting NULL to an 4866 arithmetic type. 4867 * cvt.c (build_expr_type_conversion): Likewise. Use 4868 null_ptr_cst_p instead of expanding it inline. 4869 * decl.c (ansi_null_node): Remove. 4870 (init_decl_processing): Make null_node always have integral type. 4871 * except.c (build_throw): Warn about converting NULL to an 4872 arithmetic type. 4873 * lex.c (init_parse): Remove handling of ansi_null_node. 4874 * pt.c (type_unification_real): Don't convert NULL to void* type. 4875 * typeck.c (build_binary_op_nodefault): Fix NULL warnings. 4876 (convert_for_assignment): Warn about converting NULL to an 4877 arithmetic type. 4878 (convert_for_initialization): Likewise. 4879 48801998-08-20 Jason Merrill <jason@yorick.cygnus.com> 4881 4882 * tree.c (search_tree, no_linkage_helper, no_linkage_check): New fn. 4883 * pt.c (coerce_template_parms): Use no_linkage_check. 4884 * decl.c (grokvardecl): Likewise. 4885 (grokfndecl): Likewise. Members of anonymous types have no linkage. 4886 4887 * method.c (process_overload_item): Remove useless code. 4888 48891998-08-20 Per Bothner <bothner@cygnus.com> 4890 4891 Handle new'ing of Java classes. 4892 * init.c (build_class_classref): New function. 4893 (build_new_1): If type is TYPE_FOR_JAVA: Call _Jv_AllocObject; 4894 constructor does not return this; don't need to exception-protect. 4895 4896 * pt.c (lookup_template_class): Copy TYPE_FOR_JAVA flag. 4897 * decl2.c (acceptable_java_type): Handle template-derived types. 4898 48991998-08-20 Per Bothner <bothner@cygnus.com> 4900 4901 * decl2.c (import_export_vtable): Suppress vtables for Java classes. 4902 49031998-08-20 Mark Mitchell <mark@markmitchell.com> 4904 4905 * decl.c (duplicate_decls): Always merge the old and new patterns 4906 for templates, regardless of whether or not the new one has 4907 DECL_INITIAL. Don't throw away specializations. Merge 4908 DECL_SAVED_TREE. 4909 * pt.c (tsubst_decl): Use the right pattern when calculating the 4910 complete args for a new template instance. 4911 (do_decl_instantiation): Fix typo in comment. 4912 (regenerate_decl_from_template): Deal with tricky friend template 4913 case. 4914 (instantiate_decl): Likewise. 4915 4916Thu Aug 20 09:09:45 1998 Jeffrey A Law (law@cygnus.com) 4917 4918 * init.c (build_builtin_delete_call): Add missing assemble_external 4919 call. 4920 49211998-08-20 Jason Merrill <jason@yorick.cygnus.com> 4922 4923 * parse.y (notype_unqualified_id): Also accept ~A<int>. 4924 49251998-08-19 Mark Mitchell <mark@markmitchell.com> 4926 4927 * typeck.c (build_binary_op_nodefault): Warn on use of NULL in 4928 arithmetic. 4929 * except.c (build_throw): Warn when NULL is thrown, even with 4930 -ansi. Use ansi_null_node, rather than integer_zero_node, in the 4931 thrown expression. 4932 4933 * cp-tree.h (ansi_null_node): New variable. 4934 * decl.c (ansi_null_node): New variable. 4935 (init_decl_processing): Initialize its type. 4936 * lex.c (init_parse): Initialize its value. Use ansi_null_node 4937 for null_node in non-ANSI mode. 4938 * typeck.c (build_binary_op_nodefault): Use ansi_null_node in 4939 place of null_node to avoid spurious errors. 4940 49411998-08-17 Mark Mitchell <mark@markmitchell.com> 4942 4943 * cp-tree.h (enter_scope_of): New function. 4944 * parse.y (complex_direct_notype_declarator): Use it. 4945 * semantics.c (enter_scope_of): New function. 4946 49471998-08-17 Jason Merrill <jason@yorick.cygnus.com> 4948 4949 * decl.c (grokparms): No, here. 4950 4951 * decl.c (grokdeclarator): Catch parm with pointer to array of 4952 unknown bound here... 4953 * method.c (process_overload_item): ...not here. 4954 4955 * gxxint.texi: Remove obsolete documentation of overloading code. 4956 4957 * decl.c (finish_enum): Also set TYPE_SIZE_UNIT. 4958 * class.c (finish_struct_bits): Likewise. 4959 4960 * tree.c (lvalue_type): Fix for arrays. 4961 * typeck.c (build_unary_op): Use lvalue_type. 4962 * call.c (add_function_candidate): Likewise. 4963 * cvt.c (convert_to_reference): Likewise. 4964 4965 * decl2.c (lang_decode_option): Ignore -traditional. 4966 4967 * init.c (build_offset_ref): Don't mess with error_mark_node. 4968 * lex.c (do_scoped_id): Use cp_error. 4969 4970 * rtti.c (get_tinfo_fn): Don't mess with the context for now. 4971 49721998-08-17 Benjamin Kosnik <bkoz@loony.cygnus.com> 4973 4974 * decl.c (grokdeclarator): Allow anonymous types to be cv-qualified. 4975 4976Mon Aug 17 10:40:18 1998 Jeffrey A Law (law@cygnus.com) 4977 4978 * cp-tree.h (set_identifier_local_value): Provide prototype. 4979 4980 * decl2.c (do_namespace_alias): Remove unused variables `binding' 4981 and `old'. 4982 4983Fri Aug 14 16:42:27 1998 Nick Clifton <nickc@cygnus.com> 4984 4985 * Makefile.in: Rename BBISON to BISON so that it can be properly 4986 inherited from the parent makefile. 4987 49881998-08-13 Jason Merrill <jason@yorick.cygnus.com> 4989 4990 * lang-options.h: Add -finit-priority. 4991 * decl2.c: Likewise. Check flag_init_priority instead of 4992 USE_INIT_PRIORITY. 4993 4994 * decl2.c (setup_initp): New fn. 4995 (start_objects, finish_objects, do_ctors): Handle init_priority. 4996 (do_dtors, finish_file): Likewise. 4997 49981998-08-13 Jason Merrill <jason@yorick.cygnus.com> 4999 5000 * pt.c (tsubst_copy): Hush warning. 5001 5002 * rtti.c (get_tinfo_fn): Also set DECL_IGNORED_P. 5003 50041998-08-12 Mark Mitchell <mark@markmitchell.com> 5005 5006 * pt.c (print_template_context): Don't abort when instantiating a 5007 synthesized method. 5008 5009 * decl.c (grokdeclarator): Issue errors on namespace qualified 5010 declarators in parameter lists or in class scope. 5011 50121998-08-09 Mark Mitchell <mark@markmitchell.com> 5013 5014 * pt.c (check_explicit_specialization): Don't abort on bogus 5015 explicit instantiations. 5016 50171998-08-07 Mark Mitchell <mark@markmitchell.com> 5018 5019 * typeck.c (require_complete_type): Use complete_type_or_else. 5020 (complete_type_or_else): Always return NULL_TREE on failure, as 5021 documented. 5022 5023 * pt.c (tsubst_aggr_type): Prototype. 5024 (tsubst_decl): New function, split out from tsubst. Set 5025 input_filename and lineno as appropriate. 5026 (pop_tinst_level): Restore the file and line number saved in 5027 push_tinst_level. 5028 (instantiate_class_template): Set input_filename and lineno as 5029 appropriate. 5030 (tsubst): Move _DECL processing to tsubst_decl. Make sure the 5031 context for a TYPENAME_TYPE is complete. 5032 5033 * decl2.c (grokbitfield): Issue errors on bitfields declared with 5034 function type. 5035 (do_dtors): As in do_ctors, pretend to be a member of the same 5036 class as a static data member while generating a call to its 5037 destructor. 5038 5039 * cvt.c (cp_convert_to_pointer): Handle NULL pointer 5040 conversions, even in complex virtual base class hierarchies. 5041 50421998-08-06 Mark Mitchell <mark@markmitchell.com> 5043 5044 * cp-tree.h (ENUM_TEMPLATE_INFO): New macro. 5045 (TYPE_TEMPLATE_INFO): Likewise. 5046 (SET_TYPE_TEMPLATE_INFO): Likewise. 5047 (ENUM_TI_TEMPLATE): Likewise. 5048 (ENUM_TI_ARGS): Likewise. 5049 (lookup_nested_type_by_name): Remove. 5050 * decl.c (maybe_process_template_type_declaration): Handle enums. 5051 (start_enum): Don't check for primary-template enum declarations 5052 here. 5053 (finish_enum): Clean up, document. Make sure template enum 5054 constants get the correct type. 5055 (build_enumerator): Copy initializers for template enumerations, 5056 too. 5057 (grok_enum_decls): Document. 5058 * lex.c (do_identifier): Document use of LOOKUP_EXPR a bit 5059 better. Build LOOKUP_EXPRs for local variables, even if they are 5060 TREE_PERMANENT. 5061 * pt.c (tsubst_enum): Remove field_chain parameter. 5062 (template_class_depth): Include the depth of surrounding function 5063 contexts. 5064 (push_template_decl): Check for primary-template enum declarations 5065 here. Deal with enumeration templates. 5066 (lookup_template_class): Likewise. 5067 (for_each_template_parm): Likewise. 5068 (instantiate_class_template): Don't call tsubst_enum directly, 5069 call tsubst instead, to instantiate enums. Deal with all 5070 field_chain issues here, not in tsubst_enum. 5071 (lookup_nested_type_by_name): Remove. 5072 (tsubst_aggr_type): Revise handling of enumeration types. 5073 (tsubst): Likewise. 5074 (tsubst_copy): Likewise. 5075 (tsubst_expr): Call tsubst, not tsubst_enum for TAG_DEFNs. 5076 50771998-08-04 Mark Mitchell <mark@markmitchell.com> 5078 5079 * decl.c (pushtag): Don't mangle the name of a TYPE_DECL if it 5080 uses template parameters. 5081 * method.c (build_template_parm_names): Use the full set of 5082 template arguments for tsubst'ing. 5083 (build_overload_identifier): Pass the full set of template 5084 arguments to build_template_parm_names, not just the 5085 innermost_args. 5086 * pt.c (TMPL_ARGS_DEPTH): Define using 5087 TMPL_ARGS_HAVE_MULTIPLE_LEVELS, for clarity. 5088 (NUM_TMPL_ARGS): New macro. 5089 (add_outermost_template_args): Deal with the case where the outer 5090 args will be completely discarded. 5091 (coerce_template_parms): Use the full set of template arguments 5092 for tsubst'ing. Simplify. Add some asserts. Improve 5093 error messages. 5094 (lookup_template_class): Pass the full set of template arguments 5095 to coerce_template_parms. 5096 (tsubst): Add assertion. 5097 (do_type_instantiation): Don't instantiate member template 5098 classes. 5099 5100 * init.c (build_offset_ref): Deal with a TEMPLATE_ID_EXPR whose 5101 name is a LOOKUP_EXPR, rather than an IDENTIFIER_NODE. 5102 51031998-08-03 Jason Merrill <jason@yorick.cygnus.com> 5104 5105 * method.c (set_mangled_name_for_decl): Change return type to void. 5106 5107 * decl.c (lookup_name_real): A namespace-level decl takes priority 5108 over implicit typename. Avoid doing the same lookup twice. 5109 5110 * search.c (dependent_base_p): New fn. 5111 (dfs_pushdecls, dfs_compress_decls): Use it. 5112 5113 * typeck.c (get_member_function_from_ptrfunc): Don't try to handle 5114 virtual functions if the type doesn't have any. 5115 51161998-08-03 Mark Mitchell <mark@markmitchell.com> 5117 5118 * decl2.c (grokfield): Don't mangle the name of a TYPE_DECL if it 5119 uses template parameters. 5120 51211998-08-02 Mark Mitchell <mark@markmitchell.com> 5122 5123 * cp-tree.def (LOOKUP_EXPR): Document. Remove second argument. 5124 * cp-tree.h (DECL_TI_TEMPLATE): Improve documentation. 5125 * lex.c (do_identifier): Don't use a second argument, or a type, 5126 when building LOOKUP_EXPRs. 5127 (do_identifier): Likewise. 5128 (do_scoped_id): Likewise. 5129 * method.c (hack_identifier): Improve error message. 5130 * pt.c (lookup_template_function): Don't needlessly call 5131 copy_to_permanent or build_min. 5132 (tsubst_copy): Remove #if 0'd code. tsubst into LOOKUP_EXPRs if 5133 necessary. 5134 (do_decl_instantiation): Improve error message. 5135 * tree.c (mapcar, case LOOKUP_EXPR): Don't be sorry; make a copy. 5136 (build_min): Copy the type to the permanent obstack, too. 5137 51381998-08-01 Jason Merrill <jason@yorick.cygnus.com> 5139 5140 * init.c (init_init_processing): Remove BI* handling. 5141 (build_builtin_call): Remove. 5142 (build_builtin_delete_call): New fn. 5143 (build_delete): Use it. 5144 51451998-07-31 Mark Mitchell <mark@markmitchell.com> 5146 5147 * cp-tree.h (PROCESSING_REAL_TEMPLATE_DECL_P): New macro. 5148 (maybe_check_template_type): New function. 5149 * decl.c (maybe_process_template_type_declaration): New function, 5150 split out from pushtag Call maybe_check_template_type. 5151 (pushtag): Use it. Use PROCESSING_REAL_TEMPLATE_DECL_P. 5152 (xref_tag): Use PROCESSING_REAL_TEMPLATE_DECL_P. 5153 * friend.c (do_friend): Use PROCESSING_REAL_TEMPLATE_DECL_P. 5154 * pt.c (template_class_depth_real): Generalization of ... 5155 (template_class_depth): Use it. 5156 (register_specialization): Use duplicate_decls for duplicate 5157 declarations of specializations. 5158 (maybe_check_template_type): New function. 5159 (push_template_decl_real): Fix comment. 5160 (convert_nontype_argument): Likewise. 5161 (lookup_template_class): Likewise. Avoid an infinite loop on 5162 erroneous code. 5163 (tsubst_friend_function): Fix comment. 5164 (tsubst, case FUNCTION_DECL): Deal with a DECL_TI_TEMPLATE that is 5165 an IDENTIFIER_NODE. 5166 * semantics.c (begin_function_definition): Use 5167 reset_specialization to note that template headers don't apply 5168 directly to declarations after the opening curly for a function. 5169 51701998-07-29 Jason Merrill <jason@yorick.cygnus.com> 5171 5172 * decl.c (push_overloaded_decl): Use current_namespace instead of 5173 DECL_CONTEXT (decl) to determine where we go. 5174 5175 * decl.c (lookup_name_real): Fix typo. 5176 51771998-07-28 Mark Mitchell <mark@markmitchell.com> 5178 5179 * friend.c (is_friend): Be lenient with member functions to deal 5180 with nested friends. 5181 51821998-07-28 Jason Merrill <jason@yorick.cygnus.com> 5183 5184 * class.c (finish_struct_1): Convert integer_zero_node to 5185 ssizetype before passing it to set_rtti_entry. 5186 * typeck2.c (initializer_constant_valid_p): Allow conversion of 0 5187 of any size to a pointer. 5188 51891998-07-27 Mark Mitchell <mark@markmitchell.com> 5190 5191 * cp-tree.h (TI_USES_TEMPLATE_PARMS): Remove. 5192 (build_template_decl_overload): Remove. 5193 (set_mangled_name_for_decl): New function. 5194 (innermost_args): Remove is_spec parameter. 5195 (most_specialized, most_specialized_class): Remove declarations. 5196 (lookup_template_class): Add entering_scope parameter. 5197 (maybe_process_partial_specialization): New function. 5198 (finish_template_decl): Likewise. 5199 (finish_template_type): Likewise. 5200 * class.c (finish_struct): Clean up processing of member template 5201 specializations. 5202 * decl.c (pushtag): Fix formatting. 5203 (lookup_tag): Improve handling of pseudo-global levels. 5204 (make_typename_type): Adjust call to lookup_template_class. 5205 (shadow_tag): Use maybe_process_partial_specialization. 5206 (xref_tag): Improve handling of member friends. 5207 (start_function): Call push_nested_class before 5208 push_template_decl. Don't call push_template_decl for 5209 specializations. 5210 * decl2.c (grok_x_components): Don't call xref_tag for 5211 template instantiations. Handle UNION_TYPEs like RECORD_TYPEs. 5212 (grokclassfn): Use set_mangled_name_for_decl. 5213 (arg_assoc_class): Adjust call to innermost_args. 5214 (mark_used): Don't call instantiate_decl for a TEMPLATE_DECL. 5215 * error.c (dump_function_name): Improve printing of template 5216 function names. 5217 * friend.c (is_friend): Don't compare types of decls to determine 5218 friendship, unless flag_guiding_decls. 5219 (make_friend_class): Partial specializations cannot be friends. 5220 (do_friend): Use set_mangled_name_for_decl. Call 5221 push_template_decl_real instead of push_template_decl. 5222 * method.c (build_decl_overload_real): Remove prototype. Give it 5223 external linkage. 5224 (build_overload_identififer): Adjust call to innermost_args. 5225 (build_template_decl_overload): Remove. 5226 (set_mangled_name_for_decl): New function. 5227 * parse.y (.finish_template_type): New non-terminal. 5228 (template_def): Use finish_template_decl. Use template_extdef 5229 instead of extdef. 5230 (template_extdef, template_datadef): New non-terminals, containing 5231 only those rules for things which can be templates. 5232 (datadef): Tidy. 5233 (template_type, self_template_type): Use .finish_template_type. 5234 (named_class_head): Use maybe_process_partial_specialization. 5235 * pt.c (mangle_class_name_for_template): Remove context parameter. 5236 (get_class_bindings): Remove outer_args parameter. 5237 (complete_template_args): Remove. 5238 (add_outermost_template_args): New function. 5239 (register_specialization): Return the specialization. 5240 (unregister_specialization): New function. 5241 (tsubst_template_parms): Likewise. 5242 (most_specialized, most_specialized_class): Prototype here as 5243 static. 5244 (original_template): Rename to most_general_template. 5245 (tsubst_template_parms): New function. 5246 (set_mangled_name_for_template_decl): Likewise. 5247 (TMPL_ARGS_DEPTH): New macro. 5248 (TMPL_ARGS_HAVE_MULTIPLE_LEVELS): Adjust. 5249 (TMPL_ARGS_LEVEL): New macro. 5250 (SET_TMPL_ARGS_LEVEL): Likewise. 5251 (TMPL_ARG): Likewise. 5252 (SET_TMPL_ARG): Likewise. 5253 (TMPL_ARGS_DEPTH): Likewise. 5254 (finish_member_template_decl): Use finish_template_decl. 5255 (maybe_process_partial_specialization): New function, split out 5256 from tsubst. 5257 (inline_needs_template_parms): Use TMPL_PARMS_DEPTH. 5258 (maybe_begin_member_template_processing): Use new macros. 5259 (is_member_template): Likewise. 5260 (is_member_template_class): Likewise. 5261 (add_to_template_args): Likewise. Deal with multiple levels of 5262 args. 5263 (maybe_process_partial_specialization): New function. 5264 (retrieve_specialization): Add consistency check. 5265 (determine_specialization): Return full argument list. 5266 (check_explicit_specialization): Tweak friend handling. Use full 5267 argument lists. Simplify. 5268 (current_template_args): Use new macros. 5269 (push_template_decl_real): Change ill-named mainargs to specargs. 5270 Check that a partial specialization actually specializes at least 5271 one parameter. Improve friend handling. Modify for full 5272 template arguments. 5273 (classtype_mangled_name): Don't mangle the names of 5274 specializations. 5275 (lookup_template_class): Add entering_scope parameter. Use it to 5276 avoid finding a template type when an instantiation is required. 5277 Simplify. Use full template arguments. 5278 (tsubst_friend_function): Use unregister_specialization. Use new 5279 macros. Use full template arguments. 5280 (tsubst_friend_class): Substitute, using tsubst_template_parms, 5281 into the template parameters before passing them to 5282 redeclare_class_template. 5283 (instantiate_class_template): Simplify. Use full template 5284 arguments. Adjust calls to get_class_bindings. Use 5285 SET_IDENTIFIER_TYPE_VALUE where needed. Improve friend handling. 5286 (innermost_args): Use new macros. 5287 (tsubst_aggr_type): New function, split out from tsubst. 5288 (tsubst): Use tsubst_aggr_type, tsubst_template_parms, new calling 5289 conventions for lookup_template_class. Refine handling of partial 5290 instantiations. Remove calls to complete_template_args. 5291 Simplify. Add consistency checks. Use set_mangled_name_for_decl 5292 and set_mangled_name_for_template_decl. 5293 (tsubst_copy): Use tsubst_aggr_type. 5294 (instantiate_template): Use full template arguments. 5295 (more_specialized): Improve formatting. 5296 (more_specialized_class): Adjust calls to get_class_bindings. 5297 (get_bindings_real): Don't call complete_template_args. 5298 (most_specialized): Don't overwrite input; create a new list. 5299 (most_specialized_class): Use most_general_template. 5300 (regenerate_decl_from_template): Use unregister_specialization. 5301 Use full template arguments. 5302 (instantiate_decl): Use full template arguments. 5303 (set_mangled_name_for_template_decl): New function. 5304 * semantics.c (begin_class_definition): Use 5305 maybe_process_partial_specialization. 5306 (finish_member_class_template): New function. 5307 (finish_template_decl): Likewise. 5308 (finish_template_type): Likewise. 5309 (typeck.c): Don't crash after issuing a compiler_error. 5310 * Makefile.in (CONFLICTS): Adjust; we removed a s/r conflict. 5311 53121998-07-27 Jason Merrill <jason@yorick.cygnus.com> 5313 5314 * typeck2.c (build_functional_cast): Handle default-initialization. 5315 5316 * call.c (build_over_call): Pass 1 to popclass. 5317 5318 * parse.y (direct_notype_declarator): Add precedence declaration 5319 to notype_unqualified_id case. 5320 * Makefile.in (EXPECT): Adjust. 5321 5322 * tree.c (ovl_member): Fix for single function in OVL. 5323 53241998-07-27 Dave Brolley <brolley@cygnus.com> 5325 5326 * c-lex.c (yylex): Fix boundary conditions in character literal and 5327 string literal loops. 5328 53291998-07-24 Jason Merrill <jason@yorick.cygnus.com> 5330 5331 * decl.c (lookup_name_real): OK, do return the from_obj value 5332 unless got_object depends on template parms. 5333 5334 * parse.y (nested_name_specifier_1): Pull out the TYPE_MAIN_VARIANT. 5335 5336 * pt.c (coerce_template_parms): Also complain about local enums. 5337 5338 * cp-tree.h: Add prototype for set_identifier_local_value. 5339 * decl.c (set_identifier_local_value_with_scope): Make static, 5340 prototype. 5341 * search.c (covariant_return_p): Likewise. 5342 * except.c (build_terminate_handler, alloc_eh_object): Likewise. 5343 5344 * call.c (build_method_call): Only pull out the type of a destructor 5345 if it's a template type parm. 5346 * decl.c (lookup_name_real): Never return the from_obj value. 5347 53481998-07-23 Jason Merrill <jason@yorick.cygnus.com> 5349 5350 * except.c (process_start_catch_block_old): Call start_decl_1 for 5351 catch parm. 5352 * decl.c (start_decl_1): Avoid duplicate error. 5353 5354 * init.c (expand_default_init): Only perform the initialization if 5355 it will do something. 5356 53571998-07-23 H.J. Lu (hjl@gnu.org) 5358 5359 * parse.y (base_class): Check for invalid base class. 5360 53611998-07-23 Jason Merrill <jason@yorick.cygnus.com> 5362 5363 * decl2.c (import_export_template): Fold in... 5364 (import_export_class): ...to here. Handle dllimport/export. 5365 5366 * class.c (build_vtable): Pass at_eof to import_export_vtable. 5367 (prepare_fresh_vtable): Likewise. 5368 * decl2.c (import_export_class): Split out... 5369 (finish_prevtable_vardecl): From here. 5370 * class.c (finish_struct_1): Call import_export_class if at_eof. 5371 5372 * decl.c (start_function): #if 0 mysterious code I wrote and have 5373 forgotten why. 5374 * rtti.c (get_tinfo_fn): If this is for a class type, set 5375 DECL_CONTEXT. 5376 53771998-07-22 Jason Merrill <jason@yorick.cygnus.com> 5378 5379 * inc/exception: Change terminate and unexpected to (). 5380 5381 * parse.y (named_class_head_sans_basetype_defn): A 5382 named_class_head_sans_basetype followed by '{' or ':' is a defn. 5383 53841998-07-21 Jason Merrill <jason@yorick.cygnus.com> 5385 5386 * tree.c (canonical_type_variant): New fn to handle arrays. 5387 * cp-tree.h (CANONICAL_TYPE_VARIANT): Remove. 5388 * pt.c (unify, default case): Also fold arg. Fix array bounds case. 5389 * method.c (process_overload_item): Use build_overload_value for 5390 arrays. 5391 53921998-07-20 Dave Brolley <brolley@cygnus.com> 5393 5394 * lex.c (mbchar.h): #include it. 5395 (GET_ENVIRONMENT): New macro. 5396 (init_parse): Set character set based on LANG environment variable. 5397 (real_yylex): Handle multibyte characters in character literals. 5398 (real_yylex): Handle multibyte characters in string literals. 5399 54001998-07-19 Jason Merrill <jason@yorick.cygnus.com> 5401 5402 * lex.c (do_identifier): Look for class value even if we don't 5403 have a global value. Do implicit declaration if parsing is 2. 5404 * semantics.c (finish_call_expr): Pass 2 if we're doing Koenig 5405 lookup. 5406 54071998-07-19 Mark Mitchell <mark@markmitchell.com> 5408 5409 * decl.c (pushtag): Revert previous change. 5410 * pt.c (lookup_template_class): Don't put out debugging 5411 information for types that use template parameters. 5412 5413 * decl.c (pushtag): Don't put out debugging information for 5414 compiler-generated typedefs. 5415 5416 * error.c (dump_type_real): Don't crash when presented with 5417 intQI_type_node or the like. 5418 5419 * semantics.c (finish_translation_unit): Fix spelling error in 5420 comment. 5421 54221998-07-17 Jason Merrill <jason@yorick.cygnus.com> 5423 5424 * decl.c (lookup_name_real): Pull out single function here. 5425 (select_decl): Not here. 5426 (unqualified_namespace_lookup): Use CP_DECL_CONTEXT. 5427 5428 * decl.c (qualify_lookup): Tweak again. 5429 5430 * pt.c (lookup_template_class): Don't mess with the context of the 5431 instantiation. 5432 * decl2.c (current_decl_namespace): Remove special handling for 5433 templates. 5434 5435 * pt.c (tsubst, case FUNCTION_DECL): Fix getting complete args for 5436 a member template specialization. 5437 5438 * tree.c (ovl_member): Use decls_match to compare functions. 5439 * decl.c (decls_match): Check the context of a function. 5440 5441 * parse.y (primary): Use notype_unqualified_id instead of IDENTIFIER 5442 in Koenig lookup support rules. 5443 * semantics.c (finish_call_expr): Handle the new cases. 5444 5445 * typeck.c (build_x_function_call): Handle overloaded methods. 5446 5447 * decl.c (grokvardecl): Don't call build_static_name for extern "C". 5448 54491998-07-16 Mark Mitchell <mark@markmitchell.com> 5450 5451 * semantics.c (finish_object_call_expr): Revert previous change. 5452 * call.c (build_new_method_call): Likewise. Instead, convert 5453 TYPE_DECLs to IDENTIFIERs here, in the presence of templates. 5454 54551998-07-16 Jason Merrill <jason@yorick.cygnus.com> 5456 5457 * decl.c (qualify_lookup): Handle templates. 5458 5459 * decl2.c (do_using_directive): Don't pass ancestor. 5460 * decl.c (push_using_directive): Calculate ancestor. 5461 5462 * decl2.c (do_nonmember_using_decl): Allow for type shadowing. 5463 * decl.c (pushdecl): Move type shadowing handling from here... 5464 (duplicate_decls): ...to here. 5465 * decl.c (set_identifier_local_value_with_scope): New fn. 5466 (pushdecl): Use it. 5467 (set_identifier_local_value, lookup_type_current_level): New fns. 5468 * decl2.c (do_local_using_decl): Handle types and binding level 5469 stuff properly. 5470 5471 * init.c (build_offset_ref): Don't call mark_used on an OVERLOAD. 5472 * decl.c (select_decl): Extract a lone function from an OVERLOAD. 5473 (lookup_namespace_name): Likewise. 5474 * typeck.c (build_unary_op): Not here anymore. 5475 5476 * decl2.c (do_class_using_decl): Make sure we get an identifier. 5477 * class.c (handle_using_decl): Ignore TYPE_DECLs. 5478 5479 * decl.c (qualify_lookup): New fn. 5480 (lookup_name_real): Use it. 5481 54821998-07-16 Martin v. Loewis <loewis@informatik.hu-berlin.de> 5483 5484 * decl2.c (add_using_namespace): When directly using a namespace 5485 that was indirect before, promote it. 5486 5487 * cp-tree.h (LOOKUP_PREFER_TYPES, LOOKUP_PREFER_NAMESPACES, 5488 LOOKUP_PREFER_BOTH, LOOKUP_NAMESPACES_ONLY, LOOKUP_TYPES_ONLY, 5489 LOOKUP_QUALIFIERS_ONLY, LOOKUP_TEMPLATES_EXPECTED): New macros. 5490 * decl.c (select_decl): Replace two flag parameters by one. 5491 (unqualified_namespace_lookup): Likewise, pass flag. 5492 (lookup_flags): New function. 5493 (lookup_name_real): Compute flags, pass them. 5494 (lookup_namespace_name): Call with zero-flag. 5495 * decl2.c (ambiguous_decl): Add flag parameter, complain only 5496 according to flags. 5497 (lookup_using_namespace, qualified_lookup_using_namespace): 5498 Add flag parameter, pass them through. 5499 * lex.c (do_scoped_id): Call with zero-flag. 5500 55011998-07-16 Jason Merrill <jason@yorick.cygnus.com> 5502 5503 * typeck.c (convert_for_assignment): Use comptypes. 5504 55051998-07-16 Mark Mitchell <mark@markmitchell.com> 5506 5507 * semantics.c (finish_object_call_expr): Move test for the 5508 function called being a TYPE_DECL to ... 5509 * call.c (build_new_method_call): Here. 5510 55111998-07-15 Jason Merrill <jason@yorick.cygnus.com> 5512 5513 * decl2.c (arg_assoc_class): Also look at template arguments, if any. 5514 (arg_assoc): Handle error_mark_node and multiple levels of TREE_LIST. 5515 5516 * lex.c (looking_for_typename): Don't initialize. 5517 5518 * decl2.c (ambiguous_decl): Clarify error message. 5519 5520 * decl.c (push_using_directive): Iterate over namespaces used 5521 indirectly. 5522 55231998-07-15 Martin v. L�wis <loewis@informatik.hu-berlin.de> 5524 5525 * decl2.c (add_using_namespace): Iterate over namespaces used 5526 indirectly. 5527 5528 * decl.c (lookup_name_real): Accept namespace aliases as locals. 5529 (cat_namespace_levels): Ignore aliases. 5530 (duplicate_decls): Ignore duplicate aliases. 5531 * decl2.c (do_namespace_alias): Process block level namespace 5532 aliases. Store alias with pushdecl. Remove odr errors. 5533 * parse.y (namespace_alias): New non-terminal. 5534 (extdef): Use it. 5535 55361998-07-15 Jason Merrill <jason@yorick.cygnus.com> 5537 5538 * decl2.c (arg_assoc_type): Handle METHOD_TYPE like FUNCTION_TYPE. 5539 Handle TEMPLATE_TYPE_PARM. 5540 (arg_assoc): Rewrite. 5541 5542 * pt.c (complete_template_args): Don't look at the context unless 5543 we have to. 5544 5545 * method.c (build_decl_overload_real): Fix namespace handling. 5546 5547 * typeck.c (build_unary_op): Extract a lone function from an 5548 OVERLOAD. 5549 5550 * call.c (build_scoped_method_call): Handle getting a namespace 5551 for basetype in a destructor call. 5552 (check_dtor_name): Handle enums. 5553 5554 * parse.y (using_directive): New nonterminal. 5555 (extdef, simple_stmt): Use it. 5556 55571998-07-14 Martin von L�wis <loewis@informatik.hu-berlin.de> 5558 5559 * decl2.c (add_function): Move error message ... 5560 (arg_assoc_namespace): ... from here. 5561 55621998-07-14 Jason Merrill <jason@yorick.cygnus.com> 5563 5564 * parse.y (namespace_qualifier): Fix multiple level handling. 5565 * decl2.c (namespace_ancestor): Use CP_DECL_CONTEXT. 5566 (arg_assoc): Don't skip the first argument of a function. 5567 5568Tue Jul 14 20:09:22 1998 Jeffrey A Law (law@cygnus.com) 5569 5570 * search.c (my_tree_cons): Clean up. 5571 55721998-07-14 Jason Merrill <jason@yorick.cygnus.com> 5573 5574 * call.c (joust): Don't warn about "confusing" conversions to the 5575 same type. 5576 55771998-07-14 Martin von L�wis <loewis@informatik.hu-berlin.de> 5578 5579 * class.c (push_nested_class): Complain about namespaces. 5580 * decl.c (start_decl): Enter the object's namespace. 5581 (cp_finish_decl): Leave it. 5582 (grokdeclarator): Likewise. 5583 * decl2.c (check_decl_namespace): New function. 5584 (finish_file): Call it. 5585 * parse.y (complex_direct_notype_declarator): Set complexity 5586 of namespace-qualified ids to -1, enter the namespace. 5587 5588 * method.c (build_template_decl_overload): Expect _DECL as first 5589 parameter. Put context temporarily into current_namespace. 5590 * pt.c (check_explicit_specialization): Change caller. 5591 (tsubst): Likewise. 5592 5593 * init.c (build_offset_ref): Call mark_used and 5594 convert_from_reference for namespace members. 5595 5596Mon Jul 13 23:25:28 1998 Martin von L�wis <loewis@informatik.hu-berlin.de> 5597 5598 * search.c (my_tree_cons): The bitfield is at index 2. 5599 5600Mon Jul 13 17:21:01 1998 Nick Clifton <nickc@cygnus.com> 5601 5602 * lang-options.h: Format changed to work with new --help support 5603 in gcc/toplev.c 5604 56051998-07-12 Martin von L�wis <loewis@informatik.hu-berlin.de> 5606 5607 * decl2.c (build_expr_from_tree): Change calls of do_identifier. 5608 Do Koenig lookup in CALL_EXPR. 5609 (arg_assoc): Handle error_mark. 5610 * lex.c (is_global): New function. 5611 (do_identifier): Expect arguments for Koenig lookup. 5612 * parse.y (primary): Add rules for calls of unqualified function calls. 5613 (do_id): Change call of do_identifier. 5614 * pt.c (finish_stmt_expr): Likewise. 5615 * semantics.c (finish_id_expr): Likewise. 5616 (finish_call_expr): Add integer parameter to indicate 5617 argument-dependent lookup. 5618 5619 * decl.c (struct binding_level): New field using_directives. 5620 (push_using_decl): Not sorry anymore. 5621 (push_using_directive): New function. 5622 (lookup_tag): Use CP_DECL_CONTEXT to iterate. 5623 (unqualified_namespace_lookup): New function, code from ... 5624 (lookup_name_real): ... here. 5625 * decl2.c (lookup_using_namespace): Pass using list instead of 5626 initial scope. 5627 (validate_nonmember_using_decl): New function. 5628 (do_nonmember_using_decl): New function. 5629 (do_toplevel_using_decl): Use them. 5630 (do_local_using_decl): New function. 5631 (do_using_directive): Support block-level directives. 5632 * parse.y (simple_stmt): Support using declarations and 5633 directives. 5634 (namespace_qualifier, namespace_using_decl): New non-terminals. 5635 5636 * xref.c (classname): New function. 5637 (GNU_xref_hier): Change class and base parameters to tree. 5638 * decl.c (xref_baseypes): Change caller. 5639 * friend.c (make_friend_class): Likewise. 5640 56411998-07-12 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu> 5642 5643 * typeck.c (comptypes, case TEMPLATE_TEMPLATE_PARM): Add parameter 5644 comparison. 5645 5646 * pt.c (for_each_template_parm, case TEMPLATE_DECL): If it is a 5647 template template parameter, record its use. 5648 (for_each_template_parm, case TEMPLATE_TEMPLATE_PARM): Traverse 5649 its template arguments if exists. 5650 5651 * pt.c (coerce_template_template_parms): New function equivalent 5652 to coerce_template_parms when IS_TMPL_PARM is true. 5653 (coerce_template_parms): Use it. Remove the IS_TMPL_PARM parameter, 5654 all callers changed. 5655 5656 (coerce_template_parms): Access ARGLIST properly when creating a 5657 new vector. Only accept implicit TYPE_DECL as valid argument for 5658 a template template parameter when it is a base class of 5659 current_class_type. Don't display error message when COMPLAIN is 5660 false. 5661 56621998-07-12 Klaus Kaempf (kkaempf@progis.de) 5663 5664 * repo.c (get_base_filename): Use file_name_nondirectory. 5665 (open_repo_file): Likewise. 5666 * cp-tree.h (file_name_nondirectory): Add prototype. 5667 56681998-07-12 Jason Merrill <jason@yorick.cygnus.com> 5669 5670 * friend.c (do_friend): Pull the identifier out of declarator. 5671 Use cp_error and friends. 5672 * decl2.c (qualified_lookup_using_namespace): Fix call to 5673 purpose_member. 5674 * decl.c (lookup_name_real): Don't call complete_type on a namespace. 5675 (grokvardecl): Use DECL_CLASS_SCOPE_P. 5676 * cvt.c (convert_pointer_to_real): Check for error_mark_node sooner. 5677 * class.c (warn_hidden): Fix for OVERLOAD. 5678 From grahams@rcp.co.uk: 5679 * cp-tree.h (DEFARG_NODE_CHECK): New macro. 5680 (DEFARG_LENGTH, DEFARG_POINTER): Use it. 5681 5682Sun Jul 12 01:20:57 1998 Jeffrey A Law (law@cygnus.com) 5683 5684 * g++.1 (-traditional): Remove duplicated documentation. 5685 56861998-07-11 Mark Mitchell <mark@markmitchell.com> 5687 5688 * method.c (flush_repeats): Add nrepeats parameter. 5689 (issue_nrepeats): Likewise. 5690 (is_back_referenceable_type): New function. Don't back-reference 5691 TEMPLATE_TYPE_PARMs as well as simple types like integers. 5692 (build_mangled_name_for_type): Likewise. 5693 (build_mangled_name_for_type_with_Gcode): Likewise. 5694 (lasttype): Remove. 5695 (nrepeats): Likewise. 5696 (Nrepeats): Likewise. 5697 (start_squangling): Don't clear the variables removed above. 5698 (end_squangling): Likewise. 5699 (flush_repeats): Tidy. Use nrepeats parameter rather than 5700 Nrepeats global. 5701 (issue_nrepeats): Likewise, but with nrepeats global. Use 5702 is_backreferenceable_type. 5703 (build_overload_nested_name): Tidy. Add comment. Use 5704 build_mangled_name_for_type. 5705 (build_underscore_int): Comment. 5706 (build_overload_scope_ref): Use build_mangled_name_for_type. 5707 (build_overload_int): Likewise. 5708 (build_template_template_parm_names): Tidy. 5709 (build_template_parm_names): Use build_mangled_name_for_type. 5710 (build_overload_identifier): Add comments. 5711 (build_mangled_name_for_type_with_Gcode): Split out from 5712 build_mangled_name. 5713 (build_mangled_name_for_type): Use it. 5714 (build_mangled_name): Rework to use build_mangled_name_for_type 5715 and to not use global nrepeats/Nrepeats. Tidy. 5716 (process_modifiers): Tidy. 5717 (check_btype): Use is_backreferenceable_type. Add comment. 5718 Rename `node' to `type'. 5719 (process_overload_item): Set numeric_output_need_bar here. 5720 Use build_mangled_name_for_type. Tidy. 5721 (build_decl_overload_real): Tidy. Don't use Nrepeats. Use 5722 build_mangled_name_for_type. 5723 5724 * pt.c (push_template_decl_real): Don't look at DECL_TEMPLATE_INFO 5725 for TYPE_DECLs. 5726 57271998-07-08 Vladimir N. Makarov <vmakarov@cygnus.com> 5728 5729 * cp-tree.h (warn_long_long): Define. 5730 * decl.c (grokdeclarator): Add flag `warn_long_long' as guard for 5731 warning "ANSI C++ does not support `long long'". 5732 * decl2.c (warn_long_long): Define. 5733 (lang_decode_option): Parse -Wlong-long, -Wno-long-long options. 5734 57351998-07-07 Jason Merrill <jason@yorick.cygnus.com> 5736 5737 * decl.c (xref_tag): Handle attributes between 'class' and name. 5738 * parse.y (aggr): Likewise. 5739 * semantics.c (finish_class_definition): Likewise. 5740 * Makefile.in (EXPECTED): Adjust. 5741 5742 * cp-tree.h: Declare flag_optional_diags and warn_multichar. 5743 * decl2.c: Define them. 5744 (lang_decode_option): Handle them. 5745 * lang-options.h: Add -foptional-diags. 5746 * class.c (finish_struct): Don't complain about multiple meanings of 5747 name if -fno-optional-diags. 5748 * decl.c (pushdecl_class_level): Likewise. 5749 * lex.c (real_yylex): Check warn_multichar. 5750 57511998-07-06 Jason Merrill <jason@yorick.cygnus.com> 5752 5753 * decl.c (lookup_tag): Use CP_DECL_CONTEXT. 5754 5755 * tree.c (make_binfo): Fix length. 5756 57571998-06-30 Benjamin Kosnik <bkoz@bliss.nabi.net> 5758 5759 * decl2.c (lang_decode_option): Remove warn_template_debugging. 5760 * lang-options.h: Likewise. 5761 5762Mon Jun 29 20:17:40 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 5763 5764 * except.c (build_eh_type_type_ref): Remove unused variable `susp'. 5765 (process_start_catch_block): Likewise for variables 5766 `false_label_rtx', `call_rtx' and `return_value_rtx'. 5767 57681998-06-29 Brendan Kehoe <brendan@cygnus.com> 5769 5770 * tree.c (build_srcloc): Make sure we allocate this node on the 5771 permanent obstack. 5772 5773Sat Jun 27 23:34:18 1998 Fred Fish <fnf@ninemoons.com> 5774 5775 * g++spec.c (NEED_MATH_LIBRARY): Define to 1 if not already defined. 5776 (lang_specific_driver): Initialize need_math with NEED_MATH_LIBRARY. 5777 (lang_specific_driver): Only add -lm automatically if need_math is 5778 nonzero. 5779 5780Sat Jun 27 12:22:56 1998 Jeffrey A Law (law@cygnus.com) 5781 5782 * Make-lang.in (g++): Depend on mkstemp.o. Link in mkstemp.o 5783 5784Sat Jun 27 07:36:09 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 5785 5786 * Makefile.in (EXPR_H): New dependency variable. 5787 (decl2.o): Depend on $(EXPR_H). 5788 (typeck.o): Likewise. 5789 (init.o): Likewise. 5790 (expr.o): Likewise. 5791 57921998-06-25 Benjamin Kosnik <bkoz@lisa.cygnus.com> 5793 5794 * decl.c (start_enum): Put local enums on permanent_obstack. 5795 57961998-06-25 Mark Mitchell <mark@markmitchell.com> 5797 5798 * cp-tree.h (c_get_alias_set): Declare. 5799 * decl.c (init_decl_processing): Set lang_get_alias_set. 5800 58011998-06-25 Andrew MacLeod <amacleod@cygnus.com> 5802 5803 * cp-tree.h (mark_all_runtime_matches): Add function prototype. 5804 * except.c (mark_all_runtime_matches): Set TREE_SYMBOL_REFERENCED 5805 flag for all function decls which are in the exception table. 5806 * exception.cc (__cplus_type_matcher): Check for CATCH_ALL_TYPE match. 5807 * decl2.c (finish_file): Call mark_all_runtime_matches to make sure 5808 code is emitted for any referenced rtti function. 5809 58101998-06-25 Dave Brolley <brolley@cygnus.com> 5811 5812 * lang-specs.h: Use new | syntax to eliminate 5813 string concatenation. 5814 58151998-06-25 Jason Merrill <jason@yorick.cygnus.com> 5816 5817 * cp-tree.h (CP_DECL_CONTEXT): New macro. 5818 * decl2.c (is_namespace_ancestor, lookup_using_namespace): Use it. 5819 * method.c (build_overload_nested_name): Likewise. 5820 * sig.c (build_signature_pointer_or_reference_type): Don't set 5821 DECL_CONTEXT. 5822 58231998-06-24 Martin v. L�wis <loewis@informatik.hu-berlin.de> 5824 5825 Set DECL_CONTEXT for globals to NULL_TREE instead of global_namespace. 5826 * cp-tree.h (FROB_CONTEXT): New macro. 5827 (DECL_MAIN_P): ::main should have a DECL_CONTEXT of NULL_TREE. 5828 * decl.c (namespace_binding): Replace NULL_TREE with 5829 global_namespace. 5830 (set_namespace_binding, pop_namespace, lookup_name_real): Likewise. 5831 * decl2.c (is_namespace_ancestor, lookup_using_namespace): 5832 Likewise. 5833 * decl.c (pushtag): Use FROB_CONTEXT. 5834 (pushdecl, make_typename_type, define_function, grokdeclarator): 5835 Likewise. 5836 * decl2.c (set_decl_namespace, do_namespace_alias): Likewise. 5837 * pt.c (push_template_decl_real, lookup_template_class, tsubst): 5838 Likewise. 5839 * decl2.c (decl_namespace): Return global_namespace if no context. 5840 * method.c (build_overload_nested_name): Expect null as context. 5841 * pt.c (mangle_class_name_for_template): Do nothing for null 5842 contexts. 5843 (lookup_template_class): Allow for null id_context. 5844 58451998-06-25 Richard Henderson <rth@cygnus.com> 5846 5847 * method.c (emit_thunk): Set current_function_is_thunk for the 5848 ASM_OUTPUT_MI_THUNK case as well. 5849 58501998-06-23 Andrew MacLeod <amacleod@cygnus.com> 5851 5852 * exception.cc (__cplus_type_matcher): Get a match_info pointer 5853 instead of an exception table entry as a parameter. 5854 58551998-06-23 Andrew MacLeod <amacleod@cygnus.com> 5856 5857 * parse.y (function_try_block): Don't call start_catch_handler. 5858 * except.c (call_eh_info): Remove coerced field from declaration. 5859 (build_eh_type_type_ref): New function to create an address of a 5860 rtti function for the new style exception tables. 5861 (expand_start_catch_block): Split function, this contains the 5862 common part. 5863 (process_start_catch_block_old): New function to perform the rest 5864 of expand_start_catch_block under old style exceptions. 5865 (process_start_catch_block_old): New function to perform the rest 5866 of expand_start_catch_block under new style exceptions. 5867 (expand_end_catch_block): Only pop the false label off the stack under 5868 the old style of exceptions. 5869 * semantics.c (finish_try_block): Don't call start_catch_handler. 5870 * exception.cc (struct cp_eh_info): Add original_value field. 5871 (__cplus_type_matcher): Perform type matching on the original exception 5872 value, and if we have a match, set the current value. 5873 (__cp_push_exception): Set the original exception value. 5874 58751998-06-23 Jason Merrill <jason@yorick.cygnus.com> 5876 5877 * call.c (joust): Fix confusing conversion warning. 5878 5879 * call.c (build_op_delete_call): Add placement parm. Check 5880 LOOKUP_SPECULATIVELY. 5881 * cp-tree.h, decl2.c, init.c: Adjust. 5882 * decl.c (finish_function): Use it. 5883 5884 * pt.c (tsubst): Diagnose creating void fields or variables. 5885 5886Mon Jun 22 08:50:26 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 5887 5888 * call.c (build_scoped_method_call): Remove unused variable `tmp'. 5889 5890 * cp-tree.h (check_dtor_name): Add prototype. 5891 5892 * init.c (expand_member_init): Remove unused variables 5893 `ptr_type_node', `parm' and `rval'. 5894 5895 * ptree.c (print_lang_type): Use HOST_WIDE_INT_PRINT_DEC specifier 5896 in call to fprintf. 5897 (lang_print_xnode): Likewise. 5898 5899 * typeck2.c (enum_name_string): Cast argument to sprintf to long 5900 and use %ld specifier. 5901 5902 * xref.c (GNU_xref_end_scope): Use HOST_WIDE_INT_PRINT_DEC 5903 specifier in call to fprintf. 5904 (GNU_xref_member): Cast argument to sprintf to int. 5905 5906Fri Jun 19 23:22:42 1998 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> 5907 5908 * typeck2.c (pop_init_level): Warn about implicit zero initialization 5909 of struct members. 5910 5911Thu Jun 18 09:32:32 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 5912 5913 * cp-tree.h: Prototype function `check_java_method'. 5914 59151998-06-17 Jason Merrill <jason@yorick.cygnus.com> 5916 5917 * class.c (finish_struct): Make conflicting use of id a pedwarn. 5918 * decl.c (pushdecl_class_level): Likewise. 5919 59201998-06-17 Mark Mitchell <mark@markmitchell.com> 5921 5922 * pt.c (convert_nontype_argument): Issue an error when presented 5923 with an integer (real) constant that cannot be simplified to an 5924 INT_CST (REAL_CST). 5925 5926 * cp-tree.h (c_get_alias_set): Remove declaration added in 5927 1998-06-13 change that should never have been checked in. 5928 59291998-06-17 Jason Merrill <jason@yorick.cygnus.com> 5930 5931 * typeck.c (build_binary_op_nodefault): Change % in format strings 5932 to %%. 5933 5934 * decl.c (grokvardecl): Don't build_static_name for decls that 5935 aren't at namespace scope. 5936 5937 * init.c (perform_member_init): Catch default-initialization of 5938 references. 5939 59401998-06-17 Mark Mitchell <mark@markmitchell.com> 5941 5942 * errfn.c (cp_thing): Handle the `%%' formatting sequence. 5943 59441998-06-17 Jason Merrill <jason@yorick.cygnus.com> 5945 5946 * method.c (hack_identifier): Complain about getting a namespace 5947 or class template. 5948 * typeck.c (decay_conversion): Remove check for namespaces. 5949 * typeck2.c (incomplete_type_error): Likewise. 5950 * parse.y (template_arg): Add PTYPENAME expansion. 5951 59521998-06-16 Andrew MacLeod <amacleod@cygnus.com> 5953 5954 * decl.c (grokvardecl): Don't build external assembler names for 5955 TYPENAMEs in other namespaces as there is no declarator. 5956 * error.c (cp_file_of, cp_line_of): Don't extract file or line number 5957 info from DECL_CONTEXT if it is NULL. 5958 59591998-06-16 Jason Merrill <jason@yorick.cygnus.com> 5960 5961 * call.c (check_dtor_name): Split out. 5962 (build_scoped_method_call): Use it. 5963 (build_method_call): Use it. 5964 * init.c (build_offset_ref): Use it. 5965 5966 * typeck.c (build_static_cast): Fix handling of pointers to members. 5967 5968 * decl.c (finish_function): Just return nothing from a constructor. 5969 * typeck.c (c_expand_return): Complain about returning a void 5970 expression from a destructor. 5971 59721998-06-13 Mark Mitchell <mark@markmitchell.com> 5973 5974 * class.c (alter_access): Accept a BINFO explaining how to get 5975 from the entity whose accessed is being altered to the type doing 5976 the altering. 5977 (handle_using_decl): New function containing code split out from ... 5978 (finish_struct_1): Here. 5979 5980 * cp-tree.h (complete_type_or_else): Declare. 5981 * init.c (build_new_1, build_delete): Use it. 5982 * typeck.c (require_complete_type): Use complete_type, rather than 5983 expanding it inline. 5984 (complete_type_or_else): New function. 5985 (build_component_ref): Use it. 5986 (pointer_int_sum): Make sure the type pointed to is complete. 5987 (pointer_diff): Likewise. 5988 5989 * pt.c (for_each_template_parm): Traverse the TYPE_CONTEXT for 5990 types. 5991 5992 * search.c (get_matching_virtual): Note that member templates 5993 cannot override virtual functions. 5994 59951998-06-12 Brendan Kehoe <brendan@cygnus.com> 5996 5997 * pt.c (check_explicit_specialization): If DECLARATOR turned into 5998 an error_mark_node from lookup_template_function, return the same. 5999 (determine_specialization): Also make sure TEMPLATE_ID isn't an 6000 error_mark_node, before we try to read its operands. 6001 * decl.c (grokdeclarator): If we got an error_mark_node from 6002 check_explicit_specialization, just return it right back. 6003 60041998-06-12 Mark Mitchell <mark@markmitchell.com> 6005 6006 * class.c (instantiate_type): Don't treat template-ids that don't 6007 specify any template arguments as equivalent to ordinary 6008 identifiers. Use OFFSET_REF instead of SCOPE_REF to refer to 6009 pointer-to-members for member templates. Tidy slightly. 6010 * cp-tree.def (TEMPLATE_ID_EXPR): Revise documentation. 6011 * init.c (build_offset_ref): Handle template-ids like ordinary 6012 identifiers, for the most part, but store a TEMPLATE_ID_EXPR in the 6013 offset part of the OFFSET_REF. 6014 * typeck.c (build_unary_op): Change check for unknown types to 6015 look for OFFSET_REFs, not SCOPE_REFs. 6016 60171998-06-11 Mark Mitchell <mark@markmitchell.com> 6018 6019 * pt.c (is_member_template_class): New function. 6020 (push_template_decl_real): Use it. 6021 60221998-06-11 Benjamin Kosnik <bkoz@elmo.cygnus.com> 6023 6024 * friend.c (do_friend): Add support for nested classes using 6025 member functions of the enclosing class as friends. 6026 60271998-06-10 Mark Mitchell <mark@markmitchell.com> 6028 6029 * call.c (convert_default_arg): Make global, not static. 6030 (convert_arg_for_ellipsis): Split out from ... 6031 (build_over_call): Here. 6032 * cp-tree.h (convert_default_arg); Declare. 6033 (convert_arg_to_ellipsis): Likewise. 6034 (do_member_init): Remove. 6035 * init.c (do_member_init): Remove; this code is dead. 6036 (expand_member_init): Remove much of this code; it is dead. 6037 * typeck.c (convert_arguments): Use convert_default_arg and 6038 convert_arg_for_ellipsis, rather than duplicating here. 6039 6040 * call.c (convert_like): Don't fail silently if 6041 build_user_type_conversion fails. Always return error_mark_node 6042 for failure. 6043 60441998-06-10 Jason Merrill <jason@yorick.cygnus.com> 6045 6046 * search.c (covariant_return_p): Complain about ambiguous base. 6047 6048 * typeck.c (build_component_ref): Diagnose ref to nested type. 6049 60501998-06-10 Brendan Kehoe <brendan@cygnus.com> 6051 6052 * decl.c (grokparms): Check that INIT isn't an error_mark_node 6053 before giving error about invalid type for default arg. 6054 60551998-06-10 Jason Merrill <jason@yorick.cygnus.com> 6056 6057 * call.c (build_method_call): Fix thinko. 6058 60591998-06-10 Dave Brolley <brolley@cygnus.com> 6060 6061 * decl2.c (lang_decode_option): New argc/argv interface. 6062 * cp-tree.h (lang_decode_option): New argc/argv interface. 6063 * lang-specs.h (default_compilers): Only call cpp if -E, -M or -MM is 6064 specified for cpplib-enabled compilers. 6065 * lex.c (lang_init): Don't check_newline for cpplib. 6066 (init_parse): Don't initialize cpplib here. 6067 60681998-06-10 Brendan Kehoe <brendan@cygnus.com> 6069 6070 * typeck.c (build_component_ref): Make sure FIELD has a lang_specific 6071 piece before checking DECL_MUTABLE_P. 6072 60731998-06-10 John Carr <jfc@mit.edu> 6074 6075 * tree.c (debug_binfo): Make printf format match arguments. 6076 6077 * error.c (OB_PUTI): Make printf format match arguments. 6078 60791998-06-10 Jason Merrill <jason@yorick.cygnus.com> 6080 6081 * init.c (perform_member_init): Handle default-initialization. 6082 6083 * except.c (build_throw): Handle throwing NULL. 6084 6085 * typeck.c (build_x_function_call): Use resolve_offset_ref. 6086 6087 * search.c (compute_access): Only strip an anonymous union 6088 for a FIELD_DECL. 6089 6090 * call.c (add_builtin_candidates): Tweak. 6091 6092 * cvt.c (build_expr_type_conversion): Restore code for conversion 6093 from class types. 6094 * decl2.c (delete_sanity): Use it. Clean up. 6095 6096 * typeck.c (comp_ptr_ttypes_real): Fix cv-qual comparisons. 6097 60981998-06-10 Branko Cibej <branko.cibej@hermes.si> 6099 6100 * typeck.c (c_expand_return): Don't warn about void expressions on 6101 return statements in functions returning void. 6102 61031998-06-09 Mark Mitchell <mark@markmitchell.com> 6104 6105 * pt.c (fn_type_unification): Revise documentation. Tidy. 6106 (type_unification): Likewise. 6107 61081998-06-09 Andrew MacLeod <amacleod@cygnus.com> 6109 6110 * semantics.c (finish_try_block): Rename expand_start_catch, and delete 6111 expand_end_catch. 6112 * parse.y (function_try_block): Rename expand_start_catch, and delete 6113 expand_end_catch. 6114 * except.c (expand_end_eh_spec): Rename expand_start_catch, and delete 6115 expand_end_catch. 6116 61171998-06-09 Jason Merrill <jason@yorick.cygnus.com> 6118 6119 * search.c (lookup_member): New fn. 6120 * class.c (finish_struct_1): Use it. 6121 * decl.c (lookup_name_real): Use it. 6122 6123Mon Jun 8 20:45:52 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 6124 6125 * Makefile.in (decl2.o): Depend on dwarf2out.h and dwarfout.h. 6126 6127 * cp-tree.h: Add prototype for `maybe_print_template_context' and 6128 `maybe_make_one_only'. 6129 6130 * decl.c (auto_function): Remove unused variable `decl'. 6131 6132 * decl2.c: Include dwarf2out.h and dwarfout.h. 6133 6134 * lex.c: Remove redundant declarations of `set_float_handler' and 6135 `asm_out_file'. 6136 61371998-06-08 Andrew MacLeod <amacleod@cygnus.com> 6138 6139 * except.c (init_exception_processing): Remove NEW_EH_MODEL compile 6140 time flag. Call __cp_eh_info instead of __cp_exception_info. 6141 * exception.cc (struct cp_eh_info): Remove NEW_EH_MODEL flag. 6142 (__cp_exception_info): Return offset into cp_eh_info structure to 6143 match what use to be the start of this structure. 6144 (__cp_eh_info): New function to return a pointer to cp_eh_info struct. 6145 (__cplus_type_matcher, __cp_push_exception): Remove NEW_EH_MODEL 6146 compile time flag. 6147 (__uncatch_exception, __check_eh_spec, std::uncaught_exception): Call 6148 __cp_eh_info instead of __cp_exception_info. 6149 61501998-06-08 Jason Merrill <jason@yorick.cygnus.com> 6151 6152 * decl.c (cp_finish_decl): Disable inlining of extern inlines 6153 with static variables. 6154 61551998-06-08 Mark Mitchell <mark@markmitchell.com> 6156 6157 * init.c (build_offset_ref): Correct previous change to use build, 6158 not build_min. 6159 61601998-06-07 Mark Mitchell <mark@markmitchell.com> 6161 6162 * class.c (instantiate_type): Handle pointer-to-members where the 6163 member is a template. 6164 * init.c (build_offset_ref): Likewise. 6165 * typeck.c (build_unary_op): Likewise. 6166 61671998-06-07 Richard Henderson <rth@cygnus.com> 6168 6169 * lex.c (lang_init_options): New function. 6170 (lang_init): Remove flag_exceptions == 2 hack. 6171 61721998-06-05 Jason Merrill <jason@yorick.cygnus.com> 6173 6174 * search.c (envelope_add_decl): Tweak for implicit typename. 6175 6176 * call.c (joust): Also warn about confusing conversion op/constructor 6177 overload resolution. 6178 6179 * spew.c (yylex): Also return the TYPE_DECL if got_object. 6180 Don't clear got_object after '~'. 6181 * call.c (build_scoped_method_call): Tweak destructor handling. 6182 (build_method_call): Likewise. 6183 * pt.c (tsubst_copy, case METHOD_CALL_EXPR): Don't mess with 6184 TYPE_MAIN_VARIANT for destructors. 6185 * semantics.c (finish_object_call_expr): Complain about calling a 6186 TYPE_DECL. 6187 61881998-06-05 Per Bothner <bothner@cygnus.com> 6189 6190 * g++spec.c (lang_specific_pre_link, lang_specific_extra_ofiles): 6191 Define - update needed by gcc.c change. 6192 61931998-06-05 Jason Merrill <jason@yorick.cygnus.com> 6194 6195 * error.c (cp_printers): Use 'o' instead of '_' for the null entry. 6196 61971998-06-05 Martin v. Loewis <loewis@informatik.hu-berlin.de> 6198 6199 * cp-tree.h (DECL_NAMESPACE_ALIAS, ORIGINAL_NAMESPACE): Declare. 6200 * decl.c (lookup_name_real): Add namespaces_only parameter. 6201 If set, return only NAMESPACE_DECLs. 6202 (select_decl): Likewise. 6203 (identifier_type_value): Give additional parameter. 6204 (lookup_name_nonclass): Likewise. 6205 (lookup_name): Likewise. 6206 (find_binding): Skip namespace aliases. 6207 (binding_for_name): Likewise. 6208 (push_namespace): Check for namespace aliases. 6209 (lookup_name_namespace_only): New function. 6210 (begin_only_namespace_names, end_only_namespace_names): New functions. 6211 * decl2.c (set_decl_namespace): Skip namespace aliases. 6212 (do_using_directive): Likewise. 6213 (do_namespace_alias): Produce namespace aliases, fix alias 6214 redeclaration. 6215 * error.c (dump_decl): Support SCOPE_REF. 6216 * parse.y (extdef): Wrap lookup with namespace_only for namespace 6217 aliases and using declarations. 6218 62191998-06-04 Jason Merrill <jason@yorick.cygnus.com> 6220 6221 * tree.c (really_overloaded_fn): Only see through one TREE_LIST. 6222 6223 * error.c (dump_expr): Clean up NEW_EXPR case. 6224 62251998-06-04 Martin von L�wis <loewis@informatik.hu-berlin.de> 6226 6227 Suggested by Brendan Kehoe 6228 * decl2.c (do_toplevel_using_decl): When decl is a TYPE_DECL, 6229 treat it as using ::decl. 6230 6231 * decl2.c (arg_assoc_type): Process unknown_type_node and OFFSET_TYPE. 6232 6233 * tree.c (mapcar): Support NEW_EXPR. 6234 6235 * error.c (dump_expr): Support NEW_EXPR. 6236 62371998-06-03 Jason Merrill <jason@yorick.cygnus.com> 6238 6239 * method.c (make_thunk): Use overload machinery to make name. 6240 * search.c (covariant_return_p): New fn. 6241 (get_matching_virtual): Use it. 6242 6243 * init.c (build_new_1): Fix check for void. 6244 62451998-06-01 Per Bothner <bothner@cygnus.com> 6246 6247 * cp-tree.h (TYPE_FOR_JAVA): New macro. 6248 * decl.c, cp-tree.h (java_byte_type_node, java_short_type_node, 6249 java_int_type_node, java_long_type_node, java_float_type_node, 6250 java_double_type_node, java_char_type_node, java_boolean_type_node): 6251 New "primitive" types, with predefined names __java_byte etc. 6252 (record_builtin_java_type): New function. 6253 (init_decl_processing): Make Java types with record_builtin_java_type. 6254 (pushtag, grokdeclarator): Set TYPE_FOR_JAVA if in extern "JAVA". 6255 (xref_baseypes): If base class was TYPE_FOR_JAVA, so is this class. 6256 (grokfndecl): Call check_java_method for Java classes. 6257 * method.c (is_java_type): Removed. Replaced with TYPE_FOR_JAVA. 6258 (process_overload_item): Match types against specific 6259 java_XX_type_node types, rather than using is_java_type. 6260 * class.c (finish_struct_1): Don't add default copy constructor 6261 or operator= if TYPE_FOR_JAVA. 6262 (pop_lang_conext): Restore strict_prototyp proper if Java. 6263 * decl2.c (acceptable_java_type, check_java_method): New functions. 6264 * pt.c (instantiate_class_template): Copy TYPE_FOR_JAVA from pattern. 6265 (tsubst): Move common statement after if statement. 6266 * typeck.c (comptypes): If strict, TYPE_FOR_JAVA must match. 6267 62681998-06-01 Jason Merrill <jason@yorick.cygnus.com> 6269 6270 * pt.c (for_each_template_parm): Use first_rtl_op. 6271 6272 * tree.c (build_cplus_array_type_1): Also check index_type for 6273 template parms. 6274 62751998-05-31 Jason Merrill <jason@yorick.cygnus.com> 6276 6277 * pt.c (tsubst): Always copy BINFO_BASETYPES. 6278 62791998-05-29 scott snyder <snyder@d0sgif.fnal.gov> 6280 6281 * tree.c (layout_basetypes): If we change TYPE_SIZE, change 6282 TYPE_SIZE_UNIT too. 6283 62841998-05-29 Mark Mitchell <mark@markmitchell.com> 6285 6286 * decl.c (grokdeclarator): Don't complain about in-class 6287 initialization of static consts if we don't really know the type 6288 of the variable. 6289 62901998-05-29 Jason Merrill <jason@yorick.cygnus.com> 6291 6292 * cp-tree.h (DECL_DESTRUCTOR_P): New macro. 6293 * method.c (build_destructor_name): New fn. 6294 * decl2.c (maybe_retrofit_in_chrg): Split out... 6295 (grokclassfn): From here. Reorganize. 6296 * decl.c (grok_ctor_properties): Make sure ctors for types with 6297 vbases have the in_chrg parm. 6298 * pt.c (instantiate_class_template): Update 6299 TYPE_USES_VIRTUAL_BASECLASSES from tsubsted bases. Don't call 6300 grok_*_properties. 6301 (tsubst): Call grok_ctor_properties and maybe_retrofit_in_chrg. 6302 63031998-05-28 Mark Mitchell <mark@markmitchell.com> 6304 6305 * pt.c (instantiate_decl): Make test for whether or not static 6306 variables should be instantiated early match its comment. 6307 63081998-05-28 Jason Merrill <jason@yorick.cygnus.com> 6309 6310 * decl.c (start_decl): Always pedwarn about vacuously redeclaring 6311 a member. 6312 (start_function): Call check_default_args. 6313 * decl2.c (grokfield): Don't call check_default_args. 6314 (check_default_args): Use cp_error_at. 6315 * lex.c (do_pending_defargs): Call check_default_args. 6316 63171998-05-27 Brendan Kehoe <brendan@cygnus.com> 6318 6319 * call.c (build_method_call): Make sure get_type_value returns 6320 something before we try to use its TYPE_MAIN_VARIANT. 6321 (build_scoped_method_call): Likewise. 6322 63231998-05-27 Jason Merrill <jason@yorick.cygnus.com> 6324 6325 * typeck2.c (digest_init): Complain about getting a TREE_LIST to 6326 initialize an array. 6327 6328 * search.c (expand_upcast_fixups): Don't set DECL_CONTEXT and 6329 DECL_VIRTUAL_P. 6330 6331 * friend.c (do_friend): Clarify template warning. 6332 63331998-05-27 Mark Mitchell <mark@markmitchell.com> 6334 6335 * decl.c (shadow_label): Don't treat decls as identifiers. 6336 (maybe_push_to_top_level): Clear shadowed_labels. 6337 6338 * pt.c (instantiate_decl): Reset lineno and filename after calling 6339 regenerate_decl_from_template. 6340 6341 * decl.c (grokdeclarator): Don't try to use TYPE_OBSTACK on an 6342 error_mark_node. 6343 63441998-05-27 Kevin Buhr <buhr@stat.wisc.edu> 6345 6346 * parse.y (base_class): Use is_aggr_type, not IS_AGGR_TYPE. 6347 63481998-05-26 Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu> 6349 6350 * pt.c (process_template_parm): Accept TYPENAME_TYPE nodes. 6351 (convert_nontype_argument): Handle cases when nontype template 6352 parameters become classes after substitution. 6353 63541998-05-26 Mark Mitchell <mark@markmitchell.com> 6355 6356 * friend.c (is_friend): Use comptypes, rather than == to compare 6357 types. Modify for new representation of template friends. 6358 (make_friend_class): Likewise. 6359 * pt.c (tsubst_friend_class): Undo 1998-05-21 change. Tweak. 6360 (instantiate_class_template): Deal with template friends. 6361 6362 * decl.c (store_parm_decls): Remove redundant call to 6363 expand_main_function. 6364 63651998-05-26 Benjamin Kosnik <bkoz@loony.cygnus.com> 6366 6367 * decl.c (start_decl): Check for DECL_LANG_SPECIFIC before 6368 DECL_USE_TEMPLATE. 6369 63701998-05-26 Per Bothner <bothner@cygnus.com> 6371 6372 * language_as_string: Handle lang_java. 6373 63741998-05-26 Jason Merrill <jason@yorick.cygnus.com> 6375 6376 * decl.c (pushdecl): Don't copy the type_decl. 6377 63781998-05-26 Martin v. L�wis <loewis@informatik.hu-berlin.de> 6379 6380 * class.c (pushclass): Always store TYPE_MAIN_VARIANT in 6381 current_class_type. 6382 * decl.c (grokdeclarator): Put typedefs on the type's obstack. 6383 6384 * parse.y (complex_direct_notype_declarator): Use $1 to access 6385 scope of notype_qualified_id. 6386 63871998-05-26 Dave Brolley <brolley@cygnus.com> 6388 6389 * lex.c (parse_options,yy_cur,yy_lim): Add for cpplib. 6390 (init_parse): Initialize cpplib interface. 6391 6392 * Makefile.in (CXX_OBJS): Make sure dependencies never end with an 6393 empty continuation. 6394 63951998-05-26 Mark Mitchell <mark@markmitchell.com> 6396 6397 * decl.c (pushtag): Avoid crashing on erroneous input. 6398 63991998-05-25 Martin v. L�wis <loewis@informatik.hu-berlin.de> 6400 6401 * decl.c (push_namespace): Only produce one unique name for 6402 anonymous namespaces. 6403 (get_unique_name): Remove. 6404 64051998-05-25 Mark Mitchell <mark@markmitchell.com> 6406 6407 * call.c (tourney): Don't do any extra comparisons. 6408 6409 * decl2.c (build_anon_union_vars): Don't crash on empty sub-unions. 6410 6411 * cp-tree.h (processing_template_parmlist): Declare. 6412 * decl.c (pushtag): Don't call push_template_decl when we 6413 shouldn't. 6414 * pt.c (processing_template_parmlist): New variable. 6415 (TMPL_ARGS_HAVE_MULTIPLE_LEVELS): New macro. 6416 (complete_template_args): Use it. 6417 (add_to_template_args): Likewise. 6418 (innermost_args): Likewise. 6419 (tsubst): Likewise. 6420 (begin_template_parm_list): Use processing_template_parmlist. 6421 (end_template_parm_list): Likewise. 6422 6423 * cp-tree.h (ANON_UNION_TYPE_P): New macro. 6424 * decl.c (grokdeclarator): Use it. 6425 * decl2.c (grok_x_components): Likewise. 6426 * init.c (initializing_context): Likewise. 6427 * method.c (do_build_copy_constructor): Likewise. 6428 (do_build_assign_ref): Likewise. 6429 * search.c (compute_access): Likewise. 6430 * typeck.c (build_component_ref): Likewise. 6431 6432 * decl.c (grokdeclarator): Don't give a cv-qualified version of an 6433 unnamed type a typedef name "for linkage purposes". 6434 6435 * pt.c (lookup_template_class): Don't look at 6436 IDENTIFIER_CLASS_VALUE when there's no current_class_type. 6437 6438 * method.c (build_overload_int): Handle error cases gracefully. 6439 6440 * pt.c (instantiate_decl): Handle static member variables 6441 correctly. 6442 6443 * pt.c (tsubst): Use the tsubst'd type when producing new 6444 TEMPLATE_PARM_INDEX nodes. 6445 64461998-05-24 Mark Mitchell <mark@markmitchell.com> 6447 6448 * tree.c (cp_tree_equal): Handle pointers to member functions. 6449 6450 * call.c (maybe_handle_implicit_object): Handle QUAL_CONVs. Make 6451 sure the type of the REF_BIND is a reference type. 6452 (maybe_handle_ref_bind, compare_ics): Rename reference_type to 6453 target_type for clarity. 6454 6455 * parse.y (xcond): Move call to condition_conversion ... 6456 * semantics.c (finish_for_cond): Here. 6457 * parse.c: Regenerated. 6458 64591998-05-24 Jason Merrill <jason@yorick.cygnus.com> 6460 6461 * decl.c (push_namespace): Namespaces have type void. 6462 * typeck2.c (incomplete_type_error): Complain about namespace 6463 used as expression. 6464 * typeck.c (decay_conversion): Likewise. 6465 64661998-05-24 Martin von L�wis <loewis@informatik.hu-berlin.de> 6467 6468 * error.c (dump_expr): Support namespaces. 6469 64701998-05-23 Jason Merrill <jason@yorick.cygnus.com> 6471 6472 * cp-tree.def: Add SRCLOC. 6473 * cp-tree.h: Add struct tree_srcloc and accessor macros. 6474 * tree.c (build_srcloc, build_srcloc_here): New fns. 6475 * pt.c (add_pending_template): Use build_srcloc_here. 6476 (push_tinst_level): Update last_template_error_tick before erroring. 6477 (instantiate_decl): Restore lineno and input_filename before 6478 calling add_pending_template. 6479 * decl2.c (finish_file): Set up lineno and input_filename for 6480 pending templates. 6481 64821998-05-22 Jason Merrill <jason@yorick.cygnus.com> 6483 6484 * decl.c (lang_print_error_function): New fn. 6485 (init_decl_processing): Set print_error_function to use it. 6486 * errfn.c (cp_thing): Don't call maybe_print_template_context here. 6487 6488 * call.c (maybe_handle_ref_bind): Propagate ICS_USER_FLAG and 6489 ICS_BAD_FLAG. 6490 6491 * cvt.c (ocp_convert): Don't set LOOKUP_NO_CONVERSION for 6492 copy-initialization. 6493 6494 * class.c (build_vtable_entry): Use int_fits_type_p. 6495 (build_vtable): Pass a signed offset to build_vtable_entry. 6496 (prepare_fresh_vtable, modify_one_vtable, fixup_vtable_deltas1, 6497 set_rtti_entry): Likewise. 6498 64991998-05-22 Per Bothner <bothner@cygnus.com> 6500 6501 * cp-tree.h: Add comments documenting which LANG_FLAGS are used. 6502 (C_TYPE_VARIABLE_SIZE, C_DECL_VARIABLE_SIZE): Removed, not used. 6503 65041998-05-22 Jason Merrill <jason@yorick.cygnus.com> 6505 6506 * pt.c (print_template_context): Use fprintf instead of cp_error. 6507 6508 * pt.c (determine_specialization): Just return an error_mark_node. 6509 Also print the decl we want in error messages. If we complain, 6510 return error_mark_node. 6511 (tsubst_friend_function): Set lineno and input_filename so 6512 error messages will be useful. 6513 (instantiate_template): Just return an error_mark_node. 6514 (check_explicit_specialization): Don't mess with a returned 6515 error_mark_node. 6516 6517 * pt.c (print_template_context): Add new argument. 6518 (maybe_print_template_context): New fn. 6519 (push_tinst_level): Increment tinst_level_tick. 6520 (pop_tinst_level): Likewise. 6521 * errfn.c (cp_thing): Call maybe_print_template_context. Use 6522 xrealloc instead of xmalloc. 6523 6524 * typeck.c (build_unary_op, CONVERT_EXPR): Propagate TREE_CONSTANT. 6525 65261998-05-21 Jason Merrill <jason@yorick.cygnus.com> 6527 6528 * pt.c (tsubst_friend_class): Don't call redeclare_class_template 6529 if the template we looked up is the same as the one we already 6530 have. 6531 6532Thu May 21 11:54:44 1998 Dave Brolley <brolley@cygnus.com> 6533 6534 * lex.c: (handle_sysv_pragma): FILE* parameter not used. 6535 (cpp_reader,parse_in): Add for cpplib. 6536 (check_newline): Call handle_sysv_pragma with new interface. 6537 (check_newline): Call GET_DIRECTIVE_LINE, not get_directive_line. 6538 6539 * input.c: (yy_cur,yy_lim,yy_get_token,GETC): Add for cpplib. 6540 (sub_getch): Call GETC for cpplib. 6541 6542 * cp-tree.h: (get_directive_line): Different prototype for cpplib. 6543 (GET_DIRECTIVE_LINE): Macro wrapper for get_directive_line. 6544 6545 * Makefile.in (CXX_OBJS): Add @extra_cxx_objs@ for cpplib. 6546 65471998-05-21 Jason Merrill <jason@yorick.cygnus.com> 6548 6549 * decl2.c (maybe_make_one_only): New fn. 6550 (import_export_vtable): Use it. 6551 (import_export_decl): Likewise. 6552 * pt.c (mark_decl_instantiated): Likewise. 6553 65541998-05-21 Mark Mitchell <mmitchell@usa.net> 6555 6556 * decl2.c (find_representative_member): Rename to ... 6557 (build_anon_union_vars): New function. 6558 (finish_anon_union): Fix stupidity of previous change. 6559 65601998-05-20 Jason Merrill <jason@yorick.cygnus.com> 6561 6562 * decl.c (grokfndecl): Handle definition of specialization in 6563 friend declaration. 6564 6565 * error.c (dump_decl): Fix LOOKUP_EXPR handling. 6566 65671998-05-20 Mark Mitchell <mmitchell@usa.net> 6568 6569 * class.c (delete_duplicate_fields_1): Use DECL_DECLARES_TYPE_P 6570 to look for type declarations. 6571 (finish_struct): Deal with templates on the CLASSTYPE_TAGS list. 6572 * cp-tree.h (DECL_DECLARES_TYPE_P): New macro. 6573 (finish_member_class_template): Declare. 6574 * decl.c (pushtag): Put member class templates on the 6575 CLASSTYPE_TAGS list, just as for ordinary member classes. 6576 (pushdecl_class_level): Use DECL_DECLARES_TYPE_P. 6577 (lookup_tag): Look for IDENTIFIER_CLASS_VALUEs, just as with 6578 IDENTIFIER_NAMESPACE_VALUEs. 6579 * parse.y (component_decl): Move code to ... 6580 * semantics.c (finish_member_class_template): New function. 6581 Don't put member class templates on the list of components for a 6582 class. 6583 * parse.c: Regenerated. 6584 * pt.c (classtype_mangled_name): Don't try DECL_CONTEXT on types. 6585 In fact, don't use DECL_CONTEXT at all here. 6586 65871998-05-20 Martin von Loewis <loewis@informatik.hu-berlin.de> 6588 6589 * decl.c (record_unknown_type): New function. 6590 (init_decl_processing): Call it for the unknown and global type 6591 nodes. 6592 65931998-05-20 Mark Mitchell <mmitchell@usa.net> 6594 6595 * decl2.c (find_representative_member): New function. 6596 (finish_anon_union): Use it. 6597 6598 * cp-tree.h (MAIN_NAME_P): New macro. 6599 (DECL_MAIN_P): Likwise. 6600 * decl.c (pushdecl): Avoid crashing on redefinitions of `main'. 6601 (grokfndecl): Use the new macros. 6602 (grokdeclarator): Likewise. 6603 (start_function): Likewise. 6604 (store_parm_decls): Likewise. 6605 (finsh_function): Likewise. 6606 * friend.c (do_friend): Likewise. 6607 * typeck.c (build_function_call_real): Likewise. 6608 (build_unary_op): Likewise. 6609 6610Wed May 20 02:16:01 1998 Jason Merrill <jason@yorick.cygnus.com> 6611 6612 * decl2.c (start_objects, finish_objects, do_dtors, 6613 do_ctors): Split out from... 6614 (finish_file): ...here. 6615 6616Tue May 19 20:36:23 1998 Jason Merrill <jason@yorick.cygnus.com> 6617 6618 * tree.c (is_overloaded_fn): Don't abort on placeholders from 6619 push_class_decls. 6620 6621Tue May 19 15:16:22 1998 Brendan Kehoe <brendan@cygnus.com> 6622 6623 * class.c (is_empty_class): Return 0 if TYPE is an error_mark_node. 6624 6625 * error.c (dump_expr): Handle an ARROW_EXPR. 6626 6627Tue May 19 15:13:39 1998 Mark Mitchell <mmitchell@usa.net> 6628 6629 * decl.c (saveable_obstack): Declare. 6630 (pushdecl): Copy TYPE_DECLs to the same obstack as the type they 6631 declare, if necessary. 6632 6633Tue May 19 14:50:27 1998 Mark Mitchell <mmitchell@usa.net> 6634 6635 * call.c (compare_qual): Remove. 6636 (is_subseq): Tweak. 6637 (is_properly_derived_from): New function. 6638 (maybe_handle_ref_bind): Likewise. 6639 (maybe_handle_implicit_object): Likewise. 6640 (compare_ics): Modify substantially to bring into conformance with 6641 the standard. 6642 * cp-tree.h (TYPE_PTRMEMFUNC_OBJECT_TYPE): New macro. 6643 (comp_cv_qualification): Declare. 6644 (comp_cv_qual_signature): Likewise. 6645 * typeck.c (comp_cv_qualification): Likewise. 6646 (comp_cv_qual_signature): Likewise. 6647 6648Tue May 19 10:05:02 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 6649 6650 * Makefile.in (parse.o): Depend on toplev.h. 6651 6652 * class.c (typecode_p): Remove prototype and definition. 6653 6654 * cp-tree.h (currently_open_class, is_empty_class, member_p): 6655 Add prototype. 6656 6657 * decl.c (push_overloaded_decl_top_level): Remove prototype and 6658 definition. 6659 6660 * errfn.c (cp_error): Cast function pointer `error' to (errorfn *) 6661 in call to `cp_thing'. 6662 (cp_warning): Likewise for function pointer `warning'. 6663 6664 * except.c (do_function_call): Remove prototype and definition. 6665 (call_eh_info): Wrap variable `t1' in macro NEW_EH_MODEL. 6666 6667 * method.c (is_java_type): Add prototype and make it static. 6668 6669 * parse.y: Include toplev.h. 6670 6671 * pt.c (type_unification): Remove unused variable `arg'. 6672 (instantiate_decl): Likewise for `save_ti'. 6673 6674 * tree.c (propagate_binfo_offsets): Likewise for `base_binfos'. 6675 6676Tue May 19 02:43:25 1998 Jason Merrill <jason@yorick.cygnus.com> 6677 6678 * init.c (build_member_call): Handle template_ids. 6679 * parse.y (primary): Add global_scope template_id. 6680 6681Mon May 18 23:22:52 1998 Jason Merrill <jason@yorick.cygnus.com> 6682 6683 * decl2.c (get_sentry): Use end_temporary_allocation. 6684 Don't declare permanent_obstack. 6685 6686Mon May 18 12:28:44 1998 Mark Mitchell <mmitchell@usa.net> 6687 6688 * parse.y (.finish_new_placement): New non-terminal. 6689 (unary_expr, new_type_id): Use it. 6690 * parse.c: Regenerated. 6691 6692Mon May 18 12:20:27 1998 Brendan Kehoe <brendan@cygnus.com> 6693 6694 * pt.c (redeclare_class_template): Say where the original definition 6695 of the template-parameter's default argument appeared. 6696 6697Mon May 18 03:00:57 1998 Jason Merrill <jason@yorick.cygnus.com> 6698 6699 * call.c (build_over_call): Tweak empty class handling. 6700 6701 * decl.c (make_typename_type): Use currently_open_class. 6702 6703 * class.c (instantiate_type): Don't abort on TREE_NONLOCAL_FLAG. 6704 6705Mon May 18 01:43:01 1998 Martin v. Loewis <loewis@informatik.hu-berlin.de> 6706 6707 * decl.c (lookup_name_real): Don't look at IDENTIFIER_LOCAL_VALUE 6708 for a type unless it is one. 6709 6710 * class.c (finish_struct_1): Use OVL_CURRENT in error message. 6711 6712Mon May 18 01:24:08 1998 Jeffrey A Law (law@cygnus.com) 6713 6714 * Makefile.in (program_transform_name, objdir): Define. 6715 6716 * Makefile.in (BISON): Use bison from the build tree if it exists. 6717 (FLEX): Likewise. 6718 6719Sun May 17 14:52:08 1998 Martin v. Loewis <loewis@informatik.hu-berlin.de> 6720 6721 * typeck.c (type_unknown_p): Return true for TREE_LIST also. 6722 6723 * call.c (build_method_call): Use TYPE_MAIN_VARIANT on typedefs. 6724 6725Sun May 17 14:51:41 1998 Jason Merrill <jason@yorick.cygnus.com> 6726 6727 * call.c (build_scoped_method_call): Likewise. 6728 6729Sun May 17 13:53:48 1998 Mark Mitchell <mmitchell@usa.net> 6730 6731 * init.c (build_new_1): Call suspend_momentary around the creation 6732 of values that must be saved for exception handling. 6733 * parse.y (.build_new_placement): New non-terminal. 6734 (unary_expr, new_placement): Use it. 6735 * parse.c: Regenerated. 6736 6737Sun May 17 12:32:08 1998 Jason Merrill <jason@yorick.cygnus.com> 6738 6739 * decl.c (duplicate_decls): Use CANONICAL_TYPE_VARIANT to compare 6740 old and new types. 6741 6742 * pt.c (tsubst): Make sure that BINFO_TYPE of new binfos is the 6743 canonical type. 6744 6745 * call.c (build_over_call): Don't use IS_SIGNATURE on a namespace. 6746 6747Fri May 15 20:28:00 1998 Jason Merrill <jason@yorick.cygnus.com> 6748 6749 * decl.c (start_decl): Revert problem change. 6750 6751 * Makefile.in (CONFLICTS): Fix. 6752 6753Fri May 15 15:34:02 1998 Benjamin Kosnik <bkoz@rhino.cygnus.com> 6754 6755 * decl.c (duplicate_decls): Clean up, add DECL_DATA_AREA bits. 6756 6757Fri May 15 00:46:05 1998 Jason Merrill <jason@yorick.cygnus.com> 6758 6759 * class.c (finish_struct_1): Use BINFO_SIZE. 6760 6761 * decl.c (start_decl): Use 'tem'. 6762 6763Thu May 14 16:30:47 1998 Andrew MacLeod <amacleod@cygnus.com> 6764 6765 * exception.cc: Include eh-common.h. 6766 (struct cp_eh_info): Add eh_info struct with NEW_EH_MODEL. 6767 (__cplus_type_matcher): First stab at new C++ runtime type matcher. 6768 (__cp_push_exception): Initialize eh_info struct as well. 6769 * except.c: Remove local structs and include eh-common.h. 6770 (init_exception_processing): Set language and version codes. 6771 (call_eh_info): Add presence of eh_info to runtime description of 6772 struct cp_eh_info. 6773 (expand_end_eh_spec): Call start_catch_block() and end_catch_block(). 6774 * semantics.c (finish_try_block): Call start_catch_block() and 6775 end_catch_block(). 6776 * parse.y (function_try_block): Call start_catch_block() and 6777 end_catch_block(). 6778 6779Thu May 14 12:27:34 1998 Brendan Kehoe <brendan@cygnus.com> 6780 6781 * typeck.c (original_type): New function. 6782 (common_type): Use it to get the DECL_ORIGINAL_TYPE for T1 and T2, 6783 to see if they're actually the same. 6784 * cp-tree.h (original_type): Declare. 6785 6786Wed May 13 12:54:30 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 6787 6788 * Makefile.in (lex.o): Depend on output.h. 6789 6790 * call.c (add_function_candidate): Remove unused variable `cand'. 6791 (add_conv_candidate): Likewise. 6792 (build_builtin_candidate): Likewise. 6793 6794 * cp-tree.h: Add prototype for `types_overlap_p'. 6795 6796 * decl.c (signal_catch): Mark parameter `sig' with ATTRIBUTE_UNUSED. 6797 6798 * decl2.c (merge_functions): Remove unused variables `tmp' and 6799 `tempn'. 6800 6801 * error.c (expr_as_string): Mark parameter `v' with ATTRIBUTE_UNUSED. 6802 (code_as_string): Likewise. 6803 (language_as_string): Likewise. 6804 (parm_as_string): Likewise. 6805 (op_as_string): Likewise. 6806 (assop_as_string): Likewise. 6807 (cv_as_string): Likewise. 6808 6809 * lex.c: Include output.h. 6810 6811 * pt.c (type_unification): Cast first argument of `bzero' to a char*. 6812 6813 * search.c (dfs_no_overlap_yet): Mark parameter `t' with 6814 ATTRIBUTE_UNUSED. 6815 6816 * tinfo.cc (__class_type_info::dcast): Change the type of variable 6817 `i' from int to size_t. 6818 6819 * typeck.c (language_lvalue_valid): Mark parameter `exp' with 6820 ATTRIBUTE_UNUSED. 6821 6822Tue May 12 21:37:49 1998 Jason Merrill <jason@yorick.cygnus.com> 6823 6824 * error.c (dump_simple_decl): Use DECL_CLASS_SCOPE_P and/or 6825 DECL_NAMESPACE_SCOPE_P. 6826 (lang_decl_name): Likewise. 6827 * pt.c (tsubst_friend_function, tsubst): Likewise. 6828 * decl.c (pushdecl, redeclaration_error_message, start_decl, 6829 cp_finish_decl, start_function): Likewise. 6830 * class.c (finish_struct_1): Likewise. 6831 * call.c (build_over_call): Likewise. 6832 (compare_ics): Use DERIVED_FROM_P. 6833 6834Tue May 12 07:24:18 1998 Mark Mitchell <mmitchell@usa.net> 6835 6836 * cp-tree.h (CANONICAL_TYPE_VARIANT): New macro. 6837 * method.c (build_mangled_name): Use it. 6838 (build_decl_overload_real): Likewise. 6839 6840 * error.c (dump_simple_decl): New function, broken out from ... 6841 (dump_decl): Use it. 6842 6843Mon May 11 11:38:07 1998 Mark Mitchell <mmitchell@usa.net> 6844 6845 * ptree.c (lang_print_xnode): Add missing `break'. 6846 6847 * pt.c (tsubst): Remove duplicate check for IDENTIFIER_NODE. 6848 6849 * call.c (add_template_candidate): Adjust for changes to 6850 fn_type_unification. 6851 (add_template_candidate_real): Likewise. 6852 (add_template_conv_candidate): Likewise. 6853 (build_user_type_conversion_1): Likewise. 6854 (build_new_function_call): Likewise. 6855 (build_object_call): Likewise. 6856 (build_new_op): Likewise. 6857 (build_new_method_call): Likewise. 6858 * class.c (instantiate_type): Likewise. 6859 * cp-tree.h (unification_kind_t): New type. 6860 (fn_type_unification): Adjust prototype. 6861 (type_unificaiton): Likewise. 6862 * pt.c (UNIFY_ALLOW_NONE): New macro. 6863 (UNIFY_ALLOW_MORE_CV_QUAL): Likewise. 6864 (UNIFY_ALLOW_LESS_CV_QUAL): Likewise. 6865 (UNIFY_ALLOW_DERIVED): Likewise. 6866 (unify): Change prototype. 6867 (maybe_adjust_types_for_deduction): New function. 6868 (check_cv_quals_for_unify): Likewise. 6869 (determine_specialization): Adjust. 6870 (fn_type_unification): Likewise. 6871 (type_unification): Likewise. 6872 (type_unification_real): Likewise. Use 6873 maybe_adjust_types_for_deduction. Fix mishandling of 6874 back-unification of template functions passed as arguments. Pass 6875 appropriate combination of UNIFY_ALLOW_* to unify. 6876 (unify): Remove unused NTPARMS parameter. Use 6877 check_cv_quals_for_unify. Remove bogus code that allowed 6878 too-generous unification in order to adhere more closely to standard. 6879 (get_bindings_real): Adjust. 6880 (get_class_bindings): Likewise. 6881 6882 * method.c (build_overload_identifier): Only use the innermost 6883 template arguments when mangling. 6884 * pt.c (tsubst_template_argument_vector): New function. 6885 (complete_template_args): Deal with the situation where the 6886 extra_args contain more than one level of arguments. 6887 (lookup_template_class): Deal with member template classes, which 6888 may have more than one level of arguments. 6889 (tsubst): Don't tsbust into the TREE_TYPE of an IDENTIFIER_NODE. 6890 Improve handling of member template classes. Use 6891 DECL_PRIMARY_TEMPLATE instead of inline expansion. Use 6892 tsubst_template_argument_vector where appropriate. 6893 (regenerate_decl_from_template): Break out from ... 6894 (instantiate_decl): Here. 6895 6896 * lex.c (yyprint): Remove TYPENAME_ELLIPSIS. 6897 * parse.h: Regenerated. 6898 * parse.c: Really regenerated. 6899 6900 * cp-tree.h (finish_unary_op_expr): New function. 6901 (finish_id_expr): Likewise. 6902 (begin_new_placement): Likewise. 6903 (finish_new_placement): Likewise. 6904 (finish_declarator): Likewise. 6905 (finish_translation_unit): Likewise. 6906 (finish_parmlist): Likewise. 6907 (begin_class_definition): Likewise. 6908 (finish_class_definition): Likewise. 6909 (finish_default_args): Likewise. 6910 (finish_inline_definitions): Likewise. 6911 * parse.y (GCC_ASM_KEYWORD): Remove. 6912 (TYPENAME_ELLIPSIS): Likewise. 6913 * parse.c: Regenerated. 6914 Use new functions in semantics.c in the actions for many rules. 6915 * gxx.gperf (GCC_ASM_KEYWORD): Just use ASM_KEYWORD. 6916 * hash.h: Regenerated. 6917 * semantics.c (finish_expr_stmt): Allow NULL expr. 6918 (finish_unary_op_expr): New function, containing 6919 code previously in parse.y. 6920 (finish_id_expr): Likewise. 6921 (begin_new_placement): Likewise. 6922 (finish_new_placement): Likewise. 6923 (finish_declarator): Likewise. 6924 (finish_translation_unit): Likewise. 6925 (finish_parmlist): Likewise. 6926 (begin_class_definition): Likewise. 6927 (finish_class_definition): Likewise. 6928 (finish_default_args): Likewise. 6929 (finish_inline_definitions): Likewise. 6930 6931Sun May 10 23:43:13 1998 Mark Mitchell <mmitchell@usa.net> 6932 6933 * typeck.c (build_c_cast): Don't decay arrays and functions to 6934 pointer type when converting to a class type. 6935 6936Sun May 10 22:53:56 1998 Jason Merrill <jason@yorick.cygnus.com> 6937 6938 * cp-tree.h (DECL_NAMESPACE_SCOPE_P): New macro. 6939 (DECL_CLASS_SCOPE_P): Likewise. 6940 6941Sun May 10 22:48:22 1998 H.J. Lu (hjl@gnu.org) 6942 6943 * class.c (finish_struct_1): Use OVL_CURRENT on TREE_VEC_ELT. 6944 * decl2.c (constructor_name_full): Likewise. 6945 6946Sun May 10 22:48:12 1998 Mike Stump <mrs@wrs.com> 6947 6948 * tree.c (mapcar): Add OVERLOAD support. 6949 6950 * init.c (resolve_offset_ref): We must use basetype_path before we 6951 destroy it with a call to convert_pointer_to. 6952 6953Sat May 9 14:44:37 1998 Jason Merrill <jason@yorick.cygnus.com> 6954 6955 * class.c (currently_open_class): New fn. 6956 * decl.c (lookup_name_real): Use it. 6957 * search.c (lookup_field): Likewise. 6958 6959Fri May 8 23:32:42 1998 Martin von Loewis <loewis@informatik.hu-berlin.de> 6960 6961 * cp-tree.def (OVERLOAD): New node. 6962 * cp-tree.h (BINDING_TYPE, SET_IDENTIFIER_GLOBAL_VALUE, 6963 SET_IDENTIFIER_NAMESPACE_VALUE): Define. 6964 (NAMESPACE_BINDING): Remove. 6965 (IDENTIFIER_GLOBAL_VALUE, IDENTIFIER_NAMESPACE_VALUE): Use 6966 namespace_binding. 6967 (OVL_FUNCTION, OVL_CHAIN, OVL_CURRENT, OVL_NEXT, OVL_USED): 6968 Define. 6969 (tree_overload): New struct. 6970 (IDENTIFIER_TYPE_VALUE): Use identifier_type_value. 6971 (REAL_IDENTIFIER_TYPE_VALUE): Define. 6972 (IDENTIFIER_HAS_TYPE_VALUE): Use IDENTIFIER_TYPE_VALUE. 6973 (lang_decl_flags): Remove in_namespace. 6974 (lang_decl): Remove chain. 6975 (DECL_CHAIN, DECL_NAMESPACE): Remove. 6976 (flag_honor_std): Declare extern. 6977 (identifier_type_value, pushdecl_namespace_level, push_using_decl, 6978 namespace_binding, set_namespace_binding, 6979 lookup_function_nonclass, cat_namespace_levels, 6980 set_decl_namespace, lookup_arg_dependent, binding_init, ovl_cons, 6981 scratch_ovl_cons, ovl_member, build_overload): Declare. 6982 (decl_list_length, get_namespace_id, current_namespace_id, 6983 overloaded_globals_p): Remove. 6984 (lookup_using_namespace, qualified_lookup_using_namespace): Change 6985 return type. 6986 (push_scratch_obstack): New macro. 6987 * call.c (add_function_candidate): Special-case type of OVERLOAD node. 6988 (build_user_conversions_1): Iterate using OVL_NEXT for ctors, 6989 convs, fns. 6990 (build_new_function_call): Iterate using OVL_CHAIN. 6991 Print DECL_NAME in when reporting ambiguities. 6992 (build_object_call): Iterate using OVL_NEXT for fns, convs. 6993 (build_new_op): Call lookup_function_nonclass. 6994 Iterate using OVL_NEXT. 6995 (build_op_delete_call): Change detection of members. 6996 Do not wrap TREE_LIST around fields and single global functions. 6997 (build_over_call): Don't push a class level if the context is a 6998 namespace. 6999 (build_new_method_call): Iterate using OVL_NEXT. 7000 * class.c (add_method): Chain overloaded members using 7001 build_overload. Remove copying of method. 7002 (grow_method): When iterating through the obstack, expect OVERLOAD 7003 nodes. Chain overload members. 7004 (finish_struct_methods): Chain overload members. Unpack OVERLOAD 7005 nodes in call to get_baselinks. 7006 (duplicate_tag_error): Expect OVERLOAD nodes when unchaining. 7007 (finish_struct_1): Iterate over ctor using OVL_NEXT. Handle 7008 fdecls that are OVERLOAD nodes. 7009 (validate_lhs): New function. 7010 (instantiate_type): Do not copy OVERLOAD nodes. Remove dead 7011 code. Use DECL_NAME in error messages. Split code between global 7012 and member function processing. 7013 * decl.c (global_type_node): New static variable. 7014 (in_std): New global. 7015 (struct binding_level): New field usings. 7016 (resume_binding_level): Assert that we are not in a class. 7017 (toplevel_bindings_p): Just check for namespace_p or 7018 pseudo_global. 7019 (resume_level): Remove. 7020 (find_binding): New function. 7021 (binding_for_name): Call it. 7022 (namespace_binding, set_namespace_binding): New functions. 7023 (push_namespace): Associate binding level with new namespace, 7024 resume_binding_level for existing namespace. Remove old code. 7025 Fake std by counting. 7026 (store_bindings): Use REAL_IDENTIFIER_TYPE_VALUE. 7027 (maybe_push_to_top_level): Save current namespace. 7028 (pop_from_top_level): Restore saved namespace. 7029 (pop_namespace): Call suspend_binding_level. Remove old code. 7030 (cat_namespace_levels): New function. 7031 (set_identifier_type_value_with_scope): For namespace bindings, 7032 set BINDING_TYPE, and use global_type_node. 7033 Use REAL_IDENTIFIER_TYPE_VALUE otherwise. 7034 (identifier_type_value): New function. 7035 (pushtag): If no context, use current_namespace. 7036 (duplicate_decls): Don't process DECL_CHAIN. 7037 (pushdecl): Set DECL_CONTEXT to current_namespace, if it is not 7038 already set. Never reset it to NULL_TREE. Lookup global variables 7039 in their namespace. Push overloaded templates if they are on 7040 namespace level. 7041 (pushdecl_namespace_level): New function. 7042 (pushdecl_top_level): Implement using pushdecl_namespace_level. 7043 (pushdecl_using_decl): New function. 7044 (overloaded_globals_p): Remove. 7045 (push_overloaded_decl): Create OVERLOAD nodes, and iterate through 7046 them. Use namespace_binding and set_namespace_value. 7047 (redeclaration_error_message): Complain if the declarations come 7048 from different namespaces. 7049 (lookup_tag): On namespace level, look in the BINDING_TYPE. 7050 (lookup_namespace_name): Pass tree_bindings from stack. Remove 7051 old code. 7052 (select_decl): New function. 7053 (lookup_name_real): Call it for qualified and unqualified lookup. 7054 Pass tree_bindings from the stack. 7055 If prefer_type is 1, also accept namespaces. 7056 (lookup_function_nonclass): New function. 7057 (init_decl_processing): Set the binding level of the global 7058 namespace to global_binding_level. 7059 Build a proper type list for __builtin_apply. 7060 Initialize std_node to "fake std" if flag_honor_std is set. 7061 Initialize global_type_node. 7062 Allocated bad_alloc in namespace std if flag_honor_std. 7063 (define_function): Set the DECL_CONTEXT to the current_namespace. 7064 (start_decl): A namespace is not considered as a context here. If 7065 the DECL_CONTEXT is a namespace, push the decl. 7066 (cp_finish_decl): Check for namespaces used as initializers. 7067 (grokfndecl): Add namespace parameter. Remove processing of 7068 DECL_CHAIN. 7069 (grokvardecl): Add namespace parameter. 7070 (grokdeclarator): Process SCOPEs that are namespaces. For 7071 mangling, temporarily set the DECL_CONTEXT on anonymous structs. 7072 (start_function): Check for contexts that are namespaces. 7073 Set context for declarations that have not been pushed. 7074 (store_parm_decls): Check for ::main only. 7075 (finish_function): Likewise. 7076 (start_method): Check for contexts that are namespaces. 7077 (start_method): Remove DECL_CHAIN processing. 7078 * decl2.c (flag_honor_std): Declare. 7079 (lang_decode_option): Set it if -fhonor-std or -fnew-abi is given. 7080 (decl_namespace_list): New static global. 7081 (grok_x_components): Ignore namespaces as type contexts. 7082 (check_classfn): Expect OVERLOAD nodes. 7083 (grokfield): Remove DECL_CHAIN processing. 7084 (finish_file): Call cat_namespace_levels. 7085 (merge_functions): New function. 7086 (ambiguous_decl): Rewrite. 7087 (lookup_using_namespace): Produce tree_bindings. 7088 (qualified_lookup_using_namespace): Likewise. 7089 (set_decl_namespace, decl_namespace, current_decl_namespace, 7090 push_decl_namespace, pop_decl_namespace): New functions. 7091 (arg_lookup): New struct. 7092 (add_function, arg_assoc_namespace, arg_assoc_class, 7093 arg_assoc_type, arg_assoc_args, arg_assoc, lookup_arg_dependent): 7094 New functions. 7095 (get_namespace_id, current_namespace_id): Remove. 7096 (do_toplevel_using_decl): Rewrite. 7097 (do_class_using_decl): Complain about namespace qualifiers. 7098 (do_using_directive): Sorry if not on namespace level. Complain 7099 about unknown namespaces. 7100 * error.c (dump_aggr_type): Check for namespace contexts. 7101 * except.c (init_exception_processing): Push terminate into std. 7102 * friend.c (is_friend): A namespace is not a context, here. 7103 * init.c (expand_member_init): Remove DECL_CHAIN processing. 7104 (build_offset_ref): Process OVERLOAD nodes. 7105 * lang-specs.h (__HONOR_STD): Define if -fnew-abi or -fhonor-std. 7106 * lex.c (identifier_type): Loop using OVL_CHAIN. 7107 (see_typename): Set looking_for_typename to 2. 7108 (real_yylex): Likewise. 7109 (do_identifier): Expect OVERLOAD nodes instead of TREE_LISTs. 7110 (do_scoped_id): Expect OVERLOAD nodes. 7111 Change calling convention for qualified_lookup_using_namespace. 7112 (build_lang_decl): Don't set in_namespace anymore. 7113 * method.c (typevec_size): New global. 7114 (build_overload_nested_name): Return if global_namespace. 7115 Otherwise, always expect a declaration context. 7116 (build_qualified_name): Likewise. 7117 Make sure we don't write beyond typevec_size. 7118 (build_decl_overload_real): Likewise. 7119 Allocate one extra slot for the namespace. 7120 (hack_identifier): Mark code dead. 7121 Process OVERLOAD and NAMESPACE_DECL nodes. 7122 * parse.y (program): Pop namespaces until in global namespace. 7123 (extdef): In a using-declaration, don't discard the identifier if 7124 there is no declaration. 7125 (left_curly): Ignore type contexts which are namespaces. 7126 (typename_sub2): Use IDENTIFIER_TYPE_VALUE to retrieve the type 7127 used as scope. 7128 * pt.c (template_class_depth): Expect types to be namespaces. 7129 (determine_specialization): Simplify by expecting OVERLOAD nodes. 7130 (push_template_decl): Push into namespace level. 7131 Reset ctx if it is a namespace. 7132 Set DECL_CONTEXT to current_namespace if not set already. 7133 Ignore real contexts that are namespaces. 7134 (mangle_class_name_for_template): Skip global_namespace. 7135 Mangle other namespaces as declarations. 7136 (lookup_template_function): Set type of OVERLOAD nodes to unknown. 7137 (lookup_template_class): Push into namespace of context. 7138 If the context is a namespace, set it to global_namespace. 7139 Use id_context for mangling. 7140 (for_each_template_parm): Handle OVERLOAD and NAMESPACE_DECL nodes. 7141 (tsubst_friend_function): Ignore namespace contexts. 7142 Push into namespace level. 7143 (tsubst): Handle NAMESPACE_DECL nodes. 7144 Remove DECL_CHAIN processing. 7145 (type_unification_real): Recognize OVERLOAD instead of TREE_LIST nodes. 7146 * ptree.c (print_lang_identifier): Print bindings. 7147 (lang_print_xnode): Print OVERLOAD nodes. 7148 * rtti.c (init_rtti_processing): Push type_info into std. 7149 * search.c (lookup_fnfields_here): Expect OVERLOAD nodes. 7150 (lookup_fnfields_1, get_virtuals_named_this, get_matching_virtual, 7151 dfs_debug_mark, dfs_pushdecls, dfs_compress_decls, add_conversions, 7152 lookup_fnfields_here): Likewise. 7153 Process all nodes, instead of going through TREE_CHAIN. 7154 * sig.c (build_signature_pointer_or_reference_type): Set context 7155 to global_namespace. 7156 (build_signature_table_constructor): Expect OVERLOAD nodes. 7157 * spew.c (yylex): Save old setting of looking_for_typename. 7158 * tree.c (decl_list_length): Remove. 7159 (binding_init): New function. 7160 (count_functions): Rewrite. 7161 (is_overloaded_fn): Expect OVERLOAD nodes. 7162 (really_overloaded_fn, get_first_fn, lvalue_type): Likewise. 7163 (ovl_cons, scratch_ovl_cons, build_overload, build_overload_after, 7164 ovl_member): New functions. 7165 * typeck.c (require_complete_type): Expect OVERLOAD nodes. 7166 (type_unknown_p): Likewise. 7167 (require_instantiated_type): Likewise. 7168 (build_component_ref): Declare code dead. 7169 (build_x_function_call): Create and expect OVERLOAD nodes. 7170 (build_function_call_real): Check for ::main only. 7171 (build_unary_op): Likewise. Expect OVERLOAD nodes. 7172 (convert_for_assignment): Check for TREE_LIST before accessing 7173 TREE_VALUE. 7174 * decl.c (duplicate_decls): Check for namespace bindings instead 7175 of global bindings. 7176 (pushdecl, push_overloaded_decl, lookup_tag, lookup_name_real, 7177 lookup_name_current_level, start_decl, xref_tag, 7178 finish_enum): Likewise. 7179 * init.c (build_offset_ref): Likewise. 7180 * search.c (lookup_field): Likewise. 7181 (lookup_fnfields): Likewise. 7182 (dfs_debug_mark): Likewise. 7183 * decl.c (poplevel): Use SET_IDENTIFIER_TYPE_VALUE. 7184 (poplevel_class, pop_from_top_level): Likewise. 7185 * decl2.c (finish_method): Likewise. 7186 * class.c (build_vtable): Use SET_IDENTIFIER_GLOBAL_VALUE. 7187 * decl.c (record_builtin_type): Likewise. 7188 (init_decl_processing, grokfndecl): Likewise. 7189 * lex.c (get_time_identifier, do_identifier, do_scoped_id): Likewise. 7190 (make_lang_type): Likewise. 7191 * parse.y (make_thunk): Likewise. 7192 * pt.c (tsubst): Likewise. 7193 * tree.c (debug_binfo): Likewise. 7194 * exception.cc, new.cc, new1.cc, new2.cc, tinfo.cc, tinfo.h, 7195 tinfo2.cc, inc/new.h: Add std qualifications. 7196 * inc/new: Wrap with namespace std if __HONOR_STD. 7197 * inc/typeinfo: Likewise. 7198 7199Fri May 8 00:43:50 1998 Jason Merrill <jason@yorick.cygnus.com> 7200 7201 * call.c (build_user_type_conversion_1): Handle second_conv 7202 properly for templates. 7203 7204Thu May 7 17:09:25 1998 Andrew MacLeod <amacleod@cygnus.com> 7205 7206 * method.c (build_decl_overload_real): Set TREE_USED flag to 7207 zero for build_type_variants nodes as well. 7208 7209Wed May 6 19:27:09 1998 Jason Merrill <jason@yorick.cygnus.com> 7210 7211 * pt.c (tsubst): Don't tsubst the type of an IDENTIFIER_NODE. 7212 7213Wed May 6 16:49:48 1998 Jim Wilson <wilson@cygnus.com> 7214 7215 * Makefile.in (call.o, class.o, decl.o, decl2.o, errfn.o, error.o, 7216 except.o, expr.o, friend.o, init.o, lex.o, method.o, pt.o, repo.o, 7217 rtti.o, search.o, semantics.o, sig.o, tree.o, typeck.o, typeck2.o, 7218 xref.o): Add toplev.h dependencies. 7219 7220Wed May 6 16:44:58 1998 Jeffrey A Law (law@cygnus.com) 7221 7222 * errfn.c (cp_error, cp_warning): Remove declarations for 7223 error and warning respectively. 7224 7225Wed May 6 14:28:18 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 7226 7227 * error.c: Convert to using ctype macros defined in system.h. 7228 * method.c: Likewise. 7229 * xref.c: Likewise. 7230 * lex.c: Likewise. Also remove redundant system header stuff. 7231 7232Wed May 6 06:36:41 1998 Robert Lipe <robertl@dgii.com> 7233 7234 * call.c, class.c, decl.c, decl2.c, errfn.c, error.c, except.c, 7235 expr.c, friend.c, init.c, lex.c, method.c, pt.c, repo.c, rtti.c, 7236 search.c, semantics.c, sig.c, tree.c, typeck.c, typeck2.c, 7237 xref.c: Add include of toplev.h. 7238 7239Wed May 6 02:33:39 1998 Jason Merrill <jason@yorick.cygnus.com> 7240 7241 * tree.c (perm_manip): Also regenerate the RTL of an extern. 7242 (copy_to_permanent): Use end_temporary_allocation. 7243 7244Tue May 5 23:54:04 1998 Jason Merrill <jason@yorick.cygnus.com> 7245 7246 * init.c (expand_vec_init): The initialization of each array 7247 element is a full-expression. 7248 7249Tue May 5 18:24:13 1998 Andrew MacLeod <amacleod@cygnus.com> 7250 7251 * method.c (build_mangled_name): Add a call to build_type_variant 7252 to get the right type. 7253 7254Tue May 5 01:25:03 1998 Jason Merrill <jason@yorick.cygnus.com> 7255 7256 * Makefile.in: Add .SUFFIXES. 7257 7258 * cp-tree.def: Remove NAMESPACE_DECL. 7259 7260Sun May 3 01:32:14 1998 Jason Merrill <jason@yorick.cygnus.com> 7261 7262 * call.c (build_over_call): Do evaluate arg even if it has empty 7263 class type. 7264 * decl.c (start_function): Don't push a member function. 7265 7266Thu Apr 30 18:59:23 1998 Jim Wilson <wilson@cygnus.com> 7267 7268 * Makefile.in (g++FAQ.info): Put -o option before input file. 7269 7270Thu Apr 30 13:05:33 1998 Andrew MacLeod <amacleod@cygnus.com> 7271 7272 * gxxint.texi: Add info for squangling codes K and B. 7273 7274Tue Apr 28 13:22:01 1998 Mark Mitchell <mmitchell@usa.net> 7275 7276 * semantics.c (begin_stmt_expr): Avoid duplicating the effect of 7277 the expression in templates. 7278 (finish_stmt_expr): Likewise. 7279 72801998-04-28 Brendan Kehoe <brendan@cygnus.com> 7281 7282 * decl2.c (ambiguous_decl): Fix NAME parm to be a tree, not int. 7283 7284Mon Apr 27 13:58:10 1998 Mark Mitchell <mmitchell@usa.net> 7285 7286 * decl.c (maybe_push_to_top_level): Always clear 7287 current_template_parms and processing_template_decl. 7288 (pushtag): Remove check of current_class_type and some comments, 7289 since maybe_push_to_top_level no longer creates confusion. 7290 7291Sun Apr 26 12:10:18 1998 Mark Mitchell <mmitchell@usa.net> 7292 7293 * cp-tree.h (CLASSTYPE_IS_TEMPLATE): New macro. 7294 (DECL_CLASS_TEMPLATE_P): Likewise. 7295 (DECL_PRIMARY_TEMPLATE): Likewise. 7296 (PRIMARY_TEMPLATE_P): Use it. 7297 (push_template_decl_real): New function. 7298 (redeclare_class_template): Take new template parameters as 7299 input. 7300 (is_specialization_of): New function. 7301 (comp_template_args): Declare. 7302 * decl.c (pushtag): Handle friend template classes. 7303 (xref_tag): Likewise. Use new calling convention for 7304 redeclare_class_template. 7305 * decl2.c (grok_x_components): Handle friend templates. 7306 * friend.c (is_friend): Use is_specialization_of where 7307 appropriate. Deal with friend class templates. 7308 (make_friend_class): Let a class template be friends with itself. 7309 * pt.c (comp_template_args): Remove declaration. 7310 (tsubst_friend_class): New function. 7311 (push_template_decl_real): New function. 7312 (push_template_decl): Use it. 7313 (redeclare_class_template): Adjust for new calling convention. 7314 (comp_template_args): Give it external linkage. 7315 (instantiate_class_type): Use tsubst_friend_class to deal 7316 with friend templates. 7317 * typeck.c (comptypes): Use comp_template_args, rather than 7318 expanding it inline. 7319 * parse.y (component_decl): Handle a nested template type 7320 like other component type declarations. 7321 7322 * pt.c (check_explicit_specialization): Handle overloaded 7323 constructors correctly. 7324 7325 * pt.c (mabybe_get_template_decl_from_type_decl): New function. 7326 (lookup_template_class): Use it. 7327 7328Thu Apr 23 21:19:06 1998 Jason Merrill <jason@yorick.cygnus.com> 7329 7330 * cp-tree.def: Add WRAPPER. USER_CONV now only has two ops. 7331 * cp-tree.h: Add WRAPPER support. 7332 * call.c (add_candidate): Split out from add_*_candidate fns. 7333 (build_over_call): Take the candidate instead of function and args. 7334 Enforce access control here. Emit overload warnings here. 7335 (add_warning): New fn. 7336 (joust): Add WARN parm. If not set, call add_warning instead of 7337 printing a warning. Re-enable some warnings. 7338 (tourney): Pass it. 7339 (convert_like): Adjust. 7340 (build_new_op): Adjust. 7341 (build_new_function_call): Adjust. 7342 (build_user_type_conversion_1): Adjust. 7343 (USER_CONV_FN): Adjust. 7344 * tree.c (build_expr_wrapper, build_expr_ptr_wrapper, 7345 build_int_wrapper): New fns. 7346 7347Thu Apr 23 18:27:53 1998 Mark P. Mitchell <mmitchell@usa.net> 7348 7349 * pt.c (unify): Fix typo in previous change. 7350 7351Thu Apr 23 09:32:58 1998 Jason Merrill <jason@yorick.cygnus.com> 7352 7353 * error.c (dump_type_real): Declare canonical_name. 7354 7355 * typeck.c (comp_target_types): Fix PMFs. 7356 7357Wed Apr 22 13:24:48 1998 Mark Mitchell <mmitchell@usa.net> 7358 7359 * class.c (finish_struct): Set TREE_PRIVATE and TREE_PROTECTED for 7360 the DECL_RESULTs of a member TEMPLATE_DECL, not just the 7361 TEMPLATE_DECL. 7362 7363 * pt.c (tsubst): Decrease the template-level of 7364 TEMPLATE_TEMPLATE_PARMS. Likewise for the DECL_INITIAL of a 7365 TEMPLATE_PARM_INDEX. 7366 (template_decl_level): New function. 7367 (unify): Make sure to record unifications for template 7368 parameters, even when the parameters exactly match the arguments. 7369 Combine duplicated code for TEMPLATE_TEMPLATE_PARMs and 7370 TEMPLATE_TYPE_PARMS. Don't try to unify template parameters that 7371 aren't from the level we're currently working on. 7372 7373Tue Apr 21 22:00:04 1998 Mark Mitchell <mmitchell@usa.net> 7374 7375 * errfn.c (cp_thing): Use xrealloc, not xmalloc, to copy memory. 7376 7377 * decl2.c (check_member_template): Set DECL_IGNORED for member 7378 class templates, too. 7379 7380 * decl2.c (grokfield): Remangle the name of a member TYPE_DECL. 7381 7382Tue Apr 21 18:59:11 1998 Benjamin Kosnik <bkoz@rhino.cygnus.com> 7383 7384 * decl.c (duplicate_decls): Only check DECL_FRIEND_P if function. 7385 7386Tue Apr 21 14:22:00 1998 Jeffrey A Law (law@cygnus.com) 7387 7388 * cp-tree.h (intTI_type_node, unsigned_intTI_type_node): Declare. 7389 * decl.c (intTI_type_node, unsigned_intTI_type_node): Define. 7390 (init_decl_processing): Handle TI types. 7391 * typeck.c (unsigned_type, signed_type): Handle TI types. 7392 7393Sat Apr 18 15:25:21 1998 Jim Wilson <wilson@cygnus.com> 7394 7395 * g++spec.c (lang_specific_driver): New argument in_added_libraries. 7396 New local added_libraries. Increment count when add library to 7397 arglist. 7398 7399Fri Apr 17 21:25:00 1998 Mark Mitchell <mmitchell@usa.net> 7400 7401 * cp-tree.h (type_as_string_real): New function. 7402 * pt.c (mangle_class_name_for_template): Use it. 7403 * error.c (dump_aggr_type): Change prototype. 7404 (dump_type_prefix): Likewise. 7405 (dump_type_suffix): Likewise. 7406 (dump_type_real): Convert from dump_type. If desired, the 7407 "canonica" name of a typedef, i.e., the name of the underlying 7408 type, can be printed. 7409 (dump_type): Call dump_type_real. 7410 7411Fri Apr 17 14:30:45 1998 Jason Merrill <jason@yorick.cygnus.com> 7412 7413 * decl2.c (lang_decode_option): -fnew-abi implies -fvtable-thunks. 7414 7415 * typeck.c (comp_target_types): Tweak pedantic case. 7416 (comp_target_parms): Tweak pedantic case. Clean up somewhat. 7417 Return -1 or 1 instead of 1 or 2. 7418 (compparms): Remove STRICT handling. 7419 (convert_for_assignment): Fix handling of pmfs. 7420 7421Fri Apr 17 14:04:16 1998 Mark Mitchell <mmitchell@usa.net> 7422 7423 * typeck.c (comp_target_types): Handle references like pointers. 7424 (comp_target_parms): Note that return code from comp_target_types 7425 can be negative to indicate failure. 7426 7427Fri Apr 17 09:10:52 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> 7428 7429 * Make-lang.in (c++.all.build): Don't depend on $(DEMANGLER_PROG), 7430 which requires a working target compiler to build. 7431 7432Fri Apr 17 08:57:35 1998 Jeffrey A Law (law@cygnus.com) 7433 7434 * tree.c (avoid_overlap): Add prototype. 7435 7436 * spew.c (num_tokens): Add prototype. 7437 (nth_noken, add_token, consume_token, debug_yychar): Likewise. 7438 7439 * search.c (dfs_check_overlap): Add prototype. 7440 (dfs_no_overlap_yet): Likewise. 7441 7442 * pt.c (original_template): Add prototype. 7443 (inline_needs_template_parms): Likewise. 7444 (push_inline_template_parms_recursive): Likewise. 7445 (retrieve_specialization, register_specialization): Likewise. 7446 (print_candidates, reduce_template_parm_level): Likewise. 7447 (build_template_decl, mark_template_parm): Likewise. 7448 (tsubst_friend_function, get_bindings_real): Likewise. 7449 7450 * method.c (start_squangling): Add prototype. 7451 (end_squangling, check_ktype, issue_ktype): Likewise. 7452 (build_overloaded_scope_ref, check_btype): Likewise. 7453 (build_mangled_template_parm_index): Likewise. 7454 7455 * lex.c (init_cpp_parse): Add prototype. 7456 (handle_cp_pragma, handle_sysv_pragma): Likewise. 7457 (reduce_cmp, token_cmp): Likewise. 7458 7459 * except.c (call_eh_info): Add prototype. 7460 (push_eh_info, get_eh_info, get_eh_value, get_eh_type): Likewise. 7461 (get_eh_caught, get_eh_handlers, do_pop_exception): Likewise. 7462 7463 * decl2.c (is_namespace_ancestor): Add prototype. 7464 (namespace_ancestor, add_using_namespace): Likewise. 7465 (ambiguous_decl): Likewise. 7466 7467 * decl.c (indent): Add prototype. 7468 7469 * call.c (add_template_candidate_real): Add prototype. 7470 7471Fri Apr 17 01:57:12 1998 Jason Merrill <jason@yorick.cygnus.com> 7472 7473 * decl2.c (build_expr_from_tree): Just return a PMF. 7474 7475Fri Apr 17 00:45:12 1998 Mark Mitchell <mmitchell@usa.net> 7476 7477 * typeck2.c (process_init_constructor): Don't strip cv-qualifiers 7478 when doing initializations. 7479 7480 * pt.c (unify): Use comptypes to compare type args. 7481 7482Fri Apr 17 00:24:22 1998 Jason Merrill <jason@yorick.cygnus.com> 7483 7484 * decl.c (duplicate_decls): Fix check for when it's safe to free 7485 the new decl. 7486 7487 * pt.c (mangle_class_name_for_template): Don't pass a typedef type 7488 to type_as_string. 7489 7490Thu Apr 16 17:47:30 1998 Jeffrey A Law (law@cygnus.com) 7491 7492 * pt.c (build_template_parm_index): Add prototype. 7493 7494 * search.c (my_tree_cons): Don't clear words outside the 7495 newly allocated node. 7496 7497Wed Apr 15 15:34:44 1998 Dave Brolley <brolley@cygnus.com> 7498 7499 * lex.c (init_parse): Now returns char* containing the filename. 7500 7501Wed Apr 15 13:20:06 1998 John Carr <jfc@mit.edu> 7502 Jeff Law <law@cygnus.com> 7503 7504 * errfn.c: Rework to avoid problems when HOST_WIDE_INT is longer 7505 than a pointer. 7506 7507Sun Apr 12 22:31:19 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 7508 7509 * cvt.c (cp_convert_to_pointer): Use TYPE_PRECISION. 7510 7511Fri Apr 10 12:16:49 1998 Benjamin Kosnik <bkoz@loony.cygnus.com> 7512 7513 * decl.c (duplicate_decls): Don't warn for redundant decls if 7514 friend: let add_friend take care of it. 7515 7516Thu Apr 9 02:40:48 1998 Jason Merrill <jason@yorick.cygnus.com> 7517 7518 * sig.c (build_signature_pointer_constructor): Don't set 7519 TREE_HAS_CONSTRUCTOR for a signature pointer. 7520 * cvt.c (ocp_convert): Don't force a temporary for internal structs. 7521 * init.c (resolve_offset_ref): Warn about implicit & on pmfs 7522 here, too. 7523 * typeck.c (build_unary_op): Only allow taking the address of a 7524 real constructor. 7525 * typeck2.c (digest_init): Simplify. 7526 (store_init_value): Don't pedwarn about using { } for pmfs. 7527 7528Thu Apr 9 22:16:57 1998 Per Bothner <bothner@cygnus.com> 7529 7530 * cp-tree.h (start_decl): Update prototype. 7531 * decl.c (start_decl): Like the C version, new parameters 7532 for the attributes. Call cplus_decl_attributes here, 7533 (pushdecl): Like C version, do build_type_copy if TYPE_DECL, 7534 (grokdeclarator): Pass NULL for new start_decl arguments. 7535 * pt.c (tsubst_expr): Likewise. 7536 * parse.y: Merge cplus_decl_attribute calls into start_decl calls. 7537 * typeck.c (common_type): Check TYPE_MAIN_VARIANT. 7538 * lex.c (build_lang_decl): Add lang_name_java. 7539 * class.c (push_lang_context): Add lang_name_java. 7540 * method.c (build_mangled_name): Check for is_java_type. 7541 7542Thu Apr 9 22:16:57 1998 Benjamin Kosnik <bkoz@loony.cygnus.com> 7543 7544 * decl.c (grokdeclarator): Check TYPE_MAIN_VARIANT. 7545 * call.c (build_scoped_method_call): Check for TREE_CODE for 7546 VOID_TYPE instead of type == void_type_node. 7547 (build_method_call): Likewise. 7548 * decl.c (lookup_name_real): Likewise. 7549 (grokdeclarator): Likewise. 7550 (start_decl): Likewise. 7551 (grokparms): Likewise. 7552 (start_function): Likewise. 7553 (finish_function): Likewise. 7554 (start_method): Likewise. 7555 7556Thu Apr 9 00:18:44 1998 Dave Brolley (brolley@cygnus.com) 7557 7558 * lex.c (finput): New variable. 7559 (init_cpp_parse): Renamed from init_parse. 7560 (init_parse): Handle !USE_CPPLIB. Call init_cpp_parse when finished. 7561 (finish_parse): New function. 7562 * cp-tree.h (init_lex, init_parse): Remove declarations. 7563 7564Mon Apr 6 02:25:05 1998 Jason Merrill <jason@yorick.cygnus.com> 7565 7566 * call.c (build_call): Still evaluate the actual argument. 7567 * class.c (is_empty_class): Update for -fnew-abi. 7568 7569 * decl2.c: -fnew-abi implies -fsquangle. 7570 7571 * method.c (do_build_assign_ref): Don't do anything to copy 7572 an empty class. 7573 (do_build_copy_constructor): Likewise. 7574 * call.c (build_over_call): Likewise. 7575 7576Sat Apr 4 18:43:58 1998 Jason Merrill <jason@yorick.cygnus.com> 7577 7578 * tree.c (avoid_overlap): Return a value. 7579 7580Sat Apr 4 12:52:35 1998 Jeffrey A Law (law@cygnus.com) 7581 7582 * method.c (check_btype): Add missing argument to xrealloc. 7583 (check_ktype): Likewise. 7584 7585Fri Apr 3 02:22:59 1998 Jason Merrill <jason@yorick.cygnus.com> 7586 7587 Implement empty base optimization. 7588 * class.c (finish_struct_1): Add vbase fields earlier. Set 7589 CLASSTYPE_SIZE of an empty base to 0. Types with bases can be empty. 7590 * search.c (dfs_check_overlap, dfs_no_overlap_yet): New fns. 7591 (types_overlap_p): New fn. 7592 * tree.c (avoid_overlap): New fn. 7593 (build_base_fields): Use it to avoid overlapping empty bases. 7594 * cp-tree.h, decl2.c, lang-options.h: Add -fnew-abi. 7595 7596 * decl.c (cplus_expand_expr_stmt): Strip unused INDIRECT_REFs. 7597 7598 Re-implement allocation of base class subobjects. 7599 * tree.c (unshare_base_binfos): New fn. 7600 (layout_basetypes): Use it. Now handles offsets of both virtual and 7601 non-virtual bases, after layout_type. 7602 (layout_vbasetypes): Remove. 7603 (build_base_fields): Generate FIELD_DECLs for each non-virtual base. 7604 (build_vbase_pointer_fields): Split out from old layout_basetypes. 7605 * class.c (finish_base_struct): Lose offset handling code. 7606 Move nonvdtor warning here. Don't mess with t_binfo anymore. 7607 (finish_struct_1): Don't mess with t_binfo anymore. Use fns above. 7608 * cp-tree.h: Adjust. 7609 7610Thu Apr 2 14:25:13 1998 Jason Merrill <jason@yorick.cygnus.com> 7611 7612 * cp-tree.h: Lose CLASSTYPE_VBASE_SIZE, some unused stuff. 7613 * decl.c, decl2.c, pt.c, ptree.c, lex.c: Likewise. 7614 * class.c (duplicate_tag_error): Likewise. 7615 (finish_struct_1): Set CLASSTYPE_SIZE, CLASSTYPE_MODE, CLASSTYPE_ALIGN. 7616 * tree.c (layout_vbasetypes): Update from layout_record, remove 7617 var_size support, use CLASSTYPE_SIZE instead of CLASSTYPE_VBASE_SIZE. 7618 (layout_basetypes): Likewise. 7619 7620Wed Apr 1 18:22:25 1998 Jeffrey A Law (law@cygnus.com) 7621 7622 * class.c, Make sure system.h is included just after config.h. 7623 Delete lingering stdio and errno references too. 7624 * decl.c, errfn.c, parse.y, ptree.c search.c, xref.c: Likewise. 7625 7626Wed Apr 1 15:38:36 1998 Jason Merrill <jason@yorick.cygnus.com> 7627 7628 * friend.c (is_friend): Fix access control for local classes. 7629 7630 * class.c (is_empty_class): New fn. 7631 * call.c (build_call): Don't pass empty class objects to a function. 7632 7633Wed Apr 1 14:58:35 1998 Mark Mitchell <mmitchell@usa.net> 7634 7635 * call.c (build_over_call): Do name resolution for default 7636 arguments of function templates in the scope of the templates. 7637 7638Tue Mar 31 13:43:57 1998 Jeffrey A Law (law@cygnus.com) 7639 7640 * call.c: Include system.h. Remove includes, declarations and 7641 defines provided by system.h. 7642 * class.c, cvt.c, decl.c, decl2.c, errfn.c error.c: Likewise. 7643 * except.c, expr.c friend.c, g++spec.c, init.c, input.c: Likewise. 7644 * lex.c, parse.y, pt.c, ptree.c repo.c rtti.c, search.c: Likewise. 7645 * semantics.c, sig.c, spew.c, tree.c, typeck.c: Likewise. 7646 * typeck2.c, xref.c: Likewise. 7647 * Makefile.in: Dependencies updated as appropriate. 7648 * Make-lang.in: Likewise. 7649 7650Mon Mar 30 12:15:00 1998 Mark Mitchell <mmitchell@usa.net> 7651 7652 * pt.c (fn_type_unification): Allow incomplete unification without 7653 an immediate error message. 7654 7655Mon Mar 30 08:55:42 1998 Jason Merrill <jason@yorick.cygnus.com> 7656 7657 * tree.c (member_p): New fn. 7658 * decl2.c (finish_file): Only set DECL_STATIC_FUNCTION_P for 7659 initializing class members. 7660 7661 * cp-tree.def (TEMPLATE_PARM_INDEX): Class 'x'. 7662 * ptree.c (lang_print_xnode): Handle TEMPLATE_PARM_INDEX. 7663 7664 * call.c (build_method_call): Handle non-scoped destructors, too. 7665 * pt.c (tsubst_copy): Likewise. 7666 7667 * pt.c (print_template_context): Split out... 7668 (push_tinst_level): ...from here. 7669 7670 * friend.c (is_friend): Don't pass a type to decl_function_context. 7671 7672 * typeck.c (convert_for_initialization): Always hand off 7673 conversions to class type. 7674 7675Sun Mar 29 20:01:59 1998 Jason Merrill <jason@yorick.cygnus.com> 7676 7677 * friend.c (is_friend): Local classes have the same access as the 7678 enclosing function. 7679 7680Sun Mar 29 00:47:32 1998 Jeffrey A Law (law@cygnus.com) 7681 7682 * typeck.c (expand_target_expr): Delete dead function. 7683 7684 * search.c: Put various prototypes inside #ifdef MI_MATRIX. 7685 7686 * repo.c (save_string): Delete dead function. 7687 7688 * method.c (thunk_printable_name): Delete dead function. 7689 7690 * lex.c (yynextch): Delete dead function. 7691 7692 * expr.c (tree_extract_aggr_init): #if 0 out. 7693 7694 * except.c (do_unwind): Delete dead function. 7695 (easy_expand_asm): Likewise. 7696 7697 * cvt.c (build_conversion_type_1): Delete dead function. 7698 7699 * cp-tree.h (push_expression_obstack): Declare. 7700 7701 * call.c (source_type): #if 0 out. 7702 7703 * class.c (alter_access): Remove unused label. Add braces 7704 around empty else clause. 7705 7706 * lex.c (yyprint): Fix argument to printf. 7707 7708Sat Mar 28 17:43:52 1998 Mark Mitchell <mmitchell@usa.net> 7709 7710 * pt.c (tsubst): Clear TREE_USED for new FUNCTION_DECLs. 7711 7712 * pt.c (instantiate_class_template): Make sure template 7713 arguments are permanent. 7714 * init.c (resolve_offset_ref): Don't go looking around in 7715 template types. 7716 7717 * semantics.c: Add routines to handle expressions, and some 7718 declaration processing. 7719 * parse.y: Use them. 7720 (current_class_depth): Move declaration to cp-tree.h. 7721 * parse.c: Regenerated. 7722 * cp-tree.h: Use them. 7723 (current_class_depth): Declare. 7724 * pt.c (tsubst_copy): Use begin_stmt_expr and finish_stmt_expr. 7725 7726Fri Mar 27 20:23:18 1998 Mark Mitchell <mmitchell@usa.net> 7727 7728 * error.c (dump_decl): Be a bit more explicit with template 7729 type arguments, when verbose. 7730 7731Fri Mar 27 18:16:40 1998 Jason Merrill <jason@yorick.cygnus.com> 7732 7733 * inc/exception: Reorder closing braces. 7734 7735Fri Mar 27 13:22:18 1998 Mark Mitchell <mmitchell@usa.net> 7736 7737 * pt.c (redeclare_class_template): New function. 7738 * cp_tree.h (redeclare_class_template): Declare it. 7739 * decl.c (xref_tag): Use it. 7740 7741Thu Mar 26 11:16:30 1998 Jason Merrill <jason@yorick.cygnus.com> 7742 7743 * call.c (build_over_call): Check IS_AGGR_TYPE, not 7744 TYPE_LANG_SPECIFIC. 7745 * typeck.c (convert_arguments): Likewise. 7746 7747 * decl.c (grokdeclarator): Remove const and volatile from type after 7748 setting constp and volatilep. 7749 7750 * class.c (finish_struct_1): Don't warn about bool bitfield larger 7751 than one bit. 7752 7753Thu Mar 26 10:25:52 1998 Mark Mitchell <mmitchell@usa.net> 7754 7755 * pt.c (convert_nontype_argument): STRIP_NOPS where appropriate. 7756 7757Thu Mar 26 10:24:05 1998 Mark Mitchell <mmitchell@usa.net> 7758 7759 * call.c (build_object_call): Complain about ambiguous operator(), 7760 rather that crashing. 7761 (build_new_op): Likewise. 7762 (build_op_delete_call): Likewise. 7763 7764Thu Mar 26 10:23:24 1998 Mark Mitchell <mmitchell@usa.net> 7765 7766 * cvt.c (perform_qualification_conversions): Use comp_target_types 7767 instead of comp_ptr_ttypes. 7768 7769Wed Mar 25 16:10:50 1998 Mark Mitchell <mmitchell@usa.net> 7770 7771 * cp-tree.h (enforce_access): Declare. 7772 * call.c (enforce_access): Make it extern, not static. 7773 * class.c (alter_access): Use enforce_access; modify code for ISO 7774 compliance, rather than ARM rules. 7775 7776Wed Mar 25 12:10:45 1998 Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu> 7777 7778 * cp-tree.h: Fix typo. 7779 7780Wed Mar 25 02:01:02 1998 Jason Merrill <jason@yorick.cygnus.com> 7781 7782 * expr.c (cplus_expand_expr): Only do PCC_STATIC_STRUCT_RETURN thing 7783 if (aggregate_value_p (type)). 7784 7785 * decl2.c (constructor_name_full): Handle TYPENAME_TYPE. 7786 7787Tue Mar 24 16:12:01 1998 Mark Mitchell <mmitchell@usa.net> 7788 7789 * tree.c (mapcar): When dealing with a DECL, use it's constant 7790 value, if any. 7791 * pt.c (lookup_template_class): Don't mangle the names of template 7792 classes whose arguments are unknown. 7793 7794 * pt.c (tsubst_expr): Handle GOTO_STMT correctly. 7795 7796Tue Mar 24 12:21:55 1998 Benjamin Kosnik <bkoz@lisa.cygnus.com> 7797 7798 * decl.c (init_decl_processing): Set TYPE_PRECISON for bools to 1. 7799 7800Tue Mar 24 12:21:48 1998 Jim Wilson <wilson@cygnus.com> 7801 7802 * decl.c (init_decl_processing): Initialize TYPE_MAX_VALUE for 7803 boolean_type_node to 1. 7804 7805Tue Mar 24 10:23:47 1998 Mark Mitchell <mmitchell@usa.net> 7806 7807 * error.c (dump_expr): Remove unused variable `l'. 7808 7809 * pt.c (for_each_template_parm): New function, created by 7810 converting uses_template_parms. 7811 (tree_fn_t): New typedef. 7812 (uses_template_parms): Use it. 7813 (mark_template_parm): New function. 7814 (push_template_decl): Check that the argument list of a partial 7815 specialization uses all the template parameters. 7816 7817 * Make-lang.in (c++filt): Don't delete cxxmain.c after we're done 7818 with it; we might want it for debugging. 7819 * cp-tree.h (type_unification): Change interface. 7820 * class.c (finish_struct_1): Skip nested template types, just like 7821 ordinary nested types. 7822 (instantiate_type): Use new interface to type_unification. 7823 * lex.c (init_lex): Add __sz as opname for sizeof. 7824 * method.c (build_overload_scope_ref): New function. 7825 (build_overload_int): Handle complex expressions. Set 7826 numeric_output_need_bar if necessary. 7827 (build_overload_value): Handle non-PARM_DECL nodes; this 7828 routine is now used by build_overload_int. Remove some 7829 assignments to numeric_output_need_bar. Use 7830 build_overload_scope_ref. 7831 (build_qualified_name): Note that some template mangled names end 7832 with digits, and set numeric_output_need_bar appropriately. Use 7833 build_underscore_int. 7834 * pt.c (unify): Change interface. 7835 (type_unification_real): Likewise. 7836 (determine_specialization): Use new interfaces. 7837 (tsubst): Deal gracefully with situations in which the argument 7838 vector is not fully filled. 7839 (fn_type_unification): Use new interfaces. 7840 (type_unification): Likewise. Remove NOP_EXPR hack. 7841 (type_unification_real): Likewise. 7842 (unify): Likewise. Deal with unification of complex expressions. 7843 7844Mon Mar 23 12:24:37 1998 Jason Merrill <jason@yorick.cygnus.com> 7845 7846 * pt.c (complete_template_args): Initialize skip properly. 7847 7848 * decl.c (make_typename_type): Revert. 7849 (make_implicit_typename): Remove. 7850 (lookup_name_real): Don't call it. Call lookup_field if we see a 7851 TYPE_DECL from a template base. 7852 * search.c (lookup_field): Do implicit typename stuff. 7853 7854Sun Mar 22 00:50:42 1998 Nick Clifton <nickc@cygnus.com> 7855 Geoff Noer <noer@cygnus.com> 7856 7857 * Makefile.in: Various fixes for building cygwin32 native toolchains. 7858 * Make-lang.in: Likewise. 7859 7860Fri Mar 20 18:07:39 1998 Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu> 7861 7862 * pt.c (tsubst, TEMPLATE_TEMPLATE_PARM): Simplify. 7863 7864Fri Mar 20 10:42:07 1998 Jason Merrill <jason@yorick.cygnus.com> 7865 7866 * decl.c (make_implicit_typename): Rewrite removed code. 7867 (make_typename_type): Call it if the type we look up comes from 7868 a base that uses template parms. 7869 7870 * pt.c (complete_template_args): Rewrite. 7871 (tsubst, FUNCTION_DECL): Use it. 7872 7873Fri Mar 20 08:12:43 1998 H.J. Lu (hjl@gnu.org) 7874 7875 * semantics.c (finish_asm_stmt): Fix combine strings. Call 7876 c_expand_asm_operands () if output_operands, input_operands or 7877 clobbers is not NULL_TREE. 7878 7879Fri Mar 20 00:10:19 1998 Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu> 7880 7881 * pt.c (complete_template_args): New function. 7882 (get_bindings): Deal with specializations of function templates 7883 with return type containing parameters from outer class 7884 templates. 7885 (tsubst, TEMPLATE_TEMPLATE_PARM): When reducing parameter level, 7886 substitute arguments and compose a new type. 7887 7888Thu Mar 19 19:01:48 1998 Mark Mitchell <mmitchell@usa.net> 7889 7890 * pt.c (tsubst): Clear DECL_PENDING_INLINE_INFO for new 7891 FUNCTION_DECLs. 7892 7893Thu Mar 19 11:51:58 1998 Jason Merrill <jason@yorick.cygnus.com> 7894 7895 * decl.c (make_implicit_typename): Lose useless code. 7896 7897 * call.c (standard_conversion): Handle A* -> const A* properly. 7898 7899 * pt.c (get_bindings_real): Rename from get_bindings. Add 7900 check_rettype parm. 7901 (get_bindings): Pass 1. 7902 (get_bindings_overload): Pass 0. 7903 7904Wed Mar 19 09:08:12 1998 Mark Mitchell <mmitchell@usa.net> 7905 7906 * pt.c (check_explicit_specialization): When reverting a static 7907 member function, also remove the `this' parameter from 7908 last_function_parms. 7909 7910Thu Mar 19 02:27:48 1998 Jason Merrill <jason@yorick.cygnus.com> 7911 7912 * pt.c (tsubst_copy, CONST_DECL): Don't bother tsubsting 7913 a function context. 7914 7915 * decl.c (store_bindings): Use free_binding_vecs. 7916 (pop_from_top_level): Likewise. 7917 7918Wed Mar 18 12:41:43 1998 Jason Merrill <jason@yorick.cygnus.com> 7919 7920 * decl.c (make_implicit_typename): Only change the type of a 7921 TYPENAME_TYPE. 7922 7923Wed Mar 18 10:09:51 1998 Mark Mitchell <mmitchell@usa.net> 7924 7925 * semantics.c: New file, containing routines to perform the 7926 semantic phase of parsing. 7927 * parse.y: Use it. 7928 * pt.c (tsubst_expr): Likewise. 7929 * cp-tree.h: Declare the various functions in semantics.c. 7930 Provide macros to access _STMT tree nodes. 7931 * cp-tree.def: Add ASM_STMT tree node. 7932 * Makefile.in, Make-lang.in: Add dependencies on and for 7933 semantics.c. 7934 7935Wed Mar 18 00:24:10 1998 Jason Merrill <jason@yorick.cygnus.com> 7936 7937 * pt.c (push_template_decl): Only check primary templates. 7938 7939 * pt.c (check_explicit_specialization): Complain about default args 7940 in explicit specialization. 7941 7942 * parse.y (nomods_initdcl0): Also call cp_finish_decl for a 7943 constructor_declarator. 7944 7945Tue Mar 17 14:44:54 1998 Mark Mitchell <mmitchell@usa.net> 7946 7947 * typeck2.c (build_x_arrow): Don't crash when an aggregate type 7948 has no overloaded operator ->. 7949 7950 * call.c (build_field_call): Don't crash when presented with a 7951 field that is actually a nested type. 7952 7953 * decl.c (pushtag): Deal with friend class injection in local 7954 classes. 7955 7956 * call.c (build_object_call): Don't crash if OBJ is a 7957 pointer-to-member-function. 7958 7959Tue Mar 17 11:40:26 1998 Jason Merrill <jason@yorick.cygnus.com> 7960 7961 * pt.c (push_template_decl): Complain about template with C linkage, 7962 anonymous template class. 7963 7964Mon Mar 16 12:10:39 1998 Jason Merrill <jason@yorick.cygnus.com> 7965 7966 * class.c (pushclass): Only use the mi_matrix stuff #ifdef MI_MATRIX. 7967 * search.c: Likewise. 7968 7969 * lex.c (do_pending_defargs): Only call 7970 maybe_{begin,end}_member_template_processing for FUNCTION_DECLs. 7971 7972 * parse.y (initdcl0_innards): Move maybeasm back into initdcl0 et al. 7973 7974Mon Mar 16 10:47:22 1998 Mark Mitchell <mmitchell@usa.net> 7975 7976 * parse.y: Deal with CONSTRUCTORS in new_initializers. 7977 7978Mon Mar 16 10:54:21 1998 Mark Mitchell <mmitchell@usa.net> 7979 7980 * pt.c (tsubst_copy): Deal with BIND_EXPR in a way that more 7981 closely mimics the behavior in parse.y. 7982 (tsubst_expr): Return the resulting BLOCK when making a tsubst'ing 7983 into a compound statement. 7984 7985Sun Mar 15 02:07:26 1998 Jason Merrill <jason@yorick.cygnus.com> 7986 7987 * cp-tree.h (TEMPLATE_PARMS_FOR_INLINE): New macro. 7988 * pt.c (inline_needs_template_parms): New fn. 7989 (original_template): New fn. 7990 (push_inline_template_parms_recursive): New fn. 7991 (maybe_begin_member_template_processing): Use them. 7992 (maybe_end_member_template_processing): Likewise. 7993 (is_member_or_friend_template): Rename to is_member_template. 7994 Member functions of local classes are never member templates. 7995 7996Sun Mar 15 01:14:22 1998 Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu> 7997 7998 * lex.c (do_identifier): Handle TEMPLATE_DECL that was 7999 added in the class scope to catch redefinition error. 8000 8001 * pt.c (reduce_template_parm_level): Also copy 8002 the DECL_TEMPLATE_PARMS field. 8003 8004Sun Mar 15 10:54:08 1998 Mark Mitchell <mmitchell@usa.net> 8005 8006 * pt.c (tsubst): Clear TYPE_REFERENCE_TO when creating a 8007 reduced-level template type parameter. 8008 8009Sun Mar 15 12:26:02 1998 Manfred Hollstein <manfred@s-direktnet.de> 8010 8011 * cp-tree.h (struct lang_decl_flags): Add needs_final_overrider. 8012 (DECL_NEEDS_FINAL_OVERRIDER_P): New macro. 8013 * class.c (override_one_vtable): Set DECL_NEEDS_FINAL_OVERRIDER_P. 8014 * decl.c (duplicate_decls): Propagate it. 8015 * typeck2.c (abstract_virtuals_error): Use two loops to emit 8016 abstract virtual functions and virtual functions which need a 8017 final overrider separately. 8018 8019Thu Mar 12 09:39:40 1998 Manfred Hollstein <manfred@s-direktnet.de> 8020 8021 * lang-specs.h: Properly put brackets around array elements in 8022 initializer. 8023 8024 * typeck.c (build_binary_op_nodefault): Correctly place parens around 8025 && and || in expression. 8026 8027Thu Mar 12 09:26:04 1998 Manfred Hollstein <manfred@s-direktnet.de> 8028 8029 * call.c (default_parm_conversions): Remove prototype definition. 8030 (build_method_call): Remove unused variable result. 8031 8032 * cvt.c (ocp_convert): Remove unused variable conversion. 8033 8034 * decl2.c (ambiguous_decl): Add explicit parameter definition for name. 8035 8036 * except.c (do_unwind): #if 0 definition of unused variables fcall 8037 and next_pc. 8038 8039 * expr.c (extract_scalar_init): #if 0 prototype and function 8040 definition. 8041 8042 * init.c (expand_aggr_init_1): Remove unused variable init_type. 8043 (build_new_1): Remove unused variable t. 8044 8045 * pt.c (instantiate_class_template): Remove unused variable newtag; 8046 cast called function return value to void. 8047 (do_decl_instantiation): Remove unused variables name and fn. 8048 8049 * tree.c (get_type_decl): Add default return to shut up compiler from 8050 complaining control reaches end of non-void function. 8051 8052 * typeck.c (build_x_conditional_expr): Remove unused variable rval. 8053 8054Thu Mar 12 09:12:15 1998 Manfred Hollstein <manfred@s-direktnet.de> 8055 8056 * call.c (default_parm_conversions): Remove prototype definition. 8057 (build_method_call): Remove unused variable result. 8058 (build_over_call): Add default case in enumeration switch. 8059 8060Thu Mar 12 08:39:13 1998 Manfred Hollstein <manfred@s-direktnet.de> 8061 8062 * decl2.c (lang_decode_option): Change j's type to size_t. 8063 8064 * tree.c (layout_vbasetypes): record_align and desired_align are of 8065 type unsigned int; const_size and nonvirtual_const_size likewise. 8066 8067Wed Mar 11 07:25:20 1998 Mark Mitchell <mmitchell@usa.net> 8068 8069 * parse.y (new_initializer): Make sure all initializers are 8070 lists. 8071 8072Tue Mar 10 07:32:36 1998 Mark Mitchell <mmitchell@usa.net> 8073 8074 * decl2.c (import_export_decl): Mark tinfo functions for 8075 cv-qualified versions of class types as DECL_NOT_REALLY_EXTERN. 8076 8077Fri Mar 6 23:27:35 1998 Jeffrey A Law (law@cygnus.com) 8078 8079 * method.c: Fix typo. 8080 8081Fri Mar 6 10:06:59 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 8082 8083 * method.c: Include "system.h" to get stdlib.h, stdio.h, 8084 ctype.h, string.h, etc. 8085 (issue_nrepeats): Add default case in enumeration switch. 8086 (check_btype): Likewise. 8087 (process_overload_item): Likewise. 8088 8089 * Makefile.in (method.o): Depend on system.h. 8090 8091Wed Mar 4 22:26:53 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> 8092 8093 * lex.c (do_scoped_id): Fix parenthesizing. 8094 8095Wed Mar 4 12:11:53 1998 Michael Tiemann <tiemann@axon.cygnus.com> 8096 8097 * rtti.c (get_tinfo_fn_dynamic): If this function is called an 8098 FLAG_RTTI is unset, initialize type info machinery and continue 8099 with FLAG_RTTI enabled. 8100 (get_typeid): Likewise. 8101 8102Wed Mar 4 11:47:55 1998 Jason Merrill <jason@yorick.cygnus.com> 8103 8104 * typeck.c (unary_complex_lvalue): &D::i has type B::* if i comes 8105 from B. 8106 8107Wed Mar 4 11:28:08 1998 Mark Mitchell <mmitchell@usa.net> 8108 8109 * pt.c (finish_member_template_decl): Deal more gracefully with 8110 invalid declarations. 8111 8112Tue Mar 3 01:38:17 1998 Jason Merrill <jason@yorick.cygnus.com> 8113 8114 * cvt.c, decl.c, decl2.c, init.c, rtti.c, typeck.c, typeck2.c, 8115 cp-tree.h: Clean up more old overloading code, old RTTI code, and 8116 some formatting quirks. 8117 8118 * call.c, class.c, cp-tree.h, cvt.c, decl.c, init.c, lex.c, 8119 method.c, pt.c, ptree.c, typeck.c: Remove support for 8120 -fno-ansi-overloading and overloading METHOD_CALL_EXPR. 8121 * class.h: Remove. 8122 * Makefile.in: Adjust. 8123 8124 * pt.c (unify): Don't allow reduced cv-quals when strict. 8125 8126 * call.c, class.c, pt.c, cp-tree.h: Remove nsubsts parm from 8127 *type_unification* and unify. 8128 8129Mon Mar 2 12:11:06 1998 Jason Merrill <jason@yorick.cygnus.com> 8130 8131 * parse.y (explicit_template_type): Remove TEMPLATE keyword. 8132 (nested_name_specifier): And add it before this use. 8133 (typename_sub0): And this use. Also add use without the keyword. 8134 (typename_sub1): Likewise. 8135 * pt.c (instantiate_class_template): Don't actually instantiate 8136 anything if our type uses template parms. 8137 8138Mon Mar 2 11:04:59 1998 Jim Wilson <wilson@cygnus.com> 8139 8140 * decl.c (start_function): Don't call temporary_allocation for a 8141 nested function. 8142 8143Sun Mar 1 21:06:37 1998 Jason Merrill <jason@yorick.cygnus.com> 8144 8145 * pt.c (instantiate_class_template): Don't mess with friends if 8146 our type uses template parms. 8147 8148Sat Feb 28 12:06:44 1998 Jason Merrill <jason@yorick.cygnus.com> 8149 8150 * parse.y (nested_name_specifier): Use explicit_template_type. 8151 (typename_sub): Allow a template_type, an explicit_template_type, 8152 or an implicit template type at the end. 8153 * lex.c (yyprint): Handle a PTYPENAME being a TEMPLATE_DECL. 8154 * decl.c (make_typename_type): Handle template-id where the name 8155 is a TEMPLATE_DECL. 8156 * call.c (build_scoped_method_call): Handle member template 8157 destructor call. 8158 * pt.c (tsubst_copy, METHOD_CALL_EXPR): Don't assume a member 8159 destructor is represented by the type. 8160 8161 * cp-tree.h (TYPENAME_TYPE_FULLNAME): New macro. 8162 * parse.y (nested_name_specifier): Add 'template' case. 8163 (explicit_template_type): New rule. 8164 (typename_sub): Use it. 8165 * decl.c (make_typename_type): Handle getting a template-id for NAME. 8166 * pt.c (tsubst): Likewise. 8167 8168Fri Feb 27 11:17:50 1998 Jason Merrill <jason@yorick.cygnus.com> 8169 8170 * pt.c (add_to_template_args): Fix thinko. 8171 (instantiate_class_template): Call it later. 8172 8173 * pt.c (get_class_bindings): Add outer_args parm. 8174 (most_specialized_class): Likewise. 8175 (instantiate_class_template): Pass it. 8176 (more_specialized_class): Likewise. 8177 (lookup_template_class): Get context from template if none 8178 was specified. 8179 (finish_member_template_decl): Don't do anything with a 8180 partial specialization. 8181 * decl2.c (check_member_template): Use IS_AGGR_TYPE instead of 8182 AGGREGATE_TYPE_P. 8183 * class.c (finish_struct): Member class templates have already been 8184 checked for name clashes. 8185 * decl.c (pushdecl_with_scope): Handle pushing at class level. 8186 8187Fri Feb 27 02:25:16 1998 Jason Merrill <jason@yorick.cygnus.com> 8188 8189 * pt.c (tsubst, TEMPLATE_DECL): Support member class templates. 8190 (tsubst, *_PARM): Support multiple levels of template classes. 8191 (instantiate_class_template): Look up the pattern from the 8192 original template. 8193 (lookup_template_class): Handle getting a template for d1. 8194 (push_template_decl): Correct setting of 'primary'. 8195 (reduce_template_parm_level): Add 'levels' parm. 8196 (finish_member_template_decl): Support member class templates. 8197 (template_class_depth): Handle multiple levels. 8198 * parse.y (component_decl_1, fn.def2): Remove member template case. 8199 (component_decl): Add member template cases. 8200 * decl2.c (check_member_template): We now handle member template 8201 classes. 8202 * decl.c (pushtag): Handle member templates. 8203 * method.c (do_inline_function_hair): Don't touch 8204 IDENTIFIER_GLOBAL_VALUE. 8205 * init.c (build_offset_ref): If name isn't an identifier, just 8206 return it. 8207 * spew.c (yylex): Handle PTYPENAME like TYPENAME. 8208 8209 * typeck.c (get_delta_difference): Do adjust for conversions to 8210 and from virtual base. 8211 8212Wed Feb 25 09:51:29 1998 Jason Merrill <jason@yorick.cygnus.com> 8213 8214 * typeck.c (get_delta_difference): Give hard error for conversion 8215 from virtual base. 8216 8217 * cp-tree.h: Tweak formatting. 8218 8219Wed Feb 25 00:35:33 1998 Jason Merrill <jason@yorick.cygnus.com> 8220 8221 * decl.c (push_namespace): Handle redeclaration error. 8222 8223 * cp-tree.h (IDENTIFIER_NAMESPACE_VALUE): New macro. 8224 (IDENTIFIER_NAMESPACE_BINDINGS): New macro. 8225 (NAMESPACE_BINDING): New macro. 8226 (IDENTIFIER_GLOBAL_VALUE): Use NAMESPACE_BINDING. 8227 * *.c: Use them. 8228 8229 * pt.c (push_template_decl): Use innermost_args. 8230 8231 * decl.c (get_unique_name): Tweak from earlier in the name. 8232 8233Tue Feb 24 22:15:04 1998 Martin von Loewis <loewis@informatik.hu-berlin.de> 8234 8235 * cp-tree.def: Add CPLUS_BINDING node. 8236 * cp-tree.h (tree_binding): New struct. 8237 (BINDING_SCOPE, BINDING_VALUE): New macros. 8238 (current_namespace, global_namespace): Declare extern. 8239 (struct lang_decl_flags): New field in_namespace. 8240 (DECL_NAMESPACE_USING, DECL_NAMESPACE_USERS): New macros. 8241 (DECL_NAMESPACE, SET_DECL_NAMESPACE): New macros. 8242 (TREE_INDIRECT_USING): New macro. 8243 * decl2.c (current_namespace, global_namespace): Declare. The 8244 value is a NAMESPACE_DECL now, not a TREE_LIST. 8245 (is_namespace_ancestor, namespace_ancestor): New static functions. 8246 (add_using_namespace, ambiguous_decl): Likewise. 8247 (lookup_using_namespace): New support function for lookup_name. 8248 (qualified_lookup_using_namespace): New support function for 8249 do_scoped_id and lookup_namespace_name. 8250 (get_namespace_id): Mark as obsolete. 8251 (current_namespace_id): Likewise. 8252 (do_namespace_alias): Implement. 8253 (do_using_directive): Implement as call to add_using_namespace. 8254 * decl.c (binding_for_name): New function. 8255 (push_namespace, pop_namespace): Implement. 8256 (push_decl): Don't install a FUNCTION_DECL in the global branch. 8257 (lookup_namespace_name): Implement using qualified lookup. 8258 (lookup_name_real): For global scoping, lookup in 8259 global_namespace. For namespace scoping, lookup in given 8260 namespace. For unscoped lookup, iterate over namespace, 8261 considering using directives. 8262 (init_decl_processing): Initialize global_namespace. 8263 (grokvardecl): Build assembler name as static name for globals. 8264 (grokdeclarator): Remove old namespace mangling. 8265 (xref_tag): When installing a global binding for the 8266 tag, make sure we have an identifier. 8267 * method.c (build_overload_nested_name): Mangle namespaces. 8268 (build_qualified_name): Likewise. 8269 (build_decl_overload_real): Likewise. 8270 * lex.c (build_lang_decl): Set namespace for new declaration to 8271 current_namespace. 8272 (do_scoped_id): Find global names in global or current 8273 namespace, or using qualified namespace lookup, depending on 8274 context. 8275 * init.c (build_member_call): When scope is namespace, use 8276 build_x_function_call instead. 8277 (build_offset_ref): When scope is namespace, collapse processing 8278 to lookup_namespace_name instead. 8279 * error.c (dump_decl): Support NAMESPACE_DECL. 8280 * decl.c (pushdecl): Bind globals to current namespace. 8281 (push_overloaded_decl): Likewise. 8282 (lookup_tag): Likewise. 8283 (lookup_name_current_level): Likewise. 8284 (xref_tag): Likewise. 8285 (start_function): Likewise. 8286 * lex.c (do_identifier): Likewise. 8287 (identifier_typedecl_value): Likewise. 8288 (real_yylex): Likewise. 8289 * method.c (do_inline_function_hair): Likewise. 8290 * parse.y (unscoped): Likewise. 8291 * pt.c (check_explicit_specialization): Likewise. 8292 (lookup_template_class): Likewise. 8293 * rtti.c (call_void_fn): Likewise. 8294 * sig.c (build_sigtable): Likewise. 8295 * ptree.c (lang_print_xnode): New function. 8296 8297Tue Feb 24 01:40:24 1998 Jason Merrill <jason@yorick.cygnus.com> 8298 8299 * pt.c (instantiate_class_template): Don't instantiate if pedantic 8300 and the args use template parms. 8301 8302 * pt.c (push_tinst_level): If the instantiation uses template parms, 8303 fail silently. 8304 * decl.c (xref_basetypes): Do call complete_type for basetypes 8305 that involve template parameters. 8306 8307Tue Feb 24 00:36:43 1998 Jason Merrill <jason@yorick.cygnus.com> 8308 8309 * typeck2.c (process_init_constructor): Fix labeled init check. 8310 8311Mon Feb 23 05:08:55 1998 Jason Merrill <jason@yorick.cygnus.com> 8312 8313 * pt.c, call.c, decl.c, method.c, cp-tree.h: Remove unused NARGS 8314 argument to tsubst and friends. 8315 8316 * pt.c (tsubst, FUNCTION_DECL): Tidy. 8317 8318 * typeck.c (build_x_function_call): Handle static member function 8319 templates like non-templates. Handle friend templates like normal 8320 function templates. 8321 * pt.c (tsubst, *_PARM): Don't use orig_level. 8322 (get_bindings): Don't call add_to_template_args. 8323 (instantiate_template): Likewise. 8324 (tsubst, FUNCTION_DECL): Call add_to_template_args as appropriate. 8325 * ptree.c (print_lang_type): Print index/level for template parms. 8326 8327Mon Feb 23 02:52:29 1998 Mark Mitchell <mmitchell@usa.net> 8328 8329 * Make-lang.in (cc1plus): Note that cc1plus depends on 8330 cp/cp-tree.h and cp/cp-tree.def. 8331 8332 * cp-tree.def (TEMPLATE_CONST_PARM): Remove. 8333 (TEMPLATE_PARM_INDEX): New tree code, used to indicate a 8334 position in a template parameter list. 8335 * cp-tree.h (template_parm_index): New structure, used as the tree 8336 structure for a TEMPLATE_PARM_INDEX. 8337 (TEMPLATE_PARM_IDX): New macro. 8338 (TEMPLATE_PARM_LEVEL): Likewise. 8339 (TEMPLATE_PARM_DESCENDANTS): Likewise. 8340 (TEMPLATE_PARM_ORIG_LEVEL): Likewise. 8341 (TEMPLATE_PARM_DECL): Likewise. 8342 (TEMPLATE_TYPE_PARM_INDEX): Likewise. 8343 (TEMPLATE_TYPE_ORIG_LEVEL): Likewise. 8344 (TEMPLATE_TYPE_DECL): Likewise. 8345 (TEMPLATE_CONST_IDX): Remove. 8346 (TEMPLATE_CONST_LEVEL): Likewise. 8347 (TEMPLATE_CONST_SET_INFO): Likewise. 8348 (TEMPLATE_TYPE_SET_INFO): Likewise. 8349 (TEMPLATE_TYPE_IDX): Redefine in terms of TEMPLATE_PARM_INDEX 8350 node. 8351 (TEMPLATE_TYPE_LEVEL): Likewise. 8352 * decl.c (decls_match): Call comp_template_parms, rather than 8353 expanding it inline. 8354 (duplicate_decls): If two template declarations are being merged, 8355 then their TEMPLATE_INFOs should be merged as well. 8356 (grokfndecl): Save template-id information when declaring a friend 8357 with explicit template arguments. Pass arguments to 8358 check_explicit_specialization via correct convention; at some 8359 point check_explicit_specialization changed, but these call-sites 8360 did not. 8361 (grokdeclarator): Tidy up slightly. 8362 * decl2.c (check_classfn): Tidy up slightly. Don't assume that 8363 two template functions with the same DECL_ASSEMBLER_NAME the same, 8364 since the names are not yet mangled. 8365 * error.c (dump_decl): Use TEMPLATE_PARM_INDEX instead of 8366 TEMPLATE_CONST_PARM. 8367 (dump_expr): Likewise. Use the TEMPLATE_PARM_DECL to get at the 8368 decl for a non-type parameter, rather than printing `<tparm ...>'. 8369 * friend.c (is_friend): Handle TEMPLATE_DECL friends. 8370 (do_friend): Deal with template friends. 8371 * lex.c (do_pending_inlines): Call 8372 maybe_begin_member_template_processing, rather than 8373 conditionally calling begin_member_template_processing. 8374 (process_next_inline): Likewise. Call 8375 maybe_end_member_template_processing, rather than 8376 conditionally calling end_member_template_processing. 8377 (do_pending_defargs): Likewise. 8378 (do_identifier): Use TEMPLATE_PARM_INDEX instead of 8379 TEMPLATE_CONST_PARM. 8380 * method.c (build_mangled_template_parm_index): New function. 8381 (build_overload_value): Use it. 8382 (build_overload_name): Likewise. 8383 * pt.c (finish_member_template_decl): Allow friend declarations. 8384 (template_class_depth): New function. 8385 (is_member_template): Rename, and modify, to become... 8386 (is_member_or_friend_template): New function. 8387 (end_member_template_processing): Rename, and modify, to become... 8388 (maybe_end_member_template_processing). 8389 (build_template_parm_index): New function. 8390 (reduce_template_parm_level): New function. 8391 (process_template_parm): Modify to use build_template_parm_index. 8392 (push_template_decl): Deal with friend templates. 8393 (uses_template_parms): Use TEMPLATE_PARM_INDEX instead of 8394 TEMPLATE_CONST_PARM. 8395 (tsubst_friend_function): New function. 8396 (instantiate_class_template): Generate the DECL_FRIENDLIST 8397 for a new instantiation by using tsubst_friend_function rather 8398 than just tsubst. 8399 (tsubst): Don't tsubst into a type which is a TEMPLATE_DECL. 8400 Use TEMPLATE_PARM_INDEX instead of TEMPLATE_CONST_PARM, and the 8401 appropriate new macros. Use reduce_template_parm_level to 8402 generate lower-level template parameters. Handle tsubst'ing into 8403 TEMPLATE_DECLS that declare TEMPLATE_TEMPLATE_PARMS. Don't forget 8404 to tsubst the DECL_CONTEXT and DECL_CLASS_CONTEXT of newly created 8405 templates. Similarly for the template parameters for a new 8406 template. 8407 (tsubst_copy): Tidy up slightly. Use TEMPLATE_PARM_INDEX instead 8408 of TEMPLATE_CONST_PARM. Handle TYPE_DECLs by tsubsting into them. 8409 (unify): Use TEMPLATE_PARM_INDEX instead of TEMPLATE_CONST_PARM. 8410 (get_bindings): Call add_to_template_args if necessary. 8411 (instantiate_decl): Handle instantiations of friend templates. 8412 * search.c (lookup_field_1): Don't treat the TYPE_FIELDS of a 8413 TEMPLATE_TYPE_PARM as a list of fields; it's not! 8414 * spew.c (yylex): Do a little manual constant propagation to 8415 clarify the code. 8416 8417Sun Feb 22 19:53:29 1998 Jeffrey A Law (law@cygnus.com) 8418 8419 * error.c: Include sys/types.h. 8420 8421Thu Feb 19 14:49:09 1998 Jeffrey A Law (law@cygnus.com) 8422 8423 * method.c (build_mangled_name): Start CPP directives in column zero. 8424 8425Thu Feb 19 10:36:48 1998 Jason Merrill <jason@yorick.cygnus.com> 8426 8427 * typeck2.c (process_init_constructor): Sorry about non-trivial 8428 labeled initializers. 8429 * parse.y (initlist): Re-enable labeled initializers. 8430 8431Thu Feb 19 10:15:55 1998 Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu> 8432 8433 * pt.c (coerce_template_parms): Add a new parameter, is_tmpl_parm, 8434 all callers changed. Rely on the new parameter instead of arg 8435 being a TREE_LIST when determine whether we are working inside 8436 template template parameter. Clean up is_type test. 8437 8438Thu Feb 19 10:04:12 1998 Jason Merrill <jason@yorick.cygnus.com> 8439 8440 * cvt.c (cp_convert_to_pointer): Preserve TREE_CONSTANT. 8441 * typeck2.c (initializer_constant_valid_p): Allow conversions 8442 between pointers and references. 8443 84441998-02-19 Brendan Kehoe <brendan@cygnus.com> 8445 8446 * typeck.c (build_unary_op): Only warn about incr/decr a pointer 8447 if pedantic || warn_pointer_arith. 8448 8449Thu Feb 19 09:37:21 1998 Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu> 8450 8451 * pt.c (unify): Handle TEMPLATE_DECL. 8452 84531998-02-18 Brendan Kehoe <brendan@cygnus.com> 8454 8455 * cp-tree.h (strip_attrs): Remove decl. 8456 84571998-02-18 Doug Evans <devans@cygnus.com> 8458 8459 * decl.c (duplicate_decls): Call merge_machine_decl_attributes. 8460 Update olddecl's attributes too. 8461 (strip_attrs): Remove function. 8462 * typeck.c (common_type): Call merge_machine_type_attributes. 8463 8464Tue Feb 17 14:07:52 1998 Mark Mitchell <mmitchell@usa.net> 8465 8466 * parse.y (initdcl0_innards): New grammar symbol. 8467 (nomods_initdecls, nomods_initdcl0): Change type from itype to 8468 none, since the resulting value is never used. 8469 (parse_decl): New function. 8470 (datadef): Remove redundant actions. 8471 (initdcl0, notype_initdcl0, nomods_initdcl0): Use initdcl0_innards. 8472 * parse.c: Regenerated. 8473 8474Tue Feb 17 11:54:16 1998 Jason Merrill <jason@yorick.cygnus.com> 8475 8476 * parse.y (simple_stmt): Use getdecls() to check for decl. 8477 8478Sat Feb 14 11:50:51 1998 Manfred Hollstein <manfred@s-direktnet.de> 8479 8480 * Make-lang.in (DEMANGLER_INSTALL_NAME, DEMANGLER_CROSS_NAME): New 8481 macros. 8482 (c++.install-common): Install c++filt properly as native or as cross 8483 variant. 8484 (c++.uninstall): Add c++filt. 8485 8486Fri Feb 13 14:55:37 1998 Jason Merrill <jason@yorick.cygnus.com> 8487 8488 * call.c (standard_conversion): Fix multi-level ptr conversions. 8489 8490Fri Feb 13 14:06:22 1998 Mike Stump <mrs@wrs.com> 8491 8492 * init.c (build_new): Propagate error_mark_node up. 8493 8494Fri Feb 13 13:24:32 1998 Jason Merrill <jason@yorick.cygnus.com> 8495 8496 * parse.y (simple_stmt): If the condition isn't a declaration, 8497 start the controlled block after the test. 8498 8499Fri Feb 13 02:26:10 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> 8500 8501 * call.c (build_over_call): Convert builtin abs, labs and fabs to 8502 tree-codes. 8503 * decl.c (init_decl_processing): Re-enable abs, labs and fabs as 8504 builtins. 8505 8506Fri Feb 13 01:36:42 1998 Jason Merrill <jason@yorick.cygnus.com> 8507 8508 * call.c (standard_conversion): A BASE_CONV replaces an RVALUE_CONV. 8509 8510Fri Feb 13 00:21:59 1998 Jason Merrill <jason@yorick.cygnus.com> 8511 8512 * cp-tree.h: Add access_protected_virtual_node. 8513 * class.c (init_class_processing): Initialize it. 8514 * decl.c (xref_basetypes): Use it. 8515 * parse.y (base_class_access_list): Likewise. 8516 8517 * Make-lang.in (DEMANGLER_PROG): Add $(exeext). 8518 (c++.install-common): Install c++filt. 8519 8520Thu Feb 12 12:46:51 1998 Benjamin Kosnik <bkoz@rhino.cygnus.com> 8521 8522 * decl.c (shadow_tag): Give error for typedef-ing built-in types. 8523 8524Wed Feb 11 23:28:05 1998 Mark Mitchell <mmitchell@usa.net> 8525 8526 * call.c (reference_binding): Use comptypes when comparing 8527 TYPE_MAIN_VARIANTS to handle non-canonical array/index types. 8528 8529Wed Feb 11 16:42:04 1998 Mark Mitchell <mmitchell@usa.net> 8530 8531 * tree.c (is_overloaded_fn): Use really_overloaded_fn. 8532 (really_overloaded_fn): Move check here from is_overloaded_fn. 8533 (get_first_fn): Use really_overloaded_fn and is_overloaded_fn. 8534 8535Wed Feb 11 15:54:18 1998 Mark Mitchell <mmitchell@usa.net> 8536 8537 * typeck.c (build_ptrmemfunc): Type-check pointer-to-member 8538 conversions. 8539 8540Mon Feb 9 22:23:31 1998 Mark Mitchell <mmitchell@usa.net> 8541 8542 * cp-tree.h (push_template_decl): Return the decl passed in, or an 8543 equivalent duplicate. 8544 * decl.c (pushtag): Use the return value from push_template_decl. 8545 (duplicate_decls): When duplicating a template declaration, merge 8546 the DECL_TEMPLATE_RESULTs as well. 8547 (make_implicit_typename): Don't try to dive into typename types to 8548 find a context for making a new implicit typename. 8549 (start_decl): Use the return value from push_template_decl. 8550 (grokdeclarator): Complain about declarations list `const operator 8551 int'. Since we don't correctly handle in-class initializations of 8552 non-static data members, complain about this (now illegal) 8553 practice. Issue an error for initializations of non-const statics 8554 since that is illegal as well, and since we don't handle that case 8555 correctly either. 8556 (start_function): Use the return value from push_template_decl. 8557 (start_method): Likewise. 8558 * decl2.c (grokfield): Likewise. Since the change to 8559 grokdeclarator ensures that all initialized fields are in fact 8560 static, remove a redundant test for TREE_PUBLIC. 8561 * parse.y (initlist): Disable labeled initializers since they do 8562 not work as per the documentation, and since they do not use the 8563 same syntax as the C front end. 8564 * pt.c (push_template_decl): Return the decl passed in, or an 8565 equivalent duplicate. 8566 (lookup_template_class): When searching in a nested context, 8567 use the right arguments. 8568 (uses_template_parms): Handle the DECL_INITIAL for a CONST_DECL. 8569 * typeck.c (build_component_ref): Assign the correct type to the 8570 result of build_vfn_ref. 8571 8572Tue Feb 10 23:56:46 1998 Jason Merrill <jason@yorick.cygnus.com> 8573 8574 * pt.c (convert_nontype_argument): Fix typo. 8575 (check_explicit_specialization): Allow old-style specialization 8576 of class template members. 8577 8578Tue Feb 10 20:36:52 1998 Jason Merrill <jason@yorick.cygnus.com> 8579 Manfred Hollstein <manfred@s-direktnet.de> 8580 8581 * decl.c (grokdeclarator): Use DECL_USE_TEMPLATE instead 8582 when deciding to override DECL_ASSEMBLER_NAME. 8583 8584Tue Feb 10 15:30:55 1998 Andrew MacLeod <amacleod@torpedo.to.cygnus.com> 8585 8586 * decl2.c (lang_f_options): Add -fsquangle to option processing list. 8587 * cp-tree.h (flag_do_squangling): Add declaration. 8588 * lang-options.h: Add -fsquangle and -fno-squangle. 8589 * method.c: Add macros and static variables for squangling. 8590 (build_overload_name): Rename to build_mangled_name, add logic for B 8591 compression, and split into process_modifiers and 8592 process_overload_item. 8593 (process_modifiers): New function, to handle constant, reference, 8594 and pointer types. 8595 (process_overload_item): New function, handles issue of type codes. 8596 (build_overload_name): New function, start squangling and call 8597 build_mangled_name. 8598 (ALLOCATE_TYPEVEC, DEALLOCATE_TYPEVEC): Remove macro and expand inline. 8599 (start_squangling): New function to initialize squangling structs. 8600 (end_squangling): New function to destroy squangling structs. 8601 (nrepeats): Rename variable to Nrepeats. 8602 (issue_nrepeats): New function for issuing 'n' type repeats. 8603 (check_ktype): New function to check for type K name compression. 8604 (build_overload_nested_name): Add a check for K name compression. 8605 (build_qualified_name): Add a check for K name compression and don't 8606 use DECL_ASSEMBLER_NAME when squangling is on. 8607 (check_btype): New function, checks for B type compression. 8608 (build_static_name, build_decl_overload_real): Initiate squangling. 8609 (build_typename_overload, build_overload_with_type): Initiate 8610 squangling 8611 8612Sun Feb 8 23:47:38 1998 scott snyder <sss@d0linux01.fnal.gov> 8613 8614 * method.c (make_thunk): Avoid name buffer overflow. 8615 8616Sat Feb 7 16:48:54 1998 Jason Merrill <jason@yorick.cygnus.com> 8617 8618 * pt.c (instantiate_decl): Call cp_finish_decl for vars even if we 8619 don't define them yet. 8620 8621 * parse.y (nomods_initdcl0): Add constructor_declarator case. 8622 8623Fri Feb 6 21:32:25 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 8624 8625 * config-lang.in (diff_excludes): Use basename only. 8626 8627Thu Feb 5 19:10:40 1998 Jason Merrill <jason@yorick.cygnus.com> 8628 8629 * tinfo2.cc: Add tinfo for signed char. 8630 8631Thu Feb 5 14:38:23 1998 Mike Stump <mrs@wrs.com> 8632 8633 * search.c (compute_access): Handle protected constructors in derived 8634 classes as accessible. 8635 8636Wed Feb 4 01:26:49 1998 Jason Merrill <jason@yorick.cygnus.com> 8637 8638 * expr.c (cplus_expand_expr, PCC_STATIC_STRUCT_RETURN code): 8639 Call convert_from_reference sooner. 8640 8641Tue Feb 3 23:50:52 1998 Mark Mitchell <mmitchell@usa.net> 8642 8643 * cvt.c (ocp_convert): Obtain the constant values from constant 8644 decls even if the destination type is the same as the type of the 8645 decl. 8646 8647 * decl2.c (finish_file): Make sure that static inlines with 8648 definitions are not marked DECL_EXTERNAL before returning. 8649 8650Tue Feb 3 22:43:42 1998 Jason Merrill <jason@yorick.cygnus.com> 8651 8652 * decl.c: Lose arg_looking_for_template. 8653 (lookup_name_real): Likewise. 8654 * parse.y: Lose processing_template_arg, template_arg1. 8655 (primary): Likewise. 8656 * spew.c (yylex): Set lastiddecl for PTYPENAMEs, too. 8657 8658Tue Feb 3 22:04:01 1998 Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu> 8659 8660 * error.c (dump_decl): Fix type of default arguments for template 8661 template parameters and nontype template parameters. 8662 * parse.y (template_parm): Handle invalid default template 8663 template arguments here. 8664 8665 * parse.y (template_parm): Use template_arg instead of PTYPENAME 8666 for default template template argument. 8667 * pt.c (coerce_template_parms): Merge default template argument 8668 codes. Can treat RECORD_TYPE as template name if it is implicitly 8669 created. Fix argument index in error message. 8670 * typeck.c (comptypes): Merge template argument comparison codes in 8671 TEMPLATE_TEMPLATE_PARM and RECORD_TYPE. 8672 8673Tue Jan 6 01:42:44 1998 Mumit Khan <khan@xraylith.wisc.edu> 8674 8675 * lex.c (file_name_nondirectory): Also check for '/'. 8676 8677Mon Feb 2 11:24:22 1998 Mark Mitchell <mmitchell@usa.net> 8678 8679 * parse.y (primary): Deal with statement-expressions in 8680 templates. 8681 * pt.c (tsubst_copy): Handle BIND_EXPR. 8682 * tree.c (mapcar): Likewise. 8683 8684 * call.c (add_template_candidate_real): Pass extra parameter to 8685 fn_type_unification. 8686 * cp-tree.h (fn_type_unification): Add parameter. 8687 * pt.c (fn_type_unification): Add additional parameter to deal with 8688 static member functions. 8689 (get_bindings): Deal with static member functions. 8690 8691 * cp-tree.h (DECL_NONSTATIC_MEMBER_FUNCTION_P): New macro. 8692 (revert_static_member_fn): Declare. 8693 * decl.c (revert_static_member_fn): Remove declaration. Change 8694 linkage from internal to external. 8695 (cp_finish_decl): Deal with virtual functions in classes local to 8696 template functions. 8697 * decl2.c (finish_file): Don't forget to emit increment/decrement 8698 expressions in initializers for file-scope variables. 8699 * parse.y (typename_sub2): If the typename doesn't names a 8700 template, rather than a type, issue an error message. 8701 * pt.c (check_explicit_specialization): Handle specializations of 8702 static member functions. 8703 (coerce_template_parms): Handle offset references to lists of 8704 member functions. 8705 * search.c (note_debug_info_needed): Don't crash when handed a 8706 type which is being defined. 8707 * typeck.c (complete_type): Don't crash when handed NULL_TREE; 8708 that can happen with some illegal code. 8709 8710Mon Feb 2 00:57:38 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 8711 8712 * call.c (user_harshness): Initialize `code' to 0. 8713 (build_method_call): Initialize `candidates', `cp' and `len' to 0. 8714 (null_ptr_cst_p): Add parentheses around && within ||. 8715 (standard_conversion): Likewise. 8716 (z_candidate): Likewise. 8717 (build_user_type_conversion_1): Initialize `args' to NULL_TREE. 8718 (build_object_call): Likewise for `mem_args'. 8719 (build_new_op): Likewise for `mem_arglist'. Add `return' from 8720 default case in enumeration switch. 8721 8722 * class.c (build_vtable_entry): Add explicit braces to avoid 8723 ambiguous `else'. 8724 (build_class_init_list): Likewise. 8725 (finish_struct_1): Initialize `width' to 0. 8726 (instantiate_type): Initialize `name' to NULL_TREE. Add 8727 explicit braces to avoid ambiguous `else'. 8728 8729 * cvt.c (convert_to_aggr): Add explicit braces to avoid ambiguous 8730 `else'. 8731 8732 * decl.c (grok_reference_init): Eliminate unused parameter, all 8733 callers changed. 8734 (record_builtin_type): Initialize `tdecl' to NULL_TREE. 8735 (init_decl_processing): Initialize `vb_off_identifier' to NULL_TREE. 8736 (cp_finish_decl): Initialize `ttype' to NULL_TREE. 8737 (grokdeclarator): Add parentheses around && within ||. Add 8738 explicit braces to avoid ambiguous `else'. 8739 (grokparms): Initialize `type' to NULL_TREE. 8740 (xref_tag): Remove unused label `just_return'. 8741 (finish_enum): Initialize `minnode' and `maxnode' to NULL_TREE. 8742 (finish_function): Initialize `cond' and `thenclause' to NULL_TREE. 8743 (hack_incomplete_structures): Add parentheses around assignment 8744 used as truth value. 8745 8746 * decl2.c (coerce_delete_type): Hide definition of `e3'. 8747 8748 * error.c: Include <stdlib.h>. 8749 (dump_expr): Change the type of `i' to size_t. Remove unused 8750 label `error'. 8751 8752 * except.c (init_exception_processing): Remove unused variable `d'. 8753 (expand_throw): Likewise for `label'. 8754 8755 * friend.c (add_friends): Add explicit braces to avoid ambiguous 8756 `else'. 8757 8758 * init.c (sort_member_init): Initialize `last_field' to NULL_TREE. 8759 (sort_base_init): Likewise for `binfo'. 8760 (expand_member_init): Likewise for `rval'. 8761 (build_member_call): Add parentheses around assignment used as 8762 truth value. 8763 (build_offset_ref): Add explicit braces to avoid ambiguous `else'. 8764 (build_new): Initialize `nelts' to NULL_TREE. Initialize 8765 `old_immediate_size_expand' to 0. 8766 (build_new_1): Initialize `nelts' and `alloc_node' to NULL_TREE. 8767 (build_vec_delete_1): Remove unused variable `block'. 8768 (expand_vec_init): Initialize `itype' to NULL_TREE. 8769 8770 * lex.c: Include <strings.h> if we don't have <string.h>. Protect 8771 declaration of `index' and `rindex' with autoconf macros. 8772 (reinit_parse_for_expr): Remove unused variables 8773 `look_for_semicolon' and `look_for_lbrac'. 8774 (cons_up_default_function): Initialize `args' to NULL_TREE. 8775 (readescape): Initialize `firstdig' to 0. 8776 (real_yylex): Add parentheses around assignment used as truth value. 8777 8778 * method.c: Include <strings.h> if we don't have <string.h>. 8779 Protect declaration of `index' with autoconf macro. 8780 8781 * parse.y (primary): Add explicit braces to avoid ambiguous `else'. 8782 Initialize `type' to NULL_TREE. 8783 (structsp): Remove unused variable `id'. 8784 8785 * pt.c (coerce_template_parms): Add explicit braces to avoid 8786 ambiguous `else'. 8787 (lookup_template_class): Initialize `template' to NULL_TREE. 8788 (instantiate_class_template): Remove unused variable `name' and `e'. 8789 (tsubst): Likewise for `i'. Initialize `last' to NULL_TREE. 8790 (do_poplevel): Initialize `saved_warn_unused' to 0. 8791 (type_unification): Remove unused varable `parm'. 8792 (unify): Likewise for `j'. 8793 8794 * repo.c (init_repo): Add parentheses around assignment used as 8795 truth value. 8796 (finish_repo): Remove unused varable `p'. 8797 8798 * search.c (get_binfo): Initialize `type' to NULL_TREE. 8799 (get_base_distance): Likewise. 8800 (lookup_field): Initialize `rval_binfo_h', `type', `basetype_path' 8801 and `new_v' to NULL_TREE. 8802 (lookup_fnfields): Likewise for `rval_binfo_h'. 8803 (breadth_first_search): Add parentheses around assignment used as 8804 truth value. 8805 (get_template_base): Initialize `type' to NULL_TREE. 8806 8807 * sig.c (append_signature_fields): Initialize `last_mfptr' to 8808 NULL_TREE. 8809 (build_signature_table_constructor): Likewise for 8810 `last_rhs_field', `pfn' and `vt_off'. 8811 (build_sigtable): Likewise for `init'. 8812 8813 * tree.c (break_out_calls): Initialize `t2' to NULL_TREE. 8814 (propagate_binfo_offsets): Likewise for `delta'. 8815 (hash_tree_cons): Initialize hashcode to 0. 8816 (can_free): Likewise for `size'. 8817 (cp_tree_equal): Add explicit braces to avoid ambiguous `else'. 8818 8819 * typeck.c (convert_sequence): Hide prototype. 8820 (common_type): Add explicit braces to avoid ambiguous `else'. 8821 (comp_target_types): Likewise. 8822 (build_x_function_call): Initialize `ctypeptr' to NULL_TREE. 8823 (build_function_call_real): Add explicit braces to avoid ambiguous 8824 `else'. 8825 (convert_arguments): Initialize `called_thing' to 0. 8826 (convert_for_initialization): Initialize `savew' and `savee' to 0. 8827 8828 * typeck2.c (incomplete_type_error): Initialize `errmsg' to 0. 8829 (digest_init): Initialize `old_tail_contents' to NULL_TREE. 8830 (build_x_arrow): Likewise for `last_rval'. 8831 8832 * xref.c (GNU_xref_decl): Initialize `cls' to 0. 8833 8834Sun Feb 1 12:45:34 1998 J"orn Rennecke <amylaar@cygnus.co.uk> 8835 8836 * decl.c (init_decl_processing): Use set_sizetype. 8837 * decl2.c (sizetype): Don't declare. 8838 * typeck.c (c_sizeof): Convert result of *_DIV_EXPR to sizetype. 8839 (c_sizeof_nowarn, build_binary_op_nodefault): Likewise. 8840 (build_component_addr, unary_complex_lvalue): Likewise. 8841 * rtti.c (expand_class_desc): Likewise. 8842 * class.c (get_vfield_offset): Likewise. 8843 8844Thu Jan 29 10:39:30 1998 Mark Mitchell <mmitchell@usa.net> 8845 8846 * pt.c (convert_nontype_argument): Move check for is_overloaded_fn 8847 early to avoid bogus error. Handle overloaded function 8848 names provided as template arguments correctly. 8849 (coerce_template_parms): Don't mishandle overloaded functions when 8850 dealing with template template parameters. 8851 (lookup_template_class): Issue an error message, rather than 8852 crashing, when the TYPE_DECL provided is not a template type. 8853 8854Wed Jan 28 23:14:44 1998 Jason Merrill <jason@yorick.cygnus.com> 8855 8856 * class.c (instantiate_type): Don't just return a known type if 8857 it's wrong. 8858 8859Wed Jan 28 11:04:07 1998 Mark Mitchell <mmitchell@usa.net> 8860 8861 * class.c (instantiate_type): Remove handling of FUNCTION_DECL 8862 since that code could never be reached. 8863 8864 * error.c (dump_decl): Avoid aborting in the midst of printing an 8865 error message about an illegal template declaration. 8866 8867 * parse.y (structsp): Print an error message, rather than crashing, 8868 when a class-head does not name a class. 8869 8870 * pt.c (convert_nontype_argument): Allow REAL_TYPE and COMPLEX_TYPE 8871 template arguments as a g++ extension. 8872 8873 * cp-tree.def (ALIGNOF_EXPR): New tree code. 8874 * decl2.c (grok_alignof): If processing_template_decl, just store 8875 the expression. 8876 * typeck.c (c_alignof): Likewise. 8877 * decl2.c (build_expr_from_tree): Handle ALIGNOF_EXPR. 8878 * error.c (dump_expr): Likewise. 8879 * pt.c (tsubst_copy): Likewise. 8880 * tree.c (cp_tree_equal): Likewise. 8881 * pt.c (uses_template_parms): Correctly determine whether or not a 8882 SIZEOF_EXPR/ALIGNOF_EXPR uses template parameters so that constant 8883 folding can be done. 8884 8885 * cp-tree.h (grok_enum_decls): Remove type parameter. 8886 * decl.c (grok_enum_decls): Likewise. 8887 * decl2.c (grok_x_components): Call grok_enum_decls 8888 unconditionally, since it will do nothing if there is no 8889 current_local_enum. Use the new calling sequence. 8890 * pt.c (tsubst_enum): Use the new calling sequence for 8891 grok_enum_decls. 8892 8893 * decl.c (start_function): Make member functions of local classes 8894 in extern inline functions have comdat linkage here... 8895 (grokdeclarator): Rather than here. 8896 8897Wed Jan 28 10:55:47 1998 Jason Merrill <jason@yorick.cygnus.com> 8898 8899 * pt.c (convert_nontype_argument): Use decl_constant_value. 8900 8901Tue Jan 27 16:42:21 1998 Mark Mitchell <mmitchell@usa.net> 8902 8903 * call.c (add_template_candidate_real): New function. 8904 (add_template_candidate): Use it. 8905 (add_template_conv_candidate): Likewise. 8906 (joust): Pass extra argument to more_specialized. 8907 * class.c (instantiate_type): Handle a single FUNCTION_DECL. 8908 (is_local_class): Remove. 8909 (finish_struct): Check TI_PENDING_SPECIALIZATION_FLAG. 8910 * cp-tree.h (is_local_class): Remove. 8911 (perform_array_to_pointer_conversion): Likewise. 8912 (finish_member_template_decl): Add. 8913 (check_explicit_specialization): Return a tree, not an int. 8914 (more_specialized): Take additional argument. 8915 (get_bindings): Likewise. 8916 (TI_PENDING_SPECIALIZATION_FLAG): New macro. 8917 * cvt.c (perform_qualification_conversions): Use comp_ptr_ttypes. 8918 (perform_array_to_pointer_conversion): Remove. 8919 * decl.c (saved_scope): Add processing_specialization, 8920 processing_explicit_instantiation fields. 8921 (maybe_push_to_top_level): Save them. 8922 (pop_from_top_level): Restore them. 8923 (grokfndecl): Use new return value from 8924 check_explicit_specialization. 8925 (start_decl): Don't check flag_guiding_decls before pushing 8926 decls. 8927 (cp_finish_decl): Remove previous (bogus) change. 8928 (grok_declarator): Use decl_function_context rather than 8929 is_local_class. 8930 * decl2.c (finish_file): Pass extra argument to get_bindings. 8931 (build_expr_from_tree): Let build_x_component_ref check 8932 validity of arguments rather than doing it here. 8933 * lex.c (cons_up_default_function): Remove code fooling with 8934 processing_specialization, processing_explicit_instantiation 8935 flags, as that is now done in {maybe_push_top,pop_from}_top_level. 8936 * method.c (build_overload_identifier): Mangle local classes in 8937 template functions correctly. 8938 * parse.y (finish_member_template_decl): Move to pt.c. 8939 * pt.c (finish_member_template_decl): Moved here from parse.y. 8940 (print_candidates): New function. 8941 (determine_specialization): Change interface. Properly look for 8942 most specialized versions of template candidates. 8943 (check_explicit_specialization): Fully process explicit 8944 instantiations. 8945 (push_template_decl): Avoid looking at CLASSTYPE fields in 8946 FUNCTION_DECLS. 8947 (determine_overloaded_function): Remove. 8948 (convert_nontype_argument): Change name from 8949 convert_nontype_parameter. Use determine_overloaded_function 8950 instead of instantiate_type. 8951 (mangle_class_name_for_template): Handle type contexts as well as 8952 function contexts. 8953 (classtype_mangled_name): Likewise. 8954 (lookup_template_class): Likewise. 8955 (tsubst): Likewise. 8956 (more_specialized): Take explict template arguments as a 8957 parameter. 8958 (most_specialized): Likewise. 8959 (get_bindings): Likewise. Check that return types match before 8960 proclaiming a function a match. 8961 (do_decl_instantiation): Remove code searching for function to 8962 instantiate; that is now done in check_explicit_specialization. 8963 (add_maybe_template): Pass extra argument to get_bindings. 8964 * tree.c (really_overloaded_fn): Use is_overloaded_fn to simplify 8965 implementation. 8966 * typeck.c (build_component_ref): Check for invalid arguments. 8967 8968Tue Jan 27 01:44:02 1998 Jason Merrill <jason@yorick.cygnus.com> 8969 8970 * expr.c (cplus_expand_expr, AGGR_INIT_EXPR): Don't check that 8971 return_target and call_target are equivalent. 8972 8973 * pt.c (type_unification_real): Just accept function parms that 8974 don't use any template parms. 8975 8976Sun Jan 25 03:30:00 1998 Jason Merrill <jason@yorick.cygnus.com> 8977 8978 * decl.c (cp_finish_decl): When bailing on a comdat variable, also 8979 unset DECL_NOT_REALLY_EXTERN. 8980 8981 * parse.y (typename_sub*): Fix std::. 8982 8983Sat Jan 24 12:13:54 1998 Jason Merrill <jason@yorick.cygnus.com> 8984 8985 * error.c (dump_decl): Fix type default template args. 8986 (dump_type): Hand TEMPLATE_DECL off to dump_decl. 8987 8988Fri Jan 23 18:34:37 1998 Mumit Khan <khan@xraylith.wisc.edu> 8989 8990 * lex.c (DIR_SEPARATOR): Define to be '/' if not already defined. 8991 (file_name_nondirectory): Use. 8992 8993Wed Jan 21 10:29:57 1998 Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu> 8994 8995 * pt.c (coerce_template_parms): Don't access elements of ARGLIST 8996 that are not really present. Substitute default arguments in 8997 template template arguments. Correctly convert TEMPLATE_DECL to 8998 TEMPLATE_TEMPLATE_PARM. 8999 (comp_template_args): TEMPLATE_DECL and TEMPLATE_TEMPLATE_PARM 9000 are no longer treated specially here. 9001 * parse.y (template_template_parm): Fix copy error. 9002 * decl.c (grokdeclarator): Warn about missing `typename' for nested 9003 type created from template template parameters. 9004 * parse.y (bad_parm): Likewise 9005 9006 * class.c (finish_struct): Handle TEMPLATE_TEMPLATE_PARM. 9007 (push_nested_class): Likewise. 9008 * cp-tree.def (TEMPLATE_TEMPLATE_PARM): New tree code. 9009 * cp-tree.h (DECL_TEMPLATE_TEMPLATE_PARM_P): New macro. 9010 (copy_template_template_parm): Declare. 9011 * decl.c (arg_looking_for_template): New variable. 9012 (lookup_name_real): Handle TEMPLATE_TEMPLATE_PARM. 9013 Try to return TEMPLATE_DECL or TEMPLATE_TEMPLATE_PARM 9014 node if arg_looking_for_template is nonzero. 9015 (pushdecl): Handle TEMPLATE_TEMPLATE_PARM. 9016 (grok_op_properties, xref_tag, xref_basetypes): Likewise. 9017 (grokdeclarator): Handle TEMPLATE_DECL. 9018 * decl2.c (constructor_name_full): Handle TEMPLATE_TEMPLATE_PARM. 9019 * error.c (dump_type): Add TEMPLATE_DECL and TEMPLATE_TEMPLATE_PARM. 9020 (dump_type_prefix, dump_type_suffix): Handle TEMPLATE_TEMPLATE_PARM. 9021 (dump_decl): Handle unnamed template type parameters. 9022 Handle template template parameters. 9023 (dump_function_name): Handle template template parameters. 9024 * init.c (is_aggr_typedef, is_aggr_type, get_aggr_from_typedef): 9025 Handle TEMPLATE_TEMPLATE_PARM. 9026 * method.c (build_template_template_parm_names): New function. 9027 (build_template_parm_names): Handle TEMPLATE_DECL. 9028 (build_overload_nested_name, build_overload_name): 9029 Handle TEMPLATE_TEMPLATE_PARM. 9030 * parse.y (maybe_identifier): New nonterminal. 9031 (template_type_parm): Use it. 9032 (template_template_parm, template_arg1): New nonterminal. 9033 (template_parm): Add template_template_parm rules. 9034 (template_arg): Set processing_template_arg. 9035 (template_arg1): Rules moved from template_arg. 9036 (primary, nonnested_type): Set arg_looking_for_template if we are 9037 processing template arguments. 9038 * pt.c (begin_member_template_processing): Handle TEMPLATE_DECL. 9039 (process_template_parm): Handle template template parameters. 9040 (coerce_template_parms, comp_template_args): Likewise. 9041 (mangle_class_name_for_template, lookup_template_class): Likewise. 9042 (uses_template_parms): Handle TEMPLATE_DECL and 9043 TEMPLATE_TEMPLATE_PARM. 9044 (current_template_args): Handle TEMPLATE_DECL. 9045 (tsubst, tsubst_copy, unify): Handle TEMPLATE_TEMPLATE_PARM. 9046 * search.c (dfs_walk, dfs_record_inheritance): 9047 Handle TEMPLATE_TEMPLATE_PARM. 9048 * tree.c (copy_template_template_parm): New function. 9049 (mapcar): Handle TEMPLATE_TEMPLATE_PARM. 9050 * typeck.c (comptypes): Handle TEMPLATE_TEMPLATE_PARM. 9051 9052Mon Jan 19 22:40:03 1998 Mark Mitchell <mmitchell@usa.net> 9053 9054 * decl.c (start_decl): Don't allow duplicate definitions of static 9055 data members. 9056 9057 * call.c (build_user_type_conversion_1): Handle user-defined 9058 template conversion operators correctly. 9059 9060 * decl2.c (build_expr_from_tree): Issue an error message if the 9061 object in a COMPONENT_REF is a TEMPLATE_DECL. 9062 9063 * typeck.c (incomplete_type_error): Handle TEMPLATE_TYPE_PARMs. 9064 9065 * class.c (is_local_class): New function. 9066 * cp-tree.h (is_local_class): Declare it. 9067 (last_tree): Likewise. 9068 (begin_tree): Likewise. 9069 (end_tree): Likewise. 9070 (lookup_template_class): Change prototype. 9071 * decl.c (cp_finish_decl): Check for NULL where necessary. 9072 Consider FUNCTION_DECLS to declare objects with top-level binding, 9073 when calling make_decl_rtl. 9074 (grokdeclarator): Give members of local classes internal linkage. 9075 (start_function): Remove declaration of last_tree. 9076 (finish_function): Set flag_keep_inline_functions around call to 9077 rest_of_compilation if we are processing a member function in a 9078 local class. 9079 (start_method): Call push_template_decl for member functions of 9080 local classes in template functions. 9081 * decl2.c (import_export_decl): Don't give external linkage to 9082 instantiations of templates with internal linkage. 9083 * parse.y (last_tree): Remove declaration. 9084 (template_type): Pass extra parameter to lookup_template_class. 9085 (self_template_type): Likewise. 9086 (structsp): Move call to reset_specialization into left_curly. 9087 (left_curly): Call reset_specialization, and begin_tree. 9088 * pt.c (saved_trees): New variable. 9089 (mangle_class_name_for_template): Change prototype. Use 9090 additional function context to name local classes in templates 9091 correctly. 9092 (classtype_mangled_name): Pass the context. 9093 (push_template_decl): Handle local classes and templates, and 9094 member functions for such classes. 9095 (convert_nontype_parameter): Fix handling of pointer-to-member 9096 constants. 9097 (lookup_template_class): Handle local classes in templates. 9098 (tsubst): Likewise. Don't assume that template instantiations 9099 have external linkage; pay attention to the template declaration. 9100 (mark_decl_instantiated): Likewise. 9101 (begin_tree): New function. 9102 (end_tree): Likewise. 9103 9104 * decl.c (xref_basetypes): Don't call complete_type for basetypes 9105 that involve template parameters; that can lead to infinite 9106 recursion unnecessarily. 9107 9108 * pt.c (register_specialization): Do not register specializations 9109 that aren't ready to be registered yet. 9110 (check_explicit_specialization): Handle explicit specialization of 9111 constructors and destructors. 9112 (build_template_decl): New function. 9113 (push_template_delc): Handle out-of-class specializations of 9114 member templates. 9115 9116 * pt.c (check_explicit_specialization): Set up the template 9117 information before registering the specialization. 9118 (coerce_template_parms): Fix thinko. 9119 (tsubst): Handle specializations of member templates correctly. 9120 9121 * class.c (finish_struct_methods): Remove calls to 9122 check_explicit_specialization from here. 9123 (finish_struct): And insert them here. 9124 * cp-tree.h (perform_qualification_conversions): New function. 9125 (perform_array_to_pointer_conversion): Likewise. 9126 (begin_explicit_instantiation): Likewise. 9127 (end_explicit_instantiation): Likewise. 9128 (determine_specialization): Renamed from 9129 determine_explicit_specialization. 9130 (comp_template_parms): New function. 9131 (processing_explicit_instantiation): New variable. 9132 * cvt.c (perform_qualification_conversions): New function. 9133 (perform_array_to_pointer_conversion): Likewise. 9134 * decl.c (duplicate_decls): Don't consider template functions 9135 alike unless they have the same parameters. Refine handling of 9136 instantiation/specialization mismatches. 9137 (start_decl): Don't call pushdecl for template specializations, 9138 since they don't affect overloading. 9139 (start_function): Likewise. 9140 (grokfndecl): Call check_explicit_specialization a little later. 9141 Don't call duplicate_decls for memberm template specializations. 9142 (grokdeclarator): Don't update template_count for classes that are 9143 themselves specializations. Remove use of `2' as parameter to 9144 grokfndecl since that value isn't used. 9145 * lex.c (cons_up_default_function): Save and restore 9146 processing_explicit_instantiation around calls to grokfield. 9147 * parse.y (finish_member_template_decl): New function. 9148 (component_decl_1): Use it. 9149 (fn.def2): Likewise. 9150 (template_arg_list_opt): New nonterminal. 9151 (template_type): Use it. 9152 (self_template_type): Likewise. 9153 (template_id): Likewise. 9154 (object_template_id): Likewise. 9155 (notype_template_declarator): Likwise. 9156 (begin_explicit_instantiation): Likewise. 9157 (end_explicit_instantiation): Likewise. 9158 (explicit_instantiation): Use them. 9159 * pt.c (coerce_template_parms): Add parameters. 9160 (processing_explicit_instantiation): New variable. 9161 (convert_nontype_parameter): New function. 9162 (determine_overloaded_function): Likewise. 9163 (begin_explicit_instantiation): Likewise. 9164 (end_explicit_instantiation): Likewise. 9165 (retrieve_specialization): Likewise. 9166 (register_specialization): Likewise. 9167 (processing_explicit_specialization): Removed. 9168 (determine_specialization): Handle specializations of member 9169 functions of template class instantiations. 9170 (check_explicit_specialization): Refine to conform to standard. 9171 (comp_template_parms): New function. 9172 (coerce_template_parms): Call convert_nontype_parameter. 9173 (tsubst): Refine handling of member templates. Use 9174 register_specialization. 9175 (instantiate_template): Use retrieve_specialization. 9176 (do_decl_instantiation): Likewise. 9177 (instantiate_decl): Likewise. 9178 (type_unification): Improve handling of explict template 9179 arguments. 9180 * tree.c (mapcar): Return error_mark_node, rather than aborting, 9181 on VAR_DECLS, FUNCTION_DECLS, and CONST_DECLS. 9182 * typeck.c (build_unary_op): Call determine_specialization, rather 9183 than determine_explicit_specialization. 9184 9185Mon Jan 19 13:18:51 1998 Jason Merrill <jason@yorick.cygnus.com> 9186 9187 * cvt.c (build_up_reference): A TARGET_EXPR has side effects. 9188 9189Fri Jan 16 11:40:50 1998 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> 9190 9191 * error.c (dump_decl): For enum tags, output the tag, not its value. 9192 91931998-01-13 Brendan Kehoe <brendan@cygnus.com> 9194 9195 * decl.c (init_decl_processing): Only call init_rtti_processing 9196 FLAG_RTTI is set. 9197 9198Mon Jan 12 01:35:18 1998 Jason Merrill <jason@yorick.cygnus.com> 9199 9200 * init.c (build_new_1): Split out from build_new. 9201 (build_new): Just return a NEW_EXPR. 9202 * expr.c (cplus_expand_expr): Handle NEW_EXPR. 9203 9204 * decl2.c (get_temp_regvar): Tweak. 9205 9206 * cp-tree.h (TREE_CALLS_NEW): Comment out. 9207 * class.c (resolves_to_fixed_type_p): Remove use. 9208 * method.c (build_opfncall): Likewise. 9209 * call.c (build_new_op): Likewise. 9210 9211Wed Jan 7 23:47:13 1998 Jason Merrill <jason@yorick.cygnus.com> 9212 9213 * exception.cc (__eh_alloc, __eh_free): New fns. 9214 (__cp_push_exception, __cp_pop_exception): Use them. 9215 (__uncatch_exception): Call terminate here if no exception. 9216 * except.c (build_terminate_handler): New fn. 9217 (expand_start_catch_block): Use it. 9218 (expand_exception_blocks): Likewise. 9219 (alloc_eh_object): New fn. 9220 (expand_throw): Use it. Protect exception init with terminate. 9221 * typeck.c (build_modify_expr): Remove code that ignores trivial 9222 methods. 9223 9224Mon Dec 22 11:36:27 1997 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 9225 9226 * call.c (add_builtin_candidate): Add default case in enumeration 9227 switch. 9228 (build_new_op): Likewise. 9229 (convert_like): Likewise. 9230 * cvt.c (build_expr_type_conversion): Likewise. 9231 * tree.c (real_lvalue_p): Likewise. 9232 (lvalue_p): Likewise. 9233 (cp_tree_equal): Likewise. 9234 * typeck.c (comptypes): Likewise. 9235 (build_component_ref): Likewise. 9236 (build_function_call_real): Likewise. 9237 (build_binary_op_nodefault): Likewise. 9238 (build_unary_op): Likewise. 9239 (build_modify_expr): Likewise. 9240 * typeck2.c (initializer_constant_valid_p): Likewise. 9241 9242Sun Dec 21 15:59:00 1997 Nick Clifton <nickc@cygnus.com> 9243 9244 * decl2.c (lang_decode_option): Add support for -Wunknown-pragmas. 9245 9246Thu Dec 18 14:51:50 1997 Mark Mitchell <mmitchell@usa.net> 9247 9248 * pt.c (coerce_template_parms): Make sure to digest_init if 9249 possible. 9250 9251 * decl.c (duplicate_decls): Make the newdecl virtual if the 9252 olddecl was, just as is done with other attributes of olddecl. 9253 9254Thu Dec 18 14:43:19 1997 Jason Merrill <jason@yorick.cygnus.com> 9255 9256 * typeck.c (unary_complex_lvalue): Ignore op0 when taking the 9257 address of an OFFSET_REF. 9258 9259 * cp-tree.def: Add AGGR_INIT_EXPR. 9260 * error.c, tree.c, typeck.c: Replace uses of NEW_EXPR with 9261 AGGR_INIT_EXPR where appropriate. 9262 * expr.c (cplus_expand_expr): Likewise. Simplify. 9263 9264 * decl2.c (finish_file): Remove call to register_exception_table. 9265 9266Wed Dec 17 17:08:52 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com> 9267 9268 * pt.c (instantiate_class_template): Don't do injection when 9269 processing_template_decl is true, as pollutes current_binding_level 9270 for base classes. 9271 9272Wed Dec 17 21:17:39 1997 Peter Schmid <schmid@ltoi.iap.physik.tu-darmstadt.de> 9273 9274 * pt.c (maybe_fold_nontype_arg): Add prototype. 9275 9276Tue Dec 16 10:31:20 1997 Jason Merrill <jason@yorick.cygnus.com> 9277 9278 * tree.c (mapcar): Handle TRY_CATCH_EXPR et al. 9279 * error.c (dump_expr): Likewise. 9280 9281Mon Dec 15 12:22:04 1997 Jason Merrill <jason@yorick.cygnus.com> 9282 9283 * typeck.c (build_function_call_real): Remove "inline called before 9284 definition" pedwarn. 9285 9286 * pt.c (coerce_template_parms): Use maybe_fold_nontype_arg. 9287 9288Sun Dec 14 22:34:20 1997 Jason Merrill <jason@yorick.cygnus.com> 9289 9290 * cvt.c (cp_convert_to_pointer): Fix base conversion of pm's. 9291 9292 * pt.c (type_unification_real): Change __null to type void* with 9293 a warning. 9294 9295Sun Dec 14 20:38:35 1997 Mark Mitchell <mmitchell@usa.net> 9296 9297 * call.c (implicit_conversion): Don't call 9298 build_user_type_conversion_1 with a NULL expr, since it will 9299 crash. 9300 9301 * pt.c (unify): Don't try to unify array bounds if either array is 9302 unbounded. 9303 9304Fri Dec 12 16:09:14 1997 Jason Merrill <jason@yorick.cygnus.com> 9305 9306 * errfn.c (cp_pedwarn, cp_pedwarn_at, cp_error_at, cp_warning_at): 9307 Replace extern decls with casts. 9308 9309 * decl.c (expand_start_early_try_stmts): Don't mess with a sequence. 9310 Update last_parm_cleanup_insn. 9311 (store_after_parms): Remove. 9312 * cp-tree.h: Adjust. 9313 9314Thu Dec 11 22:18:37 1997 Jason Merrill <jason@yorick.cygnus.com> 9315 9316 * decl2.c (comdat_linkage): Also set DECL_COMDAT. 9317 (finish_file): Check DECL_COMDAT instead of weak|one_only. 9318 (import_export_vtable): Use make_decl_one_only instead of 9319 comdat_linkage for win32 tweak. 9320 (import_export_decl): Likewise. 9321 * pt.c (mark_decl_instantiated): Likewise. 9322 9323 * decl2.c (finish_file): Lose handling of templates in pending_statics. 9324 9325Thu Dec 11 21:12:09 1997 Jason Merrill <jason@yorick.cygnus.com> 9326 9327 * decl2.c (finish_file): Lose call to expand_builtin_throw. 9328 * except.c (expand_builtin_throw): Remove. 9329 * cp-tree.h: Remove ptr_ptr_type_node. 9330 * decl.c: Likewise. 9331 9332Thu Dec 11 20:43:33 1997 Teemu Torma <tot@trema.com> 9333 9334 * decl.c (ptr_ptr_type_node): Define. 9335 (init_decl_processing): Initialize it. 9336 * cp-tree.h: Declare it. 9337 * exception.cc (__cp_exception_info): Use __get_eh_info. 9338 (__cp_push_exception): Likewise. 9339 (__cp_pop_exception): Likewise. 9340 9341 From Scott Snyder <snyder@d0sgif.fnal.gov>: 9342 * except.c (expand_builtin_throw): Use get_saved_pc_ref instead of 9343 saved_pc. 9344 (init_exception_processing): Removed saved_pc initialization. 9345 9346Wed Dec 10 11:04:45 1997 Jason Merrill <jason@yorick.cygnus.com> 9347 9348 * pt.c (instantiate_decl): Defer all templates but inline functions. 9349 9350Mon Dec 8 23:17:13 1997 Jason Merrill <jason@yorick.cygnus.com> 9351 9352 * init.c (expand_vec_init): Don't fold a list of parameters. 9353 9354 * decl.c (copy_args_p): Handle copy elision for types with virtual 9355 bases. 9356 * call.c (build_over_call): Likewise. 9357 9358Sun Dec 7 22:38:12 1997 Mark Mitchell <mmitchell@usa.net> 9359 9360 * pt.c (lookup_template_function): Copy the template arguments, 9361 not just the list containing them, to the permanent obstack. 9362 9363Sun Dec 7 15:53:06 1997 Jason Merrill <jason@yorick.cygnus.com> 9364 9365 * except.c (expand_start_catch_block): suspend_momentary for the 9366 terminate handler. 9367 9368 * error.c (dump_decl): Handle LOOKUP_EXPR. 9369 9370Sun Dec 7 15:45:07 1997 Mark Mitchell <mmitchell@usa.net> 9371 9372 * rtti.c (build_dynamic_cast): Copy the cast-to type to the 9373 permanent obstack if we are processing a template decl. 9374 * typeck.c (build_static_cast): Likewise. 9375 (build_const_cast): Likewise. 9376 (build_reinterpret_cast): Likewise. 9377 9378 * pt.c (coerce_template_parms): Coerce some expressions, even 9379 when processing_template_decl. 9380 9381Sun Dec 7 01:46:33 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> 9382 9383 * typeck.c (build_binary_op_nodefault, pointer_diff): Symmetric 9384 handling of pointer difference expressions. 9385 9386 * typeck.c (comp_target_types): Comparison of function/method types 9387 is independent of nptrs. 9388 9389Sun Dec 7 01:40:27 1997 Mark Mitchell <mmitchell@usa.net> 9390 9391 * pt.c (tsubst): Avoid creating pointer to reference and 9392 reference to reference types. 9393 9394Sat Dec 6 01:29:37 1997 Jason Merrill <jason@yorick.cygnus.com> 9395 9396 * parse.y (do_id): New nonterminal. 9397 (template_id): Use it. 9398 9399Fri Dec 5 01:17:34 1997 Jason Merrill <jason@yorick.cygnus.com> 9400 9401 * parse.y (template_id): do_identifier for PFUNCNAMEs, too. 9402 * spew.c (yylex): Don't do_identifier here. 9403 * decl2.c (build_expr_from_tree): Revert last change. 9404 9405 * decl2.c (build_expr_from_tree): Expand the name for a method call. 9406 * parse.y (object_template_id): Don't try to take the DECL_NAME. 9407 9408Wed Dec 3 20:02:39 1997 Jason Merrill <jason@yorick.cygnus.com> 9409 9410 * init.c (build_new): Use a TARGET_EXPR instead of SAVE_EXPR for 9411 alloc_expr. 9412 * call.c (build_op_delete_call): Adjust. 9413 9414 * except.c (expand_end_catch_block): Lose rethrow region. 9415 (expand_start_catch_block): Likewise. 9416 (expand_end_catch_block): Don't expand_leftover_cleanups. 9417 9418Wed Dec 3 13:24:04 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com> 9419 9420 * pt.c (tsubst): Remove tree_cons call (places redundant info into 9421 DECL_TEMPLATE_INSTANTIATION). 9422 9423Wed Dec 3 11:44:52 1997 Jason Merrill <jason@yorick.cygnus.com> 9424 9425 * tree.c (is_overloaded_fn): Handle getting a fn template. 9426 (really_overloaded_fn): Likewise. 9427 * error.c (dump_decl): Handle TEMPLATE_ID_EXPRs better. 9428 * pt.c (check_explicit_specialization): Tweak. 9429 (determine_explicit_specialization): Tweak. 9430 9431 * tree.c, cp-tree.h (get_target_expr): New fn. 9432 9433Wed Dec 3 08:47:27 1997 Paul Eggert <eggert@twinsun.com> 9434 9435 * pt.c (check_explicit_specialization): Fix misspelling in 9436 diagnostic: `preceeded'. 9437 * typeck.c (get_delta_difference): Fix misspelling in diagnostic: 9438 `conversiona'. 9439 94401997-12-02 Mark Mitchell <mmitchell@usa.net> 9441 9442 * pt.c (determine_explicit_specialization): Avoid an internal 9443 error for bad specializations. 9444 9445 * method.c (build_overload_value): Handle SCOPE_REF. 9446 9447Tue Dec 2 19:18:50 1997 Mike Stump <mrs@wrs.com> 9448 9449 * class.c (prepare_fresh_vtable): Enable even more complex MI 9450 vtable names. 9451 9452Tue Dec 2 01:37:19 1997 Jason Merrill <jason@yorick.cygnus.com> 9453 9454 * exception.cc (__check_eh_spec): Optimize a bit. 9455 9456 * exception.cc (__cp_pop_exception): Lose handler arg. 9457 * except.c (do_pop_exception): Likewise. 9458 (push_eh_cleanup): Let the cleanup mechanism supply the handler. 9459 (expand_end_catch_block): Likewise. 9460 9461Fri Nov 28 01:58:14 1997 Jason Merrill <jason@yorick.cygnus.com> 9462 9463 * pt.c (check_explicit_specialization): Complain about using a 9464 template-id for a non-specialization. 9465 9466Fri Nov 28 12:35:19 1997 Scott Christley <scottc@net-community.com> 9467 9468 * repo.c: Prototype rindex only if needed. 9469 * xref.c: Likewise. 9470 9471Fri Nov 28 01:56:35 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> 9472 9473 * error.c (dump_decl): Handle TEMPLATE_ID_EXPR. 9474 9475Thu Nov 27 00:59:46 1997 Jason Merrill <jason@yorick.cygnus.com> 9476 9477 * typeck.c (build_const_cast): Handle references here instead of 9478 handing off to convert_to_reference. 9479 9480 * except.c: Lose Unexpected, SetTerminate, SetUnexpected, 9481 TerminateFunctionCall. 9482 (init_exception_processing): Likewise. Terminate et al are now 9483 the fns, not ADDR_EXPRs. 9484 (various): Lose redundant assemble_external calls. 9485 (do_unwind): s/BuiltinReturnAddress/builtin_return_address_fndecl/. 9486 9487 * cp-tree.h (struct lang_decl_flags): Add comdat. 9488 (DECL_COMDAT): New macro. 9489 * decl.c (duplicate_decls): Propagate it. 9490 (cp_finish_decl): Handle it. 9491 * decl2.c (import_export_decl): Just set DECL_COMDAT on VAR_DECLs. 9492 9493 * class.c: Remove static pending_hard_virtuals. 9494 (add_virtual_function): Take pointers to pending_virtuals 9495 and pending_hard_virtuals. 9496 (finish_struct_1): Pass them. Declare pending_hard_virtuals. 9497 9498Wed Nov 26 20:28:49 1997 Jason Merrill <jason@yorick.cygnus.com> 9499 9500 * decl2.c (import_export_vtable): If we support one_only but not 9501 weak symbols, mark instantiated template vtables one_only. 9502 (import_export_decl): Likewise for tinfo functions. 9503 (finish_vtable_vardecl): Also write out vtables from explicitly 9504 instantiated template classes. 9505 * pt.c (mark_class_instantiated): Revert last change. 9506 9507 * except.c (expand_throw): Call mark_used on the destructor. 9508 9509Wed Nov 26 15:13:48 1997 Jeffrey A Law (law@cygnus.com) 9510 9511 * lex.c (lang_init): Enable flag_exceptions by default if no 9512 command line switch was specified. 9513 95141997-11-26 Mark Mitchell <mmitchell@usa.net> 9515 9516 * pt.c (unify): Handle `void' template parameters in 9517 specializations. 9518 9519Wed Nov 26 01:11:24 1997 Jason Merrill <jason@yorick.cygnus.com> 9520 9521 * rtti.c (build_dynamic_cast): Handle template case here. 9522 (build_dynamic_cast_1): Not here. 9523 9524 * typeck2.c (digest_init): Make copies where appropriate. 9525 9526 * decl2.c (delete_sanity): resolve_offset_ref. 9527 9528 * except.c: Call terminate without caching so many bits. 9529 9530 * except.c (expand_start_catch_block): Fix catching a reference 9531 to pointer. 9532 9533Tue Nov 25 11:28:21 1997 Jason Merrill <jason@yorick.cygnus.com> 9534 9535 * init.c (build_new): Copy size to the saveable obstack. 9536 9537 * init.c (build_new): Stick a CLEANUP_POINT_EXPR inside the 9538 TRY_CATCH_EXPR for now. 9539 9540Mon Nov 24 12:15:55 1997 Jason Merrill <jason@yorick.cygnus.com> 9541 9542 * typeck.c (mark_addressable): Don't assume a FUNCTION_DECL 9543 has DECL_LANG_SPECIFIC. 9544 9545 * exception.cc (struct cp_eh_info): Add handlers field. 9546 (__cp_push_exception): Initialize it. 9547 (__cp_pop_exception): Decrement it. Don't pop unless it's 0. 9548 (__throw_bad_exception): Remove. 9549 * except.c (call_eh_info): Add handlers field. 9550 (get_eh_handlers): New fn. 9551 (push_eh_cleanup): Increment handlers. 9552 9553Fri Nov 21 12:22:07 1997 Jason Merrill <jason@yorick.cygnus.com> 9554 9555 * except.c (expand_start_eh_spec): Use the try/catch code. 9556 (expand_end_eh_spec): Likewise. Call __check_eh_spec instead of 9557 doing everything inline. 9558 (init_exception_processing): throw_type_match now takes 9559 const void pointers. 9560 * exception.cc (__check_eh_spec): New fn. 9561 * inc/exception: Neither terminate nor unexpected return. 9562 * decl.c: Make const_ptr_type_node public. 9563 * tinfo2.cc (__throw_type_match_rtti): Take the typeinfos constly. 9564 9565 * except.c (expand_start_catch_block): We only need the rethrow 9566 region for non-sjlj exceptions. 9567 (expand_end_catch_block): Likewise. Use outer_context_label_stack. 9568 9569Thu Nov 20 14:40:17 1997 Jason Merrill <jason@yorick.cygnus.com> 9570 9571 * Make-lang.in (CXX_LIB2FUNCS): Add new op new and op delete objs. 9572 (various.o): Likewise. 9573 * inc/new: Add placement deletes. Add throw specs for default new. 9574 * new.cc (set_new_handler): Move here from libgcc2. 9575 * new1.cc (new (nothrow)): Catch a bad_alloc thrown from the handler. 9576 (new): Move from libgcc2. Throw bad_alloc. 9577 * new2.cc: Move the rest of the op news and op deletes from libgcc2. 9578 * decl.c (init_decl_processing): Update exception specs on new and 9579 delete. 9580 9581 * method.c (build_decl_overload_real): Don't mess with global 9582 placement delete. 9583 9584 * init.c (build_new): Check for null throw spec, not nothrow_t. 9585 9586 * decl.c (duplicate_decls): Don't complain about different exceptions 9587 from an internal declaration. 9588 9589 * call.c (build_op_delete_call): Fix check for member fns again. 9590 9591 * decl2.c (import_export_decl): Interface hackery affects 9592 virtual synthesized methods. 9593 9594Wed Nov 19 18:24:14 1997 Jason Merrill <jason@yorick.cygnus.com> 9595 9596 * decl.c (start_decl): Don't just complain about a mismatched 9597 scope, fix it. 9598 9599 * decl.c (make_implicit_typename): Handle case where t is not 9600 actually from context. 9601 * tree.c (get_type_decl): Lose identifier case. 9602 * spew.c (yylex): Lose useless call to identifier_typedecl_value. 9603 * parse.y (nonnested_type): Just use lookup_name. 9604 (complex_type_name): Just use IDENTIFIER_GLOBAL_VALUE. 9605 9606Wed Nov 19 11:45:07 1997 Michael Tiemann <tiemann@axon.cygnus.com> 9607 9608 * error.c (dump_function_name): Test DECL_LANG_SPECIFIC in case 9609 T was built in C language context (for example, by 9610 output_func_start_profiler). 9611 9612Wed Nov 19 10:39:27 1997 Jason Merrill <jason@yorick.cygnus.com> 9613 9614 * decl.c (make_implicit_typename): New fn. 9615 (lookup_name_real): Use it. Use current_class_type as the context. 9616 9617Mon Nov 17 23:42:03 1997 Bruno Haible <haible@ilog.fr> 9618 9619 * pt.c (do_poplevel): Don't prohibit jumps into this contour. 9620 9621Mon Nov 17 02:01:28 1997 Jason Merrill <jason@yorick.cygnus.com> 9622 9623 * friend.c (do_friend): Warn about non-template friends in templates. 9624 9625 * call.c (build_op_delete_call): Fix handling of inherited delete. 9626 9627 * search.c (dfs_record_inheritance): Ignore template type parms. 9628 9629Sat Nov 15 00:30:51 1997 Jason Merrill <jason@yorick.cygnus.com> 9630 9631 * call.c (build_new_op): Fix copy error. 9632 (build_op_new_call): New fn. 9633 (build_op_delete_call): New fn. 9634 * cp-tree.h: Declare them. 9635 * init.c (build_new): Use them. Support placement delete. 9636 (build_x_delete): Use build_op_delete_call. 9637 (build_delete): Likewise. 9638 * decl2.c (delete_sanity): Likewise. 9639 (coerce_delete_type): Don't complain about placement delete. 9640 9641Thu Nov 13 01:52:36 1997 Jason Merrill <jason@yorick.cygnus.com> 9642 9643 * call.c (build_new_function_call): Remove unused 'obj' parm. 9644 * cp-tree.h, typeck.c: Adjust. 9645 9646 * init.c (build_new): Make the cleanup last longer. 9647 (expand_vec_init): Call do_pending_stack_adjust. 9648 9649Wed Nov 12 11:04:33 1997 Jason Merrill <jason@yorick.cygnus.com> 9650 9651 * pt.c (do_type_instantiation): Fix typo. 9652 (mark_class_instantiated): If we support one_only but not weak 9653 symbols, don't mark this as known. 9654 9655 * init.c (build_new): Handle vec delete in EH cleanup. 9656 9657Wed Nov 12 08:11:55 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com> 9658 9659 * call.c (build_method_call): Call complete_type before checking 9660 for destructor. 9661 9662Sun Nov 9 01:29:55 1997 Jim Wilson (wilson@cygnus.com) 9663 9664 * decl.c (add_block_current_level): Delete. 9665 * init.c (build_vec_delete_1): Delete build_block and 9666 add_block_current_level calls. 9667 9668Wed Nov 12 00:48:16 1997 Jason Merrill <jason@yorick.cygnus.com> 9669 9670 * init.c (build_new): Handle freeing allocated memory when the 9671 constructor throws. 9672 9673 * call.c (build_new_method_call): Fix flags arg. 9674 9675 * pt.c (do_type_instantiation): Don't try to instantiate 9676 member templates. 9677 (mark_decl_instantiated): If we support one_only but not 9678 weak symbols, mark this one_only. 9679 * decl2.c (import_export_vtable): Don't defer handling of vtables 9680 if MULTIPLE_SYMBOL_SPACES. 9681 9682Tue Nov 11 12:02:12 1997 Jason Merrill <jason@yorick.cygnus.com> 9683 9684 * except.c (expand_end_catch_block): Lose call to __sjpopnthrow. 9685 9686Tue Nov 11 02:53:44 1997 Jason Merrill <jason@lasher.cygnus.com> 9687 9688 * except.c (do_pop_exception): Return a value. 9689 9690Mon Nov 10 20:25:31 1997 Jason Merrill <jason@yorick.cygnus.com> 9691 9692 * call.c (build_new_method_call): Handle getting a 9693 TEMPLATE_ID_EXPR around a TEMPLATE_DECL. Don't look for a field 9694 if we got template parms. 9695 * typeck.c (build_x_function_call): Remember the TEMPLATE_ID_EXPR, 9696 not just the args. 9697 * decl2.c (build_expr_from_tree): Tweak last change. 9698 * pt.c (tsubst_copy): Use get_first_fn instead of TREE_VALUE. 9699 (maybe_fold_nontype_arg): Split out from tsubst_copy. 9700 * tree.c (get_first_fn): Just return a TEMPLATE_ID_EXPR. 9701 9702Mon Nov 10 20:08:38 1997 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu> 9703 9704 * pt.c (tsubst_copy): Handle explicit template arguments in 9705 function calls. 9706 * typeck.c (build_x_function_call): Likewise. 9707 * decl2.c (build_expr_from_tree): Lookup function name if it 9708 hasn't been done. 9709 9710 * pt.c (tsubst): Instantiate template functions properly when 9711 template parameter does not appear in function arguments and return 9712 type. 9713 (comp_template_args): Handle member templates required by tsubst. 9714 9715Mon Nov 10 20:08:38 1997 Jason Merrill <jason@yorick.cygnus.com> 9716 9717 * decl.c (grokdeclarator): Tweak conditions for pedwarn in 9718 previous change. 9719 9720Mon Nov 10 20:08:29 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> 9721 9722 * pt.c (coerce_template_parms): Tweak error message. 9723 9724 * decl.c (grokdeclarator): If -Wreturn-type, warn everytime a 9725 return type defaults to `int', even if there are storage-class 9726 specifiers. 9727 9728Mon Nov 10 03:04:20 1997 Jason Merrill <jason@yorick.cygnus.com> 9729 9730 Complete nested exception support. 9731 * except.c (do_pop_exception): Split out... 9732 (push_eh_cleanup): From here. Handle the EH region by hand. 9733 (expand_start_catch_block): Add a new level for the catch parm. 9734 Move the rethrow region outside the two cleanup regions. 9735 Protect the initializer for the catch parm with terminate. 9736 (expand_end_catch_block): Likewise. End the region for the eh_cleanup. 9737 * exception.cc (__cp_pop_exception): Now takes two parms. Handle 9738 popping off the middle of the stack. 9739 * tree.c (lvalue_p, real_lvalue_p): Handle TRY_CATCH_EXPR, 9740 WITH_CLEANUP_EXPR, and UNSAVE_EXPR. 9741 (build_cplus_new): Only wrap CALL_EXPRs. 9742 * init.c (expand_default_init): Handle a TRY_CATCH_EXPR around 9743 the constructor call. 9744 9745Sun Nov 9 18:00:26 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 9746 9747 * Make-lang.in (c++.distdir): Make inc subdirectory. 9748 9749Fri Nov 7 11:57:28 1997 Jason Merrill <jason@yorick.cygnus.com> 9750 9751 * decl2.c (finish_file): Put back some code. 9752 9753Thu Nov 6 11:28:14 1997 Jason Merrill <jason@yorick.cygnus.com> 9754 9755 * decl2.c (finish_file): Remove redundant code. 9756 * method.c (emit_thunk): Don't let the backend defer generic thunks. 9757 9758Wed Nov 5 23:52:50 1997 Jason Merrill <jason@yorick.cygnus.com> 9759 9760 * except.c (call_eh_info): Split out... 9761 (push_eh_info): From here. 9762 (expand_builtin_throw): Use it. 9763 (expand_start_catch_block): Move region start back. 9764 9765Tue Nov 4 13:45:10 1997 Doug Evans <devans@canuck.cygnus.com> 9766 9767 * lex.c (MULTIBYTE_CHARS): #undef if cross compiling. 9768 (real_yylex): Record wide strings using target endianness, not host. 9769 97701997-11-03 Brendan Kehoe <brendan@lisa.cygnus.com> 9771 9772 * repo.c (rindex): Add decl unconditionally. 9773 (get_base_filename, open_repo_file): Don't cast rindex. 9774 * xref.c (rindex): Add decl unconditionally. 9775 (index): Remove unused decl. 9776 (open_xref_file): Don't cast rindex. 9777 9778Sun Nov 2 15:04:12 1997 Jason Merrill <jason@yorick.cygnus.com> 9779 9780 * class.c (build_vbase_path): Propagate the result type properly. 9781 97821997-11-01 Brendan Kehoe <brendan@lisa.cygnus.com> 9783 9784 * except.c (expand_builtin_throw) [!DWARF2_UNWIND_INFO]: Replace 9785 remaining use of saved_throw_type with a call to get_eh_type. 9786 97871997-10-31 Brendan Kehoe <brendan@lisa.cygnus.com> 9788 9789 * lex.c (FILE_NAME_NONDIRECTORY): Delete macro. 9790 (file_name_nondirectory): New function, doing the same as the macro. 9791 (set_typedecl_interface_info): Use it instead of the macro. 9792 (check_newline): Likewise. 9793 (handle_cp_pragma): Likewise. 9794 9795 * repo.c (get_base_filename): Cast result of rindex to char*. 9796 (open_repo_file): Likewise. 9797 * xref.c (open_xref_file): Likewise. 9798 * error.c (dump_char): Make its arg int, not char. 9799 9800 * except.c (push_eh_info): Pass the number of fields - 1 down, not 9801 the exact number of fields. 9802 9803Fri Oct 31 01:47:57 1997 Jason Merrill <jason@yorick.cygnus.com> 9804 9805 Support for nested exceptions. 9806 * tinfo2.cc (__is_pointer): New fn. 9807 * exception.cc (struct cp_eh_info): Define. 9808 (__cp_exception_info, __uncatch_exception): New fns. 9809 (__cp_push_exception, __cp_pop_exception): New fns. 9810 * except.c: Lose saved_throw_{type,value,cleanup,in_catch}. 9811 Lose empty_fndecl. 9812 (init_exception_processing): Likewise. __eh_pc is now external. 9813 (push_eh_info): New fn. 9814 (get_eh_{info,value,type,caught}): New fns. 9815 (push_eh_cleanup): Just call __cp_pop_exception. 9816 (expand_start_catch_block): Use push_eh_info. Start the eh region 9817 sooner. 9818 (expand_end_eh_spec): Use push_eh_info. 9819 (expand_throw): Call __cp_push_exception to set up the exception info. 9820 Just pass the destructor or 0 as the cleanup. Call __uncatch_exception 9821 when we rethrow. 9822 (expand_builtin_throw): Don't refer to empty_fndecl. 9823 9824Thu Oct 23 02:01:30 1997 Jason Merrill <jason@yorick.cygnus.com> 9825 9826 * pt.c (instantiate_decl): SET_DECL_IMPLICIT_INSTANTIATION on new decl. 9827 98281997-10-22 Brendan Kehoe <brendan@cygnus.com> 9829 9830 * method.c (build_template_parm_names, build_decl_overload_real): 9831 Add static to definitions. 9832 * pt.c (add_to_template_args, note_template_header, 9833 processing_explicit_specialization, type_unification_real): Likewise. 9834 ({determine,check}_explicit_specialization): Use a single string for 9835 error messages. 9836 9837Mon Oct 20 12:06:34 1997 Jason Merrill <jason@yorick.cygnus.com> 9838 9839 * except.c (expand_exception_blocks): Call do_pending_stack_adjust. 9840 (expand_end_catch_block): Likewise. 9841 (expand_end_eh_spec): Likewise. 9842 9843Mon Oct 20 11:44:20 1997 Mark Mitchell <mmitchell@usa.net> 9844 9845 * decl.c (duplicate_decls): Handle template specializations 9846 correctly. 9847 * error.c (dump_function_name): Fix printing of specializations of 9848 member functions that are not member templates. 9849 * cp-tree.h (processing_specialization): Make global. 9850 * pt.c (processing_specialization): Likewise. 9851 * lex.c (cons_up_default_function): Save and restore 9852 processing_specialization to avoid confusion. 9853 9854Mon Oct 20 10:52:22 1997 Jason Merrill <jason@yorick.cygnus.com> 9855 9856 * decl.c (init_decl_processing): Give null_node unknown* type. 9857 * typeck.c (comp_target_types): Handle UNKNOWN_TYPE. 9858 (common_type): Likewise. 9859 * error.c (args_as_string): Recognize null_node. 9860 9861Sun Oct 19 09:13:01 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 9862 9863 * typeck.c (rationalize_conditional_expr): Handle {MIN,MAX}_EXPR. 9864 (unary_complex_lvalue): Call it for {MIN,MAX}_EXPR. 9865 9866 * decl.c (init_decl_processing): Call using_eh_for_cleanups. 9867 9868 * Make-lang.in (g++): Include prefix.o. 9869 9870Thu Oct 16 15:31:09 1997 Judy Goldberg <judygold@sanwafp.com> 9871 9872 * pt.c (determine_explicit_specialization): Initialize "dummy" 9873 to keep Purify quiet. 9874 9875Thu Oct 16 00:14:48 1997 Jason Merrill <jason@yorick.cygnus.com> 9876 9877 * method.c (build_overload_value): Handle TEMPLATE_CONST_PARMs here. 9878 (build_overload_int): Not here. 9879 9880Wed Oct 15 00:35:28 1997 Mike Stump <mrs@wrs.com> 9881 9882 * class.c (build_type_pathname): Remove. 9883 (prepare_fresh_vtable): Fix problem with complex MI vtable names. 9884 98851997-10-14 Brendan Kehoe <brendan@lisa.cygnus.com> 9886 9887 * parse.y (unary_expr): Give a pedwarn if someone tries to use the 9888 &&label GNU extension. 9889 9890Tue Oct 14 12:01:00 1997 Mark Mitchell <mmitchell@usa.net> 9891 9892 * decl.c (pushtag): Unset DECL_ASSEMBLER_NAME before setting it, 9893 so as to avoid incorrect manglings. 9894 * method.c (build_decl_overload_real): Don't mangle return types 9895 for constructors. 9896 9897Tue Oct 14 11:46:14 1997 Jason Merrill <jason@yorick.cygnus.com> 9898 9899 * cp-tree.h (scratchalloc, build_scratch_list, make_scratch_vec, 9900 scratch_tree_cons): Define as macros for now. 9901 * call.c, class.c, cvt.c, decl.c, decl2.c, except.c, expr.c, init.c, 9902 lex.c, method.c, parse.y, pt.c, rtti.c, search.c, tree.c, typeck.c, 9903 typeck2.c: Use them and the expression_obstack variants. 9904 9905Mon Oct 13 17:41:26 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com> 9906 9907 * decl.c (store_return_init): Allow classes with explicit ctors to 9908 be used with the named return values extension. 9909 9910Fri Oct 10 12:21:11 1997 Jason Merrill <jason@yorick.cygnus.com> 9911 9912 * pt.c (instantiate_decl): Fix previous change. 9913 9914Thu Oct 9 12:08:21 1997 Jason Merrill <jason@yorick.cygnus.com> 9915 9916 * pt.c (tsubst): Fix thinko. 9917 (instantiate_decl): Really use the original template. 9918 9919 * call.c (build_new_method_call): Use simple constructor_name for 9920 error messages. 9921 9922Wed Oct 8 22:44:42 1997 Jeffrey A Law <law@cygnus.com> 9923 9924 * method.c (build_underscore_int): Don't use ANSI specific 9925 features. 9926 9927Wed Oct 8 00:18:22 1997 Jason Merrill <jason@yorick.cygnus.com> 9928 9929 * decl2.c (finish_prevtable_vardecl): Check DECL_REALLY_EXTERN 9930 for our key method; it might have been inlined by -O3. 9931 9932Tue Oct 7 23:00:12 1997 Mark Mitchell <mmitchell@usa.net> 9933 9934 * decl.c (make_typename_type): Do not try to call lookup_field for 9935 non-aggregate types. 9936 9937Tue Oct 7 22:52:10 1997 Jason Merrill <jason@yorick.cygnus.com> 9938 9939 * typeck.c (build_reinterpret_cast): Tweak. 9940 9941Tue Oct 7 22:45:31 1997 Alexandre Oliva <oliva@dcc.unicamp.br> 9942 9943 * typeck.c (build_reinterpret_cast): Converting a void pointer 9944 to function pointer with a reinterpret_cast produces a warning 9945 if -pedantic is issued. 9946 9947Tue Oct 7 22:43:43 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> 9948 9949 * typeck.c (c_expand_return): Don't warn about returning a 9950 reference-type variable as a reference. 9951 9952Tue Oct 7 21:11:22 1997 Jason Merrill <jason@yorick.cygnus.com> 9953 9954 * method.c (build_static_name): Fix typo. 9955 99561997-10-07 Brendan Kehoe <brendan@lisa.cygnus.com> 9957 9958 * decl.c (duplicate_decls): Make sure DECL_LANG_SPECIFIC is set on 9959 OLDDECL before we try to do DECL_USE_TEMPLATE. 9960 9961Tue Oct 7 00:48:36 1997 Jason Merrill <jason@yorick.cygnus.com> 9962 9963 * decl.c (duplicate_decls): Don't warn about template instances. 9964 9965 * typeck.c (mark_addressable): Lose ancient code that unsets 9966 DECL_EXTERNAL. 9967 9968 * pt.c (do_decl_instantiation): Lose support for instantiating 9969 non-templates. 9970 9971 * call.c (build_new_function_call): Fix handling of null explicit 9972 template args. 9973 (build_new_method_call): Likewise. 9974 9975Mon Oct 6 23:44:34 1997 Mark Mitchell <mmitchell@usa.net> 9976 9977 * method.c (build_underscore_int): Fix typo. 9978 99791997-10-06 Brendan Kehoe <brendan@lisa.cygnus.com> 9980 9981 * tree.c (print_lang_statistics): #if 0 call to 9982 print_inline_obstack_statistics until its definition is checked in. 9983 9984Mon Oct 6 09:27:29 1997 Jason Merrill <jason@yorick.cygnus.com> 9985 9986 * decl2.c (finish_file): Move dump_tree_statistics to end. 9987 9988 * pt.c (instantiate_decl): Look for the original template. 9989 (tsubst): Set DECL_IMPLICIT_INSTANTIATION on partial instantiations 9990 of member templates. 9991 9992Wed Oct 1 08:41:38 1997 Jason Merrill <jason@yorick.cygnus.com> 9993 9994 * Makefile.in (g++FAQ.*): New rules. 9995 (CONFLICTS): Update. 9996 * g++FAQ.texi: Moved from libg++. 9997 9998 * parse.y (PFUNCNAME): Only specify the type once. 9999 100001997-10-01 Brendan Kehoe <brendan@lasher.cygnus.com> 10001 10002 * lex.c (real_yylex): Clean up the code to fully behave the way 10003 the c-lex.c parser does for complex and real numbers. 10004 10005Tue Sep 30 08:51:36 1997 Jason Merrill <jason@yorick.cygnus.com> 10006 10007 * method.c (build_decl_overload_real): Reformat. 10008 10009Tue Sep 30 00:18:26 1997 Jason Merrill <jason@yorick.cygnus.com> 10010 10011 * method.c (synthesize_method): If at_eof, determine our linkage. 10012 100131997-09-29 Paul Eggert <eggert@twinsun.com> 10014 10015 * lex.c (real_yylex): Treat `$' just like `_', except issue a 10016 diagnostic if !dollars_in_ident or if pedantic. 10017 10018 * lang-specs.h (@c++): -ansi no longer implies -$. 10019 10020 * decl2.c (lang_decode_option): 10021 -traditional and -ansi now do not mess with 10022 dollars_in_ident. 10023 10024Mon Sep 29 19:57:51 1997 H.J. Lu <hjl@gnu.ai.mit.edu> 10025 10026 * Makefile.in (parse.o, decl.o): Also depend on 10027 $(srcdir)/../except.h $(srcdir)/../output.h. 10028 (decl2.o): Also depend on $(srcdir)/../expr.h ../insn-codes.h 10029 $(srcdir)/../except.h $(srcdir)/../output.h. 10030 (typeck.o, init.o): Also depend on $(srcdir)/../expr.h 10031 ../insn-codes.h. 10032 10033 * call.c, cp-tree.h, decl.c, tree.c: Finish prototyping. 10034 10035 * expr.c (cplus_expand_expr): Make it static. 10036 10037 * decl2.c, init.c, typeck.c: Include "expr.h". 10038 (expand_expr): Use proper values when calling the function. 10039 10040Mon Sep 29 11:05:54 1997 Alexandre Oliva <oliva@dcc.unicamp.br> 10041 10042 * lang-options.h: New -Wold-style-cast flag. 10043 * cp-tree.h (warn_old_style_cast): New variable. 10044 * decl2.c (warn_old_style_cast): Likewise. 10045 (lang_decode_option): Support -Wold-style-cast. 10046 (reparse_absdcl_as_casts): Produce old-style-cast warning. 10047 10048Mon Sep 29 09:20:53 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com> 10049 10050 * decl.c (cp_finish_decl): Allow expand_aggr_init to set 10051 TREE_USED, reset value based on already_used. 10052 10053 * init.c (expand_member_init): Revert change. 10054 10055Mon Sep 29 08:57:53 1997 Jason Merrill <jason@yorick.cygnus.com> 10056 10057 * cp-tree.h, decl.c, decl2.c, pt.c: 10058 Lose DECL_C_STATIC and DECL_PUBLIC. Don't pretend statics are public. 10059 10060 * decl2.c (lang_decode_option): Add missing ;. 10061 10062Sat Sep 27 16:22:48 1997 Jason Merrill <jason@yorick.cygnus.com> 10063 10064 * friend.c (do_friend): Disable injection for all template-derived 10065 decls. 10066 * decl2.c (lang_decode_option): Handle -fguiding-decls. 10067 * parse.y (notype_template_declarator): New nonterminal. 10068 (direct_notype_declarator): Use it. 10069 (complex_direct_notype_declarator): Likewise. 10070 (object_template_id): Accept any kind of identifier after TEMPLATE. 10071 (notype_qualified_id): Don't add template declarators here. 10072 10073Sat Sep 27 16:21:58 1997 Mark Mitchell <mmitchell@usa.net> 10074 10075 * call.c (add_template_candidate): Add explicit_targs parameter. 10076 (build_scoped_method_call): Use it. 10077 (build_overload_call_real): Likewise. 10078 (build_user_type_conversion_1): Likewise. 10079 (build_new_function_call): Likewise. 10080 (build_object_call): Likewise. 10081 (build_new_op): Likewise. 10082 (build_new_method_call): Likewise. 10083 (build_new_function_call): Handle TEMPLATE_ID_EXPR. 10084 (build_new_method_call): Likewise. 10085 10086 * class.c (finish_struct_methods): Add specialization pass to 10087 determine which methods were specializing which other methods. 10088 (instantiate_type): Handle TEMPLATE_ID_EXPR. 10089 10090 * cp-tree.def (TEMPLATE_ID_EXPR): New tree code. 10091 10092 * cp-tree.h (name_mangling_version): New variable. 10093 (flag_guiding_decls): Likewise. 10094 (build_template_decl_overload): New function. 10095 (begin_specialization): Likewise. 10096 (reset_specialization): Likewise. 10097 (end_specialization): Likewise. 10098 (determine_explicit_specialization): Likewise. 10099 (check_explicit_specialization): Likewise. 10100 (lookup_template_function): Likewise. 10101 (fn_type_unification): Add explicit_targs parameter. 10102 (type_unification): Likewise. 10103 10104 * decl.c (duplicate_decls): Add smarts for explicit 10105 specializations. 10106 (grokdeclarator): Handle TEMPLATE_ID_EXPR, and function 10107 specializations. 10108 (grokfndecl): Call check_explicit_specialization. 10109 10110 * decl2.c (lang_decode_option): Handle -fname-mangling-version. 10111 (build_expr_from_tree): Handle TEMPLATE_ID_EXPR. 10112 (check_classfn): Handle specializations. 10113 10114 * error.c (dump_function_name): Print specialization arguments. 10115 10116 * friend.c (do_friend): Don't call pushdecl for template 10117 instantiations. 10118 10119 * init.c (build_member_call): Handle TEMPLATE_ID_EXPR. 10120 10121 * lang-options.h: Add -fname-mangling-version, -fguiding-decls, 10122 and -fno-guiding-decls. 10123 10124 * lex.c (identifier_type): Return PFUNCNAME for template function 10125 names. 10126 10127 * method.c (build_decl_overload_real): New function. 10128 (build_template_parm_names): New function. 10129 (build_overload_identifier): Use it. 10130 (build_underscore_int): New function. 10131 (build_overload_int): Use it. Add levels for template 10132 parameters. 10133 (build_overload_name): Likewise. Also, handle TYPENAME_TYPEs. 10134 (build_overload_nested_names): Handle template type parameters. 10135 (build_template_decl_overload): New function. 10136 10137 * parse.y (YYSTYPE): New ntype member. 10138 (nested_name_specifier): Use it. 10139 (nested_name_specifier_1): Likewise. 10140 (PFUNCNAME): New token. 10141 (template_id, object_template_id): New non-terminals. 10142 (template_parm_list): Note specializations. 10143 (template_def): Likewise. 10144 (structsp): Likewise. 10145 (fn.def2): Handle member template specializations. 10146 (component_decl_1): Likewise. 10147 (direct_notype_declarator): Handle template-ids. 10148 (component_decl_1): Likewise. 10149 (direct_notype_declarator): Handle template-ids. 10150 (primary): Handle TEMPLATE_ID_EXPR, and template-ids. 10151 10152 * pt.c (processing_specializations): New variable. 10153 (template_header_count): Likewise. 10154 (type_unification_real): New function. 10155 (processing_explicit_specialization): Likewise. 10156 (note_template_header): Likewise. 10157 (is_member_template): Handle specializations. 10158 (end_template_decl): Call reset_specialization. 10159 (push_template_decl): Handle member template specializations. 10160 (tsubst): Likewise. 10161 (tsubst_copy): Handle TEMPLATE_ID_EXPR. 10162 (instantiate_template): Handle specializations. 10163 (instantiate_decl): Likewise. 10164 (fn_type_unification): Handle explicit_targs. 10165 (type_unification): Likewise. Allow incomplete unification 10166 without an error message, if allow_incomplete. 10167 (get_bindings): Use new calling sequence for fn_type_unification. 10168 10169 * spew.c (yylex): Handle PFUNCNAME. 10170 10171 * tree.c (is_overloaded_fn): Handle TEMPLATE_ID_EXPR. 10172 (really_overloaded_fn): Likewise. 10173 (get_first_fn): Handle function templates. 10174 10175 * typeck.c (build_x_function_call): Use really_overloaded_fn. 10176 Handle TEMPLATE_ID_EXPR. 10177 (build_x_unary_op): Likewise. 10178 (build_unary_op): Likewise. 10179 (mark_addressable): Templates whose address is taken are marked 10180 as used. 10181 101821997-09-25 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> 10183 10184 * decl.c (init_decl_processing): Declare __builtin_constant_p as 10185 accepting any kind of type, not only int. 10186 10187Fri Sep 26 00:22:56 1997 Jason Merrill <jason@yorick.cygnus.com> 10188 10189 * search.c (get_matching_virtual): Notice virtual bases when sorrying 10190 about covariant returns. 10191 10192 * parse.y (member_init): Also imply typename here. Remove ancient 10193 extension for initializing base members. 10194 10195Thu Sep 25 11:11:13 1997 Jason Merrill <jason@yorick.cygnus.com> 10196 10197 Handle multi-level typenames and implicit typename in base list. 10198 * parse.y (typename_sub{,[0-2]}): New rules. 10199 (structsp, rule TYPENAME_KEYWORD): Use typename_sub. 10200 (nonnested_type): New rule. 10201 (complete_type_name): Use it. 10202 (base_class.1): Use typename_sub and nonnested_type. 10203 (nested_name_specifier): Don't elide std:: here. 10204 * decl.c (make_typename_type): Handle getting a type for NAME. 10205 (lookup_name_real): Turn std:: into :: here. 10206 10207 Rvalue conversions were removed in London. 10208 * call.c (is_subseq): Don't consider lvalue transformations. 10209 (build_conv): LVALUE_CONV and RVALUE_CONV get IDENTITY_RANK. 10210 (joust): Re-enable ?: kludge. 10211 102121997-09-22 Brendan Kehoe <brendan@lisa.cygnus.com> 10213 10214 * decl.c (start_function): Up warning of no return type to be a 10215 pedwarn. 10216 10217Mon Sep 22 14:15:34 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com> 10218 10219 * init.c (expand_member_init): Don't set TREE_USED. 10220 * decl.c (cp_finish_decl): Mark decls used if type has TREE_USED 10221 set,don't clear TREE_USED wholesale. 10222 10223Sat Sep 20 15:31:00 1997 Jason Merrill <jason@yorick.cygnus.com> 10224 10225 * call.c (build_over_call): Do require_complete_type before 10226 build_cplus_new. 10227 10228Thu Sep 18 16:47:52 1997 Jason Merrill <jason@yorick.cygnus.com> 10229 10230 * search.c (lookup_field): Call complete_type in all cases. 10231 10232 * decl.c (finish_function): Just warn about flowing off the end. 10233 10234Wed Sep 17 10:31:25 1997 Jason Merrill <jason@yorick.cygnus.com> 10235 10236 * decl.c (grokparms): Don't bash a permanent list node if we're 10237 in a function. 10238 102391997-09-17 Brendan Kehoe <brendan@lisa.cygnus.com> 10240 10241 * Makefile.in (CONFLICTS): Fix s/r conflict count to 18. 10242 10243Tue Sep 16 14:06:56 1997 Jason Merrill <jason@yorick.cygnus.com> 10244 10245 * call.c (build_new_op): Give better error for syntactically 10246 correct, but semantically invalid, use of undeclared template. 10247 10248 * call.c (compare_qual): Handle pmfs. 10249 10250 * decl.c (store_parm_decls): last_parm_cleanup_insn is the insn 10251 after the exception spec. 10252 10253Mon Sep 15 11:52:13 1997 Jason Merrill <jason@yorick.cygnus.com> 10254 10255 * call.c (null_ptr_cst_p): Integer type, not integral type. 10256 10257 * call.c (joust): Disable warnings until they can be moved to the 10258 right place. 10259 10260Fri Sep 12 16:11:13 1997 Per Bothner <bothner@cygnus.com> 10261 10262 * Makefile.in, config-lang.in: Convert to autoconf. 10263 10264Thu Sep 11 17:14:55 1997 Jason Merrill <jason@yorick.cygnus.com> 10265 10266 * decl.c (lookup_name_real): Add implicit 'typename' to types from 10267 base classes. 10268 10269 * pt.c (most_specialized_class): Fix typo. 10270 (tsubst): Move constant folding to TREE_VEC case. 10271 10272Thu Sep 11 10:08:45 1997 Mark Mitchell <mmitchell@usa.net> 10273 10274 * pt.c (do_poplevel): Don't warn about unused local variables 10275 while processing_template_decl since we don't always know whether 10276 or not they will need constructing/destructing. 10277 10278 * pt.c (uses_template_parms): Check the values of an enumeration 10279 type to make sure they don't depend on template parms. 10280 10281 * decl.c (make_typename_type): Don't lookup the field if the 10282 context uses template parms, even if we're not 10283 processing_template_decl at the moment. 10284 10285 * pt.c (coerce_template_parms): Avoid looking at the 10286 TYPE_LANG_DECL portion of a typename type, since there won't be 10287 one. 10288 (tsubst): Do constant folding as necessary to make sure that 10289 arguments passed to lookup_template_class really are constants. 10290 10291Wed Sep 10 11:21:55 1997 Jason Merrill <jason@yorick.cygnus.com> 10292 10293 * except.c (expand_builtin_throw): #ifndef DWARF2_UNWIND_INFO. 10294 * decl2.c (finish_file): Only register exception tables if we 10295 need to. 10296 10297 * decl.c (init_decl_processing): Add __builtin_[fs]p. 10298 10299Tue Sep 9 19:49:38 1997 Jason Merrill <jason@yorick.cygnus.com> 10300 10301 * pt.c (unify): Just return 0 for a TYPENAME_TYPE. 10302 10303Tue Sep 9 17:57:25 1997 Mark Mitchell <mmitchell@usa.net> 10304 10305 * error.c (dump_decl): Avoid crashing when presented with a 10306 uninitialized constant, as can occur with a template parameter. 10307 (dump_expr): Make sure that there are enough levels of 10308 current_template_parms before we start diving through them. 10309 103101997-09-09 Brendan Kehoe <brendan@lisa.cygnus.com> 10311 10312 * typeck.c (build_indirect_ref): Heed FLAG_VOLATILE similar to 10313 c-typeck.c. 10314 10315Tue Sep 9 09:36:39 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com> 10316 10317 * except.c (expand_throw): Call build_delete for all 10318 exception types, not just objects with destructors. 10319 10320Mon Sep 8 02:33:20 1997 Jody Goldberg <jodyg@idt.net> 10321 10322 * decl.c (current_local_enum): Remove static. 10323 * pt.c (tsubst_enum): Save and restore value of current_local_enum 10324 in case template is expanded in enum decl. 10325 (instantiate_class_template): Use new tsubst_enum signature. 10326 (tsubst_expr): Likewise. 10327 10328Mon Sep 8 01:21:43 1997 Mark Mitchell <mmitchell@usa.net> 10329 10330 * pt.c (begin_member_template_processing): Take a function as 10331 argument, not a set of template arguments. Use the template 10332 parameters, rather than the arguments. Handle non-type parameters 10333 correctly. Push a binding level for the parameters so that multiple 10334 member templates using the same parameter names can be declared. 10335 (end_member_template_processing): Pop the binding level. 10336 (push_template_decl): Mark member templates as static when 10337 appropriate. 10338 10339 * lex.c (do_pending_inlines): Pass the function, not its template 10340 arguments, to begin_member_template_processing. 10341 (process_next_inline): Likewise. 10342 (do_pending_defargs): Likewise. 10343 10344 * error.c (dump_expr): Obtain the correct declaration for a 10345 TEMPLATE_CONST_PARM. 10346 10347 * call.c (add_template_conv_candidate): New function. 10348 (build_object_call): Handle member templates, as done in the other 10349 build_ functions. 10350 10351Sat Sep 6 10:20:27 1997 Mark Mitchell <mmitchell@usa.net> 10352 10353 * decl.c (replace_defag): Undo previous change. 10354 * lex.c (do_pending_defargs): Deal with member templates. 10355 10356 * pt.c (is_member_template): Avoid crashing when passed a 10357 non-function argument. 10358 10359Fri Sep 5 17:27:38 1997 Jason Merrill <jason@yorick.cygnus.com> 10360 10361 * class.c (grow_method): Remove check for redeclaration. 10362 10363Fri Sep 5 01:37:17 1997 Mark Mitchell <mmitchell@usa.net> 10364 10365 * cp-tree.h (INNERMOST_TEMPLATE_PARMS): New macro. 10366 (DECL_INNERMOST_TEMPLATE_PARMS): Likewise. 10367 (PRIMARY_TEMPLATE_P): Use it. 10368 * call.c (build_overload_call_real): Use it. 10369 * class.c (instantiate_type): Likewise. 10370 * decl.c (decls_match): Likewise. 10371 * method.c (build_overload_identifier): Likewise. 10372 * pt.c (push_template_decl): Likewise. 10373 (classtype_mangled_name): Likewise. 10374 (lookup_template_class): Likewise. 10375 10376 * cp-tree.h (DECL_NTPARMS): Change name from DECL_NT_PARMS to 10377 DECL_NTPARMS to conform to usage elsewhere. 10378 * call.c (add_template_candidate): Likewise. 10379 * class.c (instantiate_type): Likewise. 10380 * pt.c (instantiate_template): Likewise. 10381 (get_bindings): Likewise. 10382 10383 * class.c (grow_method): Use DECL_FUNCTION_TEMPLATE_P instead of 10384 is_member_template. 10385 10386 * pt.c (unify): Undo changes to allow multiple levels of template 10387 parameters. 10388 (type_unification): Likewise. 10389 (fn_type_unification): Likewise. 10390 (get_class_bindings): Likewise. 10391 * cp-tree.h (Likewise). 10392 10393 * decl.c (replace_defarg): Check that the type of the default 10394 parameter does not invlove a template type before complaining 10395 about the initialization. 10396 10397 * error.c (dump_expr): Deal with template constant parameters in 10398 member templates correctly. 10399 10400 * pt.c (is_member_template): Deal with class specializations 10401 correctly. 10402 (tsubst): Handle "partial instantiation" of member templates 10403 correctly. 10404 10405Wed Sep 3 12:30:24 1997 Mark Mitchell <mmitchell@usa.net> 10406 10407 * pt.c (type_unification): Change calling sequence to allow for 10408 multiple levels of template parameters. 10409 (tsubst_expr): Likewise. 10410 (tsubst): Likewise. 10411 (tsubst_copy): Likewise. 10412 (instantiate_template): Likewise. 10413 (unify): Likewise. 10414 * call.c (build_overload_call_real): Use it. 10415 (add_builtin_candidate): Use it. 10416 (build_new_method_call): Use it. 10417 * class.c (instantiate_type): Use it. 10418 * decl.c (grokdeclarator): Use it. 10419 * decl2.c (finish_file): Use it. 10420 * method.c (build_overload_identifier): Use it. 10421 10422 * call.c (add_template_candidate): Add additional parameter for 10423 the function return type. Call fn_type_unification istead of 10424 type_unification. 10425 (build_user_type_conversion_1): Handle member templates. 10426 (build_new_function_call): Likewise. 10427 (build_new_op): Likewise. 10428 (build_new_method_call): Likewise. 10429 10430 * class.c (grow_method): Don't give an error message indicating 10431 that two member templates with the same name are ambiguous. 10432 (finish_struct): Treat member template functions just like member 10433 functions. 10434 10435 * cp-tree.h (check_member_template): Add declaration. 10436 (begin_member_template_processing): Likewise. 10437 (end_member_template_processing): Likewise. 10438 (fn_type_unification): Likewise. 10439 (is_member_template): Likewise. 10440 (tsubst): Change prototype. 10441 (tsubst_expr): Likewise. 10442 (tsubst_copy): Likewise. 10443 (instantiate_template): Likewise. 10444 (get_bindings): Likewise. 10445 10446 * decl.c (decls_match): Handle multiple levels of template 10447 parameters. 10448 (pushdecl): Handle template type params just like other type 10449 declarations. 10450 (push_class_level_binding): Return immediately if the 10451 class_binding_level is NULL. 10452 (grokfndecl): If check_classfn() returns a member_template, use 10453 the result of the template, not the template itself. 10454 10455 * decl2.c (check_member_template): New function. Check to see 10456 that the entity declared to be a member template can be one. 10457 (check_classfn): Allow redeclaration of member template functions 10458 with different types; the new functions can be specializations or 10459 explicit instantiations. 10460 10461 * error.c (dump_decl): Handle multiple levels of template 10462 parameters. 10463 (dump_function_decl): Update to handle function templates. 10464 10465 * lex.c (do_pending_inlines): Set up template parameter context 10466 for member templates. 10467 (process_next_inline): Likewise. 10468 10469 * method.c (build_overload_identifier): Adjust for multiple levels 10470 of template parameters. 10471 10472 * parse.y (fn.def2): Add member templates. 10473 (component_decl_1): Likewise. 10474 10475 * pt.c (begin_member_template_processing): New function. 10476 (end_member_template_processing): Likewise. 10477 (is_member_template): Likewise. 10478 (fn_type_unification): Likewise. 10479 (current_template_parms): Return a vector of all the template 10480 parms, not just the innermost level of parms. 10481 (push_template_decl): Deal with the possibility of member 10482 templates. 10483 (lookup_template_class): Likewise. 10484 (uses_template_parms): Likewise. 10485 (tsubst): Modify processing to TEMPLATE_TYPE_PARM and 10486 TEMPLATE_CONST_PARM to deal with multiple levels of template 10487 arguments. Add processing of TEMPLATE_DECL to produce new 10488 TEMPLATE_DECLs from old ones. 10489 (do_decl_instantiation): Handle member templates. 10490 10491 * search.c (lookup_fnfields_1): Handle member template conversion 10492 operators. 10493 10494 * tree.c (cp_tree_equal): Check the levels, as well as the 10495 indices, of TEMPLATE_CONST_PARMs. 10496 10497 * typeck.c (comptypes): Check the levels, as well as the indices, 10498 fo TEMPLATE_TYPE_PARMs. 10499 (build_x_function_call): Treat member templates like member 10500 functions. 10501 10502Wed Sep 3 11:09:25 1997 Jason Merrill <jason@yorick.cygnus.com> 10503 10504 * typeck.c (c_expand_return): Always convert_for_initialization 10505 before checking for returning a pointer to local. 10506 10507 * pt.c (type_unification): If strict and the function parm doesn't 10508 use template parms, just compare types. 10509 10510Wed Sep 3 10:35:49 1997 Klaus Espenlaub <kespenla@student.informatik.uni-ulm.de> 10511 10512 * method.c (build_overloaded_value): Replace direct call 10513 to the floating point emulator with REAL_VALUE_TO_DECIMAL macro. 10514 10515Wed Sep 3 00:02:53 1997 Jason Merrill <jason@yorick.cygnus.com> 10516 10517 * typeck.c (convert_arguments): Don't arbitrarily choose the first 10518 of a set of overloaded functions. 10519 10520Tue Sep 2 12:09:13 1997 Jason Merrill <jason@yorick.cygnus.com> 10521 10522 * lex.c (real_yylex): Don't elide __FUNCTION__. 10523 10524 * method.c (build_overload_value): Add in_template parm. 10525 (build_overload_int): Likewise. 10526 (build_overload_identifier): Pass it. 10527 10528 * decl.c (duplicate_decls): Don't bash a previous template 10529 definition with a redeclaration. 10530 10531 * pt.c (unify): float doesn't match double. 10532 10533 * pt.c (do_type_instantiation): Handle getting a _TYPE or a 10534 TYPE_DECL. Handle getting non-template types. 10535 * parse.y (explicit_instantiation): Use typespec instead of 10536 aggr template_type. 10537 10538Tue Sep 2 10:27:08 1997 Richard Henderson <rth@cygnus.com> 10539 10540 * typeck.c (build_ptrmemfunc1): Clean up ptr->int cast warnings. 10541 10542Mon Sep 1 13:19:04 1997 Eugene Mamchits <eugin@ips.ras.ru> 10543 10544 * call.c (add_builtin_candidate): Add missing TREE_TYPE. 10545 (compare_ics): Likewise. 10546 10547Mon Sep 1 13:19:04 1997 Jason Merrill <jason@yorick.cygnus.com> 10548 10549 * call.c (joust): Warn about choosing one conversion op over 10550 another because of 'this' argument when the other return type is 10551 better. 10552 (source_type): New fn. 10553 10554 * call.c (build_new_op): Strip leading REF_BIND from first operand 10555 to builtin operator. 10556 10557 * decl2.c (mark_vtable_entries): Mark abort_fndecl as used when we 10558 use its RTL. 10559 10560Thu Aug 28 09:45:23 1997 Jason Merrill <jason@yorick.cygnus.com> 10561 10562 * call.c (null_ptr_cst_p): Remove support for (void*)0. 10563 10564Wed Aug 27 02:03:34 1997 Jeffrey A Law <law@cygnus.com> 10565 10566 * typeck.c (expand_target_expr): Make definition match declaration. 10567 10568 * class.c (get_basefndecls): Make definition match declaration. 10569 10570Mon Aug 25 14:30:02 1997 Jason Merrill <jason@yorick.cygnus.com> 10571 10572 * input.c (sub_getch): Eventually give up and release the input file. 10573 10574 * decl.c (cp_finish_decl): If #p i/i, put inline statics in the 10575 right place. 10576 10577 * call.c (joust): Tweak message. 10578 10579Sat Aug 23 18:02:59 1997 Mark Mitchell <mmitchell@usa.net> 10580 10581 * error.c (type_as_string): Put const/volatile on template type 10582 parameters where appropriate. 10583 10584Sat Aug 23 17:47:22 1997 Jeffrey A Law <law@cygnus.com> 10585 10586 * call.c (strictly_better): Make arguments unsigned ints. 10587 10588Thu Aug 21 18:48:44 1997 Jason Merrill <jason@yorick.cygnus.com> 10589 10590 * lex.c (real_yylex): Refer to __complex instead of complex. 10591 10592Thu Aug 21 22:25:46 1997 J"orn Rennecke <amylaar@cygnus.co.uk> 10593 10594 * lex.c (real_yylex): Don't use getc directly. 10595 10596Wed Aug 20 17:25:08 1997 Jason Merrill <jason@yorick.cygnus.com> 10597 10598 * call.c (is_subseq): Don't try to be clever. 10599 10600Wed Aug 20 03:13:36 1997 H.J. Lu (hjl@gnu.ai.mit.edu) 10601 10602 * parse.y, pt.c: Include "except.h". 10603 * call.c, class.c, class.h, cp-tree.h, cvt.c, decl.c, decl2.c, 10604 error.c, except.c, expr.c, friend.c, g++spec.c, init.c, input.c, 10605 lex.c, lex.h, method.c, parse.y, pt.c, repo.c, rtti.c, search.c, 10606 sig.c, spew.c, tree.c, typeck.c, typeck2.c, xref.c: Finish 10607 prototyping. 10608 10609Wed Aug 20 01:34:40 1997 Jason Merrill <jason@yorick.cygnus.com> 10610 10611 * decl2.c (mark_vtable_entries): Instead of replacing pure 10612 virtuals with a reference to __pure_virtual, copy the decl and 10613 change the RTL. 10614 10615Tue Aug 19 02:26:07 1997 Jason Merrill <jason@yorick.cygnus.com> 10616 10617 * pt.c (lookup_nested_type_by_name): Handle typedef wierdness. 10618 10619 * typeck2.c (my_friendly_abort): Report bugs to egcs-bugs@cygnus.com. 10620 10621 * pt.c (instantiate_class_template): Call repo_template_used 10622 before finish_prevtable_vardecl. 10623 10624 * call.c (is_subseq): New fn. 10625 (compare_ics): Use it. 10626 10627 * repo.c (finish_repo): Don't crash on no args. 10628 10629 * parse.y (named_complex_class_head_sans_basetype): Handle 10630 explicit global scope. 10631 * decl2.c (handle_class_head): New fn. 10632 10633 * pt.c (unify): Add CONST_DECL case. 10634 10635Thu Aug 14 10:05:13 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 10636 10637 * rtti.c (permanent_obstack): Fix decl to not be a pointer. 10638 10639 * cp-tree.h (report_type_mismatch): Add prototype. 10640 * call.c (build_overload_call_real): Remove erroneous fourth 10641 argument to report_type_mismatch. 10642 (build_user_type_conversion_1): Remove erroneous second arg to 10643 tourney. 10644 (build_new_function_call): Likewise. 10645 (build_object_call): Likewise. 10646 (build_new_op): Likewise. 10647 (build_new_method_call): Likewise. 10648 10649Wed Aug 13 19:19:25 1997 Jason Merrill <jason@yorick.cygnus.com> 10650 10651 * error.c (dump_decl): Don't bother processing a function with no 10652 DECL_LANG_SPECIFIC. 10653 10654 * method.c (emit_thunk): Call init_function_start in the macro case. 10655 10656Wed Aug 13 10:46:19 1997 H.J. Lu (hjl@gnu.ai.mit.edu) 10657 10658 * decl2.c (DEFAULT_VTABLE_THUNKS): Define to be 0 if not 10659 defined and used to set flag_vtable_thunks. 10660 10661Tue Aug 12 20:13:57 1997 Jason Merrill <jason@yorick.cygnus.com> 10662 10663 * parse.y: Don't clear the inlines from their obstack until they've 10664 all been processed. 10665 10666 * decl.c (duplicate_decls): Don't complain about exception 10667 specification mismatch if flag_exceptions is off. 10668 10669Mon Aug 11 15:01:56 1997 Marc Lehmann <pcg@goof.com> 10670 10671 * Make-lang.in (c++.distclean): Remove g++.c on make distclean. 10672 10673Sun Aug 10 12:06:09 1997 Paul Eggert <eggert@twinsun.com> 10674 10675 * cp-tree.h: Replace STDIO_PROTO with PROTO in include files. 10676 * cvt.c, error.c, except.c, expr.c, friend.c, init.c, rtti.c: 10677 Include <stdio.h> before include files that formerly used STDIO_PROTO. 10678 10679 * decl.c, g++spec.c, lex.c, method.c, repo.c: 10680 Include "config.h" first, as per autoconf manual. 10681 10682Fri Aug 8 11:47:48 1997 Jason Merrill <jason@yorick.cygnus.com> 10683 10684 * decl.c (duplicate_decls): Tweak wording. 10685 * lex.c (do_pending_defargs): Don't die if we see a default arg 10686 that isn't a DEFAULT_ARG. 10687 * error.c (dump_expr): Handle DEFAULT_ARG. 10688 10689 * decl2.c (lang_decode_option): Handle -fhandle-exceptions. 10690 * lang-options.h: Add -fhandle-exceptions. 10691 10692 * class.c (build_vtable): Vtables are artificial. 10693 (prepare_fresh_vtable): Likewise. 10694 10695Wed Aug 6 11:02:36 1997 Jason Merrill <jason@yorick.cygnus.com> 10696 10697 * cvt.c (ocp_convert): After converting to the target type, set 10698 LOOKUP_NO_CONVERSION. 10699 10700 * call.c (joust): Warn about potentially confusing promotion rules 10701 with -Wsign-promo. 10702 * cp-tree.h, lang-options.h, decl2.c: Support -Wsign-promo. 10703 10704Tue Aug 5 15:15:07 1997 Michael Meissner <meissner@cygnus.com> 10705 10706 * exception.cc: Declare __terminate_func with noreturn attribute. 10707 10708Fri Aug 1 03:18:15 1997 Jason Merrill <jason@yorick.cygnus.com> 10709 10710 * parse.y: Break out eat_saved_input, handle errors. 10711 (function_try_block): Use compstmt instead of compstmt_or_error. 10712 10713Thu Jul 31 17:14:04 1997 Jason Merrill <jason@yorick.cygnus.com> 10714 10715 * tree.c (build_cplus_new): Don't set TREE_ADDRESSABLE. 10716 10717Fri Jul 4 01:45:16 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> 10718 10719 * Make-lang.in (cplib2.txt, cplib2.ready): Instead of checking for 10720 existence of cc1plus check whether $(LANGUAGES) contains C++. 10721 10722Wed Jul 30 13:04:21 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> 10723 10724 * method.c (do_build_copy_constructor): When copying an anonymous 10725 union member loop around to handle nested anonymous unions. Use 10726 the offset of the member relative to the outer structure, not the 10727 union. 10728 10729Tue Jul 29 21:17:29 1997 Jason Merrill <jason@yorick.cygnus.com> 10730 10731 * call.c (resolve_args): New fn. 10732 (build_new_function_call): Use it. 10733 (build_object_call): Likewise. 10734 (build_new_method_call): Likewise. 10735 10736Mon Jul 28 16:02:36 1997 Jason Merrill <jason@yorick.cygnus.com> 10737 10738 * call.c (build_over_call): tsubst all default parms from templates. 10739 10740Wed Jul 23 13:36:25 1997 Jason Merrill <jason@yorick.cygnus.com> 10741 10742 * decl.c (struct cp_function): Add static_labelno. 10743 (push_cp_function_context): Save it. 10744 (pop_cp_function_context): Restore it. 10745 10746Tue Jul 22 14:43:29 1997 Jason Merrill <jason@yorick.cygnus.com> 10747 10748 * typeck.c (build_component_ref_1): Convert from reference. 10749 10750Tue Jul 22 11:06:23 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 10751 10752 * parse.y (current_declspecs, prefix_attributes): Initialize to 10753 NULL_TREE. 10754 10755 * parse.y (initdcl0): Make sure CURRENT_DECLSPECS is non-nil 10756 before we try to force it to be a TREE_LIST. 10757 (decl): Make sure $1.t is non-nil. 10758 10759Sun Jul 20 11:53:07 1997 Jason Merrill <jason@yorick.cygnus.com> 10760 10761 * pt.c (uses_template_parms): Handle template first-parse codes. 10762 10763 * decl.c (cp_finish_decl): Only warn about user-defined statics. 10764 10765Fri Jul 18 17:56:08 1997 Jason Merrill <jason@yorick.cygnus.com> 10766 10767 * pt.c (unify): Handle BOOLEAN_TYPE. 10768 10769 * cp-tree.h: Lose PARM_DEFAULT_FROM_TEMPLATE. 10770 * pt.c (tsubst): Don't set it. 10771 * call.c (build_over_call): Use uses_template_parms. 10772 10773Thu Jul 17 18:06:30 1997 Jason Merrill <jason@yorick.cygnus.com> 10774 10775 * method.c (build_overload_nested_name): Use static_labelno 10776 instead of var_labelno. 10777 (build_qualified_name): New fn. 10778 (build_overload_name): Split out from here. 10779 (build_static_name): Use build_qualified_name. 10780 * decl.c (cp_finish_decl): Statics in extern inline functions 10781 have comdat linkage. 10782 (start_function): Initialize static_labelno. 10783 10784Thu Jul 17 11:20:17 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com> 10785 10786 * class.c (finish_struct_methods): Add check of warn_ctor_dtor_privacy 10787 before "all member functions in class [] are private". 10788 10789Wed Jul 16 23:47:08 1997 Jason Merrill <jason@yorick.cygnus.com> 10790 10791 * lex.c (do_scoped_id): convert_from_reference. 10792 * init.c (build_offset_ref): Likewise. 10793 10794Wed Jul 16 12:34:29 1997 Benjamin Kosnik <bkoz@lisa.cygnus.com> 10795 10796 * error.c (dump_expr): Check TREE_OPERAND before dump_expr_list. 10797 10798Mon Jul 14 03:23:46 1997 Jason Merrill <jason@yorick.cygnus.com> 10799 10800 * typeck.c (get_member_function_from_ptrfunc): Promote index 10801 before saving it. 10802 10803Sun Jul 13 00:11:52 1997 Jason Merrill <jason@yorick.cygnus.com> 10804 10805 * tree.c (layout_basetypes): Move non-virtual destructor warning. 10806 * decl.c (xref_basetypes): Remove non-virtual destructor warning. 10807 10808Sat Jul 12 12:47:12 1997 Jason Merrill <jason@yorick.cygnus.com> 10809 10810 * decl.c (grokdeclarator): Call add_defarg_fn for the function 10811 type, too. 10812 * lex.c (add_defarg_fn): Adjust. 10813 (do_pending_defargs): Adjust. Don't skip the first parm. 10814 10815Fri Jul 11 01:39:50 1997 Jason Merrill <jason@yorick.cygnus.com> 10816 10817 * decl.c (build_enumerator): Global enumerators are also readonly. 10818 10819 * rtti.c (build_dynamic_cast_1): Renamed from build_dynamic_cast. 10820 (build_dynamic_cast): Call it and convert_from_reference. 10821 10822 * lex.c (add_defarg_fn): New fn. 10823 (snarf_defarg): Don't add to defarg_types. 10824 (do_pending_defargs): Lose defarg_types. All fns we process now 10825 have defargs. 10826 * decl.c (grokfndecl): Call add_defarg_fn. 10827 10828 * Makefile.in (CONFLICTS): Expect 18 s/r conflicts. 10829 * cp-tree.def: Add DEFAULT_ARG. 10830 * spew.c (yylex): Call snarf_defarg as appropriate. 10831 * parse.y: New tokens DEFARG and DEFARG_MARKER. 10832 (defarg_again, pending_defargs, defarg, defarg1): New rules. 10833 (structsp): Use pending_defargs. 10834 (parms, full_parm): Use defarg. 10835 * lex.c (init_lex): Initialize inline_text_firstobj. 10836 (do_pending_inlines): Never pass the obstack to feed_input. 10837 (process_next_inline): Call end_input instead of restore_pending_input. 10838 (clear_inline_text_obstack, reinit_parse_for_expr, do_pending_defargs, 10839 finish_defarg, feed_defarg, snarf_defarg, maybe_snarf_defarg): New fns. 10840 * input.c (end_input): New fn. 10841 (sub_getch): At the end of some fed input, just keep returning EOF 10842 until someone calls end_input. 10843 Remove 'obstack' field from struct input_source. 10844 * decl.c (grokparms): Handle DEFAULT_ARG. 10845 (replace_defarg): New fn. 10846 * cp-tree.h (DEFARG_LENGTH, DEFARG_POINTER): New macros. 10847 10848Wed Jul 9 13:44:12 1997 Jason Merrill <jason@yorick.cygnus.com> 10849 10850 * call.c (implicit_conversion): If nothing else works, try binding 10851 an rvalue to a reference. 10852 10853Wed Jul 9 13:04:38 1997 Geoffrey Noer <noer@cygnus.com> 10854 10855 * decl.c (init_decl_processing): Fix Jun 30 patch -- move 10856 ifndef for Cygwin32 to include SIGSEGV. 10857 10858Thu Jul 3 01:44:05 1997 Jason Merrill <jason@yorick.cygnus.com> 10859 10860 * class.c (finish_struct_1): Only complain about pointers without 10861 copy stuff if there are any constructors. 10862 10863 * rtti.c (build_dynamic_cast): Call complete_type on the types. 10864 10865 * decl.c (grokfndecl): If the function we chose doesn't actually 10866 match, die. 10867 10868 * decl2.c (grokclassfn): Don't specify 'const int' for the 10869 artificial destructor parm. 10870 10871 * pt.c (type_unification): If we are called recursively, nothing 10872 decays. 10873 10874Mon Jun 30 17:53:21 1997 Geoffrey Noer <noer@cygnus.com> 10875 10876 * decl.c (init_decl_processing): Stop trying to catch signals 10877 other than SIGABRT since the Cygwin32 library doesn't support 10878 them correctly yet. This fixes a situation in which g++ causes 10879 a hang on SIGSEGVs and other such signals in our Win32-hosted 10880 tools. 10881 10882Mon Jun 30 14:50:01 1997 Jason Merrill <jason@yorick.cygnus.com> 10883 10884 * tree.c (mapcar, case CALL_EXPR): Handle all the parse node data. 10885 10886Fri Jun 27 15:18:49 1997 Jason Merrill <jason@yorick.cygnus.com> 10887 10888 * typeck2.c (store_init_value): Always return the value if our 10889 type needs constructing. 10890 10891 * method.c (hack_identifier): Convert class statics from 10892 reference, too. 10893 10894Thu Jun 26 11:44:46 1997 Jason Merrill <jason@yorick.cygnus.com> 10895 10896 * Make-lang.in (cplib2.ready): Add $(LANGUAGES) dependency. 10897 10898Thu Jun 19 16:49:28 1997 Mike Stump <mrs@cygnus.com> 10899 10900 * typeck.c (c_expand_return): Make sure we clean up temporaries at 10901 the end of return x; 10902 10903Thu Jun 19 12:28:43 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 10904 10905 * lex.c (check_for_missing_semicolon): Also check for CV_QUALIFIER. 10906 10907Tue Jun 17 18:35:57 1997 Mike Stump <mrs@cygnus.com> 10908 10909 * except.c (expand_builtin_throw): Add support 10910 -fno-sjlj-exceptions -fPIC exception handling on the SPARC. 10911 10912Mon Jun 16 01:24:37 1997 Jason Merrill <jason@yorick.cygnus.com> 10913 10914 * repo.c (extract_string): Null-terminate. 10915 10916 * cp-tree.h (TI_SPEC_INFO): New macro. 10917 (CLASSTYPE_TI_SPEC_INFO): New macro. 10918 * pt.c (push_template_decl): Correctly determine # of template parms 10919 for partial specs. 10920 10921 * call.c (compare_ics): Really fix 'this' conversions. 10922 10923 * pt.c (do_decl_instantiation): Don't crash on explicit inst of 10924 non-template fn. 10925 10926 * pt.c (push_template_decl): Complain about mismatch in # of 10927 template parms between a class template and a member template. 10928 10929Sun Jun 15 02:38:20 1997 Jason Merrill <jason@yorick.cygnus.com> 10930 10931 * method.c (synthesize_method): You can't call 10932 function_cannot_inline_p after finish_function. 10933 * decl.c (finish_function): Turn on flag_inline_functions and turn 10934 off DECL_INLINE before handing a synthesized method to the 10935 backend. 10936 10937Thu Jun 12 17:35:28 1997 Jason Merrill <jason@yorick.cygnus.com> 10938 10939 * method.c (synthesize_method): Remove July 30 change to never set 10940 DECL_INLINE if at_eof. 10941 10942Thu Jun 12 15:25:08 1997 Mike Stump <mrs@cygnus.com> 10943 10944 * xref.c (GNU_xref_member): Ensure that the node has a 10945 decl_lang_specific part before checking DECL_FRIEND_P. 10946 10947Thu Jun 12 12:36:05 1997 Jason Merrill <jason@yorick.cygnus.com> 10948 10949 * pt.c (instantiate_class_template): Diagnose non-class types used 10950 as bases. 10951 10952Wed Jun 11 17:33:40 1997 Jason Merrill <jason@yorick.cygnus.com> 10953 10954 * typeck.c (build_conditional_expr): Use convert_for_initialization 10955 instead of convert_and_check. 10956 10957Wed Jun 11 12:31:33 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 10958 10959 * parse.y (typespec): Don't pedwarn for typeof. 10960 10961Tue Jun 10 00:22:09 1997 Jason Merrill <jason@yorick.cygnus.com> 10962 10963 * repo.c (finish_repo): Only check changes if we would write a 10964 repo file. 10965 10966 * call.c (compare_ics): Fix handling of 'this' conversions. 10967 10968 * pt.c (do_decl_instantiation): Support static data too. Rename 10969 from do_function_instantiation. 10970 * cp-tree.h: Adjust. 10971 * parse.y: Adjust. 10972 10973 * repo.c (extract_string): New fn. 10974 (get_base_filename): Use it. 10975 (init_repo): Compare old args with current args. 10976 10977Mon Jun 9 14:25:30 1997 Mike Stump <mrs@cygnus.com> 10978 10979 * Makefile.in, Make-lang.in: Protect C-ls with a comment 10980 character, idea from Paul Eggert <eggert@twinsun.com>. 10981 10982Mon Jun 9 01:52:03 1997 Jason Merrill <jason@yorick.cygnus.com> 10983 10984 * typeck.c (c_expand_return): Be more persistent in looking for 10985 returned temps. 10986 10987 * cvt.c (build_up_reference): Use NOP_EXPR for switching from 10988 pointer to reference. 10989 10990 * class.c (build_vbase_path): Don't do anything if PATH has no steps. 10991 10992Sun Jun 8 03:07:05 1997 Jason Merrill <jason@yorick.cygnus.com> 10993 10994 * init.c (build_member_call, build_offset_ref): 10995 Use do_scoped_id instead of do_identifier. 10996 10997 * cvt.c (convert): Remove bogosity. 10998 10999Sat Jun 7 20:50:17 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 11000 11001 * cvt.c (build_up_reference): Do checks of ARGTYPE and 11002 TARGET_TYPE before trying to use get_binfo. 11003 11004Fri Jun 6 17:36:39 1997 Jason Merrill <jason@yorick.cygnus.com> 11005 11006 * cvt.c (build_up_reference): Call get_binfo to get access control. 11007 11008 * decl2.c (import_export_decl): If we don't support weaks, leave 11009 statics undefined. 11010 11011Fri Jun 6 15:55:49 1997 Mike Stump <mrs@cygnus.com> 11012 11013 * except.c (expand_builtin_throw): Add support for machines that 11014 cannot access globals after throw's epilogue when 11015 -fno-sjlj-exceptions is used. 11016 11017Thu Jun 5 16:28:43 1997 Jason Merrill <jason@yorick.cygnus.com> 11018 11019 * parse.y: 'std::' becomes '::'. 11020 * lex.c (real_yylex): Remove 'namespace' warning. 11021 * init.c (build_member_call): Ignore 'std::'. 11022 (build_offset_ref): Likewise. 11023 * decl2.c (do_using_directive): Ignore 'using namespace std;'. 11024 (do_toplevel_using_decl): Ignore 'using std::whatever'. 11025 * decl.c (push_namespace): Just sorry. 11026 (pop_namespace): Nop. 11027 (init_decl_processing): Declare std namespace. 11028 11029Tue Jun 3 18:08:23 1997 Jason Merrill <jason@yorick.cygnus.com> 11030 11031 * search.c (push_class_decls): A name which ambiguously refers to 11032 several instantiations of the same template just refers to the 11033 template. 11034 11035Tue Jun 3 12:30:40 1997 Benjamin Kosnik <bkoz@cirdan.cygnus.com> 11036 11037 * decl.c (build_enumerator): Fix problem with unsigned long 11038 enumerated values being smashed to ints, causing overflow 11039 when computing next enumerated value (for enum values around 11040 MAX_VAL). 11041 11042Mon Jun 2 17:40:56 1997 Jason Merrill <jason@yorick.cygnus.com> 11043 11044 * typeck.c (build_component_ref): Only call mark_used on a decl. 11045 11046Thu May 29 15:54:17 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 11047 11048 * typeck.c (build_c_cast): Make the check for a ptr to function 11049 more specific before possible default_conversion call. 11050 11051Thu May 29 13:02:06 1997 Mike Stump <mrs@cygnus.com> 11052 11053 * except.c (expand_exception_blocks): Simplify and fix and make 11054 sure we don't end a region in a sequence, as expand_end_bindings 11055 doesn't like it. 11056 11057Wed May 28 17:08:03 1997 Mike Stump <mrs@cygnus.com> 11058 11059 * except.c (init_exception_processing): Mark terminate as not 11060 returning so that the optimizer can optimize better. 11061 11062Tue May 27 19:49:19 1997 Mike Stump <mrs@cygnus.com> 11063 11064 * cvt.c (convert): Don't do any extra work, if we can avoid it 11065 easily. 11066 11067Tue May 27 18:21:47 1997 Mike Stump <mrs@cygnus.com> 11068 11069 * *.[chy]: Change cp_convert to ocp_convert, change convert to 11070 cp_convert. convert is now reserved for the backend, and doesn't 11071 have the semantics a frontend person should ever want. 11072 11073Fri May 23 10:58:31 1997 Jason Merrill <jason@yorick.cygnus.com> 11074 11075 * lang-specs.h: Define __EXCEPTIONS if exceptions are enabled. 11076 Lose -traditional support. 11077 11078Thu May 22 15:41:28 1997 Jason Merrill <jason@yorick.cygnus.com> 11079 11080 * rtti.c (get_tinfo_var): Use TYPE_PRECISION (sizetype). 11081 11082 * parse.y (self_reference): Do it for templates, too. 11083 * class.c (pushclass): Don't overload_template_name; the alias 11084 generated by build_self_reference serves the same purpose. 11085 11086 * tree.c (list_hash): Make static, take more args. 11087 (list_hash_lookup): Likewise. 11088 (list_hash_add): Make static. 11089 (list_hash_canon): Lose. 11090 (hash_tree_cons): Only build a new node if one isn't already in the 11091 hashtable. 11092 (hash_tree_chain): Use hash_tree_cons. 11093 * cp-tree.h: Adjust. 11094 * decl.c (grokfndecl): Just check IDENTIFIER_GLOBAL_VALUE instead 11095 of calling lookup_name. 11096 11097Wed May 21 18:24:19 1997 Jason Merrill <jason@yorick.cygnus.com> 11098 11099 * pt.c (instantiate_class_template): TYPE_VALUES for an enum 11100 doesn't refer to the CONST_DECLs. 11101 11102Tue May 20 21:09:32 1997 Bob Manson <manson@charmed.cygnus.com> 11103 11104 * rtti.c (get_tinfo_var): Either INT_TYPE_SIZE or 32, whichever 11105 is bigger. 11106 (expand_class_desc): Convert the last argument to a sizetype. 11107 11108Tue May 20 13:55:57 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 11109 11110 * gxx.gperf (__complex, __complex__, __imag, __imag__, __real, 11111 __real__): Add reswords. 11112 * hash.h: Regenerate. 11113 * lex.h (rid): Add RID_COMPLEX. 11114 (RID_LAST_MODIFIER): Set to RID_COMPLEX. 11115 * lex.c (init_lex): Add building of RID_COMPLEX. 11116 (real_yylex): General cleanup in line with what c-lex.c also has, 11117 sans the cruft for traditional; add handling of SPEC_IMAG, complex 11118 types, and imaginary numeric constants. 11119 * parse.y (REALPART, IMAGPART): Add tokens. 11120 (unary_expr): Add REALPART and IMAGPART rules. 11121 * cp-tree.h (complex_{integer,float,double,long}_type_node): Declare. 11122 * decl.c (complex_{integer,float,double,long}_type_node): Define 11123 types. 11124 (init_decl_processing): Set up the types. 11125 (grokdeclarator): Add handling of RID_COMPLEX. Set and use 11126 DEFAULTED_INT instead of EXPLICIT_INT when we default to int type. 11127 * call.c (build_new_op): Add REALPART_EXPR and IMAGPART_EXPR cases. 11128 * cvt.c (cp_convert): Handle COMPLEX_TYPE. 11129 * error.c (dump_type_prefix, dump_type, dump_type_suffix): Add 11130 COMPLEX_TYPE case. 11131 * method.c (build_overload_name): Add handling of the different 11132 COMPLEX_TYPEs, prefixing them with `J'. 11133 * pt.c (process_template_parm): Don't let them use a COMPLEX_TYPE 11134 as a template parm. 11135 (uses_template_parms, tsubst, unify): Add COMPLEX_TYPE case. 11136 * tree.c (lvalue_p): Add REALPART_EXPR and IMAGPART_EXPR cases. 11137 (mapcar): Handle COMPLEX_CST. 11138 * typeck.c (build_binary_op_nodefault): Handle COMPLEX_TYPE. 11139 (common_type): Add code for complex types. 11140 (build_unary_op): Add REALPART_EXPR and IMAGPART_EXPR cases. 11141 (convert_for_assignment): Likewise. 11142 (mark_addressable): Add REALPART_EXPR and IMAGPART_EXPR cases. 11143 11144Mon May 19 12:26:27 1997 Jason Merrill <jason@yorick.cygnus.com> 11145 11146 * pt.c (tsubst): Don't pass the MINUS_EXPR for an array domain to 11147 tsubst_expr, as it might try to do overload resolution. 11148 11149Sat May 17 10:48:31 1997 Jason Merrill <jason@yorick.cygnus.com> 11150 11151 * pt.c (instantiate_class_template): Oops. 11152 11153Fri May 16 14:23:57 1997 Jason Merrill <jason@yorick.cygnus.com> 11154 11155 * cp-tree.def: Add TAG_DEFN. 11156 * pt.c (tsubst_enum): New fn. 11157 (instantiate_class_template): Use it. 11158 (tsubst_expr): Support TAG_DEFN. 11159 (tsubst): Support local enums. 11160 (tsubst_copy): Likewise. 11161 * decl.c (finish_enum): Likewise. 11162 (start_enum): If this is a local enum, switch to permanent_obstack. 11163 11164Wed May 14 19:08:28 1997 Mike Stump <mrs@cygnus.com> 11165 11166 * decl.c (store_parm_decls): Set last_parm_cleanup_insn here. 11167 (finish_function): Put the base init code for constructors just 11168 after the parm cleanup insns. 11169 (struct cp_function): Add last_parm_cleanup_insn. 11170 (push_cp_function_context): Likewise. 11171 (pop_cp_function_context): Likewise. 11172 11173Tue May 13 15:51:20 1997 Jason Merrill <jason@yorick.cygnus.com> 11174 11175 * pt.c (tsubst_copy): Handle BIT_NOT_EXPR. 11176 11177Wed May 7 11:17:59 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 11178 11179 * method.c (emit_thunk) [ASM_OUTPUT_MI_THUNK]: Build up the RTL 11180 for THUNK_FNDECL before we switch to temporary allocation. 11181 11182Mon May 5 14:46:53 1997 Jason Merrill <jason@yorick.cygnus.com> 11183 11184 * call.c (build_new_op): Handle null arg2 for ?:. 11185 11186Thu May 1 18:26:37 1997 Mike Stump <mrs@cygnus.com> 11187 11188 * except.c (expand_exception_blocks): Ensure that we flow through 11189 the end of the exception region for the exception specification. 11190 Move exception region for the exception specification in, so that 11191 it doesn't protect the parm cleanup. Remove some obsolete code. 11192 * decl.c (store_parm_decls): Likewise. 11193 (finish_function): Likewise. 11194 11195Tue Apr 29 15:38:54 1997 Jason Merrill <jason@yorick.cygnus.com> 11196 11197 * init.c (build_new): Fix nothrow handling. 11198 11199Tue Apr 29 14:29:50 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 11200 11201 * init.c (emit_base_init): Don't warn about the initialization 11202 list for an artificial member. 11203 11204Fri Apr 25 17:47:59 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 11205 11206 * expr.c (do_case): Handle !START case for the error msg. 11207 11208Fri Apr 25 11:55:23 1997 Jason Merrill <jason@yorick.cygnus.com> 11209 11210 * decl2.c, lang-options.h: New option -Weffc++. 11211 * class.c, decl.c, init.c, typeck.c: Move Effective C++ warnings 11212 to -Weffc++. 11213 11214 * decl2.c (finish_prevtable_vardecl): Change NO_LINKAGE_HEURISTICS 11215 to MULTIPLE_SYMBOL_SPACES. 11216 11217Wed Apr 23 18:06:50 1997 Jason Merrill <jason@yorick.cygnus.com> 11218 11219 * method.c (emit_thunk, generic case): Set current_function_is_thunk. 11220 11221 * method.c (emit_thunk, macro case): Set up DECL_RESULT. 11222 11223 * typeck.c (c_expand_return): Don't complain about returning void 11224 to void in an artificial function. 11225 * method.c (make_thunk): Change settings of READONLY/VOLATILE, 11226 don't set DECL_RESULT, set DECL_ARTIFICIAL. 11227 (emit_thunk, generic code): Also set up DECL_LANG_SPECIFIC. 11228 11229Wed Apr 23 14:43:06 1997 Mike Stump <mrs@cygnus.com> 11230 11231 * init.c (init_decl_processing): Add support for setjmp/longjmp based 11232 exception handling. 11233 * except.c (init_exception_processing): Likewise. 11234 (expand_end_catch_block): Likewise. 11235 (expand_exception_blocks): Likewise. 11236 (expand_throw): Likewise. 11237 * exception.cc (__default_terminate): Likewise. 11238 11239 * init.c (perform_member_init): Use new method of expr level 11240 cleanups, instead of cleanups_this_call and friends. 11241 (emit_base_init): Likewise. 11242 (expand_aggr_vbase_init_1): Likewise. 11243 (expand_vec_init): Likewise. 11244 * decl.c (cp_finish_decl): Likewise. 11245 (expand_static_init): Likewise. 11246 (store_parm_decls): Likewise. 11247 (cplus_expand_expr_stmt): Likewise. 11248 * decl2.c (finish_file): Likewise. 11249 11250 * Make-lang.in (exception.o): Ok to compile with -O now. 11251 11252 * decl.c (maybe_build_cleanup_1): We no longer have to unsave, as 11253 we know it will be done later by the backend. 11254 11255 * decl2.c (lang_f_options): Remove support for short temps. 11256 * lang-options.h: Likewise. 11257 11258Wed Apr 23 04:12:06 1997 Jason Merrill <jason@yorick.cygnus.com> 11259 11260 * tree.c (varargs_function_p): New fn. 11261 * method.c (emit_thunk): Replace broken generic code with code to 11262 generate a heavyweight thunk function. 11263 11264Tue Apr 22 02:45:18 1997 Jason Merrill <jason@yorick.cygnus.com> 11265 11266 * pt.c (process_template_parm): pedwarn about floating-point parms. 11267 11268 * decl.c (grokdeclarator): inline no longer implies static. 11269 11270 * spew.c (yylex): Always return the TYPE_DECL if we got a scope. 11271 11272Mon Apr 21 15:42:27 1997 Jason Merrill <jason@yorick.cygnus.com> 11273 11274 * class.c (check_for_override): The signature of an overriding 11275 function is not changed. 11276 11277 * call.c (build_over_call): Move setting of conv into the loop. 11278 Note: this change, along with the related changes of the 18th thru 11279 the 20th of April, fix an infinite loop problem in conversions. 11280 11281Sun Apr 20 16:24:29 1997 Jason Merrill <jason@yorick.cygnus.com> 11282 11283 * call.c (build_user_type_conversion_1): Really ignore rvalue 11284 conversions when looking for a REFERENCE_TYPE. 11285 11286 * cvt.c (build_up_reference): Eviscerate, use build_unary_op. 11287 * cp-tree.h (TREE_REFERENCE_EXPR): #if 0. 11288 * typeck.c (decay_conversion): Don't set TREE_REFERENCE_EXPR. 11289 (build_unary_op): Likewise. 11290 * call.c (build_over_call): See through a CONVERT_EXPR around the 11291 ADDR_EXPR for on a temporary. 11292 * typeck.c (c_expand_return): See through a CONVERT_EXPR around 11293 the ADDR_EXPR for a local variable. 11294 11295Fri Apr 18 12:11:33 1997 Jason Merrill <jason@yorick.cygnus.com> 11296 11297 * call.c (build_user_type_conversion_1): If we're trying to 11298 convert to a REFERENCE_TYPE, only consider lvalue conversions. 11299 (build_new_function_call): Print candidates. 11300 (implicit_conversion): Try a temp binding if the lvalue conv is BAD. 11301 (reference_binding): Binding a temporary of a reference-related type 11302 is BAD. 11303 11304Thu Apr 17 14:37:22 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 11305 11306 * inc/typeinfo (type_info::before): Add cv-qualifier-seq. 11307 * tinfo2.cc (type_info::before): Likewise. 11308 11309Mon Apr 14 12:38:17 1997 Jason Merrill <jason@yorick.cygnus.com> 11310 11311 * call.c (implicit_conversion): Oops. 11312 11313Fri Apr 11 02:18:30 1997 Jason Merrill <jason@yorick.cygnus.com> 11314 11315 * call.c (implicit_conversion): Try to find a reference conversion 11316 before binding a const reference to a temporary. 11317 11318Wed Apr 2 12:51:36 1997 Mike Stump <mrs@cygnus.com> 11319 11320 * exception.cc (__default_unexpected): Call terminate by default, 11321 so that if the user overrides terminate, the correct function will 11322 be called. 11323 11324Wed Mar 19 14:14:45 1997 Mike Stump <mrs@cygnus.com> 11325 11326 * parse.y (left_curly): Avoid trying to use any fields of 11327 error_mark_node, as there aren't any. 11328 11329Thu Mar 13 16:33:22 1997 Jason Merrill <jason@yorick.cygnus.com> 11330 11331 * lex.c (do_identifier): Avoid breaking on overloaded methods 11332 as default arguments. 11333 11334Wed Mar 12 13:55:10 1997 Hans-Peter Nilsson <Hans-Peter.Nilsson@axis.se> 11335 11336 * call.c (add_template_candidate): Initialize the variable "dummy". 11337 11338Mon Mar 10 15:13:14 1997 Brendan Kehoe <brendan@canuck.cygnus.com> 11339 11340 * decl.c (start_decl): Make sure TYPE isn't an error_mark_node 11341 before we try to use TYPE_SIZE and TREE_CONSTANT on it. 11342 11343Fri Mar 7 13:19:36 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 11344 11345 * cp-tree.h (comp_ptr_ttypes, more_specialized): Add decl. 11346 (debug_binfo): Delete decl, not needed. 11347 11348 * tree.c (fnaddr_from_vtable_entry, function_arg_chain, 11349 promotes_to_aggr_type): Delete fns. 11350 * cp-tree.h (FNADDR_FROM_VTABLE_ENTRY, 11351 SET_FNADDR_FROM_VTABLE_ENTRY, FUNCTION_ARG_CHAIN, 11352 PROMOTES_TO_AGGR_TYPE): Delete alternates to #if 1. 11353 11354 * decl.c (pending_invalid_xref{,_file,_line}): Delete unused vars. 11355 11356 * friend.c (is_friend_type): Delete fn. 11357 * cp-tree.h (is_friend_type): Delete decl. 11358 11359 * decl.c (original_result_rtx, double_ftype_double, 11360 double_ftype_double_double, int_ftype_int, long_ftype_long, 11361 float_ftype_float, ldouble_ftype_ldouble, last_dtor_insn): Make static. 11362 * typeck.c (original_result_rtx, warn_synth): Delete extern decls. 11363 11364 * decl.c (push_overloaded_decl{,_top_level}): Make static, adding 11365 fwd decls. 11366 * cp-tree.h (push_overloaded_decl{,_top_level}): Delete decls. 11367 11368 * decl.c (pushdecl_nonclass_level): #if 0, unused. 11369 * cp-tree.h (pushdecl_nonclass_level): #if 0 decl. 11370 11371 * lex.c (reinit_lang_specific): #if 0, unused. 11372 * cp-tree.h (reinit_lang_specific): #if 0 decl. 11373 11374 * decl.c (revert_static_member_fn): Make static, adding fwd decl. 11375 * cp-tree.h (revert_static_member_fn): Delete decl. 11376 11377 * class.c (root_lang_context_p): Delete fn. 11378 * cp-tree.h (root_lang_context_p): Delete decl. 11379 11380 * decl.c (set_current_level_tags_transparency): #if 0, unused. 11381 * cp-tree.h (set_current_level_tags_transparency): #if 0 decl. 11382 11383 * lex.c (set_vardecl_interface_info): Make static. 11384 * cp-tree.h (set_vardecl_interface_info): Delete decl. 11385 11386 * call.c (find_scoped_type): Make static. 11387 * cp-tree.h (find_scoped_type): Delete decl. 11388 11389 * search.c (convert_pointer_to_vbase): Make static. 11390 * cp-tree.h (convert_pointer_to_vbase): Delete decl. 11391 11392 * decl.c (const_ptr_type_node): Likewise. 11393 * cp-tree.h (const_ptr_type_node): Delete decl. 11394 11395 * typeck.c (common_base_type): Make static. 11396 * cp-tree.h (common_base_types): Delete erroneous decl. 11397 11398 * pt.c (classtype_mangled_name): Make static. 11399 * cp-tree.h (classtype_mangled_name): Delete decl. 11400 11401 * lex.c (check_newline): Make static. 11402 * cp-tree.h (check_newline): Delete decl. 11403 11404 * typeck.c (build_x_array_ref): Delete fn, same idea as 11405 grok_array_decl. 11406 * cp-tree.h (build_x_array_ref): Delete decl. 11407 11408 * lex.c (copy_decl_lang_specific): Delete fn, same idea as 11409 copy_lang_decl. 11410 * cp-tree.h (copy_decl_lang_specific): #if 0 decl. 11411 11412 * class.c (build_vtable_entry): Make static. 11413 * cp-tree.h (build_vtable_entry): Delete decl. 11414 11415 * class.c (build_vbase_pointer): Make static. 11416 * cp-tree.h (build_vbase_pointer): Delete decl. 11417 11418 * sig.c (build_sptr_ref): Add forward decl and make static. 11419 * cp-tree.h (build_sptr_ref): Delete decl. 11420 11421 * call.c (build_new_method_call): Add forward decl and make static. 11422 * cp-tree.h (build_new_method_call): Delete decl. 11423 11424 * call.c (build_object_call): Make static. 11425 * class.c (check_for_override, complete_type_p, mark_overriders): 11426 Likewise. 11427 * decl.c (cp_function_chain): Likewise. 11428 * lex.c (set_typedecl_interface_info, reinit_parse_for_block): 11429 Likewise. 11430 * pt.c (comp_template_args, get_class_bindings, push_tinst_level): 11431 Likewise. 11432 * tree.c (build_cplus_array_type_1): Likewise. 11433 * typeck.c (comp_ptr_ttypes_{const,real,reinterpret}): Likewise. 11434 (comp_target_parms): Likewise. 11435 11436 * init.c (build_builtin_call): Make static. 11437 * cp-tree.h (build_builtin_call): Delete decl. 11438 11439 * typeck.c (binary_op_error): Delete decl. 11440 * cp-tree.h (binary_op_error): Likewise. 11441 11442Thu Mar 6 16:13:52 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 11443 11444 * call.c (build_method_call): Compare against error_mark_node 11445 directly, rather than the ERROR_MARK tree code. 11446 * cvt.c (cp_convert): Likewise. 11447 * decl.c (print_binding_level): Likewise. 11448 (duplicate_decls): Likewise. 11449 (grokdeclarator): Likewise. 11450 (grokdeclarator): Likewise. 11451 * init.c (expand_aggr_init_1): Likewise. 11452 (decl_constant_value): Likewise. 11453 * method.c (build_opfncall): Likewise. 11454 (hack_identifier): Likewise. 11455 * typeck.c (build_modify_expr): Likewise. 11456 11457 * typeck.c (build_c_cast): Don't decl TYPE as register tree. 11458 11459Sun Mar 2 02:54:36 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> 11460 11461 * pt.c (unify): Strip NOP_EXPR wrappers before unifying integer values. 11462 11463 * pt.c (coerce_template_parms): Add new error message. 11464 11465 * method.c (build_overload_value): Implement name mangling for 11466 floating-point template arguments. 11467 11468 * method.c (build_overload_int, icat, dicat): Fix mangling of template 11469 arguments whose absolute value doesn't fit in a signed word. 11470 11471Mon Mar 3 12:14:54 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 11472 11473 * friend.c: New file; put all of the friend stuff in here. 11474 * init.c: Instead of here. 11475 * Makefile.in (CXX_OBJS): Add friend.o. 11476 (friend.o): Add dependencies. 11477 * Make-lang.in (CXX_SRCS): Add $(srcdir)/cp/friend.c. 11478 11479Sun Mar 2 11:04:43 1997 Jason Merrill <jason@yorick.cygnus.com> 11480 11481 * call.c (build_scoped_method_call): Complain if the scope isn't a 11482 base. 11483 11484Wed Feb 26 11:31:06 1997 Jason Merrill <jason@yorick.cygnus.com> 11485 11486 * parse.y (left_curly): Don't crash on erroneous type. 11487 11488 * init.c (build_delete): Fix type of ref. 11489 11490Tue Feb 25 12:41:48 1997 Jason Merrill <jason@yorick.cygnus.com> 11491 11492 * search.c (get_vbase_1): Renamed from get_vbase. 11493 (get_vbase): Wrapper, now non-static. 11494 (convert_pointer_to_vbase): Now static. 11495 11496 * call.c (build_scoped_method_call): Accept a binfo for BASETYPE. 11497 * init.c (build_delete): Pass one. 11498 (build_partial_cleanup_for): Use build_scoped_method_call. 11499 * decl.c (finish_function): Pass a binfo. 11500 11501Mon Feb 24 15:00:12 1997 Jason Merrill <jason@yorick.cygnus.com> 11502 11503 * call.c (build_over_call): Only synthesize non-trivial copy ctors. 11504 11505 * typeck.c (build_c_cast): Lose other reference to flag. 11506 11507 * call.c (build_field_call): Don't look for [cd]tor_identifier. 11508 * decl2.c (delete_sanity): Remove meaningless use of 11509 LOOKUP_HAS_IN_CHARGE. 11510 * decl.c (finish_function): Use build_scoped_method_call instead 11511 of build_delete for running vbase dtors. 11512 * init.c (build_delete): Call overload resolution code instead of 11513 duplicating it badly. 11514 11515Thu Feb 20 15:12:15 1997 Jason Merrill <jason@yorick.cygnus.com> 11516 11517 * call.c (build_over_call): Call mark_used before trying to elide 11518 the call. 11519 11520 * decl.c (implicitly_declare): Don't set DECL_ARTIFICIAL. 11521 11522Wed Feb 19 11:18:53 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 11523 11524 * typeck.c (build_modify_expr): Always pedwarn for a cast to 11525 non-reference used as an lvalue. 11526 11527Wed Feb 19 10:35:37 1997 Jason Merrill <jason@yorick.cygnus.com> 11528 11529 * cvt.c (cp_convert_to_pointer): Convert from 0 to a pmf properly. 11530 11531Tue Feb 18 15:40:57 1997 Jason Merrill <jason@yorick.cygnus.com> 11532 11533 * parse.y (handler): Fix template typo. 11534 11535Sun Feb 16 02:12:28 1997 Jason Merrill <jason@yorick.cygnus.com> 11536 11537 * error.c (lang_decl_name): New fn. 11538 * tree.c (lang_printable_name): Use it. 11539 11540Fri Feb 14 16:57:05 1997 Mike Stump <mrs@cygnus.com> 11541 11542 * g++spec.c: Include config.h so that we can catch bzero #defines 11543 from the config file. 11544 11545Tue Feb 11 13:50:48 1997 Mike Stump <mrs@cygnus.com> 11546 11547 * new1.cc: Include a declaration for malloc, to avoid warning, and 11548 avoid lossing on systems that require one (ones that define malloc 11549 in xm.h). 11550 11551Mon Feb 10 22:51:13 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de> 11552 11553 * decl2.c (max_tinst_depth): New variable. 11554 (lang_decode_option): Parse "-ftemplate-depth-NN" command line 11555 option. 11556 * pt.c (max_tinst_depth): Variable moved. 11557 * lang-options.h: Declare "-ftemplate-depth-NN" command line option 11558 as legal. 11559 11560Fri Feb 7 15:43:34 1997 Jason Merrill <jason@yorick.cygnus.com> 11561 11562 * decl.c (xref_basetypes): Allow a base class that depends on 11563 template parms to be incomplete. 11564 11565 * decl2.c (build_expr_from_tree): Support typeid(type). 11566 * rtti.c (get_typeid): Support templates. 11567 (expand_si_desc, expand_class_desc): Fix string length. 11568 (expand_ptr_desc, expand_attr_desc, expand_generic_desc): Likewise. 11569 11570Tue Feb 4 11:28:24 1997 Jason Merrill <jason@yorick.cygnus.com> 11571 11572 * pt.c (unify, case TEMPLATE_CONST_PARM): Use cp_tree_equal. 11573 11574 * pt.c (tsubst): Put it back for -fno-ansi-overloading. 11575 11576Mon Feb 3 18:41:12 1997 Jason Merrill <jason@yorick.cygnus.com> 11577 11578 * pt.c (tsubst, case FUNCTION_DECL): Lose obsolete code that 11579 smashes together template and non-template decls of the same 11580 signature. 11581 11582Thu Jan 30 19:18:00 1997 Jason Merrill <jason@yorick.cygnus.com> 11583 11584 * pt.c (tsubst): Don't recurse for the type of a TYPENAME_TYPE. 11585 11586Wed Jan 29 11:40:35 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 11587 11588 * decl.c (duplicate_decls): Next route, pedwarn about different 11589 exceptions if -pedantic *or* olddecl !DECL_IN_SYSTEM_HEADER. 11590 11591Tue Jan 28 20:43:29 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 11592 11593 * cp-tree.h (HAS_DEFAULT_IMPLEMENTATION): Delete macro. 11594 (struct lang_type): Delete has_default_implementation member. 11595 Increase dummy to 21. 11596 * decl.c (start_method): Delete usage. 11597 11598 * cp-tree.h (build_call, null_ptr_cst_p, in_function_p, 11599 store_after_parms, start_decl_1, auto_function): Add decls. 11600 (get_arglist_len_in_bytes, declare_implicit_exception, 11601 have_exceptions_p, make_type_decl, typedecl_for_tag, 11602 store_in_parms, pop_implicit_try_blocks, push_exception_cleanup, 11603 build_component_type_expr, cplus_exception_name, 11604 {make,clear}_anon_parm_name, dont_see_typename): Removed decls. 11605 * call.c (build_this): Make static. 11606 (is_complete): Likewise. 11607 (implicit_conversion): Likewise. 11608 (reference_binding): Likewise. 11609 (standard_conversion): Likewise. 11610 (strip_top_quals): Likewise. 11611 (non_reference): Likewise. 11612 (build_conv): Likewise. 11613 (user_harshness): Likewise. 11614 (rank_for_ideal): Likewise. 11615 * decl.c (start_decl_1): Delete forward decl. 11616 (push_decl_level): Make static. 11617 (resume_binding_level): Make static. 11618 (namespace_bindings_p): Make static. 11619 (declare_namespace_level): Make static. 11620 (lookup_name_real): Make static. 11621 (duplicate_decls): Make static. Take register off NEWDECL and 11622 OLDDECL parm decls. 11623 * decl2.c (get_sentry): Make static. 11624 (temp_name_p): Delete fn. 11625 * except.c (auto_function): Delete decl. 11626 * lex.c (handle_{cp,sysv}_pragma): Make static. 11627 (handle_sysv_pragma) [HANDLE_SYSV_PRAGMA]: Add forward decl. 11628 * method.c (do_build_{copy_constructor,assign_ref}): Make static. 11629 * pt.c (tsubst_expr_values): Make static. 11630 * rtti.c (combine_strings): Delete decl. 11631 11632Tue Jan 28 16:40:40 1997 Jason Merrill <jason@yorick.cygnus.com> 11633 11634 * pt.c (push_template_decl): Handle getting a typedef. 11635 11636 * call.c (build_new_function_call): Complain about void arg. 11637 11638Tue Jan 28 15:25:09 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 11639 11640 * decl.c (duplicate_decls): Give pedwarn of different exceptions 11641 if -pedantic, instead of olddecl !DECL_IN_SYSTEM_HEADER. 11642 11643Mon Jan 27 19:21:29 1997 Mike Stump <mrs@cygnus.com> 11644 11645 * except.c (expand_throw): Don't expand the cleanup tree here, 11646 since we are not going to write the rtl out. Fixes problem with 11647 -g -O on SPARC. 11648 11649Mon Jan 27 16:24:35 1997 Sean McNeil <sean@mcneil.com> 11650 11651 * Make-lang.in: Add $(exeext) as necessary. 11652 11653Mon Jan 27 13:20:39 1997 Mike Stump <mrs@cygnus.com> 11654 11655 * parse.y (handler_seq): Must have at least one catch clause. 11656 11657Sat Jan 25 12:00:05 1997 Jason Merrill <jason@yorick.cygnus.com> 11658 11659 * call.c (add_builtin_candidate): Restore ?: hack. 11660 11661 * decl.c (grok_op_properties): More warnings. 11662 11663Sat Jan 25 08:50:03 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 11664 11665 * decl.c (duplicate_decls): On second thought, do it as a pedwarn 11666 still but only if !DECL_IN_SYSTEM_HEADER (olddecl). 11667 11668 * decl.c (duplicate_decls): Scale back to a warning, and only do 11669 'em if -pedantic. 11670 11671Fri Jan 24 17:52:54 1997 Mike Stump <mrs@cygnus.com> 11672 11673 * decl.c (duplicate_decls): pedwarn mismatched exception 11674 specifications. 11675 11676Thu Jan 23 18:18:54 1997 Mike Stump <mrs@cygnus.com> 11677 11678 * call.c (build_new_method_call): Don't display the invisible 11679 argument for controlling virtual bases. 11680 11681Thu Jan 23 16:48:10 1997 Mike Stump <mrs@cygnus.com> 11682 11683 * new: Add nothrow new and delete, bad_alloc and throw specifications 11684 for delete. 11685 * decl.c (init_decl_processing): Add throw specification for delete. 11686 * new.cc (nothrow): Define. 11687 * lex.c (real_yylex): Removing warning that throw and friends are 11688 keywords. 11689 * new1.cc (operator new (size_t sz, const nothrow_t&)): Define. 11690 * new2.cc (operator new[] (size_t sz, const nothrow_t&): Define. 11691 * Make-lang.in: Add new{1,2}.{cc,o}. 11692 11693Thu Jan 23 16:39:06 1997 Jason Merrill <jason@yorick.cygnus.com> 11694 11695 * lex.c (cons_up_default_function): Fix return type of synth op=. 11696 11697 * init.c (emit_base_init): Add warnings for uninitialized members 11698 and bases. 11699 11700 * decl.c (xref_basetypes): Add warning for non-polymorphic type 11701 with destructor used as base type. 11702 11703 * decl.c (grok_op_properties): Add warning for op= returning void. 11704 * typeck.c (c_expand_return): Add warning for op= returning anything 11705 other than *this. 11706 11707 * class.c (finish_struct_1): Add warning for class with pointers 11708 but not copy ctor or copy op=. 11709 11710 * cp-tree.h (TI_PENDING_TEMPLATE_FLAG): New macro. 11711 * pt.c (add_pending_template): Use it instead of LANG_FLAG_0. 11712 (instantiate_template): If -fexternal-templates, add this 11713 instantiation to pending_templates. 11714 11715 * decl2.c (copy_assignment_arg_p): Disable old hack to support 11716 Booch components. 11717 11718Tue Jan 21 18:32:04 1997 Mike Stump <mrs@cygnus.com> 11719 11720 * cvt.c (cp_convert): pedwarn enum to pointer conversions. 11721 11722Mon Jan 20 17:59:51 1997 Jason Merrill <jason@yorick.cygnus.com> 11723 11724 * call.c (standard_conversion): Handle getting references. Tack 11725 on RVALUE_CONV here. Do it for non-class types, too. 11726 (reference_binding): Pass references to standard_conversion. 11727 (implicit_conversion): Likewise. 11728 (add_builtin_candidate): Disable one ?: kludge. 11729 (convert_like): Handle RVALUE_CONVs for non-class types. 11730 (joust): Disable the other ?: kludge. 11731 11732Mon Jan 20 14:53:13 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 11733 11734 * decl.c (init_decl_processing): Add code to build up common 11735 function types beforehand, to avoid creation then removal of 11736 things already in the hash table. 11737 11738Mon Jan 20 14:43:49 1997 Jason Merrill <jason@yorick.cygnus.com> 11739 11740 * decl.c (finish_function): Also zero out DECL_INCOMING_RTL for 11741 the arguments. 11742 11743 * error.c (dump_expr, TEMPLATE_CONST_PARM): Don't require 11744 current_template_parms. 11745 11746Fri Jan 17 10:25:42 1997 Jason Merrill <jason@yorick.cygnus.com> 11747 11748 * search.c (lookup_field): Don't return a function, check want_type. 11749 11750Thu Jan 16 18:14:35 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 11751 11752 * init.c (build_new): Make sure PLACEMENT has a type. 11753 11754Thu Jan 16 17:40:28 1997 Jason Merrill <jason@yorick.cygnus.com> 11755 11756 * init.c (build_new): Support new (nothrow). 11757 11758Wed Jan 15 12:38:14 1997 Jason Merrill <jason@yorick.cygnus.com> 11759 11760 * pt.c (instantiate_decl): Also do push_to_top_level before setting 11761 up DECL_INITIAL. 11762 11763 * cp-tree.h (PARM_DEFAULT_FROM_TEMPLATE): New macro. 11764 * pt.c (tsubst): Defer instantiation of default args. 11765 * call.c (build_over_call): Until here. 11766 11767Wed Jan 15 10:08:10 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 11768 11769 * search.c (lookup_field): Make sure we have an 11770 IDENTIFIER_CLASS_VALUE before we try to return it. 11771 11772Thu Jan 9 07:19:01 1997 Brendan Kehoe <brendan@lisa.cygnus.com> 11773 11774 * call.c (build_method_call): Delete unused var PARM. 11775 (build_overload_call_real): Likewise. 11776 (build_object_call): Delete unused var P. 11777 (build_new_op): Likewise. 11778 * decl.c (builtin_type_tdescs_{arr, len, max}): #if 0 out static 11779 var definitions, which are never used. 11780 (shadow_tag): Delete unused var FN. 11781 * expr.c (cplus_expand_expr): Delete unused var ORIGINAL_TARGET. 11782 * init.c (build_new): Delete unused var ALLOC_TEMP. 11783 * method.c (hack_identifier): Delete unused var CONTEXT. 11784 (do_build_copy_constructor): Delete unused var NAME. 11785 (synthesize_method): Delete unused var BASE. 11786 * pt.c (lookup_template_class): Delete unused var CODE_TYPE_NODE. 11787 * rtti.c (build_headof): Delete unused var VPTR. 11788 (get_typeid): Delete unused var T. 11789 * typeck.c (build_conditional_expr): Delete unused vars ORIG_OP1 11790 and ORIG_OP2. 11791 (build_ptrmemfunc): Delete unused vars U and NINDEX. 11792 * typeck2.c (build_functional_cast): Delete unused var BINFO. 11793 11794Wed Jan 8 13:09:54 1997 Jason Merrill <jason@yorick.cygnus.com> 11795 11796 * search.c (lookup_field): Use IDENTIFIER_CLASS_VALUE to look up 11797 things in a type being defined. 11798 * decl.c (finish_enum): Reverse the values so that they are in 11799 the correct order. 11800 11801 * pt.c (instantiate_class_template): Don't initialize 11802 BINFO_BASETYPES until the vector is filled out. 11803 (unify): Don't abort on conflicting bindings, just fail. 11804 (instantiate_decl): Do push_tinst_level before any tsubsting. 11805 11806 * method.c (build_overload_value): Handle getting a 11807 TEMPLATE_CONST_PARM for a pointer. 11808 11809Tue Jan 7 14:00:58 1997 Jason Merrill <jason@yorick.cygnus.com> 11810 11811 * init.c (expand_member_init): Don't give 'not a base' error for 11812 templates. 11813 11814 * pt.c (instantiate_decl): Call import_export_decl later. 11815 11816 * pt.c (instantiate_class_template): Return a value. 11817 11818 * parse.y (extension): New rule for __extension__. 11819 (extdef, unary_expr, decl, component_decl): Use it. 11820 11821Tue Jan 7 09:20:28 1997 Mike Stump <mrs@cygnus.com> 11822 11823 * class.c (base_binfo): Remove unused base_has_virtual member. 11824 (finish_base_struct): Likewise. 11825 (finish_struct_1): Likewise. 11826 11827Tue Dec 31 20:25:50 1996 Mike Stump <mrs@cygnus.com> 11828 11829 * search.c (expand_upcast_fixups): Fix bogus code generation 11830 problem where the generated code uses the wrong index into the 11831 runtime built vtable on the stack. Old code could clobber random 11832 stack values. 11833 11834Tue Dec 31 15:16:56 1996 Mike Stump <mrs@cygnus.com> 11835 11836 * init.c (perform_member_init): Make sure the partial EH cleanups 11837 live on the function_obstack. 11838 11839Fri Dec 27 10:31:40 1996 Paul Eggert <eggert@twinsun.com> 11840 11841 * Make-lang.in (g++spec.o): Don't use $< with an explicit target; 11842 this isn't portable to some versions of `make' (e.g. Solaris 2.5.1). 11843 11844Tue Dec 24 10:24:03 1996 Jeffrey A Law <law@cygnus.com> 11845 11846 * decl.c (grokvardecl): Avoid ANSI style initialization. 11847 11848Sun Dec 22 04:22:06 1996 Jason Merrill <jason@yorick.cygnus.com> 11849 11850 * pt.c (tsubst): Tweak arg types for a FUNCTION_TYPE. 11851 11852Fri Dec 20 17:09:25 1996 Jason Merrill <jason@yorick.cygnus.com> 11853 11854 * pt.c (instantiate_class_template): Call grok_{ctor,op}_properties. 11855 11856Fri Dec 20 12:17:12 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 11857 11858 * g++spec.c (lang_specific_driver): Put missing hyphen in front of 11859 arguments we compare against. Start the count of I at 1, not 0, 11860 since argv[0] is still the command. 11861 11862Thu Dec 19 11:53:57 1996 Stan Shebs <shebs@andros.cygnus.com> 11863 11864 * lang-specs.h: Accept .cp as an C++ extension. 11865 11866Mon Dec 16 22:43:31 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 11867 11868 * cp-tree.h (ptr_reasonably_similar): Add decl. 11869 11870Thu Dec 12 15:00:35 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 11871 11872 * decl.c (grokvardecl): Change SPECBITS parm to be the SPECBITS_IN 11873 pointer. New local SPECBITS with the parm's value. 11874 (grokdeclarator): Pass &specbits down. 11875 11876 * parse.y (expr_no_commas): Make sure $$ is not an error_mark_node 11877 before we try to do C_SET_EXP_ORIGINAL_CODE on it. 11878 11879 * search.c (envelope_add_decl): Check that the CLASSTYPE_CID of 11880 CONTEXT is not 0 before we try to use TYPE_DERIVES_FROM. 11881 11882 * decl.c (cplus_expand_expr_stmt): Only expand the expr if EXP is 11883 not an error_mark_node. 11884 11885Sat Dec 7 17:20:22 1996 Jason Merrill <jason@yorick.cygnus.com> 11886 11887 * cp-tree.h (TYPE_MAIN_DECL): Use TYPE_STUB_DECL. 11888 * *.c: Use TYPE_MAIN_DECL instead of TYPE_NAME where appropriate. 11889 11890Fri Dec 6 14:40:09 1996 Jason Merrill <jason@yorick.cygnus.com> 11891 11892 * decl.c (grokdeclarator): When giving an anonymous struct a name, 11893 replace TYPE_NAME instead of TYPE_IDENTIFIER (so TYPE_STUB_DECL is 11894 not affected). 11895 11896 * typeck2.c (build_m_component_ref): If component is a pointer 11897 to data member, resolve the OFFSET_REF now. 11898 11899 * call.c (convert_like): Don't go into infinite recursion. 11900 11901 * pt.c (coerce_template_parms): Use tsubst_expr for non-type args. 11902 11903 * class.c (finish_struct_1): Set DECL_ARTIFICIAL on the vptr. 11904 * tree.c (layout_basetypes): And on the vbase ptr. 11905 11906Thu Dec 5 02:11:28 1996 Jason Merrill <jason@yorick.cygnus.com> 11907 11908 * decl.c (BOOL_TYPE_SIZE): Define in terms of POINTER_SIZE or 11909 CHAR_TYPE_SIZE so bool is always the same size as another type. 11910 11911 * decl.c (pushtag): Set DECL_IGNORED_P for DWARF, too. 11912 11913Tue Dec 3 23:18:37 1996 Jason Merrill <jason@yorick.cygnus.com> 11914 11915 * decl2.c (grok_x_components): Remove synthesized methods from 11916 TYPE_METHODS of an anonymous union, complain about member 11917 functions. 11918 * decl.c (shadow_tag): Wipe out memory of synthesized methods in 11919 anonymous unions. 11920 (finish_function): Just clear the DECL_RTL of our arguments. 11921 11922Fri Nov 29 21:54:17 1996 Jason Merrill <jason@yorick.cygnus.com> 11923 11924 * decl2.c (finish_file): Emit DWARF debugging info for static data 11925 members. 11926 11927 * pt.c (tsubst): If t is a stub decl, return the stub decl for type. 11928 11929Wed Nov 27 14:47:15 1996 Bob Manson <manson@charmed.cygnus.com> 11930 11931 * typeck.c (build_component_ref): Don't die if COMPONENT isn't a 11932 IDENTIFIER_NODE. 11933 11934Wed Nov 27 16:05:19 1996 Michael Meissner <meissner@tiktok.cygnus.com> 11935 11936 * Make-lang.in (g++-cross$(exeext)): Fix typo. 11937 11938Wed Nov 27 08:14:00 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 11939 11940 Make the g++ driver now be a standalone program, rather than one 11941 that tries to run the gcc driver after munging up the options. 11942 * Make-lang.in (g++.c, g++spec.o): New rules. 11943 (g++.o): New rule, based on gcc.o with -DLANG_SPECIFIC_DRIVER 11944 added. 11945 (g++$(exeext)): New rule, based on xgcc rule. 11946 (g++-cross$(exeext)): Now just copies g++$(exeext) over. 11947 * g++spec.c: New file. 11948 * g++.c: Removed file. 11949 11950Tue Nov 26 19:01:09 1996 Mike Stump <mrs@cygnus.com> 11951 11952 * cvt.c (build_up_reference): Arrange for any temporary values 11953 that have been keep in registers until now to be put into memory. 11954 11955Mon Nov 25 15:16:41 1996 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 11956 11957 * Make-lang.in (c++.stage[1234]): Depend upon stage[1-4]-start, so 11958 that make -j3 bootstrap works better. 11959 11960Sun Nov 24 02:09:39 1996 Jason Merrill <jason@yorick.cygnus.com> 11961 11962 * decl.c (pushtag): Do pushdecl for anon tags. 11963 11964Thu Nov 21 16:30:24 1996 Jason Merrill <jason@yorick.cygnus.com> 11965 11966 * typeck.c (c_expand_return): Fix logic. 11967 (unary_complex_lvalue): Avoid unused warning on address of INIT_EXPR. 11968 11969Wed Nov 20 18:47:31 1996 Bob Manson <manson@charmed.cygnus.com> 11970 11971 * g++.c (main): Make sure arglist has a final NULL entry. Add 11972 PEXECUTE_LAST to the flags passed to pexecute, as otherwise 11973 stdin/stdout of the invoked program are redirected to 11974 nowheresville. 11975 11976Tue Nov 19 16:12:44 1996 Jason Merrill <jason@yorick.cygnus.com> 11977 11978 * decl.c (implicitly_declare): Set DECL_ARTIFICIAL. 11979 11980Tue Nov 19 15:48:19 1996 Mike Stump <mrs@cygnus.com> 11981 11982 * init.c (resolve_offset_ref): Handle obj.vfn better. 11983 * typeck.c (build_component_ref): Set TREE_TYPE on result from 11984 build_vfn_ref. 11985 11986Tue Nov 19 13:14:33 1996 Mike Stump <mrs@cygnus.com> 11987 11988 * typeck.c (convert_for_assignment): Also handle anachronistic 11989 implicit conversions from (::*)() to cv void*. 11990 * cvt.c (cp_convert_to_pointer): Likewise. 11991 11992Mon Nov 18 17:05:26 1996 Jason Merrill <jason@yorick.cygnus.com> 11993 11994 * lex.c (handle_cp_pragma): Fix bogus warning. 11995 11996Mon Nov 18 16:10:43 1996 Mike Stump <mrs@cygnus.com> 11997 11998 * cvt.c (cp_convert_to_pointer): Avoid thinking a POINTER_TYPE 11999 (METHOD_TYPE) is a TYPE_PTRMEMFUNC_P. 12000 12001Thu Nov 14 23:18:17 1996 Jason Merrill <jason@yorick.cygnus.com> 12002 12003 * class.c (finish_struct_1): Support DWARF2_DEBUG. 12004 * search.c (dfs_debug_mark): Likewise. 12005 * decl2.c (finish_vtable_vardecl): Likewise. 12006 * decl.c (pushtag, finish_enum): Likewise. 12007 * lex.c (check_newline): Use debug_* instead of calling *out 12008 functions directly. 12009 12010Thu Nov 14 15:21:46 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 12011 12012 * Make-lang.in (cplib2.ready): Add else clause to avoid problems 12013 on some picky hosts. 12014 12015Wed Nov 13 12:32:07 1996 Jason Merrill <jason@yorick.cygnus.com> 12016 12017 * class.c (finish_struct_1): A class has a non-trivial copy 12018 constructor if it has virtual functions. 12019 12020 * cvt.c (cp_convert): Always call a constructor. 12021 12022 * call.c (reference_binding): Still tack on a REF_BIND 12023 for bad conversions. 12024 (build_user_type_conversion_1): Propagate ICS_BAD_FLAG. 12025 12026 * typeck.c (convert_arguments): Pass LOOKUP_ONLYCONVERTING. 12027 (c_expand_return): Likewise. 12028 * typeck2.c (digest_init): Likewise for { }. 12029 * init.c (expand_aggr_init_1): Keep the CONSTRUCTOR handling. 12030 * cvt.c (cp_convert): Handle failure better. 12031 12032Wed Nov 13 11:51:20 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 12033 12034 * g++.c (main): Also set PEXECUTE_SEARCH, to make the invocation 12035 of GCC be path-relative. 12036 12037Wed Nov 13 11:27:16 1996 Michael Meissner <meissner@tiktok.cygnus.com> 12038 12039 * Make-lang.in (g++-cross): G++-cross doesn't need version.o, but 12040 it does need choose-temp.o and pexecute.o. 12041 12042Wed Nov 13 07:53:38 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 12043 12044 * g++.c (error) [!HAVE_VPRINTF]: Put error back for the only time 12045 that we still use it. 12046 (P_tmpdir, R_OK, W_OK, X_OK) [__MSDOS__]: Delete unnecessary macros. 12047 12048Wed Nov 13 02:00:26 1996 Jason Merrill <jason@yorick.cygnus.com> 12049 12050 * init.c (expand_default_init): Avoid calling constructors to 12051 initialize reference temps. 12052 12053 * cvt.c (convert_to_reference): Fix. 12054 12055Tue Nov 12 19:10:07 1996 Jason Merrill <jason@yorick.cygnus.com> 12056 12057 * cvt.c (cp_convert): Simplify for flag_ansi_overloading. 12058 (convert_to_reference): Likewise. 12059 * typeck.c (convert_for_initialization): Likewise. 12060 * init.c (expand_default_init): Likewise. 12061 (expand_aggr_init_1): Likewise. 12062 * cp-tree.h (CONV_NONCONVERTING): Lose. 12063 * typeck.c (build_c_cast): Lose allow_nonconverting parm. 12064 * *.c: Adjust. 12065 * call.c (build_user_type_conversion_1): Assume LOOKUP_ONLYCONVERTING. 12066 12067Tue Nov 12 16:29:04 1996 Brendan Kehoe <brendan@canuck.cygnus.com> 12068 12069 * pt.c (tsubst_expr): Reverse args to expand_start_catch_block. 12070 12071Tue Nov 12 15:26:17 1996 Jason Merrill <jason@yorick.cygnus.com> 12072 12073 * init.c (expand_aggr_init_1): Don't crash on non-constructor 12074 TARGET_EXPR. 12075 12076Tue Nov 12 14:00:50 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 12077 12078 * g++.c: Include gansidecl.h. 12079 (VPROTO, PVPROTO, VA_START): Delete. 12080 (choose_temp_base_try, choose_temp_base, perror_exec, 12081 run_dos) [__MSDOS__]: Delete fns. 12082 (pfatal_with_name): Delete fn. 12083 (temp_filename): Declare like in gcc.c. 12084 (pexecute, pwait, choose_temp_base): Declare from gcc.c. 12085 (error_count, signal_count): Define. 12086 (error): Delete both definitions. 12087 (PEXECUTE_{FIRST,LAST,SEARCH,VERBOSE}): Define from gcc.c. 12088 (pfatal_pexecute): Add fn from gcc.c. 12089 (main): Rename local VERBOSE var to VERBOSE_FLAG. Rewrite the 12090 code to use the pexecute stuff also used by gcc.c. 12091 (MIN_FATAL_STATUS): Define. 12092 * Make-lang.in (g++): Add dependency on and linking with 12093 choose-temp.o and pexecute.o. 12094 12095 * cp-tree.h: Include gansidecl.h. 12096 (STDIO_PROTO): Delete #undef/#define. 12097 * cvt.c (NULL): Delete #undef/#define. 12098 * expr.c (NULL): Likewise. 12099 * init.c (NULL): Likewise. 12100 * rtti.c (NULL): Likewise. 12101 * xref.c (NULL): Likewise. 12102 12103 * cp-tree.h (build_user_type_conversion): Add prototype. 12104 * call.c (build_user_type_conversion): Delete prototype. Correct 12105 decl of FLAGS arg to be an int. 12106 * cvt.c (build_user_type_conversion): Likewise. 12107 12108Tue Nov 12 12:16:20 1996 Jason Merrill <jason@yorick.cygnus.com> 12109 12110 * cp-tree.def: Add TRY_BLOCK and HANDLER. 12111 * except.c (expand_start_catch_block): Support templates. 12112 * parse.y (try_block, handler_seq): Likewise. 12113 * pt.c (tsubst_expr): Support TRY_BLOCK and HANDLER. 12114 12115Mon Nov 11 13:57:31 1996 Jason Merrill <jason@yorick.cygnus.com> 12116 12117 * pt.c (current_template_args): New fn. 12118 (push_template_decl): Use it. 12119 * decl.c (grokdeclarator): Use it. 12120 12121 * decl2.c (build_expr_from_tree): Dereference ref vars. 12122 12123 * decl.c (grokdeclarator): Generalize handling of TYPENAME_TYPEs in 12124 the decl-specifier-seq. 12125 12126 * decl.c (grok_op_properties): Don't force the type of a conversion 12127 op to be complete. Don't warn about converting to the same type 12128 for template instantiations. 12129 12130 * decl2.c (finish_file): Don't call instantiate_decl on synthesized 12131 methods. 12132 12133Mon Nov 11 13:20:34 1996 Bob Manson <manson@charmed.cygnus.com> 12134 12135 * typeck.c (get_delta_difference): Remove previous bogusness. 12136 Don't give errors if force is set. 12137 12138Fri Nov 8 17:38:44 1996 Jason Merrill <jason@yorick.cygnus.com> 12139 12140 * decl2.c (finish_file): Don't emit debug info. 12141 * decl.c (pushdecl): Lose obsolete code. 12142 (grokdeclarator): Still do the long long thing after complaining. 12143 * search.c (note_debug_info_needed): Don't do anything if we're in a 12144 template. 12145 * method.c (synthesize_method): For non-local classes, 12146 push_to_top_level first. 12147 12148Fri Nov 8 11:52:28 1996 Bob Manson <manson@charmed.cygnus.com> 12149 12150 * typeck.c (get_delta_difference): Add no_error parameter. 12151 (build_ptrmemfunc): Call get_delta_difference with no_error set; 12152 we don't want error messages when converting unrelated 12153 pointer-to-member functions. 12154 12155Thu Nov 7 11:16:24 1996 Mike Stump <mrs@cygnus.com> 12156 12157 * error.c (dump_expr): Improve the wording on error messages that 12158 involve pointer to member functions. 12159 12160Tue Nov 5 17:12:05 1996 Mike Stump <mrs@cygnus.com> 12161 12162 * cvt.c (cp_convert_to_pointer): Move code for conversions from 12163 (::*)() to void* or (*)() up a bit, so that we can convert from 12164 METHOD_TYPEs as well. 12165 12166Tue Nov 5 14:54:17 1996 Jason Merrill <jason@yorick.cygnus.com> 12167 12168 * rtti.c (get_tinfo_fn): Make sure 'type' is permanent. 12169 There are no 'member' types. 12170 (get_tinfo_fn_dynamic): Diagnose typeid of overloaded fn. 12171 (build_x_typeid): Handle errors. 12172 12173Mon Nov 4 17:43:12 1996 Mike Stump <mrs@cygnus.com> 12174 12175 * typeck.c (convert_for_assignment): Handle anachronistic implicit 12176 conversions from (::*)() to void* or (*)(). 12177 * cvt.c (cp_convert_to_pointer): Likewise. 12178 (cp_convert_to_pointer_force): Remove cp_convert_to_pointer 12179 conversions from here. 12180 * decl2.c (lang_decode_option): Add -W{no-,}pmf-conversions. 12181 * lang-options.h: Likewise. 12182 * decl2.c (warn_pmf2ptr): Define. 12183 * cp-tree.h: Declare it. 12184 * typeck2.c (digest_init): Allow pmfs down into 12185 convert_for_initialization. 12186 12187Sun Nov 3 09:43:00 1996 Jason Merrill <jason@yorick.cygnus.com> 12188 12189 * typeck.c (c_expand_return): Fix for returning overloaded fn. 12190 12191Fri Nov 1 08:53:17 1996 Jason Merrill <jason@yorick.cygnus.com> 12192 12193 * cp-tree.h (DIRECT_BIND): Change from INDIRECT_BIND. 12194 * decl.c (grok_reference_init): Pass DIRECT_BIND. 12195 * cvt.c (build_up_reference): Don't mark 'this' addressable. Use 12196 DIRECT_BIND. 12197 * call.c (convert_like): Don't pass INDIRECT_BIND. 12198 * typeck.c (convert_arguments): Likewise. 12199 * typeck.c (mark_addressable): Allow &this if flag_this_is_variable. 12200 12201Thu Oct 31 17:08:49 1996 Jason Merrill <jason@yorick.cygnus.com> 12202 12203 * typeck.c (mark_addressable): Support TARGET_EXPR, unify with 12204 similar code in build_up_ref. 12205 * cvt.c (build_up_reference): Drastically simplify. 12206 12207Mon Oct 28 12:45:05 1996 Jeffrey A Law <law@cygnus.com> 12208 12209 * typeck.c (signed_or_unsigned_type): If the given type already 12210 as the correct signedness, then just return it. 12211 12212 * typeck.c ({un,}signed_type): If can't do anything, call 12213 signed_or_unsigned_type. 12214 12215Thu Oct 24 14:21:59 1996 Bob Manson <manson@charmed.cygnus.com> 12216 12217 * decl2.c (copy_assignment_arg_p): Don't buy the farm if 12218 current_class_type is NULL. 12219 12220Wed Oct 23 00:43:10 1996 Jason Merrill <jason@gerbil.cygnus.com> 12221 12222 * class.c (finish_struct_1): Avoid empty structs by adding a field 12223 so layout_type gets the mode right. 12224 12225 * typeck.c (c_expand_return): Drastically simplify. 12226 12227Mon Oct 21 22:34:02 1996 Jason Merrill <jason@yorick.cygnus.com> 12228 12229 * typeck.c (decay_conversion): Handle overloaded methods. 12230 12231Fri Oct 18 16:03:48 1996 Jason Merrill <jason@yorick.cygnus.com> 12232 12233 * call.c (build_over_call): A TARGET_EXPR has side-effects. 12234 12235Thu Oct 17 11:31:59 1996 Mike Stump <mrs@cygnus.com> 12236 12237 * cvt.c (convert_to_pointer_force): Add code to support pointer to 12238 member function to pointer to function conversions. 12239 * init.c (resolve_offset_ref): Add code to allow faked up objects, 12240 ignoring them if they are not used, and giving an error, if they 12241 are needed. 12242 * typeck.c (get_member_function_from_ptrfunc): Fold e1 to improve 12243 code, and so that we can give an error, if we needed an object, 12244 and one was not provided. 12245 (build_c_cast): Don't call default_conversion when we want to 12246 convert to pointer to function from a METHOD_TYPE. 12247 12248Mon Oct 14 00:28:51 1996 Jason Merrill <jason@yorick.cygnus.com> 12249 12250 * Make-lang.in (cplib2.ready): Fix logic. 12251 12252 * decl.c (shadow_tag): Only complain about non-artificial function 12253 members. 12254 12255 * class.c (finish_struct_1): Add synthesized methods to TYPE_METHODS. 12256 12257Fri Oct 11 16:12:40 1996 Jason Merrill <jason@yorick.cygnus.com> 12258 12259 * expr.c (cplus_expand_expr): Pre-tweak call_target like 12260 expand_inline_function would. 12261 12262 * pt.c (mark_decl_instantiated): If extern_p, call 12263 mark_inline_for_output. 12264 12265Thu Oct 10 15:58:08 1996 Mike Stump <mrs@cygnus.com> 12266 12267 * typeck.c (unary_complex_lvalue): Add code to handle intermediate 12268 pmd conversions. 12269 12270 * typeck.c (get_delta_difference): Fix wording, as we can be used 12271 for pointer to data members. 12272 12273Tue Oct 8 12:43:51 1996 Bob Manson <manson@charmed.cygnus.com> 12274 12275 * pt.c (tsubst): If the function decl isn't a member of this 12276 template, return a copy of the decl (including copying the 12277 lang-specific part) so we don't hose ourselves later. 12278 12279Thu Oct 3 16:24:28 1996 Jason Merrill <jason@yorick.cygnus.com> 12280 12281 * class.c (finish_struct): Remove DWARF-specific tag handling. 12282 * decl.c (pushtag): Likewise. 12283 (finish_function): Always clear DECL_ARGUMENTS on function decls with 12284 no saved RTX. 12285 * decl2.c (finish_file): Emit DWARF debugging info for static data 12286 members. 12287 12288Wed Oct 2 21:58:01 1996 Bob Manson <manson@charmed.cygnus.com> 12289 12290 * decl.c (duplicate_decls): Make sure the old DECL_LANG_SPECIFIC 12291 isn't the same as the new one before we whack it. 12292 12293Mon Sep 30 13:38:24 1996 Jason Merrill <jason@yorick.cygnus.com> 12294 12295 * class.c, cp-tree.h, cvt.c, decl.c, decl2.c, gxx.gperf, hash.h, 12296 lex.c, method.c, parse.y, typeck.c, typeck2.c: Remove 12297 warn_traditional and warn_strict_prototypes; remove ancient 12298 'overload' code; remove references to flag_traditional. 12299 12300Mon Sep 30 12:58:40 1996 Mike Stump <mrs@cygnus.com> 12301 12302 * input.c (sub_getch): Handle 8-bit characters in string literals. 12303 12304Sun Sep 29 03:12:01 1996 Jason Merrill <jason@yorick.cygnus.com> 12305 12306 * tree.c (mapcar): Handle CONSTRUCTORs. 12307 (copy_to_permanent): Handle expression_obstack properly. 12308 12309 * Make-lang.in (cplib2.txt): Also depend on the headers. 12310 12311 * rtti.c (get_tinfo_var): Don't assume that POINTER_SIZE == 12312 INT_TYPE_SIZE. 12313 (expand_class_desc): Use USItype for offset field. 12314 * tinfo.h (struct __class_type_info): Likewise. 12315 12316 * method.c (build_overload_int): TYPE_PRECISION should be applied 12317 to types. 12318 12319Sat Sep 28 14:44:50 1996 Jason Merrill <jason@yorick.cygnus.com> 12320 12321 * call.c (build_new_op): A COND_EXPR involving void must be a 12322 builtin. 12323 12324Fri Sep 27 16:40:30 1996 Jason Merrill <jason@yorick.cygnus.com> 12325 12326 * typeck.c (build_x_component_ref): New fn. 12327 (build_object_ref): Use it. 12328 * parse.y (primary): Use it. 12329 * decl2.c (build_expr_from_tree): Use it. 12330 * cp-tree.h: Declare it. 12331 12332 * decl.c (start_decl): Variable-sized arrays cannot be initialized. 12333 * error.c (dump_type_suffix): Handle variable arrays. 12334 12335Fri Sep 27 13:14:05 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 12336 12337 * Make-lang.in (exception.o): Put back compiling it with -fPIC. 12338 12339Fri Sep 27 03:00:09 1996 Jason Merrill <jason@yorick.cygnus.com> 12340 12341 * decl.c (lookup_name_real): Don't try to look up anything in a 12342 TYPENAME_TYPE. 12343 12344 * tinfo2.cc (__throw_type_match_rtti): Oops. 12345 12346Thu Sep 26 22:11:05 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 12347 12348 * Make-lang.in (exception.o): Use -fno-PIC for now. 12349 12350Thu Sep 26 10:59:00 1996 Jason Merrill <jason@yorick.cygnus.com> 12351 12352 * rtti.c (build_dynamic_cast): Pass tinfo fns rather than 12353 calling them. 12354 (get_tinfo_fn_dynamic): Extracted from build_typeid. 12355 * tinfo2.cc (__dynamic_cast): Adjust. 12356 12357 * rtti.c (build_typeid): Use resolves_to_fixed_type_p. 12358 (build_x_typeid): Likewise. 12359 12360 * parse.y: Call build_x_typeid instead of build_typeid. 12361 * cp-tree.def: Add TYPEID_EXPR. 12362 * pt.c (tsubst_copy): Handle typeid. 12363 * decl2.c (build_expr_from_tree): Likewise. 12364 * rtti.c (build_x_typeid): Throw bad_typeid from here. 12365 (build_typeid): Not here. 12366 * cp-tree.h: Declare build_x_typeid. 12367 12368Wed Sep 25 17:26:16 1996 Jason Merrill <jason@yorick.cygnus.com> 12369 12370 * call.c (convert_like): Pull out constant values. 12371 12372 * tree.c (mapcar): Use build_cplus_array_type, not build_array_type. 12373 12374Wed Sep 25 17:28:53 1996 Michael Meissner <meissner@tiktok.cygnus.com> 12375 12376 * decl.c (init_decl_processing): Create short int types before 12377 creating size_t in case a machine description needs to use 12378 unsigned short for size_t. 12379 12380Tue Sep 24 18:18:44 1996 Jason Merrill <jason@yorick.cygnus.com> 12381 12382 * Make-lang.in (exception.o): Turn off pic. 12383 12384 * tinfo2.cc (__throw_type_match_rtti): Fix cv-variants of the same 12385 type, multi-level ptr conversions. 12386 12387 * rtti.c (call_void_fn): Renamed and genericized from throw_bad_cast. 12388 (throw_bad_cast): Use it. 12389 (throw_bad_typeid): New fn. 12390 (build_typeid): Throw bad_typeid as needed. 12391 Use build_call. 12392 (synthesize_tinfo_fn): Handle functions and arrays before checking 12393 for cv-quals. 12394 12395 * Remove .h from standard C++ headers, add new.h, move into inc 12396 subdirectory. 12397 12398 * exception*: Remove pointer from object, constructors. Add 12399 default exception::what that uses type_info::name. Add 12400 __throw_bad_typeid. 12401 12402 * init.c (build_new): Don't add a cookie to new (void *) T[2]. 12403 12404Mon Sep 23 15:21:53 1996 Jason Merrill <jason@yorick.cygnus.com> 12405 12406 * Make-lang.in: Building C++ code depends on cc1plus. 12407 12408Mon Sep 23 12:38:40 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 12409 12410 * decl.c (struct saved_scope): Declare PROCESSING_TEMPLATE_DECL as 12411 a HOST_WIDE_INT, not a tree. 12412 12413Mon Sep 23 12:36:02 1996 Jason Merrill <jason@yorick.cygnus.com> 12414 12415 * exception.cc: Don't include <stdlib.h>. 12416 12417 * Make-lang.in (c++.clean): Remove cplib2.*. 12418 12419Mon Sep 23 09:42:19 1996 Doug Evans <dje@canuck.cygnus.com> 12420 12421 * parse.y (component_decl_1, component_costructor_declarator case): 12422 Pass attributes/prefix_attributes in tree list. 12423 12424Mon Sep 23 01:18:50 1996 Jason Merrill <jason@yorick.cygnus.com> 12425 12426 * tinfo{,2}.cc: #include <stddef.h> instead of <stdlib.h>. 12427 12428Sun Sep 22 05:31:22 1996 Jason Merrill <jason@yorick.cygnus.com> 12429 12430 * lex.c (do_identifier): Don't do deferred lookup in a template 12431 header. 12432 12433 * typeck2.c (store_init_value): Oops. 12434 12435 * new.{h,cc}, exception.{h,cc}, typeinfo.h, tinfo{2.cc,.cc,.h}: 12436 New files for C++ lang-support library. 12437 * Make-lang.in (CXX_EXTRA_HEADERS): Define. 12438 (CXX_LIB2FUNCS): Define. 12439 And rules for building the C++ lang-support code. 12440 * config-lang.in (headers): Define. 12441 (lib2funcs): Define. 12442 12443Sat Sep 21 19:17:28 1996 Jason Merrill <jason@yorick.cygnus.com> 12444 12445 * decl2.c (build_expr_from_tree): If CONSTRUCTOR has a type, call 12446 digest_init. 12447 * pt.c (tsubst_copy): Compute type for CONSTRUCTOR. 12448 * typeck2.c (store_init_value): Check for initializing pmf with { } 12449 here. 12450 (process_init_constructor): Not here. 12451 12452Thu Sep 19 16:41:07 1996 Jason Merrill <jason@yorick.cygnus.com> 12453 12454 * pt.c (begin_template_parm_list): Increment 12455 processing_template_decl here. 12456 (end_template_parm_list): Not here. 12457 (process_template_parm): No need to add 1 to it now. 12458 * *.c: Use processing_template_decl instead of current_template_parms 12459 to check for being in a template. 12460 12461 * pt.c (uses_template_parms): Handle SCOPE_REF. Fix CONSTRUCTOR. 12462 (tsubst_copy): Handle CONSTRUCTOR. 12463 (instantiate_decl): Set up context properly for variables. 12464 * decl2.c (build_expr_from_tree): Handle CONSTRUCTOR. 12465 * class.c (finish_struct): Reverse CLASSTYPE_TAGS. 12466 12467Wed Sep 18 13:30:20 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 12468 12469 * lex.c (enum tree_node_kind) [GATHER_STATISTICS]: Put the enum back. 12470 12471Wed Sep 18 04:24:07 1996 Jason Merrill <jason@yorick.cygnus.com> 12472 12473 * method.c (make_thunk): Call comdat_linkage before setting the 12474 TREE_CODE. 12475 12476 * decl2.c (comdat_linkage): Use make_decl_one_only. 12477 (import_export_decl): Likewise. 12478 * decl.c (init_decl_processing): Check supports_one_only instead of 12479 SUPPORTS_WEAK. 12480 12481Sat Sep 14 08:34:41 1996 Jason Merrill <jason@yorick.cygnus.com> 12482 12483 * decl2.c (grokfield): Tighten checking for access decls. 12484 12485 * decl.c (make_typename_type): Resolve references to 12486 current_class_type. Set CLASSTYPE_GOT_SEMICOLON. 12487 (lookup_name_real): Types that depend on a template parameter get 12488 an implicit 'typename' unless they're in the current scope. 12489 (start_decl_1): We don't care about incomplete types that depend 12490 on a template parm. 12491 (grokdeclarator): Resolve 'typename's in the type specifier that 12492 refer to members of the current scope. 12493 12494 * call.c (build_over_call): Remove 'inline called before 12495 definition' diagnostic. 12496 (build_method_call): Likewise. 12497 * decl.c (duplicate_decls): Downgrade 'used before declared 12498 inline' to a warning, only with -Winline. 12499 12500Fri Sep 13 17:31:40 1996 Stan Shebs <shebs@andros.cygnus.com> 12501 12502 * mpw-make.sed: Fix include paths, add @DASH_C_FLAG@ to compile. 12503 12504Wed Sep 11 22:38:13 1996 Gerald Baumgartner <gb@cs.purdue.edu> 12505 12506 * call.c (build_method_call): When calling a signature 12507 default implementation, as in other cases, let instance_ptr simply 12508 be instance. 12509 12510Wed Sep 11 22:14:44 1996 Mike Stump <mrs@cygnus.com> 12511 12512 * parse.y (simple_stmt): Cleanup and use do_poplevel (). 12513 12514Wed Sep 11 22:10:48 1996 Mike Stump <mrs@cygnus.com> 12515 12516 * except.c (expand_start_catch_block): Add a pushlevel so that -g 12517 works on hppa and SPARC. 12518 12519Wed Sep 11 10:18:06 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 12520 12521 * typeck.c (build_indirect_ref): Catch PTR being an error_mark_node. 12522 12523Mon Sep 9 19:51:14 1996 Gerald Baumgartner <gb@cs.purdue.edu> 12524 12525 * call.c (build_over_call): Check first whether DECL_CONTEXT exists 12526 before testing whether it's a signature. 12527 12528Sun Sep 8 16:06:57 1996 Gerald Baumgartner <gb@cs.purdue.edu> 12529 12530 * call.c (build_new_method_call): Don't complain about signature 12531 pointers and references not being an aggr type. 12532 (build_this): If a signature pointer or reference was passed in, 12533 just return it. 12534 (build_new_method_call): If instance is a signature pointer, set 12535 basetype to the signature type of instance. 12536 * sig.c (build_signature_method_call): Deleted basetype and 12537 instance parameters, they can be found as the DECL_CONTEXT of 12538 function and as the first argument passed in. 12539 * cp-tree.h: Changed declaration of build_signature_method_call. 12540 * call.c (build_method_call): Deleted first two arguments in call 12541 of build_signature_method_call. 12542 (build_over_call): Added call to build_signature_method_call. 12543 12544Thu Sep 5 16:51:28 1996 Jason Merrill <jason@yorick.cygnus.com> 12545 12546 * typeck.c (build_c_cast): Don't tack a non_lvalue_expr onto a 12547 target_expr. 12548 12549Thu Sep 5 10:05:38 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 12550 12551 * cvt.c (convert_to_reference): Use %#T, not %#D, for error. 12552 12553Wed Sep 4 17:16:09 1996 Bob Manson <manson@charmed.cygnus.com> 12554 12555 * except.c (expand_start_try_stmts): Move to except.c in the backend. 12556 (expand_end_try_stmts): Remove. 12557 12558 * init.c (perform_member_init): Use add_partial_entry () instead 12559 of directly manipulating lists. 12560 (emit_base_init): Likewise. 12561 12562Wed Sep 4 12:14:36 1996 Mike Stump <mrs@cygnus.com> 12563 12564 * except.c (expand_exception_blocks): Always make sure USE and 12565 CLOBBER insns that came at the end still do, the backend relies 12566 upon this. 12567 12568Wed Sep 4 07:44:48 1996 Jason Merrill <jason@yorick.cygnus.com> 12569 12570 * call.c (build_over_call): We can only use a TARGET_EXPR of the 12571 right type. 12572 12573Tue Sep 3 19:26:05 1996 Jason Merrill <jason@yorick.cygnus.com> 12574 12575 * cvt.c (convert_to_reference): Revert last change, don't complain 12576 about temp without target decl. 12577 12578Tue Sep 3 10:22:56 1996 Mike Stump <mrs@cygnus.com> 12579 12580 * decl.c (grokdeclarator): Don't core dump when void() is given. 12581 12582Tue Sep 3 02:38:56 1996 Jason Merrill <jason@yorick.cygnus.com> 12583 12584 * decl.c (copy_args_p): Don't crash. 12585 12586Fri Aug 30 14:26:57 1996 Mike Stump <mrs@cygnus.com> 12587 12588 * pt.c (tsubst): And support template args inside the exception 12589 specification. 12590 12591 * pt.c (tsubst): Add support for exception specifications in 12592 template functions. 12593 12594Fri Aug 30 10:01:55 1996 Mike Stump <mrs@cygnus.com> 12595 12596 * cp-tree.def (DECL_STMT): Eliminate the throw spec field, only 3 12597 fields now. 12598 * cp-tree.h (start_decl): Eliminate the throw spec parameter. 12599 (start_function): Likewise. 12600 (start_method): Likewise. 12601 (grokfield): Likewise. 12602 (make_call_declarator): Add throw spec parameter. 12603 (set_quals_and_spec): Add routine. 12604 * lex.c (set_quals_and_spec): Likewise. 12605 * decl.h (grokdeclarator): Eliminate the throw spec parameter. 12606 * decl.c (shadow_tag): Eliminate the throw spec parameter to 12607 grokdeclarator. 12608 (groktypename): Likewise. 12609 (start_decl): Eliminate the throw spec parameter. Eliminate the 12610 throw spec parameter to grokdeclarator. Eliminate the throw spec 12611 field in DECL_STMT. 12612 (cp_finish_decl): Eliminate the throw spec field in DECL_STMT. 12613 (grokfndecl): Remove useless set of raises. 12614 (grokdeclarator): Eliminate the throw spec parameter. Eliminate 12615 the throw spec parameter to start_decl. Pull the throw spec out 12616 of the call declarator. 12617 (grokparms): Eliminate the throw spec parameter to grokdeclarator. 12618 (start_function): Eliminate the throw spec parameter. Eliminate 12619 the throw spec parameter to grokdeclarator. 12620 (start_method): Likewise. 12621 * decl2.c (grokfield): Likewise. 12622 (grokbitfield): Eliminate the throw spec parameter to grokdeclarator. 12623 (grokoptypename): Likewise. 12624 (finish_file): Eliminate the throw spec parameter to 12625 start_function. Add throw spec to make_call_declarator. 12626 * except.c (init_exception_processing): Add throw spec to 12627 make_call_declarator. Eliminate the throw spec parameter to 12628 start_decl. 12629 (expand_start_catch_block): Eliminate the throw spec parameter to 12630 grokdeclarator. 12631 (expand_builtin_throw): Add throw spec to make_call_declarator. 12632 Eliminate the throw spec parameter to start_function. 12633 (start_anon_func): Likewise. 12634 * lex.c (make_call_declarator): Add throw spec parameter. 12635 (set_quals_and_spec): New routine. 12636 (cons_up_default_function): Add throw spec to make_call_declarator. 12637 Eliminate the throw spec parameter to grokfield. 12638 * method.c (synthesize_method): Eliminate the throw spec parameter 12639 to start_function. 12640 * pt.c (process_template_parm): Eliminate the throw spec parameter 12641 to grokdeclarator. 12642 (tsubst): Add throw spec to make_call_declarator. 12643 (tsubst_expr): Eliminate the throw spec parameter to start_decl. 12644 (do_function_instantiation): Eliminate the throw spec parameter to 12645 grokdeclarator. Eliminate the throw spec parameter to 12646 start_function. 12647 * rtti.c (synthesize_tinfo_fn): Eliminate the throw spec parameter 12648 to start_function. 12649 * parse.y (datadef): Remove non-winning optimization. 12650 (decl): Likewise. 12651 (fndef): Remove ambiguous error productions uncovered by grammar 12652 fixing. 12653 (constructor_declarator): Add exception_specification_opt here. 12654 (component_constructor_declarator): Likewise. 12655 (direct_after_type_declarator): Likewise. 12656 (complex_direct_notype_declarator): Likewise. 12657 (direct_abstract_declarator): Likewise. 12658 (fn.def1): Remove exception_specification_opt. 12659 (fn.def2): Likewise. 12660 (condition): Likewise. 12661 (initdcl0): Likewise. 12662 (initdcl): Likewise. 12663 (notype_initdcl0): Likewise. 12664 (nomods_initdcl0): Likewise. 12665 (component_decl_1): Likewise. 12666 (component_declarator): Likewise. 12667 (after_type_component_declarator0): Likewise. 12668 (after_type_component_declarator): Likewise. 12669 (notype_component_declarator): Likewise. 12670 12671Wed Aug 28 01:40:30 1996 Jason Merrill <jason@yorick.cygnus.com> 12672 12673 * call.c (build_over_call): Also use an INIT_EXPR when 12674 initializing anything from an rvalue. 12675 12676 * call.c (build_over_call): Call stabilize_reference when building 12677 an INIT_EXPR instead of calling the copy ctor. 12678 12679 * call.c (joust): Extend the previous change to all comparisons. 12680 12681 * decl2.c, method.c, lex.c: Use MAKE_DECL_ONE_ONLY and 12682 NO_LINKAGE_HEURISTICS. 12683 12684 * decl2.c (finish_file): Emit any statics that weren't already. 12685 12686 * typeck.c (build_static_cast): Implement. 12687 * tree.c (build_cplus_new): Handle getting a TARGET_EXPR. 12688 * decl.c (grokparms): Use can_convert_arg instead of 12689 implicit_conversion directly. 12690 (copy_args_p): New fn. 12691 * cvt.c (convert_to_reference): Don't complain about temp with 12692 static_cast. 12693 (build_up_reference): Handle TARGET_EXPRs. 12694 * call.c (build_over_call): Elide unnecessary temps. 12695 (can_convert*): Use new overloading code. 12696 12697Tue Aug 27 13:12:21 1996 Jason Merrill <jason@yorick.cygnus.com> 12698 12699 * call.c: Move TYPE_PTR*_MACROS ... 12700 * cp-tree.h: To here. 12701 * typeck.c (build_reinterpret_cast): Implement. 12702 12703 * call.c (add_builtin_candidate): Use TYPE_PTROB_P instead of 12704 ptr_complete_ob. 12705 (joust): If we're comparing a function to a builtin and the worst 12706 conversion for the builtin is worse than the worst conversion for the 12707 function, take the function. 12708 12709 * typeck.c (build_const_cast): Implement. 12710 (comp_ptr_ttypes_const): Like comp_ptr_ttypes, for const_cast. 12711 (comp_ptr_ttypes_reinterpret): Like cpt, for reinterpret_cast. 12712 12713Tue Aug 27 13:14:58 1996 Bob Manson <manson@charmed.cygnus.com> 12714 12715 * rtti.c (build_dynamic_cast): Don't try to dereference exprtype 12716 too early. Make sure we explode if exprtype turns out to be a 12717 NULL_TREE when it shouldn't be. 12718 12719Tue Aug 27 10:56:21 1996 Mike Stump <mrs@cygnus.com> 12720 12721 * cp-tree.h: New routine make_call_declarator. 12722 * lex.c (make_call_declarator): Define it. 12723 * except.c (init_exception_processing): Use it. 12724 (expand_builtin_throw): Likewise. 12725 (start_anon_func): Likewise. 12726 * decl2.c (finish_file): Likewise. 12727 * lex.c (cons_up_default_function): Likewise. 12728 * parse.y: Likewise. 12729 * pt.c (tsubst): Likewise. 12730 12731Mon Aug 26 17:40:03 1996 Mike Stump <mrs@cygnus.com> 12732 12733 * decl2.c (groktypefield): Remove unused code. 12734 12735Mon Aug 26 17:00:33 1996 Mike Stump <mrs@cygnus.com> 12736 12737 * gxx.gperf: Change TYPE_QUAL into CV_QUALIFIER. 12738 * parse.y: Likewise. Change maybe_type_qual into maybe_cv_qualifier. 12739 Change type_quals into cv_qualifiers. Change nonempty_type_quals into 12740 nonempty_cv_qualifiers. 12741 * hash.h: Rebuild. 12742 12743 * lex.c (make_pointer_declarator): Change type_quals into 12744 cv_qualifiers. 12745 (make_reference_declarator): Likewise. 12746 12747Thu Aug 22 01:09:22 1996 Jason Merrill <jason@yorick.cygnus.com> 12748 12749 * decl.c (start_function): Only check interface_* for templates 12750 with flag_alt_external_templates. 12751 12752 * call.c (build_new_op): Check for comparison of different enum types. 12753 (build_over_call): Fix arg # output. 12754 12755 * typeck.c (build_component_ref): Handle pre-found TYPE_DECL. 12756 12757Wed Aug 21 00:13:15 1996 Jason Merrill <jason@yorick.cygnus.com> 12758 12759 * call.c (build_new_op): Check for erroneous args. 12760 12761 * call.c (build_new_method_call): Add missing args to cp_error. 12762 12763 * tree.c (error_type): Don't print reference-to-array. 12764 12765 * typeck.c (convert_for_assignment): Don't say contravariance for 12766 removing const. 12767 12768Tue Aug 20 13:23:00 1996 Jason Merrill <jason@yorick.cygnus.com> 12769 12770 * call.c (build_over_call): Diagnose bad convs for `this'. 12771 12772 * lex.c (cons_up_default_function): Set DECL_ARTIFICIAL 12773 on _ctor_arg. 12774 12775 * call.c (convert_like): Handle bad convs. 12776 (build_over_call): Handle bad convs better. 12777 12778 * decl2.c: -fansi-overloading is now the default. 12779 12780 * call.c (build_new_method_call): Check for erroneous args. 12781 12782 * pt.c (instantiate_class_template): Propagate 12783 TYPE_USES_MULTIPLE_INHERITANCE. 12784 12785Tue Aug 20 13:09:57 1996 Mike Stump <mrs@cygnus.com> 12786 12787 * call.c (enforce_access): Add static to routine. 12788 12789Sun Aug 18 14:35:54 1996 Jason Merrill <jason@yorick.cygnus.com> 12790 12791 * call.c (build_user_type_conversion_1): Fix bad handling. 12792 (compare_ics): Likewise. 12793 12794Sat Aug 17 21:54:11 1996 Jason Merrill <jason@yorick.cygnus.com> 12795 12796 * call.c (standard_conversion): Oops. 12797 12798Sat Aug 17 16:28:11 1996 Geoffrey Noer <noer@cygnus.com> 12799 12800 * g++.c: Update test for win32 (&& ! cygwin32). 12801 12802Sat Aug 17 03:45:31 1996 Jason Merrill <jason@yorick.cygnus.com> 12803 12804 * typeck.c (comp_ptr_ttypes_real): Handle OFFSET_TYPEs properly. 12805 (ptr_reasonably_similar): New fn. 12806 * call.c (BAD_RANK): New rank. 12807 (ICS_BAD_FLAG): New macro. 12808 (standard_conversion): Handle almost-right pointer conversions. 12809 (reference_binding): Handle bad rvalue bindings. 12810 (add_*_candidate): Stuff. 12811 (build_over_call): Pass bad conversions to convert_for_initialization. 12812 (compare_ics): Handle bad convs. 12813 (joust): Likewise. 12814 12815Fri Aug 16 15:02:19 1996 Bob Manson <manson@charmed.cygnus.com> 12816 12817 * init.c (expand_vec_init): Use ptrdiff_type_node instead of 12818 integer_type_node when computing pointer offsets. 12819 12820Fri Aug 16 01:28:32 1996 Jason Merrill <jason@yorick.cygnus.com> 12821 12822 * tree.c (lvalue_type): New fn. 12823 (error_type): New fn. 12824 * call.c (op_error): Use error_type. 12825 (add_conv_candidate): Use lvalue_type. 12826 (add_builtin_candidates): Likewise. 12827 * error.c (args_as_string): Use error_type. 12828 12829Thu Aug 15 17:27:13 1996 Jason Merrill <jason@yorick.cygnus.com> 12830 12831 * pt.c (instantiate_decl): Evaluate DECL_INITIAL of a VAR_DECL here. 12832 (tsubst): Not here. 12833 12834 * decl.c (init_decl_processing): With -ansi, __null's type is the 12835 signed integral type with the same number of bits as a pointer. 12836 Introduce a new variable null_node for it. 12837 * cp-tree.h: Adjust. 12838 * call.c (null_ptr_cst_p): Adjust. 12839 12840Thu Aug 15 17:09:54 1996 Mike Stump <mrs@cygnus.com> 12841 12842 * except.c (do_unwind): Mark %i7 as used on the SPARC so we can 12843 optimize. 12844 12845Thu Aug 15 01:36:49 1996 Jason Merrill <jason@yorick.cygnus.com> 12846 12847 * decl2.c (import_export_decl): Ignore #pragma interface for tinfo 12848 fns of classes without virtual functions. 12849 12850 * call.c (add_function_candidate): Handle `this' specially. 12851 (compare_ics): Likewise. 12852 12853Tue Aug 13 12:16:10 1996 Jason Merrill <jason@yorick.cygnus.com> 12854 12855 * typeck.c (build_conditional_expr): Fix handling of __null. 12856 12857 * decl2.c (comdat_linkage): New fn. 12858 (import_export_vtable): Use it. 12859 (import_export_decl): Use it. 12860 * method.c (make_thunk): Use it. 12861 12862Mon Aug 12 00:09:18 1996 Jason Merrill <jason@yorick.cygnus.com> 12863 12864 * pt.c (end_template_decl): If we don't actually have parms, return. 12865 * parse.y (template_header): Accept 'template <>'. 12866 12867 * errfn.c: Allow 5 args. 12868 12869Sun Aug 11 15:20:58 1996 Jason Merrill <jason@yorick.cygnus.com> 12870 12871 * tree.c (make_temp_vec): New fn. 12872 * pt.c (push_template_decl): Handle partial specs. 12873 (instantiate_class_template): Likewise. 12874 (more_specialized): Use get_bindings. 12875 (more_specialized_class): New fn. 12876 (get_class_bindings): New fn. 12877 (most_specialized_class): New fn. 12878 (do_function_instantiation): List candidates for ambiguous case. 12879 * decl.c (duplicate_decls): Lose reference to DECL_TEMPLATE_MEMBERS. 12880 (shadow_tag): Call push_template_decl for partial specializations. 12881 * parse.y: Likewise. 12882 * cp-tree.h (DECL_TEMPLATE_SPECIALIZATIONS): Replaces 12883 DECL_TEMPLATE_MEMBERS. 12884 * call.c (print_z_candidates): Reduce duplication. 12885 12886Fri Aug 9 14:36:08 1996 Jason Merrill <jason@yorick.cygnus.com> 12887 12888 * decl2.c (lang_decode_option): Allow -fansi-overloading. 12889 12890Thu Aug 8 17:04:18 1996 Jason Merrill <jason@yorick.cygnus.com> 12891 12892 * pt.c (get_bindings): New fn. 12893 (most_specialized): Likewise. 12894 (do_function_instantiation): Use them. 12895 (add_maybe_template): New fn. 12896 * cp-tree.h (DECL_MAYBE_TEMPLATE): New macro. 12897 * call.c (build_new_op): Handle guiding decls. 12898 (build_new_function_call): Likewise. 12899 * decl2.c (finish_file): Likewise. 12900 12901 * decl2.c (mark_used): Do synthesis here. 12902 * call.c (build_method_call): Not here. 12903 (build_over_call): Or here. 12904 * typeck.c (build_function_call_real): Or here. 12905 * tree.c (bot_manip): Call mark_used on functions used in default 12906 args. 12907 12908Thu Aug 8 17:48:16 1996 Michael Meissner <meissner@tiktok.cygnus.com> 12909 12910 * decl2.c (import_export_vtable): Delete code that disabled vtable 12911 heuristic on systems with ASM_OUTPUT_EXTERNAL. 12912 12913Wed Aug 7 12:44:11 1996 Jason Merrill <jason@yorick.cygnus.com> 12914 12915 * typeck.c (build_x_function_call): Handle static call context 12916 better. 12917 12918 * decl.c (finish_function): Set the DECL_CONTEXT of the result to 12919 the function, not its outer block. 12920 12921 * call.c (build_field_call): Pass fields on to build_opfncall 12922 regardless of TYPE_OVERLOADS_CALL_EXPR. 12923 (build_method_call): Pass on to build_new_method_call sooner. 12924 12925 * typeck.c (build_ptrmemfunc): Just return what instantiate_type 12926 gives us. 12927 * class.c (instantiate_type): Don't put a POINTER_TYPE to 12928 METHOD_TYPE on an expression. Also make a copy of rhs instead of 12929 modifying it. 12930 12931Tue Aug 6 12:58:46 1996 Jason Merrill <jason@yorick.cygnus.com> 12932 12933 * call.c (compare_ics): Handle qual_conv after lvalue_conv. 12934 (add_builtin_candidate): Don't take enums for ++. 12935 (build_new_method_call): Handle non-aggregates and field calls. 12936 Move new overloading code from... 12937 * cvt.c: Here. 12938 12939 * decl.c (grokparms): Don't check default args in templates. 12940 12941Mon Aug 5 17:17:06 1996 Jason Merrill <jason@yorick.cygnus.com> 12942 12943 * cvt.c (build_new_op): Fix args to build_unary_op. 12944 (add_builtin_candidates): Don't call type_promotes_to on float. 12945 12946 * decl.c (grokparms): Check the type of the default arg. 12947 12948 * cvt.c (build_new_op): Pass non-overloaded cases on rather than 12949 returning NULL_TREE. 12950 12951 * typeck.c (build_x_binary_op): Avoid doing extra work. 12952 (build_x_unary_op): Likewise. 12953 (build_x_conditional_expr): Likewise. 12954 * cvt.c (build_over_call): Return. 12955 (add_builtin_candidate): Fix MEMBER_REF. 12956 (build_new_op): Likewise. 12957 12958Mon Aug 5 17:07:47 1996 Mike Stump <mrs@cygnus.com> 12959 12960 * method.c (build_overload_name): Put bug fix into code but leave 12961 disabled for now so we can be bug compatible with older releases 12962 that do repeats incorrectly. In the future, we can enable it. 12963 12964Mon Aug 5 13:46:28 1996 Jason Merrill <jason@yorick.cygnus.com> 12965 12966 * cvt.c (convert_like): Don't call build_cplus_new twice. 12967 12968 * call.c, cp-tree.h, cvt.c, decl2.c, init.c, method.c, pt.c, typeck.c: 12969 Control new overloading code with -fansi-overloading. 12970 12971Sun Aug 4 15:29:11 1996 Jason Merrill <jason@yorick.cygnus.com> 12972 12973 * cvt.c (build_over_call): Call build_cplus_new. 12974 * call.c (build_method_call): Likewise. 12975 * typeck.c (build_function_call_real): Likewise. 12976 (build_conditional_expr): If both operands are TARGET_EXPRs, wrap 12977 the COND_EXPR in a TARGET_EXPR so they use the same slot. 12978 12979 * cvt.c (build_up_reference): Propagate INDIRECT_BIND to 12980 recursive calls. 12981 * typeck.c (complete_type): Propagate 12982 TYPE_NEEDS_{CONSTRUCTING,DESTRUCTOR}. 12983 12984Sat Aug 3 14:05:07 1996 Jason Merrill <jason@yorick.cygnus.com> 12985 12986 * cvt.c (joust): More ?: kludging. Sigh. 12987 (build_over_call): Don't try to synthesize global fns. 12988 12989 * search.c (lookup_conversions): Use binfo marking. 12990 12991Sat Aug 3 12:33:42 1996 Bob Manson <manson@charmed.cygnus.com> 12992 12993 * search.c (build_mi_matrix): Use the correct value of cid 12994 when determining the new mi_size. 12995 12996Sat Aug 3 01:27:41 1996 Jason Merrill <jason@yorick.cygnus.com> 12997 12998 * cvt.c (add_builtin_candidates): Do consider type conversion ops 12999 for the first parms of += et al. 13000 (strip_top_quals): New fn. 13001 (reference_binding): Use it instead of TYPE_MAIN_VARIANT. 13002 (implicit_conversion): Likewise. 13003 (add_builtin_candidates): Be careful about arrays. 13004 (build_new_method_call): Handle vtable optimization. 13005 13006Fri Aug 2 01:26:59 1996 Jason Merrill <jason@yorick.cygnus.com> 13007 13008 * cp-tree.h (LOOKUP_NO_TEMP_BIND): New flag. 13009 * cvt.c (reference_binding): Use it. 13010 (implicit_conversion): Use it. 13011 (add_builtin_candidate, COND_EXPR): Use it. 13012 13013 * cvt.c (build_new_function_call): Check for error args. 13014 13015 * typeck.c (comptypes): Just check DERIVED_FROM_P, not UNIQUELY. 13016 13017 * gxx.gperf: Add __null. 13018 * hash.h: Regenerate. 13019 * lex.h: Add RID_NULL. 13020 * lex.c (init_lex): Create null_pointer_node here, stick it in 13021 RID_NULL. 13022 * decl.c (init_decl_processing): Still set its type here. 13023 * cvt.c (cp_convert_to_pointer): Don't produce null_pointer_node. 13024 (convert_to_pointer_force): Likewise. 13025 (null_ptr_cst_p): Check for null_pointer_node; only accept (void*)0 13026 if (! pedantic). 13027 * call.c (convert_harshness): Use null_ptr_cst_p. 13028 * typeck.c (convert_for_assignment): Likewise. Don't produce 13029 null_pointer_node. 13030 13031 * error.c (args_as_string): Handle lists of actual args, too. 13032 * cvt.c (null_ptr_cst): Support (void*)0 for now. 13033 (build_user_type_conversion_1): Improve diagnostics. 13034 (build_new_function_call): Likewise. 13035 (build_object_call): Likewise. 13036 (build_new_method_call): Likewise. Move call before def diagnostic... 13037 (build_over_call): Here. 13038 13039 * cvt.c (build_new_method_call): Don't complain about no match if 13040 LOOKUP_SPECULATIVELY. 13041 (build_over_call): Fix 'this' for virtual fn. 13042 (build_new_method_call): Add diagnostic. 13043 13044Thu Aug 1 16:45:09 1996 Jason Merrill <jason@yorick.cygnus.com> 13045 13046 * cvt.c (add_function_candidate): Expect 'this' and 'in_chrg' for 13047 constructors to be passed in. 13048 (build_over_call): Likewise. 13049 (build_user_type_conversion_1): Pass them in. 13050 (convert_like): Likewise. 13051 (build_object_call): Handle overloaded conversions. 13052 (build_over_call): Pass the right args to build_vfn_ref. 13053 (standard_conversion): Fix pmf convs. 13054 (joust): Handle comparing statics and non-statics. 13055 (build_new_method_call): New fn. 13056 * call.c (build_method_call): Call it if NEW_OVER. 13057 13058Thu Aug 1 16:06:14 1996 Mike Stump <mrs@cygnus.com> 13059 13060 * lex.c (do_identifier): Don't use %O on IDENTIFIER_OPNAME_Ps, use 13061 %D instead. 13062 13063Thu Aug 1 15:24:02 1996 Mike Stump <mrs@cygnus.com> 13064 13065 * except.c (expand_throw): Use maybe_build_cleanup_and_delete 13066 instead of just maybe_build_cleanup so that we deallocate the 13067 thrown object. 13068 13069Thu Aug 1 15:18:00 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 13070 13071 * decl2.c (finish_prevtable_vardecl): Make non-static for pt.c's use. 13072 * cp-tree.h (finish_prevtable_vardecl): Add decl. 13073 13074Thu Aug 1 11:53:51 1996 Bob Manson <manson@charmed.cygnus.com> 13075 13076 * pt.c (instantiate_class_template): Call complete_type. Also, if 13077 we're at the end of the file and we just instantiated a template 13078 class with a vtable, call finish_prevtable_vardecl. 13079 13080 * error.c (dump_decl): Don't explode (or explode more gracefully 13081 as appropriate) if the object being dumped has a null type. 13082 (dump_expr): Likewise. 13083 13084 * search.c (build_mi_matrix): Ensure that mi_size is large enough, 13085 by counting the number of nodes that we'll need before allocating 13086 the array. 13087 (lookup_fnfields): Fix comment. 13088 (breadth_first_search): Fix comment. 13089 13090Wed Jul 31 09:57:05 1996 Jason Merrill <jason@yorick.cygnus.com> 13091 13092 * pt.c (instantiate_class_template): Propagate TYPE_PACKED and 13093 TYPE_ALIGN. 13094 * class.c (finish_struct): Call cplus_decl_attributes here. 13095 (finish_struct_1): Not here. 13096 * cp-tree.h: Adjust. 13097 13098 * pt.c (type_unification): New parameter STRICT. 13099 (unify): If STRICT, don't allow cv addition or base deduction. 13100 * call.c, class.c, cvt.c, cp-tree.h: Adjust. 13101 13102Tue Jul 30 13:06:13 1996 Jason Merrill <jason@yorick.cygnus.com> 13103 13104 * search.c (get_template_base{_recursive}): New fns. 13105 * pt.c (more_specialized): New fn. 13106 (do_function_instantiation): Use it. 13107 (unify): Handle base deduction. 13108 * cvt.c (joust): Use more_specialized. 13109 Don't arbitrarily choose between non-builtin candidates. 13110 (build_over_call): Call require_complete_type. 13111 13112 * decl.c (start_function): Statics are static even in a #pragma 13113 interface file. 13114 13115 * decl2.c (import_export_vtable): Disable vtable heuristic on 13116 systems with ASM_OUTPUT_EXTERNAL. 13117 13118 * cvt.c (compare_ics): Fix comparison of PMEM_CONV and BASE_CONV. 13119 (standard_conversion): No std conv to enum type. 13120 13121 * cvt.c (standard_conversion): Fix order of args to DERIVED_FROM_P 13122 for ptm's. 13123 13124 * cvt.c (reference_binding): Bind directly to a base subobject of 13125 a class rvalue. 13126 13127 * cvt.c (build_new_op): Enforce access control. 13128 13129Tue Jul 30 09:22:53 1996 Bob Manson <manson@charmed.cygnus.com> 13130 13131 * typeck2.c (process_init_constructor): When scanning the 13132 union for a named field, skip things that aren't FIELD_DECLs. 13133 13134 * method.c (synthesize_method): Don't scan fndecl's rtl if 13135 we're at the end of the file; just assume the function can't 13136 be inlined. 13137 13138Mon Jul 29 15:48:30 1996 Jason Merrill <jason@yorick.cygnus.com> 13139 13140 * cvt.c (build_builtin_candidate): Stick a dummy conversion in if 13141 it failed. 13142 13143 * cvt.c (build_user_type_conversion_1): Handle overloaded 13144 conversion ops. 13145 13146 * cvt.c (add_builtin_candidates): Don't consider type conversion 13147 operators for the first parameter of operator=. 13148 13149Mon Jul 29 15:33:55 1996 Bob Manson <manson@charmed.cygnus.com> 13150 13151 * typeck.c (complete_type): Only call layout_type if we're not 13152 expanding a template. 13153 13154Mon Jul 29 14:40:38 1996 Jason Merrill <jason@yorick.cygnus.com> 13155 13156 * cvt.c (compare_ics): Oops. 13157 13158 * cvt.c (op_error): Oops. 13159 13160 * cp-tree.def: Add RVALUE_CONV, rename EXACT_CONV to IDENTITY_CONV. 13161 * cvt.c: Add IDENTITY_RANK before others. Use real_lvalue_p. 13162 (build_conv): Use them. 13163 (implicit_conversion): Use them. 13164 (convert_like): Handle them. 13165 (build_new_op): Handle builtin COND_EXPR again. 13166 (add_builtin_candidates): Strip cv-quals. Fix oops. Include enums 13167 in lists of types for COND_EXPR. 13168 (add_builtin_candidate): Add enum candidates for COND_EXPR. 13169 13170Mon Jul 29 12:05:40 1996 Bob Manson <manson@charmed.cygnus.com> 13171 13172 * typeck.c (build_modify_expr): Always attempt to build a call to 13173 the assignment operator, even if we're using a default one. 13174 (convert_for_initialization): Call complete_type. 13175 13176Mon Jul 29 11:25:08 1996 Jason Merrill <jason@yorick.cygnus.com> 13177 13178 * cvt.c (reference_binding): A REF_BIND gets the reference type. 13179 (implicit_conversion): Likewise. 13180 (convert_like): Likewise. 13181 (compare_ics): Likewise. 13182 (compare_qual): Likewise. 13183 (print_z_candidates): Handle no candidates. 13184 (build_new_op): Don't handle builtin COND_EXPR for now. 13185 13186Sat Jul 27 11:27:47 1996 Stan Shebs <shebs@andros.cygnus.com> 13187 13188 * cvt.c (build_builtin_candidate): Init local var in an ANSI way. 13189 13190Fri Jul 26 01:07:22 1996 Jason Merrill <jason@yorick.cygnus.com> 13191 13192 * cvt.c (joust): If the candidates are the same, arbitrarily pick one. 13193 13194 * cvt.c (build_builtin_candidate): Oops. 13195 (build_new_op): Oops. 13196 13197 * method.c (build_opfncall): Pass COND_EXPR on. 13198 * cvt.c (build_builtin_candidate): Reorganize, support COND_EXPR. 13199 (add_builtin_candidate{,s}): Likewise. 13200 (add_builtin_candidates): Likewise. 13201 (print_z_candidates, op_error, build_new_op): Likewise. 13202 (type_decays_to): New fn. 13203 * lex.c (init_lex): Just say ?: for COND_EXPR. 13204 13205Thu Jul 25 09:33:33 1996 Jason Merrill <jason@yorick.cygnus.com> 13206 13207 * typeck.c (complete_type): Call layout_type rather than building 13208 a new array type. 13209 13210 * cvt.c (add_builtin_candidate): Pointer arithmetic candidates 13211 only use ptrdiff_t. 13212 13213Wed Jul 24 12:45:08 1996 Jason Merrill <jason@yorick.cygnus.com> 13214 13215 * cvt.c: Always compile the new overloading code (but don't use it). 13216 (implicit_conversion): Add a BASE_CONV when converting to 13217 the same class type. 13218 (convert_like): Handle BASE_CONV. 13219 13220Tue Jul 23 12:46:30 1996 Jason Merrill <jason@yorick.cygnus.com> 13221 13222 * cvt.c (build_new_op): Support {MAX,MIN}_EXPR. 13223 (add_builtin_candidate): Likewise. 13224 13225 NEW_OVER changes: 13226 * typeck.c (build_x_function_call): Try an operator function 13227 whenever we call an object of class type. 13228 * method.c (build_opfncall): Pass CALL_EXPRs through. 13229 * cvt.c (implicit_conversion): Do const-ref case first. 13230 (add_conv_candidate, build_object_call, op_error): New fns. 13231 (ptr_complete_ob, TYPE_PTROB_P): void is not an object type. 13232 ({add,build}_builtin_candidate{,s}, print_z_candidates): Display 13233 builtin candidates. 13234 (build_new_op): Handle CALL_EXPR. Don't try to decay void. 13235 Fall back on preincrement handling. Use op_error. 13236 Handle warn_synth. 13237 (convert_like): Pass INDIRECT_BIND. Don't try to do anything with 13238 an error_mark_node. 13239 (build_over_call): Handle PROMOTE_PROTOTYPES and ellipsis promotions 13240 properly. 13241 13242Mon Jul 22 16:21:55 1996 Bob Manson <manson@charmed.cygnus.com> 13243 13244 * pt.c (tsubst_expr): Handle CONTINUE_STMT. 13245 13246Mon Jul 22 15:38:58 1996 Mike Stump <mrs@cygnus.com> 13247 13248 * typeck.c (build_component_ref_1): Use build_component_ref 13249 instead of open coding it here. 13250 13251Mon Jul 22 12:18:54 1996 Jason Merrill <jason@yorick.cygnus.com> 13252 13253 * g++.c (main): Don't link with -lg++. 13254 13255 NEW_OVER changes: 13256 * cvt.c (convert_to_reference): Don't use convert_from_reference on 13257 result of build_type_conversion. 13258 (cp_convert): Only call build_method_call for ctors if 13259 build_type_conversion failed. 13260 (ptr_complete_ob): New function. 13261 (TYPE_PTR{,OB,MEM}_P): New macros. 13262 ({add,build}_builtin_candidate{,s}): New functions. 13263 (print_z_candidates): Handle builtins. 13264 (build_user_type_conversion_1): Don't use conversion fns for 13265 converting to a base type. 13266 (build_user_type_conversion_1): Set ICS_USER_FLAG on AMBIG_CONVs. 13267 (build_user_type_conversion): Use convert_from_reference. 13268 (build_new_op): New function. 13269 (build_over_call): Fix handling of methods. 13270 (compare_ics): Handle AMBIG_CONV properly. 13271 * typeck2.c: Increment abort count. 13272 * method.c (build_opfncall): Forward most requests to build_new_op. 13273 * cp-tree.h (IS_OVERLOAD_TYPE): Tweak. 13274 13275Fri Jul 19 17:59:29 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 13276 13277 * error.c (dump_expr, case CONSTRUCTOR, case CAST_EXPR): Take out 13278 invalid second argument to dump_expr_list. 13279 13280Fri Jul 19 14:04:05 1996 Mike Stump <mrs@cygnus.com> 13281 13282 * decl.c (lookup_name_real): Make sure we do obj->X::i correctly. 13283 13284Thu Jul 18 14:48:23 1996 Bob Manson <manson@charmed.cygnus.com> 13285 13286 * decl2.c (import_export_vtable): ASM_OUTPUT_EXTERNAL, not 13287 ASSEMBLE_EXTERNAL. 13288 13289Mon Jul 15 17:48:43 1996 Mike Stump <mrs@cygnus.com> 13290 13291 * typeck2.c (process_init_constructor): New pedwarn for using { } 13292 to initialize a pointer to member function. 13293 * typeck.c (build_ptrmemfunc1): Avoid use of digest_init so that 13294 we can avoid the new error. 13295 13296Mon Jul 15 15:42:03 1996 Mike Stump <mrs@cygnus.com> 13297 13298 * typeck.c (build_ptrmemfunc1): New function to hide details of 13299 pointer to member functions better. 13300 13301Mon Jul 15 14:23:02 1996 Mike Stump <mrs@cygnus.com> 13302 13303 * init.c (resolve_offset_ref): Resolve OFFSET_REFs that are 13304 methods into the actual method, as we know the implied object is 13305 not used. 13306 13307Mon Jul 15 13:08:29 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 13308 13309 * parse.y (maybecomma_warn): Only emit the pedwarn if we're not 13310 inside a system header. 13311 13312Fri Jul 12 16:30:05 1996 Bob Manson <manson@charmed.cygnus.com> 13313 13314 * call.c (build_method_call): Call complete_type on the 13315 instance type. 13316 13317Thu Jul 11 17:16:40 1996 Mike Stump <mrs@cygnus.com> 13318 13319 * typeck.c (build_component_ref): Always build up an OFFSET_REF 13320 for obj_ptr->func so that we can know which object to use in a 13321 method call. 13322 13323Wed Jul 10 19:36:37 1996 Mike Stump <mrs@cygnus.com> 13324 13325 * typeck.c (build_ptrmemfunc): Remove sorry, now we can cast 13326 around things. Also improve maintainability. 13327 13328Wed Jul 10 18:20:11 1996 Bob Manson <manson@charmed.cygnus.com> 13329 13330 * decl.c (grokdeclarator): Check for overflow when evaluating an 13331 array dimension. 13332 13333Wed Jul 10 17:26:19 1996 Jason Merrill <jason@yorick.cygnus.com> 13334 13335 * cvt.c (cp_convert): Don't check for ambiguity with constructor 13336 if NEW_OVER. 13337 13338 * typeck.c (build_x_function_call): Pass function overload 13339 questions to new overloading code if NEW_OVER. 13340 * init.c (expand_aggr_init_1): Only check for type conversion ops 13341 if we're doing copy-initialization (i.e. LOOKUP_ONLYCONVERTING). 13342 Don't check for ambiguity with constructor if NEW_OVER. 13343 * cvt.c (convert_to_reference): Dereference the result of a type 13344 conversion operator. 13345 (build_conv): Propagate ICS_USER_FLAG. 13346 (implicit_conversion): Call instantiate_type. 13347 Pass LOOKUP_ONLYCONVERTING instead of LOOKUP_NORMAL. 13348 (add_function_candidate): Fix cv-quals on argtype. 13349 (print_z_candidates): New function. 13350 (build_new_function_call): Call it. 13351 (build_user_type_conversion_1): If LOOKUP_ONLYCONVERTING, don't 13352 consider non-converting constructors. 13353 Call print_z_candidates. 13354 Return an AMBIG_CONV for an ambiguous conversion. 13355 (build_user_type_conversion): Handle AMBIG_CONV. 13356 (convert_like): Fix test for building TARGET_EXPR. 13357 Call instantiate_type. 13358 Handle AMBIG_CONV and LVALUE_CONV. 13359 (build_over_call): Handle 0 args and ellipsis. 13360 * cp-tree.def: Add AMBIG_CONV. 13361 13362Tue Jul 9 17:48:48 1996 Mike Stump <mrs@cygnus.com> 13363 13364 * decl.c (lookup_name_real): If we find mem in obj when parsing 13365 `obj->mem', make sure we return the right value. 13366 13367Tue Jul 9 16:11:28 1996 Bob Manson <manson@charmed.cygnus.com> 13368 13369 * search.c (get_base_distance): Call complete_type. 13370 13371Tue Jul 9 12:46:34 1996 Mike Stump <mrs@cygnus.com> 13372 13373 * decl.c (store_bindings): Make static. 13374 13375Mon Jul 8 16:42:31 1996 Jason Merrill <jason@yorick.cygnus.com> 13376 13377 * init.c (expand_aggr_init_1): Don't check type conversions if 13378 NEW_OVER. 13379 13380 * cvt.c (z_candidate): Put back template field. 13381 (add_function_candidate): Set it. 13382 (add_template_candidate): Likewise. 13383 (joust): Use it. 13384 (compare_qual): Handle references and pointers to members. 13385 (compare_ics): Handle reference bindings. 13386 13387 * decl.c (duplicate_decls): Propagate DECL_ONE_ONLY. 13388 13389Mon Jul 8 16:18:56 1996 Bob Manson <manson@charmed.cygnus.com> 13390 13391 * call.c (compute_conversion_costs): Call complete_type. 13392 13393 * tree.c (vec_binfo_member): Use comptypes instead of comparing 13394 pointers, so we can handle template parameters. 13395 13396Fri Jul 5 16:51:53 1996 Bob Manson <manson@charmed.cygnus.com> 13397 13398 * cvt.c (cp_convert_to_pointer): We have to call complete_type 13399 here; let's make it explicit instead of a side effect of an 13400 error check. 13401 13402Wed Jul 3 16:29:51 1996 Jason Merrill <jason@yorick.cygnus.com> 13403 13404 * cvt.c (z_candidate): Remove template field. 13405 (reference_binding): Handle binding to temporary. 13406 (implicit_conversion): Likewise. 13407 (add_function_candidate): Handle artificial constructor parms. 13408 Handle functions with too few parms. 13409 (add_template_candidate): New function. 13410 (build_user_type_conversion_1): Handle constructors. 13411 (convert_like): Likewise. 13412 (build_over_call): Likewise. 13413 (build_new_function_call): Support templates. 13414 (compare_ics): Fix reference, inheritance handling. 13415 13416Mon Jul 1 22:58:18 1996 Bob Manson <manson@charmed.cygnus.com> 13417 13418 * decl.c: Add signed_size_zero_node. 13419 (init_decl_processing): Build it. 13420 * class.c (prepare_fresh_vtable): Use it instead of size_zero_node 13421 when we're trying to make a negative delta. 13422 13423Mon Jul 1 17:56:19 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 13424 13425 Stop doing this damn index==strchr variable name confusion. 13426 * class.c (add_virtual_function): Change local var INDEX to be 13427 named IDX. 13428 (add_method): Likewise. 13429 * lex.c (print_parse_statistics): Likewise. 13430 * search.c (make_memoized_table_entry): Likewise. 13431 (lookup_fnfields_here): Likewise. 13432 (lookup_field): Likewise. 13433 (lookup_fnfields): Likewise. 13434 (get_baselinks): Likewise. 13435 * sig.c (build_signature_table_constructor): Likewise. 13436 (build_signature_method_call): Likewise. 13437 * typeck.c (build_x_array_ref): Change INDEX parm to be named IDX. 13438 (get_member_function_from_ptrfunc): Likewise. 13439 (build_ptrmemfunc): Change local var INDEX to be IDX. 13440 (c_expand_start_case): Likewise. 13441 13442Sat Jun 29 14:05:46 1996 Jason Merrill <jason@yorick.cygnus.com> 13443 13444 * cvt.c (cp_convert_to_pointer): Move user-defined type conversion 13445 handling to before extraction of TYPE_PTRMEMFUNC_FN_TYPE. 13446 (convert_to_reference): Use build_type_conversion to convert to 13447 the reference type directly. 13448 (standard_conversion): Fix void* case, non-conversions. 13449 (reference_binding): Fix expr == 0 case, non-conversions. 13450 (convert_like): Support REF_BIND. 13451 (compare_qual): Split out from compare_ics. 13452 (compare_ics): Use it, handle icses with only a qual_conv. 13453 13454 * init.c (expand_vec_init): Don't crash if decl is NULL. 13455 13456Fri Jun 28 11:52:51 1996 Stan Shebs <shebs@andros.cygnus.com> 13457 13458 * mpw-config.in: New file, configury for Mac MPW. 13459 * mpw-make.sed: New file, makefile editing for MPW. 13460 13461Thu Jun 27 15:18:30 1996 Jason Merrill <jason@yorick.cygnus.com> 13462 13463 * pt.c (instantiate_class_template): Call repo_template_used. 13464 13465 * search.c (lookup_conversions): Only lookup conversions in 13466 complete types. 13467 13468Thu Jun 27 12:59:53 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 13469 13470 * cp-tree.def: Renamed from tree.def, to avoid confusion with 13471 gcc's tree.def. 13472 * cp-tree.h, lex.c: Include cp-tree.def. 13473 * Makefile.in (CXX_TREE_H): Reference cp-tree.def. 13474 13475Wed Jun 26 18:29:47 1996 Bob Manson <manson@charmed.cygnus.com> 13476 13477 * init.c (build_vec_delete_1): Call complete_type. 13478 13479Mon Jun 24 17:17:32 1996 Mike Stump <mrs@cygnus.com> 13480 13481 * except.c (start_anon_func): Make sure anonymous functions are 13482 never external. 13483 13484Fri Jun 21 15:10:58 1996 Jason Merrill <jason@yorick.cygnus.com> 13485 13486 * decl.c (finish_function): If function_depth > 1, set nested. 13487 13488 * decl2.c (grokbitfield): Revert Bob's change. 13489 * class.c (finish_struct_1): Fix handling of named bitfield widths. 13490 13491Thu Jun 20 23:35:38 1996 Jason Merrill <jason@yorick.cygnus.com> 13492 13493 * pt.c (add_pending_template): Handle types. 13494 (lookup_template_class): With -fexternal-templates, just add the class 13495 to pending_templates instead of instantiating it now. 13496 * decl2.c (finish_file): Handle types in pending_templates. 13497 13498Thu Jun 20 14:08:40 1996 Bob Manson <manson@charmed.cygnus.com> 13499 13500 * decl2.c (grokbitfield): Handle constant decls appropriately. 13501 Give an appropriate error message now instead of spewing core 13502 later. 13503 13504Thu Jun 20 13:01:51 1996 Jason Merrill <jason@yorick.cygnus.com> 13505 13506 * decl2.c: Don't turn on thunks by default for now. 13507 13508Wed Jun 19 11:37:04 1996 Jason Merrill <jason@yorick.cygnus.com> 13509 13510 * typeck.c (complete_type): Handle error_mark_node. 13511 (common_type, OFFSET_TYPE): Handle template_type_parms. 13512 13513Tue Jun 18 10:02:15 1996 Jason Merrill <jason@yorick.cygnus.com> 13514 13515 * pt.c (instantiate_decl): If at_eof, call import_export_decl 13516 regardless of DECL_INLINE. 13517 13518 * typeck.c (mark_addressable): Set TREE_ADDRESSABLE on CONSTRUCTORs. 13519 13520 * class.c (finish_struct_bits): Copy TYPE_SIZE. 13521 13522 * rtti.c (build_dynamic_cast): Support templates. 13523 * tree.def: Support DYNAMIC_CAST_EXPR. 13524 * pt.c (tsubst_copy): Likewise. 13525 * decl2.c (build_expr_from_tree): Likewise. 13526 13527Mon Jun 17 15:23:36 1996 Jason Merrill <jason@yorick.cygnus.com> 13528 13529 * typeck.c (build_static_cast): Support templates. 13530 (build_const_cast): Likewise. 13531 * tree.def: Support CONST/STATIC_CAST_EXPR. 13532 * pt.c (tsubst_copy): Likewise. 13533 * decl2.c (build_expr_from_tree): Likewise. 13534 13535Sun Jun 16 12:33:57 1996 Jason Merrill <jason@yorick.cygnus.com> 13536 13537 * decl2.c (finish_vtable_vardecl): Don't trust 13538 TREE_SYMBOL_REFERENCED for vtables of local classes. 13539 13540Fri Jun 14 18:13:36 1996 Jason Merrill <jason@yorick.cygnus.com> 13541 13542 * pt.c (tsubst_copy): Handle operator T. 13543 13544Wed Jun 12 17:52:40 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 13545 13546 * init.c (build_delete): Move creation of PARMS inside test of 13547 TYPE_HAS_DESTRUCTOR, since it's never used outside of that block. 13548 13549Tue Jun 11 15:09:18 1996 Bob Manson <manson@charmed.cygnus.com> 13550 13551 * typeck.c (build_conditional_expr): Don't assume that 13552 the arguments to ?: are always pointers or records. 13553 13554Tue Jun 11 13:56:23 1996 Jason Merrill <jason@yorick.cygnus.com> 13555 13556 * decl2.c (import_export_decl): Still emit static/weak/comdat 13557 copies of inline template functions with -fno-implicit-templates. 13558 13559Tue Jun 11 11:42:13 1996 Bob Manson <manson@charmed.cygnus.com> 13560 13561 * init.c (build_delete): Determine the complete basetype 13562 path to the destructor we're calling. 13563 13564Fri Jun 7 15:30:10 1996 Bob Manson <manson@charmed.cygnus.com> 13565 13566 * decl.c (build_enumerator): Always copy the INTEGER_CST used to 13567 initialize the enum, because we really and truly don't know where 13568 it came from. 13569 (start_enum): Don't copy integer_zero_node because 13570 build_enumerator will do it. 13571 13572Fri Jun 7 11:11:09 1996 Jason Merrill <jason@yorick.cygnus.com> 13573 13574 * decl.c (finish_function): Do access control on base destructors. 13575 13576 * pt.c (tsubst, case FUNCTION_DECL): Set up 13577 IDENTIFIER_GLOBAL_VALUE for member functions so pushdecl doesn't 13578 hose us. 13579 13580Fri Jun 7 10:37:33 1996 Mike Stump <mrs@cygnus.com> 13581 13582 * cvt.c (build_up_reference): If we have already extended the 13583 lifetime of the temporary, don't try it again. 13584 * typeck.c (c_expand_return): Don't try and convert the return 13585 value twice when we want a reference, once is enough. 13586 13587Tue Jun 4 15:41:45 1996 Jason Merrill <jason@yorick.cygnus.com> 13588 13589 * pt.c (tsubst_expr, case DECL_STMT): Don't pass 13590 LOOKUP_ONLYCONVERTING at all for now. 13591 13592 * search.c (add_conversions): Put the conversion function in 13593 TREE_VALUE, the basetype in TREE_PURPOSE. 13594 * cvt.c (build_type_conversion): Adjust. 13595 * cvt.c (build_expr_type_conversion): Adjust. 13596 * call.c (user_harshness): Adjust. 13597 13598Mon Jun 3 15:30:52 1996 Jason Merrill <jason@yorick.cygnus.com> 13599 13600 * method.c (emit_thunk): Pretend this is a FUNCTION_DECL for the 13601 backend's benefit. 13602 13603Mon Jun 10 18:58:19 1996 Mike Stump <mrs@cygnus.com> 13604 13605 * except.c (expand_start_catch_block): Add a dummy region, if we 13606 get an error, so that we can avoid core dumping later. 13607 13608Fri May 31 14:56:13 1996 Mike Stump <mrs@cygnus.com> 13609 13610 * cp-tree.h (OFFSET_REF): Remove. 13611 * tree.def (CP_OFFSET_REF): Rename to OFFSET_REF. 13612 * expr.c (cplus_expand_expr): Cleanup callers of expand_expr. 13613 * init.c (expand_aggr_init_1): Likewise. 13614 (build_new): Likewise. 13615 * typeck.c (expand_target_expr): Likewise. 13616 13617Fri May 31 14:22:08 1996 Jason Merrill <jason@yorick.cygnus.com> 13618 13619 * typeck.c (build_modify_expr): Don't use TREE_VALUE on a 13620 TARGET_EXPR. 13621 13622Wed May 29 17:04:33 1996 Mike Stump <mrs@cygnus.com> 13623 13624 * cvt.c (build_up_reference): Redo how and when temporaries are 13625 created. 13626 * decl.c (grok_reference_init): Don't try and be smart about 13627 running cleanups. 13628 13629Wed May 29 16:02:08 1996 Mike Stump <mrs@cygnus.com> 13630 13631 * cvt.c (build_up_reference): Add NULL_TREE to all calls to build 13632 (TARGET_EXPR...), now that it has 4 arguments. 13633 * tree.c (build_cplus_new): Likewise. 13634 13635Thu May 23 16:40:30 1996 Jason Merrill <jason@yorick.cygnus.com> 13636 13637 * error.c (dump_expr, case CAST_EXPR): Handle T() properly. 13638 13639 * pt.c (instantiate_decl): Don't call push/pop_cp_function_context. 13640 * decl.c (struct saved_scope): Remove named_labels, 13641 {base,member}_init_list. 13642 (maybe_push_to_top_level): Don't set them. Call 13643 push_cp_function_context if appropriate. 13644 (pop_from_top_level): Likewise. 13645 13646 * method.c (do_build_assign_ref): Remove obsolete check of 13647 TYPE_HAS_ASSIGN_REF (basetype). 13648 13649 * decl.c (grokfndecl): Diagnose user definition of 13650 implicitly-declared methods. 13651 13652Thu May 23 12:13:08 1996 Bob Manson <manson@charmed.cygnus.com> 13653 13654 * method.c (do_build_copy_constructor): Add code to give 13655 meaningful error messages instead of crashing. 13656 (do_build_assign_ref): Don't synthesize assignment operators for 13657 classes containing reference or const members. 13658 13659 * class.c (struct base_info): Remove cant_synth_copy_ctor 13660 and cant_synth_asn_ref. 13661 (finish_base_struct): Remove the code that tries to conditionalize 13662 synthesis of copy constructors & assignment operators based on 13663 access permissions. Instead, let it fail when it tries to 13664 synthesize the copy constructor. This will give meaningful error 13665 messages instead of silently generating code to perform a bitcopy. 13666 13667Wed May 22 11:45:19 1996 Bob Manson <manson@charmed.cygnus.com> 13668 13669 * lex.c (real_yylex): Remove old-n-crufty #if 0 code for 13670 determining types for constant values. 13671 13672 * decl.c (struct named_label_list): Use instead of stuffing 13673 random items into a TREE_LIST node. 13674 (named_label_uses): Use the new struct. 13675 (poplevel): Likewise. 13676 (lookup_label): Likewise. 13677 (define_label): Add an error message to tell the user the line 13678 where the goto is located in addition to the destination of the 13679 goto. 13680 (init_decl_processing): Use NULL instead of NULL_TREE to initialize 13681 named_label_uses. 13682 (finish_function): Likewise. 13683 13684 (start_decl): Complain about defining a static data member 13685 in a different type from which it was declared. 13686 13687Wed May 22 09:33:23 1996 Jason Merrill <jason@yorick.cygnus.com> 13688 13689 * cvt.c (build_expr_type_conversion): Adjust. 13690 13691Tue May 21 11:21:56 1996 Jason Merrill <jason@yorick.cygnus.com> 13692 13693 * call.c (build_method_call): Always convert 'this' to the 13694 appropriate type. 13695 13696 * search.c (add_conversions): Put the conversion function in 13697 TREE_VALUE, the type in TREE_PURPOSE. 13698 * cvt.c (build_type_conversion): Adjust. 13699 * call.c (user_harshness): Adjust. 13700 13701 * method.c (emit_thunk): Call temporary_allocation and 13702 permanent_allocation around the ASM_OUTPUT_MI_THUNK case, too. 13703 13704 * tree.c (build_cplus_array_type): Handle tweaking of 13705 TYPE_MAIN_VARIANT here. 13706 * typeck.c (common_type): Not here. 13707 13708 * typeck.c (complete_type): Only try to complete an array type if 13709 it has a domain. 13710 13711Mon May 20 14:55:59 1996 Jason Merrill <jason@yorick.cygnus.com> 13712 13713 * decl.c (grokvardecl): Call complete_type. 13714 (grokdeclarator): Call complete_type for PARM_DECLs. 13715 13716Fri May 17 16:41:17 1996 Jason Merrill <jason@yorick.cygnus.com> 13717 13718 * pt.c (instantiate_class_template): Re-set 13719 CLASSTYPE_GOT_SEMICOLON after calling finish_struct_1. 13720 13721Fri May 17 14:56:55 1996 Mike Stump <mrs@cygnus.com> 13722 13723 * cp-tree.h (cp_expand_decl_cleanup): Remove, the backend is now 13724 smart enough to do it right. 13725 * tree.c (cp_expand_decl_cleanup): Likewise. 13726 * decl.c (cp_finish_decl): Use expand_decl_cleanup instead of 13727 cp_expand_decl_cleanup. 13728 (store_parm_decls): Likewise. 13729 (hack_incomplete_structures): Likewise. 13730 * except.c (push_eh_cleanup): Likewise. 13731 13732Fri May 17 13:13:51 1996 Mike Stump <mrs@cygnus.com> 13733 13734 * expr.c (expand_expr, cond UNSAVE_EXPR): Move from the C++ 13735 frontend to the backend where it belongs. 13736 * tree.c (unsave_expr): Likewise. 13737 (unsave_expr_now): Likewise. 13738 * tree.def (UNSAVE_EXPR): Likewise. 13739 * cp-tree.h (unsave_expr): Likewise. 13740 (unsave_expr_now): Likewise. 13741 13742Fri May 17 11:02:41 1996 Mike Stump <mrs@cygnus.com> 13743 13744 * init.c (emit_base_init): Make sure the partial EH cleanups live 13745 on the function_obstack. 13746 13747Thu May 16 15:29:33 1996 Bob Manson <manson@charmed.cygnus.com> 13748 13749 * expr.c (do_case): Don't try to dereference null TREE_TYPEs 13750 when checking for pointer types. 13751 13752Thu May 16 13:38:58 1996 Jason Merrill <jason@yorick.cygnus.com> 13753 13754 * pt.c (instantiate_class_template): Remove obsolete check for 13755 access declarations. 13756 13757Thu May 16 13:34:15 1996 Mike Stump <mrs@cygnus.com> 13758 13759 * call.c (build_overload_call): Simplify calls to 13760 build_overload_call by removing last parameter. 13761 (build_method_call): Likewise. 13762 * cp-tree.h: Likewise. 13763 * method.c (build_opfncall): Likewise. 13764 * typeck.c (build_x_function_call): Likewise. 13765 13766Thu May 16 13:15:43 1996 Mike Stump <mrs@cygnus.com> 13767 13768 * call.c (default_parm_conversions): Factor out common code. 13769 (build_method_call): Use it. 13770 (build_overload_call_real): Use it. 13771 13772Wed May 15 14:46:14 1996 Mike Stump <mrs@cygnus.com> 13773 13774 * call.c (build_method_call): Allow implicit & on METHOD_TYPEs, 13775 but pedwarn as the code is bogus. 13776 * typeck.c (decay_conversion): Likewise. 13777 (build_function_call_real): Use build_addr_func instead of 13778 default_conversion. Don't allow pointer-to-method functions down 13779 here. 13780 (build_unary_op): Use real pointer-to-member functions instead of 13781 fake ones. 13782 (build_ptrmemfunc): Use build_addr_func instead of build_unary_op. 13783 (convert_for_assignment): Removed some obsolete code. 13784 * decl2.c (reparse_absdcl_as_expr): Pass current_class_ref to 13785 build_x_function_call instead of current_class_ptr. Only call 13786 digest_init once on an initializer, we do this just checking 13787 TREE_TYPE. 13788 (build_expr_from_tree): Pass current_class_ref to 13789 build_x_function_call instead of current_class_ptr. 13790 * init.c (build_member_call): Likewise. 13791 * pase.y: Likewise. 13792 * error.c (dump_expr): Handle OFFSET_REFs better. 13793 * pt.c (unify): Handle pointer-to-member functions better. 13794 * decl.c (finish_function): Clear out current_class_ref just like 13795 we do for current_class_ptr. 13796 13797 * typeck.c (get_delta_difference): Handle virtual bases better. 13798 13799Tue May 14 16:37:37 1996 Jason Merrill <jason@yorick.cygnus.com> 13800 13801 * sig.c (build_signature_table_constructor): Use the delta for 13802 the original basetype for this virtual function with thunks. 13803 (build_signature_method_call): We still need to adjust 'this' 13804 with thunks. 13805 13806Tue May 14 16:27:25 1996 Mike Stump <mrs@cygnus.com> 13807 13808 * call.c (build_addr_func): New routine. Used to get the `real' 13809 address of a function or a method. Needed to avoid getting a 13810 pointer-to-member function. 13811 (build_call): New routine to build CALL_EXPRs. 13812 (build_method_call): Use it. 13813 * cvt.c (convert_to_aggr): Likewise. 13814 * typeck.c (build_function_call_real): Likewise. 13815 * sig.c (build_signature_table_constructor): Use build_addr_func. 13816 * cp-tree.h (build_call, build_addr_func): Declare them. 13817 13818Tue May 14 12:47:47 1996 Mike Stump <mrs@cygnus.com> 13819 13820 * cp-tree.h (LOOKUP_AGGR): Remove, unused. 13821 * parse.y: Remove uses of LOOKUP_AGGR. 13822 13823Tue May 14 12:07:51 1996 Mike Stump <mrs@cygnus.com> 13824 13825 * *.[chy]: Rename current_class_decl to current_class_ptr, and 13826 C_C_D to current_class_ref. 13827 13828Mon May 13 16:55:23 1996 Jason Merrill <jason@yorick.cygnus.com> 13829 13830 * call.c (convert_harshness): Tighten up pointer conversions. 13831 13832Sat May 11 04:33:50 1996 Doug Evans <dje@canuck.cygnus.com> 13833 13834 * decl2.c (finish_vtable_vardecl): Surround DECL_ONE_ONLY with ifdef. 13835 (finish_file): Likewise. 13836 13837Fri May 10 11:09:57 1996 Jason Merrill <jason@yorick.cygnus.com> 13838 13839 * cvt.c (convert_fn_ptr): We don't use thunks for pmfs. 13840 13841 * method.c (emit_thunk): Set flag_omit_frame_pointer in default 13842 code. 13843 13844Thu May 9 18:18:30 1996 Jason Merrill <jason@yorick.cygnus.com> 13845 13846 * decl2.c: Turn on thunks by default where supported. 13847 13848Tue May 7 20:39:57 1996 Mike Stump <mrs@cygnus.com> 13849 13850 * cp-tree.h (build_overload_call_maybe): Removed. 13851 * call.c (build_overload_call_real): Invert meaning of last arg to 13852 be require_complete. 13853 (build_overload_call): Likewise. 13854 * typeck.c (build_x_function_call): Use build_overload_call_real 13855 instead of build_overload_call_maybe. 13856 13857Mon May 6 01:23:32 1996 Jason Merrill <jason@yorick.cygnus.com> 13858 13859 * decl2.c (finish_file): Don't try to emit functions that haven't 13860 been compiled. 13861 13862Fri May 3 09:30:13 1996 Jason Merrill <jason@yorick.cygnus.com> 13863 13864 * decl2.c (finish_vtable_vardecl): Oops. 13865 13866 * decl.c (maybe_push_to_top_level): Do save previous_class_*. 13867 Also store the bindings from previous_class_values. 13868 (pop_from_top_level): Restore them. 13869 13870Thu May 2 21:56:49 1996 Jason Merrill <jason@yorick.cygnus.com> 13871 13872 * decl2.c (finish_vtable_vardecl): Only write out vtable if its 13873 symbol has been referenced. 13874 (finish_file): Re-join synthesis/vtable loop with inline emission 13875 loop, disable inlining when an inline is output. 13876 13877Thu May 2 17:20:02 1996 Mike Stump <mrs@cygnus.com> 13878 13879 * except.c (init_exception_processing): Setup saved_in_catch. 13880 (push_eh_cleanup): Reset __eh_in_catch. 13881 (expand_start_catch_block): Set __eh_in_catch. 13882 13883Thu May 2 16:21:17 1996 Mike Stump <mrs@cygnus.com> 13884 13885 * except.c (push_eh_cleanup): Add tracking for whether or not we 13886 have an active exception object. 13887 (expand_builtin_throw): Use it to make sure a rethrow without an 13888 exception object is caught. 13889 13890Thu May 2 11:26:41 1996 Jason Merrill <jason@yorick.cygnus.com> 13891 13892 * decl.c (maybe_push_to_top_level): Clear out class-level bindings 13893 cache. 13894 13895Wed May 1 11:26:52 1996 Jason Merrill <jason@yorick.cygnus.com> 13896 13897 * decl2.c (finish_file): Also use sentries for vars with 13898 DECL_ONE_ONLY or DECL_WEAK set (should any such happen to be 13899 created). 13900 13901 * lex.c (handle_cp_pragma): Disable #pragma 13902 interface/implementation if SUPPORTS_ONE_ONLY > 1. 13903 13904Tue Apr 30 11:25:46 1996 Jason Merrill <jason@yorick.cygnus.com> 13905 13906 * method.c (emit_thunk): Wrap default case in 13907 temporary/permanent_allocation. 13908 13909 * method.c (make_thunk): Use DECL_ONE_ONLY. 13910 (emit_thunk): Call assemble_end_function. 13911 13912Mon Apr 29 15:38:29 1996 Jason Merrill <jason@yorick.cygnus.com> 13913 13914 * decl2.c (import_export_vtable): Use DECL_ONE_ONLY. 13915 (import_export_decl): Likewise. 13916 (finish_prevtable_vardecl): Disable vtable hack if 13917 SUPPORTS_ONE_ONLY > 1. 13918 13919Mon Apr 29 14:32:47 1996 Mike Stump <mrs@cygnus.com> 13920 13921 * typeck.c (build_modify_expr): PREINCREMENT_EXPR and 13922 PREDECREMENT_EXPRs take two arguments, not one. 13923 13924Mon Apr 29 00:27:53 1996 Jason Merrill <jason@yorick.cygnus.com> 13925 13926 * class.c (build_vtable_entry): Don't build thunks for abstract 13927 virtuals. 13928 13929 * lex.c (real_yylex): Fix handling of __PRETTY_FUNCTION__ like C 13930 frontend. 13931 13932Sat Apr 27 16:45:35 1996 Jason Merrill <jason@yorick.cygnus.com> 13933 13934 * class.c (set_rtti_entry): Use size_zero_node. 13935 (build_vtable): Likewise. 13936 13937Sat Apr 27 14:48:57 1996 Jason Merrill <jason@phydeaux.cygnus.com> 13938 13939 * class.c (finish_struct_1): Pass size_zero_node to set_rtti_entry. 13940 (prepare_fresh_vtable): Likewise. 13941 13942Fri Apr 26 13:14:14 1996 Jason Merrill <jason@yorick.cygnus.com> 13943 13944 * method.c (emit_thunk): Call mark_used on the target function. 13945 13946 * call.c (build_method_call): Don't warn about pending templates. 13947 13948Thu Apr 25 14:55:44 1996 Jason Merrill <jason@yorick.cygnus.com> 13949 13950 * decl2.c (finish_file): Fix list walking logic. 13951 13952 * typeck2.c (check_for_new_type): Only warn if -pedantic. 13953 13954Wed Apr 24 15:41:15 1996 Bob Manson <manson@charmed.cygnus.com> 13955 13956 * class.c (finish_struct_1): Remove old code for 13957 dont_allow_type_definitions. 13958 * cp-tree.h: Likewise. 13959 * spew.c: Make sure cp-tree.h is included before parse.h, so the 13960 definition of flagged_type_tree is found before it is used. 13961 * lex.c: Likewise. 13962 * parse.y: Added the ftype member to the type union, and changed a 13963 number of rules to use it instead of ttype. Added calls to 13964 check_for_new_type() as appropriate. 13965 * typeck2.c (check_for_new_type): New function for checking 13966 if a newly defined type appears in the specified tree. 13967 * cp-tree.h: Add new type flagged_type_tree. Add a prototype 13968 for check_for_new_type(). 13969 13970Wed Apr 24 00:36:21 1996 Jason Merrill <jason@yorick.cygnus.com> 13971 13972 * decl2.c (finish_file): Only use a sentry if the decl is public. 13973 13974 * pt.c (tsubst_expr, DECL_STMT): If we don't have an initializer, 13975 don't pass LOOKUP_ONLYCONVERTING. 13976 13977Tue Apr 23 17:18:47 1996 Bob Manson <manson@charmed.cygnus.com> 13978 13979 * typeck.c (common_type): Fix the ARRAY_TYPE case so it 13980 properly keeps track of const and volatile type modifiers. 13981 13982Tue Apr 23 10:52:56 1996 Jason Merrill <jason@yorick.cygnus.com> 13983 13984 * tree.c (cp_tree_equal): C++ version of simple_cst_equal. 13985 * pt.c (comp_template_args): Use it. 13986 13987 * rtti.c (get_tinfo_fn, build_dynamic_cast, expand_*_desc): Call 13988 assemble_external for artificial function decls. 13989 13990 * decl.c (cp_finish_decl): Oops. 13991 13992Mon Apr 22 17:28:27 1996 Jason Merrill <jason@yorick.cygnus.com> 13993 13994 * decl2.c (import_export_decl): Put static data member templates 13995 into common storage, or make them weak, depending on whether they 13996 are dynamically or statically initialized. 13997 (get_sentry): New function. 13998 (finish_file): Do import_export_decl for static data members before 13999 building the init/fini functions. Don't init/fini a variable that's 14000 EXTERNAL. Use a sentry for variables in common. Fix mismatching 14001 push/pop_temp_slots. 14002 * decl.c (cp_finish_decl): If DECL_NOT_REALLY_EXTERN, do the 14003 expand_static_init thang. 14004 * method.c (get_id_2): New function. 14005 14006Mon Apr 22 15:32:45 1996 Bob Manson <manson@charmed.cygnus.com> 14007 14008 * parse.y (empty_parms): Make sure we use C++-style prototypes 14009 when we're declaring member functions. 14010 14011Sun Apr 21 10:08:22 1996 Jason Merrill <jason@yorick.cygnus.com> 14012 14013 * Makefile.in (CONFLICTS): 16 s/r conflicts. 14014 * parse.y (self_template_type): New nonterminal. 14015 14016Thu Apr 18 08:56:54 1996 Jason Merrill <jason@yorick.cygnus.com> 14017 14018 * decl.c (make_typename_type): Handle getting a TYPE_DECL for a 14019 name. 14020 * parse.y (base_class.1): Allow 'typename foo::bar'. 14021 14022 * lex.c (check_newline): Remove #pragma code that plays with the 14023 input stream, since we now deal with tokens. Clear nextchar when 14024 we're done. 14025 (handle_cp_pragma): Use real_yylex. 14026 (handle_sysv_pragma): Don't do skipline here. Only call real_yylex 14027 in one place. 14028 14029 * lex.c (check_for_missing_semicolon): Handle SELFNAME. 14030 14031 * lex.c (handle_cp_pragma): Fix "#pragma implementation". 14032 14033Wed Apr 17 16:51:33 1996 Jason Merrill <jason@yorick.cygnus.com> 14034 14035 * parse.y: New token SELFNAME for potential constructor. 14036 * spew.c (yylex): Handle it. 14037 * lex.c (identifier_type): Produce it. 14038 14039 * parse.y (complete_type_name): In :: case, don't push class binding. 14040 (complex_type_name): Likewise. 14041 14042Wed Apr 17 15:02:40 1996 Mike Stump <mrs@cygnus.com> 14043 14044 * typeck.c (build_reinterpret_cast): Handle pointer to member 14045 functions. 14046 14047Wed Apr 17 12:28:26 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 14048 14049 * lex.c (handle_cp_pragma): New function, with decl, doing the cc1plus 14050 pragmas. 14051 (check_newline): Put the vtable/unit/implementation/interface pragma 14052 code into handle_cp_pragma, replacing it with a call. 14053 (handle_sysv_pragma): Give int return type, and take FINPUT and TOKEN 14054 args. Get the next token after handling the pragma token. 14055 14056Wed Apr 17 10:28:34 1996 Jason Merrill <jason@yorick.cygnus.com> 14057 14058 * cvt.c (cp_convert_to_pointer): Avoid doing base analysis on pmfs. 14059 (convert_to_pointer_force): Likewise. 14060 14061 * init.c (build_new): Fix array new without -fcheck-new. 14062 14063Tue Apr 16 13:44:58 1996 Jason Merrill <jason@yorick.cygnus.com> 14064 14065 * cp-tree.h, call.c, class.c, decl.c, parse.y, pt.c, rtti.c, 14066 tree.c: Lose TYPE_NESTED_NAME. 14067 14068 * parse.y (nested_name_specifier_1): Don't treat non-identifiers 14069 as identifiers. 14070 14071 * tree.def: Add VEC_INIT_EXPR. 14072 * expr.c (cplus_expand_expr): Handle it. 14073 * init.c (build_new): Use it instead of the RTL_EXPR nastiness and 14074 the extra file-scope symbol nastiness. 14075 14076Mon Apr 15 16:21:29 1996 Jason Merrill <jason@yorick.cygnus.com> 14077 14078 * method.c (make_thunk): Thunks are static. 14079 (emit_thunk): Use ASM_OUTPUT_MI_THUNK if it's defined. 14080 14081 * decl2.c (mark_vtable_entries): Emit thunks as needed. 14082 (finish_file): Don't emit them here. 14083 14084Sun Apr 14 11:34:39 1996 Jason Merrill <jason@yorick.cygnus.com> 14085 14086 * rtti.c (build_dynamic_cast): Handle null pointers. 14087 (ifnonnull): New function. 14088 14089Fri Apr 12 09:08:27 1996 Bob Manson <manson@charmed.cygnus.com> 14090 14091 * call.c (build_method_call): Remember the original basetype we 14092 were called with. Give an error message instead of trying 14093 (incorrectly) to call a non-static member function through a 14094 non-inherited class. 14095 14096 * search.c (expand_upcast_fixups): Mark the new fixup as 14097 DECL_ARTIFICIAL. 14098 14099Thu Apr 11 03:57:09 1996 Jason Merrill <jason@yorick.cygnus.com> 14100 14101 * init.c (build_new): Use a TARGET_EXPR for alloc_expr. 14102 14103 * class.c (set_rtti_entry): Fix for thunks. 14104 14105 * decl2.c (import_export_decl): Still emit typeinfo fns for 14106 cv-variants of builtin types. 14107 14108 * rtti.c (expand_class_desc): Set up base_info_type_node here. 14109 (init_rtti_processing): Instead of here. 14110 14111Wed Apr 10 14:17:13 1996 Jason Merrill <jason@yorick.cygnus.com> 14112 14113 * rtti.c (init_rtti_processing): Do init regardless of -frtti. 14114 (build_typeid): Only complain about taking dynamic typeid without 14115 -frtti. 14116 14117 * decl2.c: flag_rtti defaults to 1. 14118 14119 * rtti.c (get_tinfo_var): The general class case is now smaller. 14120 (init_rtti_processing): Pack the latter three fields of base_info 14121 into 32 bits. 14122 14123Wed Apr 10 13:50:14 1996 Mike Stump <mrs@cygnus.com> 14124 14125 * init.c (expand_member_init): Don't dump if name is NULL_TREE. 14126 14127Wed Apr 10 12:56:02 1996 Mike Stump <mrs@cygnus.com> 14128 14129 * search.c (make_memoized_table_entry): Undefer the pop, if necessary. 14130 (push_memoized_context): Split out code to undefer pop_type_level to 14131 (clear_memoized_cache): here. 14132 (pop_memoized_context): We can only handle one layer of deferral of 14133 pop_type_level so clear the cache, if there was a previous level. 14134 14135Tue Apr 9 23:06:09 1996 Jason Merrill <jason@yorick.cygnus.com> 14136 14137 * rtti.c (init_rtti_processing): Build up base_info_type_node. 14138 (expand_class_desc): Use one pointer to an array of base_info 14139 structs, passed using a CONSTRUCTOR. 14140 14141Tue Apr 9 14:20:57 1996 Mike Stump <mrs@cygnus.com> 14142 14143 * class.c (build_vbase_path): Remove block extern for 14144 flag_assume_nonnull_objects here. 14145 (build_vfn_ref): Split out functionality into build_vtbl_ref. 14146 (build_vtbl_ref): New routine. 14147 (build_vtable): Set up rtti info here. 14148 (add_virtual_function): Note in CLASSTYPE_RTTI the best 14149 place where we can get the rtti pointers from to avoid having to 14150 search around for a place. 14151 (finish_base_struct): Likewise. 14152 (finish_struct_1): Likewise. Never create totally new vtables 14153 with totally new vtable pointers for rtti. Disable code to layout 14154 vtable pointers better until we want to break binary 14155 compatibility. 14156 * rtti.c (build_headof_sub): New routine to convert down to a 14157 sub-object that has an rtti pointer in the vtable. 14158 (build_headof): Use it. Also, use build_vtbl_ref now to be more 14159 maintainable. 14160 (build_dynamic_cast): Make sure we have saved it, if we need to. 14161 * search.c (dfs_init_vbase_pointers): Disable code that deals with 14162 a more efficient vtable layout, enable later. 14163 * call.c (flag_assume_nonnull_objects): Moved declaration to 14164 * cp-tree.h: here. Declare build_vtbl_ref. 14165 * pt.c (instantiate_class_template): Use NULL_TREE instead of 0 in 14166 function calls that want a tree. 14167 14168Tue Apr 9 12:10:26 1996 Jason Merrill <jason@yorick.cygnus.com> 14169 14170 * rtti.c (build_dynamic_cast): Handle downcasting to X* given 14171 other X subobjects in the most derived type. Ack. 14172 14173 * rtti.c (build_dynamic_cast): No need to strip cv-quals here, 14174 get_typeid will do it for us. 14175 (get_typeid_1): Break out call-building for expand_*_desc to use. 14176 (get_typeid): Call it. 14177 (expand_*_desc): Likewise. 14178 * decl.c (init_decl_processing): Don't set TYPE_BUILT_IN on char * 14179 and void *. 14180 (init_decl_processing): Lose builtin_type_tdescs lossage. 14181 * decl2.c (finish_vtable_vardecl): Remove obsolete code. 14182 14183Mon Apr 8 17:23:23 1996 Bob Manson <manson@charmed.cygnus.com> 14184 14185 * pt.c (tsubst): When calling set_nested_typename, use 14186 TYPE_NESTED_NAME (current_class_type) instead of 14187 current_class_name. 14188 14189 * decl.c (pushdecl): Likewise. 14190 (pushdecl_class_level): Likewise. 14191 (grokdeclarator): Use NULL_TREE instead of 0 in the call to 14192 set_nested_typename. 14193 14194Sun Apr 7 10:44:31 1996 Jason Merrill <jason@yorick.cygnus.com> 14195 14196 * rtti.c (synthesize_tinfo_fn): Handle arrays. 14197 14198 * cp-tree.h (DECL_REALLY_EXTERN): New macro. 14199 14200Sat Apr 6 13:56:27 1996 Jason Merrill <jason@yorick.cygnus.com> 14201 14202 * rtti.c (throw_bad_cast): Use entry point __throw_bad_cast. 14203 (init_rtti_processing): Lose bad_cast_type. 14204 (build_dynamic_cast): Use throw_bad_cast. 14205 14206 * rtti.c (synthesize_tinfo_fn): Handle enums and pmfs. 14207 14208 * decl2.c (finish_file): Don't synthesize artificial functions 14209 that are external and not inline. 14210 14211 * rtti.c (get_tinfo_fn): If at_eof, call import_export_decl. 14212 14213 * decl2.c (finish_file): Handle having new inlines added to 14214 saved_inlines by synthesis. 14215 14216 * rtti.c (get_bad_cast_node): Don't require <typeinfo>. 14217 14218Fri Apr 5 17:02:09 1996 Jason Merrill <jason@yorick.cygnus.com> 14219 14220 RTTI rewrite to initialize nodes as needed, not require that 14221 users #include <typeinfo>, complete functionality and reduce wasted 14222 space. 14223 * rtti.c (init_rtti_processing): New fn. 14224 (build_typeid): The vtable entry is now a function. 14225 (get_tinfo_var): New fn. 14226 (get_tinfo_fn): Likewise. 14227 (get_typeid): Use it. 14228 (build_dynamic_cast): Declare and use entry point __dynamic_cast. 14229 (build_*_desc): Rename to expand_*_desc and rewrite to use entry 14230 points __rtti_*. 14231 (add_uninstantiated_desc, get_def_to_follow, build_t_desc): Lose. 14232 (synthesize_tinfo_fn): New fn. 14233 * method.c (build_t_desc_overload): Lose. 14234 (build_overload_with_type): More generic. 14235 * decl.c (init_decl_processing): Call init_rtti_processing. 14236 * class.c (set_rtti_entry): Use get_tinfo_fn. 14237 * decl2.c (mark_vtable_entries): Mark the rtti function. 14238 (finish_prevtable_vardecl): Don't build_t_desc. 14239 (import_export_decl): Handle tinfo functions. 14240 (finish_file): Likewise. 14241 * typeck.c (inline_conversion): New fn. 14242 (build_function_call_real): Use it. 14243 * cp-tree.h: Add decls. 14244 14245 * method.c (hack_identifier): Also convert component_refs from 14246 references. 14247 14248 * lex.c (cons_up_default_function): Use the type, not the name, in 14249 declspecs. 14250 14251 * decl2.c (import_export_vtable): Fix weak vtables. 14252 14253Fri Apr 5 13:30:17 1996 Bob Manson <manson@charmed.cygnus.com> 14254 14255 * search.c (get_base_distance_recursive): Fix access checks for 14256 protected bases. 14257 14258Fri Apr 5 11:02:06 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 14259 14260 * call.c (unary_complex_lvalue): Delete unneeded decl, it's in 14261 cp-tree.h. 14262 (convert_harshness): Add prototypes wrapped by PROTO. 14263 * decl2.c (grok_function_init): Likewise. 14264 (do_toplevel_using_decl): Change to void return type. 14265 * class.c (build_vtable_entry): Remove decl of make_thunk. 14266 (merge_overrides): Fix order of arg definitions. 14267 (finish_vtbls): Likewise. 14268 (fixup_vtable_deltas): Likewise. 14269 (modify_all_direct_vtables): Likewise. 14270 (modify_all_indirect_vtables): Likewise. 14271 * search.c (get_base_distance_recursive): Likewise. 14272 (get_abstract_virtuals_1): Likewise. 14273 (fixup_virtual_upcast_offsets): Likewise. 14274 (lookup_fnfields_1): Add prototypes wrapped by PROTO. 14275 * init.c (perform_member_init): Fix order of arg definitions. 14276 (expand_aggr_init_1): Add prototypes wrapped by PROTO. 14277 * cp-tree.h (make_thunk): Add decl. 14278 (overload_template_name, push_template_decl): Add decls. 14279 (do_toplevel_using_decl): Change to void return type. 14280 (vec_binfo_member): Add decl. 14281 14282Thu Apr 4 13:33:10 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 14283 14284 * typeck.c (mark_addressable, convert_for_assignment, 14285 convert_for_initialization, pointer_int_sum, pointer_diff, 14286 unary_complex_lvalue): Add prototypes wrapped by PROTO. 14287 (convert_sequence): #if 0 fn decl, since definition also is. 14288 14289Thu Apr 4 11:00:53 1996 Mike Stump <mrs@cygnus.com> 14290 14291 * rtti.c (build_dynamic_cast): Make sure we strip qualifiers on 14292 cast to pointer types for type searching. 14293 14294Wed Apr 3 17:10:57 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 14295 14296 * typeck.c (get_delta_difference): Use cp_error, not error, in the 14297 case where BINFO == 0. 14298 14299Wed Apr 3 12:01:02 1996 Mike Stump <mrs@cygnus.com> 14300 14301 * call.c (build_method_call): Fix wording of error messages so 14302 constructors come out right. 14303 14304Tue Apr 2 16:06:59 1996 Bob Manson <manson@charmed.cygnus.com> 14305 14306 * decl.c (push_overloaded_decl): Don't warn about hidden 14307 constructors when both the type and the function are declared 14308 in a system header file. 14309 14310Mon Apr 1 09:03:13 1996 Bob Manson <manson@charmed.cygnus.com> 14311 14312 * class.c (finish_struct_1): Propagate the TYPE_PACKED 14313 flag for the type to the type's fields. 14314 14315Sat Mar 30 12:14:33 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 14316 14317 * parse.y (complex_parmlist, ELLIPSES): Take out ARM-based warning. 14318 14319Fri Mar 29 15:51:36 1996 Bob Manson <manson@charmed.cygnus.com> 14320 14321 * class.c (base_info, finish_base_struct): Replace 14322 needs_virtual_dtor with base_has_virtual. 14323 14324 (finish_struct_1): Remove the old code that tried to make default 14325 destructors virtual. Use base_has_virtual when checking if we need 14326 to add a vtable entry for the rtti code. 14327 14328Fri Mar 29 14:02:36 1996 Jason Merrill <jason@yorick.cygnus.com> 14329 14330 * pt.c (push_template_decl): Complain about template decl with 14331 inappropriate declaration. 14332 14333Fri Mar 29 12:15:35 1996 Bob Manson <manson@charmed.cygnus.com> 14334 14335 * typeck.c (build_x_unary_op): Remove bogus check for taking 14336 the address of a member function. 14337 14338Fri Mar 29 11:56:02 1996 Jason Merrill <jason@yorick.cygnus.com> 14339 14340 * parse.y (constructor_declarator): Only push the class if 14341 we are not already in the class. 14342 14343Fri Mar 29 09:41:02 1996 Jeffrey A. Law <law@cygnus.com> 14344 14345 * method.c (emit_thunk): Remove current_call_is_indirect nonsense. 14346 Add additional argument to INIT_CUMULATIVE_ARGS. 14347 14348Thu Mar 28 16:41:39 1996 Jason Merrill <jason@yorick.cygnus.com> 14349 14350 * decl.c (shadow_tag): Fix error about anon union with methods. 14351 14352 * parse.y (self_reference): Only generate a self-reference if this 14353 is a non-template class. 14354 (opt.component_decl_list): Only use it if it was generated. 14355 14356 * parse.y (component_decl_1): Use constructor_declarator. 14357 (fn.def2): Likewise. 14358 (notype_component_declarator0): Likewise. 14359 14360Thu Mar 28 15:11:35 1996 Bob Manson <manson@charmed.cygnus.com> 14361 14362 * typeck.c (build_x_unary_op): Add checks for taking the address 14363 of a TARGET_EXPR or of a member function, and give appropriate 14364 warnings. 14365 14366Thu Mar 28 14:49:26 1996 Jason Merrill <jason@yorick.cygnus.com> 14367 14368 * pt.c (process_template_parm): Allow template type parms to be 14369 used as types for template const parms. 14370 14371Wed Mar 27 15:51:19 1996 Mike Stump <mrs@cygnus.com> 14372 14373 * init.c (expand_vec_init): Ensure the eh cleanups are on the 14374 function_obstack. 14375 14376Wed Mar 27 10:14:30 1996 Jason Merrill <jason@yorick.cygnus.com> 14377 14378 * decl.c (lookup_name_real): Be even more picky about the 14379 ambiguous lookup warning. 14380 (grokdeclarator): Tweak SCOPE_REF constructor declarators here. 14381 * parse.y (constructor_declarator): Rather than here. 14382 14383 * parse.y (constructor_declarator): New nonterminal. 14384 (fn.def1): Use it. 14385 (explicit_instantiation): Likewise. 14386 14387Tue Mar 26 13:41:33 1996 Jason Merrill <jason@yorick.cygnus.com> 14388 14389 Add implicit declaration of class name at class scope. 14390 * decl.c (lookup_name_real): Restrict pedwarn about ambiguous lookup. 14391 * parse.y (self_reference): New nonterminal. 14392 (opt.component_decl_list): Use it. 14393 (fn.def1): Add nested_name_specifier type_name cases. 14394 * class.c (build_self_reference): New function. 14395 (finish_struct): Handle access_default later, move self-reference 14396 decl to the end. 14397 * pt.c (lookup_template_class): Handle getting a TYPE_DECL. 14398 * cp-tree.h: Adjust. 14399 14400 * pt.c (do_function_instantiation): Separate handling of member 14401 functions and non-member functions properly. 14402 14403Mon Mar 25 14:23:22 1996 Jason Merrill <jason@yorick.cygnus.com> 14404 14405 * pt.c (process_template_parm): Improve error for 'volatile class K'. 14406 14407 * class.c (finish_struct_1): Check the right slot for destructors. 14408 14409 * decl.c (start_enum): Complain about enum templates. 14410 14411Mon Mar 25 13:25:31 1996 Mike Stump <mrs@cygnus.com> 14412 14413 * init.c (resolve_offset_ref): Offset pointers to member data by one. 14414 * typeck.c (unary_complex_lvalue): Likewise. 14415 14416Mon Mar 25 13:30:42 1996 Bob Manson <manson@charmed.cygnus.com> 14417 14418 * typeck.c (c_expand_return): Check for a returned local 14419 array name, similar to the check for an ADDR_EXPR. 14420 14421Mon Mar 25 13:07:19 1996 Jason Merrill <jason@yorick.cygnus.com> 14422 14423 * decl.c (cp_finish_decl): Don't build cleanups for static 14424 variables here. 14425 14426Fri Mar 22 17:57:55 1996 Mike Stump <mrs@cygnus.com> 14427 14428 * typeck.c (build_modify_expr): Fix error messages to be more 14429 accurate. 14430 * cp-tree.h (assop_as_string): Parallel to op_as_string, but for 14431 assignment operators. 14432 * error.c (assop_as_string): Likewise. Add support for `%Q' for 14433 assignment operators. 14434 14435Fri Mar 22 13:48:29 1996 Jason Merrill <jason@yorick.cygnus.com> 14436 14437 * decl.c (grokdeclarator): Call bad_specifiers for typedefs. Also 14438 give an error if initialized. pedwarn about nested type with the 14439 same name as its enclosing class. 14440 14441 * pt.c (tsubst, case TYPE_DECL): Set DECL_CONTEXT. 14442 14443 * typeck.c (require_complete_type): Be sure to instantiate the 14444 MAIN_VARIANT of the type. 14445 14446 * decl2.c (finish_file): Instantiate pending templates before 14447 processing static constructors and destructors. 14448 14449 * pt.c (instantiate_decl): Don't instantiate functions at toplevel 14450 unless at_eof. 14451 14452Fri Mar 22 09:30:17 1996 Bob Manson <manson@beauty.cygnus.com> 14453 14454 * decl2.c (delete_sanity): If error_mark_node is passed 14455 in as an expression, quit while we're ahead. 14456 14457 * decl.c (grokdeclarator): Give an error message if `friend' 14458 is combined with any storage class specifiers. 14459 14460Wed Mar 20 14:51:55 1996 Jason Merrill <jason@yorick.cygnus.com> 14461 14462 * parse.y (named_complex_class_head_sans_basetype): Don't crash on 14463 definition of nonexistent nested type. 14464 14465 * error.c (dump_decl, case TYPE_DECL): Fix decision for whether or 14466 not to say 'typedef'. 14467 14468Wed Mar 20 00:11:47 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 14469 14470 * cp-tree.h (struct lang_type): Make search_slot a tree, not a char*. 14471 * search.c (dfs_walk, dfs_init_vbase_pointers, 14472 expand_upcast_fixups): Remove cast of CLASSTYPE_SEARCH_SLOT. 14473 (dfs_find_vbases): Remove cast for CLASSTYPE_SEARCH_SLOT init. 14474 14475Tue Mar 19 17:56:03 1996 Jason Merrill <jason@yorick.cygnus.com> 14476 14477 * except.c (build_throw): Support minimal parse. 14478 * pt.c (tsubst_copy): Support THROW_EXPR. 14479 * decl2.c (build_expr_from_tree): Likewise. 14480 14481 * pt.c (mangle_class_name_for_template): Always allocate 14482 scratch_firstobj. 14483 14484Tue Mar 19 16:34:31 1996 Bob Manson <manson@beauty.cygnus.com> 14485 14486 * cvt.c (cp_convert_to_pointer): Give an appropriate error 14487 when trying to cast from an incomplete type. 14488 14489Tue Mar 19 16:00:33 1996 Jason Merrill <jason@yorick.cygnus.com> 14490 14491 * pt.c (instantiate_class_template): Don't bother setting up 14492 CLASSTYPE_TAGS explicitly, as the nested types will add 14493 themselves. 14494 14495Tue Mar 19 15:48:43 1996 Bob Manson <manson@beauty.cygnus.com> 14496 14497 * decl.c (shadow_tag): Remove old error check for usage of 14498 an enum without a previous declaration. 14499 (xref_tag): Add error message about usage of enums without a 14500 previous declaration. 14501 14502Tue Mar 19 09:21:35 1996 Jason Merrill <jason@yorick.cygnus.com> 14503 14504 * lex.c (do_identifier): Only do name consistency check if we're 14505 parsing. 14506 14507 * pt.c (push_template_decl): Don't crash if we get a member defn 14508 that doesn't match. 14509 14510 * decl.c (xref_tag_from_type): New function to do an xref without 14511 always having to figure out code_type_node. 14512 * cp-tree.h: Declare it. 14513 * pt.c (instantiate_class_template): Use it for friend classes. 14514 (lookup_template_class): Use it. 14515 14516 * typeck2.c (build_functional_cast): Pull out a single parm before 14517 passing it to build_c_cast. 14518 14519Tue Mar 19 09:07:15 1996 Bob Manson <manson@beauty.cygnus.com> 14520 14521 * expr.c (do_case): Give an error message if a pointer is 14522 given as a case value. 14523 14524Mon Mar 18 21:57:54 1996 Jason Merrill <jason@yorick.cygnus.com> 14525 14526 * typeck.c (build_c_cast): Don't pull single TEMPLATE_DECL out of 14527 an overload list. 14528 14529 * lex.c (cons_up_default_function): Really, now, interface hackery 14530 does not apply to synthesized methods. 14531 14532Mon Mar 18 18:20:57 1996 Mike Stump <mrs@cygnus.com> 14533 14534 * call.c (build_method_call): Ctors and dtors now have special names 14535 with respect to lookups. 14536 * class.c (add_method): Likewise. 14537 (grow_method): Likewise. 14538 (finish_struct_methods): Likewise. 14539 (warn_hidden): Likewise. 14540 (finish_struct_1): Likewise. 14541 * cvt.c (convert_to_reference): Likewise. 14542 (convert_to_aggr): Likewise. 14543 (cp_convert): Likewise. 14544 * decl2.c (check_classfn): Likewise. 14545 * init.c (expand_member_init): Likewise. 14546 (expand_default_init): Likewise. 14547 (expand_aggr_init_1): Likewise. 14548 (build_offset_ref): Likewise. 14549 (build_new): Likewise. 14550 (build_delete): Likewise. 14551 * lex.c (do_inline_function_hair): Likewise. 14552 * search.c (lookup_field_1): Likewise. 14553 (lookup_fnfields_here): Likewise. 14554 (lookup_field): Likewise. 14555 (lookup_fnfields): Likewise. 14556 (get_virtual_destructor): Likewise. 14557 (dfs_debug_mark): Likewise. 14558 (dfs_pushdecls): Likewise. 14559 (dfs_compress_decls): Likewise. 14560 * tree.c (layout_basetypes): Likewise. 14561 * typeck.c (build_component_ref): Likewise. 14562 (build_x_function_call): Likewise. 14563 (build_modify_expr): Likewise. 14564 (convert_for_initialization): Likewise. 14565 (build_functional_cast): Likewise. 14566 * cp-tree.h (CLASSTYPE_FIRST_CONVERSION): Likewise. 14567 (CTOR_NAME): New. 14568 (DTOR_NAME): New. 14569 * decl.c (ctor_identifier): New. 14570 (dtor_identifier): New. 14571 (init_decl_processing): Set them. 14572 14573Mon Mar 18 18:00:51 1996 Mike Stump <mrs@cygnus.com> 14574 14575 * typeck.c (build_component_ref): Don't get confused by fields whose 14576 context has no type name, like pointer to member functions. 14577 14578Mon Mar 18 13:19:03 1996 Jason Merrill <jason@yorick.cygnus.com> 14579 14580 * decl.c (grokdeclarator): Handle typedef without declarator. 14581 14582 * pt.c (tsubst): Handle SCOPE_REF in declarator. 14583 14584 * parse.y (bad_parm): Catch another case of missing `typename'. 14585 14586 * lex.c (yyprint): Handle TYPE_DECLs. 14587 14588 * decl.c (start_function): Don't try to be clever. 14589 14590 * lex.c: Lose compiler_error_with_decl. 14591 * typeck2.c: Lose error_with_aggr_type. 14592 (incomplete_type_error): Use cp_* instead of old functions. 14593 (readonly_error): Likewise. 14594 * typeck.c (convert_arguments): Likewise. 14595 * search.c (lookup_nested_field): Likewise. 14596 * method.c (make_thunk): Likewise. 14597 * decl.c (grokparms): Likewise. 14598 * cp-tree.h: Update. 14599 14600 * tree.c (min_tree_cons): Call copy_to_permanent for the purpose 14601 and value. 14602 14603Mon Mar 18 11:25:52 1996 Bob Manson <manson@beauty.cygnus.com> 14604 14605 * method.c (build_opfncall): When deleting a pointer to an 14606 array, build a new pointer to the tree past any ARRAY_TYPE 14607 nodes. 14608 14609Mon Mar 18 10:11:46 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 14610 14611 * decl.c (lookup_name_real): Initialize local var TYPE to NULL_TREE. 14612 14613Fri Mar 15 11:03:57 1996 Jason Merrill <jason@yorick.cygnus.com> 14614 14615 * pt.c (instantiate_decl): Only call import_export_decl if at_eof 14616 and ! DECL_INLINE. 14617 14618 * decl.c (finish_function): Don't set nested based on 14619 hack_decl_function_context. 14620 * parse.y (function_try_block): Check for nested function. 14621 (pending_inlines): Likewise. 14622 14623 * decl2.c (build_expr_from_tree): If a unary op already has a 14624 type, just return it. 14625 14626 * decl2.c (finish_prevtable_vardecl): Use ADJUST_VTABLE_LINKAGE. 14627 14628 * decl2.c (walk_vtables): vardecl_fn returns int; return 1 if it does. 14629 (finish_file): Check the return value of walk_vtables. 14630 (finish_prevtable_vardecl): Return int. 14631 (finish_vtable_vardecl): Likewise. 14632 (prune_vtable_vardecl): Likewise. 14633 * lex.c (set_vardecl_interface_info): Likewise. 14634 * cp-tree.h: Adjust return types. 14635 14636 * class.c (delete_duplicate_fields_1): Don't complain about 14637 duplicate nested types if they're the same type. 14638 (finish_struct): Remove check for duplicate. 14639 * decl2.c (grokfield): Don't check for typedef of anonymous type. 14640 14641Thu Mar 14 10:00:19 1996 Jason Merrill <jason@yorick.cygnus.com> 14642 14643 * cp-tree.h: Lose SIGNATURE_GROKKING_TYPEDEF. 14644 14645 * decl.c (grokdeclarator): Lose special handling of class-level 14646 typedef. Lose SIGNATURE_GROKKING_TYPEDEF. Set 14647 SIGNATURE_HAS_OPAQUE_TYPEDECLS later. 14648 14649 * cvt.c (convert_pointer_to_real): Retain cv-quals in conversion. 14650 14651 * pt.c (tsubst_copy): Strip cv-quals from destructor name types. 14652 14653 * search.c (compute_access): Fix handling of anonymous union 14654 members. 14655 * class.c (finish_struct_anon): Propagate TREE_{PRIVATE,PROTECTED} 14656 from anonymous unions to their members. 14657 14658 * typeck.c (build_x_function_call): For static member functions, 14659 hand off to build_member_call. 14660 14661Wed Mar 13 14:03:34 1996 Jason Merrill <jason@yorick.cygnus.com> 14662 14663 * typeck.c (build_component_ref): Handle OFFSET_REFs. 14664 14665 * init.c (expand_vec_init): Fix init == 0 case. 14666 14667Tue Mar 12 14:36:02 1996 Jason Merrill <jason@yorick.cygnus.com> 14668 14669 * init.c (build_new): pedwarn about init and array new. 14670 (expand_vec_init): Handle lists, use convert_for_initialization. 14671 14672 * typeck.c (convert_for_initialization): Pass LOOKUP_NO_CONVERSION 14673 when converting to an aggregate type. 14674 * cvt.c (cp_convert): Pass it through. 14675 14676 * typeck.c (build_conditional_expr): Handle user-defined 14677 conversions to slightly different types. 14678 14679 * decl.c (grokdeclarator): Force an array type in a parm to be 14680 permanent. 14681 14682 * decl2.c (do_using_directive): Sorry. 14683 (do_namespace_alias): Likewise. 14684 * lex.c (real_yylex): Warn about using the `namespace' keyword. 14685 14686Sun Mar 10 22:26:09 1996 Jason Merrill <jason@yorick.cygnus.com> 14687 14688 * parse.y (datadef): Move call to note_list_got_semicolon up. 14689 14690Fri Mar 8 11:47:26 1996 Mike Stump <mrs@cygnus.com> 14691 14692 * tree.c (unsave_expr): Don't unsave, UNSAVE_EXPRs. 14693 14694Fri Mar 8 11:29:06 1996 Mike Stump <mrs@cygnus.com> 14695 14696 * decl.c (cp_finish_decl): The exception regions have to be 14697 nested, not overlapping. We start the exception region for a 14698 decl, after it has been fully built, and all temporaries for it 14699 have been cleaned up. 14700 14701Thu Mar 7 17:46:06 1996 Mike Stump <mrs@cygnus.com> 14702 14703 * tree.c (vec_binfo_member): Don't core dump if we have no bases. 14704 14705Thu Mar 7 14:11:49 1996 Jason Merrill <jason@yorick.cygnus.com> 14706 14707 * tree.def: Add RETURN_INIT. 14708 * pt.c (instantiate_decl): Handle RETURN_INIT. 14709 * decl.c (store_return_init): Handle minimal_parse_mode. 14710 14711 * tree.c (cp_build_type_variant): Just return an error_mark_node. 14712 * decl.c (make_typename_type): Don't try to get the file and line 14713 of an identifier. 14714 * typeck.c (comptypes): Handle TYPENAME_TYPE. 14715 14716Wed Mar 6 18:47:50 1996 Per Bothner <bothner@kalessin.cygnus.com> 14717 14718 * decl.c (poplevel): Make sure we clear out and restore old local 14719 non-VAR_DECL values by default when they go out of scope. 14720 14721Wed Mar 6 09:57:36 1996 Jason Merrill <jason@yorick.cygnus.com> 14722 14723 * method.c (build_overload_value): Use DECL_ASSEMBLER_NAME in 14724 referring to addresses of variables and functions. 14725 14726 * error.c (dump_expr): Support SIZEOF_EXPR. 14727 14728 * init.c (do_friend): Use the return value of check_classfn. 14729 14730 * typeck.c (convert_arguments): Call complete_type. 14731 14732 * method.c (hack_identifier): After giving an error, set value to 14733 error_mark_node. 14734 14735Tue Mar 5 16:00:15 1996 Jason Merrill <jason@yorick.cygnus.com> 14736 14737 * tree.c (hack_decl_function_context): Kludge around DECL_CONTEXT 14738 lossage for local classes. 14739 * cp-tree.h: Declare it. 14740 * decl.c (lookup_name_real): Evil, painful hack for local classes. 14741 (grokfndecl): Set DECL_CLASS_CONTEXT and DECL_NO_STATIC_CHAIN here. 14742 Use hack_decl_function_context. 14743 (grokdeclarator): Don't set DECL_NO_STATIC_CHAIN here. 14744 (start_function): Use hack_decl_function_context. 14745 (finish_function): Likewise. 14746 * method.c (synthesize_method): Likewise. 14747 * lex.c (process_next_inline): Likewise. 14748 (do_pending_inlines): Likewise. 14749 * decl2.c (finish_file): Unset DECL_STATIC_FUNCTION_P when we're 14750 done with it. 14751 14752Mon Mar 4 22:38:39 1996 Gerald Baumgartner <gb@alexander.cs.purdue.edu> 14753 14754 * sig.c (build_signature_pointer_or_reference_type): Align 14755 signature pointers/references on 8-byte boundaries so they can be 14756 grabbed 2 words at a time on a Sparc. 14757 14758Tue Mar 5 10:21:01 1996 Jason Merrill <jason@yorick.cygnus.com> 14759 14760 * method.c (hack_identifier): Requiring a static chain is now a 14761 hard error. 14762 * decl.c (grokdeclarator): Set DECL_NO_STATIC_CHAIN on nested 14763 functions. 14764 14765Mon Mar 4 20:03:33 1996 Jason Merrill <jason@yorick.cygnus.com> 14766 14767 * init.c (build_offset_ref): Call complete_type. 14768 14769 * decl.c (pop_from_top_level): Always pop previous_class_type. 14770 14771 * parse.y: Handle multiple decls in a for-init-statement. 14772 * pt.c (tsubst_expr): Likewise. 14773 14774 * pt.c (tsubst): Use tsubst_expr for the second operand of an 14775 ARRAY_REF. 14776 14777 * decl.c (maybe_push_to_top_level): Don't save previous_class_type. 14778 (poplevel_class): Set it here. 14779 (pop_from_top_level): Pop it here if we're returning to class scope. 14780 * class.c (pushclass): Don't set it here. 14781 14782 * decl.c (maybe_push_to_top_level): Save current_template_parms, 14783 and clear it if !pseudo. 14784 (pop_from_top_level): Restore it. 14785 14786 * decl2.c (finish_file): Push the dummy each time we walk the list 14787 of vtables. 14788 14789 * error.c (dump_expr): Support LOOKUP_EXPR and actually do 14790 something for CAST_EXPR. 14791 14792Mon Feb 19 14:49:18 1996 Rusty Russell <rusty@adelaide.maptek.com.au> 14793 14794 * cvt.c (cp_convert): Warn about implicit conversion of the 14795 address of a function to bool, as it is always true. 14796 14797Fri Feb 23 23:06:01 1996 Rusty Russell <rusty@adelaide.maptek.com.au> 14798 14799 * typeck.c (c_expand_return): Fix warning for local externs returned. 14800 14801Mon Mar 4 15:03:11 1996 Jason Merrill <jason@yorick.cygnus.com> 14802 14803 * tree.c (mapcar): Propagate const and volatile properly. 14804 14805 * typeck.c (complete_type): Be sure to instantiate the 14806 MAIN_VARIANT of the type. 14807 14808 * method.c (synthesize_method): Class interface hackery does not 14809 apply to synthesized methods. 14810 14811Mon Mar 4 14:05:23 1996 Jason Merrill <jason@yorick.cygnus.com> 14812 14813 * pt.c (comp_template_args): Use comptypes rather than just 14814 checking for TEMPLATE_TYPE_PARM equivalence. 14815 14816 * typeck.c (build_x_function_call): Call complete_type before 14817 checking TYPE_OVERLOADS_CALL_EXPR. 14818 14819Mon Mar 4 18:48:30 1996 Manfred Hollstein <manfred@lts.sel.alcatel.de> 14820 14821 * g++.c (main): Check also for new define ALT_LIBM. 14822 14823Fri Mar 1 13:09:33 1996 Jason Merrill <jason@yorick.cygnus.com> 14824 14825 * pt.c (instantiate_class_template): If we don't have a pattern 14826 yet, that's OK. 14827 (coerce_template_parms): If we see a local class, bail. 14828 14829 * decl.c (grok_reference_init): Make sure there's a type before 14830 checking its code. 14831 14832 * pt.c (do_function_instantiation): Avoid crashing on invalid decls. 14833 (push_template_decl): Likewise. 14834 14835 * parse.y (named_class_head): Set 14836 CLASSTYPE_TEMPLATE_SPECIALIZATION here if we have basetypes. 14837 14838 * decl.c (xref_tag): Diagnose redeclaration of template 14839 type-parameter name. 14840 14841 * error.c (dump_type): Handle anonymous template type parms. 14842 14843 * pt.c (instantiate_template): Use TYPE_MAIN_DECL instead of 14844 TYPE_STUB_DECL. 14845 (coerce_template_parms): Likewise. 14846 14847Thu Feb 29 16:26:01 1996 Mike Stump <mrs@cygnus.com> 14848 14849 * class.c (instantiate_type, case {ARRAY,INDIRECT}_REF, 14850 case ADDR_EXPR): Don't modify rhs if a subinstantiation fails. 14851 14852Thu Feb 29 08:20:25 1996 Jason Merrill <jason@yorick.cygnus.com> 14853 14854 * pt.c (instantiate_template): Take the MAIN_VARIANT of the type 14855 before trying to get its STUB_DECL. 14856 (coerce_template_parms): Likewise. 14857 14858 * parse.y (template_type_parm): If they didn't use 'class', 14859 pretend they did after giving an error. 14860 14861 * pt.c (coerce_template_parms): Diagnose use of local class. 14862 14863 * decl.c (grok_reference_init): Use instantiate_type. 14864 14865 * error.c (dump_expr): Handle TEMPLATE_DECLs. 14866 14867 * parse.y (named_class_head): Diagnose mismatching types and tags. 14868 14869 * decl.c (pushdecl): Type decls and class templates clash with 14870 artificial type decls, not hide them. 14871 14872 * decl.c (redeclaration_error_message): Diagnose redefinition of 14873 templates properly. 14874 (duplicate_decls): Diagnose disallowed overloads for template 14875 functions, too. 14876 14877 * decl.c (start_decl): Call complete_type before checking for a 14878 destructor. 14879 14880 * pt.c (tsubst): Use tsubst_expr on the elts of a VEC. 14881 14882 * decl.c (xref_tag): A TEMPLATE_TYPE_PARM is a match. 14883 14884Wed Feb 28 09:28:44 1996 Jason Merrill <jason@yorick.cygnus.com> 14885 14886 * decl.c (grok_op_properties): Don't check for operator++(int) in 14887 a template. 14888 14889 * tree.c (perm_manip): Return a copy of variable and function 14890 decls with external linkage. 14891 14892 * tree.def: Change some of the min tree codes to type "1". 14893 * pt.c (uses_template_parms): Handle 'e's, return 1 for LOOKUP_EXPRs. 14894 * method.c (build_overload_int): Emit something arbitrary for 14895 anything but an INTEGER_CST if we're in a template. 14896 14897 * decl.c (cp_finish_decl): Call complete_type before deciding 14898 whether or not to lay out the decl. 14899 14900 * lex.c (do_identifier): Check for DECL_INITIAL before using it. 14901 14902Tue Feb 27 16:35:32 1996 Jason Merrill <jason@yorick.cygnus.com> 14903 14904 * typeck2.c (build_x_arrow): Call complete_type. 14905 14906 * pt.c (add_pending_template): Broken out. 14907 (lookup_template_class): If -fexternal-templates, call it for all 14908 the methods of implemented types. 14909 (instantiate_class_template): Instead of instantiating them here. 14910 (instantiate_decl): Handle -fexternal-templates earlier. 14911 14912Tue Feb 27 15:51:32 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 14913 14914 * search.c, lex.c, decl.c, class.c, cp-tree.h: Don't wrap the 14915 memoized lookup stuff inside GATHER_STATISTICS. 14916 14917Tue Feb 27 10:38:08 1996 Jason Merrill <jason@yorick.cygnus.com> 14918 14919 * decl.c (start_decl): Complain about array of incomplete type 14920 here. 14921 (grokdeclarator): Not here. 14922 14923 * parse.y (template_parm): Expand full_parm inline so we can set 14924 the rule's precedence. 14925 14926 * pt.c (tsubst_expr): If we're in a template, just do tsubst_copy. 14927 (tsubst): tsubst_expr the DECL_INITIAL of FIELD_DECLs. 14928 * decl2.c (grokbitfield): Don't check for integer constant here. 14929 * class.c (finish_struct_1): Check here. 14930 14931 * decl.c (define_label): Make the min decl go on permanent_obstack. 14932 14933 * pt.c (unify): Don't handle CONST_DECLs. 14934 (uses_template_parms): Don't check DECL_INITIAL on a CONST_DECL. 14935 (tsubst_copy): Likewise. 14936 14937 * lex.c (do_identifier): Do pull the DECL_INITIAL out of a 14938 CONST_DECL for a template parm. 14939 14940Mon Feb 26 12:48:18 1996 Jason Merrill <jason@yorick.cygnus.com> 14941 14942 * decl.c (grokdeclarator): Complain about array of incomplete type 14943 here. 14944 (start_decl_1): Not here. 14945 14946 * pt.c (tsubst): Handle pointer-to-function declarators. 14947 14948 * method.c (hack_identifier): If pedantic, diagnose local class 14949 methods that require a static chain. 14950 14951 * decl.c (grok_op_properties): No longer static. 14952 * cp-tree.h: Declare it. 14953 * pt.c (tsubst): Call it for operators. 14954 Use tsubst_copy for TREE_VECs. 14955 14956 * parse.y (template_arg): The expr has precedence like '>'. 14957 14958Fri Feb 23 14:51:52 1996 Jason Merrill <jason@yorick.cygnus.com> 14959 14960 * pt.c (coerce_template_parms): Don't coerce an expression using 14961 template parms. 14962 (uses_template_parms): Also check DECL_INITIAL in CONST_DECLs. 14963 (tsubst): Don't use build_index_2_type if the max_value uses template 14964 parms. 14965 * method.c (build_overload_int): Emit something arbitrary for an 14966 expression using template parms. 14967 14968 * parse.y (template_close_bracket): New non-terminal to catch use 14969 of '>>' instead of '> >' in template class names. 14970 (template_type): Use it. 14971 * Makefile.in (CONFLICTS): Causes one more r/r conflict. 14972 14973 * tree.def: Add CAST_EXPR. 14974 * typeck2.c (build_functional_cast): Use CAST_EXPR instead of 14975 CONVERT_EXPR for minimal_parse_mode. 14976 * typeck.c (build_c_cast): Likewise. 14977 * pt.c (tsubst_copy): Likewise. 14978 * decl2.c (build_expr_from_tree): Likewise. 14979 * error.c (dump_expr): Likewise. 14980 14981Fri Feb 23 10:36:46 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 14982 14983 * except.c (SetTerminate, SetUnexpected): Put back global vars. 14984 (init_exception_processing): Put back decl/init of 14985 set_unexpected_fndecl and set_terminate_fndecl, needed to get the 14986 fns from libstdc++. 14987 14988 * decl.c (struct binding_level): Delete ACCEPT_ANY bitfield. 14989 (declare_uninstantiated_type_level, uninstantiated_type_level_p): 14990 Delete unused fns. 14991 * cp-tree.h (declare_uninstantiated_type_level, 14992 uninstantiated_type_level_p): Delete prototypes. 14993 14994Thu Feb 22 19:36:15 1996 Jason Merrill <jason@yorick.cygnus.com> 14995 14996 * pt.c (tsubst_expr): Add default return. 14997 14998Thu Feb 22 16:47:24 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 14999 15000 * error.c (fndecl_as_string): Delete unused arg CNAME. 15001 * sig.c (build_signature_table_constructor, 15002 build_signature_method_call): Fix calls. 15003 15004 * class.c (the_null_vtable_entry): Delete var definition. 15005 (init_class_processing): Delete tree the_null_vtable_entry init. 15006 * decl.c (no_print_{functions, builtins}): Declare as static. 15007 (__tp_desc_type_node): #if 0 var definition. 15008 (init_type_desc): #if 0 init of __tp_desc_type_node. 15009 (vb_off_identifier): Move var decl into init_decl_processing. 15010 (current_function_assigns_this): Declare as static. 15011 (int_ftype_ptr_ptr_int, void_ftype_ptr_int_int): Delete var decls. 15012 (init_decl_processing): Delete init of void_ftype_ptr_ptr_int. 15013 Move decls of string_ftype_ptr_ptr and int_ftype_string_string here. 15014 * decl2.c (delete_sanity): Delete definition/mod of local var ELT_SIZE. 15015 * init.c (BI_header_type, BI_header_size): Declare as static. 15016 * pt.c (template_classes): Delete unused var. 15017 (add_pending_template): Delete decl for non-existent fn. 15018 (lookup_template_class): Delete vars CODE and TAG_CODE. 15019 (instantiate_template): Delete unused var TARGS. 15020 * cp-tree.h (vb_off_identifier, current_function_assigns_this): 15021 Delete decls. 15022 (__tp_desc_type_node): #if 0 var decl. 15023 (fndecl_as_string): Fix prototype. 15024 15025Thu Feb 22 15:56:19 1996 Jason Merrill <jason@yorick.cygnus.com> 15026 15027 * tree.def: Add GOTO_STMT. 15028 * pt.c (tsubst_expr): Support goto and labels. 15029 * decl.c (define_label): Support minimal parsing. 15030 * parse.y (simple_stmt): Likewise. 15031 15032Thu Feb 22 15:30:12 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 15033 15034 * xref.c (GNU_xref_member): Only define/set var I if 15035 XREF_SHORT_MEMBER_NAMES is defined, to match when it's actually 15036 used. 15037 (GNU_xref_end_scope): Delete unused fifth arg TRNS. 15038 (GNU_xref_end): Fix call. 15039 * decl.c (poplevel, poplevel_class, finish_method): Fix calls. 15040 * cp-tree.h (GNU_xref_end_scope): Fix prototype. 15041 15042 * tree.c (build_exception_variant): Delete unused vars I, A, T, 15043 T2, and CNAME. 15044 (layout_vbasetypes): Delete unused var NONVIRTUAL_VAR_SIZE. 15045 (mapcar): Delete unused var CODE. 15046 (build_cplus_new): Delete unused arg WITH_CLEANUP_P. 15047 (break_out_cleanups): Fix call. 15048 (bot_manip): Likewise. 15049 * call.c (build_method_call): Likewise. 15050 * cvt.c (build_up_reference, convert_to_reference, cp_convert): 15051 Likewise. 15052 * typeck.c (unary_complex_lvalue, build_modify_expr, 15053 convert_for_initialization): Likewise. 15054 * typeck2.c (build_functional_cast): Likewise. 15055 * cp-tree.h (build_cplus_new): Fix prototype. 15056 15057 * repo.c (open_repo_file): Delete unused var Q. 15058 (repo_compile_flags, repo_template_declared, 15059 repo_template_defined, repo_class_defined, repo_inline_used, 15060 repo_vtable_used, repo_tinfo_used): #if 0 unused fns. 15061 (repo_get_id, repo_vtable_used): Declare as static. 15062 * cp-tree.h (mark_{decl,class}_instantiated, finish_repo): Add 15063 prototypes. 15064 15065Thu Feb 22 14:53:35 1996 Jason Merrill <jason@yorick.cygnus.com> 15066 15067 * parse.y (pending_inlines): Add function_try_block case. 15068 15069 * pt.c (unify): Fix for template const parms. 15070 15071Thu Feb 22 13:24:15 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 15072 15073 * lex.c (extract_interface_info): Delete forward decl. 15074 (default_copy_constructor_body, default_assign_ref_body): Delete 15075 decls for non-existent functions. 15076 (synth_firstobj, inline_text_firstobjs): Delete unused vars. 15077 (init_lex): Delete setting them. 15078 (cons_up_default_function): Delete unused vars FUNC_BUF, 15079 FUNC_LEN, and COMPLEX. Delete code setting COMPLEX. Delete old 15080 #if 0'd synth code. 15081 (toplevel, expression_obstack): Delete unused extern decls. 15082 (tree_node_kind): Delete unused enum. 15083 (tree_node_counts, tree_node_sizes): Wrap with #ifdef 15084 GATHER_STATISTICS. 15085 (tree_node_kind_names): Delete unused extern decl. 15086 (synth_obstack): Delete unused var. 15087 (init_lex): Don't set it. 15088 (init_parse): Add decl before use. 15089 (reduce_count): Only define #ifdef GATHER_STATISTICS && REDUCE_LENGTH. 15090 (current_unit_{name, language}): Delete unused vars. 15091 (check_newline): Don't bother setting them, just accept the #pragma. 15092 * cp-tree.h (init_repo, peek_yylex): Add prototypes. 15093 (current_unit_{name, language}): Delete decls. 15094 15095 * search.c: Wrap all of the memoized functions, macros, and 15096 variables inside #ifdef GATHER_STATISTICS. 15097 (lookup_field, lookup_fnfields): Likewise. 15098 (init_search_processing): Likewise. 15099 (reinit_search_statistics): Wrap whole function. 15100 * lex.c (reinit_lang_specific): Wrap call to reinit_search_statistics. 15101 15102 * decl.c (finish_function): Only call pop_memoized_context if 15103 GATHER_STATISTICS is defined. 15104 (start_function): Likewise for push_memoized_context. 15105 * class.c (pushclass, popclass): Likewise. 15106 15107 * cp-tree.h (CLASSTYPE_MTABLE_ENTRY): Move definition from here... 15108 * search.c (CLASSTYPE_MTABLE_ENTRY): ... to here. 15109 15110 * cvt.c (cp_convert): Delete unused local var FORM. 15111 * cp-tree.h (can_convert, can_convert_arg, real_lvalue_p): Add 15112 prototypes. 15113 15114Thu Feb 22 13:19:44 1996 Jason Merrill <jason@yorick.cygnus.com> 15115 15116 * pt.c (do_poplevel): Oops; really return what we get from 15117 poplevel this time. 15118 15119Thu Feb 22 11:41:44 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 15120 15121 * cp-tree.h (is_aggr_type): Add prototype. 15122 15123 * cp-tree.h ({push,pop}_cp_function_context): Add decls. 15124 * method.c ({push,pop}_cp_function_context): Delete decls. 15125 * except.c (start_eh_unwinder, end_eh_unwinder): Declare as void. 15126 (SetUnexpected, SetTerminate): Delete unused vars. 15127 (init_exception_processing): Don't set SetUnexpected or 15128 SetTerminate. Don't set SET_UNEXPECTED_FNDECL or SET_TERMINATE_FNDECL. 15129 (output_exception_table_entry): Delete unused array LABEL. 15130 (expand_internal_throw): Delete unused var PARAMS. 15131 (expand_start_catch_block): Delete unused var CLEANUP. 15132 (emit_exception_table): Delete unused var EH_NODE_DECL. 15133 (expand_builtin_throw): Delete unused vars UNWIND_AND_THROW and 15134 GOTO_UNWIND_AND_THROW. Don't set them. 15135 (end_eh_unwinder): Add top decl. 15136 (pop_rtl_from_perm): Delete unused decl of PERMANENT_OBSTACK. 15137 (exception_section, push_rtl_perm, do_function_call, 15138 lang_interim_eh, push_eh_cleanup, eh_outer_context, 15139 expand_end_eh_spec, end_eh_unwinder): Declare as static. 15140 (saved_pc, saved_throw_type, saved_throw_value, saved_cleanup, 15141 throw_used): Likewise. 15142 * cp-tree.h (expand_end_eh_spec): Delete prototype. 15143 15144 * search.c (dfs_mark, dfs_mark_vtable_path, 15145 dfs_unmark_vtable_path, dfs_mark_new_vtable, 15146 dfs_unmark_new_vtable, dfs_clear_search_slot, 15147 dfs_search_slot_nonempty_p, bfs_markedp, bfs_unmarkedp, 15148 bfs_marked_vtable_pathp, bfs_unmarked_vtable_pathp, 15149 bfs_marked_new_vtablep, bfs_unmarked_new_vtablep): #if 0 unused 15150 functions. 15151 (n_fields_searched, n_calls_lookup_field, n_calls_lookup_field_1, 15152 n_calls_lookup_fnfields, n_calls_lookup_fnfields_1, 15153 n_calls_get_base_type, n_outer_fields_searched, n_contexts_saved): 15154 Only define #ifdef GATHER_STATISTICS. 15155 (reinit_search_statistics): Only init some vars if GATHER_STATISTICS 15156 is defined. 15157 (vbase_decl): Delete var definition. 15158 (init_search): Delete old decl. 15159 (init_vbase_pointers): Delete building of VBASE_DECL, since it's 15160 never actually used. 15161 (expand_indirect_vtbls_init): Delete init of VBASE_DECL. 15162 (get_base_distance_recursive): Delete unused fourth arg 15163 BASETYPE_PATH. Fix call . 15164 (get_base_distance): Fix call. 15165 (push_class_decls): Delete unused var ID. 15166 (make_memoized_table_entry): Declare as static. 15167 (breadth_first_search): Declare as static. 15168 (tree_has_any_destructor_p): Declare as static. 15169 (pop_class_decls): Delete unused arg pop_class_decls. 15170 * class.c (popclass): Fix call to pop_class_decls. 15171 * cp-tree.h (make_memoized_table_entry, breadth_first_search, 15172 tree_has_any_destructor_p): Delete prototypes. 15173 15174 * rtti.c (build_ptmf_desc): Delete unused arg TYPE. 15175 (build_t_desc): Fix call. Delete unused vars ELEMS and TT. 15176 (build_dynamic_cast): Delete unused local vars TMP1 and RETVAL. 15177 (build_user_desc): Delete unused var T. 15178 (build_class_desc): Delete unused vars T and OFF. 15179 (build_t_desc): Delete unused var NAME_STRING. 15180 (build_headof): Make static. 15181 (get_bad_cast_node): Likewise. 15182 (get_def_to_follow): Likewise. 15183 * cp-tree.h (init_type_desc): Add prototype. 15184 (build_headof): Remove prototype. 15185 15186Thu Feb 22 00:54:22 1996 Jason Merrill <jason@yorick.cygnus.com> 15187 15188 * pt.c (tsubst): Only look for matching decls at file scope for 15189 non-member functions. 15190 15191 * call.c (build_scoped_method_call): Handle scoped destructor 15192 calls in templates. 15193 15194 * decl.c (*_top_level): Also save previous_class_values. 15195 15196 * pt.c (tsubst_expr): Support do {} while loops. 15197 * parse.y (simple_stmt): Likewise. 15198 * tree.def: Likewise. 15199 15200 * method.c (build_overload_identifier): For a class nested in a 15201 template class, don't mangle in the template parms from our 15202 context. 15203 15204 * lex.c, cp-tree.h: Remove support for template instantiations in 15205 the pending_inlines code. 15206 * pt.c: Remove dead functions and unused arguments. 15207 (uses_template_parms): TYPENAME_TYPEs always use template parms. 15208 * parse.y: Stop passing anything to end_template_decl. 15209 * tree.c (print_lang_statistics): Only print tinst info #ifdef 15210 GATHER_STATISTICS. 15211 15212Wed Feb 21 16:57:33 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 15213 15214 * init.c (expand_recursive_init{,_1}): Delete decls. 15215 (sort_member_init): Delete unused var INIT. 15216 (emit_base_init): Delete unused var X. 15217 (build_offset_ref): Delete unused var CNAME. 15218 (sort_member_init): Delete unused var FIELDS_TO_UNMARK. 15219 (emit_base_init): Delete unused local var BASE. Delete extern 15220 decl of IN_CHARGE_IDENTIFIER. 15221 (build_delete): Delete unused local var VIRTUAL_SIZE. 15222 15223 * init.c (build_vec_delete): Delete unused third arg ELT_SIZE. 15224 (build_delete): Fix call. 15225 * decl2.c (delete_sanity): Likewise. 15226 * cp-tree.h (build_vec_delete): Update prototype. 15227 15228 * typeck.c (common_base_type): Delete unused var TMP. 15229 (build_binary_op): Delete local var ARGS_SAVE. 15230 (build_array_ref): Delete unused var ITYPE. 15231 (c_expand_return): Delete unused var USE_TEMP. 15232 15233 * typeck.c (compexcepttypes): Delete unused arg STRICT. 15234 (comptypes): Fix calls. 15235 * decl.c (duplicate_decls): Likewise. 15236 * cp-tree.h (compexcepttypes): Delete extra arg. 15237 15238 * decl2.c (check_classfn): Delete unused second arg CNAME. 15239 * decl.c (start_decl, grokfndecl): Fix calls. 15240 * init.c (do_friend): Likewise. 15241 * cp-tree.h (check_classfn): Update prototype. 15242 15243 * cp-tree.h (signature_error, import_export_vtable, 15244 append_signature_fields, id_in_current_class, mark_used, 15245 copy_assignment_arg_p): Add decls. 15246 * decl2.c (mark_used): Delete decl. 15247 15248 * class.c (n_*): Wrap with #ifdef GATHER_STATISTICS. 15249 15250 * class.c (get_vtable_entry): Disable unused function. 15251 (doing_hard_virtuals): Delete unused static global var. 15252 (finish_struct_1): Don't init DOING_HARD_VIRTUALS. 15253 (prepare_fresh_vtable): Delete unused vars PATH and RESULT. 15254 (overrides): Delete unused vars RETTYPE and BASE_RETTYPE. 15255 (modify_one_vtable): Delete unused var OLD_RTTI. 15256 (finish_struct_anon): Delete unused vars OFFSET and X. 15257 (finish_struct_bits): Delete unused var METHOD_VEC. 15258 (get_basefndecls): Delete unused var PURPOSE. Delete unused 15259 for-scope local variable METHODS. 15260 15261 * call.c (user_harshness): Delete unused/unneeded arg PARM. 15262 (ideal_candidate): Delete unused args BASETYPE and PARMS. 15263 (build_method_call): Delete unused args passed into ideal_candidate. 15264 (build_overload_call_real): Likewise. Delete unused var OVERLOAD_NAME. 15265 * cp-tree.h (synthesize_method): Add decl. 15266 15267 * decl.c (note_level_for_for): Give void return type. 15268 (pushdecl_nonclass_level): Likewise. 15269 (finish_function): Delete unused vars VFIELDS and ALLOCATED_THIS. 15270 (poplevel): Delete unused var IMPLICIT_TRY_BLOCK. 15271 (suspend_binding_level): Delete unused var LEVEL. 15272 (duplicate_decls): Delete unused var CTYPE. 15273 (duplicate_decls): Delete unused var PREVIOUS_C_DECL. 15274 (init_decl_processing): Delete unused vars FLOAT_ENDLINK and 15275 PTR_ENDLINK. 15276 (grokdeclarator): Delete unused var C. 15277 (grokdeclarator): Delete unused var SIZE_VARIES. 15278 (grokparms): Delete unused var SAW_VOID. 15279 (start_function): Delete unused var OLDDECL. 15280 (cplus_expand_expr_stmt): Delete unused var 15281 REMOVE_IMPLICIT_IMMEDIATELY. 15282 15283 * cp-tree.h (pushdecl_nonclass_level): Fix prototype. 15284 15285 * Makefile.in (CONFLICTS): Update to 12 shift/reduce. 15286 15287Wed Feb 21 00:06:17 1996 Jason Merrill <jason@yorick.cygnus.com> 15288 15289 * tree.c (build_min): Set TREE_COMPLEXITY to lineno. 15290 (build_min_nt): Likewise. 15291 * pt.c (do_pushlevel): Emit line note. 15292 (do_poplevel): Return what we get from poplevel. 15293 (tsubst_expr): Set lineno from TREE_COMPLEXITY in stmt nodes. 15294 * parse.y: Use do_pushlevel and do_poplevel. 15295 * cp-tree.h: Declare do_poplevel. 15296 15297 * cp-tree.h: Declare at_eof. 15298 * decl.c (cp_finish_decl): Pass it to rest_of_decl_compilation. 15299 * decl2.c (import_export_decl): Renamed from import_export_inline. 15300 (finish_file): Call it to do interface handling for statics. 15301 * pt.c (tsubst_copy): Call mark_used on variables and functions 15302 used here. 15303 15304 * decl2.c (finish_file): Don't emit statics we can't generate. 15305 * pt.c (instantiate_decl): Don't set interface on instantiations 15306 we can't generate. 15307 15308 * cp-tree.h (struct tinst_level): Change 'classname' to 'decl'. 15309 * tree.c (print_lang_statistics): Print max template depth. 15310 * pt.c (push_tinst_level): Dump entire instantiation context. 15311 (instantiate_class_template): Use it and pop_tinst_level. 15312 (instantiate_decl): Likewise. 15313 15314 * call.c class.c cp-tree.h decl.c decl2.c error.c lex.c method.c 15315 pt.c ptree.c tree.def: Remove all traces of UNINSTANTIATED_P_TYPE. 15316 15317Tue Feb 20 18:21:51 1996 Jason Merrill <jason@yorick.cygnus.com> 15318 15319 * call.c class.c cp-tree.h cvt.c decl.c decl2.c error.c expr.c 15320 init.c lex.c method.c parse.y pt.c repo.c search.c spew.c tree.c 15321 tree.def typeck.c typeck2.c xref.c: Massive, systemic changes for 15322 the new template implementation. 15323 15324Tue Feb 20 17:14:29 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 15325 15326 * decl2.c (check_cp_case_value): Use STRIP_TYPE_NOPS. 15327 15328Thu Feb 15 18:44:42 1996 Mike Stump <mrs@cygnus.com> 15329 15330 * decl.c (cp_finish_decl): Delay emitting the debug information for 15331 a typedef that has been installed as the canonical typedef, if the 15332 type has not yet been defined. 15333 15334Thu Feb 15 09:39:08 1996 Jason Merrill <jason@yorick.cygnus.com> 15335 15336 * decl2.c (grokfield): Still call pop_nested_class for access decls. 15337 15338Wed Feb 14 17:30:04 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 15339 15340 * decl.c (lookup_label): Call label_rtx. 15341 15342 * decl.c (make_binding_level): New function. 15343 (pushlevel, pushlevel_class): Call it instead of explicit 15344 duplicate calls to xmalloc. 15345 15346 * decl.c (init_decl_processing): Delete useless build_pointer_type 15347 call. 15348 15349 * decl.c (float_ftype_float, ldouble_ftype_ldouble): Add definitions. 15350 (sizet_ftype_string): Delete variable. 15351 (init_decl_processing): Add built-in functions fabsf, fabsl, 15352 sqrtf, sqrtl, sinf, sin, sinl, cosf, cos, cosl. New local 15353 variable strlen_ftype, used for strlen. 15354 15355Wed Feb 14 16:21:25 1996 Jason Merrill <jason@yorick.cygnus.com> 15356 15357 * decl.c (push_to_top_level): Start from current_binding_level 15358 again for now; the stl hacks depend on g++ being broken in this 15359 way, and it'll be fixed in the template rewrite. 15360 15361 * tree.def: Add USING_DECL. 15362 * decl2.c (do_class_using_decl): Implement. 15363 (grokfield): Pass access decls off to do_class_using_decl instead of 15364 grokdeclarator. 15365 * error.c (dump_decl): Handle USING_DECLs. 15366 * decl.c (grokdeclarator): Remove code for handling access decls. 15367 * class.c (finish_struct_1): Adjust accordingly, treat using-decls 15368 as access decls for now. 15369 (finish_struct): Don't check USING_DECLs for other uses of the name. 15370 15371 * search.c (get_matching_virtual): Use cp_error_at. 15372 15373Wed Feb 14 10:36:58 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 15374 15375 * typeck.c (comptypes): Default COMP_TYPE_ATTRIBUTES to 1, to 15376 match c-typeck.c. 15377 (self_promoting_args_p): Move the check that TYPE is non-nil 15378 before trying to look at its main variant. 15379 (unsigned_type, signed_type): Add checking of DI/SI/HI/QI nodes. 15380 15381 * cp-tree.h (DECL_WAITING_FRIENDS, SET_DECL_WAITING_FRIENDS): 15382 Delete macros. 15383 * init.c (xref_friend, embrace_waiting_friends): Delete functions. 15384 (do_friend): Delete call to xref_friend. 15385 * class.c (finish_struct_1): Delete call to embrace_waiting_friends. 15386 15387 * typeck.c (convert_sequence): #if 0 unused function. 15388 15389 * cp-tree.h (DECL_IN_MEMORY_P): New macro w/ the check that used to 15390 be in decl_in_memory_p. 15391 (decl_in_memory_p): Delete decl. 15392 * expr.c (decl_in_memory_p): Delete fn. 15393 * typeck.c (mark_addressable): Use DECL_IN_MEMORY_P. 15394 15395 * decl.c (cp_finish_decl): Use DECL_IN_MEMORY_P. 15396 15397Tue Feb 13 12:51:21 1996 Jason Merrill <jason@yorick.cygnus.com> 15398 15399 * class.c (finish_struct_1): Check for a pure-specifier on a 15400 non-virtual function here. 15401 15402 * decl2.c (grok_function_init): Don't check whether the function 15403 is virtual here. 15404 (grokfield): Don't call check_for_override here. 15405 15406 * decl.c (push_to_top_level): Start from inner_binding_level, 15407 check class_shadowed in class levels. 15408 15409Mon Feb 12 17:46:59 1996 Mike Stump <mrs@cygnus.com> 15410 15411 * decl.c (resume_level): Ignore things that don't have names, instead 15412 of core dumping. 15413 15414Mon Feb 12 15:47:44 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 15415 15416 * decl2.c (grokfield): Set DECL_VINDEX properly for FUNCTION_DECLs. 15417 15418Sat Feb 10 17:59:45 1996 Jason Merrill <jason@yorick.cygnus.com> 15419 15420 * class.c (finish_struct_1): Set DECL_VINDEX properly on a 15421 synthesized dtor. 15422 15423 * parse.y (complete_type_name): Bind global_scope earlier. 15424 (complex_type_name): Likewise. 15425 (qualified_type_name): Remove. 15426 15427Thu Feb 8 15:15:14 1996 Jason Merrill <jason@yorick.cygnus.com> 15428 15429 * decl.c (grokfndecl): Move code that looks for virtuals in base 15430 classes... 15431 * class.c (check_for_override): ... to a new function. 15432 (finish_struct_1): Call it. 15433 15434 * cp-tree.h: Declare warn_sign_compare. 15435 15436 * typeck.c (build_binary_op_nodefault): Check warn_sign_compare 15437 rather than extra_warnings to decide whether to warn about 15438 comparison of signed and unsigned. 15439 15440 * decl2.c (lang_decode_option): Handle warn_sign_compare. -Wall 15441 implies -Wsign-compare. -Wall doesn't imply -W. 15442 15443Wed Feb 7 15:27:57 1996 Mike Stump <mrs@cygnus.com> 15444 15445 * typeck.c (build_component_ref): Fix to handle anon unions in base 15446 classes as well. 15447 15448Wed Feb 7 14:29:12 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 15449 15450 * class.c (resolves_to_fixed_type_p): Delete code dealing with 15451 a WITH_CLEANUP_EXPR, since we don't generate them any more. 15452 * cvt.c (build_up_reference): Likewise. 15453 * decl.c (grok_reference_init): Likewise. 15454 (cp_finish_decl): Likewise. 15455 * error.c (dump_expr): Likewise. 15456 * tree.c (real_lvalue_p): Likewise. 15457 (lvalue_p): Likewise. 15458 (build_cplus_new): Likewise. 15459 (unsave_expr_now): Likewise. 15460 * typeck.c (unary_complex_lvalue, build_modify_expr, 15461 c_expand_return): Likewise. 15462 15463Tue Feb 6 13:39:22 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 15464 15465 Make the C++ front-end pay attention to attributes for structures. 15466 * class.c (finish_struct): New argument ATTRIBUTES, passed down into 15467 finish_struct_1. 15468 (finish_struct_1): New argument ATTRIBUTES; call cplus_decl_attributes. 15469 Take out old round_up_size use and setting the DECL_ALIGN possibly 15470 using it. Take out setting of TYPE_ALIGN to round_up_size, which 15471 can override what the attribute set. 15472 * cp-tree.h (finish_struct): Update prototype. 15473 * parse.y (template_instantiate_once): Pass a NULL_TREE for the 15474 attributes to finish_struct. 15475 (structsp): For a CLASS decl, add maybe_attribute to rule and pass that 15476 value down into finish_struct. 15477 * Makefile.in (CONFLICTS): Switch to 7 shift/reduce conflicts. 15478 15479Tue Feb 6 13:12:15 1996 Per Bothner <bothner@kalessin.cygnus.com> 15480 15481 * decl.c (poplevel): Re-word dead for local handling. 15482 (pushdecl): Remove useless DECL_DEAD_FOR_LOCAL test. 15483 (cp_finish_decl): If is_for_scope, check for duplicates so 15484 we can disable is_for_scope. Otherwise, preserve_temp_slots. 15485 15486 * lex.c (do_identifier): Use global binding in preference of 15487 dead for local variable. 15488 15489Mon Feb 5 17:46:46 1996 Mike Stump <mrs@cygnus.com> 15490 15491 * init.c (initializing_context): Handle anon union changes, the 15492 context where fields of anon unions can be initialized now has to be 15493 found by walking up the TYPE_CONTEXT chain. 15494 15495Fri Feb 2 14:54:04 1996 Doug Evans <dje@charmed.cygnus.com> 15496 15497 * decl.c (start_decl): #ifdef out code to set DECL_COMMON 15498 if ASM_OUTPUT{,_ALIGNED}_BSS is defined. 15499 (obscure_complex_init): If bss is supported, always set 15500 DECL_INITIAL to error_mark_node. 15501 15502Thu Feb 1 16:19:56 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 15503 15504 * init.c (is_friend): Make sure there's a context before we see if 15505 it's an aggr type. 15506 15507Thu Feb 1 15:44:53 1996 Mike Stump <mrs@cygnus.com> 15508 15509 * init.c (is_friend): Classes are not friendly with nested classes. 15510 15511Thu Feb 1 15:27:37 1996 Doug Evans <dje@charmed.cygnus.com> 15512 15513 * lex.c (check_newline): Pass last character read to HANDLE_PRAGMA, 15514 and record its result. 15515 15516Thu Feb 1 09:27:01 1996 Mike Stump <mrs@cygnus.com> 15517 15518 * class.c (finish_struct_anon): Switch around code to not move anon 15519 union elements around, nor mess up their contexts, nor offsets, 15520 instead we now build up the right number of COMPONENT_REFs for all 15521 the anon unions that may be present at build_component_ref time. 15522 * typeck.c (lookup_anon_field): New routine to handle field lookup 15523 on fields without names. We find them, based upon their unique type 15524 instead. 15525 * typeck.c (build_component_ref): Allow FIELD_DECL components. 15526 Handle finding components in anonymous unions, and ensure that a 15527 COMPONENT_REF is built for each level as necessary. 15528 15529Tue Jan 30 18:18:23 1996 Mike Stump <mrs@cygnus.com> 15530 15531 * cvt.c (build_up_reference): Make the INDIRECT_BIND case come after 15532 code that ensures that copy ctors are used if appropriate. 15533 15534Tue Jan 30 17:35:14 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 15535 15536 * init.c (build_vec_delete): Only give an error if base isn't an 15537 error_mark_node. 15538 15539Mon Jan 29 17:09:06 1996 Mike Stump <mrs@cygnus.com> 15540 15541 * spew.c (do_aggr): `new struct S;' isn't a forward declaration. 15542 (yylex): If we see `new', keep slurping. 15543 15544Thu Jan 25 18:31:36 1996 Mike Stump <mrs@cygnus.com> 15545 15546 * class.c (finish_struct_1): Move code for handling anon unions... 15547 (finish_struct_anon): to here. Fixup so that we do the offset 15548 calculations right, and so that the fields are physically moved to 15549 the containers's chain. 15550 15551Thu Jan 25 18:27:37 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 15552 15553 * decl.c (grokdeclarator): Avoid trying to get an operand off an 15554 identifier node. 15555 15556Wed Jan 24 11:25:30 1996 Jim Wilson <wilson@chestnut.cygnus.com> 15557 15558 * typeck.c (pointer_int_sum): Use TYPE_PRECISION (sizetype) not 15559 POINTER_SIZE to agree with expr.c. 15560 15561Thu Jan 25 13:01:23 1996 Mike Stump <mrs@cygnus.com> 15562 15563 * search.c (lookup_field): Don't report ambiguities if protect is 0, 15564 instead return NULL_TREE. 15565 15566Wed Jan 24 13:01:26 1996 Mike Stump <mrs@cygnus.com> 15567 15568 * class.c (finish_struct_1): Call warn_hidden if we want warnings 15569 about overloaded virtual functions. 15570 (warn_hidden): New routine to warn of virtual functions that are 15571 hidden by other virtual functions, that are not overridden. 15572 (get_basefndecls): New routine, used by warn_hidden. 15573 (mark_overriders): New routine, used by warn_hidden. 15574 * search.c (get_matching_virtual): Remove old warning that just 15575 isn't very useful. 15576 15577Tue Jan 23 12:26:10 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 15578 15579 * decl.c (output_builtin_tdesc_entries): #if 0 the function definition. 15580 15581 * typeck.c (null_ptr_cst_p): Delete unused fn. 15582 (build_function_call_maybe): Delete unused fn. 15583 15584 * expr.c (extract_init): #if 0 the code after unconditional return 0 15585 for now. 15586 15587 Delete old cadillac code. 15588 * edsel.c: Remove file. 15589 * Make-lang.in (CXX_SRCS): Take edsel.c off the list. 15590 * Makefile.in (CXX_OBJS): Delete edsel.o. 15591 (edsel.o): Delete rule. 15592 * cp-tree.h (flag_cadillac): Delete var decl. 15593 * lang-options.h: Delete "-fcadillac" and "-fno-cadillac". 15594 * decl2.c (flag_cadillac): Delete var definition. 15595 (lang_decode_option): Delete handling of -fcadillac and -fno-cadillac. 15596 (grokfield): Delete code depending on flag_cadillac. 15597 (finish_anon_union): Likewise. 15598 * class.c (finish_struct_1): Likewise. 15599 (pushclass): Likewise. 15600 (popclass): Likewise. 15601 (push_lang_context): Likewise. 15602 (pop_lang_context): Likewise. 15603 * decl.c (init_decl_processing): Likewise. 15604 (start_decl): Likewise. 15605 (cp_finish_decl): Likewise. 15606 (xref_tag): Likewise. 15607 (finish_enum): Likewise. 15608 (start_function): Likewise. 15609 (finish_function): Likewise. 15610 (finish_stmt): Likewise. 15611 * lex.c (lang_init): Likewise. 15612 (check_newline): Likewise. 15613 15614 * lex.c (do_pending_inlines): Delete synthesized method kludge. 15615 15616 Delete defunct, ancient garbage collection implementation. 15617 * rtti.c: New file with the RTTI stuff from gc.c. 15618 * gc.c: Removed file (moved the remaining stuff into rtti.c). 15619 * Makefile.in (CXX_OBJS): Replace gc.o with rtti.o. 15620 (rtti.o): New rule, replacing gc.o. 15621 * Make-lang.in (CXX_SRCS): Replace gc.c with rtti.c. 15622 * cp-tree.h: Delete gc-related fn decls. 15623 (DECL_GC_OFFSET): Delete macro. 15624 (flag_gc): Delete extern decl. 15625 * decl.c (current_function_obstack_index): Delete var decl. 15626 (current_function_obstack_usage): Delete var decl. 15627 (start_function): Delete clearing of current_function_obstack_index 15628 and current_function_obstack_usage. 15629 (init_decl_processing): Delete code relying on -fgc. 15630 Delete call to init_gc_processing. 15631 (cp_finish_decl): Delete calls to build_static_gc_entry and 15632 type_needs_gc_entry. Delete gc code setting DECL_GC_OFFSET. 15633 (store_parm_decls): Delete -fgc calls to cp_expand_decl_cleanup 15634 and to expand_expr of a __gc_main call. 15635 (maybe_gc_cleanup): Delete var decl. 15636 (finish_function): Delete call to expand_gc_prologue_and_epilogue. 15637 * decl2.c (flag_gc): Delete var decl. 15638 (lang_f_options): Delete offering of -fgc. 15639 (lang_decode_option): Delete -fgc and -fno-gc handling. 15640 (get_temp_regvar): Delete gc code. 15641 * init.c (build_new): Delete gc code. 15642 * lex.c (init_lex): Delete checking of flag_gc. 15643 15644 * typeck.c (convert_arguments): Delete gc code. 15645 (build_component_addr): Delete -fgc warning. 15646 (build_modify_expr): Delete gc code. 15647 15648 * decl2.c (build_push_scope): Delete fn. 15649 * cp-tree.h (build_push_scope): Delete decl. 15650 15651 * search.c (clear_search_slots): Delete fn. 15652 * cp-tree.h (clear_search_slots): Delete decl. 15653 15654 * search.c (tree_needs_constructor_p): Delete fn. 15655 * cp-tree.h (tree_needs_constructor_p): Delete decl. 15656 15657 * tree.c (id_cmp): Delete fn. 15658 15659 * tree.c (set_fnaddr_from_vtable_entry): Delete fn. 15660 * cp-tree.h (set_fnaddr_from_vtable_entry): Delete decl. 15661 15662 * tree.c (decl_value_member): Delete fn. 15663 * cp-tree.h (decl_value_member): Delete decl. 15664 15665 * tree.c (list_hash_lookup_or_cons): Delete fn. 15666 * cp-tree.h (list_hash_lookup_or_cons): Delete decl. 15667 15668 * method.c (cplus_exception_name): Delete fn. 15669 (EXCEPTION_NAME_{PREFIX, LENGTH}): Delete macros. 15670 15671 * spew.c (shift_tokens): Delete fn. 15672 15673Mon Jan 22 17:49:33 1996 Jason Merrill <jason@yorick.cygnus.com> 15674 15675 * except.c (init_exception_processing): Pass 1 to needs_pop in calls 15676 to cp_finish_decl. 15677 * parse.y: Likewise. 15678 15679Mon Jan 22 17:34:29 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 15680 15681 * tree.c (build_cplus_staticfn_type): Delete function definition; 15682 never used. 15683 * cp-tree.h (build_cplus_staticfn_type): Delete decl. 15684 15685 * tree.c (virtual_member): Delete function definition; never used. 15686 * cp-tree.h (virtual_member): Delete decl. 15687 15688Fri Jan 19 18:03:14 1996 Mike Stump <mrs@cygnus.com> 15689 15690 * typeck.c (build_component_ref): Handle getting vbase pointers 15691 out of complex multiple inheritance better. 15692 15693Fri Jan 19 16:27:40 1996 Mike Stump <mrs@cygnus.com> 15694 15695 * typeck.c (build_object_ref): Make sure we use the real type, not 15696 any reference type. 15697 15698Fri Jan 19 16:01:47 1996 Mike Stump <mrs@cygnus.com> 15699 15700 * tree.c (build_exception_variant): Don't create new types if we 15701 don't have to, also build new types on the right obstack. 15702 15703Fri Jan 19 14:09:44 1996 Jason Merrill <jason@yorick.cygnus.com> 15704 15705 * decl.c (store_bindings): Split out from push_to_top_level. 15706 (push_to_top_level): Call it for b->type_shadowed on class binding 15707 levels. 15708 15709Fri Jan 19 13:53:14 1996 Mike Stump <mrs@cygnus.com> 15710 15711 * search.c (expand_upcast_fixups): Fix so that offsets stored in 15712 vbase_offsets are always right. Fixes a problem where virtual base 15713 upcasting and downcasting could be wrong during conversions on this 15714 during virtual function dispatch at ctor/dtor time when dynamic 15715 vtable fixups for deltas are needed. This only sounds easier than 15716 it is. :-) 15717 (fixup_virtual_upcast_offsets): Change to reflect new calling 15718 convention for expand_upcast_fixups. 15719 15720Fri Jan 19 12:23:08 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 15721 15722 * decl2.c (grokbitfield): Strip the NOPs from WIDTH before we 15723 check that it's usable as the bitfield width. 15724 15725Wed Jan 17 21:22:40 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 15726 15727 * decl2.c (grokfield): Call cplus_decl_attributes with the attrlist. 15728 Pass a null tree to grokdeclarator for its ATTRLIST arg, since it's 15729 only ever used for functions in it. 15730 15731Wed Jan 17 12:10:38 1996 Jason Merrill <jason@yorick.cygnus.com> 15732 15733 * parse.y (qualified_type_name): Use the TYPE_DECL, not the type. 15734 (nested_type): Likewise. 15735 (nested_name_specifier): Use lastiddecl. 15736 15737 * decl.c (grokdeclarator): Adjust accordingly. 15738 * init.c (expand_member_init): Likewise. 15739 * parse.y (base_class): Likewise. 15740 * typeck2.c (build_functional_cast): Likewise. 15741 15742 * typeck2.c (build_functional_cast): Fill in name after we've 15743 checked for non-aggr type. 15744 15745Wed Jan 17 10:18:01 1996 Mike Stump <mrs@cygnus.com> 15746 15747 * decl2.c (warn_pointer_arith): Default to on. 15748 15749Tue Jan 16 12:45:38 1996 Jason Merrill <jason@yorick.cygnus.com> 15750 15751 * lex.c (is_rid): New function. 15752 * decl.c (grokdeclarator): Diagnose reserved words used as 15753 declarator-ids. 15754 15755Tue Jan 16 11:39:40 1996 Jason Merrill <jason@yorick.cygnus.com> 15756 15757 * tree.c (get_decl_list): Don't lose cv-quals. 15758 15759 * decl.c (grokdeclarator): Fix SCOPE_REF handling and diagnose 15760 typespecs used as declarator-ids. 15761 15762Tue Jan 16 11:09:42 1996 Mike Stump <mrs@cygnus.com> 15763 15764 * decl.c (poplevel): When poping a level, don't give a warning for 15765 any subblocks that already exist. 15766 15767Tue Jan 16 00:25:33 1996 Jason Merrill <jason@yorick.cygnus.com> 15768 15769 * typeck.c (build_object_ref): Finish what I started. 15770 15771 * parse.y (qualified_type_name): Don't check TYPE_BUILT_IN. 15772 15773 * decl2.c (constructor_name_full): Handle TEMPLATE_TYPE_PARMs. 15774 15775 * decl.c (grokdeclarator): Also accept TEMPLATE_TYPE_PARM as a 15776 scope. 15777 15778Mon Jan 15 16:19:32 1996 Jason Merrill <jason@yorick.cygnus.com> 15779 15780 * decl.c (xref_tag): Handle passing a type in directly. 15781 15782 * parse.y (qualified_type_name): Pull out the type. 15783 (nested_type): Likewise. 15784 Take types directly instead of as identifiers. 15785 * call.c (build_scoped_method_call): Take types directly instead of 15786 as identifiers. 15787 * decl.c (xref_basetypes): Likewise. 15788 * init.c (expand_member_init): Likewise. 15789 (build_member_call): Likewise. 15790 (build_offset_ref): Likewise. 15791 * typeck2.c (build_scoped_ref): Likewise, remove bogus code. 15792 * method.c (do_build_assign_ref): Likewise. 15793 * decl.c (grokdeclarator): Handle a type appearing as the 15794 declarator-id for constructors. 15795 * method.c (do_build_copy_constructor): current_base_init_list now 15796 uses the types directly, not their names. 15797 * init.c (sort_base_init): Likewise. 15798 (expand_member_init): Likewise. 15799 * init.c (is_aggr_type): New function, like is_aggr_typedef. 15800 15801Mon Jan 15 08:45:01 1996 Jeffrey A Law <law@cygnus.com> 15802 15803 * tree.c (layout_basetypes): Call build_lang_field_decl instead 15804 of build_lang_decl if first arg is a FIELD_DECL. 15805 15806Thu Jan 11 14:55:07 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 15807 15808 * decl.c (cp_finish_decl): Only clear TREE_USED if DECL_NAME is 15809 non-empty. 15810 * except.c (expand_start_catch_block): Set TREE_USED to avoid 15811 warnings about the catch handler. 15812 15813Mon Jan 8 17:35:12 1996 Jason Merrill <jason@yorick.cygnus.com> 15814 15815 * typeck.c (build_modify_expr): Use a COMPOUND_EXPR instead of 15816 expand_target_expr. 15817 15818Thu Jan 4 12:30:32 1996 Brendan Kehoe <brendan@lisa.cygnus.com> 15819 15820 Fix access control to use trees rather than integers. 15821 * class.c (access_{default, public, protected, private, 15822 default_virtual, public_virtual, private_virtual}_node): Add 15823 definitions. 15824 (init_class_processing): Do creation of those nodes. 15825 * cp-tree.h (access_type): Delete enum decl. 15826 (access_{default, public, protected, private, default_virtual, 15827 public_virtual, private_virtual}_node): Add decls. 15828 (compute_access): Change return type. 15829 * search.c (compute_access): Have tree return type, instead of enum. 15830 (lookup_field): Declare THIS_V and NEW_V to be tree nodes. 15831 * lex.c (real_yylex): Use yylval.ttype for giving the value of the 15832 access_* node for each of RID_{PUBLIC, PRIVATE, PROTECTED}. 15833 * parse.y (VISSPEC): Make ttype rather than itype. 15834 (base_class_access_list): Likewise. 15835 * *.[cy]: Change all refs of `access_public' to `access_public_node', 15836 etc. 15837 * call.c (build_method_call): Make ACCESS be a tree. 15838 * class.c (alter_access, finish_struct_1, filter_struct): Likewise. 15839 * cvt.c (convert_to_aggr): Likewise. 15840 * init.c (build_offset_ref, resolve_offset_ref, build_delete): 15841 Likewise. 15842 * method.c (hack_identifier): Likewise. 15843 * typeck.c (build_component_ref_1, build_component_ref): ): Likewise. 15844 15845Thu Jan 4 11:02:20 1996 Mike Stump <mrs@cygnus.com> 15846 15847 * typeck.c (pointer_int_sum, pointer_diff): Make code agree with C 15848 frontend, and make it more consistent with respect to 15849 warn_pointer_arith. 15850 15851Tue Jan 2 00:13:38 1996 Rusty Russell <rusty@adelaide.maptek.com.au> 15852 15853 * decl.c (pushdecl): Check for duplicate parameter names. 15854 15855Wed Jan 3 09:25:48 1996 Mike Stump <mrs@cygnus.com> 15856 15857 * decl.c (expand_static_init): Call assemble_external for atexit. 15858 15859Wed Jan 3 07:55:19 1996 Mike Stump <mrs@cygnus.com> 15860 15861 * except.c (do_unwind): Remove some generated dead code. 15862 (eh_outer_context): New routine, factor out some common code from 15863 expand_builtin_throw and end_eh_unwinder. Add code to do return 15864 address masking for the PA. 15865 (expand_builtin_throw): Use eh_outer_context instead of open coding 15866 it here. 15867 (end_eh_unwinder): Likewise. 15868 15869Tue Jan 2 17:00:56 1996 Mike Stump <mrs@cygnus.com> 15870 15871 * except.c (expand_throw): Call assemble_external for __empty, if we 15872 use it. 15873 15874Thu Dec 28 11:13:15 1995 Mike Stump <mrs@cygnus.com> 15875 15876 * except.c (expand_builtin_throw): Use RETURN_ADDR_OFFSET instead of 15877 NORMAL_RETURN_ADDR_OFFSET. 15878 (end_eh_unwinder): Likewise. 15879 15880Wed Dec 27 22:18:16 1995 Mike Stump <mrs@cygnus.com> 15881 15882 * gc.c (build_dynamic_cast): Make sure we don't cast away const 15883 when dealing with references, and make sure we handle dynamic 15884 casting to a cv qualified reference. 15885 15886Thu Dec 21 23:50:35 1995 Mike Stump <mrs@cygnus.com> 15887 15888 * except.c (struct eh_context): New structure top hold eh context 15889 information. 15890 (push_eh_context): New routine. 15891 (pop_eh_context): Likewise. 15892 * decl.c (push_cp_function_context): Use them. 15893 (pop_cp_function_context): Likewise. 15894 15895Wed Dec 20 12:42:51 1995 Jason Merrill <jason@yorick.cygnus.com> 15896 15897 * decl2.c (finish_file): Also prune uninteresting functions in the 15898 inline emission loop. 15899 15900Wed Dec 20 02:32:07 1995 Jeffrey A Law <law@cygnus.com> 15901 15902 * sig.c (build_signature_table_constructor): Mark functions 15903 in the signature as referenced. 15904 15905Tue Dec 19 22:36:56 1995 Jason Merrill <jason@yorick.cygnus.com> 15906 15907 * decl2.c (finish_file): Do all the vtable/synthesis stuff before 15908 the inline emission stuff. 15909 15910Mon Dec 18 15:51:33 1995 Jason Merrill <jason@yorick.cygnus.com> 15911 15912 * cp-tree.h, decl2.c (flag_weak): New flag to control the use of 15913 weak symbols. 15914 * lang-options.h: Add -f{no-,}weak. 15915 * decl.c (init_decl_processing): If the target does not support weak 15916 symbols, don't use them. 15917 * decl2.c, pt.c: s/SUPPORTS_WEAK/flag_weak/. 15918 15919Sun Dec 17 21:13:23 1995 Rusty Russell <rusty@adelaide.maptek.com.au> 15920 15921 * init.c (expand_member_init): warning for base init after members. 15922 15923Fri Dec 15 15:32:18 1995 Jason Merrill <jason@yorick.cygnus.com> 15924 15925 * cvt.c (build_expr_type_conversion): Don't convert to a reference 15926 type. 15927 15928Thu Dec 14 16:05:58 1995 Mike Stump <mrs@cygnus.com> 15929 15930 * method.c (report_type_mismatch): Improve wording for volatile 15931 mismatches. 15932 15933Thu Dec 14 14:16:26 1995 Mike Stump <mrs@cygnus.com> 15934 15935 * init.c (expand_aggr_init_1): Use expand_aggr_init_1 instead of 15936 expand_assignment, as the later doesn't handle things that have 15937 copy constructors well. The compiler would do bitwise copying, 15938 instead of ctor calling in some cases. 15939 15940Wed Dec 13 17:05:54 1995 Paul Eggert <eggert@twinsun.com> 15941 15942 * g++.c (my_strerror): Return "cannot access" if errno is 0. 15943 (pfatal_with_name, perror_exec): Don't assume that 15944 the returned value from my_strerror contains no '%'s. 15945 (concat): Remove. 15946 (sys_nerror): Declare only if HAVE_STRERROR is not defined. 15947 15948Wed Dec 13 16:22:38 1995 Jason Merrill <jason@yorick.cygnus.com> 15949 15950 Lose CLASSTYPE_METHODS/DECL_NEXT_METHOD chain; make 15951 TYPE_METHODS/TREE_CHAIN mean what they used to. 15952 * decl2.c (constructor_name_full): Refer to CLASSTYPE_METHOD_VEC 15953 instead of TYPE_METHODS. 15954 * decl.c (duplicate_decls): Lose references to DECL_NEXT_METHOD. 15955 * tree.c (tree_copy_lang_decl_for_deferred_output): Likewise. 15956 * cp-tree.h (CLASSTYPE_METHODS): Lose. 15957 (CLASSTYPE_METHOD_VEC): Point to lang_spec->methods instead of 15958 TYPE_METHODS. 15959 (struct lang_decl): Lose next_method field. 15960 (DECL_NEXT_METHOD): Lose. 15961 * class.c (finish_struct_methods): Don't mess with TYPE_METHODS. 15962 (finish_struct): Just use TYPE_METHODS; we don't need fn_fields 15963 anymore. 15964 (finish_struct_methods): Don't mess with the TREE_CHAINs in 15965 fn_fields. 15966 15967 * search.c (add_conversions): Don't use TREE_CHAIN to traverse method 15968 vector. 15969 15970 * call.c (build_method_call): Synthesize here even when not inlining. 15971 * typeck.c (build_function_call_real): Likewise. 15972 15973Wed Dec 13 15:02:39 1995 Ian Lance Taylor <ian@cygnus.com> 15974 15975 * cp/lex.c (check_newline): If DBX_DEBUGGING_INFO and write_symbols 15976 == DBX_DEBUG, call dbxout_start_new_source_file and 15977 dbxout_resume_previous_source_file when appropriate. 15978 15979Tue Dec 12 20:38:55 1995 Mike Stump <mrs@cygnus.com> 15980 15981 * except.c (start_anon_func): Push to the top level. 15982 (end_anon_func): Pop from the top level. 15983 15984Mon Dec 11 18:56:14 1995 Mike Stump <mrs@cygnus.com> 15985 15986 * cp-tree.h (build_cleanup): New routine to build cleanups. 15987 * decl.c (expand_static_init): Use build_cleanup to build a cleanup 15988 call at ctor time and use atexit to run it later. 15989 * decl2.c (build_cleanup): New routine, taken from finish_file. 15990 (finish_file): Use build_cleanup instead, and don't put function 15991 local statics in global dtor list. 15992 15993Wed Dec 6 14:34:29 1995 Mike Stump <mrs@cygnus.com> 15994 15995 * except.c (expand_throw): Ensure that we have cleanups, if we try 15996 and expand cleanups. 15997 15998Wed Dec 6 11:48:21 1995 Mike Stump <mrs@cygnus.com> 15999 16000 * except.c (expand_throw): Add logic to manage dynamic cleanups for 16001 the EH object. 16002 (expand_end_catch_block): Use the magic of expand_goto, instead of 16003 emit_jump so that we get the cleanup for any catch clause parameter 16004 and the cleanup for the exception object. Update to reflect label 16005 changes. 16006 (push_eh_cleanup): New routine to register a cleanup for an 16007 exception object. 16008 (empty_fndecl): Used to default cleanup actions to 16009 nothing. 16010 (init_exception_processing): Setup empty_fndecl. Setup 16011 saved_cleanup. 16012 (expand_start_catch_block): Update to reflect label changes. Call 16013 push_eh_object to register the cleanup for the EH object. 16014 (start_anon_func): New routine to start building lambda expressions 16015 from trees. 16016 (end_anon_func): New routine to end them. 16017 (struct labelNode): Change so that we can use tree labels, or rtx 16018 labels. 16019 (saved_cleanup): Object to check for dynamic cleanups for the 16020 exception handling object. 16021 (push_label_entry): Change so that we can use tree labels, or rtx 16022 labels. 16023 (pop_label_entry): Likewise. 16024 (top_label_entry): Likewise. 16025 (expand_start_all_catch): Use tree label instead of rtx label, so 16026 that we can get the magic of expand_goto. 16027 (expand_end_all_catch): Update to reflect label changes. 16028 16029 * class.c (build_vfn_ref): Remove building_cleanup logic, as we now 16030 use UNSAVE_EXPRs. 16031 * typeck.c (get_member_function_from_ptrfunc): Remove remnants of 16032 building_cleanup logic, as we now use UNSAVE_EXPRs. 16033 * cp-tree.h (unsave_expr): Declare it. 16034 * decl.c (building_cleanup): Remove. 16035 (maybe_build_cleanup): Remove building_cleanup logic, and use 16036 UNSAVE_EXPR instead. 16037 16038Sun Dec 3 01:34:58 1995 Mike Stump <mrs@cygnus.com> 16039 16040 * gc.c (build_t_desc): Update error message to say <typeinfo>. 16041 16042Thu Nov 30 12:30:05 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 16043 16044 * decl.c (pushdecl): Only warn about shadowing a local variable if 16045 warn_shadow is true. 16046 16047Sun Nov 26 16:06:55 1995 Rusty Russell <rusty@adelaide.maptek.com.au> 16048 16049 * typeck.c (build_binary_op_nodefault): Added warning about 16050 comparisons between different enum types with -Wall, unless 16051 -fenum-int-equiv set. 16052 16053Wed Nov 22 15:44:02 1995 Mike Stump <mrs@cygnus.com> 16054 16055 * class.c (finish_struct_1): Skip down to the inner type in 16056 multidimensional arrays. Ensures ctors will be made for types that 16057 need constructing. 16058 16059Wed Nov 22 14:19:22 1995 Mike Stump <mrs@cygnus.com> 16060 16061 * decl.c (last_dtor_insn): New to track the last compiler generated 16062 insn in a dtor. 16063 (store_parm_decls): Set it. 16064 (finish_function): Use it to see if the dtor is empty. Avoid doing 16065 vtable setup all the time, if we can. 16066 (struct cp_function): Add last_dtor_insn. 16067 (push_cp_function_context): Save it. 16068 (pop_cp_function_context): Restore it. 16069 16070Wed Nov 22 11:52:19 1995 Paul Russell <Rusty.Russell@adelaide.maptek.com.au> 16071 16072 * typeck.c (build_unary_op): Set TREE_NO_UNUSED_WARNING to avoid 16073 warnings. 16074 16075Tue Nov 21 17:15:23 1995 Mike Stump <mrs@cygnus.com> 16076 16077 * typeck.c (expand_target_expr): Make sure targets get put into the 16078 current temp_slot_level, so that the free_temp_slots call will reuse 16079 them. 16080 16081Tue Nov 21 13:32:03 1995 Mike Stump <mrs@cygnus.com> 16082 16083 * class.c (finish_struct_1): Delay delta fixups for virtual bases 16084 until after we have done the hard virtuals, to avoid a bogus `every 16085 virtual function must have a unique final overrider' for virtual 16086 functions that are only overridden by hard virtuals. 16087 16088Thu Nov 9 13:35:30 1995 Jason Merrill <jason@yorick.cygnus.com> 16089 16090 * pt.c (do_function_instantiation): Don't try to find a file-scope 16091 template for a member function. 16092 16093Tue Nov 14 06:20:35 1995 Mike Stump <mrs@cygnus.com> 16094 16095 * g++.c (main): Add handling of -nodefaultlibs. 16096 16097Mon Nov 13 15:45:34 1995 Mike Stump <mrs@cygnus.com> 16098 16099 * cp-tree.h (INDIRECT_BIND): Add a way for the frontend to 16100 distinguish between direct bindings of reference variables, and 16101 indirect bindings of reference variables. 16102 * cvt.c (build_up_reference): Use it. 16103 * typeck.c (convert_arguments): Use it to indicate this is an 16104 indirect binding. 16105 * decl.c (cp_finish_decl): Ensure that we reuse stack slots as fast 16106 as they are unused. 16107 (expand_static_init): Likewise. 16108 (cplus_expand_expr_stmt): Likewise. 16109 * decl2.c (finish_file): Likewise. 16110 * init.c (perform_member_init): Likewise. 16111 (emit_base_init): Likewise. 16112 (expand_aggr_vbase_init_1): Likewise. 16113 16114Fri Nov 10 09:18:09 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 16115 16116 * decl.c (push_namespace): Rewrite to use build_lang_decl, so we 16117 get a DECL_LANG_SPECIFIC node. 16118 * cp-tree.h (lang_decl_flags): Add new member `level'. 16119 (NAMESPACE_LEVEL): Don't use decl.arguments, instead use the 16120 decl_flags level member. 16121 16122Mon Nov 6 18:36:13 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 16123 16124 * call.c (build_method_call): Make sure instance has a 16125 TYPE_LANG_SPECIFIC node before we dive into it. 16126 16127Sat Nov 4 20:01:52 1995 Jason Molenda <crash@phydeaux.cygnus.com> 16128 16129 * method.c (make_thunk): Use TREE_SET_CODE to set thunk's tree code. 16130 16131Thu Nov 2 17:56:57 1995 Mike Stump <mrs@cygnus.com> 16132 16133 * decl.c (duplicate_decls): When smashing decls, smash staticness in 16134 the usual way. 16135 16136Thu Nov 2 16:44:02 1995 Mike Stump <mrs@cygnus.com> 16137 16138 * decl.c (poplevel): Handle the merging of subblocks of cleanups 16139 when finishing blocks that have already been created (usually due to 16140 the fixup goto code). Fixes bad debugging information. 16141 16142Wed Nov 1 12:33:53 1995 Jason Merrill <jason@yorick.cygnus.com> 16143 16144 * method.c (hack_identifier): Don't abort when we get a TREE_LIST 16145 that's not a list of overloaded functions. 16146 16147Wed Nov 1 11:38:58 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 16148 16149 * decl2.c (mark_vtable_entries): Check DECL_LANG_SPECIFIC on fn 16150 before trying to use DECL_ABSTRACT_VIRTUAL_P. 16151 16152Tue Oct 31 11:56:55 1995 Jason Merrill <jason@yorick.cygnus.com> 16153 16154 * decl2.c (mark_used): New function for hooking into setting of 16155 TREE_USED on decls. 16156 * call.c (build_method_call): Use it. 16157 * class.c (instantiate_type): Likewise. 16158 * init.c (build_offset_ref): Likewise. Don't call assemble_external 16159 for all like-named functions. 16160 * method.c (hack_identifier): Likewise. 16161 (emit_thunk): Don't call assemble_external. 16162 (make_thunk): Create thunk as a FUNCTION_DECL so that it 16163 gets the right mode and ENCODE_SECTION_INFO works. 16164 16165 * parse.y: Use mark_used. Pass operator names to do_identifier. 16166 * lex.c (do_identifier): Handle operator names. 16167 16168 * decl2.c (grokclassfn): Tweak __in_chrg attributes. 16169 16170Thu Oct 26 16:45:58 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 16171 16172 * errfn.c: Include stdio.h. 16173 (cp_sprintf): Take out decl of sprintf, and cast sprintf to errorfn*. 16174 16175Wed Oct 25 18:58:41 1995 Mike Stump <mrs@cygnus.com> 16176 16177 * typeck2.c (digest_init): Always convert initializers to the 16178 right type. 16179 16180Wed Oct 25 13:25:24 1995 Mike Stump <mrs@cygnus.com> 16181 16182 * init.c (member_init_ok_or_else): Don't allow member initializers 16183 for indirect members, as it is invalid. 16184 16185Wed Oct 25 11:35:28 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 16186 16187 * decl.c (grokdeclarator): Don't allow `friend signed ()'. 16188 16189Fri Oct 20 10:30:59 1995 Mike Stump <mrs@cygnus.com> 16190 16191 * parse.y (for.init.statement): Catch compound statements inside for 16192 initializations, if we're being pedantic. 16193 16194Fri Oct 20 10:03:42 1995 Mike Stump <mrs@cygnus.com> 16195 16196 * decl.c (lookup_tag): Return NULL_TREE if we don't find what we are 16197 looking for. 16198 16199Thu Oct 19 14:26:10 1995 Mike Stump <mrs@cygnus.com> 16200 16201 * error.c (dump_expr): Don't core dump when a boolean expression is 16202 used as a default argument. 16203 16204Thu Oct 19 10:36:30 1995 Jason Merrill <jason@yorick.cygnus.com> 16205 16206 * class.c (finish_struct_bits): Check aggregate_value_p instead of 16207 RETURN_IN_MEMORY. 16208 16209Wed Oct 18 18:12:32 1995 Jason Merrill <jason@yorick.cygnus.com> 16210 16211 * class.c (finish_struct_bits): Also set TREE_ADDRESSABLE on a 16212 BLKmode type that would otherwise be returned in registers. 16213 16214Mon Oct 16 12:32:19 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 16215 16216 * g++.c (WITHLIBC): New macro. 16217 (main): Declare saw_libc. Use WITHLIBC if `-lc' was used; set 16218 saw_libc and pass it at the end if it was set. 16219 16220Wed Oct 11 16:30:34 1995 Brendan Kehoe <brendan@lisa.cygnus.com> 16221 16222 * parse.y (fn.def1): Call split_specs_attrs in 16223 declmods notype_declarator case. 16224