1169689Skan2001-12-29 Nathan Sidwell <nathan@codesourcery.com> 2169689Skan 3169689Skan * call.c (build_user_type_conversion_1): Use my_friendly_assert 4169689Skan rather than if ... abort. 5169689Skan * cvt.c (convert_to_reference): Likewise. 6169689Skan * semantics.c (setup_vtbl_ptr): Likewise. 7169689Skan * pt.c (lookup_template_class): Comment typo. 8169689Skan 9169689Skan2001-12-29 Nathan Sidwell <nathan@codesourcery.com> 10169689Skan 11169689Skan PR c++/5125 12169689Skan * pt.c (push_template_decl_real): Make sure DECL has 13169689Skan DECL_LANG_SPECIFIC. 14169689Skan 15169689Skan2001-12-29 Nathan Sidwell <nathan@codesourcery.com> 16169689Skan 17169689Skan PR c++/335 18169689Skan * init.c (resolve_offset_ref): Copy cv qualifiers of this pointer 19169689Skan for non-reference fields. 20169689Skan * typeck.c (require_complete_type): Use resolve_offset_ref). 21169689Skan 22169689Skan2001-12-26 Nathan Sidwell <nathan@codesourcery.com> 23169689Skan 24169689Skan PR c++/196 25169689Skan * parse.y (bad_parm): Better diagnostic when given a SCOPE_REF. 26169689Skan 27169689Skan2001-12-24 Nathan Sidwell <nathan@codesourcery.com> 28169689Skan 29169689Skan PR c++/160 30169689Skan * typeck.c (build_modify_expr): Remove old unreachable code & tidy 31169689Skan up. Don't stabilize_references when initializing a reference. 32169689Skan 33169689Skan2001-12-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 34169689Skan 35169689Skan * decl2.c (lang_f_options): Const-ify. 36169689Skan 37169689Skan2001-12-20 Joseph S. Myers <jsm28@cam.ac.uk> 38169689Skan 39169689Skan * config-lang.in (diff_excludes): Remove. 40169689Skan 41169689Skan2001-12-19 Nathan Sidwell <nathan@codesourcery.com> 42169689Skan 43169689Skan PR c++/90 44169689Skan * typeck.c (build_function_call_real): Use original function 45169689Skan expression for errors. 46169689Skan 47169689Skan2001-12-18 Jason Merrill <jason@redhat.com> 48169689Skan 49169689Skan PR c++/3242 50169689Skan * class.c (add_method): Do compare 'this' quals when trying to match a 51169689Skan used function. Don't defer to another used function. 52169689Skan 53169689Skan2001-12-18 Nathan Sidwell <nathan@codesourcery.com> 54169689Skan 55169689Skan * pt.c (instantiate_clone): Remove, fold into ... 56169689Skan (instantiate_template): ... here. Simplify by removing mutual 57169689Skan recursion. 58169689Skan * typeck2.c (build_m_component_ref): Don't cv qualify the function 59169689Skan pointed to by a pointer to function. 60169689Skan * class.c (delete_duplicate_fields_1): Typo. 61169689Skan 62169689Skan2001-12-18 Jason Merrill <jason@redhat.com> 63169689Skan 64169689Skan C++ ABI change: destroy value arguments in caller. 65169689Skan * semantics.c (genrtl_start_function, genrtl_finish_function): Don't 66169689Skan create an extra binding level for the parameters. 67169689Skan * decl.c (store_parm_decls): Don't do parameter cleanups. 68169689Skan 69169689Skan2001-12-18 Nathan Sidwell <nathan@codesourcery.com> 70169689Skan 71169689Skan * call.c (build_new_method_call): Use '%#V'. 72169689Skan * error.c (cv_to_string): Use V parameter to determine padding. 73169689Skan 74169689Skan2001-12-18 Joseph S. Myers <jsm28@cam.ac.uk> 75169689Skan 76169689Skan * call.c, decl2.c, init.c: Use "built-in" and "bit-field" 77169689Skan spellings in messages. 78169689Skan 79169689Skan2001-12-17 Zack Weinberg <zack@codesourcery.com> 80169689Skan 81169689Skan * cp-tree.h: Delete #defines for cp_error, cp_warning, 82169689Skan cp_pedwarn, and cp_compiler_error. 83169689Skan * call.c, class.c, cp-tree.h, cvt.c, decl.c, decl2.c, error.c, 84169689Skan except.c, friend.c, init.c, lex.c, method.c, parse.y, pt.c, 85169689Skan rtti.c, search.c, semantics.c, spew.c, tree.c, typeck.c, 86169689Skan typeck2.c: Change calls to the above macros to use their 87169689Skan language-independent equivalents: error, warning, pedwarn, and 88169689Skan internal_error respectively. 89169689Skan 90169689Skan2001-12-16 Neil Booth <neil@daikokuya.demon.co.uk> 91169689Skan 92169689Skan * decl2.c (finish_file): Remove back_end_hook. 93169689Skan 94169689Skan2001-12-16 Joseph S. Myers <jsm28@cam.ac.uk> 95169689Skan 96169689Skan * ChangeLog.1, ChangeLog.2, ChangeLog, NEWS, call.c, class.c, 97169689Skan cp-tree.h, decl.c, decl2.c, except.c, operators.def, optimize.c, 98169689Skan pt.c, rtti.c, semantics.c, typeck.c: Fix spelling errors. 99169689Skan 100169689Skan2001-12-15 Joseph S. Myers <jsm28@cam.ac.uk> 101169689Skan 102169689Skan * lang-options.h: Use American spelling in messages. 103169689Skan 104169689Skan2001-12-13 Jason Merrill <jason@redhat.com> 105169689Skan 106169689Skan * Make-lang.in (parse.h): Separate rule, just depend on parse.c. 107169689Skan 108169689Skan Use cleanups to run base and member destructors. 109169689Skan * init.c (push_base_cleanups): New function, split out from... 110169689Skan (build_delete): ...here. Lose !TYPE_HAS_DESTRUCTOR code. 111169689Skan * decl.c (finish_destructor_body): Move vbase destruction code to 112169689Skan push_base_cleanups. 113169689Skan (begin_function_body, finish_function_body): New fns. 114169689Skan (finish_function): Move [cd]tor handling and call_poplevel to 115169689Skan finish_function_body. 116169689Skan (pushdecl): Skip the new level. 117169689Skan * semantics.c (genrtl_try_block): Don't call end_protect_partials. 118169689Skan (setup_vtbl_ptr): Call push_base_cleanups. 119169689Skan * method.c (synthesize_method): Call {begin,end}_function_body. 120169689Skan * pt.c (tsubst_expr): Handle COMPOUND_STMT_BODY_BLOCK. 121169689Skan * cp-tree.h: Declare new fns. 122169689Skan * parse.y (function_body, .begin_function_body): New nonterminals. 123169689Skan (fndef, pending_inline, function_try_block): Use function_body. 124169689Skan (ctor_initializer_opt, function_try_block): No longer has a value. 125169689Skan (base_init): Remove .set_base_init token. 126169689Skan (.set_base_init, compstmt_or_error): Remove. 127169689Skan * Make-lang.in (parse.c): Expect two fewer s/r conflicts. 128169689Skan 129169689Skan * optimize.c (maybe_clone_body): Fix parameter updating. 130169689Skan 131169689Skan2001-12-12 Jason Merrill <jason@redhat.com> 132169689Skan 133169689Skan * decl.c (store_parm_decls): Remove parms_have_cleanups cruft. 134169689Skan * semantics.c (genrtl_start_function): Don't pass 135169689Skan parms_have_cleanups or push an extra binding level. 136169689Skan (genrtl_finish_function): Lose cleanup_label cruft. 137169689Skan 138169689Skan * cp-tree.h (struct cp_language_function): Remove x_ctor_label. 139169689Skan (ctor_label): Remove. 140169689Skan * semantics.c (finish_return_stmt): Lose ctor_label support. 141169689Skan * decl.c (finish_constructor_body, mark_lang_function): Likewise. 142169689Skan * typeck.c (check_return_expr): Check DECL_DESTRUCTOR_P, not 143169689Skan dtor_label. 144169689Skan 145169689Skan * call.c (build_new_method_call): Let resolves_to_fixed_type_p 146169689Skan check for [cd]tors. 147169689Skan * class.c (fixed_type_or_null, case INDIRECT_REF): Fix. 148169689Skan 149169689Skan * decl.c (finish_function): Check VMS_TARGET, not VMS. 150169689Skan 151169689Skan * decl.c (start_cleanup_fn): Remove redundant pushlevel. 152169689Skan (end_cleanup_fn): And poplevel. 153169689Skan 154169689Skan * semantics.c (setup_vtbl_ptr): Always build a CTOR_INITIALIZER 155169689Skan if we're in a template. 156169689Skan 157169689Skan2001-12-12 Jakub Jelinek <jakub@redhat.com> 158169689Skan 159169689Skan * cp-tree.h (DESTRUCTOR_DECL_PREFIX, DESTRUCTOR_NAME_P, 160169689Skan ANON_PARMNAME_FORMAT, ANON_PARMNAME_P, DESTRUCTOR_NAME_FORMAT, 161169689Skan THIS_NAME_P): Delete. 162169689Skan * spew.c (read_process_identifier): Remove DESTRUCTOR_NAME_P, 163169689Skan THIS_NAME_P and ANON_PARMNAME_P tests from warning about clash 164169689Skan with internal naming scheme. 165169689Skan * error.c (dump_decl): Remove DESTRUCTOR_NAME_P use. 166169689Skan 167169689Skan2001-12-12 Nathan Sidwell <nathan@codesourcery.com> 168169689Skan 169169689Skan * decl.c (grokdeclarator): Deprecated implicit typename use. 170169689Skan 171169689Skan2001-12-11 Nathan Sidwell <nathan@codesourcery.com> 172169689Skan 173169689Skan PR g++/51 174169689Skan * parse.y (frob_specs): Indicate it is a language linkage which 175169689Skan contained the extern. 176169689Skan * decl.c (grokdeclarator): Allow extern language linkage with 177169689Skan other specifiers. 178169689Skan 179169689Skan2001-12-10 Nathan Sidwell <nathan@codesourcery.com> 180169689Skan 181169689Skan PR g++/72 182169689Skan * decl.c (add_binding): Don't reject duplicate typedefs involving 183169689Skan template parameters. 184169689Skan 185169689Skan2001-12-10 Neil Booth <neil@daikokuya.demon.co.uk> 186169689Skan 187169689Skan * parse.y, semantics.c: Similarly. 188169689Skan 189169689Skan2001-12-09 Nathan Sidwell <nathan@codesourcery.com> 190169689Skan 191169689Skan PR g++/87 192169689Skan * cp-tree.h (DECL_COPY_CONSTRUCTOR_P): Use copy_fn_p. 193169689Skan (copy_args_p): Rename to ... 194169689Skan (copy_fn_p): ... here. 195169689Skan (grok_special_member_properties): New function. 196169689Skan (grok_op_properties): Lose VIRTUALP parameter. 197169689Skan (copy_assignment_arg_p): Remove. 198169689Skan * call.c (build_over_call): Use copy_fn_p. 199169689Skan * decl.c (grokfndecl): Reformat. Adjust call to 200169689Skan grok_op_properties. 201169689Skan (copy_args_p): Rename to ... 202169689Skan (copy_fn_p): ... here. Reject template functions. Check for pass 203169689Skan by value. 204169689Skan (grok_special_member_properties): Remember special functions. 205169689Skan (grok_ctor_properties): Don't remember them here, just check. 206169689Skan (grok_op_properties): Likewise. 207169689Skan (start_method): Call grok_special_member_properties. 208169689Skan * decl2.c (grokfield): Likewise. 209169689Skan (copy_assignment_arg_p): Remove. 210169689Skan (grok_function_init): Don't remember abstract assignment here. 211169689Skan * pt.c (instantiate_class_template): Call 212169689Skan grok_special_member_properties. 213169689Skan (tsubst_decl): Adjust grok_op_properties call. 214169689Skan 215169689Skan2001-12-08 Aldy Hernandez <aldyh@redhat.com> 216169689Skan 217169689Skan * lex.c (rid_to_yy): Add RID_CHOOSE_EXPR and 218169689Skan RID_TYPES_COMPATIBLE_P. 219169689Skan 220169689Skan2001-12-08 John David Anglin <dave@hiauly1.hia.nrc.ca> 221169689Skan 222169689Skan * semantics.c (simplify_aggr_init_exprs_r): Add DIRECT_BIND flag in 223169689Skan call to build_aggr_init. 224169689Skan * cp-tree.h (DIRECT_BIND): Document new use of DIRECT_BIND. 225169689Skan 226169689Skan2001-12-08 Neil Booth <neil@daikokuya.demon.co.uk> 227169689Skan 228169689Skan * parse.y: Replace uses of the string non-terminal with STRING. 229169689Skan Don't perform string concatentaion here. 230169689Skan (string): Remove non-terminal. 231169689Skan * semantics.c (finish_asm_stmt): Don't concatenate strings here. 232169689Skan 233169689Skan2001-12-05 Jason Merrill <jason@redhat.com> 234169689Skan 235169689Skan * cp-lang.c (LANG_HOOKS_TREE_INLINING_START_INLINING): Define. 236169689Skan (LANG_HOOKS_TREE_INLINING_END_INLINING): Define. 237169689Skan * tree.c (cp_start_inlining, cp_end_inlining): New fns. 238169689Skan * pt.c (push_tinst_level): No longer static. 239169689Skan * cp-tree.h: Declare them. 240169689Skan 241169689Skan * init.c (resolve_offset_ref): Don't check access for the base 242169689Skan conversion to access a FIELD_DECL. 243169689Skan 244169689Skan * cp-tree.h (TYPE_REFFN_P): New macro. 245169689Skan * decl.c (bad_specifiers): Check it, too. 246169689Skan 247169689Skan * rtti.c (create_pseudo_type_info): Set CLASSTYPE_INTERFACE_ONLY 248169689Skan on the __*_type_info type if we haven't seen a definition. 249169689Skan 250169689Skan2001-12-05 Neil Booth <neil@daikokuya.demon.co.uk> 251169689Skan 252169689Skan * decl.c: Include c-common.h. 253169689Skan (shadow_warning): Move to c-common.c. 254169689Skan 255169689Skan2001-12-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 256169689Skan 257169689Skan * decl.c (duplicate_decls): Don't copy DECL_NO_CHECK_MEMORY_USAGE. 258169689Skan 259169689Skan2001-12-04 Nathan Sidwell <nathan@codesourcery.com> 260169689Skan 261169689Skan * pt.c (end_template_parm_list): Clear TREE_CHAIN of each parm. 262169689Skan 263169689Skan2001-12-04 Nathan Sidwell <nathan@codesourcery.com> 264169689Skan 265169689Skan PR g++/164 266169689Skan * init.c (sort_base_init): Allow binfos to be directly specified. 267169689Skan * method.c (do_build_copy_constructor): Explicitly convert to the 268169689Skan base instance. 269169689Skan (do_build_assign_ref): Likewise. 270169689Skan 271169689Skan2001-12-03 Hans-Peter Nilsson <hp@bitrange.com> 272169689Skan 273169689Skan * decl.c (xref_basetypes): Don't use C99 construct in tag_code 274169689Skan declaration and initialization. 275169689Skan 276169689Skan2001-12-03 Neil Booth <neil@daikokuya.demon.co.uk> 277169689Skan 278169689Skan * typeck2.c: Remove leading capital from diagnostic messages, as 279169689Skan per GNU coding standards. 280169689Skan 281169689Skan2001-12-03 Mumit Khan <khan@nanotech.wisc.edu> 282169689Skan 283169689Skan PR c++/3394 284169689Skan * decl.c (xref_basetypes): Handle attributes between 285169689Skan 'class' and name. 286169689Skan 287169689Skan2001-12-03 Nathan Sidwell <nathan@codesourcery.com> 288169689Skan 289169689Skan PR g++/3381 290169689Skan * parse.y (named_complex_class_head_sans_basetype): Add new 291169689Skan reduction. 292169689Skan * Make-lang.in (parse.c): Adjust expected conflict count. 293169689Skan 294169689Skan2001-12-03 Jason Merrill <jason@redhat.com> 295169689Skan 296169689Skan * class.c (finish_vtbls): Fill in BINFO_VPTR_FIELD in the 297169689Skan immediate binfos for our virtual bases. 298169689Skan 299169689Skan2001-12-02 Neil Booth <neil@daikokuya.demon.co.uk> 300169689Skan 301169689Skan * call.c (build_java_interface_fn_ref): Similarly. 302169689Skan * except.c (is_admissible_throw_operand): Similarly. 303169689Skan * init.c (build_java_class_ref): Similarly. 304169689Skan * xref.c (open_xref_file): Similarly. 305169689Skan 306169689Skan2001-12-01 Neil Booth <neil@daikokuya.demon.co.uk> 307169689Skan 308169689Skan * class.c (finish_struct): Remove trailing periods from messages. 309169689Skan * decl.c (check_tag_decl): Similarly. 310169689Skan * lex.c (cxx_set_yydebug): Similarly. 311169689Skan * typeck2.c (friendly_abort): Similarly. 312169689Skan 313169689Skan2001-11-29 Mark Mitchell <mark@codesourcery.com> 314169689Skan 315169689Skan PR c++/3048 316169689Skan * cp-tree.h (ovl_member): Remove. 317169689Skan * decl2.c (merge_functions): Handle extern "C" functions 318169689Skan specially. 319169689Skan * tree.c (ovl_member): Remove. 320169689Skan 321169689Skan2001-11-29 Mark Mitchell <mark@codesourcery.com> 322169689Skan 323169689Skan PR c++/4842 324169689Skan * class.c (get_basefndecls): Take an IDENTIFIER_NODE, not a 325169689Skan FUNCTION_DECL, as input. 326169689Skan (mark_overriders): Remove. 327169689Skan (warn_hidden): Rework for the new ABI. 328169689Skan 329169689Skan2001-11-29 Mark Mitchell <mark@codesourcery.com> 330169689Skan 331169689Skan PR c++/3471 332169689Skan * call.c (convert_like_real): Do not build additional temporaries 333169689Skan for rvalues of class type. 334169689Skan 335169689Skan2001-11-28 Nathan Sidwell <nathan@codesourcery.com> 336169689Skan 337169689Skan * cp-tree.h (UNIQUELY_DERIVED_FROM_P): Use lookup base. 338169689Skan (ACCESSIBLY_UNIQUELY_DERIVED_FROM_P): Likewise. 339169689Skan (PUBLICLY_UNIQUELY_DERIVED_FROM_P: Likewise. 340169689Skan (DERIVED_FROM_P): Likewise. 341169689Skan (enum base_access): Renumber, add ba_quiet bit mask. 342169689Skan (get_binfo): Remove. 343169689Skan (get_base_distance): Remove. 344169689Skan (binfo_value): Remove. 345169689Skan (ACCESSIBLY_DERIVED_FROM_P): Remove. 346169689Skan * call.c (standard_conversion): Use lookup_base. 347169689Skan * class.c (strictly_overrides): Likewise. 348169689Skan (layout_virtual_bases): Likewise. 349169689Skan (warn_about_ambiguous_direct_bases): Likewise. 350169689Skan (is_base_of_enclosing_class): Likewise. 351169689Skan (add_vcall_offset_vtbl_entries_1): Likewise. 352169689Skan * cvt.c (build_up_reference): Adjust comment. 353169689Skan * init.c (build_member_call): Reformat. 354169689Skan * search.c (get_binfo): Remove. 355169689Skan (get_base_distance_recursive): Remove. 356169689Skan (get_base_distance): Remove. 357169689Skan (lookup_base_r): Tweak. 358169689Skan (lookup_base): Add ba_quiet control. Complete the types here. 359169689Skan (covariant_return_p): Use lookup_base. 360169689Skan * tree.c (binfo_value): Remove. 361169689Skan (maybe_dummy_object): Use lookup_base. 362169689Skan * typeck.c (build_static_cast): Use lookup_base. 363169689Skan (get_delta_difference): Likewise. 364169689Skan * typeck2.c (binfo_or_else): Use lookup_base. 365169689Skan (build_scoped_ref): Add back error_mark_check. 366169689Skan (build_m_component_ref): Use lookup_base. 367169689Skan 368169689Skan2001-11-29 Joseph S. Myers <jsm28@cam.ac.uk> 369169689Skan 370169689Skan * Make-lang.in (c++.generated-manpages): New dummy target. 371169689Skan 372169689Skan2001-11-27 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 373169689Skan 374169689Skan * Make-lang.in (cp-lang.o): Depends on c-common.h. 375169689Skan * cp-lang.c (c-common.h): Include. 376169689Skan (LANG_HOOKS_EXPAND_CONSTANT, LANG_HOOKS_SAFE_FROM_P): New hooks. 377169689Skan * decl.c (cxx_init_decl_processing): Don't set lang_safe_from_p. 378169689Skan * expr.c (init_cplus_expand): Don't set lang_expand_constant. 379169689Skan 380169689Skan2001-11-26 Neil Booth <neil@daikokuya.demon.co.uk> 381169689Skan 382169689Skan * decl2.c (c_language): Move to c-common.c. 383169689Skan * lex.c (cxx_post_options, cxx_init_options): Use c-common.c 384169689Skan functions. 385169689Skan (cxx_init): Update. 386169689Skan 387169689Skan2001-11-26 Jason Merrill <jason@redhat.com> 388169689Skan 389169689Skan * call.c (joust): Remove COND_EXPR hack. 390169689Skan 391169689Skan2001-11-25 Aldy Hernandez <aldyh@redhat.com> 392169689Skan 393169689Skan * search.c (lookup_base_r): Declare bk in variable declaration 394169689Skan space. 395169689Skan 396169689Skan2001-11-25 Nathan Sidwell <nathan@codesourcery.com> 397169689Skan 398169689Skan PR g++/3145 399169689Skan * class.c (build_vbase_pointer): Remove. 400169689Skan (build_vbase_path): Remove. 401169689Skan (build_base_path): New function. 402169689Skan * cp-tree.h (base_access, base_kind): New enumerations. 403169689Skan (build_base_path): Declare. 404169689Skan (convert_pointer_to_real): Remove. 405169689Skan (convert_pointer_to): Remove. 406169689Skan (lookup_base): Declare. 407169689Skan (convert_pointer_to_vbase): Remove. 408169689Skan * call.c (build_scoped_method_call): Use lookup_base & 409169689Skan build_base_path instead of convert_pointer_to_real, 410169689Skan get_base_distance & get_binfo. 411169689Skan (build_over_call): Likewise. 412169689Skan * cvt.c (cp_convert_to_pointer): Likewise. 413169689Skan (convert_to_pointer_force): Likewise. 414169689Skan (build_up_reference): Likewise. 415169689Skan (convert_pointer_to_real): Remove. 416169689Skan (convert_pointer_to): Remove. 417169689Skan * init.c (dfs_initialize_vtbl_ptrs): Use build_base_path 418169689Skan instead of convert_pointer_to_vbase & build_vbase_path. 419169689Skan (emit_base_init): Use build_base_path instead of 420169689Skan convert_pointer_to_real. 421169689Skan (expand_virtual_init): Lose unrequired conversions. 422169689Skan (resolve_offset_ref): Use lookup_base and build_base_path 423169689Skan instead of convert_pointer_to. 424169689Skan * rtti.c (build_dynamic_cast_1): Use lookup_base & 425169689Skan build_base_path instead of get_base_distance & build_vbase_path. 426169689Skan * search.c (get_vbase_1): Remove. 427169689Skan (get_vbase): Remove. 428169689Skan (convert_pointer_to_vbase): Remove. 429169689Skan (lookup_base_r): New function. 430169689Skan (lookup_base): New function. 431169689Skan * typeck.c (require_complete_type): Use lookup_base & 432169689Skan build_base_path instead of convert_pointer_to. 433169689Skan (build_component_ref): Likewise. 434169689Skan (build_x_function_call): Likewise. 435169689Skan (get_member_function_from_ptrfunc): Likewise. 436169689Skan (build_component_addr): Likewise. 437169689Skan * typeck2.c (build_scoped_ref): Likewise. 438169689Skan 439169689Skan2001-11-22 Bryce McKinlay <bryce@waitaki.otago.ac.nz> 440169689Skan 441169689Skan * cp-tree.h (CP_TYPE_QUALS): Removed. 442169689Skan * decl.c (cxx_init_decl_processing): Don't set lang_dump_tree. 443169689Skan * cp-lang.c: Set LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN and 444169689Skan LANG_HOOKS_TREE_DUMP_TYPE_QUALS_FN. 445169689Skan * dump.c (cp_dump_tree): Use void* dump_info argument to match 446169689Skan lang-hooks prototype. 447169689Skan * call.c, cp-tree.h, cvt.c, decl.c, init.c, mangle.c, method.c, pt.c, 448169689Skan rtti.c, semantics.c, tree.c, typeck.c, typeck2.c: All references to 449169689Skan CP_TYPE_QUALS changed to cp_type_quals. 450169689Skan * Make-lang.in: References to c-dump.h changed to tree-dump.h. 451169689Skan (CXX_C_OBJS): Remove c-dump.o. 452169689Skan 453169689Skan2001-11-21 Mark Mitchell <mark@codesourcery.com> 454169689Skan 455169689Skan PR c++/3637 456169689Skan * pt.c (lookup_template_class): Ensure that all specializations 457169689Skan are registered on the list corresponding to the most general 458169689Skan template. 459169689Skan 460169689Skan2001-11-20 Mark Mitchell <mark@codesourcery.com> 461169689Skan 462169689Skan * call.c (non_reference): Add documentation. 463169689Skan (convert_class_to_reference): Do not strip reference types 464169689Skan from conversion operators. 465169689Skan (maybe_handle_ref_bind): Simplify. 466169689Skan (compare_ics): Correct handling of references. 467169689Skan 468169689Skan2001-11-19 John Wilkinson <johnw@research.att.com> 469169689Skan 470169689Skan * dump.c (dump_op): New function. 471169689Skan (cp_dump_tree): Dump CLASSTYPE_TEMPLATE_SPECIALIZATION. Use 472169689Skan dump_op. Dump DECL_MUTABLE, access and staticness for VAR_DECLs. 473169689Skan DECL_PURE_VIRTUAL_P, DECL_VIRTUAL_P, 474169689Skan 475169689Skan2001-11-19 Mark Mitchell <mark@codesourcery.com> 476169689Skan 477169689Skan PR4629 478169689Skan * semantics.c (finish_sizeof): Make sure that expression created 479169689Skan while processing a template do not have a type. 480169689Skan (finish_alignof): Likewise. 481169689Skan * typeck.c (c_sizeof): Likewise. 482169689Skan (expr_sizeof): Likewise. 483169689Skan 484169689Skan2001-11-18 Neil Booth <neil@daikokuya.demon.co.uk> 485169689Skan 486169689Skan * lex.c (cxx_finish): Call c_common_finish. 487169689Skan (finish_parse): Remove. 488169689Skan 489169689Skan2001-11-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 490169689Skan 491169689Skan * decl.c (create_array_type_for_decl): Check if NAME is NULL_TREE 492169689Skan when displaying error message about missing array bounds. 493169689Skan 494169689Skan2001-11-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 495169689Skan 496169689Skan * mangle.c (write_expression): Handle CAST_EXPR, STATIC_CAST_EXPR, 497169689Skan CONST_CAST_EXPR. 498169689Skan * operators.def: Add CAST_EXPR, STATIC_CAST_EXPR, CONST_CAST_EXPR. 499169689Skan 500169689Skan2001-11-16 Neil Booth <neil@daikokuya.demon.co.uk> 501169689Skan 502169689Skan * cp-tree.h (print_class_statistics): Restore. 503169689Skan 504169689Skan2001-11-15 Jason Merrill <jason@redhat.com> 505169689Skan 506169689Skan * method.c (use_thunk): Don't emit debugging information for thunks. 507169689Skan 508169689Skan * parse.y: Add ... IDENTIFIER SCOPE and ... PTYPENAME SCOPE expansions. 509169689Skan * decl.c (make_typename_type): Handle getting a class template. 510169689Skan * search.c (lookup_field_r): A class template is good enough for 511169689Skan want_type. 512169689Skan 513169689Skan * call.c (convert_like_real): Only use cp_convert for the bad part. 514169689Skan (standard_conversion): Also allow bad int->enum. 515169689Skan * typeck.c (ptr_reasonably_similar): Also allow functions to 516169689Skan interconvert. Pointers to same-size integers are reasonably 517169689Skan similar. 518169689Skan 519169689Skan * cvt.c (convert_to_void): If we build a new COND_EXPR, always 520169689Skan give it void type. 521169689Skan 522169689Skan2001-11-15 Nathan Sidwell <nathan@codesourcery.com> 523169689Skan 524169689Skan PR g++/3154 525169689Skan * init.c (sort_base_init): Remove unreachable code. 526169689Skan (expand_member_init): Adjust comment to reflect reality. Simplify 527169689Skan and remove unreachable code. 528169689Skan 529169689Skan2001-11-15 Neil Booth <neil@daikokuya.demon.co.uk> 530169689Skan 531169689Skan * cp-tree.h (init_reswords, cxx_init_decl_processing): New. 532169689Skan (cxx_init): Update prototype. 533169689Skan * decl.c (init_decl_processing): Rename. Move null node init 534169689Skan to its creation time. 535169689Skan * lex.c (cxx_init_options): Update. 536169689Skan (cxx_init): Combine with old init_parse; also call 537169689Skan cxx_init_decl_processing. 538169689Skan 539169689Skan2001-11-14 Richard Sandiford <rsandifo@redhat.com> 540169689Skan 541169689Skan * decl.c (check_initializer): Try to complete the type of an 542169689Skan array element before checking whether it's complete. Don't 543169689Skan complain about arrays with complete element types but an 544169689Skan unknown size. 545169689Skan (cp_finish_decl): Build the hierarchical constructor before 546169689Skan calling maybe_deduce_size_from_array_init. 547169689Skan 548169689Skan2001-11-14 Joseph S. Myers <jsm28@cam.ac.uk> 549169689Skan 550169689Skan * Make-lang.in: Change all uses of $(manext) to $(man1ext). 551169689Skan 552169689Skan2001-11-13 Nathan Sidwell <nathan@codesourcery.com> 553169689Skan 554169689Skan PR g++/4206 555169689Skan * parse.y (already_scoped_stmt): Remove. 556169689Skan (simple_stmt, WHILE & FOR): Use implicitly_scoped_stmt. 557169689Skan 558169689Skan2001-11-12 H.J. Lu <hjl@gnu.org> 559169689Skan 560169689Skan * cvt.c (ocp_convert): Don't warn the address of a weak 561169689Skan function is always `true'. 562169689Skan 563169689Skan2001-11-09 Neil Booth <neil@daikokuya.demon.co.uk> 564169689Skan 565169689Skan * cp-lang.c (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE, 566169689Skan LANG_HOOKS_PRINT_STATISTICS, LANG_HOOKS_PRINT_XNODE, 567169689Skan LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_SET_YYDEBUG): Override. 568169689Skan * cp-tree.h (print_class_statistics): Remove. 569169689Skan (cxx_print_statistics, cxx_print_xnode, cxx_print_decl, cxx_print_type, 570169689Skan cxx_print_identifier, cxx_set_yydebug): New. 571169689Skan * lex.c (set_yydebug): Rename c_set_yydebug. 572169689Skan * ptree.c (print_lang_decl, print_lang_type, print_lang_identifier, 573169689Skan lang_print_xnode): Rename. 574169689Skan * tree.c (print_lang_statistics): Rename. 575169689Skan 576169689Skan2001-11-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 577169689Skan 578169689Skan * class.c (dump_array): Fix format specifier warning. 579169689Skan 580169689Skan2001-11-09 Neil Booth <neil@daikokuya.demon.co.uk> 581169689Skan 582169689Skan * cp-lang.c (LANG_HOOKS_NAME): Override. 583169689Skan (struct lang_hooks): Constify. 584169689Skan * lex.c (cxx_init_options): Update. 585169689Skan (lang_identify): Remove. 586169689Skan * parse.y (language_string): Remove. 587169689Skan 588169689Skan2001-11-08 Andreas Franck <afranck@gmx.de> 589169689Skan 590169689Skan * Make-lang.in (CXX_INSTALL_NAME, GXX_CROSS_NAME, 591169689Skan DEMANGLER_CROSS_NAME): Handle program_transform_name the way 592169689Skan suggested by autoconf. 593169689Skan (GXX_TARGET_INSTALL_NAME, CXX_TARGET_INSTALL_NAME): Define. 594169689Skan (c++.install-common): Use the transformed target alias names. 595169689Skan 596169689Skan2001-11-06 Neil Booth <neil@cat.daikokuya.demon.co.uk> 597169689Skan 598169689Skan * Make-lang.in: Update. 599169689Skan * cp-lang.c: Include langhooks-def.h. 600169689Skan 601169689Skan2001-11-04 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 602169689Skan 603169689Skan * pt.c (tsubst_copy): Call tsubst for TYPEOF_EXPR. 604169689Skan 605169689Skan2001-11-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 606169689Skan 607169689Skan * lex.c (copy_lang_type): Add static prototype. 608169689Skan 609169689Skan2001-11-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 610169689Skan 611169689Skan * pt.c (unify): Handle SCOPE_REF. 612169689Skan 613169689Skan2001-11-01 Jakub Jelinek <jakub@redhat.com> 614169689Skan 615169689Skan * tree.c (cp_copy_res_decl_for_inlining): Adjust 616169689Skan DECL_ABSTRACT_ORIGIN for the return variable. 617169689Skan 618169689Skan2001-10-31 Zack Weinberg <zack@codesourcery.com> 619169689Skan 620169689Skan * Make-lang.in: Replace $(INTL_TARGETS) with po-generated. 621169689Skan 622169689Skan2001-10-28 Joseph S. Myers <jsm28@cam.ac.uk> 623169689Skan 624169689Skan * ChangeLog.1, ChangeLog.2, ChangeLog, class.c, decl2.c, search.c, 625169689Skan semantics.c, spew.c: Fix spelling errors. 626169689Skan 627169689Skan2001-10-27 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 628169689Skan 629169689Skan * decl2.c (validate_nonmember_using_decl): Handle NAMESPACE_DECL. 630169689Skan 631169689Skan2001-10-25 Zack Weinberg <zack@codesourcery.com> 632169689Skan 633169689Skan * cp-lang.c: Redefine LANG_HOOKS_CLEAR_BINDING_STACK to 634169689Skan pop_everything. 635169689Skan 636169689Skan2001-10-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 637169689Skan 638169689Skan * cp-lang.c (cxx_get_alias_set): New function. 639169689Skan Point LANG_HOOKS_GET_ALIAS_SET to it. 640169689Skan 641169689Skan2001-10-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 642169689Skan 643169689Skan * cp-tree.def (UNBOUND_CLASS_TEMPLATE): New tree node. 644169689Skan * cp-tree.h (make_unbound_class_template): Prototype new function. 645169689Skan * decl.c (make_unbound_class_template): New function. 646169689Skan * decl2.c (arg_assoc_template_arg): Handle UNBOUND_CLASS_TEMPLATE. 647169689Skan * error.c (dump_type): Likewise. 648169689Skan * mangle.c (write_type): Likewise. 649169689Skan * parse.y (template_parm): Likewise. 650169689Skan (template_argument): Use make_unbound_class_template. 651169689Skan * pt.c (convert_template_argument): Handle UNBOUND_CLASS_TEMPLATE. 652169689Skan (tsubst): Likewise. 653169689Skan (tsubst_copy): Likewise. 654169689Skan (unify): Likewise. 655169689Skan * tree.c (walk_tree): Likewise. 656169689Skan * typeck.c (comptypes): Likewise. 657169689Skan 658169689Skan2001-10-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 659169689Skan 660169689Skan * xref.c (GNU_xref_member): Use safe-ctype macros and/or fold 661169689Skan extra calls into fewer ones. 662169689Skan 663169689Skan2001-10-18 Alexandre Oliva <aoliva@redhat.com> 664169689Skan 665169689Skan * decl.c (duplicate_decls): Propagate DECL_UNINLINABLE. 666169689Skan Warn when merging inline with attribute noinline. 667169689Skan (start_decl, start_function): Warn if inline and attribute 668169689Skan noinline appear in the same declaration. 669169689Skan 670169689Skan2001-10-16 H.J. Lu <hjl@gnu.org> 671169689Skan 672169689Skan * cp-tree.h (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): Defined 673169689Skan for tree checking disabled. 674169689Skan 675169689Skan2001-10-16 Hans-Peter Nilsson <hp@axis.com> 676169689Skan 677169689Skan * cp-tree.h (VFIELD_NAME_FORMAT) [NO_DOLLAR_IN_LABEL && 678169689Skan NO_DOT_IN_LABEL]: Adjust to match VFIELD_NAME. 679169689Skan 680169689Skan2001-10-15 Richard Sandiford <rsandifo@redhat.com> 681169689Skan 682169689Skan * pt.c (UNIFY_ALLOW_MAX_CORRECTION): Define. 683169689Skan (unify): Only handle MINUS_EXPR specially if the above flag is set 684169689Skan and the subtracted constant is 1. Clear the flag on recursive calls. 685169689Skan Set it when unifying the maximum value in an INTEGER_TYPE's range. 686169689Skan 687169689Skan2001-10-15 Richard Sandiford <rsandifo@redhat.com> 688169689Skan 689169689Skan * decl.c (bad_specifiers): Don't allow exception specifications 690169689Skan on any typedefs. 691169689Skan 692169689Skan2001-10-14 Neil Booth <neil@daikokuya.demon.co.uk> 693169689Skan 694169689Skan * cp/lex.c (init_cp_pragma): Similarly. 695169689Skan 696169689Skan2001-10-13 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 697169689Skan 698169689Skan * pt.c (lookup_template_class): Build complete template arguments 699169689Skan for BOUND_TEMPLATE_TEMPLATE_PARM. 700169689Skan 701169689Skan2001-10-12 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 702169689Skan 703169689Skan * cp-tree.h (TYPE_BINFO): Update comment. 704169689Skan (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): New macro. 705169689Skan (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Use template_info. 706169689Skan (TYPENAME_TYPE_FULLNAME): Use TYPE_FIELDS. 707169689Skan (copy_type): Prototype new function. 708169689Skan * lex.c (copy_lang_decl): Gather tree node statistics. 709169689Skan (copy_lang_type): New function. 710169689Skan (copy_type): Likewise. 711169689Skan (cp_make_lang_type): Create lang_type for 712169689Skan BOUND_TEMPLATE_TEMPLATE_PARM. Set TYPE_BINFO for TYPENAME_TYPE 713169689Skan and BOUND_TEMPLATE_TEMPLATE_PARM. 714169689Skan * pt.c (tsubst): Use copy_type instead of copy_node. 715169689Skan * search.c (lookup_field_1): Ignore TYPENAME_TYPE. 716169689Skan 717169689Skan2001-10-12 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 718169689Skan 719169689Skan * pt.c (determine_specialization): Ignore functions without 720169689Skan DECL_TEMPLATE_INFO. 721169689Skan 722169689Skan2001-10-12 Nathan Sidwell <nathan@codesourcery.com> 723169689Skan 724169689Skan PR g++/4476 725169689Skan * typeck2.c (abstract_virtuals_error): Ignore incomplete classes. 726169689Skan 727169689Skan2001-10-11 Jason Merrill <jason_merrill@redhat.com> 728169689Skan 729169689Skan * typeck2.c (store_init_value): Don't re-digest a bracketed 730169689Skan initializer. 731169689Skan 732169689Skan * class.c (finish_struct_anon): Use TYPE_ANONYMOUS_P instead of 733169689Skan ANON_AGGR_TYPE_P. 734169689Skan 735169689Skan2001-10-11 Richard Henderson <rth@redhat.com> 736169689Skan 737169689Skan * class.c (build_vtable_entry_ref): Create a VTABLE_REF instead 738169689Skan of an asm statement. 739169689Skan (build_vtbl_ref_1): Split out from build_vtbl_ref. 740169689Skan (build_vfn_ref): Use it to handle vtable descriptors before 741169689Skan calling build_vtable_entry_ref. 742169689Skan * decl2.c (output_vtable_inherit): Use assemble_vtable_inherit. 743169689Skan 744169689Skan2001-10-10 Richard Henderson <rth@redhat.com> 745169689Skan 746169689Skan * parse.y (asm_operand): Allow named operands. 747169689Skan * semantics.c (finish_asm_stmt): Tweek for changed location 748169689Skan of the operand constraint. 749169689Skan 750169689Skan2001-10-09 Jason Merrill <jason_merrill@redhat.com> 751169689Skan 752169689Skan * call.c (standard_conversion): Add bad conversion between 753169689Skan integers and pointers. 754169689Skan (convert_like_real): Don't use convert_for_initialization for bad 755169689Skan conversions; complain here and use cp_convert. 756169689Skan (build_over_call): Don't handle bad conversions specially. 757169689Skan (perform_implicit_conversion): Allow bad conversions. 758169689Skan (can_convert_arg_bad): New fn. 759169689Skan * cp-tree.h: Declare it. 760169689Skan * typeck.c (convert_for_assignment): Use it. 761169689Skan (ptr_reasonably_similar): Any target type is similar to void. 762169689Skan 763169689Skan2001-10-08 Alexandre Oliva <aoliva@redhat.com> 764169689Skan 765169689Skan * Make-lang.in (CXX_OBJS): Added cp-lang.o. 766169689Skan (cp/cp-lang.o): New rule. 767169689Skan * cp-tree.h: Declare hooks. 768169689Skan * tree.c: Make hooks non-static. 769169689Skan (init_tree): Don't initialize hooks here. 770169689Skan * lex.c: Likewise. Move definition of lang_hooks to... 771169689Skan * cp-lang.c: ... new file. 772169689Skan 773169689Skan2001-10-08 Richard Henderson <rth@redhat.com> 774169689Skan 775169689Skan * cp-tree.h (struct lang_decl_flags): Remove declared_inline. 776169689Skan (DECL_DECLARED_INLINE_P): Use the bit in struct c_lang_decl. 777169689Skan 778169689Skan2001-10-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 779169689Skan 780169689Skan * class.c (build_vtable_entry_ref): Const-ify. 781169689Skan * decl.c (predefined_identifier, 782169689Skan initialize_predefined_identifiers): Likewise. 783169689Skan * init.c (build_new_1): Likewise. 784169689Skan * lex.c (cplus_tree_code_type, cplus_tree_code_length, resword): 785169689Skan Likewise. 786169689Skan 787169689Skan2001-10-05 Alexandre Oliva <aoliva@redhat.com> 788169689Skan 789169689Skan * optimize.c (struct inline_data): Moved to ../tree-inline.c. 790169689Skan (INSNS_PER_STMT): Likewise. 791169689Skan (remap_decl, remap_block, copy_scopy_stmt, copy_body_r): Likewise. 792169689Skan (copy_body, initialize_inlined_parameters): Likewise. 793169689Skan (declare_return_variable, inlinable_function_p): Likewise. 794169689Skan (expand_call_inline, expand_calls_inline): Likewise. 795169689Skan (optimize_inline_calls, clone_body): Likewise. 796169689Skan * tree.c (walk_tree): Moved to ../tree-inline.c. 797169689Skan (walk_tree_without_duplicates): Likewise. 798169689Skan (copy_tree_r, remap_save_expr): Likewise. 799169689Skan 800169689Skan2001-10-04 Alexandre Oliva <aoliva@redhat.com> 801169689Skan 802169689Skan * Make-lang.in (cp/decl.o, cp/tree.o): Depend on tree-inline.h. 803169689Skan (cp/pt.o, cp/semantics.o, cp/optimize.o): Likewise. 804169689Skan * cp-tree.h (lang_decl): Moved inlined_fns to tree_decl. 805169689Skan (TREE_READONLY_DECL_P, DECL_INLINED_FNS): Moved to ../tree.h. 806169689Skan (flag_inline_trees): Moved declaration to ../tree-inline.h. 807169689Skan (walk_tree): Moved declaration to ../tree-inline.h. 808169689Skan (walk_tree_without_duplicates, copy_tree_r): Likewise. 809169689Skan (remap_save_expr): Likewise. 810169689Skan * decl.c: Include tree-inline.h. 811169689Skan (lang_mark_tree): Don't mark inlined_fns. 812169689Skan * decl2.c (flag_inline_trees): Moved defn to ../tree-inline.c. 813169689Skan * optimize.c: Include tree-inline.h. 814169689Skan (optimize_inline_calls): Move declaration to ../tree.h, as 815169689Skan non-static. 816169689Skan (remap_decl): Use language-independent constructs and hooks. 817169689Skan (remap_block, copy_body_r, declare_return_variable): Likewise. 818169689Skan (inlinable_function_p): Likewise. Don't test for 819169689Skan DECL_LANG_SPECIFIC before DECL_INLINED_FNS as inlined_fns is 820169689Skan no longer language-specific. 821169689Skan (optimize_inline_calls): Likewise. Make it non-static. Moved 822169689Skan call of dump_function to... 823169689Skan (optimize_function): Here... 824169689Skan (clone_body): New function, extracted from... 825169689Skan (maybe_clone_body): ... here. Build decl_map locally and pass 826169689Skan it on to clone_body. 827169689Skan * pt.c, semantics.c: Include tree-inline.h. 828169689Skan * tree.c: Likewise. 829169689Skan (cp_walk_subtrees): New language-specific hook for tree inlining. 830169689Skan (cp_cannot_inline_tree_fn, cp_add_pending_fn_decls, 831169689Skan cp_is_overload_p, cp_auto_var_in_fn_p, 832169689Skan cp_copy_res_decl_for_inlining): Likewise. 833169689Skan (walk_tree): Move language-specific constructs into... 834169689Skan (cp_walk_subtrees): this new function. 835169689Skan (copy_tree_r): Use language-independent constructs and hooks. 836169689Skan (init_tree): Initialize tree inlining hooks. 837169689Skan (remap_save_expr): Adjust prototype so that the declaration 838169689Skan does not require the definition of splay_tree. 839169689Skan 840169689Skan2001-10-03 John David Anglin <dave@hiauly1.hia.nrc.ca> 841169689Skan 842169689Skan * rtti.c (get_tinfo_decl): Call typeinfo_in_lib_p with the type used 843169689Skan to build the declaration instead of the declaration itself. 844169689Skan 845169689Skan2001-10-02 Jason Merrill <jason_merrill@redhat.com> 846169689Skan 847169689Skan * decl2.c (cxx_decode_option): Add 'else'. 848169689Skan 849169689Skan * spew.c (end_input): No longer static. 850169689Skan * cp-tree.h: Declare it. 851169689Skan * parse.y (datadef): Add "error END_OF_SAVED_INPUT" expansion. 852169689Skan 853169689Skan2001-10-02 Joseph S. Myers <jsm28@cam.ac.uk> 854169689Skan 855169689Skan * call.c (build_over_call), typeck.c (build_function_call_real): 856169689Skan Pass type attributes to check_function_format rather than name or 857169689Skan assembler name. Don't require there to be a name or assembler 858169689Skan name to check formats. 859169689Skan 860169689Skan2001-10-02 Joseph S. Myers <jsm28@cam.ac.uk> 861169689Skan 862169689Skan * decl.c (init_decl_processing): Don't call 863169689Skan init_function_format_info. Initialize lang_attribute_table 864169689Skan earlier. 865169689Skan (builtin_function): Call decl_attributes. 866169689Skan (insert_default_attributes): New. 867169689Skan 868169689Skan2001-10-01 Jason Merrill <jason_merrill@redhat.com> 869169689Skan 870169689Skan * decl.c (grokdeclarator): Copy array typedef handling from C 871169689Skan frontend. 872169689Skan 873169689Skan * decl.c (grokdeclarator): Copy too-large array handling from C 874169689Skan frontend. 875169689Skan 876169689Skan2001-09-29 Alexandre Oliva <aoliva@redhat.com> 877169689Skan 878169689Skan * config-lang.in (target_libs): Added target-gperf, so that we 879169689Skan don't try to build it if C++ is disabled. 880169689Skan 881169689Skan2001-09-23 Zack Weinberg <zack@codesourcery.com> 882169689Skan 883169689Skan * Make-lang.in (CXX_OBJS): Take out cp/errfn.o. 884169689Skan (cp/errfn.o): Delete rule. 885169689Skan (cp/error.o): Depend on flags.h. 886169689Skan * errfn.c: Delete file. 887169689Skan * cp-tree.h: Declare warn_deprecated. Remove definitions of 888169689Skan TFF_NAMESPACE_SCOPE, TFF_CLASS_SCOPE, TFF_CHASE_NAMESPACE_ALIAS, 889169689Skan and TFF_TEMPLATE_DEFAULT_ARGUMENTS. #define cp_error, cp_warning, 890169689Skan cp_pedwarn, and cp_compiler_error to error, warning, pedwarn, and 891169689Skan internal_error respectively. Make cp_deprecated into a macro. 892169689Skan Don't define cp_printer typedef or declare cp_printers. 893169689Skan * error.c: Include flags.h. 894169689Skan Delete: struct tree_formatting_info, print_function_argument_list, 895169689Skan print_declaration, print_expression, print_function_declaration, 896169689Skan print_function_parameter, print_type_id, print_cv_qualifier_seq, 897169689Skan print_type_specifier_seq, print_simple_type_specifier, 898169689Skan print_elaborated_type_specifier, print_rest_of_abstract_declarator, 899169689Skan print_parameter_declaration_clause, print_exception_specification, 900169689Skan print_nested_name_specifier, and definition of cp_printers. 901169689Skan (locate_error): New function. 902169689Skan (cp_error_at, cp_warning_at, cp_pedwarn_at): Moved here and 903169689Skan rewritten in terms of locate_error and diagnostic.c. 904169689Skan (cp_tree_printer): Rename cp_printer; wire up to *_to_string 905169689Skan instead of deleted print_* routines. Handle %C, %L, %O, %Q also. 906169689Skan (init_error): Adjust to match. 907169689Skan 908169689Skan2001-09-22 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 909169689Skan 910169689Skan * Make-lang.in (CXX_C_OBJS): Add attribs.o. 911169689Skan 912169689Skan2001-09-21 Richard Henderson <rth@redhat.com> 913169689Skan 914169689Skan * class.c (set_vindex): Mind TARGET_VTABLE_USES_DESCRIPTORS. 915169689Skan (build_vtbl_initializer): Likewise. 916169689Skan (build_vfn_ref): New. 917169689Skan * cp-tree.h: Declare it. 918169689Skan * call.c (build_over_call): Use it. 919169689Skan * decl2.c (mark_vtable_entries): Mark FDESC_EXPR. 920169689Skan * typeck.c (get_member_function_from_ptrfunc): Mind descriptors. 921169689Skan 922169689Skan2001-09-21 J"orn Rennecke <amylaar@redhat.com> 923169689Skan 924169689Skan * decl.c (grokdeclarator): Use C syntax for attr_flags declaration. 925169689Skan 926169689Skan2001-09-21 Joseph S. Myers <jsm28@cam.ac.uk> 927169689Skan 928169689Skan Table-driven attributes. 929169689Skan * decl.c: Rename DECL_MACHINE_ATTRIBUTES to DECL_ATTRIBUTES. 930169689Skan * decl2.c (cplus_decl_attributes): Only take one attributes 931169689Skan parameter. 932169689Skan * cp-tree.c (cplus_decl_attributes): Update prototype. 933169689Skan * class.c (finish_struct), decl.c (start_decl, start_function), 934169689Skan decl2.c (grokfield), friend.c (do_friend), parse.y 935169689Skan (parse_bitfield): Update calls to cplus_decl_attributes. 936169689Skan * decl.c (grokdeclarator): Take a pointer to a single ordinary 937169689Skan attribute list. 938169689Skan * decl.h (grokdeclarator): Update prototype. 939169689Skan * decl2.c (grokfield): Take a single ordinary attribute list. 940169689Skan * friend.c (do_friend): Likewise. 941169689Skan * decl.c (shadow_tag, groktypename, start_decl, 942169689Skan start_handler_parms, grokdeclarator, grokparms, start_function, 943169689Skan start_method), decl2.c (grokfield, grokbitfield, grokoptypename), 944169689Skan parse.y (parse_field, parse_bitfield, component_decl_1), pt.c 945169689Skan (process_template_parm, do_decl_instantiation): Pass single 946169689Skan ordinary attribute lists around. 947169689Skan * decl.c (grokdeclarator): Correct handling of nested attributes. 948169689Skan Revert the patch 949169689Skan 1998-10-18 Jason Merrill <jason@yorick.cygnus.com> 950169689Skan * decl.c (grokdeclarator): Embedded attrs bind to the right, 951169689Skan not the left. 952169689Skan . 953169689Skan * cp-tree.h (cp_valid_lang_attribute): Remove declaration 954169689Skan (cp_attribute_table): Declare. 955169689Skan * decl.c (valid_lang_attribute): Don't define. 956169689Skan (lang_attribute_table): Define. 957169689Skan (init_decl_processing): Initialize lang_attribute_table instead of 958169689Skan valid_lang_attribute. 959169689Skan * tree.c (cp_valid_lang_attribute): Remove. 960169689Skan (handle_java_interface_attribute, handle_com_interface_attribute, 961169689Skan handle_init_priority_attribute): New functions. 962169689Skan (cp_attribute_table): New array. 963169689Skan * decl2.c (import_export_class): Don't use 964169689Skan targetm.valid_type_attribute. 965169689Skan 966169689Skan2001-09-15 Gabriel Dos Reis <gdr@merlin.codesourcery.com> 967169689Skan 968169689Skan * Make-lang.in (cp/error.o): Depend on real.h 969169689Skan * error.c: #include "real.h" 970169689Skan 971169689Skan2001-09-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 972169689Skan 973169689Skan * mangle.c (mangle_conv_op_name_for_type): Use concat in lieu of 974169689Skan xmalloc/strcpy/strcat. 975169689Skan 976169689Skan2001-09-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 977169689Skan 978169689Skan * decl.c (warn_extern_redeclared_static, cp_make_fname_decl): 979169689Skan Const-ification. 980169689Skan * pt.c (tsubst_decl): Likewise. 981169689Skan 982169689Skan2001-09-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 983169689Skan 984169689Skan * decl2.c (lang_f_options): Const-ification. 985169689Skan * lex.c (cplus_tree_code_name): Likewise. 986169689Skan * spew.c (yyerror): Likewise. 987169689Skan 988169689Skan2001-09-06 Nathan Sidwell <nathan@codesourcery.com> 989169689Skan 990169689Skan PR c++/3986 991169689Skan * class.c (force_canonical_binfo_r): Check & move an indirect 992169689Skan primary base first. 993169689Skan (force_canonical_binfo): Check that it's not already 994169689Skan canonical. 995169689Skan (mark_primary_virtual_base): Remove BINFO parameter. 996169689Skan (mark_primary_bases): Adjust, set BINFO_LOST_PRIMARY_P here. 997169689Skan 998169689Skan2001-09-06 Nathan Sidwell <nathan@codesourcery.com> 999169689Skan 1000169689Skan Remove TYPE_NONCOPIED_PARTS. 1001169689Skan * cp-tree.h (CLASSTYPE_INLINE_FRIENDS): Map onto 1002169689Skan CLASSTYPE_PURE_VIRTUALS. 1003169689Skan (TYPE_RAISES_EXCEPTIONS): Map onto TYPE_BINFO. 1004169689Skan * class.c (duplicate_tag_error): Remove TYPE_NONCOPIED_PARTS. 1005169689Skan (layout_class_type): Don't call fixup_inline_methods here ... 1006169689Skan (finish_struct_1): ... call it here. 1007169689Skan 1008169689Skan2001-09-04 Mark Mitchell <mark@codesourcery.com> 1009169689Skan 1010169689Skan * decl.c (duplicate_decls): Remove code deadling with 1011169689Skan DECL_SAVED_INSNS. 1012169689Skan * decl2.c (finish_file): Likewise. 1013169689Skan * pt.c (instantiate_decl): Likewise. 1014169689Skan * semantics.c (expand_body): Don't defer local functions if 1015169689Skan they wouldn't be deferred for some other reason. Don't 1016169689Skan generate RTL for functions that will not be emitted. 1017169689Skan (genrtl_start_function): Remove code deadling with 1018169689Skan DECL_SAVED_INSNS. 1019169689Skan (genrtl_finish_function): Likewise. 1020169689Skan 1021169689Skan2001-09-04 Nathan Sidwell <nathan@codesourcery.com> 1022169689Skan 1023169689Skan PR c++/4203 1024169689Skan * call.c (build_over_call): Do not optimize any empty base 1025169689Skan construction. 1026169689Skan 1027169689Skan2001-08-31 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1028169689Skan 1029169689Skan * error.c (dump_template_decl): Output template parameters 1030169689Skan together with their specifiers. 1031169689Skan Output `class' prefix for template template parameter. 1032169689Skan (dump_decl): Fix formatting. 1033169689Skan 1034169689Skan2001-08-30 Kurt Garloff <garloff@suse.de> 1035169689Skan 1036169689Skan * optimize.c (inlinable_function_p): Allow only smaller single 1037169689Skan functions. Halve inline limit after reaching recursive limit. 1038169689Skan 1039169689Skan2001-08-30 Joern Rennecke <amylaar@redhat.com> 1040169689Skan Jason Merrill <jason_merrill@redhat.com> 1041169689Skan 1042169689Skan * class.c (build_vtable_entry_ref): Subtract in char*, not 1043169689Skan ptrdiff_t. 1044169689Skan 1045169689Skan2001-08-23 Jason Merrill <jason_merrill@redhat.com> 1046169689Skan 1047169689Skan * tree.c (cp_build_qualified_type_real): Use get_qualified_type. 1048169689Skan (build_cplus_array_type): Use cp_build_qualified_type, not 1049169689Skan TYPE_MAIN_VARIANT, to get an unqualified version. 1050169689Skan 1051169689Skan * decl2.c (grok_alignof): Lose. 1052169689Skan (build_expr_from_tree): Use expr_sizeof and c_alignof_expr. 1053169689Skan * typeck.c (c_alignof): Lose. 1054169689Skan * semantics.c (finish_sizeof, finish_alignof): New. 1055169689Skan * parse.y: Use them. 1056169689Skan * cp-tree.h: Declare them. 1057169689Skan 1058169689Skan2001-08-22 Jason Merrill <jason_merrill@redhat.com> 1059169689Skan 1060169689Skan * pt.c (tsubst_expr): Hand off to the TREE_CHAIN of a statement. 1061169689Skan Don't loop in COMPOUND_STMT, FOR_STMT or TRY_BLOCK. 1062169689Skan * tree.c (cp_statement_code_p): A TAG_DEFN is a statement. 1063169689Skan 1064169689Skan2001-08-19 Jakub Jelinek <jakub@redhat.com> 1065169689Skan 1066169689Skan * typeck2.c (add_exception_specifier): Only require complete type if 1067169689Skan not in processing template declaration. 1068169689Skan 1069169689Skan2001-08-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1070169689Skan 1071169689Skan * decl.c: Cast argument to size_t, not HOST_WIDE_INT, in calls to 1072169689Skan GNU_xref_start_scope and GNU_xref_end_scope. 1073169689Skan 1074169689Skan * tree.c (TYPE_HASH): Moved to ../tree.h. 1075169689Skan 1076169689Skan2001-08-16 Mark Mitchell <mark@codesourcery.com> 1077169689Skan 1078169689Skan * cvt.c (convert_to_void): Preserve TREE_SIDE_EFFECTS 1079169689Skan on COMPOUND_EXPRs. 1080169689Skan 1081169689Skan2001-08-14 Richard Henderson <rth@redhat.com> 1082169689Skan 1083169689Skan * class.c, cp-tree.h (build_vfn_ref): Remove. 1084169689Skan * call.c, rtti.c: Replace all refernces with build_vtbl_ref. 1085169689Skan 1086169689Skan2001-08-13 Mark Mitchell <mark@codesourcery.com> 1087169689Skan 1088169689Skan * call.c (build_over_call): Mark COMPOUND_EXPRs generated for 1089169689Skan empty class assignment as having side-effects to avoid 1090169689Skan spurious warnings. 1091169689Skan 1092169689Skan2001-08-13 Zack Weinberg <zackw@panix.com> 1093169689Skan 1094169689Skan * Make-lang.in (cp/except.o): Add libfuncs.h to dependencies. 1095169689Skan * except.c: Include libfuncs.h. 1096169689Skan 1097169689Skan2001-08-11 Gabriel Dos Reis <gdr@merlin.codesourcery.com> 1098169689Skan 1099169689Skan * decl.c (grokdeclarator): Clarify diagnostic message. 1100169689Skan 1101169689Skan2001-08-13 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1102169689Skan 1103169689Skan * decl2.c (do_nonmember_using_decl): Replace using directive 1104169689Skan with using declaration in the error message. 1105169689Skan 1106169689Skan2001-08-11 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1107169689Skan 1108169689Skan * pt.c (maybe_fold_nontype_arg): Use TREE_TYPE of ARG as the 1109169689Skan criterion to avoid rebuilding expression tree instead of 1110169689Skan processing_template_decl. 1111169689Skan 1112169689Skan2001-08-07 Jason Merrill <jason_merrill@redhat.com> 1113169689Skan 1114169689Skan Support named return value optimization for inlines, too. 1115169689Skan * decl.c (finish_function): Nullify returns here. 1116169689Skan * semantics.c (genrtl_start_function): Not here. 1117169689Skan (cp_expand_stmt): Don't mess with CLEANUP_STMTs. 1118169689Skan (nullify_returns_r): No longer static. Just clear RETURN_EXPR. 1119169689Skan Also nullify the CLEANUP_STMT for the nrv. 1120169689Skan * cp-tree.h: Declare it. 1121169689Skan * optimize.c (declare_return_variable): Replace the nrv with the 1122169689Skan return variable. 1123169689Skan * typeck.c (check_return_expr): Be more flexible on alignment check. 1124169689Skan Ignore cv-quals when checking for a matching type. 1125169689Skan 1126169689Skan2001-08-09 Richard Henderson <rth@redhat.com> 1127169689Skan 1128169689Skan * decl2.c (finish_objects): Use target hooks instead of 1129169689Skan assemble_constructor and assemble_destructor. 1130169689Skan 1131169689Skan2001-08-08 John David Anglin <dave@hiauly1.hia.nrc.ca> 1132169689Skan 1133169689Skan * g++spec.c (lang_specific_driver): Quote argument after `-Xlinker'. 1134169689Skan 1135169689Skan2001-08-07 Nathan Sidwell <nathan@codesourcery.com> 1136169689Skan 1137169689Skan PR c++/3820 1138169689Skan Stop using TYPE_NONCOPIED_PARTS. 1139169689Skan * call.c (build_over_call): Be careful when copy constructing 1140169689Skan or assigning to an empty class. 1141169689Skan * class.c (check_bases_and_members): It has a 1142169689Skan COMPLEX_ASSIGN_REF if it has a vptr. 1143169689Skan (layout_class_type): Don't add empty class padding to 1144169689Skan TYPE_NONCOPIED_PARTS. 1145169689Skan (finish_struct_1): Don't add the VFIELD either. 1146169689Skan * cp-tree.h (TYPE_HAS_TRIVIAL_INIT_REF): Mention _copy_ 1147169689Skan initialization. 1148169689Skan 1149169689Skan2001-08-07 Jason Merrill <jason_merrill@redhat.com> 1150169689Skan 1151169689Skan * tree.c (walk_tree): Walk siblings even if !walk_subtrees. 1152169689Skan 1153169689Skan2001-08-06 Richard Henderson <rth@redhat.com> 1154169689Skan 1155169689Skan * decl2.c (finish_objects): Pass a symbol_ref and priority to 1156169689Skan assemble_{constructor,destructor}. Remove priority handling. 1157169689Skan 1158169689Skan2001-08-05 Gabriel Dos Reis <gdr@merlin.codesourcery.com> 1159169689Skan 1160169689Skan Don't allow template-id in using-declaration. 1161169689Skan * decl2.c (validate_nonmember_using_decl): Handle template-ids. 1162169689Skan (do_class_using_decl): Likewise. 1163169689Skan 1164169689Skan2001-08-04 Neil Booth <neil@cat.daikokuya.demon.co.uk> 1165169689Skan 1166169689Skan * cp/spew.c (read_token): No need to pop buffers. 1167169689Skan 1168169689Skan2001-08-02 Stan Shebs <shebs@apple.com> 1169169689Skan 1170169689Skan * cp-tree.h (FNADDR_FROM_VTABLE_ENTRY): Remove, no longer used. 1171169689Skan (fnaddr_from_vtable_entry): Remove decl. 1172169689Skan * method.c (use_thunk): Update comment. 1173169689Skan 1174169689Skan2001-08-01 Andrew Cagney <ac131313@redhat.com> 1175169689Skan 1176169689Skan * repo.c (get_base_filename): Change return value to const char 1177169689Skan pointer. 1178169689Skan 1179169689Skan2001-08-02 Nathan Sidwell <nathan@codesourcery.com> 1180169689Skan 1181169689Skan Kill -fhonor-std. 1182169689Skan * NEWS: Document. 1183169689Skan * cp-tree.h (flag_honor_std): Remove. 1184169689Skan (CPTI_FAKE_STD): Remove. 1185169689Skan (std_node): Remove comment about it being NULL. 1186169689Skan (fake_std_node): Remove. 1187169689Skan * decl.c (in_fake_std): Remove. 1188169689Skan (walk_namespaces_r): Remove fake_std_node check. 1189169689Skan (push_namespace): Remove in_fake_std code. 1190169689Skan (pop_namespace): Likewise. 1191169689Skan (lookup_name_real): Remove fake_std_node check. 1192169689Skan (init_decl_processing): Always create std_node. Always add 1193169689Skan std:: things there. 1194169689Skan (builtin_function): Always put non '_' fns in std. 1195169689Skan * decl2.c (flag_honor_std): Remove. 1196169689Skan (lang_f_options): Remove honor-std. 1197169689Skan (unsupported_options): Add honor-std. 1198169689Skan (set_decl_namespace): Remove fake_std_node check. 1199169689Skan (validate_nonmember_using_decl): Likewise. 1200169689Skan (do_using_directive): Likewise. 1201169689Skan (handle_class_head): Likewise. 1202169689Skan * dump.c (cp_dump_tree): Likewise. 1203169689Skan * except.c (init_exception_processing): Adjust. 1204169689Skan * init.c (build_member_call): Remove fake_std_node check. 1205169689Skan (build_offset_ref): Likewise. 1206169689Skan * lang-options.h: Remove -fhonor-std, -fno-honor-std. 1207169689Skan * rtti.c (init_rtti_processing): Adjust. 1208169689Skan 1209169689Skan2001-07-31 Alexandre Petit-Bianco <apbianco@redhat.com> 1210169689Skan 1211169689Skan * tree.c (cp_tree_equal): WITH_CLEANUP_EXPR node to use its second 1212169689Skan operand while calling cp_tree_equal. 1213169689Skan 1214169689Skan2001-07-31 Nathan Sidwell <nathan@codesourcery.com> 1215169689Skan 1216169689Skan The 3.0 ABI no longer has vbase pointer fields. 1217169689Skan * cp-tree.h (VBASE_NAME, VBASE_NAME_FORMAT, VBASE_NAME_P, 1218169689Skan FORMAT_VBASE_NAME): Remove. 1219169689Skan * method.c (do_build_copy_constructor): Adjust. 1220169689Skan (do_build_assign_ref): Adjust. 1221169689Skan * search.c (lookup_field_r): Adjust. 1222169689Skan * typeck.c (build_component_ref): Adjust. 1223169689Skan 1224169689Skan The 3.0 ABI always has a vtable pointer at the start of every 1225169689Skan polymorphic class. 1226169689Skan * rtti.c (build_headof_sub): Remove. 1227169689Skan (build_headof): Adjust. 1228169689Skan (get_tinfo_decl_dynamic): No need to check flag_rtti 1229169689Skan here. Adjust. 1230169689Skan (create_real_tinfo_var): Explain why we need a hidden name. 1231169689Skan 1232169689Skan2001-07-31 Nathan Sidwell <nathan@codesourcery.com> 1233169689Skan 1234169689Skan PR c++/3631 1235169689Skan * class.c (update_vtable_entry_for_fn): The fixed adjustment 1236169689Skan of a virtual thunk should be from declaring base. 1237169689Skan 1238169689Skan2001-07-31 Nathan Sidwell <nathan@codesourcery.com> 1239169689Skan 1240169689Skan * class.c (dfs_ctor_vtable_bases_queue_p): Always walk into 1241169689Skan the shared virtual base, so preserving inheritance graph order. 1242169689Skan 1243169689Skan2001-07-30 Andreas Jaeger <aj@suse.de> 1244169689Skan 1245169689Skan * decl2.c: Remove unused var global_temp_name_counter. 1246169689Skan 1247169689Skan2001-07-28 Richard Henderson <rth@redhat.com> 1248169689Skan 1249169689Skan * method.c (pending_inlines): Remove. 1250169689Skan 1251169689Skan2001-07-27 Nathan Sidwell <nathan@codesourcery.com> 1252169689Skan 1253169689Skan * class.c (mark_primary_virtual_base): Don't adjust base 1254169689Skan offsets here. 1255169689Skan (dfs_unshared_virtual_bases): Adjust them here. 1256169689Skan (mark_primary_bases): Explain why we adjust at the end. 1257169689Skan 1258169689Skan2001-07-27 Nathan Sidwell <nathan@codesourcery.com> 1259169689Skan 1260169689Skan * class.c (finish_struct_1): When copying the primary base's 1261169689Skan VFIELD, make sure we find it is at offset zero. 1262169689Skan 1263169689Skan2001-07-26 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1264169689Skan 1265169689Skan * pt.c (tsubst_template_parms): Call maybe_fold_nontype_arg and 1266169689Skan tsubst_expr for default template arguments. 1267169689Skan 1268169689Skan2001-07-26 Nathan Sidwell <nathan@codesourcery.com> 1269169689Skan 1270169689Skan PR c++/3621 1271169689Skan * spew.c (yylex): Only copy the token's lineno, if it is 1272169689Skan nonzero. 1273169689Skan 1274169689Skan2001-07-26 Nathan Sidwell <nathan@codesourcery.com> 1275169689Skan 1276169689Skan PR c++/3624 1277169689Skan * call.c (resolve_args): Simplify, call 1278169689Skan convert_from_reference. 1279169689Skan (build_new_op): Resolve and convert from reference ARG1 1280169689Skan earlier. Adjust ARG2 & ARG3 resolve and conversion. 1281169689Skan 1282169689Skan2001-07-26 Nathan Sidwell <nathan@codesourcery.com> 1283169689Skan 1284169689Skan * decl.c (last_function_parm_tags): Remove. 1285169689Skan (current_function_parm_tags): Remove. 1286169689Skan (init_decl_processing): Adjust. 1287169689Skan (start_function): Adjust. 1288169689Skan (store_parm_decls): Adjust. 1289169689Skan 1290169689Skan PR c++/3152 1291169689Skan * decl.c (grokdeclarator): Detect when a function typedef is 1292169689Skan declaring a function, and create last_function_parms correctly. 1293169689Skan 1294169689Skan2001-07-25 Jason Merrill <jason_merrill@redhat.com> 1295169689Skan 1296169689Skan * call.c (joust): Only prefer a non-builtin candidate to a builtin 1297169689Skan one if they have the same signature. 1298169689Skan 1299169689Skan * cvt.c (build_up_reference): Take DECL parm. Check TREE_STATIC on 1300169689Skan it rather than toplevel_bindings_p. Give it a mangled name if static. 1301169689Skan (convert_to_reference): Adjust. 1302169689Skan * decl2.c (get_temp_name): Lose. 1303169689Skan * mangle.c (mangle_ref_init_variable): New fn. 1304169689Skan (mangle_guard_variable): Strip the ref-init header. 1305169689Skan * cp-tree.h: Adjust. 1306169689Skan * decl.c (cp_finish_decl): Add the DECL_STMT after processing the 1307169689Skan initializer. 1308169689Skan (grok_reference_init): Always use DECL_INITIAL. 1309169689Skan 1310169689Skan2001-07-25 Nathan Sidwell <nathan@codesourcery.com> 1311169689Skan 1312169689Skan PR c++/3416 1313169689Skan * call.c (build_conditional_expr): Recheck args after 1314169689Skan conversions. 1315169689Skan * cp-tree.h (build_conditional_expr): Move to correct file. 1316169689Skan * typeck.c (decay_conversion): Diagnose any unknown types 1317169689Skan reaching here. 1318169689Skan (build_binary_op): Don't do initial decay or default 1319169689Skan conversions on overloaded functions. 1320169689Skan (build_static_cast): Don't do a decay conversion here. 1321169689Skan 1322169689Skan2001-07-25 Nathan Sidwell <nathan@codesourcery.com> 1323169689Skan 1324169689Skan PR c++/3543 1325169689Skan * typeck.c (condition_conversion): Resolve an OFFSET_REF. 1326169689Skan * expr.c (cplus_expand_expr): An OFFSET_REF should never get here. 1327169689Skan 1328169689Skan2001-07-25 Nathan Sidwell <nathan@codesourcery.com> 1329169689Skan 1330169689Skan * class.c (build_vtbl_or_vbase_field): Remove, move into ... 1331169689Skan (create_vtbl_ptr): ... here. 1332169689Skan 1333169689Skan2001-07-25 Nathan Sidwell <nathan@codesourcery.com> 1334169689Skan 1335169689Skan * class.c (build_vbase_offset_vbtl_entries): Look for 1336169689Skan non-primary base of which we are a sub vtable. 1337169689Skan 1338169689Skan2001-07-24 Phil Edwards <pme@sources.redhat.com> 1339169689Skan 1340169689Skan * semantics.c (finish_this_expr): Remove unused code. 1341169689Skan 1342169689Skan2001-07-24 Nathan Sidwell <nathan@codesourcery.com> 1343169689Skan 1344169689Skan Simplify rtti, now we've only one ABI. 1345169689Skan * cp-tree.h (cp_tree_index): Remove CPTI_TINFO_DECL_ID, 1346169689Skan CPTI_TINFO_VAR_ID. 1347169689Skan (tinfo_decl_id, tinfo_var_id): Remove. 1348169689Skan (get_typeid_1): Remove. 1349169689Skan * rtti.c 1350169689Skan (init_rtti_processing): Remove tinfo_decl_id & tinfo_var_id. 1351169689Skan (typeid_ok_p): New function. 1352169689Skan (build_type_id): Call typeid_ok_p. Don't call tinfo_from_decl. 1353169689Skan (get_tinfo_decl): Remove old abi documentation. 1354169689Skan (tinfo_from_decl): Remove. 1355169689Skan (get_type_id): Call typeid_ok_p. Absorb get_typeid_1. 1356169689Skan (get_typeid_1): Remove. 1357169689Skan (get_base_offset): Remove. 1358169689Skan (synthesize_tinfo_var): Absorb get_base_offset. 1359169689Skan (create_real_tinfo_var): Don't use tinfo_decl_id. 1360169689Skan 1361169689Skan2001-07-23 Graham Stott <grahams@redhat.com> 1362169689Skan 1363169689Skan * cp/class.c (type_requires_array_cookie): Fix use of uninitialized 1364169689Skan variable has_two_argument_delete_p. 1365169689Skan 1366169689Skan2001-07-21 Nathan Sidwell <nathan@codesourcery.com> 1367169689Skan 1368169689Skan Remove flag_vtable_thunk. It is always on for the 3.0 ABI. 1369169689Skan * cp-tree.h (CPTI_DELTA2_IDENTIFIER): Remove. 1370169689Skan (CPTI_INDEX_IDENTIFIER): Remove. 1371169689Skan (CPT_PFN_OR_DELTA2_IDENTIFIER): Remove. 1372169689Skan (delta2_identifier): Remove. 1373169689Skan (index_identifier): Remove. 1374169689Skan (pfn_or_delta2_identifier): Remove. 1375169689Skan (flag_vtable_thunks): Remove. 1376169689Skan (VTABLE_DELTA2_NAME): Remove. 1377169689Skan (VTABLE_INDEX_NAME): Remove. 1378169689Skan (FNADDR_FROM_VTABLE_ENTRY): Adjust. 1379169689Skan (vfunc_ptr_type_node): Adjust. 1380169689Skan (VTABLE_NAME_PREFIX): Adjust. 1381169689Skan (build_vfn_ref): Lose first parameter. 1382169689Skan (fixup_all_virtual_upcast_offsets): Remove. 1383169689Skan * decl.c (initialize_predefined_identifiers): Remove 1384169689Skan delta2_identifier, index_identifier, pfn_or_delta2_identifier. 1385169689Skan (init_decl_processing): Remove no-vtable-thunk code. 1386169689Skan * decl2.c (flag_vtable_thunks): Remove. 1387169689Skan (mark_vtable_entries): Remove no-vtable-thunk code. 1388169689Skan * error.c (dump_decl): Remove no-vtable-thunk code. 1389169689Skan (dump_expr): Adjust ptr to member function code. 1390169689Skan * init.c (initialize_vtable_ptrs): Remove no-vtable-thunk 1391169689Skan code. 1392169689Skan * rtti.c (build_headof): Remove no-vtable-thunk code. 1393169689Skan (get_tinfo_decl_dynamic): Adjust build_vfn_ref call. 1394169689Skan * search.c (get_base_distance): Remove expand_upcast_fixups case. 1395169689Skan (virtual_context) Remove. 1396169689Skan (expand_upcast_fixups): Remove. 1397169689Skan (fixup_virtual_upcast_offsets): Remove. 1398169689Skan (fixup_all_virtual_upcast_offsets): Remove. 1399169689Skan * typeck.c (get_member_function_from_ptrfunc): Remove 1400169689Skan no-vtable-thunk code. 1401169689Skan * call.c (build_over_call): Adjust call to build_vfn_ref. 1402169689Skan * class.c (build_vfn_ref): Lose first parameter. Remove 1403169689Skan no-vtable-thunk code. 1404169689Skan (build_rtti_vtbl_entries): Remove no-vtable-thunk code. 1405169689Skan (build_vtable_entry): Remove no-vtable-thunk code. 1406169689Skan 1407169689Skan2001-07-20 Nathan Sidwell <nathan@codesourcery.com> 1408169689Skan 1409169689Skan Remove old-abi remnants. Remove comments about old abi 1410169689Skan behavior. Remove references to 'new-abi' in comments. 1411169689Skan * cp-tree.h: Adjust comments. 1412169689Skan (vbase_offsets_in_vtable_p): Delete. 1413169689Skan (vcall_offsets_in_vtable_p): Delete. 1414169689Skan (vptrs_present_everywhere_p): Delete. 1415169689Skan (all_overridden_vfuns_in_vtables_p): Delete. 1416169689Skan (merge_primary_and_secondary_vtables_p): Delete. 1417169689Skan (TYPE_CONTAINS_VPTR_P): Adjust. 1418169689Skan (VTT_NAME_PREFIX): Remove. 1419169689Skan (CTOR_VTBL_NAME_PREFIX): Remove. 1420169689Skan (init_vbase_pointers): Remove. 1421169689Skan * class.c: Adjust coments. 1422169689Skan (build_vbase_pointer_fields): Delete. 1423169689Skan (build_vbase_pointer): Remove old-abi code. 1424169689Skan (build_secondary_vtable): Likewise. 1425169689Skan (modify_all_vtables): Likewise. 1426169689Skan (create_vtable_ptr): Likewise. 1427169689Skan (layout_class_type): Likewise. 1428169689Skan (finish_struct_1): Likewise. 1429169689Skan (finish_vtbls): Likewise. 1430169689Skan (dfs_finish_vtbls): Delete. 1431169689Skan (build_vbase_offset_vtbl_entries): Remove old-abi code. 1432169689Skan * cvt.c: Adjust comments. 1433169689Skan * decl.c: Adjust comments. 1434169689Skan * decl2.c: Adjust comments. 1435169689Skan * init.c: Adjust comments. 1436169689Skan (construct_virtual_bases): Remove old-abi code. 1437169689Skan * lang-specs.h: Remove -fno-new-abi. 1438169689Skan * mangle.c: Adjust comments. 1439169689Skan * rtti.c: Adjust comments. 1440169689Skan (get_base_offset): Remove old-abi-code. 1441169689Skan * search.c: Adjust comments. 1442169689Skan (dfs_init_vbase_pointers): Remove. 1443169689Skan (dfs_vtable_path_unmark): Remove. 1444169689Skan (init_vbase_pointers): Remove. 1445169689Skan * semantics.c: Adjust comments. 1446169689Skan (emit_associated_thunks): Remove old-abi code. 1447169689Skan * typeck.c: Adjust comments. 1448169689Skan 1449169689Skan2001-07-20 Daniel Berlin <dan@cgsoftware.com> 1450169689Skan 1451169689Skan * Make-lang.in (cp/optimize.o): Depend on $(PARAMS_H), not 1452169689Skan params.h. 1453169689Skan 1454169689Skan2001-07-19 Mark Mitchell <mark@codesourcery.com> 1455169689Skan 1456169689Skan * class.c (finish_struct_anon): Forbid nested classes. 1457169689Skan 1458169689Skan2001-07-19 Neil Booth <neil@daikokuya.demon.co.uk> 1459169689Skan 1460169689Skan * decl2.c: Don't include dwarfout.h and dwarf2out.h. 1461169689Skan * optimize.c: Include debug.h. 1462169689Skan (maybe_clone_body): Use debug hook. 1463169689Skan * semantics.c: Include debug.h. 1464169689Skan (expand_body): Use debug hook. 1465169689Skan 1466169689Skan2001-07-19 Neil Booth <neil@daikokuya.demon.co.uk> 1467169689Skan 1468169689Skan * spew.c (read_token, yyerror): Remove CPP_INT, CPP_FLOAT cases. 1469169689Skan 1470169689Skan2001-07-18 Mark Mitchell <mark@codesourcery.com> 1471169689Skan 1472169689Skan * class.c (type_requires_array_cookie): New function. 1473169689Skan (check_methods): Don't try to figure out whether the type needs a 1474169689Skan cookie here. 1475169689Skan (check_bases_and_members): Set TYPE_VEC_NEW_USES_COOKIE here. 1476169689Skan * cp-tree.h (TYPE_VEC_DELETE_TAKES_SIZE): Remove. 1477169689Skan (TYPE_VEC_NEW_USES_COOKIE): Reimplement. 1478169689Skan * pt.c (instantiate_class_template): Don't set 1479169689Skan TYPE_VEC_DELETE_TAKES_SIZE. 1480169689Skan * NEWS: Document ABI changes from GCC 3.0. 1481169689Skan 1482169689Skan2001-07-18 Xavier Delacour <xavier@fmaudio.net>, 1483169689Skan Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> 1484169689Skan 1485169689Skan * NEWS (Changes in GCC 3.0): Fix typo. 1486169689Skan 1487169689Skan2001-07-13 Joseph S. Myers <jsm28@cam.ac.uk> 1488169689Skan 1489169689Skan * decl2.c (cplus_decl_attributes): Take a pointer to the node to 1490169689Skan which attributes are to be attached, and a flags argument. Update 1491169689Skan call to decl_attributes. 1492169689Skan (grokfield): Update call to decl_attributes. 1493169689Skan * class.c (finish_struct): Update call to cplus_decl_attributes. 1494169689Skan * cp-tree.h (cplus_decl_attributes): Update prototype. 1495169689Skan * decl.c (start_decl, grokdeclarator, start_function): Update 1496169689Skan calls to decl_attributes and cplus_decl_attributes. 1497169689Skan * friend.c (do_friend): Update call to cplus_decl_attributes. 1498169689Skan * parse.y (parse_bitfield): Update call to cplus_decl_attributes. 1499169689Skan 1500169689Skan2001-07-12 Mark Mitchell <mark@codesourcery.com> 1501169689Skan 1502169689Skan * decl.c (make_rtl_for_nonlocal_decl): Set DECL_C_HARD_REGISTER 1503169689Skan for `register' variables with an asm-specification. 1504169689Skan 1505169689Skan2001-07-11 Mark Mitchell <mark@codesourcery.com> 1506169689Skan 1507169689Skan * semantics.c (finish_asm_stmt): Mark the output operands 1508169689Skan to an asm addressable, if necessary. 1509169689Skan 1510169689Skan2001-07-11 Ben Elliston <bje@redhat.com> 1511169689Skan 1512169689Skan * Revert this change -- there is a subtle bug. 1513169689Skan 1514169689Skan PR c++/80 1515169689Skan * decl.c (finish_enum): New "attributes" argument; pass it to 1516169689Skan cplus_decl_attributes. Use a narrower type if the enum is packed. 1517169689Skan * cp-tree.h (finish_enum): Adjust prototype. 1518169689Skan * parse.y (enum_head): New non-terminal. 1519169689Skan (structsp): Use it. Enums now may be preceded or followed by 1520169689Skan optional attributes -- pass their chained tree to finish_enum(). 1521169689Skan * pt.c (tsubst_enum): Pass NULL_TREE for the new argument. 1522169689Skan 1523169689Skan2001-07-10 Mark Mitchell <mark@codesourcery.com> 1524169689Skan 1525169689Skan * pt.c (tsubst_decl): Set DECL_CONTEXT for namespace-scope 1526169689Skan variables. 1527169689Skan 1528169689Skan2001-07-10 Jason Merrill <jason_merrill@redhat.com> 1529169689Skan 1530169689Skan * semantics.c (cp_expand_stmt): Fix for null 1531169689Skan current_function_return_value. 1532169689Skan 1533169689Skan2001-07-10 Jan van Male <jan.vanmale@fenk.wau.nl> 1534169689Skan 1535169689Skan * call.c (build_op_delete_call): Initialize fn. 1536169689Skan (convert_like_real): Delete conditional. 1537169689Skan (joust): Initialize *w and *l. 1538169689Skan * class.c: Add prototype for binfo_ctor_vtable. 1539169689Skan (get_primary_binfo): Initialize result. 1540169689Skan * init.c (build_java_class_ref): Initialize name. 1541169689Skan 1542169689Skan2001-07-09 Erik Rozendaal <dlr@acm.org> 1543169689Skan 1544169689Skan * typeck.c (unary_complex_lvalue): Do not duplicate the 1545169689Skan argument to modify, pre-, or post-increment when used as an 1546169689Skan lvalue and when the argument has side-effects. 1547169689Skan 1548169689Skan2001-07-08 Joseph S. Myers <jsm28@cam.ac.uk> 1549169689Skan 1550169689Skan * decl.c (start_decl): Don't call SET_DEFAULT_DECL_ATTRIBUTES. 1551169689Skan (start_function): Don't call SET_DEFAULT_DECL_ATTRIBUTES. Call 1552169689Skan cplus_decl_attributes even if attrs is NULL. 1553169689Skan * friend.c (do_friend): Don't call SET_DEFAULT_DECL_ATTRIBUTES. 1554169689Skan 1555169689Skan2001-07-08 Joseph S. Myers <jsm28@cam.ac.uk> 1556169689Skan 1557169689Skan * decl.c (grokdeclarator), decl2.c (cplus_decl_attributes): Update 1558169689Skan calls to decl_attributes. 1559169689Skan 1560169689Skan2001-07-06 Ira Ruben <ira@apple.com> 1561169689Skan 1562169689Skan * cp-tree.def (TEMPLATE_DECL): Update comment. DECL_RESULT should 1563169689Skan be DECL_TEMPLATE_RESULT. 1564169689Skan 1565169689Skan2001-07-05 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1566169689Skan 1567169689Skan * cp-tree.h (copy_template_template_parm): Rename to ... 1568169689Skan (bind_template_template_parm): ... here. 1569169689Skan * tree.c (copy_template_template_parm): Rename to ... 1570169689Skan (bind_template_template_parm): ... here. Remove the case when 1571169689Skan NEWARGS is NULL_TREE. 1572169689Skan (copy_tree_r): Don't copy TEMPLATE_TEMPLATE_PARM and 1573169689Skan BOUND_TEMPLATE_TEMPLATE_PARM. 1574169689Skan * pt.c (lookup_template_class): Adjust. 1575169689Skan 1576169689Skan2001-07-05 Jason Merrill <jason_merrill@redhat.com> 1577169689Skan 1578169689Skan * cvt.c (convert_lvalue): New fn. 1579169689Skan * cp-tree.h: Declare it. 1580169689Skan * method.c (do_build_assign_ref): Use it. 1581169689Skan (do_build_copy_constructor): Convert parm to base types 1582169689Skan before calling base constructors. 1583169689Skan 1584169689Skan * typeck.c (check_return_expr): Check DECL_ALIGN instead of 1585169689Skan DECL_USER_ALIGN. Check flag_elide_constructors instead of 1586169689Skan optimize. 1587169689Skan * semantics.c (cp_expand_stmt): Don't destroy the named return value. 1588169689Skan 1589169689Skan2001-07-02 Nathan Sidwell <nathan@codesourcery.com> 1590169689Skan 1591169689Skan * optimize.c (optimize_inline_calls): New function, broken out 1592169689Skan of ... 1593169689Skan (optimize_function): ... here. Call it. Don't inline if it is 1594169689Skan a thunk. 1595169689Skan (dump_function): Print name of dump flag causing this dump. 1596169689Skan * semantics.c (expand_body): Move thunk inline check to 1597169689Skan optimize_function. 1598169689Skan 1599169689Skan2001-06-29 Joseph S. Myers <jsm28@cam.ac.uk> 1600169689Skan 1601169689Skan * typeck.c (COMP_TYPE_ATTRIBUTES): Don't define. 1602169689Skan (comptypes): Use target.comp_type_attributes. 1603169689Skan 1604169689Skan2001-06-29 Nathan Sidwell <nathan@codesourcery.com> 1605169689Skan 1606169689Skan * cp-tree.h (flag_dump_class_layout): Remove unneeded declaration. 1607169689Skan 1608169689Skan2001-06-28 Gabriel Dos Reis <gdr@merlin.codesourcery.com> 1609169689Skan 1610169689Skan * error.c (lang_print_error_function): Add a `diagnostic_context *' 1611169689Skan parameter. Tweak. 1612169689Skan 1613169689Skan2001-06-27 Neil Booth <neil@cat.daikokuya.demon.co.uk> 1614169689Skan 1615169689Skan * decl2.c (import_export_class): Update. 1616169689Skan 1617169689Skan2001-06-26 Gabriel Dos Reis <gdr@codesourcery.com> 1618169689Skan 1619169689Skan * error.c (init_error): Adjust settings. 1620169689Skan 1621169689Skan2001-06-26 Gabriel Dos Reis <gdr@codesourcery.com> 1622169689Skan 1623169689Skan * error.c (init_error): Adjust settings. 1624169689Skan 1625169689Skan2001-06-19 Richard Sandiford <rsandifo@redhat.com> 1626169689Skan 1627169689Skan * except.c (initialize_handler_parm): Expect __cxa_begin_catch to 1628169689Skan return pointers to data members by reference rather than by value. 1629169689Skan 1630169689Skan2001-06-18 Jason Merrill <jason_merrill@redhat.com> 1631169689Skan 1632169689Skan Implement the Named Return Value optimization. 1633169689Skan * cp-tree.h (struct cp_language_function): Add x_return_value. 1634169689Skan (current_function_return_value): Now a macro. 1635169689Skan * decl.c: Don't define it. 1636169689Skan (define_label, finish_case_label): Don't clear it. 1637169689Skan (init_decl_processing): Don't register it with GC. 1638169689Skan * semantics.c (genrtl_finish_function): Don't check it for 1639169689Skan no_return_label. Copy the RTL from the return value to 1640169689Skan current_function_return_value and walk, calling... 1641169689Skan (nullify_returns_r): ...this new fn. 1642169689Skan * typeck.c (check_return_expr): Set current_function_return_value. 1643169689Skan 1644169689Skan2001-06-15 Jason Merrill <jason_merrill@redhat.com> 1645169689Skan 1646169689Skan * class.c (dfs_accumulate_vtbl_inits): Just point to the base we're 1647169689Skan sharing a ctor vtable with. Merge code for cases 1 and 2. 1648169689Skan (binfo_ctor_vtable): New fn. 1649169689Skan (build_vtt_inits, dfs_build_secondary_vptr_vtt_inits): Use it. 1650169689Skan 1651169689Skan2001-06-14 Jason Merrill <jason_merrill@redhat.com> 1652169689Skan 1653169689Skan * class.c (dfs_find_final_overrider): Fix logic. 1654169689Skan 1655169689Skan * class.c (update_vtable_entry_for_fn): Uncomment optimization to use 1656169689Skan virtual thunk instead of non-virtual. 1657169689Skan (get_matching_virtual): Uncomment. 1658169689Skan 1659169689Skan * pt.c (unify): Don't recurse between the POINTER_TYPE and the 1660169689Skan OFFSET_TYPE. If we're adding cv-quals, the extra ones would be on 1661169689Skan PARM, not ARG. 1662169689Skan 1663169689Skan2001-06-14 Nathan Sidwell <nathan@codesourcery.com> 1664169689Skan 1665169689Skan * class.c (dfs_accumulate_vtbl_inits): For case 2 & 3, make sure 1666169689Skan we've not emerged from the hierarchy of RTTI_BINFO on reaching 1667169689Skan a non-virtual base. 1668169689Skan 1669169689Skan2001-06-13 Mark Mitchell <mark@codesourcery.com> 1670169689Skan 1671169689Skan * NEWS: Update release number. 1672169689Skan 1673169689Skan2001-06-12 Nathan Sidwell <nathan@codesourcery.com> 1674169689Skan 1675169689Skan PR c++/3130, c++/3131, c++/3132 1676169689Skan * cp-tree.h (BINFO_UNSHARED_MARKED): New #define. 1677169689Skan * class.c (force_canonical_binfo_r): Move 1678169689Skan BINFO_UNSHARED_MARKED, BINFO_LOST_PRIMARY_P. Don't move 1679169689Skan virtual bases unless they're primary and what they're primary 1680169689Skan too has been moved. 1681169689Skan (dfs_unshared_virtual_bases): Use BINFO_UNSHARED_MARKED. Cope 1682169689Skan with morally virtual bases. Duplicate BINFO_LOST_PRIMARY_P and 1683169689Skan BINFO_PRIMARY_BASE_OF. Clear BINFO_VTABLE for all but the most 1684169689Skan derived binfo. 1685169689Skan (mark_primary_bases): Use BINFO_UNSHARED_MARKED. 1686169689Skan (layout_nonempty_base_or_field): Add most derived type 1687169689Skan parameter. Adjust. 1688169689Skan (layout_empty_base): Likewise. 1689169689Skan (build_base_field): Likewise. 1690169689Skan (build_base_fields): Likewise. 1691169689Skan (propagate_binfo_offsets): Add most derived type 1692169689Skan parameter. Skip non canonical virtual bases too. 1693169689Skan (dfs_set_offset_for_unshared_vbases): Don't skip primary 1694169689Skan bases. Do skip canonical bases. 1695169689Skan (layout_virtual_bases): Adjust. 1696169689Skan (layout_class_type): Adjust. 1697169689Skan (dfs_get_primary_binfo): Build list of virtual primary base 1698169689Skan candidates. 1699169689Skan (get_primary_binfo): Check that the shared virtual primary 1700169689Skan base candidate was found first. 1701169689Skan (accumulate_vtbl_inits): Don't do anything for non-vptr 1702169689Skan containing binfos. For case 1 primary virtual bases, keep 1703169689Skan checking that we've not emerged from the hierarchy of RTTI_BINFO. 1704169689Skan 1705169689Skan2001-06-12 Nathan Sidwell <nathan@codesourcery.com> 1706169689Skan 1707169689Skan PR c++/3089 1708169689Skan * class.c (dfs_accumulate_vtbl_inits): Always walk down the 1709169689Skan hierarchy looking for primary bases for a ctor 1710169689Skan vtable. Recursively call oneself, if we meet our primary via 1711169689Skan this route and haven't met it yet via inheritance graph order. 1712169689Skan 1713169689Skan2001-06-11 Mark Mitchell <mark@codesourcery.com> 1714169689Skan 1715169689Skan * lang-options.h: Emit documentation for -fno-honor-std, not 1716169689Skan -fhonor-std. 1717169689Skan 1718169689Skan2001-06-10 Alexandre Oliva <aoliva@redhat.com> 1719169689Skan 1720169689Skan * typeck.c (get_member_function_from_ptrfunc) [vbit_in_delta]: 1721169689Skan Don't clobber delta. 1722169689Skan (expand_ptrmemfunc_cst) [ptrmemfunc_vbit_in_delta]: Adjust pfn. 1723169689Skan 1724169689Skan2001-06-10 Mark Mitchell <mark@codesourcery.com> 1725169689Skan Gabriel Dos Reis <gdr@codesourcery.com> 1726169689Skan 1727169689Skan * Make-lang.in (cp/call.o): Depend on diagnostic.h 1728169689Skan (cp/typeck.o): Depend on diagnostic.h 1729169689Skan (cp/typeck2.o): Depend on diagnostic.h 1730169689Skan (cp/repo.o): Depend on dignostic.h 1731169689Skan * typeck.c: #include diagnostic.h 1732169689Skan (convert_for_initialization): Remove extern declaration for 1733169689Skan warningcount and errorcount. 1734169689Skan 1735169689Skan * call.c: #include diagnostic.h 1736169689Skan (convert_like_real): Remove extern declaration for warnincount and 1737169689Skan errorcount. 1738169689Skan 1739169689Skan * repo.c: #include diagnostic.h 1740169689Skan * typeck2.c: #include diagnostic.h 1741169689Skan 1742169689Skan2001-06-08 Nathan Sidwell <nathan@codesourcery.com> 1743169689Skan 1744169689Skan * decl.c (duplicate_decls): Fix DECL_TEMPLATE_RESULT thinko 1745169689Skan in previous change. 1746169689Skan 1747169689Skan2001-06-08 Nathan Sidwell <nathan@codesourcery.com> 1748169689Skan 1749169689Skan PR c++/2929 1750169689Skan * friend.c (do_friend): Use push_decl_namespace for classes at 1751169689Skan namespace scope. 1752169689Skan 1753169689Skan2001-06-08 Nathan Sidwell <nathan@codesourcery.com> 1754169689Skan Jason Merrill <jason_merrill@redhat.com> 1755169689Skan 1756169689Skan PR c++/3061 1757169689Skan * class.c (build_secondary_vtable): Use assert, rather than an error 1758169689Skan message. 1759169689Skan (dfs_fixup_binfo_vtbls): BINFO_VTABLE might be NULL. 1760169689Skan (dfs_accumulate_vtbl_inits): A lost primary virtual base may 1761169689Skan be between ORIG_BINFO and RTTI_BINFO, but neither of them. 1762169689Skan Don't set BINFO_VTABLE for a primary virtual base. 1763169689Skan 1764169689Skan2001-06-07 Mark Mitchell <mark@codesourcery.com> 1765169689Skan 1766169689Skan * decl.c (duplicate_decls): Update source position information 1767169689Skan when a template function is defined. 1768169689Skan 1769169689Skan2001-06-07 Phil Edwards <pme@sources.redhat.com> 1770169689Skan 1771169689Skan * lang-specs.h: Move -D_GNU_SOURCE to config/linux.h. 1772169689Skan 1773169689Skan2001-06-07 Nathan Sidwell <nathan@codesourcery.com> 1774169689Skan 1775169689Skan PR c++/2914 1776169689Skan * decl.c (pushtag): Don't push into a complete type's scope. 1777169689Skan 1778169689Skan2001-06-06 Jason Merrill <jason_merrill@redhat.com> 1779169689Skan 1780169689Skan * cp-tree.h (THUNK_GENERATE_WITH_VTABLE_P): Lose. 1781169689Skan (struct lang_decl_flags): Lose generate_with_vtable_p. 1782169689Skan (BV_GENERATE_THUNK_WITH_VTABLE_P): Lose. 1783169689Skan * class.c (copy_virtuals): Adjust. 1784169689Skan * decl2.c (mark_vtable_entries): Adjust. 1785169689Skan * method.c (make_thunk, build_vtable_entry): Adjust. 1786169689Skan * class.c (update_vtable_entry_for_fn): Only look as far as the 1787169689Skan first defining class. 1788169689Skan (build_vtbl_initializer): Put nothing in the slot for a function only 1789169689Skan defined in a lost primary virtual base. 1790169689Skan (add_vcall_offset_vtbl_entries_1): Use the same code for 1791169689Skan the lost primary case and the normal case. 1792169689Skan (dfs_unshared_virtual_bases): Don't lose a non-virtual primary base. 1793169689Skan (get_vfield_offset, get_derived_offset): Lose. 1794169689Skan (dfs_find_final_overrider): Use look_for_overrides_here. 1795169689Skan (get_matching_virtual): New fn. 1796169689Skan * semantics.c (emit_associated_thunks): Check BV_USE_VCALL_INDEX_P, 1797169689Skan not BV_VCALL_INDEX. 1798169689Skan * search.c (look_for_overrides_here): Split out from... 1799169689Skan (look_for_overrides_r): Here. 1800169689Skan 1801169689Skan * class.c (find_final_overrider): Return error_mark_node on error. 1802169689Skan 1803169689Skan * decl2.c (key_method): #if 0 accidental change. 1804169689Skan 1805169689Skan2001-06-06 John David Anglin <dave@hiauly1.hia.nrc.ca> 1806169689Skan 1807169689Skan * call.c (convert_default_arg): Use INTEGRAL_TYPE_P. 1808169689Skan (build_over_call): Likewise. 1809169689Skan * decl.c (grokparms): Likewise. 1810169689Skan * pt.c (tsubst_decl): Likewise. 1811169689Skan * typeck.c (convert_arguments): Likewise. 1812169689Skan 1813169689Skan2001-06-05 Mark Mitchell <mark@codesourcery.com> 1814169689Skan 1815169689Skan * semantics.c (begin_class_definition): Robustify. 1816169689Skan 1817169689Skan * pt.c (instantiate_decl): Tell the repository code about the 1818169689Skan clones, not the cloned functions. 1819169689Skan * repo.c (repo_template_used): Explicitly instantiate the cloned 1820169689Skan function, not the clones. 1821169689Skan 1822169689Skan2001-06-05 Nathan Sidwell <nathan@codesourcery.com> 1823169689Skan 1824169689Skan * call.c (build_user_type_conversion_1): Set ICS_USER_FLAG and 1825169689Skan ICS_BAD_FLAG on created conversion. 1826169689Skan (compare_ics): Break out rank. 1827169689Skan 1828169689Skan2001-06-05 Nathan Sidwell <nathan@codesourcery.com> 1829169689Skan 1830169689Skan * decl.c (xref_tag): Remove extraneous %s on dependent name 1831169689Skan lookup warning. 1832169689Skan 1833169689Skan2001-06-05 Nathan Sidwell <nathan@codesourcery.com> 1834169689Skan 1835169689Skan * class.c (layout_vtable_decl): Fix off by one error on 1836169689Skan build_index_type. 1837169689Skan (build_vtt): Likewise. 1838169689Skan (build_ctor_vtbl_group): Likewise. 1839169689Skan 1840169689Skan2001-06-05 Nathan Sidwell <nathan@codesourcery.com> 1841169689Skan 1842169689Skan * class.c (maybe_indent_hierarchy): New function. 1843169689Skan (dump_class_hierarchy_r): Add flags. Dump extra binfo 1844169689Skan information, if enabled. Use maybe_indent_hierarchy. Adjust 1845169689Skan output format. 1846169689Skan (dump_class_hierarchy): Adjust prototype. Adjust output format. 1847169689Skan (dump_array, dump_vtable, dump_vtt): New functions. 1848169689Skan (finish_struct_1): Adjust hierarchy dumping. 1849169689Skan (initialize_vtable): Call dump_vtable. 1850169689Skan (build_vtt): Call dump_vtt. 1851169689Skan (build_ctor_vtbl_group): Call dump_vtable. 1852169689Skan * decl2.c (flag_dump_class_layout): Remove. 1853169689Skan (cxx_decode_option): Remove dump translation unit 1854169689Skan and dump class hierarchy check. Call dump_switch_p. 1855169689Skan (finish_file): Adjust dumping. 1856169689Skan (dump.c): Only dump base classes if not TDF_SLIM. 1857169689Skan Only dump namespace members if not TDF_SLIM. 1858169689Skan * optimize.c (dump_function): New function. 1859169689Skan (optimize_function): Call dump_function. 1860169689Skan * semantics.c (expand_body): Use dump_enabled_p. 1861169689Skan 1862169689Skan2001-06-01 Nathan Sidwell <nathan@codesourcery.com> 1863169689Skan 1864169689Skan PR g++/2936 1865169689Skan Part missed from first commit 1866169689Skan * decl2.c (finish_anon_union): Copy context. 1867169689Skan 1868169689Skan2001-05-30 Nathan Sidwell <nathan@codesourcery.com> 1869169689Skan 1870169689Skan PR g++/2936 1871169689Skan * optimize.c (remap_decl): Remap anonymous aggregate members too. 1872169689Skan 1873169689Skan2001-05-26 Nathan Sidwell <nathan@codesourcery.com> 1874169689Skan 1875169689Skan PR g++/2823 1876169689Skan * semantics.c (expand_body): Don't optimize thunks. 1877169689Skan 1878169689Skan2001-05-25 Sam TH <sam@uchicago.edu> 1879169689Skan 1880169689Skan * cp-tree.h lex.h: Fix header include guards. 1881169689Skan 1882169689Skan2001-05-25 Mark Mitchell <mark@codesourcery.com> 1883169689Skan 1884169689Skan * decl.c (init_decl_processing): Tweak. 1885169689Skan 1886169689Skan2001-05-24 Mark Mitchell <mark@codesourcery.com> 1887169689Skan 1888169689Skan * decl.c (duplicate_decls): Tidy. 1889169689Skan (init_decl_processing): Always set flag_no_builtin. 1890169689Skan 1891169689Skan2001-05-24 Nathan Sidwell <nathan@codesourcery.com> 1892169689Skan 1893169689Skan PR c++/2184 1894169689Skan * decl2.c (do_local_using_decl): Push the decls, even in a 1895169689Skan template. 1896169689Skan 1897169689Skan2001-05-22 Mark Mitchell <mark@codesourcery.com> 1898169689Skan 1899169689Skan * optimize.c (initialize_inlined_parameters): Don't set 1900169689Skan TREE_READONLY for a VAR_DECL taking the place of an inlined 1901169689Skan PARM_DECL. 1902169689Skan 1903169689Skan2001-05-22 Jason Merrill <jason_merrill@redhat.com> 1904169689Skan 1905169689Skan * class.c, cp-tree.h, rtti.c: Remove com_interface attribute support. 1906169689Skan * tree.c (cp_valid_lang_attribute): Warn about use of com_interface 1907169689Skan attribute. 1908169689Skan 1909169689Skan2001-05-22 Joseph S. Myers <jsm28@cam.ac.uk> 1910169689Skan 1911169689Skan * parse.y: Refer to compound literals as such, not as 1912169689Skan constructor-expressions. 1913169689Skan 1914169689Skan2001-05-21 Mark Mitchell <mark@codesourcery.com> 1915169689Skan 1916169689Skan * call.c (build_op_delete_call): Ignore exception-specifications 1917169689Skan when looking for matching delete operators. 1918169689Skan * init.c (build_new_1): Compute whether or not the allocation 1919169689Skan function used is a placement allocation function or not, and 1920169689Skan communicate this information to build_op_delete_call. 1921169689Skan 1922169689Skan2001-05-21 Jason Merrill <jason_merrill@redhat.com> 1923169689Skan 1924169689Skan * class.c (build_vtable_entry_ref): Lose vtbl parm. Fix for new abi. 1925169689Skan (build_vtbl_ref): Adjust. 1926169689Skan (dfs_accumulate_vtbl_inits): Set TREE_CONSTANT on the vtable address. 1927169689Skan * decl2.c (lang_f_options): Remove huge-objects, vtable-thunks. 1928169689Skan Re-add vtable-gc. 1929169689Skan (unsupported_options): Correspondingly. 1930169689Skan 1931169689Skan * decl2.c (maybe_make_one_only): Check flag_weak, not 1932169689Skan supports_one_only(). 1933169689Skan 1934169689Skan * cp-tree.def (START_CATCH_STMT): Lose. 1935169689Skan * dump.c (cp_dump_tree): Don't dump it. Do dump HANDLER_PARMS. 1936169689Skan * tree.c (cp_statement_code_p): Don't case it. 1937169689Skan * semantics.c (cp_expand_stmt): Likewise. 1938169689Skan * cp-tree.h (START_CATCH_TYPE): Lose. 1939169689Skan (HANDLER_TYPE): New. 1940169689Skan * except.c (expand_start_catch_block): Don't start any blocks. 1941169689Skan Return the type. 1942169689Skan (expand_end_catch_block): Don't end any blocks. 1943169689Skan * parse.y (handler): Don't pass anything from finish_handler_parms 1944169689Skan to finish_handler. 1945169689Skan * pt.c (tsubst_expr): Likewise. 1946169689Skan * semantics.c (begin_handler): Call note_level_for_catch here. 1947169689Skan (finish_handler_parms): Don't return anything. 1948169689Skan (genrtl_catch_block, begin_catch_block): Lose. 1949169689Skan (genrtl_handler): Call expand_start_catch here. 1950169689Skan 1951169689Skan2001-05-18 Jason Merrill <jason_merrill@redhat.com> 1952169689Skan 1953169689Skan * class.c (build_vtable): Set DECL_ASSEMBLER_NAME for vtables here. 1954169689Skan (get_vtable_decl, build_vtt): Not here. 1955169689Skan 1956169689Skan2001-05-20 Nathan Sidwell <nathan@codesourcery.com> 1957169689Skan 1958169689Skan PR c++/2781 1959169689Skan * optimize.c (update_cloned_parm): Copy addressability and other 1960169689Skan flags. 1961169689Skan 1962169689Skan2001-05-20 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1963169689Skan 1964169689Skan * pt.c (determine_specialization): Ignore artificial functions. 1965169689Skan 1966169689Skan2001-05-20 Neil Booth <neil@daikokuya.demon.co.uk> 1967169689Skan 1968169689Skan * cp-tree.h (struct lang_identifier, C_RID_YYCODE): Update. 1969169689Skan (C_RID_CODE): Remove. 1970169689Skan * lex.c (cxx_init_options): Call set_identifier_size. Update. 1971169689Skan (init_parse): Don't do it here. 1972169689Skan 1973169689Skan2001-05-18 Diego Novillo <dnovillo@redhat.com> 1974169689Skan 1975169689Skan * decl2.c (finish_objects): Use the original SYMBOL_REF from the 1976169689Skan function declaration to avoid stripping the symbol's attributes. 1977169689Skan 1978169689Skan2001-05-18 Nathan Sidwell <nathan@codesourcery.com> 1979169689Skan 1980169689Skan * decl.c (pushdecl): Adjust error string. 1981169689Skan (xref_tag): Adjust friend class injection warning. Remove the 1982169689Skan inherited name from the class shadowed scope. 1983169689Skan 1984169689Skan2001-05-17 Mark Mitchell <mark@codesourcery.com> 1985169689Skan 1986169689Skan * except.c (cp_protect_cleanup_actions): New function. 1987169689Skan (init_exception_processing): Don't set protect_cleanup_actions 1988169689Skan here. Do set lang_protect_cleanup_actions. 1989169689Skan 1990169689Skan2001-05-16 Nathan Sidwell <nathan@codesourcery.com> 1991169689Skan 1992169689Skan * spew.c (read_token): Call yyerror on all unexpected tokens. 1993169689Skan 1994169689Skan2001-05-16 Nathan Sidwell <nathan@codesourcery.com> 1995169689Skan 1996169689Skan * init.c (member_init_ok_or_else): Take a tree rather than 1997169689Skan string for name. 1998169689Skan (expand_member_init): Adjust. 1999169689Skan 2000169689Skan2001-05-14 Nick Clifton <nickc@cambridge.redhat.com> 2001169689Skan 2002169689Skan * decl.c (duplicate_decls): Suppress warning about duplicate 2003169689Skan decls if the first decl is a friend. 2004169689Skan 2005169689Skan2001-05-12 Zack Weinberg <zackw@stanford.edu> 2006169689Skan 2007169689Skan * except.c (choose_personality_routine): Export. Add 2008169689Skan explanatory comment. Take an enum languages, not a boolean. 2009169689Skan (initialize_handler_parm): Adjust to match. 2010169689Skan * cp-tree.h: Prototype choose_personality_routine. 2011169689Skan * lex.c (handle_pragma_java_exceptions): New function. 2012169689Skan (init_cp_pragma): Register #pragma GCC java_exceptions. 2013169689Skan 2014169689Skan2001-05-12 Neil Booth <neil@cat.daikokuya.demon.co.uk> 2015169689Skan 2016169689Skan * method.c (build_mangled_C99_name): Remove unused prototype. 2017169689Skan 2018169689Skan2001-05-12 Alexandre Oliva <aoliva@redhat.com> 2019169689Skan 2020169689Skan * cp-tree.h (ptrmemfunc_vbit_where_t): Declare type. 2021169689Skan * typeck.c (get_member_function_from_ptrfunc, 2022169689Skan build_ptrmemfunc, expand_ptrmemfunc_cst): Take 2023169689Skan TARGET_PTRMEMFUNC_VBIT_LOCATION into account. 2024169689Skan 2025169689Skan Reverted Geoff Keating's 2001-05-03's patch. 2026169689Skan 2027169689Skan2001-05-11 Ira Ruben <ira@apple.com> 2028169689Skan 2029169689Skan * cp/cp-tree.h (C_EXP_ORIGINAL_CODE): Delete; declared in c-common.h. 2030169689Skan 2031169689Skan2001-05-11 Neil Booth <neil@daikokuya.demon.co.uk> 2032169689Skan 2033169689Skan * cp-tree.h (finish_label_expr, lookup_label): Delete. 2034169689Skan * parse.y: Update for '&&'; don't issue warning here. 2035169689Skan * semantics.c (finish_label_expr): Delete. 2036169689Skan 2037169689Skan2001-05-07 Mark Mitchell <mark@codesourcery.com> 2038169689Skan 2039169689Skan * splay-tree.h (splay_tree_max): New function. 2040169689Skan (splay_tree_min): Likewise. 2041169689Skan 2042169689Skan2001-05-03 Geoffrey Keating <geoffk@redhat.com> 2043169689Skan 2044169689Skan * cp-tree.h (enum cp_tree_index): Add CPTI_PFN_VFLAG_IDENTIFIER. 2045169689Skan (pfn_vflag_identifier): Define. 2046169689Skan Update comment about layout of pointer functions. 2047169689Skan (build_ptrmemfunc1): Update prototype. 2048169689Skan (expand_ptrmemfunc_cst): Update prototype. 2049169689Skan * decl.c (initialize_predefined_identifiers): Initialize 2050169689Skan pfn_vflag_identifier. 2051169689Skan (build_ptrmemfunc_type): When FUNCTION_BOUNDARY < 16, add 2052169689Skan an extra field to the type. 2053169689Skan * expr.c (cplus_expand_constant): Pass 'flag' between 2054169689Skan expand_ptrmemfunc_cst and build_ptrmemfunc1. 2055169689Skan * typeck.c (get_member_function_from_ptrfunc): When 2056169689Skan FUNCTION_BOUNDARY < 16, look at additional field to determine 2057169689Skan if a pointer-to-member is a real pointer or a vtable offset. 2058169689Skan (build_ptrmemfunc1): Add new parameter to contain extra field. 2059169689Skan (build_ptrmemfunc): Pass the extra field around. 2060169689Skan (expand_ptrmemfunc_cst): Add new parameter to return extra field. 2061169689Skan (pfn_from_ptrmemfunc): Ignore the extra field. 2062169689Skan 2063169689Skan2001-05-03 Mark Mitchell <mark@codesourcery.com> 2064169689Skan 2065169689Skan * cp-tree.h (flag_inline_trees): Update documentation. 2066169689Skan * decl.c (init_decl_processing): Adjust handling of 2067169689Skan flag_inline_functions and flag_inline_trees to support -O3. 2068169689Skan (grokfndecl): Set DECL_INLINE on all functions if that's what 2069169689Skan the user requested. 2070169689Skan (save_function_data): Clear DECL_INLINE in 2071169689Skan current_function_cannot_inline is non-NULL. 2072169689Skan * decl2.c (flag_inline_trees): Update documentation. 2073169689Skan 2074169689Skan2001-05-03 Nathan Sidwell <nathan@codesourcery.com> 2075169689Skan 2076169689Skan * dump.c (cp_dump_tree, USING_STMT case): New case. 2077169689Skan * tree.c (cp_statement_code_p): Add USING_STMT. 2078169689Skan * decl2.c (do_using_directive): Add the using directive statement. 2079169689Skan 2080169689Skan * tree.c (walk_tree): Reformat an if block. 2081169689Skan 2082169689Skan2001-05-02 Mark Mitchell <mark@codesourcery.com> 2083169689Skan 2084169689Skan * decl.c (compute_array_index_type): Don't try to do anything with 2085169689Skan the indices when processing a template. 2086169689Skan 2087169689Skan2001-05-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2088169689Skan 2089169689Skan * call.c: NULL_PTR -> NULL. 2090169689Skan * class.c: Likewise. 2091169689Skan * cvt.c: Likewise. 2092169689Skan * decl.c: Likewise. 2093169689Skan * decl2.c: Likewise. 2094169689Skan * except.c: Likewise. 2095169689Skan * init.c: Likewise. 2096169689Skan * rtti.c: Likewise. 2097169689Skan * search.c: Likewise. 2098169689Skan * tree.c: Likewise. 2099169689Skan * typeck.c: Likewise. 2100169689Skan * typeck2.c: Likewise. 2101169689Skan 2102169689Skan2001-05-02 Mark Mitchell <mark@codesourcery.com> 2103169689Skan 2104169689Skan * decl2.c (do_using_directive): Revert previous patch. 2105169689Skan 2106169689Skan2001-05-01 Nathan Sidwell <nathan@codesourcery.com> 2107169689Skan 2108169689Skan * cp-tree.def (USING_STMT): New statement node. 2109169689Skan * cp-tree.h (USING_STMT_NAMESPACE): New macro. 2110169689Skan * decl2.c (do_using_directive): Add USING_STMT to statement 2111169689Skan tree. Don't emit errors when processing template decl. 2112169689Skan * pt.c (tsubst_expr, USING_STMT case): New case. 2113169689Skan * semantics.c (cp_expand_stmt, USING_STMT case): New case. 2114169689Skan 2115169689Skan2001-05-01 Nathan Sidwell <nathan@codesourcery.com> 2116169689Skan 2117169689Skan * call.c (build_new_op): Convert args from reference here. 2118169689Skan (build_conditional_expr): Don't convert here. 2119169689Skan 2120169689Skan2001-05-01 Nathan Sidwell <nathan@codesourcery.com> 2121169689Skan 2122169689Skan * spew.c (last_token_id): New static variable. 2123169689Skan (read_token): Set it here. 2124169689Skan (yyerror): Use it here. 2125169689Skan 2126169689Skan2001-04-30 Richard Henderson <rth@redhat.com> 2127169689Skan 2128169689Skan * cvt.c: Downcase C_PROMOTING_INTEGER_TYPE_P invocations. 2129169689Skan * decl.c: Likewise. 2130169689Skan 2131169689Skan2001-04-30 Mark Mitchell <mark@codesourcery.com> 2132169689Skan 2133169689Skan * gxxint.texi: Remove. 2134169689Skan * Make-lang.in: Remove all traces of gxxint.texi. 2135169689Skan 2136169689Skan2001-04-30 Mark P Mitchell <mark@codesourcery.com> 2137169689Skan 2138169689Skan * decl2.c (start_static_initialization_or_destruction): Correct 2139169689Skan logic to handle the -fno-use-cxa-atexit case. 2140169689Skan 2141169689Skan2001-04-30 Mark Mitchell <mark@codesourcery.com> 2142169689Skan 2143169689Skan * optimize.c (update_cloned_parm): New function. 2144169689Skan (maybe_clone_body): Use it. Update the `this' parameter too. 2145169689Skan 2146169689Skan2001-04-29 Joseph S. Myers <jsm28@cam.ac.uk> 2147169689Skan 2148169689Skan * decl2.c (unsupported_options): Add new-abi. 2149169689Skan * lang-options.h: Remove no longer supported options. 2150169689Skan 2151169689Skan2001-04-27 Nathan Sidwell <nathan@codesourcery.com> 2152169689Skan 2153169689Skan * except.c (can_convert_eh): Don't check template parms, 2154169689Skan typename types etc. 2155169689Skan 2156169689Skan2001-04-27 Nathan Sidwell <nathan@codesourcery.com> 2157169689Skan 2158169689Skan * optimize.c (maybe_clone_body): Copy parameter names and locations. 2159169689Skan 2160169689Skan2001-04-27 Nathan Sidwell <nathan@codesourcery.com> 2161169689Skan 2162169689Skan * cp-tree.h (adjust_clone_args): Prototype new function. 2163169689Skan * class.c (adjust_clone_args): New function. 2164169689Skan * decl.c (start_function): Call it for in charge ctors. 2165169689Skan 2166169689Skan2001-04-26 Mark Mitchell <mark@codesourcery.com> 2167169689Skan 2168169689Skan * method.c (use_thunk): Make sure that thunks really are emitted 2169169689Skan when requested. 2170169689Skan 2171169689Skan2001-04-26 Nathan Sidwell <nathan@codesourcery.com> 2172169689Skan 2173169689Skan * mangle.c (write_chars): New macro. 2174169689Skan (hwint_to_ascii): New function 2175169689Skan (write_number): Use it. 2176169689Skan (write_integer_cst): Deal with really big numbers. 2177169689Skan 2178169689Skan2001-04-25 Mark Mitchell <mark@codesourcery.com> 2179169689Skan 2180169689Skan * optimize.c (maybe_clone_body): Copy TREE_PUBLIC before emitting 2181169689Skan the clone. 2182169689Skan 2183169689Skan2001-04-25 Nathan Sidwell <nathan@codesourcery.com> 2184169689Skan 2185169689Skan * decl.c (grokdeclarator): Set context of namespace scope 2186169689Skan TYPE_DECLS. 2187169689Skan 2188169689Skan2001-04-24 Zack Weinberg <zackw@stanford.edu> 2189169689Skan 2190169689Skan * cp/optimize.c: Include hashtab.h. 2191169689Skan (struct inline_data): Add tree_pruner. 2192169689Skan (expand_call_inline, expand_calls_inline): Use it when calling 2193169689Skan walk_tree. 2194169689Skan (optimize_function): Initialize and free tree_pruner. 2195169689Skan 2196169689Skan2001-04-24 Nathan Sidwell <nathan@codesourcery.com> 2197169689Skan 2198169689Skan Lazy __FUNCTION__ generation. 2199169689Skan * cp-tree.def (FUNCTION_NAME): Remove. 2200169689Skan * cp-tree.h (function_name_declared_p): Remove. 2201169689Skan (cp_fname_init): Prototype. 2202169689Skan * decl.c (init_decl_processing): Don't generate __FUNCTION__ et al ids, 2203169689Skan don't call declare_function_name. Call start_fname_decls. 2204169689Skan (cp_make_fname_decl): Adjust parameters. Generate the name. Don't 2205169689Skan clobber the line number. 2206169689Skan (cp_fname_init): New function. 2207169689Skan (start_function): Call start_fname_decls. 2208169689Skan (finish_function): Call finish_fname_decls. 2209169689Skan * lex.c (reswords): Add slots for __FUNCTION__ et al. 2210169689Skan (rid_to_yy): Add mappings for __FUNCTION__ et al. 2211169689Skan * optimize.c (maybe_clone_body): Remove function_name_declared_p. 2212169689Skan * parse.y (VAR_FUNC_NAME): New token. 2213169689Skan (primary): Add VAR_FUNC_NAME. 2214169689Skan * pt.c (tsubst_decl): Adjust a DECL_PRETTY_FUNCTION_P's 2215169689Skan generation. 2216169689Skan (tsubst, FUNCTION_NAME case): Remove. 2217169689Skan (tsubst_copy, FUNCTION_NAME case): Remove. 2218169689Skan (tsubst_expr, DECL_STMT case): Be careful with a 2219169689Skan DECL_PRETTY_FUNCTION_P. 2220169689Skan (instantiate_decl): Remove function_name_declared_p. 2221169689Skan * semantics.c (begin_compound_statement): Don't call 2222169689Skan declare_function_name here. 2223169689Skan (setup_vtbl_ptr). Don't save & restore function_name_declared_p. 2224169689Skan (finish_translation_unit): Call finish_fname_decls. 2225169689Skan (expand_body): Remove function_name_declared_p. 2226169689Skan * typeck2.c (digest_init): Allow any ERROR_MARK. 2227169689Skan 2228169689Skan2001-04-24 Nathan Sidwell <nathan@codesourcery.com> 2229169689Skan 2230169689Skan * pt.c (tsubst_decl): Use VOID_TYPE_P. 2231169689Skan * semantics.c: Fix some typos. 2232169689Skan 2233169689Skan2001-04-23 Phil Edwards <pme@sources.redhat.com> 2234169689Skan 2235169689Skan * cp/decl2.c (flag_honor_std): Always initialize to 1. 2236169689Skan 2237169689Skan2001-04-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2238169689Skan 2239169689Skan * xref.c (GNU_xref_file): Use concat in lieu of xmalloc/sprintf. 2240169689Skan 2241169689Skan2001-04-23 Jason Merrill <jason_merrill@redhat.com> 2242169689Skan 2243169689Skan * except.c (build_throw): Wrap the initialization of the exception 2244169689Skan object in a MUST_NOT_THROW_EXPR. 2245169689Skan (do_free_exception): #if 0. 2246169689Skan 2247169689Skan2001-04-20 Mark Mitchell <mark@codesourcery.com> 2248169689Skan 2249169689Skan * cp-tree.h (finish_enum): Change prototype. 2250169689Skan * decl.c (finish_enum): Reorganize. 2251169689Skan * parse.y (structsp): Adjust calls to finish_enum. 2252169689Skan 2253169689Skan2001-04-20 Nathan Sidwell <nathan@codesourcery.com> 2254169689Skan 2255169689Skan * tree.c (cp_tree_equal): Adjust final switch formatting. Add 2256169689Skan 't' case. 2257169689Skan 2258169689Skan2001-04-20 Nathan Sidwell <nathan@codesourcery.com> 2259169689Skan 2260169689Skan * class.c (dfs_unshared_virtual_bases): Add ATTRIBUTE_UNUSED. 2261169689Skan (layout_empty_base): Return at end flag. 2262169689Skan (build_base_field): Likewise. 2263169689Skan (build_base_fields): Likewise. 2264169689Skan (layout_virtual_bases): Don't add 1 to eoc value. 2265169689Skan (end_of_class): Use full size for empty bases. 2266169689Skan (layout_class_type): Clear CLASSNEARLY_EMPTY_P if we appended 2267169689Skan empty bases. Don't add 1 to eoc value. Only add trailing padding 2268169689Skan if we're an empty class with no empty bases. 2269169689Skan (dump_class_hierarchy): Dump size and alignment. 2270169689Skan 2271169689Skan2001-04-20 Jakub Jelinek <jakub@redhat.com> 2272169689Skan 2273169689Skan * call.c (maybe_handle_ref_bind): Copy ICS_USER_FLAG and 2274169689Skan ICS_BAD_FLAG. 2275169689Skan 2276169689Skan2001-04-20 Jakub Jelinek <jakub@redhat.com> 2277169689Skan 2278169689Skan * search.c (lookup_field_r): If looking for type and non-TYPE_DECL 2279169689Skan is found, look first if name does not match the structure name. 2280169689Skan 2281169689Skan2001-04-19 Mark Mitchell <mark@codesourcery.com> 2282169689Skan 2283169689Skan * cp-tree.h (DECL_LANGUAGE): Don't assume DECL_LANG_SPECIFIC is 2284169689Skan set. 2285169689Skan (SET_DECL_LANGUAGE): New macro. 2286169689Skan * decl.c (duplicate_decls): Use SET_DECL_LANGUAGE. 2287169689Skan (pushdecl): Likewise. 2288169689Skan (build_library_fn_1): Likewise. 2289169689Skan (build_cp_library_fn): Likewise. 2290169689Skan (grokfndecl): Likewise. 2291169689Skan (grokvardecl): Mark `extern "C"' variables as having C linkage. 2292169689Skan * decl2.c (grokclassfn): Use SET_DECL_LANGUAGE. 2293169689Skan * lex.c (retrofit_lang_decl): Likewise. 2294169689Skan * mangle.c (mangle_decl_string): Don't mangle the names of 2295169689Skan variables declared with C language linkage. 2296169689Skan * semantics.c (finish_member_declaration): Use SET_DECL_LANGUAGE. 2297169689Skan 2298169689Skan2001-04-18 John David Anglin <dave@hiauly1.hia.nrc.ca> 2299169689Skan 2300169689Skan * semantics.c (simplify_aggr_init_exprs_r): Don't restore 2301169689Skan flag_access_control from uninitialized storage. 2302169689Skan 2303169689Skan2001-04-15 Mark Mitchell <mark@codesourcery.com> 2304169689Skan 2305169689Skan * cp-tree.h (TYPE_PTRMEM_CLASS_TYPE): Improve documentation. 2306169689Skan * mangle.c (write_pointer_to_member_type): Fix mangling of 2307169689Skan pointers to cv-qualified member function types. 2308169689Skan 2309169689Skan * init.c (build_delete): Create a SAVE_EXPR for the address if 2310169689Skan we're going to use it more than once. 2311169689Skan 2312169689Skan2001-04-13 Mark Mitchell <mark@codesourcery.com> 2313169689Skan 2314169689Skan * cp-tree.h (DELTA2_FROM_PTRMEMFUNC): Remove. 2315169689Skan (expand_ptremfunc_cst): Change prototype. 2316169689Skan (delta2_from_ptrmemfunc): Remove. 2317169689Skan * expr.c (cplus_expand_constant): Adjust call to 2318169689Skan expand_ptrmemfunc_cst. 2319169689Skan * typeck.c (build_ptrmemfunc1): Simplify. 2320169689Skan (build_ptrmemfunc): Make sure that casting a PTRMEM_CST still 2321169689Skan results in a constant. 2322169689Skan (expand_ptrmemfunc_cst): Remove idx and delta2 parameters. 2323169689Skan (delta2_from_ptrmemfunc): Remove. 2324169689Skan (pfn_from_ptrmemfunc): Adjust call to expand_ptrmemfunc_cst. 2325169689Skan 2326169689Skan2001-04-12 Jason Merrill <jason_merrill@redhat.com> 2327169689Skan 2328169689Skan * cp-tree.h (decl_namespace_list): New macro. 2329169689Skan (struct saved_scope): Add decl_ns_list. 2330169689Skan * decl.c (mark_saved_scope): Mark it. 2331169689Skan * decl2.c: Lose static decl_namespace_list. 2332169689Skan (init_decl2): Don't save it. 2333169689Skan 2334169689Skan2001-04-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2335169689Skan 2336169689Skan * cp-tree.h (warn_return_type, yylex): Delete redundant 2337169689Skan declarations. 2338169689Skan 2339169689Skan * decl.c (current_class_depth, global_namespace): Likewise. 2340169689Skan 2341169689Skan * decl2.c (current_class_depth, flag_gnu_xref): Likewise 2342169689Skan 2343169689Skan * repo.c (flag_use_repository): Likewise. 2344169689Skan 2345169689Skan2001-04-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2346169689Skan 2347169689Skan * cp-tree.h (pedantic, convert, global_bindings_p, insert_block, 2348169689Skan set_block, pushdecl, getdecls, gettags, init_decl_processing, 2349169689Skan maybe_build_cleanup, copy_lang_decl, prep_stmt, lvalue_p, 2350169689Skan lvalue_or_else, print_lang_statistics, comp_target_types, 2351169689Skan unsigned_type, signed_type, signed_or_unsigned_type, 2352169689Skan build_function_call, mark_addressable, incomplete_type_error): 2353169689Skan Delete redundant declarations. 2354169689Skan 2355169689Skan2001-04-11 Jason Merrill <jason_merrill@redhat.com> 2356169689Skan 2357169689Skan * cp-tree.h (TYPE_LINKAGE_IDENTIFIER): New macro. 2358169689Skan (TYPE_ANONYMOUS_P): New macro. 2359169689Skan (TAGGED_TYPE_P): New macro. 2360169689Skan * decl.c (check_tag_decl): Use TYPE_ANONYMOUS_P. 2361169689Skan (grokfndecl, grokvardecl, grokdeclarator): Likewise. 2362169689Skan * tree.c (no_linkage_helper): Likewise. 2363169689Skan * semantics.c (begin_class_definition): Likewise. 2364169689Skan * pt.c (convert_template_argument): Likewise. 2365169689Skan * lex.c (check_for_missing_semicolon): Likewise. 2366169689Skan 2367169689Skan2001-04-12 Nathan Sidwell <nathan@codesourcery.com> 2368169689Skan 2369169689Skan * class.c (dfs_unshared_virtual_bases): New function. 2370169689Skan (mark_primary_bases): Call it. 2371169689Skan (check_bases): Ignore virtual bases when determining 2372169689Skan nearly-emptiness. 2373169689Skan 2374169689Skan2001-04-12 Nathan Sidwell <nathan@codesourcery.com> 2375169689Skan 2376169689Skan * method.c (make_thunk): Clear DECL_CLONED_FUNCTION. 2377169689Skan 2378169689Skan2001-04-11 Mark Mitchell <mark@codesourcery.com> 2379169689Skan 2380169689Skan * optimize.c (maybe_clone_body): Copy DECL_NUM_STMTS from the 2381169689Skan cloned function to the clone. 2382169689Skan 2383169689Skan2001-04-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2384169689Skan 2385169689Skan * Make-lang.in (cp/semantics.o): Depend on $(EXPR_H). 2386169689Skan 2387169689Skan * semantics.c: Include expr.h. 2388169689Skan 2389169689Skan2001-04-11 Nathan Sidwell <nathan@codesourcery.com> 2390169689Skan 2391169689Skan * method.c (implicitly_declare_fn): Commonize code for copy ctor 2392169689Skan and assignment op. Set TREE_USED for parameter. 2393169689Skan 2394169689Skan2001-04-10 Mark Mitchell <mark@codesourcery.com> 2395169689Skan 2396169689Skan * class.c (find_final_overrider_data): Add `candidates'. 2397169689Skan (dfs_find_final_overrider): Don't issue error messages 2398169689Skan prematurely. 2399169689Skan (find_final_overrider): Issue error messages here. 2400169689Skan (build_base_field): Don't warn about amgibuous direct bases here. 2401169689Skan (warn_about_ambiguous_direct_bases): New function. 2402169689Skan (layout_class_type): Use it. 2403169689Skan 2404169689Skan2001-04-10 Richard Henderson <rth@redhat.com> 2405169689Skan 2406169689Skan * typeck.c (build_array_ref): Push the array reference inside 2407169689Skan COMPOUND_EXPR and COND_EXPR. 2408169689Skan 2409169689Skan2001-04-05 Mark Mitchell <mark@codesourcery.com> 2410169689Skan 2411169689Skan * cp-tree.h (DECL_THIS_INLINE): Rename to DECL_DECLARED_INLINE_P. 2412169689Skan * decl.c (duplicate_decls): Adjust accordingly. 2413169689Skan (maybe_commonize_var): Likewise. 2414169689Skan (grokfndecl): Likewise. 2415169689Skan (start_function): Likewise. 2416169689Skan (start_method): Likewise. 2417169689Skan * decl2.c (key_method): Likewise. 2418169689Skan (import_export_decl): Likewise. 2419169689Skan * method.c (implicitly_declare_fn): Likewise. 2420169689Skan * optimize.c (maybe_clone_body): Likewise. 2421169689Skan 2422169689Skan2001-04-05 Benjamin Kosnik <bkoz@redhat.com> 2423169689Skan 2424169689Skan * lang-specs.h: Add __DEPRECATED. 2425169689Skan 2426169689Skan2001-04-05 J"orn Rennecke <amylaar@redhat.com> 2427169689Skan 2428169689Skan * search.c (get_dynamic_cast_base_type): When building a new 2429169689Skan constant, set its type to ssizetype. 2430169689Skan 2431169689Skan2001-04-04 Jakub Jelinek <jakub@redhat.com> 2432169689Skan 2433169689Skan * optimize.c (expand_call_inline): Only add newly inlined statements 2434169689Skan into inlined_stmts. 2435169689Skan 2436169689Skan2001-04-03 Mark Mitchell <mark@codesourcery.com> 2437169689Skan 2438169689Skan * cp-tree.h (OPERATOR_ASSIGN_FORMAT): Remove. 2439169689Skan (OPERATOR_FORMAT): Likewise. 2440169689Skan (OPERATOR_TYPENAME_FORMAT): Likewise. 2441169689Skan * operators.def: Remove old name-mangling information. 2442169689Skan * decl.c (grok_op_properties): Adjust accordingly. 2443169689Skan * lex.c (init_operators): Likewise. 2444169689Skan * rtti.c (get_tinfo_decl): Issue error messages about types that 2445169689Skan have variable size. 2446169689Skan 2447169689Skan2001-04-03 Mark Mitchell <mark@codesourcery.com> 2448169689Skan 2449169689Skan * decl2.c (import_export_decl): Don't call import_export_class 2450169689Skan when processing an inline member function. 2451169689Skan * semantics.c (expand_body): Call import_export_decl before 2452169689Skan emitting inline functions. 2453169689Skan 2454169689Skan2001-03-28 Richard Henderson <rth@redhat.com> 2455169689Skan 2456169689Skan IA-64 ABI Exception Handling: 2457169689Skan * cp-tree.def (EH_SPEC_BLOCK): New. 2458169689Skan (MUST_NOT_THROW_EXPR): New. 2459169689Skan * cp-tree.h: Update changed function declarations. 2460169689Skan (CPTI_PUSH_EXCEPTION_IDENTIFIER): Remove. 2461169689Skan (CPTI_CALL_UNEXPECTED): New. 2462169689Skan (struct cp_language_function): Rename x_eh_spec_try_block 2463169689Skan to x_eh_spec_block. 2464169689Skan (EH_SPEC_STMTS, EH_SPEC_RAISES): New. 2465169689Skan * decl.c (current_binding_level): If no current function 2466169689Skan bindings, revert to scope_chain. 2467169689Skan (initialize_predefined_identifiers): Remove __cp_push_exception. 2468169689Skan (store_parm_decls): Use begin_eh_spec_block. 2469169689Skan (finish_function): Use finish_eh_spec_block. 2470169689Skan (mark_lang_function): Update for name changes. 2471169689Skan * decl2.c (finish_file): No mark_all_runtime_matches. 2472169689Skan * dump.c (cp_dump_tree): Handle new tree codes. 2473169689Skan * error.c (dump_expr) [BIND_EXPR]: Fix typo. 2474169689Skan * except.c (catch_language_init, catch_language): Remove. 2475169689Skan (init_exception_processing): Don't set language code. 2476169689Skan Initialize call_unexpected_node, protect_cleanup_actions, 2477169689Skan eh_personality_libfunc, lang_eh_runtime_type. 2478169689Skan (call_eh_info, push_eh_info, get_eh_info, get_eh_value): Remove. 2479169689Skan (get_eh_type, get_eh_caught, get_eh_handlers): Remove. 2480169689Skan (prepare_eh_type): Split out type canonicalizations ... 2481169689Skan (build_eh_type_type): ... from here. 2482169689Skan (build_eh_type_type_ref): Remove. 2483169689Skan (mark_all_runtime_matches): Remove. 2484169689Skan (build_exc_ptr): New. 2485169689Skan (do_begin_catch, do_end_catch): New. 2486169689Skan (do_pop_exception): Remove. 2487169689Skan (build_terminate_handler): Remove. 2488169689Skan (choose_personality_routine): Split out language choice from ... 2489169689Skan (initialize_handler_parm): ... here. 2490169689Skan Use MUST_NOT_THROW_EXPR. 2491169689Skan (expand_start_catch_block): Use do_begin_catch. Simplify Java 2492169689Skan exception object handling. 2493169689Skan (expand_start_eh_spec, expand_end_eh_spec): Remove. 2494169689Skan (expand_exception_blocks, alloc_eh_object): Remove. 2495169689Skan (begin_eh_spec_block, finish_eh_spec_block): New. 2496169689Skan (do_allocate_exception, do_free_exception): New. 2497169689Skan (expand_throw): Merge into ... 2498169689Skan (build_throw): ... here. Update for abi. 2499169689Skan * expr.c (cplus_expand_expr): No expand_internal_throw. 2500169689Skan Handle MUST_NOT_THROW_EXPR. 2501169689Skan * pt.c (tsubst_expr): Handle EH_SPEC_BLOCK. 2502169689Skan * semantics.c (*) Update for except.h name changes. 2503169689Skan (genrtl_try_block): No protect_with_terminate. 2504169689Skan (genrtl_eh_spec_block): New. 2505169689Skan (genrtl_handler): Don't emit the goto here. 2506169689Skan (cp_expand_stmt): Handle EH_SPEC_BLOCK. 2507169689Skan (genrtl_finish_function): Don't expand_exception_blocks. 2508169689Skan * tree.c (cp_statement_code_p): Handle EH_SPEC_BLOCK. 2509169689Skan 2510169689Skan2001-03-28 Richard Henderson <rth@redhat.com> 2511169689Skan 2512169689Skan * decl.c (struct named_label_list): Rename eh_region to 2513169689Skan in_try_scope, add in_catch_scope. 2514169689Skan (struct binding_level): Rename eh_region to is_try_scope, 2515169689Skan add is_catch_scope. 2516169689Skan (note_level_for_try): Rename from note_level_for_eh. 2517169689Skan (note_level_for_catch): New. 2518169689Skan (poplevel): Copy both is_try_scope and is_catch_scope to 2519169689Skan the named_label_list struct. 2520169689Skan (check_previous_goto_1): Don't check for catch block via 2521169689Skan DECL_ARTIFICIAL; use in_try_scope instead. 2522169689Skan (check_goto): Likewise. 2523169689Skan * cp-tree.h (note_level_for_try, note_level_for_catch): Declare. 2524169689Skan * except.c (expand_start_catch_block): Call note_level_for_catch. 2525169689Skan * semantics.c (begin_compound_stmt): Update for note_level_for_try. 2526169689Skan 2527169689Skan2001-03-27 Richard Henderson <rth@redhat.com> 2528169689Skan 2529169689Skan * except.c: Use USING_SJLJ_EXCEPTIONS instead of 2530169689Skan exceptions_via_longjmp. 2531169689Skan 2532169689Skan2001-03-27 Phil Edwards <pme@sources.redhat.com> 2533169689Skan 2534169689Skan * pt.c (check_default_tmpl_args): Make error messages clearer. 2535169689Skan 2536169689Skan2001-03-26 Phil Edwards <pme@sources.redhat.com> 2537169689Skan 2538169689Skan * error.c: Also undefine 'A' macro used for cp_printers definition. 2539169689Skan 2540169689Skan2001-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2541169689Skan 2542169689Skan * Make-lang.in: Depend on $(SYSTEM_H), not system.h. 2543169689Skan 2544169689Skan2001-03-26 Mike Yang <yang@research.att.com> 2545169689Skan Mark Mitchell <mark@codesourcery.com> 2546169689Skan 2547169689Skan * dump.c (dump_access): New function. 2548169689Skan (cp_dump_tree): Use it. Dump basetype information for class 2549169689Skan types. 2550169689Skan 2551169689Skan2001-03-26 Mark Mitchell <mark@codesourcery.com> 2552169689Skan 2553169689Skan * Makefile.in (optimize.o): Depend on params.h. 2554169689Skan (duplicate_decls): Copy DECL_NUM_STMTS, not DECL_FRAME_SIZE. 2555169689Skan (init_decl_processing): Set flag_no_inline when doing 2556169689Skan inlining-on-trees. 2557169689Skan * optimize.c: Include params.h. 2558169689Skan (struct inline_data): Improve documentation of FNS. Add 2559169689Skan FIRST_INLINED_FN, INLINED_STMTS, and CLONING_P. 2560169689Skan (INSNS_PER_STMT): New macro. 2561169689Skan (remap_block): Use CLONING_P. 2562169689Skan (inlinable_function_p): Don't inline big functions. 2563169689Skan (expand_call_inline): Keep track of how much inlining we've done. 2564169689Skan (optimize_function): Set FIRST_INLINED_FN. 2565169689Skan (maybe_clone_body): Set CLONING_P. 2566169689Skan * semantics.c (simplify_aggr_init_exprs_r): Fix typing problems in 2567169689Skan tree nodes. 2568169689Skan (genrtl_finish_function): Clear DECL_DEFER_OUTPUT before calling 2569169689Skan rest_of_compilation. Clear DECL_RTL for local variables 2570169689Skan afterwards. 2571169689Skan (clear_decl_rtl): New function. 2572169689Skan 2573169689Skan2001-03-26 Nathan Sidwell <nathan@codesourcery.com> 2574169689Skan 2575169689Skan Implement DR 209 2576169689Skan * cp-tree.h (skip_type_access_control, 2577169689Skan reset_type_access_control): Prototype. 2578169689Skan * decl.c (grokdeclarator): Access of friends is not checked. 2579169689Skan * parse.y (component_decl_list): Reset type access control. 2580169689Skan * semantics.c (decl_type_access_control): Clear 2581169689Skan current_type_lookups. 2582169689Skan (save_type_access_control): Don't save if not deferring. 2583169689Skan (skip_type_access_control, reset_type_access_control): New 2584169689Skan functions. 2585169689Skan (begin_class_definition): Do type access control for basetypes. 2586169689Skan Start deferred access control. 2587169689Skan (finish_class_definition): Resume immediate access control if 2588169689Skan this is a local class. 2589169689Skan 2590169689Skan2001-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2591169689Skan 2592169689Skan * class.c (add_method): Use memcpy/memmove, not bcopy. 2593169689Skan 2594169689Skan * decl.c (duplicate_decls): Likewise. 2595169689Skan 2596169689Skan2001-03-23 Jakub Jelinek <jakub@redhat.com> 2597169689Skan 2598169689Skan * mangle.c (write_discriminator): Use `_0' for discriminator 1, 2599169689Skan not `_'. 2600169689Skan 2601169689Skan2001-03-23 Jakub Jelinek <jakub@redhat.com> 2602169689Skan 2603169689Skan * decl.c (local_names): Define. 2604169689Skan (push_local_name): New. 2605169689Skan (grok_reference_init): Return init if initializing static reference 2606169689Skan variable with non-constant instead of emitting it. 2607169689Skan Move expand_static_init call to cp_finish_decl. 2608169689Skan (layout_var_decl): Call push_local_name. 2609169689Skan (maybe_commonize_var): Allow inlining functions even if they have 2610169689Skan static local variables, use comdat_linkage for them if flag_weak. 2611169689Skan (check_initializer): Call obscure_complex_init if 2612169689Skan grok_reference_init returned nonzero. 2613169689Skan (save_function_data): Clear x_local_names. 2614169689Skan (pop_cp_function_context): Free x_local_names. 2615169689Skan (mark_inlined_fns): Remove. 2616169689Skan (mark_lang_function): Mark x_local_names. 2617169689Skan (lang_mark_tree): Don't mark DECL_ACCESS for DECL_DISCRIMINATOR_P. 2618169689Skan Mark inlined_fns as tree, remove call to mark_inlined_fns. 2619169689Skan * class.c (alter_access): Ensure DECL_ACCESS is never set if 2620169689Skan DECL_DISCRIMINATOR_P. 2621169689Skan * cp-tree.h (cp_language_function): Add x_local_names. 2622169689Skan (lang_decl_flags): Add discriminator into u2. 2623169689Skan (lang_decl_inlined_fns): Remove. 2624169689Skan (lang_decl): inlined_fns is now a TREE_VEC. 2625169689Skan (DECL_DISCRIMINATOR_P, DECL_DISCRIMINATOR): Define. 2626169689Skan * optimize.c (inlinable_function_p): DECL_INLINED_FNS is now a 2627169689Skan TREE_VEC, not a custom structure. 2628169689Skan (optimize_function): Likewise. 2629169689Skan * mangle.c (discriminator_for_local_entity): Discriminate among 2630169689Skan VAR_DECL local entities. 2631169689Skan * search.c (dfs_access_in_type): If DECL_DISCRIMINATOR_P, DECL_ACCESS 2632169689Skan is not valid. 2633169689Skan 2634169689Skan2001-03-22 Bryce McKinlay <bryce@albatross.co.nz> 2635169689Skan 2636169689Skan Add support for Java interface method calls. 2637169689Skan * cp-tree.h (struct lang_type): Add java_interface flag. 2638169689Skan (TYPE_JAVA_INTERFACE): New macro. 2639169689Skan * tree.c (cp_valid_lang_attribute): Handle "java_interface" attribute 2640169689Skan by setting TYPE_JAVA_INTERFACE. 2641169689Skan * call.c (java_iface_lookup_fn): New static. 2642169689Skan (build_over_call): If calling a method declared in a 2643169689Skan TYPE_JAVA_INTERFACE, call build_java_interface_fn_ref to generate the 2644169689Skan expression which resolves the function address. 2645169689Skan (build_java_interface_fn_ref): New function. 2646169689Skan 2647169689Skan2001-03-22 Richard Henderson <rth@redhat.com> 2648169689Skan 2649169689Skan * Make-lang.in (cp/except.o): Don't depend on insn-flags.h. 2650169689Skan * except.c: Don't include it. 2651169689Skan 2652169689Skan2001-03-22 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> 2653169689Skan based on an idea from Joe Buck <jbuck@synopsys.com> 2654169689Skan 2655169689Skan * parse.y (bad_decl, template_arg_list_ignore, arg_list_ignore): 2656169689Skan New nonterminals. 2657169689Skan (data_def, component_decl): Add reductions to bad_decl. 2658169689Skan 2659169689Skan2001-03-22 Jakub Jelinek <jakub@redhat.com> 2660169689Skan 2661169689Skan * method.c (do_build_assign_ref): Don't use build_modify_expr for 2662169689Skan anonymous aggregates, since they don't have assignment operator 2663169689Skan method. 2664169689Skan * decl.c (fixup_anonymous_aggr): Disallow ctors, dtors and copy 2665169689Skan assignment operators for anonymous structure fields. 2666169689Skan 2667169689Skan2001-03-21 Jason Merrill <jason@redhat.com> 2668169689Skan 2669169689Skan * pt.c (instantiate_decl): Abort if we see a member constant 2670169689Skan instantiation that doesn't already have its initializer. 2671169689Skan Downgrade explicit instantiation without definition to pedwarn. 2672169689Skan 2673169689Skan * cp-tree.h (DECL_TINFO_FN_P, SET_DECL_TINFO_FN_P): Remove. 2674169689Skan * class.c (build_vtable_entry): Don't check DECL_TINFO_FN_P. 2675169689Skan (import_export_decl): Check tinfo_decl_p, not DECL_TINFO_FN_P. 2676169689Skan 2677169689Skan * cp-tree.h (CLASSTYPE_VTABLE_NEEDS_WRITING): Remove. 2678169689Skan (pending_vtables): Remove. 2679169689Skan * decl2.c (pending_vtables): Remove. 2680169689Skan (import_export_vtable): Use CLASSTYPE_INTERFACE_ONLY, not 2681169689Skan CLASSTYPE_VTABLE_NEEDS_WRITING. 2682169689Skan (import_export_class): Likewise. 2683169689Skan (init_decl2): Don't mark pending_vtables. 2684169689Skan * lex.c (handle_pragma_vtable): Just sorry. 2685169689Skan * pt.c (instantiate_class_template): Don't mess with 2686169689Skan CLASSTYPE_VTABLE_NEEDS_WRITING. 2687169689Skan (mark_class_instantiated): Likewise. 2688169689Skan * ptree.c (print_lang_type): Don't print it. 2689169689Skan * semantics.c (begin_class_definition): Don't set it. 2690169689Skan 2691169689Skan * pt.c (template_tail): Replace with last_pending_template. 2692169689Skan (maybe_templates, maybe_template_tail): Remove. 2693169689Skan (add_pending_template): Adjust. 2694169689Skan (instantiate_pending_templates): Adjust. 2695169689Skan 2696169689Skan * cp-tree.h (struct saved_scope): Remove lang_stack field. 2697169689Skan (current_lang_stack): Remove. 2698169689Skan * decl.c (maybe_push_to_top_level): Don't initialize it. 2699169689Skan (duplicate_decls): Use current_lang_depth. 2700169689Skan (xref_basetypes): Likewise. 2701169689Skan * class.c (current_lang_depth): New fn. 2702169689Skan (push_lang_context): Use more varray functionality. 2703169689Skan (pop_lang_context): Likewise. 2704169689Skan 2705169689Skan * error.c (GLOBAL_THING): Always use '__'. 2706169689Skan 2707169689Skan2001-03-21 Mark Mitchell <mark@codesourcery.com> 2708169689Skan 2709169689Skan * class.c (build_clone): Clear DECL_ASSEMBLER_NAME. 2710169689Skan 2711169689Skan * mangle.c (mangle_decl_string): Mangle the names of overloaded 2712169689Skan operators, even when they have `extern "C"' linkage. 2713169689Skan 2714169689Skan2001-03-19 Mark Mitchell <mark@codesourcery.com> 2715169689Skan 2716169689Skan * class.c (get_vtable_decl): Use SET_DECL_ASSEMBLER_NAME, 2717169689Skan COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME 2718169689Skan where it's not necessary. 2719169689Skan (add_method): Remove optimization involving comparison of 2720169689Skan DECL_ASSEMBLER_NAME. 2721169689Skan (build_vtbl_or_vbase_field): Use SET_DECL_ASSEMBLER_NAME, 2722169689Skan COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME 2723169689Skan where it's not necessary. 2724169689Skan (check_methods): Likewise. 2725169689Skan (build_clone): Likewise. 2726169689Skan (built_vtt): Likewise. 2727169689Skan * cp-tree.h (DECL_NEEDED_P): Likewise. 2728169689Skan * decl.c (pushtag): Likewise. 2729169689Skan (duplicate_decls): Likewise. 2730169689Skan (pushdecl): Likewise. 2731169689Skan (builtin_function): Likewise. 2732169689Skan (build_library_fn_1): Set DECL_LANGUAGE for library functions. 2733169689Skan (build_cp_library_fn): Likewise. 2734169689Skan (maybe_commonize_var): Use SET_DECL_ASSEMBLER_NAME, 2735169689Skan COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME 2736169689Skan where it's not necessary. 2737169689Skan (make_rtl_for_nonlocal_decl): Likewise. 2738169689Skan (cp_finish_decl): Likewise. 2739169689Skan (grokfndecl): Likewise. 2740169689Skan (grokvardecl): Likewise. 2741169689Skan (grokdeclarator): Likewise. 2742169689Skan (start_function): Likewise. 2743169689Skan (cp_missing_return_ok_p): Likewise. 2744169689Skan * decl2.c (grokclassfn): Likewise. 2745169689Skan (check_classfn): Likewise. 2746169689Skan (finish_static_data_member_decl): Likewise. 2747169689Skan (grokfield): Likewise. 2748169689Skan * error.c (GLOBAL_IORD_P): Remove. 2749169689Skan (dump_global_iord): Improve output. 2750169689Skan (dump_decl): Avoid using DECL_ASSEMBLER_NAME. 2751169689Skan * except.c (nothrow_libfn_p): Summarily reject any function not in 2752169689Skan namespace-scope. 2753169689Skan * init.c (build_java_class_ref): Don't explicitly set 2754169689Skan DECL_ASSEMBLER_NAME after calling mangle_decl. 2755169689Skan * mangle.c (mangle_decl_string): Handle extern "C" functions. 2756169689Skan (mangle_decl): Set the DECL_ASSEMBLER_NAME for the decl. 2757169689Skan * method.c (set_mangled_name_for_decl): Don't explicitly set 2758169689Skan DECL_ASSEMBLER_NAME after calling mangle_decl. 2759169689Skan (make_thunk): Explicitly set the DECL_ASSEMBLER_NAME and 2760169689Skan IDENTIFIER_GLOBAL_VALUE for the thunk. 2761169689Skan * pt.c (set_mangled_name_for_template_decl): Remove. 2762169689Skan (check_explicit_specialization): Don't use it. 2763169689Skan (looup_template_class): Don't set DECL_ASSEMBLER_NAME. 2764169689Skan (tsubst_friend_function): Likewise. 2765169689Skan (tsubst_decl): Likewise. 2766169689Skan (regenerate_decl_from_template): Use COPY_DECL_ASSEMBLER_NAME. 2767169689Skan * rtti.c (get_tinfo_decl): Use SET_DECL_ASSEMBLER_NAME, 2768169689Skan COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME 2769169689Skan where it's not necessary. 2770169689Skan (tinfo_base_init): Likewise. 2771169689Skan (create_real_tinfo_var): Likewise. 2772169689Skan * search.c (looup_field_1): Likewise. 2773169689Skan * semantics.c (finish_named_return_value): Likewise. 2774169689Skan * tree.c (init_tree): Set lang_set_decl_assembler_name. 2775169689Skan 2776169689Skan2001-03-15 Gabriel Dos Reis <gdr@codesourcery.com> 2777169689Skan 2778169689Skan Correct semantics restrictions checking in throw-expression. 2779169689Skan * except.c (is_admissible_throw_operand): New function. 2780169689Skan (build_throw): Use it. 2781169689Skan 2782169689Skan2001-03-14 Mark Mitchell <mark@codesourcery.com> 2783169689Skan 2784169689Skan * decl.c (cp_make_fnname_decl): Set DECL_IGNORED_P on __FUNCTION__ 2785169689Skan and its ilk. 2786169689Skan 2787169689Skan2001-03-14 Mark Mitchell <mark@codesourcery.com> 2788169689Skan 2789169689Skan * class.c (build_clone): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc. 2790169689Skan * cp-tree.h (DECL_IN_MEMORY_P): Likewise. 2791169689Skan * decl.c (duplicate_decls): Likewise. 2792169689Skan (builtin_function): Likewise. 2793169689Skan (build_library_fn): Likewise. 2794169689Skan (build_cp_library_fn): Likewise. 2795169689Skan (check_initializer): Likewise. 2796169689Skan (cp_finish_decl): Likewise. 2797169689Skan * decl2.c (grokfield): Likewise. 2798169689Skan (grok_function_init): Remove #if 0'd code. 2799169689Skan (finish_anon_union): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc. 2800169689Skan * friend.c (do_friend): Likewise. 2801169689Skan * init.c (get_temp_regvar): Likewise. 2802169689Skan * method.c (make_thunk): Likewise. 2803169689Skan * pt.c (tsubst_friend_function): Likewise. 2804169689Skan (tsubst_decl): Likewise. 2805169689Skan (regenerate_decl_from_template): Likewise. 2806169689Skan * semantics.c (genrtl_named_return_value): Likewise. 2807169689Skan (expand_body): Likewise. 2808169689Skan (genrtl_finish_function): Likewise. 2809169689Skan * tree.c (cp_tree_equal): Likewise. 2810169689Skan 2811169689Skan2001-03-12 Nathan Sidwell <nathan@codesourcery.com> 2812169689Skan 2813169689Skan * call.c (convert_like_real): Add extra semantics to INNER 2814169689Skan parameter. Don't convert to temporary if a user conversion 2815169689Skan gives us an lvalue that we're about to bind to a reference. 2816169689Skan Set INNER to indicate pending reference binding on recursive 2817169689Skan calls. 2818169689Skan 2819169689Skan2001-03-10 Neil Booth <neil@daikokuya.demon.co.uk> 2820169689Skan 2821169689Skan * cp/lex.c: Delete duplicate pending_lang_change. 2822169689Skan 2823169689Skan2001-03-10 Neil Booth <neil@daikokuya.demon.co.uk> 2824169689Skan 2825169689Skan * cp/lex.c (handle_pragma_interface, handle_pragma_implementation): 2826169689Skan Similarly. 2827169689Skan * cp/repo.c (get_base_filename, open_repo_file): Similarly. 2828169689Skan * cp/cp-tree.h: Remove file_name_nondirectory prototype. 2829169689Skan 2830169689Skan2001-03-09 Zack Weinberg <zackw@stanford.edu> 2831169689Skan 2832169689Skan * Make-lang.in: Add dependencies on $(TM_P_H) as appropriate. 2833169689Skan 2834169689Skan2001-03-08 Stan Shebs <shebs@apple.com> 2835169689Skan 2836169689Skan * cp-tree.h (set_identifier_local_value): Remove unused decl. 2837169689Skan 2838169689Skan2001-03-06 Zack Weinberg <zackw@stanford.edu> 2839169689Skan 2840169689Skan * spew.c: Remove references to CPP_OSTRING. 2841169689Skan 2842169689Skan2001-03-06 Andrew Haley <aph@redhat.com> 2843169689Skan 2844169689Skan * typeck.c (convert_arguments): Check that we have an fndecl. 2845169689Skan 2846169689Skan2001-03-05 Andrew Haley <aph@redhat.com> 2847169689Skan 2848169689Skan * typeck.c (convert_arguments): Don't do ellipsis conversion for 2849169689Skan __built_in_constant_p. 2850169689Skan 2851169689Skan2001-03-02 Nathan Sidwell <nathan@codesourcery.com> 2852169689Skan 2853169689Skan * typeck.c (build_static_cast): Allow enum to enum conversions 2854169689Skan as per DR 128. 2855169689Skan 2856169689Skan2001-03-02 Nathan Sidwell <nathan@codesourcery.com> 2857169689Skan 2858169689Skan * class.c (check_field_decls): Pointers to member do not a 2859169689Skan non-pod struct make, as per DR 148. 2860169689Skan 2861169689Skan2001-03-02 Nathan Sidwell <nathan@codesourcery.com> 2862169689Skan 2863169689Skan * call.c (joust): cp_pedwarn when using gnu extension concerning 2864169689Skan worst conversion sequences. 2865169689Skan 2866169689Skan2001-03-01 Zack Weinberg <zackw@stanford.edu> 2867169689Skan 2868169689Skan * decl.c: Replace all uses of 'boolean' with 'bool'. 2869169689Skan 2870169689Skan2001-03-01 Zack Weinberg <zackw@stanford.edu> 2871169689Skan 2872169689Skan * lang-specs.h: Add zero initializer for cpp_spec field to 2873169689Skan all array elements that need one. Don't put an #ifdef inside 2874169689Skan the initializer list; set a default for CPLUSPLUS_CPP_SPEC and 2875169689Skan use it. 2876169689Skan 2877169689Skan2001-03-01 Nathan Sidwell <nathan@codesourcery.com> 2878169689Skan 2879169689Skan Implement using decls inside template functions. 2880169689Skan * decl2.c (validate_nonmember_using_decl): Don't special case 2881169689Skan fake_std_node in the global namespace. Don't reject early when 2882169689Skan processing a template. 2883169689Skan (do_local_using_decl): Add to statement tree. Don't do further 2884169689Skan processing when building a template. 2885169689Skan * pt.c (tsubst_expr, DECL_STMT case): Deal with USING_DECLs. 2886169689Skan 2887169689Skan2001-03-01 Nathan Sidwell <nathan@codesourcery.com> 2888169689Skan 2889169689Skan * decl2.c (do_nonmember_using_decl): Don't complain if we find 2890169689Skan same function. Do complain about ambiguating extern "C" 2891169689Skan declarations. 2892169689Skan 2893169689Skan2001-02-28 Nathan Sidwell <nathan@codesourcery.com> 2894169689Skan 2895169689Skan Remove floating point and complex type template constant parms. 2896169689Skan * pt.c (convert_nontype_argument): Remove REAL_TYPE and 2897169689Skan COMPLEX_TYPE extensions. 2898169689Skan (invalid_nontype_parm_type_p): Likewise. 2899169689Skan 2900169689Skan2001-02-27 Jeffrey Oldham <oldham@codesourcery.com> 2901169689Skan 2902169689Skan * except.c (call_eh_info): Revert "match_function"'s type. 2903169689Skan 2904169689Skan2001-02-27 Nathan Sidwell <nathan@codesourcery.com> 2905169689Skan 2906169689Skan Fix ctor vtable vcall offsets. 2907169689Skan * class.c (struct vtbl_init_data_s): Add rtti_binfo member. 2908169689Skan (build_rtt_vtbl_entries): Lose RTTI_BINFO parameter. 2909169689Skan (get_matching_base): Remove. 2910169689Skan (get_original_base): New function. 2911169689Skan (build_vtbl_initializer): Initialize vid.rtti_binfo. 2912169689Skan Use a virtual thunk for a ctor vtable with an index 2913169689Skan (add_vcall_offset_vtbl_entries_1): Check if binfo has lost a 2914169689Skan primary base within a constructor vtable. Only set 2915169689Skan BV_VCALL_INDEX when not a constructor vtable. Adjust vcall offset 2916169689Skan when primary base has been lost. 2917169689Skan * cp-tree.h (BINFO_VIRTUALS): Remove ambiguity from comment. 2918169689Skan 2919169689Skan2001-02-26 Jeffrey Oldham <oldham@codesourcery.com> 2920169689Skan 2921169689Skan * call.c (joust): Ensure more_specialized()'s argument length 2922169689Skan parameter has correct value for constructors. 2923169689Skan 2924169689Skan2001-02-26 Nathan Sidwell <nathan@codesourcery.com> 2925169689Skan 2926169689Skan * except.c (call_eh_info): Cleanup generation of cp_eh_info struct. 2927169689Skan 2928169689Skan * decl.c (mark_inlined_fns): Prototype. 2929169689Skan 2930169689Skan2001-02-22 Mark Mitchell <mark@codesourcery.com> 2931169689Skan 2932169689Skan * spew.c (yylex): Correct handling of friends. 2933169689Skan 2934169689Skan2001-02-22 Mark Mitchell <mark@codesourcery.com> 2935169689Skan 2936169689Skan * mangle.c (write_encoding): Pass write_function_type the 2937169689Skan FUNCTION_DECL for the function being encoded. 2938169689Skan (write_function_type): Pass it along to write_bare_function_type. 2939169689Skan (write_bare_function_type): Pass it along to write_method_parms. 2940169689Skan (write_method_parms): Don't mangle the compiler-generated 2941169689Skan parameters to a constructor or destructor. 2942169689Skan 2943169689Skan2001-02-22 Andreas Jaeger <aj@suse.de> 2944169689Skan 2945169689Skan * optimize.c: Include toplev.h for 2946169689Skan note_deferral_of_defined_inline_function prototype. 2947169689Skan 2948169689Skan2001-02-22 Jakub Jelinek <jakub@redhat.com> 2949169689Skan 2950169689Skan * cp-tree.h (struct lang_decl_inlined_fns): New. 2951169689Skan (struct lang_decls): Add inlined_fns. 2952169689Skan (DECL_INLINED_FNS): New macro. 2953169689Skan * optimize.c (struct inline_data): Add inlined_fns. 2954169689Skan (declare_return_variable): Use VARRAY_ACTIVE_SIZE macro. 2955169689Skan (inlinable_function_p): Likewise, fix typo in comment, 2956169689Skan function is not inlinable if it already inlined function currently 2957169689Skan being optimized. 2958169689Skan (expand_call_inline): Add fn to inlined_fns if necessary. 2959169689Skan (optimize_function): Initialize inlined_fns. 2960169689Skan Save inlined_fns into DECL_INLINED_FNS after expanding inlines. 2961169689Skan * decl.c (mark_inlined_fns): New function. 2962169689Skan (lang_mark_tree): Call it. 2963169689Skan 2964169689Skan2001-02-21 Jason Merrill <jason@redhat.com> 2965169689Skan 2966169689Skan * cp-tree.h (struct lang_decl_flags): Remove uninlinable flag. 2967169689Skan (DECL_UNINLINABLE): Move to middle-end. 2968169689Skan 2969169689Skan * class.c (clone_function_decl): Set DECL_ABSTRACT on original fn. 2970169689Skan * decl.c (duplicate_decls): Preserve DECL_ABSTRACT. 2971169689Skan * class.c (build_clone): Set DECL_ABSTRACT_ORIGIN for the clone. 2972169689Skan * optimize.c (maybe_clone_body): Set DECL_ABSTRACT_ORIGIN for the 2973169689Skan parms and outer BLOCK. note_deferral_of_defined_inline_function. 2974169689Skan 2975169689Skan * method.c (implicitly_declare_fn): Don't set DECL_ARTIFICIAL on 2976169689Skan second parm of op=. 2977169689Skan 2978169689Skan2001-02-19 Mark Mitchell <mark@codesourcery.com> 2979169689Skan 2980169689Skan * decl2.c (set_decl_namespace): Allow explicit instantiations in 2981169689Skan any namespace. 2982169689Skan 2983169689Skan2001-02-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2984169689Skan 2985169689Skan * optimize.c (expand_call_inline): Don't walk subtrees of type 2986169689Skan nodes. 2987169689Skan 2988169689Skan2001-02-18 Mark Mitchell <mark@codesourcery.com> 2989169689Skan 2990169689Skan * class.c (add_vcall_offset_vtbl_entries_1): Only add one entry 2991169689Skan for a destructor. 2992169689Skan 2993169689Skan2001-02-18 Jason Merrill <jason@redhat.com> 2994169689Skan 2995169689Skan Do put the VTT parameter in DECL_ARGUMENTS. 2996169689Skan * cp-tree.h (struct cp_language_function): Add x_vtt_parm. 2997169689Skan (current_vtt_parm): New macro. 2998169689Skan (struct lang_decl_flags): Add has_vtt_parm_p, remove vtt_parm. 2999169689Skan (DECL_HAS_VTT_PARM_P): New macro. 3000169689Skan (DECL_VTT_PARM): Remove. 3001169689Skan (FUNCTION_FIRST_USER_PARMTYPE, FUNCTION_FIRST_USER_PARM): New macros. 3002169689Skan * decl.c (duplicate_decls): Only copy the operator code if 3003169689Skan appropriate. 3004169689Skan (start_function): Set current_vtt_parm. 3005169689Skan (lang_mark_tree): Don't mark vtt_parm. 3006169689Skan * decl2.c (maybe_retrofit_in_chrg): Do add the VTT parm to 3007169689Skan DECL_ARGUMENTS. Set DECL_HAS_VTT_PARM_P. 3008169689Skan * class.c (build_clone): Maybe remove the VTT parm. 3009169689Skan * optimize.c (maybe_clone_body): Set up the VTT parm. 3010169689Skan * pt.c (copy_default_args_to_explicit_spec): Preserve the VTT parm. 3011169689Skan * call.c (build_over_call): Just allow the VTT arg. 3012169689Skan * method.c (make_thunk): Don't set DECL_VTT_PARM. 3013169689Skan (do_build_copy_constructor): Use FUNCTION_FIRST_USER_PARM. 3014169689Skan (synthesize_method): Use FUNCTION_FIRST_USER_PARMTYPE. 3015169689Skan * decl.c (grokdeclarator, copy_args_p, grok_ctor_properties): Likewise. 3016169689Skan * error.c (dump_function_decl): Likewise. 3017169689Skan * call.c (build_user_type_conversion_1, convert_like_real): Abort 3018169689Skan if we try to call a constructor with in-charge or VTT parms. 3019169689Skan * method.c (skip_artificial_parms_for): New fn. 3020169689Skan * call.c (add_function_candidate, build_over_call): Call it. 3021169689Skan * call.c (build_new_method_call): Use current_vtt_parm. 3022169689Skan * init.c (expand_virtual_init): Likewise. 3023169689Skan * class.c (same_signature_p): No longer static. 3024169689Skan * cp-tree.h: Declare it. 3025169689Skan * search.c (look_for_overrides_r): Use it. 3026169689Skan 3027169689Skan2001-02-17 Mark Mitchell <mark@codesourcery.com> 3028169689Skan 3029169689Skan * cp-tree.h (new_abi_rtti_p): Remove. 3030169689Skan (name_mangling_version): Likewise. 3031169689Skan (flag_do_squangling): Likewise. 3032169689Skan * class.c (build_rtti_vtbl_entries): Remove old ABI support. 3033169689Skan * decl.c (grokfndecl): Likewise. 3034169689Skan * decl2.c (name_mangling_version): Remove. 3035169689Skan (flag_do_squangling): Likewise. 3036169689Skan (lang_f_options): Remove `squangle'. 3037169689Skan (unsupported_options): Add `squangle'. 3038169689Skan (cxx_decode_option): Issue a warning about uses of 3039169689Skan -fname-mangling-version. 3040169689Skan (finish_file): Remove old ABI support. 3041169689Skan * pt.c (check_explicit_specialization): Likewise. 3042169689Skan (tsubst_decl): Likewise. 3043169689Skan * rtti.c (init_rtti_processing): Likewise. 3044169689Skan (build_headof): Likewise. 3045169689Skan (get_tinfo_decl_dynamic): Likewise. 3046169689Skan (tinfo_from_decl): Likewise. 3047169689Skan (build_dynamic_cast_1): Likewise. 3048169689Skan (synthesize_tinfo_var): Likewise. 3049169689Skan * init.c (build_new): Allow enumeration types for the array-bounds 3050169689Skan in a direct-new-declarator. 3051169689Skan 3052169689Skan * semantics.c (finish_typeof): Resolve OFFSET_REFs. 3053169689Skan 3054169689Skan * pt.c (check_explicit_specialization): Copy TREE_PRIVATE and 3055169689Skan TREE_PROTECTED from the template being specialized. 3056169689Skan 3057169689Skan2001-02-17 Jason Merrill <jason@redhat.com> 3058169689Skan 3059169689Skan * decl2.c (build_artificial_parm): Set TREE_READONLY. 3060169689Skan 3061169689Skan * decl.c (bad_specifiers): Allow throw specs on things with 3062169689Skan pointer-to-function or -member-function type. 3063169689Skan * init.c (build_default_init): Don't use a CONSTRUCTOR to initialize 3064169689Skan a pmf. 3065169689Skan 3066169689Skan2001-02-17 Mark Mitchell <mark@codesourcery.com> 3067169689Skan 3068169689Skan * call.c (check_dtor_name): Handle template names correctly. 3069169689Skan 3070169689Skan2001-02-16 Jason Merrill <jason@redhat.com> 3071169689Skan 3072169689Skan * cp-tree.h (DECL_USE_VTT_PARM): Remove. 3073169689Skan * decl2.c (maybe_retrofit_in_chrg): Don't create it. 3074169689Skan * optimize.c (maybe_clone_body): Don't substitute it. 3075169689Skan * call.c (build_new_method_call): Check in_chrg instead. 3076169689Skan * init.c (expand_virtual_init): Likewise. 3077169689Skan 3078169689Skan2001-02-16 Gabriel Dos Reis <gdr@codesourcery.com> 3079169689Skan 3080169689Skan * decl.c (check_tag_decl): Make sure a typedef for an anonymous 3081169689Skan class-type introduces at least a type-name. 3082169689Skan 3083169689Skan2001-02-16 Jakub Jelinek <jakub@redhat.com> 3084169689Skan 3085169689Skan * call.c (convert_like_real): Create a temporary for non-lvalue. 3086169689Skan 3087169689Skan2001-02-16 Jeffrey Oldham <oldham@codesourcery.com> 3088169689Skan 3089169689Skan * cp-tree.h: Fix typos in comments. 3090169689Skan 3091169689Skan2001-02-16 Jason Merrill <jason@redhat.com> 3092169689Skan 3093169689Skan * optimize.c (remap_block): If we're compiling a clone, pass the 3094169689Skan new block to insert_block. 3095169689Skan 3096169689Skan2001-02-16 Mark Mitchell <mark@codesourcery.com> 3097169689Skan 3098169689Skan * semantics.c (finish_asm_stmt): Robustify. 3099169689Skan 3100169689Skan2001-02-15 Mark Mitchell <mark@codesourcery.com> 3101169689Skan 3102169689Skan * pt.c (push_template_decl_real): Don't remangle the name of a 3103169689Skan class template. 3104169689Skan 3105169689Skan2001-02-15 Jim Meyering <meyering@lucent.com> 3106169689Skan 3107169689Skan * Make-lang.in (c++.install-common): Depend on installdirs. 3108169689Skan (c++.install-info): Likewise. 3109169689Skan (c++.install-man): Likewise. 3110169689Skan 3111169689Skan2001-02-15 Mark Mitchell <mark@codesourcery.com> 3112169689Skan 3113169689Skan * typeck2.c (build_m_component_ref): Robustify. 3114169689Skan 3115169689Skan2001-02-15 Alexandre Oliva <aoliva@redhat.com> 3116169689Skan 3117169689Skan * friend.c (do_friend): Don't take the nested [template] class 3118169689Skan into account when deciding whether to warn about the friend 3119169689Skan function not referring to a template function. 3120169689Skan 3121169689Skan2001-02-14 Jakub Jelinek <jakub@redhat.com> 3122169689Skan 3123169689Skan * typeck.c (build_unary_op): Clarify error message. 3124169689Skan 3125169689Skan2001-02-08 Aldy Hernandez <aldyh@redhat.com> 3126169689Skan 3127169689Skan * parse.y (component_constructor_declarator): allow optional 3128169689Skan parentheses around constructor class name. 3129169689Skan 3130169689Skan2001-02-14 Nathan Sidwell <nathan@codesourcery.com> 3131169689Skan 3132169689Skan * cp-tree.h (setup_vtbl_ptr): Move prototype to semantics.c 3133169689Skan section. 3134169689Skan * init.c (emit_base_init): Remove incorrect comment about 3135169689Skan virtual bases. 3136169689Skan * method.c (make_thunk): Fix comment alignment. 3137169689Skan 3138169689Skan2001-02-14 Nathan Sidwell <nathan@codesourcery.com> 3139169689Skan 3140169689Skan Kill remnants of this is variable. 3141169689Skan * cp-tree.h (flag_this_is_variable): Remove. 3142169689Skan * decl2.c (flag_this_is_variable): Remove. 3143169689Skan * class.c (fixed_type_or_null): Add cdtor parm. Adjust. 3144169689Skan (build_vbase_path): The path is non-static, even in a cdtor. 3145169689Skan (resolves_to_fixed_type_p): Add additional return value. 3146169689Skan * search.c (init_vbase_pointers): Adjust. 3147169689Skan * tree.c (lvalue_p_1): Adjust. 3148169689Skan * typeck.c (mark_addressable): Adjust. 3149169689Skan 3150169689Skan2001-02-14 Nathan Sidwell <nathan@codesourcery.com> 3151169689Skan 3152169689Skan * pt.c (unify): Don't check cv quals of array types. 3153169689Skan 3154169689Skan2001-02-14 Nathan Sidwell <nathan@codesourcery.com> 3155169689Skan 3156169689Skan * tree.c (cp_build_qualified_type_real): Use CP_TYPE_QUALS to 3157169689Skan check whether we already have the type. 3158169689Skan 3159169689Skan2001-02-13 Mark Mitchell <mark@codesourcery.com> 3160169689Skan 3161169689Skan * cp-tree.h (CLASSTYPE_DESTRUCTORS): Fix typo in comment. 3162169689Skan * call.c (build_op_delete_call): Simplify to remove duplicate 3163169689Skan code. 3164169689Skan * class.c (clone_function_decl): Don't build the deleting variant 3165169689Skan of a non-virtual destructor. 3166169689Skan * decl.c (finish_destructor_body): Don't call delete if this is a 3167169689Skan non-virtual destructor. 3168169689Skan * init.c (build_delete): Explicitly call `operator delete' when 3169169689Skan deleting an object with a non-virtual destructor. 3170169689Skan 3171169689Skan2001-02-13 Jason Merrill <jason@redhat.com> 3172169689Skan 3173169689Skan * lang-specs.h: Add more __EXCEPTIONS. 3174169689Skan 3175169689Skan2001-02-12 Nathan Sidwell <nathan@codesourcery.com> 3176169689Skan 3177169689Skan * typeck2.c (process_init_constructor): Check 3178169689Skan TREE_HAS_CONSTRUCTOR before issuing missing init warning. 3179169689Skan 3180169689Skan2001-02-12 Nathan Sidwell <nathan@codesourcery.com> 3181169689Skan 3182169689Skan * pt.c (maybe_adjust_types_for_deduction, DEDUCE_ORDER case): 3183169689Skan Remove spurious information in comment. Allow further 3184169689Skan adjustments of REFERENCE_TYPE args. 3185169689Skan 3186169689Skan2001-02-12 Nathan Sidwell <nathan@codesourcery.com> 3187169689Skan 3188169689Skan * errfn.c (cp_deprecated): Tweak diagnostic text. 3189169689Skan * parse.y (new_initializer): Deprecate initializer lists 3190169689Skan extension. 3191169689Skan 3192169689Skan2001-02-12 Mark Mitchell <mark@codesourcery.com> 3193169689Skan 3194169689Skan Remove old ABI support. 3195169689Skan 3196169689Skan2001-02-11 Mark Mitchell <mark@codesourcery.com> 3197169689Skan 3198169689Skan * decl2.c (flag_vtable_thunks): Always set it to 1. 3199169689Skan (flag_new_abi): Likewise. 3200169689Skan * lang-specs.h: Remove conditional on ENABLE_NEW_GXX_ABI. 3201169689Skan 3202169689Skan * Makefile.in (g++spec.o): Fix typo. 3203169689Skan 3204169689Skan2001-02-09 Jason Merrill <jason@redhat.com> 3205169689Skan 3206169689Skan * lang-specs.h: Restore definition of __EXCEPTIONS. 3207169689Skan 3208169689Skan2001-02-08 Jason Merrill <jason@redhat.com> 3209169689Skan 3210169689Skan * search.c (shared_member_p): New function. 3211169689Skan (lookup_field_r): Use it. 3212169689Skan * cp-tree.h (SHARED_MEMBER_P): Remove. 3213169689Skan 3214169689Skan * method.c (process_overload_item): Handle template-dependent array 3215169689Skan bounds. 3216169689Skan * pt.c (type_unification_real): If we end up with undeduced nontype 3217169689Skan parms, try again. 3218169689Skan 3219169689Skan * decl.c (lookup_name_real): Tweak warning to refer to decls, not 3220169689Skan types. 3221169689Skan 3222169689Skan * typeck2.c (friendly_abort): Don't say anything if we have 3223169689Skan earlier errors or sorries. 3224169689Skan 3225169689Skan * decl.c (check_tag_decl): Notice attempts to redefine bool and 3226169689Skan wchar_t. Ignore if in_system_header. 3227169689Skan 3228169689Skan * decl.c (maybe_push_cleanup_level): New fn... 3229169689Skan (start_decl_1): ...split out from here. 3230169689Skan * cvt.c (build_up_reference): Use it. 3231169689Skan * cp-tree.h: Declare it. 3232169689Skan 3233169689Skan2001-02-07 Mark Mitchell <mark@codesourcery.com> 3234169689Skan 3235169689Skan * lang-specs.h: Use CPLUSPLUS_CPP_SPEC for the preprocessor 3236169689Skan spec. 3237169689Skan 3238169689Skan2001-02-06 Nathan Sidwell <nathan@codesourcery.com> 3239169689Skan 3240169689Skan * pt.c (lookup_template_class): Make sure it's a primary 3241169689Skan template or template_template_parm when called from the parser. 3242169689Skan (instantiate_template_class): Add assertion. 3243169689Skan 3244169689Skan2001-02-05 Alexandre Oliva <aoliva@redhat.com> 3245169689Skan 3246169689Skan * method.c (build_mangled_name) [old abi]: Protect flush_repeats() 3247169689Skan from error_mark_node. 3248169689Skan 3249169689Skan2001-02-05 Nathan Sidwell <nathan@codesourcery.com> 3250169689Skan 3251169689Skan Fix specification and implementation bugs in V3 ABI 3252169689Skan construction vtables. 3253169689Skan * cp-tree.h (flag_dump_class_layout): New flag. 3254169689Skan (BINFO_OVERRIDE_ALONG_VIRTUAL_PATH_P): Remove. 3255169689Skan (BINFO_LOST_PRIMARY_P): New flag. 3256169689Skan (SET_BINFO_NEW_VTABLE_MARKED): Adjust asserts. 3257169689Skan (BINFO_PRIMARY_MARKED_P): Rename to ... 3258169689Skan (BINFO_PRIMARY_P): ... here. 3259169689Skan (binfo_via_virtual): New prototype. 3260169689Skan * decl2.c (flag_dump_class_layout): New flag. 3261169689Skan (cxx_decode_option): Set it. Adjust -fdump-translation-unit to 3262169689Skan use `=' as a file name separator. 3263169689Skan * init.c (dfs_initialize_vtbl_ptrs): Walk into virtual primary 3264169689Skan bases. 3265169689Skan (build_vtbl_address): If this is a virtual primary base, then 3266169689Skan get the vtbl of what it is ultimately primary for. 3267169689Skan * search.c (dfs_skip_nonprimary_vbases_unmarkedp): Adjust 3268169689Skan for BINFO_PRIMARY_P. 3269169689Skan (dfs_skip_nonprimary_vbases_markedp): Likewise. 3270169689Skan (get_shared_vbase_if_not_primary): Likewise. 3271169689Skan (dfs_get_pure_virtuals): Likewise. 3272169689Skan (expand_upcast_fixups): Likewise. 3273169689Skan (fixup_virtual_upcast_offsets): Likewise. 3274169689Skan (dfs_find_vbase_instance): Likewise. 3275169689Skan (find_vbase_instance): Likewise. 3276169689Skan (binfo_from_vbase): Adjust comment to reflect reality. 3277169689Skan (binfo_via_virtual): New function. 3278169689Skan * class.c (VTT_TOP_LEVEL_P, VTT_MARKED_BINFO_P): New macros 3279169689Skan for binfo walking during VTT construction. 3280169689Skan (dfs_mark_primary_bases): Remove. 3281169689Skan (force_canonical_binfo_r): New function. 3282169689Skan (force_canonical_binfo): New function. 3283169689Skan (mark_primary_virtual_base): New function. 3284169689Skan (mark_primary_bases): Walk in inheritance graph order, use 3285169689Skan mark_primary_virtual_base. 3286169689Skan (determine_primary_base): Use some more intermediate variables. 3287169689Skan (dfs_find_final_overrider): Don't check for overriding along a 3288169689Skan virtual path. 3289169689Skan (dfs_modify_vtables): Walk into primary virtual bases too. 3290169689Skan (walk_subobject_offsets): Adjust for BINFO_PRIMARY_P. 3291169689Skan (build_base_fields): Likewise. 3292169689Skan (dfs_set_offset_for_unshared_vbases): Likewise. 3293169689Skan (layout_virtual_bases): Likewise. 3294169689Skan (end_of_class): Likewise. 3295169689Skan (finish_struct_1): Call dump_class_hierarchy, if requested. 3296169689Skan (dfs_get_primary_binfo): Use BINFO_TYPE for binfos. 3297169689Skan (dump_class_hierarchy_r): Add stream parameter. Emit more information. 3298169689Skan (dump_class_hierarchy): Add file parameter. Append to file, if 3299169689Skan required. 3300169689Skan (finish_vtbls): Adjust accumulate_vtbl_inits call. 3301169689Skan Use canonical base for virtual bases. 3302169689Skan (build_vtt): Add more comments. Adjust build_vtt_inits call. 3303169689Skan (build_vtt_inits): Remove VIRTUAL_VTTS_P parm. 3304169689Skan Only set BINFO_VPTR_INDEX on top level. Use VTT_TOP_LEVEL_P, 3305169689Skan VTT_MARKED_BINFO_P for binfo walking. Use canonical vbase for 3306169689Skan virtual VTTs. 3307169689Skan (dfs_build_secondary_vptr_vtt_inits): Extract VTT_TOP_LEVEL_P 3308169689Skan from DATA. We want virtual primary bases and all bases via virtual. 3309169689Skan Only set BINFO_VPTR_INDEX for top level. Look up from a primary 3310169689Skan virtual base when not a construction vtable. 3311169689Skan (dfs_ctor_vtable_bases_queue_p): New DFS predicate. 3312169689Skan (build_ctor_vtbl_group): Adjust accumulate_vtbl_inits call. 3313169689Skan Use canonical bases when processing virtual bases. 3314169689Skan (accumulate_vtbl_inits): We're interested in any base via a 3315169689Skan virtual path. 3316169689Skan (dfs_accumulate_vtbl_inits): If this is a primary virtual base 3317169689Skan within a construction vtable, determine what is being overridden. 3318169689Skan (build_vtbl_initializer): Add more comments 3319169689Skan (add_vcall_offset_vtbl_entries_1): Adjust comment. 3320169689Skan (build_rtti_vtbl_entries): Check if the base has lost its 3321169689Skan primary. 3322169689Skan 3323169689Skan2001-02-05 Mark Mitchell <mark@codesourcery.com> 3324169689Skan 3325169689Skan * Makefile.in (g++spec.o): Adjust use of DRIVER_DEFINES. 3326169689Skan 3327169689Skan2001-02-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 3328169689Skan 3329169689Skan * decl.c (pushdecl): Call abort instead of fatal. 3330169689Skan * except.c (decl_is_java_type): Call fatal_error instead of fatal. 3331169689Skan * init.c (build_new_1): Likewise. 3332169689Skan (build_java_class_ref): Call internal_error and fatal_error, not fatal. 3333169689Skan * decl.c (build_typename_type): hash_table_init now returns void. 3334169689Skan decl.c (init_decl_processing): Make an error non-fatal. 3335169689Skan 3336169689Skan2001-02-04 Mark Mitchell <mark@codesourcery.com> 3337169689Skan 3338169689Skan * cp-tree.h (CLASSTYPE_INTERFACE_UNKNOWN): Fix formatting. 3339169689Skan Document. 3340169689Skan (CLASSTYPE_INTERFACE_KNOWN): Likewise. 3341169689Skan (SET_CLASSTYPE_INTERFACE_UNKNOWN_X): Likewise. 3342169689Skan (SET_CLASSTYPE_INTERFACE_UNKNOWN): Likewise. 3343169689Skan (SET_CLASSTYPE_INTERFACE_KNOWN): Likewise. 3344169689Skan * decl.c (maybe_commonize_var): Use the new name-mangling where 3345169689Skan appropriate. 3346169689Skan * decl2.c (comdat_linkage): Enhance comments. Make all 3347169689Skan compiler-generated things static, if COMDAT is not available. 3348169689Skan (get_tinfo_decl): Do not make typeinfo objects that belong in the 3349169689Skan library COMDAT. 3350169689Skan (tinfo_base_init): Use the correct mangled name for typeinfo 3351169689Skan strings, and push them into the global scope. 3352169689Skan (typeinfo_in_lib_p): New function. 3353169689Skan (synthesize_tinfo_var): Use it. 3354169689Skan (create_real_tinfo_var): Likewise. 3355169689Skan 3356169689Skan2001-02-03 Jakub Jelinek <jakub@redhat.com> 3357169689Skan 3358169689Skan * decl.c (push_class_binding): Use context_for_name_lookup instead 3359169689Skan of CP_DECL_CONTEXT. 3360169689Skan * search.c (context_for_name_lookup): Remove static. Check for NULL 3361169689Skan context in the loop. 3362169689Skan * cp-tree.h (context_for_name_lookup): Add prototype. 3363169689Skan 3364169689Skan2001-02-02 Jakub Jelinek <jakub@redhat.com> 3365169689Skan 3366169689Skan * cp-tree.h (build_expr_ptr_wrapper, can_free): Remove. 3367169689Skan * tree.c (build_expr_ptr_wrapper, can_free, permanent_obstack): 3368169689Skan Remove. 3369169689Skan * call.c (convert_class_to_reference, build_user_type_conversion_1, 3370169689Skan add_warning): Change build_expr_ptr_wrapper to build_ptr_wrapper. 3371169689Skan 3372169689Skan2001-02-02 Mark Mitchell <mark@codesourcery.com> 3373169689Skan 3374169689Skan * Make-lang.in (g++spec.o): Add DRIVER_DEFINES to the list 3375169689Skan of macros used when compiling g++spec.c. 3376169689Skan * g++spec.c (lang_specific_driver): Link with the shared 3377169689Skan libgcc by default. 3378169689Skan 3379169689Skan2001-01-29 Joseph S. Myers <jsm28@cam.ac.uk> 3380169689Skan 3381169689Skan * decl2.c (build_expr_from_tree), lex.c (make_pointer_declarator, 3382169689Skan make_reference_declarator, make_call_declarator), method.c 3383169689Skan (implicitly_declare_fn), parse.y (namespace_using_decl, 3384169689Skan notype_unqualified_id, expr_or_declarator, new_type_id, 3385169689Skan after_type_declarator, direct_after_type_declarator, 3386169689Skan notype_declarator, complex_notype_declarator, 3387169689Skan complex_direct_notype_declarator, qualified_id, 3388169689Skan notype_qualified_id, overqualified_id, direct_new_declarator, 3389169689Skan absdcl, direct_abstract_declarator, conversion_declarator), pt.c 3390169689Skan (tsubst), semantics.c (begin_constructor_declarator): Use build_nt 3391169689Skan instead of build_parse_node. 3392169689Skan 3393169689Skan2001-01-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3394169689Skan 3395169689Skan * cp-tree.h (cp_tree_index): Delete CPTI_MINUS_ONE. 3396169689Skan (minus_one_node): Moved to top level gcc directory. Renamed 3397169689Skan to integer_minus_one_node. 3398169689Skan 3399169689Skan * init.c (init_init_processing): Don't set minus_one_node. 3400169689Skan (build_vec_init): Use integer_minus_one_node. 3401169689Skan 3402169689Skan * rtti.c (get_tinfo_decl_dynamic): Likewise. 3403169689Skan 3404169689Skan2001-01-28 Jakub Jelinek <jakub@redhat.com> 3405169689Skan 3406169689Skan * optimize.c (copy_body_r): If MODIFY_EXPR has both arguments 3407169689Skan identical and they would be replaced with constant, remove 3408169689Skan MODIFY_EXPR from the tree. 3409169689Skan 3410169689Skan2001-01-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3411169689Skan 3412169689Skan * Make-lang.in: Remove all dependencies on defaults.h. 3413169689Skan * call.c: Don't include defaults.h. 3414169689Skan * decl.c: Likewise. 3415169689Skan * decl2.c: Likewise. 3416169689Skan * except.c: Likewise. 3417169689Skan * pt.c: Likewise. 3418169689Skan * rtti.c: Likewise. 3419169689Skan * tree.c: Likewise. 3420169689Skan * typeck.c: Likewise. 3421169689Skan 3422169689Skan2001-01-25 Jakub Jelinek <jakub@redhat.com> 3423169689Skan 3424169689Skan * mangle.c (write_mangled_name, write_encoding): Mangle overloaded 3425169689Skan operators even in "C" linkage. 3426169689Skan * method.c (set_mangled_name_for_decl): Likewise. 3427169689Skan * decl.c (grokfndecl): Call set_mangled_name_for_decl even for 3428169689Skan overloaded operators in "C" linkage. 3429169689Skan 3430169689Skan2001-01-24 Nathan Sidwell <nathan@codesourcery.com> 3431169689Skan 3432169689Skan * pt.c (tsubst_decl): Remove IN_DECL parameter. 3433169689Skan (tsubst_arg_types): Check parameter is not void. 3434169689Skan (tsubst): Adjust tsubst_decl call. 3435169689Skan 3436169689Skan2001-01-24 Nathan Sidwell <nathan@codesourcery.com> 3437169689Skan 3438169689Skan * call.c (add_builtin_candidate): Quote std properly, from 3439169689Skan previous change. 3440169689Skan 3441169689Skan2001-01-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 3442169689Skan 3443169689Skan * pt.c (check_explicit_specialization): Clone constructors and 3444169689Skan destructors. 3445169689Skan 3446169689Skan2001-01-23 Nathan Sidwell <nathan@codesourcery.com> 3447169689Skan 3448169689Skan * decl.c (grokdeclarator): Don't presume DECL_LANG_SPECIFIC 3449169689Skan indicates anything special about template depth. Make sure we 3450169689Skan only count the user visible template classes. 3451169689Skan 3452169689Skan2001-01-23 Nathan Sidwell <nathan@codesourcery.com> 3453169689Skan 3454169689Skan * call.c (build_conv): Typo in comment. 3455169689Skan (add_builtin_candidate): Add more explanation. 3456169689Skan Remove extra test for ENUMERAL_TYPE in {PRE,POST}INCREMENT_EXPR. 3457169689Skan Allow ENUMERAL_TYPEs for relops and eqops. Add both candidates 3458169689Skan when we have enumeral types. 3459169689Skan (add_builtin_candidates): Add more explanation. Add ENUMERAL_TYPE 3460169689Skan candidates for relops and eqops. 3461169689Skan (joust): Simplify control flow. Allow a non-template user 3462169689Skan function to hide a builtin. 3463169689Skan 3464169689Skan2001-01-22 Nathan Sidwell <nathan@codesourcery.com> 3465169689Skan 3466169689Skan * cp-tree.h (unification_kind_t): Add DEDUCE_ORDER. 3467169689Skan (more_specialized): Add deduction parameter. 3468169689Skan * call.c (joust): Adjust more_specialized call. 3469169689Skan * pt.c (UNIFY_ALLOW_OUTER_MORE_CV_QUAL, 3470169689Skan UNIFY_ALLOW_OUTER_LESS_CV_QUAL): New unify flags. 3471169689Skan (get_bindings_order): Remove. 3472169689Skan (get_bindings_real): Add DEDUCE parameter. 3473169689Skan (maybe_adjust_types_for_deduction): Return extra unify flags. Do 3474169689Skan REFERENCE_TYPE jig for DEDUCE_ORDER. 3475169689Skan (type_unification_real): Deal with DEDUCE_ORDER. Use result of 3476169689Skan maybe_adjust_types_for_deduction. 3477169689Skan (more_specialized): Add DEDUCE parameter. Call get_bindings_real 3478169689Skan directly. 3479169689Skan (try_one_overload): Use result of maybe_adjust_types_for_deduction. 3480169689Skan (check_cv_quals_for_unify): Use new unify qualifier flags. 3481169689Skan (unify): Clear new unify qualifier flags. 3482169689Skan (get_bindings_real): Add DEDUCE parameter. 3483169689Skan (get_bindings): Adjust call to get_bindings_real. 3484169689Skan (get_bindings_overload): Likewise. 3485169689Skan (most_specialized_instantiation): Adjust call to 3486169689Skan more_specialized. 3487169689Skan 3488169689Skan2001-01-19 Jason Merrill <jason@redhat.com> 3489169689Skan 3490169689Skan * decl2.c (flag_vtable_thunks): Also depend on ENABLE_NEW_GXX_ABI. 3491169689Skan 3492169689Skan * decl.c (init_decl_processing): Just force -fvtable-thunks on if 3493169689Skan -fnew-abi. 3494169689Skan 3495169689Skan2001-01-19 Ute Pelkmann <scope.muc@t-online.de> 3496169689Skan 3497169689Skan * decl2.c (arg_assoc_class): Fix double iteration logic. 3498169689Skan 3499169689Skan2001-01-19 Jason Merrill <jason@redhat.com> 3500169689Skan 3501169689Skan * init.c (build_delete): Always call convert_force to strip cv-quals. 3502169689Skan 3503169689Skan * decl2.c (flag_new_abi): Depend on ENABLE_NEW_GXX_ABI. 3504169689Skan * lang-specs.h: Default ABI depends on ENABLE_NEW_GXX_ABI. 3505169689Skan * g++spec.c: Don't look at ENABLE_NEW_GXX_ABI. 3506169689Skan 3507169689Skan2001-01-19 Nathan Sidwell <nathan@codesourcery.com> 3508169689Skan 3509169689Skan * search.c (get_vbase_1): Count only virtual bases. 3510169689Skan 3511169689Skan2001-01-19 Nathan Sidwell <nathan@codesourcery.com> 3512169689Skan 3513169689Skan * class.c (duplicate_tag_error): Robustify flag clearing. 3514169689Skan 3515169689Skan2001-01-19 Nathan Sidwell <nathan@codesourcery.com> 3516169689Skan 3517169689Skan * cp-tree.h (lookup_template_class): Add complain parm. 3518169689Skan * decl.c (lookup_namespace_name): Adjust call to 3519169689Skan lookup_template_class. 3520169689Skan (make_typename_type): Likewise. 3521169689Skan * semantics.c (finish_template_type): Likewise. 3522169689Skan * pt.c (lookup_template_class): Add complain parm. Adjust. 3523169689Skan (tsubst_aggr_type): Pass COMPLAIN down to lookup_template_class. 3524169689Skan (tsubst): Likewise. 3525169689Skan 3526169689Skan2001-01-19 Nathan Sidwell <nathan@codesourcery.com> 3527169689Skan 3528169689Skan * pt.c (copy_default_args_to_explicit_spec): Preserve 3529169689Skan object's CV quals. Reorganize. 3530169689Skan 3531169689Skan2001-01-18 Nathan Sidwell <nathan@codesourcery.com> 3532169689Skan 3533169689Skan * typeck.c (build_modify_expr): Say `initialization' for 3534169689Skan INIT_EXPRs. 3535169689Skan * init.c (build_default_init): Convert to enumeral type, if 3536169689Skan needed. 3537169689Skan 3538169689Skan2001-01-18 Jakub Jelinek <jakub@redhat.com> 3539169689Skan 3540169689Skan * parse.y (nomods_initdcl0): Properly set things up for 3541169689Skan initdcl0_innards. 3542169689Skan 3543169689Skan2001-01-18 Nathan Sidwell <nathan@codesourcery.com> 3544169689Skan 3545169689Skan * pt.c (UNIFY_ALLOW_OUTER_LEVEL): New unify flag. 3546169689Skan (type_unification_real): Set it. 3547169689Skan (unify): Use it. 3548169689Skan 3549169689Skan2001-01-18 Nathan Sidwell <nathan@codesourcery.com> 3550169689Skan 3551169689Skan * decl.c (finish_destructor_body): Convert to vbase pointer here. 3552169689Skan 3553169689Skan2001-01-18 Nathan Sidwell <nathan@codesourcery.com> 3554169689Skan 3555169689Skan * semantics.c (begin_class_definition): Check we're not inside a 3556169689Skan template parm list. 3557169689Skan 3558169689Skan2001-01-18 Nathan Sidwell <nathan@codesourcery.com> 3559169689Skan 3560169689Skan * tree.c (walk_tree, TREE_LIST): Don't walk the TREE_PURPOSE of 3561169689Skan BASELINK_P. 3562169689Skan 3563169689Skan2001-01-16 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 3564169689Skan 3565169689Skan * typeck.c (build_function_call_real): Call fold on the CALL_EXPR. 3566169689Skan * call.c (build_over_call): Add comment. 3567169689Skan 3568169689Skan2001-01-16 Daniel Berlin <dberlin@redhat.com> 3569169689Skan 3570169689Skan * cvt.c (ocp_convert): Handle vector type conversion 3571169689Skan * typeck2.c (digest_init): Handle vector type initializations 3572169689Skan 3573169689Skan2001-01-16 Phil Edwards <pme@sources.redhat.com> 3574169689Skan 3575169689Skan * g++spec.c: Don't add libraries needlessly if -fsyntax-only 3576169689Skan was given. 3577169689Skan 3578169689Skan2001-01-15 Nathan Sidwell <nathan@codesourcery.com> 3579169689Skan 3580169689Skan * pt.c (check_nontype_parm): Rename to ... 3581169689Skan (invalid_nontype_parm_type_p): ... here. 3582169689Skan (process_template_parm): Adjust. 3583169689Skan (convert_template_argument): Adjust. 3584169689Skan 3585169689Skan2001-01-15 Nathan Sidwell <nathan@codesourcery.com> 3586169689Skan 3587169689Skan * pt.c (check_nontype_parm): New function. 3588169689Skan (process_template_parm): Use it. 3589169689Skan (convert_template_argument): Use it. 3590169689Skan (convert_nontype_argument, RECORD_TYPE): Assert it's a ptr to 3591169689Skan member. 3592169689Skan 3593169689Skan2001-01-14 Jeffrey Oldham <oldham@codesourcery.com> 3594169689Skan 3595169689Skan * tree.c: Add defaults.h 3596169689Skan (cp_valid_lang_attribute): Incorporate SUPPORTS_INIT_PRIORITY. 3597169689Skan * Make-lang.in (cp/tree.o): Add defaults.h. 3598169689Skan 3599169689Skan2001-01-13 Joseph S. Myers <jsm28@cam.ac.uk> 3600169689Skan 3601169689Skan * Make-lang.in (CXX_C_OBJS): Add c-format.o. 3602169689Skan 3603169689Skan2001-01-13 Joseph S. Myers <jsm28@cam.ac.uk> 3604169689Skan 3605169689Skan * g++.1: Change to be ".so man1/gcc.1". 3606169689Skan 3607169689Skan2001-01-13 Joseph S. Myers <jsm28@cam.ac.uk> 3608169689Skan 3609169689Skan * Make-lang.in (c++.info, c++.install-info): Build and install g++ 3610169689Skan internals info. 3611169689Skan (c++.uninstall, c++.maintainer-clean): Remove g++ internals info. 3612169689Skan ($(srcdir)/cp/g++int.info): New target. 3613169689Skan * gxxint.texi: Add info directory entry. Use @@ in email address. 3614169689Skan * .cvsignore: Update. 3615169689Skan 3616169689Skan2001-01-12 Nathan Sidwell <nathan@codesourcery.com> 3617169689Skan 3618169689Skan * typeck.c (build_c_cast): Do template processing earlier. 3619169689Skan Always pedwarn on array casts. 3620169689Skan 3621169689Skan2001-01-12 Nathan Sidwell <nathan@codesourcery.com> 3622169689Skan 3623169689Skan * friend.c (make_friend_class): Make sure a templated class is 3624169689Skan actually a template. 3625169689Skan 3626169689Skan2001-01-11 Nathan Sidwell <nathan@codesourcery.com> 3627169689Skan 3628169689Skan * decl2.c (get_guard): Set linkage from guarded decl. 3629169689Skan 3630169689Skan2001-01-11 Nathan Sidwell <nathan@codesourcery.com> 3631169689Skan 3632169689Skan * call.c (convert_default_arg): Check for unprocessed 3633169689Skan DEFAULT_ARG. 3634169689Skan * cp-tree.h (replace_defarg): Move to spew.c. 3635169689Skan (maybe_snarf_defarg, add_defarg_fn, do_pending_defargs): Move to 3636169689Skan spew.c, which is where they really are. 3637169689Skan (done_pending_defargs): Declare. 3638169689Skan (unprocessed_defarg_fn): Declare. 3639169689Skan * decl.c (replace_defarg): Move to spew.c 3640169689Skan * parse.y (structsp): Call done_pending_defargs. 3641169689Skan * spew.c (defarg_fns): Rearrange list structure. 3642169689Skan (defarg_fnsdone): New static variable. 3643169689Skan (defarg_depfns): New static variable. 3644169689Skan (init_spew): Adjust. 3645169689Skan (add_defarg_fn): Store the type in TREE_TYPE. 3646169689Skan (do_pending_defargs): Detect and deal with ordering constraints 3647169689Skan and circularity. 3648169689Skan (done_pending_defargs): New function. 3649169689Skan (unprocessed_defarg_fn): New function. 3650169689Skan (replace_defarg): Moved from decl.c. Robustify. Don't save 3651169689Skan if circularity detected. 3652169689Skan 3653169689Skan2001-01-11 Nathan Sidwell <nathan@codesourcery.com> 3654169689Skan 3655169689Skan * pt.c (unify): Check array has a domain, before checking 3656169689Skan whether it is variable sized. 3657169689Skan 3658169689Skan2001-01-11 Nathan Sidwell <nathan@codesourcery.com> 3659169689Skan 3660169689Skan * decl.c (grokparms): Unobfuscate and get correct diagnostic for 3661169689Skan parameters with pointers to arrays of unknown bound. 3662169689Skan 3663169689Skan2001-01-11 Nathan Sidwell <nathan@codesourcery.com> 3664169689Skan 3665169689Skan * parse.y (template_parm_header, template_spec_header): New 3666169689Skan reductions. Split out from ... 3667169689Skan (template_header): ... here. Use them. 3668169689Skan (template_template_parm): Use template_parm_header. 3669169689Skan * semantics.c (finish_template_template_parm): Add assert. 3670169689Skan 3671169689Skan2001-01-10 Mark Mitchell <mark@codesourcery.com> 3672169689Skan 3673169689Skan * mangle.c (write_builtin_type): Fix thinko. 3674169689Skan 3675169689Skan * pt.c (copy_default_args_to_explicit_spec_1): New function. 3676169689Skan (copy_default_args_to_explicit_spec): Likewise. 3677169689Skan (check_explicit_specialization): Use it. 3678169689Skan 3679169689Skan * class.c (finish_struct_1): Remove last argument in call to 3680169689Skan make_decl_rtl; use make_function_rtl instead of make_decl_rtl. 3681169689Skan * decl.c (builtin_function): Likewise. 3682169689Skan (build_cp_library_fn): Likewise. 3683169689Skan (check_initializer): Likewise. 3684169689Skan (make_rtl_for_nonlocal_decl): Likewise. 3685169689Skan (cp_finish_decl): Likewise. 3686169689Skan (start_function): Likewise. 3687169689Skan * decl2.c (finish_anon_union): Likewise. 3688169689Skan * friend.c (do_friend): Likewise. 3689169689Skan * init.c (build_java_class_ref): Likewise. 3690169689Skan * method.c (make_thunk): Likewise. 3691169689Skan * pt.c (tsubst_friend_function): Likewise. 3692169689Skan * semantics.c (expand_body): Likewise. 3693169689Skan 3694169689Skan2001-01-10 Mark Mitchell <mark@codesourcery.com> 3695169689Skan 3696169689Skan * cp-tree.h (DECL_CLONED_FUNCTION_P): Avoid wild reads by not 3697169689Skan looking at DECL_CLONED_FUNCTION for non-functions. 3698169689Skan 3699169689Skan2001-01-10 Nathan Sidwell <nathan@codesourcery.com> 3700169689Skan 3701169689Skan * error.c (dump_template_parameter): Use parm to determine how 3702169689Skan to print default value. 3703169689Skan 3704169689Skan2001-01-10 Nathan Sidwell <nathan@codesourcery.com> 3705169689Skan 3706169689Skan * class.c (duplicate_tag_error): Clear more flags. 3707169689Skan 3708169689Skan2001-01-10 Nathan Sidwell <nathan@codesourcery.com> 3709169689Skan 3710169689Skan * call.c (build_new_method_call): Use binfo_for_vbase. 3711169689Skan 3712169689Skan2001-01-10 Joseph S. Myers <jsm28@cam.ac.uk> 3713169689Skan 3714169689Skan * cp-tree.h (flag_cond_mismatch): Don't declare. 3715169689Skan * decl2.c (flag_cond_mismatch): Don't define. 3716169689Skan (lang_f_options): Remove cond-mismatch. 3717169689Skan (unsupported_options): Add cond-mismatch. 3718169689Skan 3719169689Skan2001-01-09 Nathan Sidwell <nathan@codesourcery.com> 3720169689Skan 3721169689Skan * class.c (handle_using_decl): Reject using of constructor name 3722169689Skan of sourcing class. Allow injecting of a method with same name as 3723169689Skan nested class. Fixup error messages. 3724169689Skan 3725169689Skan2001-01-09 Joseph S. Myers <jsm28@cam.ac.uk> 3726169689Skan 3727169689Skan * decl2.c (lang_decode_option): Handle -Wformat=2. 3728169689Skan 3729169689Skan2001-01-08 Nathan Sidwell <nathan@codesourcery.com> 3730169689Skan 3731169689Skan * cp-tree.h (lang_decl_flags): Rename defined_in_class to 3732169689Skan initialized_in_class. 3733169689Skan (DECL_DEFINED_IN_CLASS_P): Rename to ... 3734169689Skan (DECL_INITIALIZED_IN_CLASS_P): ... here, to reflect true meaning. 3735169689Skan * decl.c (duplicate_decls): Preseve DECL_INITIALIZED_IN_CLASS_P. 3736169689Skan (cp_finish_decl): Adjust for DECL_INITIALIZED_IN_CLASS_P. 3737169689Skan * pt.c (check_default_tmpl_args): Adjust for 3738169689Skan DECL_INITIALIZED_IN_CLASS_P. 3739169689Skan (instantiate_class_template): Likewise. 3740169689Skan (instantiate_decl): Check DECL_INITIALIZED_IN_CLASS_P. 3741169689Skan 3742169689Skan * class.c (finish_struct): Constify saved_filename. 3743169689Skan 3744169689Skan2001-01-08 Nathan Sidwell <nathan@codesourcery.com> 3745169689Skan 3746169689Skan * class.c (duplicate_tag_error): Adjust diagnostic. 3747169689Skan (finish_struct): Locally set location to start of struct. 3748169689Skan * decl.c (fixup_anonymous_aggr): Use cp_error_at. 3749169689Skan 3750169689Skan2001-01-08 Nathan Sidwell <nathan@codesourcery.com> 3751169689Skan 3752169689Skan * decl.c (struct binding_level): Adjust class_shadowed comments 3753169689Skan to reflect reality. 3754169689Skan (push_class_level_binding): Adjust comments to reflect reality. 3755169689Skan Set IDENTIFIER_CLASS_VALUE when replacing an existing binding. 3756169689Skan Don't set TREE_VALUE on the class_shadowed list. 3757169689Skan 3758169689Skan2001-01-07 Alexandre Petit-Bianco <apbianco@cygnus.com> 3759169689Skan 3760169689Skan * decl2.c (acceptable_java_type): Allow references too. 3761169689Skan * init.c (build_java_class_ref): When using the new ABI, search 3762169689Skan `class$' and have it mangled with `mangle_decl.' 3763169689Skan * mangle.c (write_java_integer_type_codes): New function. 3764169689Skan (write_builtin_type): Detect and mangle Java integer and real 3765169689Skan types. 3766169689Skan 3767169689Skan2001-01-07 Mark Mitchell <mark@codesourcery.com> 3768169689Skan 3769169689Skan * decl2.c (grokfield): Don't accept `asm' specifiers for 3770169689Skan non-static data members. 3771169689Skan 3772169689Skan2001-01-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3773169689Skan 3774169689Skan * expr.c (cplus_expand_expr): Don't reset `target'. 3775169689Skan 3776169689Skan2001-01-07 Neil Booth <neil@daikokuya.demon.co.uk> 3777169689Skan 3778169689Skan * cp/decl2.c (cxx_post_options): Call cpp_post_options. 3779169689Skan 3780169689Skan2001-01-05 Nathan Sidwell <nathan@codesourcery.com> 3781169689Skan 3782169689Skan * parse.y (template_datadef): Check for error_mark_node. 3783169689Skan 3784169689Skan2001-01-05 Nathan Sidwell <nathan@codesourcery.com> 3785169689Skan 3786169689Skan * cp-tree.def (DEFAULT_ARG): Make `x' class. 3787169689Skan 3788169689Skan2001-01-04 Joseph S. Myers <jsm28@cam.ac.uk> 3789169689Skan 3790169689Skan * decl.c (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE): Don't define. 3791169689Skan (record_builtin_type): Make non-static. 3792169689Skan (flag_short_double): Don't declare. 3793169689Skan (init_decl_processing): Remove the creation of many tree nodes now 3794169689Skan in c_common_nodes_and_builtins. 3795169689Skan (build_void_list_node): New function. 3796169689Skan * decl2.c (flag_short_double, flag_short_wchar): Don't define. 3797169689Skan * cp-tree.h (flag_short_wchar): Don't declare. 3798169689Skan 3799169689Skan2001-01-04 Mark Mitchell <mark@codesourcery.com> 3800169689Skan 3801169689Skan * call.c (build_conv): Don't use build1 for USER_CONV. 3802169689Skan * pt.c (tsubst_copy): Or for PREINCREMENT_EXPR and similar nodes. 3803169689Skan 3804169689Skan2001-01-03 Joseph S. Myers <jsm28@cam.ac.uk> 3805169689Skan 3806169689Skan * lex.c (lang_init): Call c_common_lang_init. 3807169689Skan 3808169689Skan2001-01-03 Nathan Sidwell <nathan@codesourcery.com> 3809169689Skan 3810169689Skan * search.c (lookup_fnfields_here): Remove. 3811169689Skan (look_for_overrides_r): Use lookup_fnfields_1. 3812169689Skan Ignore functions from using declarations. 3813169689Skan 3814169689Skan2001-01-03 Nathan Sidwell <nathan@codesourcery.com> 3815169689Skan 3816169689Skan Implement exceptions specifiers for implicit member functions. 3817169689Skan * cp-tree.h (merge_exceptions_specifiers): Declare new function. 3818169689Skan * method.c (synthesize_exception_spec): New function. 3819169689Skan (locate_dtor, locate_ctor, locate_copy): New functions. 3820169689Skan (implicitly_declare_fn): Generate the exception spec too. 3821169689Skan * search.c (check_final_overrider): Check artificial functions 3822169689Skan too. 3823169689Skan * typeck2.c (merge_exception_specifiers): New function. 3824169689Skan 3825169689Skan2001-01-03 Jason Merrill <jason@redhat.com> 3826169689Skan 3827169689Skan * init.c (build_default_init): New fn. 3828169689Skan (perform_member_init): Split out from here. 3829169689Skan (build_new_1): Use it. Simplify initialization logic. 3830169689Skan (build_vec_init): Take an array, rather than a pointer and maxindex. 3831169689Skan Speed up simple initializations. Don't clean up if we're assigning. 3832169689Skan * cp-tree.h: Adjust. 3833169689Skan * decl2.c (do_static_initialization): Remove TREE_VEC case. 3834169689Skan * parse.y (new_initializer): Return void_zero_node for (). 3835169689Skan * typeck.c (build_modify_expr): Handle getting a CONSTRUCTOR. 3836169689Skan * typeck2.c (digest_init): Only complain about user-written 3837169689Skan CONSTRUCTORs. 3838169689Skan 3839169689Skan2000-12-22 Mike Stump <mrs@wrs.com> 3840169689Skan 3841169689Skan * decl2.c: (max_tinst_depth): Increase to 50. 3842169689Skan 3843169689Skan2001-01-02 Mark Mitchell <mark@codesourcery.com> 3844169689Skan 3845169689Skan * class.c (invalidate_class_lookup_cache): Zero the 3846169689Skan previous_class_values. 3847169689Skan * cp-tree.h (TMPL_PARMS_DEPTH): Use TREE_INT_CST_LOW, not 3848169689Skan TREE_INT_CST_HIGH. 3849169689Skan (CLASSTYPE_TEMPLATE_LEVEL): Likewise. 3850169689Skan * decl.c (free_bindings): New variable. 3851169689Skan (push_binding): Don't create a new binding if we have one on the 3852169689Skan free list. 3853169689Skan (pop_binding): Put old bindings on the free list. 3854169689Skan (init_decl_processing): Use size_int, not build_int_2. 3855169689Skan Register free_bindings as a GC root. 3856169689Skan (cp_make_fname_decl): Use size_int, not build_int_2. 3857169689Skan (push_inline_template_parms_recursive): Likewise. 3858169689Skan (end_template_parm_list): Likewise. 3859169689Skan (for_each_template_parm): Do not use walk_tree_without_duplicates. 3860169689Skan (tsubst_template_parms): Use size_int, not build_int_2. 3861169689Skan (tsubst): Likewise. 3862169689Skan * rtti.c (get_vmi_pseudo_type_info): Likewise. 3863169689Skan 3864169689Skan2001-01-02 Richard Henderson <rth@redhat.com> 3865169689Skan 3866169689Skan * parse.y (asm): Set ASM_INPUT_P. 3867169689Skan 3868169689Skan2001-01-02 Jason Merrill <jason@redhat.com> 3869169689Skan 3870169689Skan * tree.c (cp_valid_lang_attribute): Don't set CLASSTYPE_COM_INTERFACE 3871169689Skan for v3 ABI. 3872169689Skan 3873169689Skan * typeck.c (cp_truthvalue_conversion): New fn. 3874169689Skan * cvt.c (ocp_convert): Use it. 3875169689Skan 3876169689Skan * cp-tree.h: Lose c-common.c decls. 3877169689Skan 3878169689Skan * typeck.c (build_unary_op): Restore old &a.f diagnostic code. 3879169689Skan * cvt.c (convert_to_void): Use type_unknown_p. 3880169689Skan 3881169689Skan * typeck.c (strip_all_pointer_quals): Also strip quals from 3882169689Skan pointer-to-member types. 3883169689Skan 3884169689Skan * Make-lang.in (cp/TAGS): Use --no-globals. Ignore parse.c, and treat 3885169689Skan parse.y as C. 3886169689Skan 3887169689Skan * call.c (build_new_method_call): Do evaluate the object parameter 3888169689Skan when accessing a static member. 3889169689Skan * typeck.c (build_component_ref): Likewise. 3890169689Skan 3891169689Skan2001-01-02 Andreas Jaeger <aj@suse.de> 3892169689Skan 3893169689Skan * decl.c (cp_missing_noreturn_ok_p): New. 3894169689Skan (init_decl_processing): Set lang_missing_noreturn_ok_p. 3895169689Skan 3896