12001-12-29 Nathan Sidwell <nathan@codesourcery.com> 2 3 * call.c (build_user_type_conversion_1): Use my_friendly_assert 4 rather than if ... abort. 5 * cvt.c (convert_to_reference): Likewise. 6 * semantics.c (setup_vtbl_ptr): Likewise. 7 * pt.c (lookup_template_class): Comment typo. 8 92001-12-29 Nathan Sidwell <nathan@codesourcery.com> 10 11 PR c++/5125 12 * pt.c (push_template_decl_real): Make sure DECL has 13 DECL_LANG_SPECIFIC. 14 152001-12-29 Nathan Sidwell <nathan@codesourcery.com> 16 17 PR c++/335 18 * init.c (resolve_offset_ref): Copy cv qualifiers of this pointer 19 for non-reference fields. 20 * typeck.c (require_complete_type): Use resolve_offset_ref). 21 222001-12-26 Nathan Sidwell <nathan@codesourcery.com> 23 24 PR c++/196 25 * parse.y (bad_parm): Better diagnostic when given a SCOPE_REF. 26 272001-12-24 Nathan Sidwell <nathan@codesourcery.com> 28 29 PR c++/160 30 * typeck.c (build_modify_expr): Remove old unreachable code & tidy 31 up. Don't stabilize_references when initializing a reference. 32 332001-12-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 34 35 * decl2.c (lang_f_options): Const-ify. 36 372001-12-20 Joseph S. Myers <jsm28@cam.ac.uk> 38 39 * config-lang.in (diff_excludes): Remove. 40 412001-12-19 Nathan Sidwell <nathan@codesourcery.com> 42 43 PR c++/90 44 * typeck.c (build_function_call_real): Use original function 45 expression for errors. 46 472001-12-18 Jason Merrill <jason@redhat.com> 48 49 PR c++/3242 50 * class.c (add_method): Do compare 'this' quals when trying to match a 51 used function. Don't defer to another used function. 52 532001-12-18 Nathan Sidwell <nathan@codesourcery.com> 54 55 * pt.c (instantiate_clone): Remove, fold into ... 56 (instantiate_template): ... here. Simplify by removing mutual 57 recursion. 58 * typeck2.c (build_m_component_ref): Don't cv qualify the function 59 pointed to by a pointer to function. 60 * class.c (delete_duplicate_fields_1): Typo. 61 622001-12-18 Jason Merrill <jason@redhat.com> 63 64 C++ ABI change: destroy value arguments in caller. 65 * semantics.c (genrtl_start_function, genrtl_finish_function): Don't 66 create an extra binding level for the parameters. 67 * decl.c (store_parm_decls): Don't do parameter cleanups. 68 692001-12-18 Nathan Sidwell <nathan@codesourcery.com> 70 71 * call.c (build_new_method_call): Use '%#V'. 72 * error.c (cv_to_string): Use V parameter to determine padding. 73 742001-12-18 Joseph S. Myers <jsm28@cam.ac.uk> 75 76 * call.c, decl2.c, init.c: Use "built-in" and "bit-field" 77 spellings in messages. 78 792001-12-17 Zack Weinberg <zack@codesourcery.com> 80 81 * cp-tree.h: Delete #defines for cp_error, cp_warning, 82 cp_pedwarn, and cp_compiler_error. 83 * call.c, class.c, cp-tree.h, cvt.c, decl.c, decl2.c, error.c, 84 except.c, friend.c, init.c, lex.c, method.c, parse.y, pt.c, 85 rtti.c, search.c, semantics.c, spew.c, tree.c, typeck.c, 86 typeck2.c: Change calls to the above macros to use their 87 language-independent equivalents: error, warning, pedwarn, and 88 internal_error respectively. 89 902001-12-16 Neil Booth <neil@daikokuya.demon.co.uk> 91 92 * decl2.c (finish_file): Remove back_end_hook. 93 942001-12-16 Joseph S. Myers <jsm28@cam.ac.uk> 95 96 * ChangeLog.1, ChangeLog.2, ChangeLog, NEWS, call.c, class.c, 97 cp-tree.h, decl.c, decl2.c, except.c, operators.def, optimize.c, 98 pt.c, rtti.c, semantics.c, typeck.c: Fix spelling errors. 99 1002001-12-15 Joseph S. Myers <jsm28@cam.ac.uk> 101 102 * lang-options.h: Use American spelling in messages. 103 1042001-12-13 Jason Merrill <jason@redhat.com> 105 106 * Make-lang.in (parse.h): Separate rule, just depend on parse.c. 107 108 Use cleanups to run base and member destructors. 109 * init.c (push_base_cleanups): New function, split out from... 110 (build_delete): ...here. Lose !TYPE_HAS_DESTRUCTOR code. 111 * decl.c (finish_destructor_body): Move vbase destruction code to 112 push_base_cleanups. 113 (begin_function_body, finish_function_body): New fns. 114 (finish_function): Move [cd]tor handling and call_poplevel to 115 finish_function_body. 116 (pushdecl): Skip the new level. 117 * semantics.c (genrtl_try_block): Don't call end_protect_partials. 118 (setup_vtbl_ptr): Call push_base_cleanups. 119 * method.c (synthesize_method): Call {begin,end}_function_body. 120 * pt.c (tsubst_expr): Handle COMPOUND_STMT_BODY_BLOCK. 121 * cp-tree.h: Declare new fns. 122 * parse.y (function_body, .begin_function_body): New nonterminals. 123 (fndef, pending_inline, function_try_block): Use function_body. 124 (ctor_initializer_opt, function_try_block): No longer has a value. 125 (base_init): Remove .set_base_init token. 126 (.set_base_init, compstmt_or_error): Remove. 127 * Make-lang.in (parse.c): Expect two fewer s/r conflicts. 128 129 * optimize.c (maybe_clone_body): Fix parameter updating. 130 1312001-12-12 Jason Merrill <jason@redhat.com> 132 133 * decl.c (store_parm_decls): Remove parms_have_cleanups cruft. 134 * semantics.c (genrtl_start_function): Don't pass 135 parms_have_cleanups or push an extra binding level. 136 (genrtl_finish_function): Lose cleanup_label cruft. 137 138 * cp-tree.h (struct cp_language_function): Remove x_ctor_label. 139 (ctor_label): Remove. 140 * semantics.c (finish_return_stmt): Lose ctor_label support. 141 * decl.c (finish_constructor_body, mark_lang_function): Likewise. 142 * typeck.c (check_return_expr): Check DECL_DESTRUCTOR_P, not 143 dtor_label. 144 145 * call.c (build_new_method_call): Let resolves_to_fixed_type_p 146 check for [cd]tors. 147 * class.c (fixed_type_or_null, case INDIRECT_REF): Fix. 148 149 * decl.c (finish_function): Check VMS_TARGET, not VMS. 150 151 * decl.c (start_cleanup_fn): Remove redundant pushlevel. 152 (end_cleanup_fn): And poplevel. 153 154 * semantics.c (setup_vtbl_ptr): Always build a CTOR_INITIALIZER 155 if we're in a template. 156 1572001-12-12 Jakub Jelinek <jakub@redhat.com> 158 159 * cp-tree.h (DESTRUCTOR_DECL_PREFIX, DESTRUCTOR_NAME_P, 160 ANON_PARMNAME_FORMAT, ANON_PARMNAME_P, DESTRUCTOR_NAME_FORMAT, 161 THIS_NAME_P): Delete. 162 * spew.c (read_process_identifier): Remove DESTRUCTOR_NAME_P, 163 THIS_NAME_P and ANON_PARMNAME_P tests from warning about clash 164 with internal naming scheme. 165 * error.c (dump_decl): Remove DESTRUCTOR_NAME_P use. 166 1672001-12-12 Nathan Sidwell <nathan@codesourcery.com> 168 169 * decl.c (grokdeclarator): Deprecated implicit typename use. 170 1712001-12-11 Nathan Sidwell <nathan@codesourcery.com> 172 173 PR g++/51 174 * parse.y (frob_specs): Indicate it is a language linkage which 175 contained the extern. 176 * decl.c (grokdeclarator): Allow extern language linkage with 177 other specifiers. 178 1792001-12-10 Nathan Sidwell <nathan@codesourcery.com> 180 181 PR g++/72 182 * decl.c (add_binding): Don't reject duplicate typedefs involving 183 template parameters. 184 1852001-12-10 Neil Booth <neil@daikokuya.demon.co.uk> 186 187 * parse.y, semantics.c: Similarly. 188 1892001-12-09 Nathan Sidwell <nathan@codesourcery.com> 190 191 PR g++/87 192 * cp-tree.h (DECL_COPY_CONSTRUCTOR_P): Use copy_fn_p. 193 (copy_args_p): Rename to ... 194 (copy_fn_p): ... here. 195 (grok_special_member_properties): New function. 196 (grok_op_properties): Lose VIRTUALP parameter. 197 (copy_assignment_arg_p): Remove. 198 * call.c (build_over_call): Use copy_fn_p. 199 * decl.c (grokfndecl): Reformat. Adjust call to 200 grok_op_properties. 201 (copy_args_p): Rename to ... 202 (copy_fn_p): ... here. Reject template functions. Check for pass 203 by value. 204 (grok_special_member_properties): Remember special functions. 205 (grok_ctor_properties): Don't remember them here, just check. 206 (grok_op_properties): Likewise. 207 (start_method): Call grok_special_member_properties. 208 * decl2.c (grokfield): Likewise. 209 (copy_assignment_arg_p): Remove. 210 (grok_function_init): Don't remember abstract assignment here. 211 * pt.c (instantiate_class_template): Call 212 grok_special_member_properties. 213 (tsubst_decl): Adjust grok_op_properties call. 214 2152001-12-08 Aldy Hernandez <aldyh@redhat.com> 216 217 * lex.c (rid_to_yy): Add RID_CHOOSE_EXPR and 218 RID_TYPES_COMPATIBLE_P. 219 2202001-12-08 John David Anglin <dave@hiauly1.hia.nrc.ca> 221 222 * semantics.c (simplify_aggr_init_exprs_r): Add DIRECT_BIND flag in 223 call to build_aggr_init. 224 * cp-tree.h (DIRECT_BIND): Document new use of DIRECT_BIND. 225 2262001-12-08 Neil Booth <neil@daikokuya.demon.co.uk> 227 228 * parse.y: Replace uses of the string non-terminal with STRING. 229 Don't perform string concatentaion here. 230 (string): Remove non-terminal. 231 * semantics.c (finish_asm_stmt): Don't concatenate strings here. 232 2332001-12-05 Jason Merrill <jason@redhat.com> 234 235 * cp-lang.c (LANG_HOOKS_TREE_INLINING_START_INLINING): Define. 236 (LANG_HOOKS_TREE_INLINING_END_INLINING): Define. 237 * tree.c (cp_start_inlining, cp_end_inlining): New fns. 238 * pt.c (push_tinst_level): No longer static. 239 * cp-tree.h: Declare them. 240 241 * init.c (resolve_offset_ref): Don't check access for the base 242 conversion to access a FIELD_DECL. 243 244 * cp-tree.h (TYPE_REFFN_P): New macro. 245 * decl.c (bad_specifiers): Check it, too. 246 247 * rtti.c (create_pseudo_type_info): Set CLASSTYPE_INTERFACE_ONLY 248 on the __*_type_info type if we haven't seen a definition. 249 2502001-12-05 Neil Booth <neil@daikokuya.demon.co.uk> 251 252 * decl.c: Include c-common.h. 253 (shadow_warning): Move to c-common.c. 254 2552001-12-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 256 257 * decl.c (duplicate_decls): Don't copy DECL_NO_CHECK_MEMORY_USAGE. 258 2592001-12-04 Nathan Sidwell <nathan@codesourcery.com> 260 261 * pt.c (end_template_parm_list): Clear TREE_CHAIN of each parm. 262 2632001-12-04 Nathan Sidwell <nathan@codesourcery.com> 264 265 PR g++/164 266 * init.c (sort_base_init): Allow binfos to be directly specified. 267 * method.c (do_build_copy_constructor): Explicitly convert to the 268 base instance. 269 (do_build_assign_ref): Likewise. 270 2712001-12-03 Hans-Peter Nilsson <hp@bitrange.com> 272 273 * decl.c (xref_basetypes): Don't use C99 construct in tag_code 274 declaration and initialization. 275 2762001-12-03 Neil Booth <neil@daikokuya.demon.co.uk> 277 278 * typeck2.c: Remove leading capital from diagnostic messages, as 279 per GNU coding standards. 280 2812001-12-03 Mumit Khan <khan@nanotech.wisc.edu> 282 283 PR c++/3394 284 * decl.c (xref_basetypes): Handle attributes between 285 'class' and name. 286 2872001-12-03 Nathan Sidwell <nathan@codesourcery.com> 288 289 PR g++/3381 290 * parse.y (named_complex_class_head_sans_basetype): Add new 291 reduction. 292 * Make-lang.in (parse.c): Adjust expected conflict count. 293 2942001-12-03 Jason Merrill <jason@redhat.com> 295 296 * class.c (finish_vtbls): Fill in BINFO_VPTR_FIELD in the 297 immediate binfos for our virtual bases. 298 2992001-12-02 Neil Booth <neil@daikokuya.demon.co.uk> 300 301 * call.c (build_java_interface_fn_ref): Similarly. 302 * except.c (is_admissible_throw_operand): Similarly. 303 * init.c (build_java_class_ref): Similarly. 304 * xref.c (open_xref_file): Similarly. 305 3062001-12-01 Neil Booth <neil@daikokuya.demon.co.uk> 307 308 * class.c (finish_struct): Remove trailing periods from messages. 309 * decl.c (check_tag_decl): Similarly. 310 * lex.c (cxx_set_yydebug): Similarly. 311 * typeck2.c (friendly_abort): Similarly. 312 3132001-11-29 Mark Mitchell <mark@codesourcery.com> 314 315 PR c++/3048 316 * cp-tree.h (ovl_member): Remove. 317 * decl2.c (merge_functions): Handle extern "C" functions 318 specially. 319 * tree.c (ovl_member): Remove. 320 3212001-11-29 Mark Mitchell <mark@codesourcery.com> 322 323 PR c++/4842 324 * class.c (get_basefndecls): Take an IDENTIFIER_NODE, not a 325 FUNCTION_DECL, as input. 326 (mark_overriders): Remove. 327 (warn_hidden): Rework for the new ABI. 328 3292001-11-29 Mark Mitchell <mark@codesourcery.com> 330 331 PR c++/3471 332 * call.c (convert_like_real): Do not build additional temporaries 333 for rvalues of class type. 334 3352001-11-28 Nathan Sidwell <nathan@codesourcery.com> 336 337 * cp-tree.h (UNIQUELY_DERIVED_FROM_P): Use lookup base. 338 (ACCESSIBLY_UNIQUELY_DERIVED_FROM_P): Likewise. 339 (PUBLICLY_UNIQUELY_DERIVED_FROM_P: Likewise. 340 (DERIVED_FROM_P): Likewise. 341 (enum base_access): Renumber, add ba_quiet bit mask. 342 (get_binfo): Remove. 343 (get_base_distance): Remove. 344 (binfo_value): Remove. 345 (ACCESSIBLY_DERIVED_FROM_P): Remove. 346 * call.c (standard_conversion): Use lookup_base. 347 * class.c (strictly_overrides): Likewise. 348 (layout_virtual_bases): Likewise. 349 (warn_about_ambiguous_direct_bases): Likewise. 350 (is_base_of_enclosing_class): Likewise. 351 (add_vcall_offset_vtbl_entries_1): Likewise. 352 * cvt.c (build_up_reference): Adjust comment. 353 * init.c (build_member_call): Reformat. 354 * search.c (get_binfo): Remove. 355 (get_base_distance_recursive): Remove. 356 (get_base_distance): Remove. 357 (lookup_base_r): Tweak. 358 (lookup_base): Add ba_quiet control. Complete the types here. 359 (covariant_return_p): Use lookup_base. 360 * tree.c (binfo_value): Remove. 361 (maybe_dummy_object): Use lookup_base. 362 * typeck.c (build_static_cast): Use lookup_base. 363 (get_delta_difference): Likewise. 364 * typeck2.c (binfo_or_else): Use lookup_base. 365 (build_scoped_ref): Add back error_mark_check. 366 (build_m_component_ref): Use lookup_base. 367 3682001-11-29 Joseph S. Myers <jsm28@cam.ac.uk> 369 370 * Make-lang.in (c++.generated-manpages): New dummy target. 371 3722001-11-27 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 373 374 * Make-lang.in (cp-lang.o): Depends on c-common.h. 375 * cp-lang.c (c-common.h): Include. 376 (LANG_HOOKS_EXPAND_CONSTANT, LANG_HOOKS_SAFE_FROM_P): New hooks. 377 * decl.c (cxx_init_decl_processing): Don't set lang_safe_from_p. 378 * expr.c (init_cplus_expand): Don't set lang_expand_constant. 379 3802001-11-26 Neil Booth <neil@daikokuya.demon.co.uk> 381 382 * decl2.c (c_language): Move to c-common.c. 383 * lex.c (cxx_post_options, cxx_init_options): Use c-common.c 384 functions. 385 (cxx_init): Update. 386 3872001-11-26 Jason Merrill <jason@redhat.com> 388 389 * call.c (joust): Remove COND_EXPR hack. 390 3912001-11-25 Aldy Hernandez <aldyh@redhat.com> 392 393 * search.c (lookup_base_r): Declare bk in variable declaration 394 space. 395 3962001-11-25 Nathan Sidwell <nathan@codesourcery.com> 397 398 PR g++/3145 399 * class.c (build_vbase_pointer): Remove. 400 (build_vbase_path): Remove. 401 (build_base_path): New function. 402 * cp-tree.h (base_access, base_kind): New enumerations. 403 (build_base_path): Declare. 404 (convert_pointer_to_real): Remove. 405 (convert_pointer_to): Remove. 406 (lookup_base): Declare. 407 (convert_pointer_to_vbase): Remove. 408 * call.c (build_scoped_method_call): Use lookup_base & 409 build_base_path instead of convert_pointer_to_real, 410 get_base_distance & get_binfo. 411 (build_over_call): Likewise. 412 * cvt.c (cp_convert_to_pointer): Likewise. 413 (convert_to_pointer_force): Likewise. 414 (build_up_reference): Likewise. 415 (convert_pointer_to_real): Remove. 416 (convert_pointer_to): Remove. 417 * init.c (dfs_initialize_vtbl_ptrs): Use build_base_path 418 instead of convert_pointer_to_vbase & build_vbase_path. 419 (emit_base_init): Use build_base_path instead of 420 convert_pointer_to_real. 421 (expand_virtual_init): Lose unrequired conversions. 422 (resolve_offset_ref): Use lookup_base and build_base_path 423 instead of convert_pointer_to. 424 * rtti.c (build_dynamic_cast_1): Use lookup_base & 425 build_base_path instead of get_base_distance & build_vbase_path. 426 * search.c (get_vbase_1): Remove. 427 (get_vbase): Remove. 428 (convert_pointer_to_vbase): Remove. 429 (lookup_base_r): New function. 430 (lookup_base): New function. 431 * typeck.c (require_complete_type): Use lookup_base & 432 build_base_path instead of convert_pointer_to. 433 (build_component_ref): Likewise. 434 (build_x_function_call): Likewise. 435 (get_member_function_from_ptrfunc): Likewise. 436 (build_component_addr): Likewise. 437 * typeck2.c (build_scoped_ref): Likewise. 438 4392001-11-22 Bryce McKinlay <bryce@waitaki.otago.ac.nz> 440 441 * cp-tree.h (CP_TYPE_QUALS): Removed. 442 * decl.c (cxx_init_decl_processing): Don't set lang_dump_tree. 443 * cp-lang.c: Set LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN and 444 LANG_HOOKS_TREE_DUMP_TYPE_QUALS_FN. 445 * dump.c (cp_dump_tree): Use void* dump_info argument to match 446 lang-hooks prototype. 447 * call.c, cp-tree.h, cvt.c, decl.c, init.c, mangle.c, method.c, pt.c, 448 rtti.c, semantics.c, tree.c, typeck.c, typeck2.c: All references to 449 CP_TYPE_QUALS changed to cp_type_quals. 450 * Make-lang.in: References to c-dump.h changed to tree-dump.h. 451 (CXX_C_OBJS): Remove c-dump.o. 452 4532001-11-21 Mark Mitchell <mark@codesourcery.com> 454 455 PR c++/3637 456 * pt.c (lookup_template_class): Ensure that all specializations 457 are registered on the list corresponding to the most general 458 template. 459 4602001-11-20 Mark Mitchell <mark@codesourcery.com> 461 462 * call.c (non_reference): Add documentation. 463 (convert_class_to_reference): Do not strip reference types 464 from conversion operators. 465 (maybe_handle_ref_bind): Simplify. 466 (compare_ics): Correct handling of references. 467 4682001-11-19 John Wilkinson <johnw@research.att.com> 469 470 * dump.c (dump_op): New function. 471 (cp_dump_tree): Dump CLASSTYPE_TEMPLATE_SPECIALIZATION. Use 472 dump_op. Dump DECL_MUTABLE, access and staticness for VAR_DECLs. 473 DECL_PURE_VIRTUAL_P, DECL_VIRTUAL_P, 474 4752001-11-19 Mark Mitchell <mark@codesourcery.com> 476 477 PR4629 478 * semantics.c (finish_sizeof): Make sure that expression created 479 while processing a template do not have a type. 480 (finish_alignof): Likewise. 481 * typeck.c (c_sizeof): Likewise. 482 (expr_sizeof): Likewise. 483 4842001-11-18 Neil Booth <neil@daikokuya.demon.co.uk> 485 486 * lex.c (cxx_finish): Call c_common_finish. 487 (finish_parse): Remove. 488 4892001-11-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 490 491 * decl.c (create_array_type_for_decl): Check if NAME is NULL_TREE 492 when displaying error message about missing array bounds. 493 4942001-11-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 495 496 * mangle.c (write_expression): Handle CAST_EXPR, STATIC_CAST_EXPR, 497 CONST_CAST_EXPR. 498 * operators.def: Add CAST_EXPR, STATIC_CAST_EXPR, CONST_CAST_EXPR. 499 5002001-11-16 Neil Booth <neil@daikokuya.demon.co.uk> 501 502 * cp-tree.h (print_class_statistics): Restore. 503 5042001-11-15 Jason Merrill <jason@redhat.com> 505 506 * method.c (use_thunk): Don't emit debugging information for thunks. 507 508 * parse.y: Add ... IDENTIFIER SCOPE and ... PTYPENAME SCOPE expansions. 509 * decl.c (make_typename_type): Handle getting a class template. 510 * search.c (lookup_field_r): A class template is good enough for 511 want_type. 512 513 * call.c (convert_like_real): Only use cp_convert for the bad part. 514 (standard_conversion): Also allow bad int->enum. 515 * typeck.c (ptr_reasonably_similar): Also allow functions to 516 interconvert. Pointers to same-size integers are reasonably 517 similar. 518 519 * cvt.c (convert_to_void): If we build a new COND_EXPR, always 520 give it void type. 521 5222001-11-15 Nathan Sidwell <nathan@codesourcery.com> 523 524 PR g++/3154 525 * init.c (sort_base_init): Remove unreachable code. 526 (expand_member_init): Adjust comment to reflect reality. Simplify 527 and remove unreachable code. 528 5292001-11-15 Neil Booth <neil@daikokuya.demon.co.uk> 530 531 * cp-tree.h (init_reswords, cxx_init_decl_processing): New. 532 (cxx_init): Update prototype. 533 * decl.c (init_decl_processing): Rename. Move null node init 534 to its creation time. 535 * lex.c (cxx_init_options): Update. 536 (cxx_init): Combine with old init_parse; also call 537 cxx_init_decl_processing. 538 5392001-11-14 Richard Sandiford <rsandifo@redhat.com> 540 541 * decl.c (check_initializer): Try to complete the type of an 542 array element before checking whether it's complete. Don't 543 complain about arrays with complete element types but an 544 unknown size. 545 (cp_finish_decl): Build the hierarchical constructor before 546 calling maybe_deduce_size_from_array_init. 547 5482001-11-14 Joseph S. Myers <jsm28@cam.ac.uk> 549 550 * Make-lang.in: Change all uses of $(manext) to $(man1ext). 551 5522001-11-13 Nathan Sidwell <nathan@codesourcery.com> 553 554 PR g++/4206 555 * parse.y (already_scoped_stmt): Remove. 556 (simple_stmt, WHILE & FOR): Use implicitly_scoped_stmt. 557 5582001-11-12 H.J. Lu <hjl@gnu.org> 559 560 * cvt.c (ocp_convert): Don't warn the address of a weak 561 function is always `true'. 562 5632001-11-09 Neil Booth <neil@daikokuya.demon.co.uk> 564 565 * cp-lang.c (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE, 566 LANG_HOOKS_PRINT_STATISTICS, LANG_HOOKS_PRINT_XNODE, 567 LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_SET_YYDEBUG): Override. 568 * cp-tree.h (print_class_statistics): Remove. 569 (cxx_print_statistics, cxx_print_xnode, cxx_print_decl, cxx_print_type, 570 cxx_print_identifier, cxx_set_yydebug): New. 571 * lex.c (set_yydebug): Rename c_set_yydebug. 572 * ptree.c (print_lang_decl, print_lang_type, print_lang_identifier, 573 lang_print_xnode): Rename. 574 * tree.c (print_lang_statistics): Rename. 575 5762001-11-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 577 578 * class.c (dump_array): Fix format specifier warning. 579 5802001-11-09 Neil Booth <neil@daikokuya.demon.co.uk> 581 582 * cp-lang.c (LANG_HOOKS_NAME): Override. 583 (struct lang_hooks): Constify. 584 * lex.c (cxx_init_options): Update. 585 (lang_identify): Remove. 586 * parse.y (language_string): Remove. 587 5882001-11-08 Andreas Franck <afranck@gmx.de> 589 590 * Make-lang.in (CXX_INSTALL_NAME, GXX_CROSS_NAME, 591 DEMANGLER_CROSS_NAME): Handle program_transform_name the way 592 suggested by autoconf. 593 (GXX_TARGET_INSTALL_NAME, CXX_TARGET_INSTALL_NAME): Define. 594 (c++.install-common): Use the transformed target alias names. 595 5962001-11-06 Neil Booth <neil@cat.daikokuya.demon.co.uk> 597 598 * Make-lang.in: Update. 599 * cp-lang.c: Include langhooks-def.h. 600 6012001-11-04 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 602 603 * pt.c (tsubst_copy): Call tsubst for TYPEOF_EXPR. 604 6052001-11-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 606 607 * lex.c (copy_lang_type): Add static prototype. 608 6092001-11-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 610 611 * pt.c (unify): Handle SCOPE_REF. 612 6132001-11-01 Jakub Jelinek <jakub@redhat.com> 614 615 * tree.c (cp_copy_res_decl_for_inlining): Adjust 616 DECL_ABSTRACT_ORIGIN for the return variable. 617 6182001-10-31 Zack Weinberg <zack@codesourcery.com> 619 620 * Make-lang.in: Replace $(INTL_TARGETS) with po-generated. 621 6222001-10-28 Joseph S. Myers <jsm28@cam.ac.uk> 623 624 * ChangeLog.1, ChangeLog.2, ChangeLog, class.c, decl2.c, search.c, 625 semantics.c, spew.c: Fix spelling errors. 626 6272001-10-27 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 628 629 * decl2.c (validate_nonmember_using_decl): Handle NAMESPACE_DECL. 630 6312001-10-25 Zack Weinberg <zack@codesourcery.com> 632 633 * cp-lang.c: Redefine LANG_HOOKS_CLEAR_BINDING_STACK to 634 pop_everything. 635 6362001-10-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 637 638 * cp-lang.c (cxx_get_alias_set): New function. 639 Point LANG_HOOKS_GET_ALIAS_SET to it. 640 6412001-10-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 642 643 * cp-tree.def (UNBOUND_CLASS_TEMPLATE): New tree node. 644 * cp-tree.h (make_unbound_class_template): Prototype new function. 645 * decl.c (make_unbound_class_template): New function. 646 * decl2.c (arg_assoc_template_arg): Handle UNBOUND_CLASS_TEMPLATE. 647 * error.c (dump_type): Likewise. 648 * mangle.c (write_type): Likewise. 649 * parse.y (template_parm): Likewise. 650 (template_argument): Use make_unbound_class_template. 651 * pt.c (convert_template_argument): Handle UNBOUND_CLASS_TEMPLATE. 652 (tsubst): Likewise. 653 (tsubst_copy): Likewise. 654 (unify): Likewise. 655 * tree.c (walk_tree): Likewise. 656 * typeck.c (comptypes): Likewise. 657 6582001-10-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 659 660 * xref.c (GNU_xref_member): Use safe-ctype macros and/or fold 661 extra calls into fewer ones. 662 6632001-10-18 Alexandre Oliva <aoliva@redhat.com> 664 665 * decl.c (duplicate_decls): Propagate DECL_UNINLINABLE. 666 Warn when merging inline with attribute noinline. 667 (start_decl, start_function): Warn if inline and attribute 668 noinline appear in the same declaration. 669 6702001-10-16 H.J. Lu <hjl@gnu.org> 671 672 * cp-tree.h (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): Defined 673 for tree checking disabled. 674 6752001-10-16 Hans-Peter Nilsson <hp@axis.com> 676 677 * cp-tree.h (VFIELD_NAME_FORMAT) [NO_DOLLAR_IN_LABEL && 678 NO_DOT_IN_LABEL]: Adjust to match VFIELD_NAME. 679 6802001-10-15 Richard Sandiford <rsandifo@redhat.com> 681 682 * pt.c (UNIFY_ALLOW_MAX_CORRECTION): Define. 683 (unify): Only handle MINUS_EXPR specially if the above flag is set 684 and the subtracted constant is 1. Clear the flag on recursive calls. 685 Set it when unifying the maximum value in an INTEGER_TYPE's range. 686 6872001-10-15 Richard Sandiford <rsandifo@redhat.com> 688 689 * decl.c (bad_specifiers): Don't allow exception specifications 690 on any typedefs. 691 6922001-10-14 Neil Booth <neil@daikokuya.demon.co.uk> 693 694 * cp/lex.c (init_cp_pragma): Similarly. 695 6962001-10-13 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 697 698 * pt.c (lookup_template_class): Build complete template arguments 699 for BOUND_TEMPLATE_TEMPLATE_PARM. 700 7012001-10-12 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 702 703 * cp-tree.h (TYPE_BINFO): Update comment. 704 (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): New macro. 705 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Use template_info. 706 (TYPENAME_TYPE_FULLNAME): Use TYPE_FIELDS. 707 (copy_type): Prototype new function. 708 * lex.c (copy_lang_decl): Gather tree node statistics. 709 (copy_lang_type): New function. 710 (copy_type): Likewise. 711 (cp_make_lang_type): Create lang_type for 712 BOUND_TEMPLATE_TEMPLATE_PARM. Set TYPE_BINFO for TYPENAME_TYPE 713 and BOUND_TEMPLATE_TEMPLATE_PARM. 714 * pt.c (tsubst): Use copy_type instead of copy_node. 715 * search.c (lookup_field_1): Ignore TYPENAME_TYPE. 716 7172001-10-12 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 718 719 * pt.c (determine_specialization): Ignore functions without 720 DECL_TEMPLATE_INFO. 721 7222001-10-12 Nathan Sidwell <nathan@codesourcery.com> 723 724 PR g++/4476 725 * typeck2.c (abstract_virtuals_error): Ignore incomplete classes. 726 7272001-10-11 Jason Merrill <jason_merrill@redhat.com> 728 729 * typeck2.c (store_init_value): Don't re-digest a bracketed 730 initializer. 731 732 * class.c (finish_struct_anon): Use TYPE_ANONYMOUS_P instead of 733 ANON_AGGR_TYPE_P. 734 7352001-10-11 Richard Henderson <rth@redhat.com> 736 737 * class.c (build_vtable_entry_ref): Create a VTABLE_REF instead 738 of an asm statement. 739 (build_vtbl_ref_1): Split out from build_vtbl_ref. 740 (build_vfn_ref): Use it to handle vtable descriptors before 741 calling build_vtable_entry_ref. 742 * decl2.c (output_vtable_inherit): Use assemble_vtable_inherit. 743 7442001-10-10 Richard Henderson <rth@redhat.com> 745 746 * parse.y (asm_operand): Allow named operands. 747 * semantics.c (finish_asm_stmt): Tweek for changed location 748 of the operand constraint. 749 7502001-10-09 Jason Merrill <jason_merrill@redhat.com> 751 752 * call.c (standard_conversion): Add bad conversion between 753 integers and pointers. 754 (convert_like_real): Don't use convert_for_initialization for bad 755 conversions; complain here and use cp_convert. 756 (build_over_call): Don't handle bad conversions specially. 757 (perform_implicit_conversion): Allow bad conversions. 758 (can_convert_arg_bad): New fn. 759 * cp-tree.h: Declare it. 760 * typeck.c (convert_for_assignment): Use it. 761 (ptr_reasonably_similar): Any target type is similar to void. 762 7632001-10-08 Alexandre Oliva <aoliva@redhat.com> 764 765 * Make-lang.in (CXX_OBJS): Added cp-lang.o. 766 (cp/cp-lang.o): New rule. 767 * cp-tree.h: Declare hooks. 768 * tree.c: Make hooks non-static. 769 (init_tree): Don't initialize hooks here. 770 * lex.c: Likewise. Move definition of lang_hooks to... 771 * cp-lang.c: ... new file. 772 7732001-10-08 Richard Henderson <rth@redhat.com> 774 775 * cp-tree.h (struct lang_decl_flags): Remove declared_inline. 776 (DECL_DECLARED_INLINE_P): Use the bit in struct c_lang_decl. 777 7782001-10-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 779 780 * class.c (build_vtable_entry_ref): Const-ify. 781 * decl.c (predefined_identifier, 782 initialize_predefined_identifiers): Likewise. 783 * init.c (build_new_1): Likewise. 784 * lex.c (cplus_tree_code_type, cplus_tree_code_length, resword): 785 Likewise. 786 7872001-10-05 Alexandre Oliva <aoliva@redhat.com> 788 789 * optimize.c (struct inline_data): Moved to ../tree-inline.c. 790 (INSNS_PER_STMT): Likewise. 791 (remap_decl, remap_block, copy_scopy_stmt, copy_body_r): Likewise. 792 (copy_body, initialize_inlined_parameters): Likewise. 793 (declare_return_variable, inlinable_function_p): Likewise. 794 (expand_call_inline, expand_calls_inline): Likewise. 795 (optimize_inline_calls, clone_body): Likewise. 796 * tree.c (walk_tree): Moved to ../tree-inline.c. 797 (walk_tree_without_duplicates): Likewise. 798 (copy_tree_r, remap_save_expr): Likewise. 799 8002001-10-04 Alexandre Oliva <aoliva@redhat.com> 801 802 * Make-lang.in (cp/decl.o, cp/tree.o): Depend on tree-inline.h. 803 (cp/pt.o, cp/semantics.o, cp/optimize.o): Likewise. 804 * cp-tree.h (lang_decl): Moved inlined_fns to tree_decl. 805 (TREE_READONLY_DECL_P, DECL_INLINED_FNS): Moved to ../tree.h. 806 (flag_inline_trees): Moved declaration to ../tree-inline.h. 807 (walk_tree): Moved declaration to ../tree-inline.h. 808 (walk_tree_without_duplicates, copy_tree_r): Likewise. 809 (remap_save_expr): Likewise. 810 * decl.c: Include tree-inline.h. 811 (lang_mark_tree): Don't mark inlined_fns. 812 * decl2.c (flag_inline_trees): Moved defn to ../tree-inline.c. 813 * optimize.c: Include tree-inline.h. 814 (optimize_inline_calls): Move declaration to ../tree.h, as 815 non-static. 816 (remap_decl): Use language-independent constructs and hooks. 817 (remap_block, copy_body_r, declare_return_variable): Likewise. 818 (inlinable_function_p): Likewise. Don't test for 819 DECL_LANG_SPECIFIC before DECL_INLINED_FNS as inlined_fns is 820 no longer language-specific. 821 (optimize_inline_calls): Likewise. Make it non-static. Moved 822 call of dump_function to... 823 (optimize_function): Here... 824 (clone_body): New function, extracted from... 825 (maybe_clone_body): ... here. Build decl_map locally and pass 826 it on to clone_body. 827 * pt.c, semantics.c: Include tree-inline.h. 828 * tree.c: Likewise. 829 (cp_walk_subtrees): New language-specific hook for tree inlining. 830 (cp_cannot_inline_tree_fn, cp_add_pending_fn_decls, 831 cp_is_overload_p, cp_auto_var_in_fn_p, 832 cp_copy_res_decl_for_inlining): Likewise. 833 (walk_tree): Move language-specific constructs into... 834 (cp_walk_subtrees): this new function. 835 (copy_tree_r): Use language-independent constructs and hooks. 836 (init_tree): Initialize tree inlining hooks. 837 (remap_save_expr): Adjust prototype so that the declaration 838 does not require the definition of splay_tree. 839 8402001-10-03 John David Anglin <dave@hiauly1.hia.nrc.ca> 841 842 * rtti.c (get_tinfo_decl): Call typeinfo_in_lib_p with the type used 843 to build the declaration instead of the declaration itself. 844 8452001-10-02 Jason Merrill <jason_merrill@redhat.com> 846 847 * decl2.c (cxx_decode_option): Add 'else'. 848 849 * spew.c (end_input): No longer static. 850 * cp-tree.h: Declare it. 851 * parse.y (datadef): Add "error END_OF_SAVED_INPUT" expansion. 852 8532001-10-02 Joseph S. Myers <jsm28@cam.ac.uk> 854 855 * call.c (build_over_call), typeck.c (build_function_call_real): 856 Pass type attributes to check_function_format rather than name or 857 assembler name. Don't require there to be a name or assembler 858 name to check formats. 859 8602001-10-02 Joseph S. Myers <jsm28@cam.ac.uk> 861 862 * decl.c (init_decl_processing): Don't call 863 init_function_format_info. Initialize lang_attribute_table 864 earlier. 865 (builtin_function): Call decl_attributes. 866 (insert_default_attributes): New. 867 8682001-10-01 Jason Merrill <jason_merrill@redhat.com> 869 870 * decl.c (grokdeclarator): Copy array typedef handling from C 871 frontend. 872 873 * decl.c (grokdeclarator): Copy too-large array handling from C 874 frontend. 875 8762001-09-29 Alexandre Oliva <aoliva@redhat.com> 877 878 * config-lang.in (target_libs): Added target-gperf, so that we 879 don't try to build it if C++ is disabled. 880 8812001-09-23 Zack Weinberg <zack@codesourcery.com> 882 883 * Make-lang.in (CXX_OBJS): Take out cp/errfn.o. 884 (cp/errfn.o): Delete rule. 885 (cp/error.o): Depend on flags.h. 886 * errfn.c: Delete file. 887 * cp-tree.h: Declare warn_deprecated. Remove definitions of 888 TFF_NAMESPACE_SCOPE, TFF_CLASS_SCOPE, TFF_CHASE_NAMESPACE_ALIAS, 889 and TFF_TEMPLATE_DEFAULT_ARGUMENTS. #define cp_error, cp_warning, 890 cp_pedwarn, and cp_compiler_error to error, warning, pedwarn, and 891 internal_error respectively. Make cp_deprecated into a macro. 892 Don't define cp_printer typedef or declare cp_printers. 893 * error.c: Include flags.h. 894 Delete: struct tree_formatting_info, print_function_argument_list, 895 print_declaration, print_expression, print_function_declaration, 896 print_function_parameter, print_type_id, print_cv_qualifier_seq, 897 print_type_specifier_seq, print_simple_type_specifier, 898 print_elaborated_type_specifier, print_rest_of_abstract_declarator, 899 print_parameter_declaration_clause, print_exception_specification, 900 print_nested_name_specifier, and definition of cp_printers. 901 (locate_error): New function. 902 (cp_error_at, cp_warning_at, cp_pedwarn_at): Moved here and 903 rewritten in terms of locate_error and diagnostic.c. 904 (cp_tree_printer): Rename cp_printer; wire up to *_to_string 905 instead of deleted print_* routines. Handle %C, %L, %O, %Q also. 906 (init_error): Adjust to match. 907 9082001-09-22 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 909 910 * Make-lang.in (CXX_C_OBJS): Add attribs.o. 911 9122001-09-21 Richard Henderson <rth@redhat.com> 913 914 * class.c (set_vindex): Mind TARGET_VTABLE_USES_DESCRIPTORS. 915 (build_vtbl_initializer): Likewise. 916 (build_vfn_ref): New. 917 * cp-tree.h: Declare it. 918 * call.c (build_over_call): Use it. 919 * decl2.c (mark_vtable_entries): Mark FDESC_EXPR. 920 * typeck.c (get_member_function_from_ptrfunc): Mind descriptors. 921 9222001-09-21 J"orn Rennecke <amylaar@redhat.com> 923 924 * decl.c (grokdeclarator): Use C syntax for attr_flags declaration. 925 9262001-09-21 Joseph S. Myers <jsm28@cam.ac.uk> 927 928 Table-driven attributes. 929 * decl.c: Rename DECL_MACHINE_ATTRIBUTES to DECL_ATTRIBUTES. 930 * decl2.c (cplus_decl_attributes): Only take one attributes 931 parameter. 932 * cp-tree.c (cplus_decl_attributes): Update prototype. 933 * class.c (finish_struct), decl.c (start_decl, start_function), 934 decl2.c (grokfield), friend.c (do_friend), parse.y 935 (parse_bitfield): Update calls to cplus_decl_attributes. 936 * decl.c (grokdeclarator): Take a pointer to a single ordinary 937 attribute list. 938 * decl.h (grokdeclarator): Update prototype. 939 * decl2.c (grokfield): Take a single ordinary attribute list. 940 * friend.c (do_friend): Likewise. 941 * decl.c (shadow_tag, groktypename, start_decl, 942 start_handler_parms, grokdeclarator, grokparms, start_function, 943 start_method), decl2.c (grokfield, grokbitfield, grokoptypename), 944 parse.y (parse_field, parse_bitfield, component_decl_1), pt.c 945 (process_template_parm, do_decl_instantiation): Pass single 946 ordinary attribute lists around. 947 * decl.c (grokdeclarator): Correct handling of nested attributes. 948 Revert the patch 949 1998-10-18 Jason Merrill <jason@yorick.cygnus.com> 950 * decl.c (grokdeclarator): Embedded attrs bind to the right, 951 not the left. 952 . 953 * cp-tree.h (cp_valid_lang_attribute): Remove declaration 954 (cp_attribute_table): Declare. 955 * decl.c (valid_lang_attribute): Don't define. 956 (lang_attribute_table): Define. 957 (init_decl_processing): Initialize lang_attribute_table instead of 958 valid_lang_attribute. 959 * tree.c (cp_valid_lang_attribute): Remove. 960 (handle_java_interface_attribute, handle_com_interface_attribute, 961 handle_init_priority_attribute): New functions. 962 (cp_attribute_table): New array. 963 * decl2.c (import_export_class): Don't use 964 targetm.valid_type_attribute. 965 9662001-09-15 Gabriel Dos Reis <gdr@merlin.codesourcery.com> 967 968 * Make-lang.in (cp/error.o): Depend on real.h 969 * error.c: #include "real.h" 970 9712001-09-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 972 973 * mangle.c (mangle_conv_op_name_for_type): Use concat in lieu of 974 xmalloc/strcpy/strcat. 975 9762001-09-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 977 978 * decl.c (warn_extern_redeclared_static, cp_make_fname_decl): 979 Const-ification. 980 * pt.c (tsubst_decl): Likewise. 981 9822001-09-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 983 984 * decl2.c (lang_f_options): Const-ification. 985 * lex.c (cplus_tree_code_name): Likewise. 986 * spew.c (yyerror): Likewise. 987 9882001-09-06 Nathan Sidwell <nathan@codesourcery.com> 989 990 PR c++/3986 991 * class.c (force_canonical_binfo_r): Check & move an indirect 992 primary base first. 993 (force_canonical_binfo): Check that it's not already 994 canonical. 995 (mark_primary_virtual_base): Remove BINFO parameter. 996 (mark_primary_bases): Adjust, set BINFO_LOST_PRIMARY_P here. 997 9982001-09-06 Nathan Sidwell <nathan@codesourcery.com> 999 1000 Remove TYPE_NONCOPIED_PARTS. 1001 * cp-tree.h (CLASSTYPE_INLINE_FRIENDS): Map onto 1002 CLASSTYPE_PURE_VIRTUALS. 1003 (TYPE_RAISES_EXCEPTIONS): Map onto TYPE_BINFO. 1004 * class.c (duplicate_tag_error): Remove TYPE_NONCOPIED_PARTS. 1005 (layout_class_type): Don't call fixup_inline_methods here ... 1006 (finish_struct_1): ... call it here. 1007 10082001-09-04 Mark Mitchell <mark@codesourcery.com> 1009 1010 * decl.c (duplicate_decls): Remove code deadling with 1011 DECL_SAVED_INSNS. 1012 * decl2.c (finish_file): Likewise. 1013 * pt.c (instantiate_decl): Likewise. 1014 * semantics.c (expand_body): Don't defer local functions if 1015 they wouldn't be deferred for some other reason. Don't 1016 generate RTL for functions that will not be emitted. 1017 (genrtl_start_function): Remove code deadling with 1018 DECL_SAVED_INSNS. 1019 (genrtl_finish_function): Likewise. 1020 10212001-09-04 Nathan Sidwell <nathan@codesourcery.com> 1022 1023 PR c++/4203 1024 * call.c (build_over_call): Do not optimize any empty base 1025 construction. 1026 10272001-08-31 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1028 1029 * error.c (dump_template_decl): Output template parameters 1030 together with their specifiers. 1031 Output `class' prefix for template template parameter. 1032 (dump_decl): Fix formatting. 1033 10342001-08-30 Kurt Garloff <garloff@suse.de> 1035 1036 * optimize.c (inlinable_function_p): Allow only smaller single 1037 functions. Halve inline limit after reaching recursive limit. 1038 10392001-08-30 Joern Rennecke <amylaar@redhat.com> 1040 Jason Merrill <jason_merrill@redhat.com> 1041 1042 * class.c (build_vtable_entry_ref): Subtract in char*, not 1043 ptrdiff_t. 1044 10452001-08-23 Jason Merrill <jason_merrill@redhat.com> 1046 1047 * tree.c (cp_build_qualified_type_real): Use get_qualified_type. 1048 (build_cplus_array_type): Use cp_build_qualified_type, not 1049 TYPE_MAIN_VARIANT, to get an unqualified version. 1050 1051 * decl2.c (grok_alignof): Lose. 1052 (build_expr_from_tree): Use expr_sizeof and c_alignof_expr. 1053 * typeck.c (c_alignof): Lose. 1054 * semantics.c (finish_sizeof, finish_alignof): New. 1055 * parse.y: Use them. 1056 * cp-tree.h: Declare them. 1057 10582001-08-22 Jason Merrill <jason_merrill@redhat.com> 1059 1060 * pt.c (tsubst_expr): Hand off to the TREE_CHAIN of a statement. 1061 Don't loop in COMPOUND_STMT, FOR_STMT or TRY_BLOCK. 1062 * tree.c (cp_statement_code_p): A TAG_DEFN is a statement. 1063 10642001-08-19 Jakub Jelinek <jakub@redhat.com> 1065 1066 * typeck2.c (add_exception_specifier): Only require complete type if 1067 not in processing template declaration. 1068 10692001-08-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1070 1071 * decl.c: Cast argument to size_t, not HOST_WIDE_INT, in calls to 1072 GNU_xref_start_scope and GNU_xref_end_scope. 1073 1074 * tree.c (TYPE_HASH): Moved to ../tree.h. 1075 10762001-08-16 Mark Mitchell <mark@codesourcery.com> 1077 1078 * cvt.c (convert_to_void): Preserve TREE_SIDE_EFFECTS 1079 on COMPOUND_EXPRs. 1080 10812001-08-14 Richard Henderson <rth@redhat.com> 1082 1083 * class.c, cp-tree.h (build_vfn_ref): Remove. 1084 * call.c, rtti.c: Replace all refernces with build_vtbl_ref. 1085 10862001-08-13 Mark Mitchell <mark@codesourcery.com> 1087 1088 * call.c (build_over_call): Mark COMPOUND_EXPRs generated for 1089 empty class assignment as having side-effects to avoid 1090 spurious warnings. 1091 10922001-08-13 Zack Weinberg <zackw@panix.com> 1093 1094 * Make-lang.in (cp/except.o): Add libfuncs.h to dependencies. 1095 * except.c: Include libfuncs.h. 1096 10972001-08-11 Gabriel Dos Reis <gdr@merlin.codesourcery.com> 1098 1099 * decl.c (grokdeclarator): Clarify diagnostic message. 1100 11012001-08-13 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1102 1103 * decl2.c (do_nonmember_using_decl): Replace using directive 1104 with using declaration in the error message. 1105 11062001-08-11 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1107 1108 * pt.c (maybe_fold_nontype_arg): Use TREE_TYPE of ARG as the 1109 criterion to avoid rebuilding expression tree instead of 1110 processing_template_decl. 1111 11122001-08-07 Jason Merrill <jason_merrill@redhat.com> 1113 1114 Support named return value optimization for inlines, too. 1115 * decl.c (finish_function): Nullify returns here. 1116 * semantics.c (genrtl_start_function): Not here. 1117 (cp_expand_stmt): Don't mess with CLEANUP_STMTs. 1118 (nullify_returns_r): No longer static. Just clear RETURN_EXPR. 1119 Also nullify the CLEANUP_STMT for the nrv. 1120 * cp-tree.h: Declare it. 1121 * optimize.c (declare_return_variable): Replace the nrv with the 1122 return variable. 1123 * typeck.c (check_return_expr): Be more flexible on alignment check. 1124 Ignore cv-quals when checking for a matching type. 1125 11262001-08-09 Richard Henderson <rth@redhat.com> 1127 1128 * decl2.c (finish_objects): Use target hooks instead of 1129 assemble_constructor and assemble_destructor. 1130 11312001-08-08 John David Anglin <dave@hiauly1.hia.nrc.ca> 1132 1133 * g++spec.c (lang_specific_driver): Quote argument after `-Xlinker'. 1134 11352001-08-07 Nathan Sidwell <nathan@codesourcery.com> 1136 1137 PR c++/3820 1138 Stop using TYPE_NONCOPIED_PARTS. 1139 * call.c (build_over_call): Be careful when copy constructing 1140 or assigning to an empty class. 1141 * class.c (check_bases_and_members): It has a 1142 COMPLEX_ASSIGN_REF if it has a vptr. 1143 (layout_class_type): Don't add empty class padding to 1144 TYPE_NONCOPIED_PARTS. 1145 (finish_struct_1): Don't add the VFIELD either. 1146 * cp-tree.h (TYPE_HAS_TRIVIAL_INIT_REF): Mention _copy_ 1147 initialization. 1148 11492001-08-07 Jason Merrill <jason_merrill@redhat.com> 1150 1151 * tree.c (walk_tree): Walk siblings even if !walk_subtrees. 1152 11532001-08-06 Richard Henderson <rth@redhat.com> 1154 1155 * decl2.c (finish_objects): Pass a symbol_ref and priority to 1156 assemble_{constructor,destructor}. Remove priority handling. 1157 11582001-08-05 Gabriel Dos Reis <gdr@merlin.codesourcery.com> 1159 1160 Don't allow template-id in using-declaration. 1161 * decl2.c (validate_nonmember_using_decl): Handle template-ids. 1162 (do_class_using_decl): Likewise. 1163 11642001-08-04 Neil Booth <neil@cat.daikokuya.demon.co.uk> 1165 1166 * cp/spew.c (read_token): No need to pop buffers. 1167 11682001-08-02 Stan Shebs <shebs@apple.com> 1169 1170 * cp-tree.h (FNADDR_FROM_VTABLE_ENTRY): Remove, no longer used. 1171 (fnaddr_from_vtable_entry): Remove decl. 1172 * method.c (use_thunk): Update comment. 1173 11742001-08-01 Andrew Cagney <ac131313@redhat.com> 1175 1176 * repo.c (get_base_filename): Change return value to const char 1177 pointer. 1178 11792001-08-02 Nathan Sidwell <nathan@codesourcery.com> 1180 1181 Kill -fhonor-std. 1182 * NEWS: Document. 1183 * cp-tree.h (flag_honor_std): Remove. 1184 (CPTI_FAKE_STD): Remove. 1185 (std_node): Remove comment about it being NULL. 1186 (fake_std_node): Remove. 1187 * decl.c (in_fake_std): Remove. 1188 (walk_namespaces_r): Remove fake_std_node check. 1189 (push_namespace): Remove in_fake_std code. 1190 (pop_namespace): Likewise. 1191 (lookup_name_real): Remove fake_std_node check. 1192 (init_decl_processing): Always create std_node. Always add 1193 std:: things there. 1194 (builtin_function): Always put non '_' fns in std. 1195 * decl2.c (flag_honor_std): Remove. 1196 (lang_f_options): Remove honor-std. 1197 (unsupported_options): Add honor-std. 1198 (set_decl_namespace): Remove fake_std_node check. 1199 (validate_nonmember_using_decl): Likewise. 1200 (do_using_directive): Likewise. 1201 (handle_class_head): Likewise. 1202 * dump.c (cp_dump_tree): Likewise. 1203 * except.c (init_exception_processing): Adjust. 1204 * init.c (build_member_call): Remove fake_std_node check. 1205 (build_offset_ref): Likewise. 1206 * lang-options.h: Remove -fhonor-std, -fno-honor-std. 1207 * rtti.c (init_rtti_processing): Adjust. 1208 12092001-07-31 Alexandre Petit-Bianco <apbianco@redhat.com> 1210 1211 * tree.c (cp_tree_equal): WITH_CLEANUP_EXPR node to use its second 1212 operand while calling cp_tree_equal. 1213 12142001-07-31 Nathan Sidwell <nathan@codesourcery.com> 1215 1216 The 3.0 ABI no longer has vbase pointer fields. 1217 * cp-tree.h (VBASE_NAME, VBASE_NAME_FORMAT, VBASE_NAME_P, 1218 FORMAT_VBASE_NAME): Remove. 1219 * method.c (do_build_copy_constructor): Adjust. 1220 (do_build_assign_ref): Adjust. 1221 * search.c (lookup_field_r): Adjust. 1222 * typeck.c (build_component_ref): Adjust. 1223 1224 The 3.0 ABI always has a vtable pointer at the start of every 1225 polymorphic class. 1226 * rtti.c (build_headof_sub): Remove. 1227 (build_headof): Adjust. 1228 (get_tinfo_decl_dynamic): No need to check flag_rtti 1229 here. Adjust. 1230 (create_real_tinfo_var): Explain why we need a hidden name. 1231 12322001-07-31 Nathan Sidwell <nathan@codesourcery.com> 1233 1234 PR c++/3631 1235 * class.c (update_vtable_entry_for_fn): The fixed adjustment 1236 of a virtual thunk should be from declaring base. 1237 12382001-07-31 Nathan Sidwell <nathan@codesourcery.com> 1239 1240 * class.c (dfs_ctor_vtable_bases_queue_p): Always walk into 1241 the shared virtual base, so preserving inheritance graph order. 1242 12432001-07-30 Andreas Jaeger <aj@suse.de> 1244 1245 * decl2.c: Remove unused var global_temp_name_counter. 1246 12472001-07-28 Richard Henderson <rth@redhat.com> 1248 1249 * method.c (pending_inlines): Remove. 1250 12512001-07-27 Nathan Sidwell <nathan@codesourcery.com> 1252 1253 * class.c (mark_primary_virtual_base): Don't adjust base 1254 offsets here. 1255 (dfs_unshared_virtual_bases): Adjust them here. 1256 (mark_primary_bases): Explain why we adjust at the end. 1257 12582001-07-27 Nathan Sidwell <nathan@codesourcery.com> 1259 1260 * class.c (finish_struct_1): When copying the primary base's 1261 VFIELD, make sure we find it is at offset zero. 1262 12632001-07-26 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1264 1265 * pt.c (tsubst_template_parms): Call maybe_fold_nontype_arg and 1266 tsubst_expr for default template arguments. 1267 12682001-07-26 Nathan Sidwell <nathan@codesourcery.com> 1269 1270 PR c++/3621 1271 * spew.c (yylex): Only copy the token's lineno, if it is 1272 nonzero. 1273 12742001-07-26 Nathan Sidwell <nathan@codesourcery.com> 1275 1276 PR c++/3624 1277 * call.c (resolve_args): Simplify, call 1278 convert_from_reference. 1279 (build_new_op): Resolve and convert from reference ARG1 1280 earlier. Adjust ARG2 & ARG3 resolve and conversion. 1281 12822001-07-26 Nathan Sidwell <nathan@codesourcery.com> 1283 1284 * decl.c (last_function_parm_tags): Remove. 1285 (current_function_parm_tags): Remove. 1286 (init_decl_processing): Adjust. 1287 (start_function): Adjust. 1288 (store_parm_decls): Adjust. 1289 1290 PR c++/3152 1291 * decl.c (grokdeclarator): Detect when a function typedef is 1292 declaring a function, and create last_function_parms correctly. 1293 12942001-07-25 Jason Merrill <jason_merrill@redhat.com> 1295 1296 * call.c (joust): Only prefer a non-builtin candidate to a builtin 1297 one if they have the same signature. 1298 1299 * cvt.c (build_up_reference): Take DECL parm. Check TREE_STATIC on 1300 it rather than toplevel_bindings_p. Give it a mangled name if static. 1301 (convert_to_reference): Adjust. 1302 * decl2.c (get_temp_name): Lose. 1303 * mangle.c (mangle_ref_init_variable): New fn. 1304 (mangle_guard_variable): Strip the ref-init header. 1305 * cp-tree.h: Adjust. 1306 * decl.c (cp_finish_decl): Add the DECL_STMT after processing the 1307 initializer. 1308 (grok_reference_init): Always use DECL_INITIAL. 1309 13102001-07-25 Nathan Sidwell <nathan@codesourcery.com> 1311 1312 PR c++/3416 1313 * call.c (build_conditional_expr): Recheck args after 1314 conversions. 1315 * cp-tree.h (build_conditional_expr): Move to correct file. 1316 * typeck.c (decay_conversion): Diagnose any unknown types 1317 reaching here. 1318 (build_binary_op): Don't do initial decay or default 1319 conversions on overloaded functions. 1320 (build_static_cast): Don't do a decay conversion here. 1321 13222001-07-25 Nathan Sidwell <nathan@codesourcery.com> 1323 1324 PR c++/3543 1325 * typeck.c (condition_conversion): Resolve an OFFSET_REF. 1326 * expr.c (cplus_expand_expr): An OFFSET_REF should never get here. 1327 13282001-07-25 Nathan Sidwell <nathan@codesourcery.com> 1329 1330 * class.c (build_vtbl_or_vbase_field): Remove, move into ... 1331 (create_vtbl_ptr): ... here. 1332 13332001-07-25 Nathan Sidwell <nathan@codesourcery.com> 1334 1335 * class.c (build_vbase_offset_vbtl_entries): Look for 1336 non-primary base of which we are a sub vtable. 1337 13382001-07-24 Phil Edwards <pme@sources.redhat.com> 1339 1340 * semantics.c (finish_this_expr): Remove unused code. 1341 13422001-07-24 Nathan Sidwell <nathan@codesourcery.com> 1343 1344 Simplify rtti, now we've only one ABI. 1345 * cp-tree.h (cp_tree_index): Remove CPTI_TINFO_DECL_ID, 1346 CPTI_TINFO_VAR_ID. 1347 (tinfo_decl_id, tinfo_var_id): Remove. 1348 (get_typeid_1): Remove. 1349 * rtti.c 1350 (init_rtti_processing): Remove tinfo_decl_id & tinfo_var_id. 1351 (typeid_ok_p): New function. 1352 (build_type_id): Call typeid_ok_p. Don't call tinfo_from_decl. 1353 (get_tinfo_decl): Remove old abi documentation. 1354 (tinfo_from_decl): Remove. 1355 (get_type_id): Call typeid_ok_p. Absorb get_typeid_1. 1356 (get_typeid_1): Remove. 1357 (get_base_offset): Remove. 1358 (synthesize_tinfo_var): Absorb get_base_offset. 1359 (create_real_tinfo_var): Don't use tinfo_decl_id. 1360 13612001-07-23 Graham Stott <grahams@redhat.com> 1362 1363 * cp/class.c (type_requires_array_cookie): Fix use of uninitialized 1364 variable has_two_argument_delete_p. 1365 13662001-07-21 Nathan Sidwell <nathan@codesourcery.com> 1367 1368 Remove flag_vtable_thunk. It is always on for the 3.0 ABI. 1369 * cp-tree.h (CPTI_DELTA2_IDENTIFIER): Remove. 1370 (CPTI_INDEX_IDENTIFIER): Remove. 1371 (CPT_PFN_OR_DELTA2_IDENTIFIER): Remove. 1372 (delta2_identifier): Remove. 1373 (index_identifier): Remove. 1374 (pfn_or_delta2_identifier): Remove. 1375 (flag_vtable_thunks): Remove. 1376 (VTABLE_DELTA2_NAME): Remove. 1377 (VTABLE_INDEX_NAME): Remove. 1378 (FNADDR_FROM_VTABLE_ENTRY): Adjust. 1379 (vfunc_ptr_type_node): Adjust. 1380 (VTABLE_NAME_PREFIX): Adjust. 1381 (build_vfn_ref): Lose first parameter. 1382 (fixup_all_virtual_upcast_offsets): Remove. 1383 * decl.c (initialize_predefined_identifiers): Remove 1384 delta2_identifier, index_identifier, pfn_or_delta2_identifier. 1385 (init_decl_processing): Remove no-vtable-thunk code. 1386 * decl2.c (flag_vtable_thunks): Remove. 1387 (mark_vtable_entries): Remove no-vtable-thunk code. 1388 * error.c (dump_decl): Remove no-vtable-thunk code. 1389 (dump_expr): Adjust ptr to member function code. 1390 * init.c (initialize_vtable_ptrs): Remove no-vtable-thunk 1391 code. 1392 * rtti.c (build_headof): Remove no-vtable-thunk code. 1393 (get_tinfo_decl_dynamic): Adjust build_vfn_ref call. 1394 * search.c (get_base_distance): Remove expand_upcast_fixups case. 1395 (virtual_context) Remove. 1396 (expand_upcast_fixups): Remove. 1397 (fixup_virtual_upcast_offsets): Remove. 1398 (fixup_all_virtual_upcast_offsets): Remove. 1399 * typeck.c (get_member_function_from_ptrfunc): Remove 1400 no-vtable-thunk code. 1401 * call.c (build_over_call): Adjust call to build_vfn_ref. 1402 * class.c (build_vfn_ref): Lose first parameter. Remove 1403 no-vtable-thunk code. 1404 (build_rtti_vtbl_entries): Remove no-vtable-thunk code. 1405 (build_vtable_entry): Remove no-vtable-thunk code. 1406 14072001-07-20 Nathan Sidwell <nathan@codesourcery.com> 1408 1409 Remove old-abi remnants. Remove comments about old abi 1410 behavior. Remove references to 'new-abi' in comments. 1411 * cp-tree.h: Adjust comments. 1412 (vbase_offsets_in_vtable_p): Delete. 1413 (vcall_offsets_in_vtable_p): Delete. 1414 (vptrs_present_everywhere_p): Delete. 1415 (all_overridden_vfuns_in_vtables_p): Delete. 1416 (merge_primary_and_secondary_vtables_p): Delete. 1417 (TYPE_CONTAINS_VPTR_P): Adjust. 1418 (VTT_NAME_PREFIX): Remove. 1419 (CTOR_VTBL_NAME_PREFIX): Remove. 1420 (init_vbase_pointers): Remove. 1421 * class.c: Adjust coments. 1422 (build_vbase_pointer_fields): Delete. 1423 (build_vbase_pointer): Remove old-abi code. 1424 (build_secondary_vtable): Likewise. 1425 (modify_all_vtables): Likewise. 1426 (create_vtable_ptr): Likewise. 1427 (layout_class_type): Likewise. 1428 (finish_struct_1): Likewise. 1429 (finish_vtbls): Likewise. 1430 (dfs_finish_vtbls): Delete. 1431 (build_vbase_offset_vtbl_entries): Remove old-abi code. 1432 * cvt.c: Adjust comments. 1433 * decl.c: Adjust comments. 1434 * decl2.c: Adjust comments. 1435 * init.c: Adjust comments. 1436 (construct_virtual_bases): Remove old-abi code. 1437 * lang-specs.h: Remove -fno-new-abi. 1438 * mangle.c: Adjust comments. 1439 * rtti.c: Adjust comments. 1440 (get_base_offset): Remove old-abi-code. 1441 * search.c: Adjust comments. 1442 (dfs_init_vbase_pointers): Remove. 1443 (dfs_vtable_path_unmark): Remove. 1444 (init_vbase_pointers): Remove. 1445 * semantics.c: Adjust comments. 1446 (emit_associated_thunks): Remove old-abi code. 1447 * typeck.c: Adjust comments. 1448 14492001-07-20 Daniel Berlin <dan@cgsoftware.com> 1450 1451 * Make-lang.in (cp/optimize.o): Depend on $(PARAMS_H), not 1452 params.h. 1453 14542001-07-19 Mark Mitchell <mark@codesourcery.com> 1455 1456 * class.c (finish_struct_anon): Forbid nested classes. 1457 14582001-07-19 Neil Booth <neil@daikokuya.demon.co.uk> 1459 1460 * decl2.c: Don't include dwarfout.h and dwarf2out.h. 1461 * optimize.c: Include debug.h. 1462 (maybe_clone_body): Use debug hook. 1463 * semantics.c: Include debug.h. 1464 (expand_body): Use debug hook. 1465 14662001-07-19 Neil Booth <neil@daikokuya.demon.co.uk> 1467 1468 * spew.c (read_token, yyerror): Remove CPP_INT, CPP_FLOAT cases. 1469 14702001-07-18 Mark Mitchell <mark@codesourcery.com> 1471 1472 * class.c (type_requires_array_cookie): New function. 1473 (check_methods): Don't try to figure out whether the type needs a 1474 cookie here. 1475 (check_bases_and_members): Set TYPE_VEC_NEW_USES_COOKIE here. 1476 * cp-tree.h (TYPE_VEC_DELETE_TAKES_SIZE): Remove. 1477 (TYPE_VEC_NEW_USES_COOKIE): Reimplement. 1478 * pt.c (instantiate_class_template): Don't set 1479 TYPE_VEC_DELETE_TAKES_SIZE. 1480 * NEWS: Document ABI changes from GCC 3.0. 1481 14822001-07-18 Xavier Delacour <xavier@fmaudio.net>, 1483 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> 1484 1485 * NEWS (Changes in GCC 3.0): Fix typo. 1486 14872001-07-13 Joseph S. Myers <jsm28@cam.ac.uk> 1488 1489 * decl2.c (cplus_decl_attributes): Take a pointer to the node to 1490 which attributes are to be attached, and a flags argument. Update 1491 call to decl_attributes. 1492 (grokfield): Update call to decl_attributes. 1493 * class.c (finish_struct): Update call to cplus_decl_attributes. 1494 * cp-tree.h (cplus_decl_attributes): Update prototype. 1495 * decl.c (start_decl, grokdeclarator, start_function): Update 1496 calls to decl_attributes and cplus_decl_attributes. 1497 * friend.c (do_friend): Update call to cplus_decl_attributes. 1498 * parse.y (parse_bitfield): Update call to cplus_decl_attributes. 1499 15002001-07-12 Mark Mitchell <mark@codesourcery.com> 1501 1502 * decl.c (make_rtl_for_nonlocal_decl): Set DECL_C_HARD_REGISTER 1503 for `register' variables with an asm-specification. 1504 15052001-07-11 Mark Mitchell <mark@codesourcery.com> 1506 1507 * semantics.c (finish_asm_stmt): Mark the output operands 1508 to an asm addressable, if necessary. 1509 15102001-07-11 Ben Elliston <bje@redhat.com> 1511 1512 * Revert this change -- there is a subtle bug. 1513 1514 PR c++/80 1515 * decl.c (finish_enum): New "attributes" argument; pass it to 1516 cplus_decl_attributes. Use a narrower type if the enum is packed. 1517 * cp-tree.h (finish_enum): Adjust prototype. 1518 * parse.y (enum_head): New non-terminal. 1519 (structsp): Use it. Enums now may be preceded or followed by 1520 optional attributes -- pass their chained tree to finish_enum(). 1521 * pt.c (tsubst_enum): Pass NULL_TREE for the new argument. 1522 15232001-07-10 Mark Mitchell <mark@codesourcery.com> 1524 1525 * pt.c (tsubst_decl): Set DECL_CONTEXT for namespace-scope 1526 variables. 1527 15282001-07-10 Jason Merrill <jason_merrill@redhat.com> 1529 1530 * semantics.c (cp_expand_stmt): Fix for null 1531 current_function_return_value. 1532 15332001-07-10 Jan van Male <jan.vanmale@fenk.wau.nl> 1534 1535 * call.c (build_op_delete_call): Initialize fn. 1536 (convert_like_real): Delete conditional. 1537 (joust): Initialize *w and *l. 1538 * class.c: Add prototype for binfo_ctor_vtable. 1539 (get_primary_binfo): Initialize result. 1540 * init.c (build_java_class_ref): Initialize name. 1541 15422001-07-09 Erik Rozendaal <dlr@acm.org> 1543 1544 * typeck.c (unary_complex_lvalue): Do not duplicate the 1545 argument to modify, pre-, or post-increment when used as an 1546 lvalue and when the argument has side-effects. 1547 15482001-07-08 Joseph S. Myers <jsm28@cam.ac.uk> 1549 1550 * decl.c (start_decl): Don't call SET_DEFAULT_DECL_ATTRIBUTES. 1551 (start_function): Don't call SET_DEFAULT_DECL_ATTRIBUTES. Call 1552 cplus_decl_attributes even if attrs is NULL. 1553 * friend.c (do_friend): Don't call SET_DEFAULT_DECL_ATTRIBUTES. 1554 15552001-07-08 Joseph S. Myers <jsm28@cam.ac.uk> 1556 1557 * decl.c (grokdeclarator), decl2.c (cplus_decl_attributes): Update 1558 calls to decl_attributes. 1559 15602001-07-06 Ira Ruben <ira@apple.com> 1561 1562 * cp-tree.def (TEMPLATE_DECL): Update comment. DECL_RESULT should 1563 be DECL_TEMPLATE_RESULT. 1564 15652001-07-05 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1566 1567 * cp-tree.h (copy_template_template_parm): Rename to ... 1568 (bind_template_template_parm): ... here. 1569 * tree.c (copy_template_template_parm): Rename to ... 1570 (bind_template_template_parm): ... here. Remove the case when 1571 NEWARGS is NULL_TREE. 1572 (copy_tree_r): Don't copy TEMPLATE_TEMPLATE_PARM and 1573 BOUND_TEMPLATE_TEMPLATE_PARM. 1574 * pt.c (lookup_template_class): Adjust. 1575 15762001-07-05 Jason Merrill <jason_merrill@redhat.com> 1577 1578 * cvt.c (convert_lvalue): New fn. 1579 * cp-tree.h: Declare it. 1580 * method.c (do_build_assign_ref): Use it. 1581 (do_build_copy_constructor): Convert parm to base types 1582 before calling base constructors. 1583 1584 * typeck.c (check_return_expr): Check DECL_ALIGN instead of 1585 DECL_USER_ALIGN. Check flag_elide_constructors instead of 1586 optimize. 1587 * semantics.c (cp_expand_stmt): Don't destroy the named return value. 1588 15892001-07-02 Nathan Sidwell <nathan@codesourcery.com> 1590 1591 * optimize.c (optimize_inline_calls): New function, broken out 1592 of ... 1593 (optimize_function): ... here. Call it. Don't inline if it is 1594 a thunk. 1595 (dump_function): Print name of dump flag causing this dump. 1596 * semantics.c (expand_body): Move thunk inline check to 1597 optimize_function. 1598 15992001-06-29 Joseph S. Myers <jsm28@cam.ac.uk> 1600 1601 * typeck.c (COMP_TYPE_ATTRIBUTES): Don't define. 1602 (comptypes): Use target.comp_type_attributes. 1603 16042001-06-29 Nathan Sidwell <nathan@codesourcery.com> 1605 1606 * cp-tree.h (flag_dump_class_layout): Remove unneeded declaration. 1607 16082001-06-28 Gabriel Dos Reis <gdr@merlin.codesourcery.com> 1609 1610 * error.c (lang_print_error_function): Add a `diagnostic_context *' 1611 parameter. Tweak. 1612 16132001-06-27 Neil Booth <neil@cat.daikokuya.demon.co.uk> 1614 1615 * decl2.c (import_export_class): Update. 1616 16172001-06-26 Gabriel Dos Reis <gdr@codesourcery.com> 1618 1619 * error.c (init_error): Adjust settings. 1620 16212001-06-26 Gabriel Dos Reis <gdr@codesourcery.com> 1622 1623 * error.c (init_error): Adjust settings. 1624 16252001-06-19 Richard Sandiford <rsandifo@redhat.com> 1626 1627 * except.c (initialize_handler_parm): Expect __cxa_begin_catch to 1628 return pointers to data members by reference rather than by value. 1629 16302001-06-18 Jason Merrill <jason_merrill@redhat.com> 1631 1632 Implement the Named Return Value optimization. 1633 * cp-tree.h (struct cp_language_function): Add x_return_value. 1634 (current_function_return_value): Now a macro. 1635 * decl.c: Don't define it. 1636 (define_label, finish_case_label): Don't clear it. 1637 (init_decl_processing): Don't register it with GC. 1638 * semantics.c (genrtl_finish_function): Don't check it for 1639 no_return_label. Copy the RTL from the return value to 1640 current_function_return_value and walk, calling... 1641 (nullify_returns_r): ...this new fn. 1642 * typeck.c (check_return_expr): Set current_function_return_value. 1643 16442001-06-15 Jason Merrill <jason_merrill@redhat.com> 1645 1646 * class.c (dfs_accumulate_vtbl_inits): Just point to the base we're 1647 sharing a ctor vtable with. Merge code for cases 1 and 2. 1648 (binfo_ctor_vtable): New fn. 1649 (build_vtt_inits, dfs_build_secondary_vptr_vtt_inits): Use it. 1650 16512001-06-14 Jason Merrill <jason_merrill@redhat.com> 1652 1653 * class.c (dfs_find_final_overrider): Fix logic. 1654 1655 * class.c (update_vtable_entry_for_fn): Uncomment optimization to use 1656 virtual thunk instead of non-virtual. 1657 (get_matching_virtual): Uncomment. 1658 1659 * pt.c (unify): Don't recurse between the POINTER_TYPE and the 1660 OFFSET_TYPE. If we're adding cv-quals, the extra ones would be on 1661 PARM, not ARG. 1662 16632001-06-14 Nathan Sidwell <nathan@codesourcery.com> 1664 1665 * class.c (dfs_accumulate_vtbl_inits): For case 2 & 3, make sure 1666 we've not emerged from the hierarchy of RTTI_BINFO on reaching 1667 a non-virtual base. 1668 16692001-06-13 Mark Mitchell <mark@codesourcery.com> 1670 1671 * NEWS: Update release number. 1672 16732001-06-12 Nathan Sidwell <nathan@codesourcery.com> 1674 1675 PR c++/3130, c++/3131, c++/3132 1676 * cp-tree.h (BINFO_UNSHARED_MARKED): New #define. 1677 * class.c (force_canonical_binfo_r): Move 1678 BINFO_UNSHARED_MARKED, BINFO_LOST_PRIMARY_P. Don't move 1679 virtual bases unless they're primary and what they're primary 1680 too has been moved. 1681 (dfs_unshared_virtual_bases): Use BINFO_UNSHARED_MARKED. Cope 1682 with morally virtual bases. Duplicate BINFO_LOST_PRIMARY_P and 1683 BINFO_PRIMARY_BASE_OF. Clear BINFO_VTABLE for all but the most 1684 derived binfo. 1685 (mark_primary_bases): Use BINFO_UNSHARED_MARKED. 1686 (layout_nonempty_base_or_field): Add most derived type 1687 parameter. Adjust. 1688 (layout_empty_base): Likewise. 1689 (build_base_field): Likewise. 1690 (build_base_fields): Likewise. 1691 (propagate_binfo_offsets): Add most derived type 1692 parameter. Skip non canonical virtual bases too. 1693 (dfs_set_offset_for_unshared_vbases): Don't skip primary 1694 bases. Do skip canonical bases. 1695 (layout_virtual_bases): Adjust. 1696 (layout_class_type): Adjust. 1697 (dfs_get_primary_binfo): Build list of virtual primary base 1698 candidates. 1699 (get_primary_binfo): Check that the shared virtual primary 1700 base candidate was found first. 1701 (accumulate_vtbl_inits): Don't do anything for non-vptr 1702 containing binfos. For case 1 primary virtual bases, keep 1703 checking that we've not emerged from the hierarchy of RTTI_BINFO. 1704 17052001-06-12 Nathan Sidwell <nathan@codesourcery.com> 1706 1707 PR c++/3089 1708 * class.c (dfs_accumulate_vtbl_inits): Always walk down the 1709 hierarchy looking for primary bases for a ctor 1710 vtable. Recursively call oneself, if we meet our primary via 1711 this route and haven't met it yet via inheritance graph order. 1712 17132001-06-11 Mark Mitchell <mark@codesourcery.com> 1714 1715 * lang-options.h: Emit documentation for -fno-honor-std, not 1716 -fhonor-std. 1717 17182001-06-10 Alexandre Oliva <aoliva@redhat.com> 1719 1720 * typeck.c (get_member_function_from_ptrfunc) [vbit_in_delta]: 1721 Don't clobber delta. 1722 (expand_ptrmemfunc_cst) [ptrmemfunc_vbit_in_delta]: Adjust pfn. 1723 17242001-06-10 Mark Mitchell <mark@codesourcery.com> 1725 Gabriel Dos Reis <gdr@codesourcery.com> 1726 1727 * Make-lang.in (cp/call.o): Depend on diagnostic.h 1728 (cp/typeck.o): Depend on diagnostic.h 1729 (cp/typeck2.o): Depend on diagnostic.h 1730 (cp/repo.o): Depend on dignostic.h 1731 * typeck.c: #include diagnostic.h 1732 (convert_for_initialization): Remove extern declaration for 1733 warningcount and errorcount. 1734 1735 * call.c: #include diagnostic.h 1736 (convert_like_real): Remove extern declaration for warnincount and 1737 errorcount. 1738 1739 * repo.c: #include diagnostic.h 1740 * typeck2.c: #include diagnostic.h 1741 17422001-06-08 Nathan Sidwell <nathan@codesourcery.com> 1743 1744 * decl.c (duplicate_decls): Fix DECL_TEMPLATE_RESULT thinko 1745 in previous change. 1746 17472001-06-08 Nathan Sidwell <nathan@codesourcery.com> 1748 1749 PR c++/2929 1750 * friend.c (do_friend): Use push_decl_namespace for classes at 1751 namespace scope. 1752 17532001-06-08 Nathan Sidwell <nathan@codesourcery.com> 1754 Jason Merrill <jason_merrill@redhat.com> 1755 1756 PR c++/3061 1757 * class.c (build_secondary_vtable): Use assert, rather than an error 1758 message. 1759 (dfs_fixup_binfo_vtbls): BINFO_VTABLE might be NULL. 1760 (dfs_accumulate_vtbl_inits): A lost primary virtual base may 1761 be between ORIG_BINFO and RTTI_BINFO, but neither of them. 1762 Don't set BINFO_VTABLE for a primary virtual base. 1763 17642001-06-07 Mark Mitchell <mark@codesourcery.com> 1765 1766 * decl.c (duplicate_decls): Update source position information 1767 when a template function is defined. 1768 17692001-06-07 Phil Edwards <pme@sources.redhat.com> 1770 1771 * lang-specs.h: Move -D_GNU_SOURCE to config/linux.h. 1772 17732001-06-07 Nathan Sidwell <nathan@codesourcery.com> 1774 1775 PR c++/2914 1776 * decl.c (pushtag): Don't push into a complete type's scope. 1777 17782001-06-06 Jason Merrill <jason_merrill@redhat.com> 1779 1780 * cp-tree.h (THUNK_GENERATE_WITH_VTABLE_P): Lose. 1781 (struct lang_decl_flags): Lose generate_with_vtable_p. 1782 (BV_GENERATE_THUNK_WITH_VTABLE_P): Lose. 1783 * class.c (copy_virtuals): Adjust. 1784 * decl2.c (mark_vtable_entries): Adjust. 1785 * method.c (make_thunk, build_vtable_entry): Adjust. 1786 * class.c (update_vtable_entry_for_fn): Only look as far as the 1787 first defining class. 1788 (build_vtbl_initializer): Put nothing in the slot for a function only 1789 defined in a lost primary virtual base. 1790 (add_vcall_offset_vtbl_entries_1): Use the same code for 1791 the lost primary case and the normal case. 1792 (dfs_unshared_virtual_bases): Don't lose a non-virtual primary base. 1793 (get_vfield_offset, get_derived_offset): Lose. 1794 (dfs_find_final_overrider): Use look_for_overrides_here. 1795 (get_matching_virtual): New fn. 1796 * semantics.c (emit_associated_thunks): Check BV_USE_VCALL_INDEX_P, 1797 not BV_VCALL_INDEX. 1798 * search.c (look_for_overrides_here): Split out from... 1799 (look_for_overrides_r): Here. 1800 1801 * class.c (find_final_overrider): Return error_mark_node on error. 1802 1803 * decl2.c (key_method): #if 0 accidental change. 1804 18052001-06-06 John David Anglin <dave@hiauly1.hia.nrc.ca> 1806 1807 * call.c (convert_default_arg): Use INTEGRAL_TYPE_P. 1808 (build_over_call): Likewise. 1809 * decl.c (grokparms): Likewise. 1810 * pt.c (tsubst_decl): Likewise. 1811 * typeck.c (convert_arguments): Likewise. 1812 18132001-06-05 Mark Mitchell <mark@codesourcery.com> 1814 1815 * semantics.c (begin_class_definition): Robustify. 1816 1817 * pt.c (instantiate_decl): Tell the repository code about the 1818 clones, not the cloned functions. 1819 * repo.c (repo_template_used): Explicitly instantiate the cloned 1820 function, not the clones. 1821 18222001-06-05 Nathan Sidwell <nathan@codesourcery.com> 1823 1824 * call.c (build_user_type_conversion_1): Set ICS_USER_FLAG and 1825 ICS_BAD_FLAG on created conversion. 1826 (compare_ics): Break out rank. 1827 18282001-06-05 Nathan Sidwell <nathan@codesourcery.com> 1829 1830 * decl.c (xref_tag): Remove extraneous %s on dependent name 1831 lookup warning. 1832 18332001-06-05 Nathan Sidwell <nathan@codesourcery.com> 1834 1835 * class.c (layout_vtable_decl): Fix off by one error on 1836 build_index_type. 1837 (build_vtt): Likewise. 1838 (build_ctor_vtbl_group): Likewise. 1839 18402001-06-05 Nathan Sidwell <nathan@codesourcery.com> 1841 1842 * class.c (maybe_indent_hierarchy): New function. 1843 (dump_class_hierarchy_r): Add flags. Dump extra binfo 1844 information, if enabled. Use maybe_indent_hierarchy. Adjust 1845 output format. 1846 (dump_class_hierarchy): Adjust prototype. Adjust output format. 1847 (dump_array, dump_vtable, dump_vtt): New functions. 1848 (finish_struct_1): Adjust hierarchy dumping. 1849 (initialize_vtable): Call dump_vtable. 1850 (build_vtt): Call dump_vtt. 1851 (build_ctor_vtbl_group): Call dump_vtable. 1852 * decl2.c (flag_dump_class_layout): Remove. 1853 (cxx_decode_option): Remove dump translation unit 1854 and dump class hierarchy check. Call dump_switch_p. 1855 (finish_file): Adjust dumping. 1856 (dump.c): Only dump base classes if not TDF_SLIM. 1857 Only dump namespace members if not TDF_SLIM. 1858 * optimize.c (dump_function): New function. 1859 (optimize_function): Call dump_function. 1860 * semantics.c (expand_body): Use dump_enabled_p. 1861 18622001-06-01 Nathan Sidwell <nathan@codesourcery.com> 1863 1864 PR g++/2936 1865 Part missed from first commit 1866 * decl2.c (finish_anon_union): Copy context. 1867 18682001-05-30 Nathan Sidwell <nathan@codesourcery.com> 1869 1870 PR g++/2936 1871 * optimize.c (remap_decl): Remap anonymous aggregate members too. 1872 18732001-05-26 Nathan Sidwell <nathan@codesourcery.com> 1874 1875 PR g++/2823 1876 * semantics.c (expand_body): Don't optimize thunks. 1877 18782001-05-25 Sam TH <sam@uchicago.edu> 1879 1880 * cp-tree.h lex.h: Fix header include guards. 1881 18822001-05-25 Mark Mitchell <mark@codesourcery.com> 1883 1884 * decl.c (init_decl_processing): Tweak. 1885 18862001-05-24 Mark Mitchell <mark@codesourcery.com> 1887 1888 * decl.c (duplicate_decls): Tidy. 1889 (init_decl_processing): Always set flag_no_builtin. 1890 18912001-05-24 Nathan Sidwell <nathan@codesourcery.com> 1892 1893 PR c++/2184 1894 * decl2.c (do_local_using_decl): Push the decls, even in a 1895 template. 1896 18972001-05-22 Mark Mitchell <mark@codesourcery.com> 1898 1899 * optimize.c (initialize_inlined_parameters): Don't set 1900 TREE_READONLY for a VAR_DECL taking the place of an inlined 1901 PARM_DECL. 1902 19032001-05-22 Jason Merrill <jason_merrill@redhat.com> 1904 1905 * class.c, cp-tree.h, rtti.c: Remove com_interface attribute support. 1906 * tree.c (cp_valid_lang_attribute): Warn about use of com_interface 1907 attribute. 1908 19092001-05-22 Joseph S. Myers <jsm28@cam.ac.uk> 1910 1911 * parse.y: Refer to compound literals as such, not as 1912 constructor-expressions. 1913 19142001-05-21 Mark Mitchell <mark@codesourcery.com> 1915 1916 * call.c (build_op_delete_call): Ignore exception-specifications 1917 when looking for matching delete operators. 1918 * init.c (build_new_1): Compute whether or not the allocation 1919 function used is a placement allocation function or not, and 1920 communicate this information to build_op_delete_call. 1921 19222001-05-21 Jason Merrill <jason_merrill@redhat.com> 1923 1924 * class.c (build_vtable_entry_ref): Lose vtbl parm. Fix for new abi. 1925 (build_vtbl_ref): Adjust. 1926 (dfs_accumulate_vtbl_inits): Set TREE_CONSTANT on the vtable address. 1927 * decl2.c (lang_f_options): Remove huge-objects, vtable-thunks. 1928 Re-add vtable-gc. 1929 (unsupported_options): Correspondingly. 1930 1931 * decl2.c (maybe_make_one_only): Check flag_weak, not 1932 supports_one_only(). 1933 1934 * cp-tree.def (START_CATCH_STMT): Lose. 1935 * dump.c (cp_dump_tree): Don't dump it. Do dump HANDLER_PARMS. 1936 * tree.c (cp_statement_code_p): Don't case it. 1937 * semantics.c (cp_expand_stmt): Likewise. 1938 * cp-tree.h (START_CATCH_TYPE): Lose. 1939 (HANDLER_TYPE): New. 1940 * except.c (expand_start_catch_block): Don't start any blocks. 1941 Return the type. 1942 (expand_end_catch_block): Don't end any blocks. 1943 * parse.y (handler): Don't pass anything from finish_handler_parms 1944 to finish_handler. 1945 * pt.c (tsubst_expr): Likewise. 1946 * semantics.c (begin_handler): Call note_level_for_catch here. 1947 (finish_handler_parms): Don't return anything. 1948 (genrtl_catch_block, begin_catch_block): Lose. 1949 (genrtl_handler): Call expand_start_catch here. 1950 19512001-05-18 Jason Merrill <jason_merrill@redhat.com> 1952 1953 * class.c (build_vtable): Set DECL_ASSEMBLER_NAME for vtables here. 1954 (get_vtable_decl, build_vtt): Not here. 1955 19562001-05-20 Nathan Sidwell <nathan@codesourcery.com> 1957 1958 PR c++/2781 1959 * optimize.c (update_cloned_parm): Copy addressability and other 1960 flags. 1961 19622001-05-20 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1963 1964 * pt.c (determine_specialization): Ignore artificial functions. 1965 19662001-05-20 Neil Booth <neil@daikokuya.demon.co.uk> 1967 1968 * cp-tree.h (struct lang_identifier, C_RID_YYCODE): Update. 1969 (C_RID_CODE): Remove. 1970 * lex.c (cxx_init_options): Call set_identifier_size. Update. 1971 (init_parse): Don't do it here. 1972 19732001-05-18 Diego Novillo <dnovillo@redhat.com> 1974 1975 * decl2.c (finish_objects): Use the original SYMBOL_REF from the 1976 function declaration to avoid stripping the symbol's attributes. 1977 19782001-05-18 Nathan Sidwell <nathan@codesourcery.com> 1979 1980 * decl.c (pushdecl): Adjust error string. 1981 (xref_tag): Adjust friend class injection warning. Remove the 1982 inherited name from the class shadowed scope. 1983 19842001-05-17 Mark Mitchell <mark@codesourcery.com> 1985 1986 * except.c (cp_protect_cleanup_actions): New function. 1987 (init_exception_processing): Don't set protect_cleanup_actions 1988 here. Do set lang_protect_cleanup_actions. 1989 19902001-05-16 Nathan Sidwell <nathan@codesourcery.com> 1991 1992 * spew.c (read_token): Call yyerror on all unexpected tokens. 1993 19942001-05-16 Nathan Sidwell <nathan@codesourcery.com> 1995 1996 * init.c (member_init_ok_or_else): Take a tree rather than 1997 string for name. 1998 (expand_member_init): Adjust. 1999 20002001-05-14 Nick Clifton <nickc@cambridge.redhat.com> 2001 2002 * decl.c (duplicate_decls): Suppress warning about duplicate 2003 decls if the first decl is a friend. 2004 20052001-05-12 Zack Weinberg <zackw@stanford.edu> 2006 2007 * except.c (choose_personality_routine): Export. Add 2008 explanatory comment. Take an enum languages, not a boolean. 2009 (initialize_handler_parm): Adjust to match. 2010 * cp-tree.h: Prototype choose_personality_routine. 2011 * lex.c (handle_pragma_java_exceptions): New function. 2012 (init_cp_pragma): Register #pragma GCC java_exceptions. 2013 20142001-05-12 Neil Booth <neil@cat.daikokuya.demon.co.uk> 2015 2016 * method.c (build_mangled_C99_name): Remove unused prototype. 2017 20182001-05-12 Alexandre Oliva <aoliva@redhat.com> 2019 2020 * cp-tree.h (ptrmemfunc_vbit_where_t): Declare type. 2021 * typeck.c (get_member_function_from_ptrfunc, 2022 build_ptrmemfunc, expand_ptrmemfunc_cst): Take 2023 TARGET_PTRMEMFUNC_VBIT_LOCATION into account. 2024 2025 Reverted Geoff Keating's 2001-05-03's patch. 2026 20272001-05-11 Ira Ruben <ira@apple.com> 2028 2029 * cp/cp-tree.h (C_EXP_ORIGINAL_CODE): Delete; declared in c-common.h. 2030 20312001-05-11 Neil Booth <neil@daikokuya.demon.co.uk> 2032 2033 * cp-tree.h (finish_label_expr, lookup_label): Delete. 2034 * parse.y: Update for '&&'; don't issue warning here. 2035 * semantics.c (finish_label_expr): Delete. 2036 20372001-05-07 Mark Mitchell <mark@codesourcery.com> 2038 2039 * splay-tree.h (splay_tree_max): New function. 2040 (splay_tree_min): Likewise. 2041 20422001-05-03 Geoffrey Keating <geoffk@redhat.com> 2043 2044 * cp-tree.h (enum cp_tree_index): Add CPTI_PFN_VFLAG_IDENTIFIER. 2045 (pfn_vflag_identifier): Define. 2046 Update comment about layout of pointer functions. 2047 (build_ptrmemfunc1): Update prototype. 2048 (expand_ptrmemfunc_cst): Update prototype. 2049 * decl.c (initialize_predefined_identifiers): Initialize 2050 pfn_vflag_identifier. 2051 (build_ptrmemfunc_type): When FUNCTION_BOUNDARY < 16, add 2052 an extra field to the type. 2053 * expr.c (cplus_expand_constant): Pass 'flag' between 2054 expand_ptrmemfunc_cst and build_ptrmemfunc1. 2055 * typeck.c (get_member_function_from_ptrfunc): When 2056 FUNCTION_BOUNDARY < 16, look at additional field to determine 2057 if a pointer-to-member is a real pointer or a vtable offset. 2058 (build_ptrmemfunc1): Add new parameter to contain extra field. 2059 (build_ptrmemfunc): Pass the extra field around. 2060 (expand_ptrmemfunc_cst): Add new parameter to return extra field. 2061 (pfn_from_ptrmemfunc): Ignore the extra field. 2062 20632001-05-03 Mark Mitchell <mark@codesourcery.com> 2064 2065 * cp-tree.h (flag_inline_trees): Update documentation. 2066 * decl.c (init_decl_processing): Adjust handling of 2067 flag_inline_functions and flag_inline_trees to support -O3. 2068 (grokfndecl): Set DECL_INLINE on all functions if that's what 2069 the user requested. 2070 (save_function_data): Clear DECL_INLINE in 2071 current_function_cannot_inline is non-NULL. 2072 * decl2.c (flag_inline_trees): Update documentation. 2073 20742001-05-03 Nathan Sidwell <nathan@codesourcery.com> 2075 2076 * dump.c (cp_dump_tree, USING_STMT case): New case. 2077 * tree.c (cp_statement_code_p): Add USING_STMT. 2078 * decl2.c (do_using_directive): Add the using directive statement. 2079 2080 * tree.c (walk_tree): Reformat an if block. 2081 20822001-05-02 Mark Mitchell <mark@codesourcery.com> 2083 2084 * decl.c (compute_array_index_type): Don't try to do anything with 2085 the indices when processing a template. 2086 20872001-05-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2088 2089 * call.c: NULL_PTR -> NULL. 2090 * class.c: Likewise. 2091 * cvt.c: Likewise. 2092 * decl.c: Likewise. 2093 * decl2.c: Likewise. 2094 * except.c: Likewise. 2095 * init.c: Likewise. 2096 * rtti.c: Likewise. 2097 * search.c: Likewise. 2098 * tree.c: Likewise. 2099 * typeck.c: Likewise. 2100 * typeck2.c: Likewise. 2101 21022001-05-02 Mark Mitchell <mark@codesourcery.com> 2103 2104 * decl2.c (do_using_directive): Revert previous patch. 2105 21062001-05-01 Nathan Sidwell <nathan@codesourcery.com> 2107 2108 * cp-tree.def (USING_STMT): New statement node. 2109 * cp-tree.h (USING_STMT_NAMESPACE): New macro. 2110 * decl2.c (do_using_directive): Add USING_STMT to statement 2111 tree. Don't emit errors when processing template decl. 2112 * pt.c (tsubst_expr, USING_STMT case): New case. 2113 * semantics.c (cp_expand_stmt, USING_STMT case): New case. 2114 21152001-05-01 Nathan Sidwell <nathan@codesourcery.com> 2116 2117 * call.c (build_new_op): Convert args from reference here. 2118 (build_conditional_expr): Don't convert here. 2119 21202001-05-01 Nathan Sidwell <nathan@codesourcery.com> 2121 2122 * spew.c (last_token_id): New static variable. 2123 (read_token): Set it here. 2124 (yyerror): Use it here. 2125 21262001-04-30 Richard Henderson <rth@redhat.com> 2127 2128 * cvt.c: Downcase C_PROMOTING_INTEGER_TYPE_P invocations. 2129 * decl.c: Likewise. 2130 21312001-04-30 Mark Mitchell <mark@codesourcery.com> 2132 2133 * gxxint.texi: Remove. 2134 * Make-lang.in: Remove all traces of gxxint.texi. 2135 21362001-04-30 Mark P Mitchell <mark@codesourcery.com> 2137 2138 * decl2.c (start_static_initialization_or_destruction): Correct 2139 logic to handle the -fno-use-cxa-atexit case. 2140 21412001-04-30 Mark Mitchell <mark@codesourcery.com> 2142 2143 * optimize.c (update_cloned_parm): New function. 2144 (maybe_clone_body): Use it. Update the `this' parameter too. 2145 21462001-04-29 Joseph S. Myers <jsm28@cam.ac.uk> 2147 2148 * decl2.c (unsupported_options): Add new-abi. 2149 * lang-options.h: Remove no longer supported options. 2150 21512001-04-27 Nathan Sidwell <nathan@codesourcery.com> 2152 2153 * except.c (can_convert_eh): Don't check template parms, 2154 typename types etc. 2155 21562001-04-27 Nathan Sidwell <nathan@codesourcery.com> 2157 2158 * optimize.c (maybe_clone_body): Copy parameter names and locations. 2159 21602001-04-27 Nathan Sidwell <nathan@codesourcery.com> 2161 2162 * cp-tree.h (adjust_clone_args): Prototype new function. 2163 * class.c (adjust_clone_args): New function. 2164 * decl.c (start_function): Call it for in charge ctors. 2165 21662001-04-26 Mark Mitchell <mark@codesourcery.com> 2167 2168 * method.c (use_thunk): Make sure that thunks really are emitted 2169 when requested. 2170 21712001-04-26 Nathan Sidwell <nathan@codesourcery.com> 2172 2173 * mangle.c (write_chars): New macro. 2174 (hwint_to_ascii): New function 2175 (write_number): Use it. 2176 (write_integer_cst): Deal with really big numbers. 2177 21782001-04-25 Mark Mitchell <mark@codesourcery.com> 2179 2180 * optimize.c (maybe_clone_body): Copy TREE_PUBLIC before emitting 2181 the clone. 2182 21832001-04-25 Nathan Sidwell <nathan@codesourcery.com> 2184 2185 * decl.c (grokdeclarator): Set context of namespace scope 2186 TYPE_DECLS. 2187 21882001-04-24 Zack Weinberg <zackw@stanford.edu> 2189 2190 * cp/optimize.c: Include hashtab.h. 2191 (struct inline_data): Add tree_pruner. 2192 (expand_call_inline, expand_calls_inline): Use it when calling 2193 walk_tree. 2194 (optimize_function): Initialize and free tree_pruner. 2195 21962001-04-24 Nathan Sidwell <nathan@codesourcery.com> 2197 2198 Lazy __FUNCTION__ generation. 2199 * cp-tree.def (FUNCTION_NAME): Remove. 2200 * cp-tree.h (function_name_declared_p): Remove. 2201 (cp_fname_init): Prototype. 2202 * decl.c (init_decl_processing): Don't generate __FUNCTION__ et al ids, 2203 don't call declare_function_name. Call start_fname_decls. 2204 (cp_make_fname_decl): Adjust parameters. Generate the name. Don't 2205 clobber the line number. 2206 (cp_fname_init): New function. 2207 (start_function): Call start_fname_decls. 2208 (finish_function): Call finish_fname_decls. 2209 * lex.c (reswords): Add slots for __FUNCTION__ et al. 2210 (rid_to_yy): Add mappings for __FUNCTION__ et al. 2211 * optimize.c (maybe_clone_body): Remove function_name_declared_p. 2212 * parse.y (VAR_FUNC_NAME): New token. 2213 (primary): Add VAR_FUNC_NAME. 2214 * pt.c (tsubst_decl): Adjust a DECL_PRETTY_FUNCTION_P's 2215 generation. 2216 (tsubst, FUNCTION_NAME case): Remove. 2217 (tsubst_copy, FUNCTION_NAME case): Remove. 2218 (tsubst_expr, DECL_STMT case): Be careful with a 2219 DECL_PRETTY_FUNCTION_P. 2220 (instantiate_decl): Remove function_name_declared_p. 2221 * semantics.c (begin_compound_statement): Don't call 2222 declare_function_name here. 2223 (setup_vtbl_ptr). Don't save & restore function_name_declared_p. 2224 (finish_translation_unit): Call finish_fname_decls. 2225 (expand_body): Remove function_name_declared_p. 2226 * typeck2.c (digest_init): Allow any ERROR_MARK. 2227 22282001-04-24 Nathan Sidwell <nathan@codesourcery.com> 2229 2230 * pt.c (tsubst_decl): Use VOID_TYPE_P. 2231 * semantics.c: Fix some typos. 2232 22332001-04-23 Phil Edwards <pme@sources.redhat.com> 2234 2235 * cp/decl2.c (flag_honor_std): Always initialize to 1. 2236 22372001-04-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2238 2239 * xref.c (GNU_xref_file): Use concat in lieu of xmalloc/sprintf. 2240 22412001-04-23 Jason Merrill <jason_merrill@redhat.com> 2242 2243 * except.c (build_throw): Wrap the initialization of the exception 2244 object in a MUST_NOT_THROW_EXPR. 2245 (do_free_exception): #if 0. 2246 22472001-04-20 Mark Mitchell <mark@codesourcery.com> 2248 2249 * cp-tree.h (finish_enum): Change prototype. 2250 * decl.c (finish_enum): Reorganize. 2251 * parse.y (structsp): Adjust calls to finish_enum. 2252 22532001-04-20 Nathan Sidwell <nathan@codesourcery.com> 2254 2255 * tree.c (cp_tree_equal): Adjust final switch formatting. Add 2256 't' case. 2257 22582001-04-20 Nathan Sidwell <nathan@codesourcery.com> 2259 2260 * class.c (dfs_unshared_virtual_bases): Add ATTRIBUTE_UNUSED. 2261 (layout_empty_base): Return at end flag. 2262 (build_base_field): Likewise. 2263 (build_base_fields): Likewise. 2264 (layout_virtual_bases): Don't add 1 to eoc value. 2265 (end_of_class): Use full size for empty bases. 2266 (layout_class_type): Clear CLASSNEARLY_EMPTY_P if we appended 2267 empty bases. Don't add 1 to eoc value. Only add trailing padding 2268 if we're an empty class with no empty bases. 2269 (dump_class_hierarchy): Dump size and alignment. 2270 22712001-04-20 Jakub Jelinek <jakub@redhat.com> 2272 2273 * call.c (maybe_handle_ref_bind): Copy ICS_USER_FLAG and 2274 ICS_BAD_FLAG. 2275 22762001-04-20 Jakub Jelinek <jakub@redhat.com> 2277 2278 * search.c (lookup_field_r): If looking for type and non-TYPE_DECL 2279 is found, look first if name does not match the structure name. 2280 22812001-04-19 Mark Mitchell <mark@codesourcery.com> 2282 2283 * cp-tree.h (DECL_LANGUAGE): Don't assume DECL_LANG_SPECIFIC is 2284 set. 2285 (SET_DECL_LANGUAGE): New macro. 2286 * decl.c (duplicate_decls): Use SET_DECL_LANGUAGE. 2287 (pushdecl): Likewise. 2288 (build_library_fn_1): Likewise. 2289 (build_cp_library_fn): Likewise. 2290 (grokfndecl): Likewise. 2291 (grokvardecl): Mark `extern "C"' variables as having C linkage. 2292 * decl2.c (grokclassfn): Use SET_DECL_LANGUAGE. 2293 * lex.c (retrofit_lang_decl): Likewise. 2294 * mangle.c (mangle_decl_string): Don't mangle the names of 2295 variables declared with C language linkage. 2296 * semantics.c (finish_member_declaration): Use SET_DECL_LANGUAGE. 2297 22982001-04-18 John David Anglin <dave@hiauly1.hia.nrc.ca> 2299 2300 * semantics.c (simplify_aggr_init_exprs_r): Don't restore 2301 flag_access_control from uninitialized storage. 2302 23032001-04-15 Mark Mitchell <mark@codesourcery.com> 2304 2305 * cp-tree.h (TYPE_PTRMEM_CLASS_TYPE): Improve documentation. 2306 * mangle.c (write_pointer_to_member_type): Fix mangling of 2307 pointers to cv-qualified member function types. 2308 2309 * init.c (build_delete): Create a SAVE_EXPR for the address if 2310 we're going to use it more than once. 2311 23122001-04-13 Mark Mitchell <mark@codesourcery.com> 2313 2314 * cp-tree.h (DELTA2_FROM_PTRMEMFUNC): Remove. 2315 (expand_ptremfunc_cst): Change prototype. 2316 (delta2_from_ptrmemfunc): Remove. 2317 * expr.c (cplus_expand_constant): Adjust call to 2318 expand_ptrmemfunc_cst. 2319 * typeck.c (build_ptrmemfunc1): Simplify. 2320 (build_ptrmemfunc): Make sure that casting a PTRMEM_CST still 2321 results in a constant. 2322 (expand_ptrmemfunc_cst): Remove idx and delta2 parameters. 2323 (delta2_from_ptrmemfunc): Remove. 2324 (pfn_from_ptrmemfunc): Adjust call to expand_ptrmemfunc_cst. 2325 23262001-04-12 Jason Merrill <jason_merrill@redhat.com> 2327 2328 * cp-tree.h (decl_namespace_list): New macro. 2329 (struct saved_scope): Add decl_ns_list. 2330 * decl.c (mark_saved_scope): Mark it. 2331 * decl2.c: Lose static decl_namespace_list. 2332 (init_decl2): Don't save it. 2333 23342001-04-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2335 2336 * cp-tree.h (warn_return_type, yylex): Delete redundant 2337 declarations. 2338 2339 * decl.c (current_class_depth, global_namespace): Likewise. 2340 2341 * decl2.c (current_class_depth, flag_gnu_xref): Likewise 2342 2343 * repo.c (flag_use_repository): Likewise. 2344 23452001-04-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2346 2347 * cp-tree.h (pedantic, convert, global_bindings_p, insert_block, 2348 set_block, pushdecl, getdecls, gettags, init_decl_processing, 2349 maybe_build_cleanup, copy_lang_decl, prep_stmt, lvalue_p, 2350 lvalue_or_else, print_lang_statistics, comp_target_types, 2351 unsigned_type, signed_type, signed_or_unsigned_type, 2352 build_function_call, mark_addressable, incomplete_type_error): 2353 Delete redundant declarations. 2354 23552001-04-11 Jason Merrill <jason_merrill@redhat.com> 2356 2357 * cp-tree.h (TYPE_LINKAGE_IDENTIFIER): New macro. 2358 (TYPE_ANONYMOUS_P): New macro. 2359 (TAGGED_TYPE_P): New macro. 2360 * decl.c (check_tag_decl): Use TYPE_ANONYMOUS_P. 2361 (grokfndecl, grokvardecl, grokdeclarator): Likewise. 2362 * tree.c (no_linkage_helper): Likewise. 2363 * semantics.c (begin_class_definition): Likewise. 2364 * pt.c (convert_template_argument): Likewise. 2365 * lex.c (check_for_missing_semicolon): Likewise. 2366 23672001-04-12 Nathan Sidwell <nathan@codesourcery.com> 2368 2369 * class.c (dfs_unshared_virtual_bases): New function. 2370 (mark_primary_bases): Call it. 2371 (check_bases): Ignore virtual bases when determining 2372 nearly-emptiness. 2373 23742001-04-12 Nathan Sidwell <nathan@codesourcery.com> 2375 2376 * method.c (make_thunk): Clear DECL_CLONED_FUNCTION. 2377 23782001-04-11 Mark Mitchell <mark@codesourcery.com> 2379 2380 * optimize.c (maybe_clone_body): Copy DECL_NUM_STMTS from the 2381 cloned function to the clone. 2382 23832001-04-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2384 2385 * Make-lang.in (cp/semantics.o): Depend on $(EXPR_H). 2386 2387 * semantics.c: Include expr.h. 2388 23892001-04-11 Nathan Sidwell <nathan@codesourcery.com> 2390 2391 * method.c (implicitly_declare_fn): Commonize code for copy ctor 2392 and assignment op. Set TREE_USED for parameter. 2393 23942001-04-10 Mark Mitchell <mark@codesourcery.com> 2395 2396 * class.c (find_final_overrider_data): Add `candidates'. 2397 (dfs_find_final_overrider): Don't issue error messages 2398 prematurely. 2399 (find_final_overrider): Issue error messages here. 2400 (build_base_field): Don't warn about amgibuous direct bases here. 2401 (warn_about_ambiguous_direct_bases): New function. 2402 (layout_class_type): Use it. 2403 24042001-04-10 Richard Henderson <rth@redhat.com> 2405 2406 * typeck.c (build_array_ref): Push the array reference inside 2407 COMPOUND_EXPR and COND_EXPR. 2408 24092001-04-05 Mark Mitchell <mark@codesourcery.com> 2410 2411 * cp-tree.h (DECL_THIS_INLINE): Rename to DECL_DECLARED_INLINE_P. 2412 * decl.c (duplicate_decls): Adjust accordingly. 2413 (maybe_commonize_var): Likewise. 2414 (grokfndecl): Likewise. 2415 (start_function): Likewise. 2416 (start_method): Likewise. 2417 * decl2.c (key_method): Likewise. 2418 (import_export_decl): Likewise. 2419 * method.c (implicitly_declare_fn): Likewise. 2420 * optimize.c (maybe_clone_body): Likewise. 2421 24222001-04-05 Benjamin Kosnik <bkoz@redhat.com> 2423 2424 * lang-specs.h: Add __DEPRECATED. 2425 24262001-04-05 J"orn Rennecke <amylaar@redhat.com> 2427 2428 * search.c (get_dynamic_cast_base_type): When building a new 2429 constant, set its type to ssizetype. 2430 24312001-04-04 Jakub Jelinek <jakub@redhat.com> 2432 2433 * optimize.c (expand_call_inline): Only add newly inlined statements 2434 into inlined_stmts. 2435 24362001-04-03 Mark Mitchell <mark@codesourcery.com> 2437 2438 * cp-tree.h (OPERATOR_ASSIGN_FORMAT): Remove. 2439 (OPERATOR_FORMAT): Likewise. 2440 (OPERATOR_TYPENAME_FORMAT): Likewise. 2441 * operators.def: Remove old name-mangling information. 2442 * decl.c (grok_op_properties): Adjust accordingly. 2443 * lex.c (init_operators): Likewise. 2444 * rtti.c (get_tinfo_decl): Issue error messages about types that 2445 have variable size. 2446 24472001-04-03 Mark Mitchell <mark@codesourcery.com> 2448 2449 * decl2.c (import_export_decl): Don't call import_export_class 2450 when processing an inline member function. 2451 * semantics.c (expand_body): Call import_export_decl before 2452 emitting inline functions. 2453 24542001-03-28 Richard Henderson <rth@redhat.com> 2455 2456 IA-64 ABI Exception Handling: 2457 * cp-tree.def (EH_SPEC_BLOCK): New. 2458 (MUST_NOT_THROW_EXPR): New. 2459 * cp-tree.h: Update changed function declarations. 2460 (CPTI_PUSH_EXCEPTION_IDENTIFIER): Remove. 2461 (CPTI_CALL_UNEXPECTED): New. 2462 (struct cp_language_function): Rename x_eh_spec_try_block 2463 to x_eh_spec_block. 2464 (EH_SPEC_STMTS, EH_SPEC_RAISES): New. 2465 * decl.c (current_binding_level): If no current function 2466 bindings, revert to scope_chain. 2467 (initialize_predefined_identifiers): Remove __cp_push_exception. 2468 (store_parm_decls): Use begin_eh_spec_block. 2469 (finish_function): Use finish_eh_spec_block. 2470 (mark_lang_function): Update for name changes. 2471 * decl2.c (finish_file): No mark_all_runtime_matches. 2472 * dump.c (cp_dump_tree): Handle new tree codes. 2473 * error.c (dump_expr) [BIND_EXPR]: Fix typo. 2474 * except.c (catch_language_init, catch_language): Remove. 2475 (init_exception_processing): Don't set language code. 2476 Initialize call_unexpected_node, protect_cleanup_actions, 2477 eh_personality_libfunc, lang_eh_runtime_type. 2478 (call_eh_info, push_eh_info, get_eh_info, get_eh_value): Remove. 2479 (get_eh_type, get_eh_caught, get_eh_handlers): Remove. 2480 (prepare_eh_type): Split out type canonicalizations ... 2481 (build_eh_type_type): ... from here. 2482 (build_eh_type_type_ref): Remove. 2483 (mark_all_runtime_matches): Remove. 2484 (build_exc_ptr): New. 2485 (do_begin_catch, do_end_catch): New. 2486 (do_pop_exception): Remove. 2487 (build_terminate_handler): Remove. 2488 (choose_personality_routine): Split out language choice from ... 2489 (initialize_handler_parm): ... here. 2490 Use MUST_NOT_THROW_EXPR. 2491 (expand_start_catch_block): Use do_begin_catch. Simplify Java 2492 exception object handling. 2493 (expand_start_eh_spec, expand_end_eh_spec): Remove. 2494 (expand_exception_blocks, alloc_eh_object): Remove. 2495 (begin_eh_spec_block, finish_eh_spec_block): New. 2496 (do_allocate_exception, do_free_exception): New. 2497 (expand_throw): Merge into ... 2498 (build_throw): ... here. Update for abi. 2499 * expr.c (cplus_expand_expr): No expand_internal_throw. 2500 Handle MUST_NOT_THROW_EXPR. 2501 * pt.c (tsubst_expr): Handle EH_SPEC_BLOCK. 2502 * semantics.c (*) Update for except.h name changes. 2503 (genrtl_try_block): No protect_with_terminate. 2504 (genrtl_eh_spec_block): New. 2505 (genrtl_handler): Don't emit the goto here. 2506 (cp_expand_stmt): Handle EH_SPEC_BLOCK. 2507 (genrtl_finish_function): Don't expand_exception_blocks. 2508 * tree.c (cp_statement_code_p): Handle EH_SPEC_BLOCK. 2509 25102001-03-28 Richard Henderson <rth@redhat.com> 2511 2512 * decl.c (struct named_label_list): Rename eh_region to 2513 in_try_scope, add in_catch_scope. 2514 (struct binding_level): Rename eh_region to is_try_scope, 2515 add is_catch_scope. 2516 (note_level_for_try): Rename from note_level_for_eh. 2517 (note_level_for_catch): New. 2518 (poplevel): Copy both is_try_scope and is_catch_scope to 2519 the named_label_list struct. 2520 (check_previous_goto_1): Don't check for catch block via 2521 DECL_ARTIFICIAL; use in_try_scope instead. 2522 (check_goto): Likewise. 2523 * cp-tree.h (note_level_for_try, note_level_for_catch): Declare. 2524 * except.c (expand_start_catch_block): Call note_level_for_catch. 2525 * semantics.c (begin_compound_stmt): Update for note_level_for_try. 2526 25272001-03-27 Richard Henderson <rth@redhat.com> 2528 2529 * except.c: Use USING_SJLJ_EXCEPTIONS instead of 2530 exceptions_via_longjmp. 2531 25322001-03-27 Phil Edwards <pme@sources.redhat.com> 2533 2534 * pt.c (check_default_tmpl_args): Make error messages clearer. 2535 25362001-03-26 Phil Edwards <pme@sources.redhat.com> 2537 2538 * error.c: Also undefine 'A' macro used for cp_printers definition. 2539 25402001-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2541 2542 * Make-lang.in: Depend on $(SYSTEM_H), not system.h. 2543 25442001-03-26 Mike Yang <yang@research.att.com> 2545 Mark Mitchell <mark@codesourcery.com> 2546 2547 * dump.c (dump_access): New function. 2548 (cp_dump_tree): Use it. Dump basetype information for class 2549 types. 2550 25512001-03-26 Mark Mitchell <mark@codesourcery.com> 2552 2553 * Makefile.in (optimize.o): Depend on params.h. 2554 (duplicate_decls): Copy DECL_NUM_STMTS, not DECL_FRAME_SIZE. 2555 (init_decl_processing): Set flag_no_inline when doing 2556 inlining-on-trees. 2557 * optimize.c: Include params.h. 2558 (struct inline_data): Improve documentation of FNS. Add 2559 FIRST_INLINED_FN, INLINED_STMTS, and CLONING_P. 2560 (INSNS_PER_STMT): New macro. 2561 (remap_block): Use CLONING_P. 2562 (inlinable_function_p): Don't inline big functions. 2563 (expand_call_inline): Keep track of how much inlining we've done. 2564 (optimize_function): Set FIRST_INLINED_FN. 2565 (maybe_clone_body): Set CLONING_P. 2566 * semantics.c (simplify_aggr_init_exprs_r): Fix typing problems in 2567 tree nodes. 2568 (genrtl_finish_function): Clear DECL_DEFER_OUTPUT before calling 2569 rest_of_compilation. Clear DECL_RTL for local variables 2570 afterwards. 2571 (clear_decl_rtl): New function. 2572 25732001-03-26 Nathan Sidwell <nathan@codesourcery.com> 2574 2575 Implement DR 209 2576 * cp-tree.h (skip_type_access_control, 2577 reset_type_access_control): Prototype. 2578 * decl.c (grokdeclarator): Access of friends is not checked. 2579 * parse.y (component_decl_list): Reset type access control. 2580 * semantics.c (decl_type_access_control): Clear 2581 current_type_lookups. 2582 (save_type_access_control): Don't save if not deferring. 2583 (skip_type_access_control, reset_type_access_control): New 2584 functions. 2585 (begin_class_definition): Do type access control for basetypes. 2586 Start deferred access control. 2587 (finish_class_definition): Resume immediate access control if 2588 this is a local class. 2589 25902001-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2591 2592 * class.c (add_method): Use memcpy/memmove, not bcopy. 2593 2594 * decl.c (duplicate_decls): Likewise. 2595 25962001-03-23 Jakub Jelinek <jakub@redhat.com> 2597 2598 * mangle.c (write_discriminator): Use `_0' for discriminator 1, 2599 not `_'. 2600 26012001-03-23 Jakub Jelinek <jakub@redhat.com> 2602 2603 * decl.c (local_names): Define. 2604 (push_local_name): New. 2605 (grok_reference_init): Return init if initializing static reference 2606 variable with non-constant instead of emitting it. 2607 Move expand_static_init call to cp_finish_decl. 2608 (layout_var_decl): Call push_local_name. 2609 (maybe_commonize_var): Allow inlining functions even if they have 2610 static local variables, use comdat_linkage for them if flag_weak. 2611 (check_initializer): Call obscure_complex_init if 2612 grok_reference_init returned nonzero. 2613 (save_function_data): Clear x_local_names. 2614 (pop_cp_function_context): Free x_local_names. 2615 (mark_inlined_fns): Remove. 2616 (mark_lang_function): Mark x_local_names. 2617 (lang_mark_tree): Don't mark DECL_ACCESS for DECL_DISCRIMINATOR_P. 2618 Mark inlined_fns as tree, remove call to mark_inlined_fns. 2619 * class.c (alter_access): Ensure DECL_ACCESS is never set if 2620 DECL_DISCRIMINATOR_P. 2621 * cp-tree.h (cp_language_function): Add x_local_names. 2622 (lang_decl_flags): Add discriminator into u2. 2623 (lang_decl_inlined_fns): Remove. 2624 (lang_decl): inlined_fns is now a TREE_VEC. 2625 (DECL_DISCRIMINATOR_P, DECL_DISCRIMINATOR): Define. 2626 * optimize.c (inlinable_function_p): DECL_INLINED_FNS is now a 2627 TREE_VEC, not a custom structure. 2628 (optimize_function): Likewise. 2629 * mangle.c (discriminator_for_local_entity): Discriminate among 2630 VAR_DECL local entities. 2631 * search.c (dfs_access_in_type): If DECL_DISCRIMINATOR_P, DECL_ACCESS 2632 is not valid. 2633 26342001-03-22 Bryce McKinlay <bryce@albatross.co.nz> 2635 2636 Add support for Java interface method calls. 2637 * cp-tree.h (struct lang_type): Add java_interface flag. 2638 (TYPE_JAVA_INTERFACE): New macro. 2639 * tree.c (cp_valid_lang_attribute): Handle "java_interface" attribute 2640 by setting TYPE_JAVA_INTERFACE. 2641 * call.c (java_iface_lookup_fn): New static. 2642 (build_over_call): If calling a method declared in a 2643 TYPE_JAVA_INTERFACE, call build_java_interface_fn_ref to generate the 2644 expression which resolves the function address. 2645 (build_java_interface_fn_ref): New function. 2646 26472001-03-22 Richard Henderson <rth@redhat.com> 2648 2649 * Make-lang.in (cp/except.o): Don't depend on insn-flags.h. 2650 * except.c: Don't include it. 2651 26522001-03-22 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> 2653 based on an idea from Joe Buck <jbuck@synopsys.com> 2654 2655 * parse.y (bad_decl, template_arg_list_ignore, arg_list_ignore): 2656 New nonterminals. 2657 (data_def, component_decl): Add reductions to bad_decl. 2658 26592001-03-22 Jakub Jelinek <jakub@redhat.com> 2660 2661 * method.c (do_build_assign_ref): Don't use build_modify_expr for 2662 anonymous aggregates, since they don't have assignment operator 2663 method. 2664 * decl.c (fixup_anonymous_aggr): Disallow ctors, dtors and copy 2665 assignment operators for anonymous structure fields. 2666 26672001-03-21 Jason Merrill <jason@redhat.com> 2668 2669 * pt.c (instantiate_decl): Abort if we see a member constant 2670 instantiation that doesn't already have its initializer. 2671 Downgrade explicit instantiation without definition to pedwarn. 2672 2673 * cp-tree.h (DECL_TINFO_FN_P, SET_DECL_TINFO_FN_P): Remove. 2674 * class.c (build_vtable_entry): Don't check DECL_TINFO_FN_P. 2675 (import_export_decl): Check tinfo_decl_p, not DECL_TINFO_FN_P. 2676 2677 * cp-tree.h (CLASSTYPE_VTABLE_NEEDS_WRITING): Remove. 2678 (pending_vtables): Remove. 2679 * decl2.c (pending_vtables): Remove. 2680 (import_export_vtable): Use CLASSTYPE_INTERFACE_ONLY, not 2681 CLASSTYPE_VTABLE_NEEDS_WRITING. 2682 (import_export_class): Likewise. 2683 (init_decl2): Don't mark pending_vtables. 2684 * lex.c (handle_pragma_vtable): Just sorry. 2685 * pt.c (instantiate_class_template): Don't mess with 2686 CLASSTYPE_VTABLE_NEEDS_WRITING. 2687 (mark_class_instantiated): Likewise. 2688 * ptree.c (print_lang_type): Don't print it. 2689 * semantics.c (begin_class_definition): Don't set it. 2690 2691 * pt.c (template_tail): Replace with last_pending_template. 2692 (maybe_templates, maybe_template_tail): Remove. 2693 (add_pending_template): Adjust. 2694 (instantiate_pending_templates): Adjust. 2695 2696 * cp-tree.h (struct saved_scope): Remove lang_stack field. 2697 (current_lang_stack): Remove. 2698 * decl.c (maybe_push_to_top_level): Don't initialize it. 2699 (duplicate_decls): Use current_lang_depth. 2700 (xref_basetypes): Likewise. 2701 * class.c (current_lang_depth): New fn. 2702 (push_lang_context): Use more varray functionality. 2703 (pop_lang_context): Likewise. 2704 2705 * error.c (GLOBAL_THING): Always use '__'. 2706 27072001-03-21 Mark Mitchell <mark@codesourcery.com> 2708 2709 * class.c (build_clone): Clear DECL_ASSEMBLER_NAME. 2710 2711 * mangle.c (mangle_decl_string): Mangle the names of overloaded 2712 operators, even when they have `extern "C"' linkage. 2713 27142001-03-19 Mark Mitchell <mark@codesourcery.com> 2715 2716 * class.c (get_vtable_decl): Use SET_DECL_ASSEMBLER_NAME, 2717 COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME 2718 where it's not necessary. 2719 (add_method): Remove optimization involving comparison of 2720 DECL_ASSEMBLER_NAME. 2721 (build_vtbl_or_vbase_field): Use SET_DECL_ASSEMBLER_NAME, 2722 COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME 2723 where it's not necessary. 2724 (check_methods): Likewise. 2725 (build_clone): Likewise. 2726 (built_vtt): Likewise. 2727 * cp-tree.h (DECL_NEEDED_P): Likewise. 2728 * decl.c (pushtag): Likewise. 2729 (duplicate_decls): Likewise. 2730 (pushdecl): Likewise. 2731 (builtin_function): Likewise. 2732 (build_library_fn_1): Set DECL_LANGUAGE for library functions. 2733 (build_cp_library_fn): Likewise. 2734 (maybe_commonize_var): Use SET_DECL_ASSEMBLER_NAME, 2735 COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME 2736 where it's not necessary. 2737 (make_rtl_for_nonlocal_decl): Likewise. 2738 (cp_finish_decl): Likewise. 2739 (grokfndecl): Likewise. 2740 (grokvardecl): Likewise. 2741 (grokdeclarator): Likewise. 2742 (start_function): Likewise. 2743 (cp_missing_return_ok_p): Likewise. 2744 * decl2.c (grokclassfn): Likewise. 2745 (check_classfn): Likewise. 2746 (finish_static_data_member_decl): Likewise. 2747 (grokfield): Likewise. 2748 * error.c (GLOBAL_IORD_P): Remove. 2749 (dump_global_iord): Improve output. 2750 (dump_decl): Avoid using DECL_ASSEMBLER_NAME. 2751 * except.c (nothrow_libfn_p): Summarily reject any function not in 2752 namespace-scope. 2753 * init.c (build_java_class_ref): Don't explicitly set 2754 DECL_ASSEMBLER_NAME after calling mangle_decl. 2755 * mangle.c (mangle_decl_string): Handle extern "C" functions. 2756 (mangle_decl): Set the DECL_ASSEMBLER_NAME for the decl. 2757 * method.c (set_mangled_name_for_decl): Don't explicitly set 2758 DECL_ASSEMBLER_NAME after calling mangle_decl. 2759 (make_thunk): Explicitly set the DECL_ASSEMBLER_NAME and 2760 IDENTIFIER_GLOBAL_VALUE for the thunk. 2761 * pt.c (set_mangled_name_for_template_decl): Remove. 2762 (check_explicit_specialization): Don't use it. 2763 (looup_template_class): Don't set DECL_ASSEMBLER_NAME. 2764 (tsubst_friend_function): Likewise. 2765 (tsubst_decl): Likewise. 2766 (regenerate_decl_from_template): Use COPY_DECL_ASSEMBLER_NAME. 2767 * rtti.c (get_tinfo_decl): Use SET_DECL_ASSEMBLER_NAME, 2768 COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME 2769 where it's not necessary. 2770 (tinfo_base_init): Likewise. 2771 (create_real_tinfo_var): Likewise. 2772 * search.c (looup_field_1): Likewise. 2773 * semantics.c (finish_named_return_value): Likewise. 2774 * tree.c (init_tree): Set lang_set_decl_assembler_name. 2775 27762001-03-15 Gabriel Dos Reis <gdr@codesourcery.com> 2777 2778 Correct semantics restrictions checking in throw-expression. 2779 * except.c (is_admissible_throw_operand): New function. 2780 (build_throw): Use it. 2781 27822001-03-14 Mark Mitchell <mark@codesourcery.com> 2783 2784 * decl.c (cp_make_fnname_decl): Set DECL_IGNORED_P on __FUNCTION__ 2785 and its ilk. 2786 27872001-03-14 Mark Mitchell <mark@codesourcery.com> 2788 2789 * class.c (build_clone): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc. 2790 * cp-tree.h (DECL_IN_MEMORY_P): Likewise. 2791 * decl.c (duplicate_decls): Likewise. 2792 (builtin_function): Likewise. 2793 (build_library_fn): Likewise. 2794 (build_cp_library_fn): Likewise. 2795 (check_initializer): Likewise. 2796 (cp_finish_decl): Likewise. 2797 * decl2.c (grokfield): Likewise. 2798 (grok_function_init): Remove #if 0'd code. 2799 (finish_anon_union): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc. 2800 * friend.c (do_friend): Likewise. 2801 * init.c (get_temp_regvar): Likewise. 2802 * method.c (make_thunk): Likewise. 2803 * pt.c (tsubst_friend_function): Likewise. 2804 (tsubst_decl): Likewise. 2805 (regenerate_decl_from_template): Likewise. 2806 * semantics.c (genrtl_named_return_value): Likewise. 2807 (expand_body): Likewise. 2808 (genrtl_finish_function): Likewise. 2809 * tree.c (cp_tree_equal): Likewise. 2810 28112001-03-12 Nathan Sidwell <nathan@codesourcery.com> 2812 2813 * call.c (convert_like_real): Add extra semantics to INNER 2814 parameter. Don't convert to temporary if a user conversion 2815 gives us an lvalue that we're about to bind to a reference. 2816 Set INNER to indicate pending reference binding on recursive 2817 calls. 2818 28192001-03-10 Neil Booth <neil@daikokuya.demon.co.uk> 2820 2821 * cp/lex.c: Delete duplicate pending_lang_change. 2822 28232001-03-10 Neil Booth <neil@daikokuya.demon.co.uk> 2824 2825 * cp/lex.c (handle_pragma_interface, handle_pragma_implementation): 2826 Similarly. 2827 * cp/repo.c (get_base_filename, open_repo_file): Similarly. 2828 * cp/cp-tree.h: Remove file_name_nondirectory prototype. 2829 28302001-03-09 Zack Weinberg <zackw@stanford.edu> 2831 2832 * Make-lang.in: Add dependencies on $(TM_P_H) as appropriate. 2833 28342001-03-08 Stan Shebs <shebs@apple.com> 2835 2836 * cp-tree.h (set_identifier_local_value): Remove unused decl. 2837 28382001-03-06 Zack Weinberg <zackw@stanford.edu> 2839 2840 * spew.c: Remove references to CPP_OSTRING. 2841 28422001-03-06 Andrew Haley <aph@redhat.com> 2843 2844 * typeck.c (convert_arguments): Check that we have an fndecl. 2845 28462001-03-05 Andrew Haley <aph@redhat.com> 2847 2848 * typeck.c (convert_arguments): Don't do ellipsis conversion for 2849 __built_in_constant_p. 2850 28512001-03-02 Nathan Sidwell <nathan@codesourcery.com> 2852 2853 * typeck.c (build_static_cast): Allow enum to enum conversions 2854 as per DR 128. 2855 28562001-03-02 Nathan Sidwell <nathan@codesourcery.com> 2857 2858 * class.c (check_field_decls): Pointers to member do not a 2859 non-pod struct make, as per DR 148. 2860 28612001-03-02 Nathan Sidwell <nathan@codesourcery.com> 2862 2863 * call.c (joust): cp_pedwarn when using gnu extension concerning 2864 worst conversion sequences. 2865 28662001-03-01 Zack Weinberg <zackw@stanford.edu> 2867 2868 * decl.c: Replace all uses of 'boolean' with 'bool'. 2869 28702001-03-01 Zack Weinberg <zackw@stanford.edu> 2871 2872 * lang-specs.h: Add zero initializer for cpp_spec field to 2873 all array elements that need one. Don't put an #ifdef inside 2874 the initializer list; set a default for CPLUSPLUS_CPP_SPEC and 2875 use it. 2876 28772001-03-01 Nathan Sidwell <nathan@codesourcery.com> 2878 2879 Implement using decls inside template functions. 2880 * decl2.c (validate_nonmember_using_decl): Don't special case 2881 fake_std_node in the global namespace. Don't reject early when 2882 processing a template. 2883 (do_local_using_decl): Add to statement tree. Don't do further 2884 processing when building a template. 2885 * pt.c (tsubst_expr, DECL_STMT case): Deal with USING_DECLs. 2886 28872001-03-01 Nathan Sidwell <nathan@codesourcery.com> 2888 2889 * decl2.c (do_nonmember_using_decl): Don't complain if we find 2890 same function. Do complain about ambiguating extern "C" 2891 declarations. 2892 28932001-02-28 Nathan Sidwell <nathan@codesourcery.com> 2894 2895 Remove floating point and complex type template constant parms. 2896 * pt.c (convert_nontype_argument): Remove REAL_TYPE and 2897 COMPLEX_TYPE extensions. 2898 (invalid_nontype_parm_type_p): Likewise. 2899 29002001-02-27 Jeffrey Oldham <oldham@codesourcery.com> 2901 2902 * except.c (call_eh_info): Revert "match_function"'s type. 2903 29042001-02-27 Nathan Sidwell <nathan@codesourcery.com> 2905 2906 Fix ctor vtable vcall offsets. 2907 * class.c (struct vtbl_init_data_s): Add rtti_binfo member. 2908 (build_rtt_vtbl_entries): Lose RTTI_BINFO parameter. 2909 (get_matching_base): Remove. 2910 (get_original_base): New function. 2911 (build_vtbl_initializer): Initialize vid.rtti_binfo. 2912 Use a virtual thunk for a ctor vtable with an index 2913 (add_vcall_offset_vtbl_entries_1): Check if binfo has lost a 2914 primary base within a constructor vtable. Only set 2915 BV_VCALL_INDEX when not a constructor vtable. Adjust vcall offset 2916 when primary base has been lost. 2917 * cp-tree.h (BINFO_VIRTUALS): Remove ambiguity from comment. 2918 29192001-02-26 Jeffrey Oldham <oldham@codesourcery.com> 2920 2921 * call.c (joust): Ensure more_specialized()'s argument length 2922 parameter has correct value for constructors. 2923 29242001-02-26 Nathan Sidwell <nathan@codesourcery.com> 2925 2926 * except.c (call_eh_info): Cleanup generation of cp_eh_info struct. 2927 2928 * decl.c (mark_inlined_fns): Prototype. 2929 29302001-02-22 Mark Mitchell <mark@codesourcery.com> 2931 2932 * spew.c (yylex): Correct handling of friends. 2933 29342001-02-22 Mark Mitchell <mark@codesourcery.com> 2935 2936 * mangle.c (write_encoding): Pass write_function_type the 2937 FUNCTION_DECL for the function being encoded. 2938 (write_function_type): Pass it along to write_bare_function_type. 2939 (write_bare_function_type): Pass it along to write_method_parms. 2940 (write_method_parms): Don't mangle the compiler-generated 2941 parameters to a constructor or destructor. 2942 29432001-02-22 Andreas Jaeger <aj@suse.de> 2944 2945 * optimize.c: Include toplev.h for 2946 note_deferral_of_defined_inline_function prototype. 2947 29482001-02-22 Jakub Jelinek <jakub@redhat.com> 2949 2950 * cp-tree.h (struct lang_decl_inlined_fns): New. 2951 (struct lang_decls): Add inlined_fns. 2952 (DECL_INLINED_FNS): New macro. 2953 * optimize.c (struct inline_data): Add inlined_fns. 2954 (declare_return_variable): Use VARRAY_ACTIVE_SIZE macro. 2955 (inlinable_function_p): Likewise, fix typo in comment, 2956 function is not inlinable if it already inlined function currently 2957 being optimized. 2958 (expand_call_inline): Add fn to inlined_fns if necessary. 2959 (optimize_function): Initialize inlined_fns. 2960 Save inlined_fns into DECL_INLINED_FNS after expanding inlines. 2961 * decl.c (mark_inlined_fns): New function. 2962 (lang_mark_tree): Call it. 2963 29642001-02-21 Jason Merrill <jason@redhat.com> 2965 2966 * cp-tree.h (struct lang_decl_flags): Remove uninlinable flag. 2967 (DECL_UNINLINABLE): Move to middle-end. 2968 2969 * class.c (clone_function_decl): Set DECL_ABSTRACT on original fn. 2970 * decl.c (duplicate_decls): Preserve DECL_ABSTRACT. 2971 * class.c (build_clone): Set DECL_ABSTRACT_ORIGIN for the clone. 2972 * optimize.c (maybe_clone_body): Set DECL_ABSTRACT_ORIGIN for the 2973 parms and outer BLOCK. note_deferral_of_defined_inline_function. 2974 2975 * method.c (implicitly_declare_fn): Don't set DECL_ARTIFICIAL on 2976 second parm of op=. 2977 29782001-02-19 Mark Mitchell <mark@codesourcery.com> 2979 2980 * decl2.c (set_decl_namespace): Allow explicit instantiations in 2981 any namespace. 2982 29832001-02-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2984 2985 * optimize.c (expand_call_inline): Don't walk subtrees of type 2986 nodes. 2987 29882001-02-18 Mark Mitchell <mark@codesourcery.com> 2989 2990 * class.c (add_vcall_offset_vtbl_entries_1): Only add one entry 2991 for a destructor. 2992 29932001-02-18 Jason Merrill <jason@redhat.com> 2994 2995 Do put the VTT parameter in DECL_ARGUMENTS. 2996 * cp-tree.h (struct cp_language_function): Add x_vtt_parm. 2997 (current_vtt_parm): New macro. 2998 (struct lang_decl_flags): Add has_vtt_parm_p, remove vtt_parm. 2999 (DECL_HAS_VTT_PARM_P): New macro. 3000 (DECL_VTT_PARM): Remove. 3001 (FUNCTION_FIRST_USER_PARMTYPE, FUNCTION_FIRST_USER_PARM): New macros. 3002 * decl.c (duplicate_decls): Only copy the operator code if 3003 appropriate. 3004 (start_function): Set current_vtt_parm. 3005 (lang_mark_tree): Don't mark vtt_parm. 3006 * decl2.c (maybe_retrofit_in_chrg): Do add the VTT parm to 3007 DECL_ARGUMENTS. Set DECL_HAS_VTT_PARM_P. 3008 * class.c (build_clone): Maybe remove the VTT parm. 3009 * optimize.c (maybe_clone_body): Set up the VTT parm. 3010 * pt.c (copy_default_args_to_explicit_spec): Preserve the VTT parm. 3011 * call.c (build_over_call): Just allow the VTT arg. 3012 * method.c (make_thunk): Don't set DECL_VTT_PARM. 3013 (do_build_copy_constructor): Use FUNCTION_FIRST_USER_PARM. 3014 (synthesize_method): Use FUNCTION_FIRST_USER_PARMTYPE. 3015 * decl.c (grokdeclarator, copy_args_p, grok_ctor_properties): Likewise. 3016 * error.c (dump_function_decl): Likewise. 3017 * call.c (build_user_type_conversion_1, convert_like_real): Abort 3018 if we try to call a constructor with in-charge or VTT parms. 3019 * method.c (skip_artificial_parms_for): New fn. 3020 * call.c (add_function_candidate, build_over_call): Call it. 3021 * call.c (build_new_method_call): Use current_vtt_parm. 3022 * init.c (expand_virtual_init): Likewise. 3023 * class.c (same_signature_p): No longer static. 3024 * cp-tree.h: Declare it. 3025 * search.c (look_for_overrides_r): Use it. 3026 30272001-02-17 Mark Mitchell <mark@codesourcery.com> 3028 3029 * cp-tree.h (new_abi_rtti_p): Remove. 3030 (name_mangling_version): Likewise. 3031 (flag_do_squangling): Likewise. 3032 * class.c (build_rtti_vtbl_entries): Remove old ABI support. 3033 * decl.c (grokfndecl): Likewise. 3034 * decl2.c (name_mangling_version): Remove. 3035 (flag_do_squangling): Likewise. 3036 (lang_f_options): Remove `squangle'. 3037 (unsupported_options): Add `squangle'. 3038 (cxx_decode_option): Issue a warning about uses of 3039 -fname-mangling-version. 3040 (finish_file): Remove old ABI support. 3041 * pt.c (check_explicit_specialization): Likewise. 3042 (tsubst_decl): Likewise. 3043 * rtti.c (init_rtti_processing): Likewise. 3044 (build_headof): Likewise. 3045 (get_tinfo_decl_dynamic): Likewise. 3046 (tinfo_from_decl): Likewise. 3047 (build_dynamic_cast_1): Likewise. 3048 (synthesize_tinfo_var): Likewise. 3049 * init.c (build_new): Allow enumeration types for the array-bounds 3050 in a direct-new-declarator. 3051 3052 * semantics.c (finish_typeof): Resolve OFFSET_REFs. 3053 3054 * pt.c (check_explicit_specialization): Copy TREE_PRIVATE and 3055 TREE_PROTECTED from the template being specialized. 3056 30572001-02-17 Jason Merrill <jason@redhat.com> 3058 3059 * decl2.c (build_artificial_parm): Set TREE_READONLY. 3060 3061 * decl.c (bad_specifiers): Allow throw specs on things with 3062 pointer-to-function or -member-function type. 3063 * init.c (build_default_init): Don't use a CONSTRUCTOR to initialize 3064 a pmf. 3065 30662001-02-17 Mark Mitchell <mark@codesourcery.com> 3067 3068 * call.c (check_dtor_name): Handle template names correctly. 3069 30702001-02-16 Jason Merrill <jason@redhat.com> 3071 3072 * cp-tree.h (DECL_USE_VTT_PARM): Remove. 3073 * decl2.c (maybe_retrofit_in_chrg): Don't create it. 3074 * optimize.c (maybe_clone_body): Don't substitute it. 3075 * call.c (build_new_method_call): Check in_chrg instead. 3076 * init.c (expand_virtual_init): Likewise. 3077 30782001-02-16 Gabriel Dos Reis <gdr@codesourcery.com> 3079 3080 * decl.c (check_tag_decl): Make sure a typedef for an anonymous 3081 class-type introduces at least a type-name. 3082 30832001-02-16 Jakub Jelinek <jakub@redhat.com> 3084 3085 * call.c (convert_like_real): Create a temporary for non-lvalue. 3086 30872001-02-16 Jeffrey Oldham <oldham@codesourcery.com> 3088 3089 * cp-tree.h: Fix typos in comments. 3090 30912001-02-16 Jason Merrill <jason@redhat.com> 3092 3093 * optimize.c (remap_block): If we're compiling a clone, pass the 3094 new block to insert_block. 3095 30962001-02-16 Mark Mitchell <mark@codesourcery.com> 3097 3098 * semantics.c (finish_asm_stmt): Robustify. 3099 31002001-02-15 Mark Mitchell <mark@codesourcery.com> 3101 3102 * pt.c (push_template_decl_real): Don't remangle the name of a 3103 class template. 3104 31052001-02-15 Jim Meyering <meyering@lucent.com> 3106 3107 * Make-lang.in (c++.install-common): Depend on installdirs. 3108 (c++.install-info): Likewise. 3109 (c++.install-man): Likewise. 3110 31112001-02-15 Mark Mitchell <mark@codesourcery.com> 3112 3113 * typeck2.c (build_m_component_ref): Robustify. 3114 31152001-02-15 Alexandre Oliva <aoliva@redhat.com> 3116 3117 * friend.c (do_friend): Don't take the nested [template] class 3118 into account when deciding whether to warn about the friend 3119 function not referring to a template function. 3120 31212001-02-14 Jakub Jelinek <jakub@redhat.com> 3122 3123 * typeck.c (build_unary_op): Clarify error message. 3124 31252001-02-08 Aldy Hernandez <aldyh@redhat.com> 3126 3127 * parse.y (component_constructor_declarator): allow optional 3128 parentheses around constructor class name. 3129 31302001-02-14 Nathan Sidwell <nathan@codesourcery.com> 3131 3132 * cp-tree.h (setup_vtbl_ptr): Move prototype to semantics.c 3133 section. 3134 * init.c (emit_base_init): Remove incorrect comment about 3135 virtual bases. 3136 * method.c (make_thunk): Fix comment alignment. 3137 31382001-02-14 Nathan Sidwell <nathan@codesourcery.com> 3139 3140 Kill remnants of this is variable. 3141 * cp-tree.h (flag_this_is_variable): Remove. 3142 * decl2.c (flag_this_is_variable): Remove. 3143 * class.c (fixed_type_or_null): Add cdtor parm. Adjust. 3144 (build_vbase_path): The path is non-static, even in a cdtor. 3145 (resolves_to_fixed_type_p): Add additional return value. 3146 * search.c (init_vbase_pointers): Adjust. 3147 * tree.c (lvalue_p_1): Adjust. 3148 * typeck.c (mark_addressable): Adjust. 3149 31502001-02-14 Nathan Sidwell <nathan@codesourcery.com> 3151 3152 * pt.c (unify): Don't check cv quals of array types. 3153 31542001-02-14 Nathan Sidwell <nathan@codesourcery.com> 3155 3156 * tree.c (cp_build_qualified_type_real): Use CP_TYPE_QUALS to 3157 check whether we already have the type. 3158 31592001-02-13 Mark Mitchell <mark@codesourcery.com> 3160 3161 * cp-tree.h (CLASSTYPE_DESTRUCTORS): Fix typo in comment. 3162 * call.c (build_op_delete_call): Simplify to remove duplicate 3163 code. 3164 * class.c (clone_function_decl): Don't build the deleting variant 3165 of a non-virtual destructor. 3166 * decl.c (finish_destructor_body): Don't call delete if this is a 3167 non-virtual destructor. 3168 * init.c (build_delete): Explicitly call `operator delete' when 3169 deleting an object with a non-virtual destructor. 3170 31712001-02-13 Jason Merrill <jason@redhat.com> 3172 3173 * lang-specs.h: Add more __EXCEPTIONS. 3174 31752001-02-12 Nathan Sidwell <nathan@codesourcery.com> 3176 3177 * typeck2.c (process_init_constructor): Check 3178 TREE_HAS_CONSTRUCTOR before issuing missing init warning. 3179 31802001-02-12 Nathan Sidwell <nathan@codesourcery.com> 3181 3182 * pt.c (maybe_adjust_types_for_deduction, DEDUCE_ORDER case): 3183 Remove spurious information in comment. Allow further 3184 adjustments of REFERENCE_TYPE args. 3185 31862001-02-12 Nathan Sidwell <nathan@codesourcery.com> 3187 3188 * errfn.c (cp_deprecated): Tweak diagnostic text. 3189 * parse.y (new_initializer): Deprecate initializer lists 3190 extension. 3191 31922001-02-12 Mark Mitchell <mark@codesourcery.com> 3193 3194 Remove old ABI support. 3195 31962001-02-11 Mark Mitchell <mark@codesourcery.com> 3197 3198 * decl2.c (flag_vtable_thunks): Always set it to 1. 3199 (flag_new_abi): Likewise. 3200 * lang-specs.h: Remove conditional on ENABLE_NEW_GXX_ABI. 3201 3202 * Makefile.in (g++spec.o): Fix typo. 3203 32042001-02-09 Jason Merrill <jason@redhat.com> 3205 3206 * lang-specs.h: Restore definition of __EXCEPTIONS. 3207 32082001-02-08 Jason Merrill <jason@redhat.com> 3209 3210 * search.c (shared_member_p): New function. 3211 (lookup_field_r): Use it. 3212 * cp-tree.h (SHARED_MEMBER_P): Remove. 3213 3214 * method.c (process_overload_item): Handle template-dependent array 3215 bounds. 3216 * pt.c (type_unification_real): If we end up with undeduced nontype 3217 parms, try again. 3218 3219 * decl.c (lookup_name_real): Tweak warning to refer to decls, not 3220 types. 3221 3222 * typeck2.c (friendly_abort): Don't say anything if we have 3223 earlier errors or sorries. 3224 3225 * decl.c (check_tag_decl): Notice attempts to redefine bool and 3226 wchar_t. Ignore if in_system_header. 3227 3228 * decl.c (maybe_push_cleanup_level): New fn... 3229 (start_decl_1): ...split out from here. 3230 * cvt.c (build_up_reference): Use it. 3231 * cp-tree.h: Declare it. 3232 32332001-02-07 Mark Mitchell <mark@codesourcery.com> 3234 3235 * lang-specs.h: Use CPLUSPLUS_CPP_SPEC for the preprocessor 3236 spec. 3237 32382001-02-06 Nathan Sidwell <nathan@codesourcery.com> 3239 3240 * pt.c (lookup_template_class): Make sure it's a primary 3241 template or template_template_parm when called from the parser. 3242 (instantiate_template_class): Add assertion. 3243 32442001-02-05 Alexandre Oliva <aoliva@redhat.com> 3245 3246 * method.c (build_mangled_name) [old abi]: Protect flush_repeats() 3247 from error_mark_node. 3248 32492001-02-05 Nathan Sidwell <nathan@codesourcery.com> 3250 3251 Fix specification and implementation bugs in V3 ABI 3252 construction vtables. 3253 * cp-tree.h (flag_dump_class_layout): New flag. 3254 (BINFO_OVERRIDE_ALONG_VIRTUAL_PATH_P): Remove. 3255 (BINFO_LOST_PRIMARY_P): New flag. 3256 (SET_BINFO_NEW_VTABLE_MARKED): Adjust asserts. 3257 (BINFO_PRIMARY_MARKED_P): Rename to ... 3258 (BINFO_PRIMARY_P): ... here. 3259 (binfo_via_virtual): New prototype. 3260 * decl2.c (flag_dump_class_layout): New flag. 3261 (cxx_decode_option): Set it. Adjust -fdump-translation-unit to 3262 use `=' as a file name separator. 3263 * init.c (dfs_initialize_vtbl_ptrs): Walk into virtual primary 3264 bases. 3265 (build_vtbl_address): If this is a virtual primary base, then 3266 get the vtbl of what it is ultimately primary for. 3267 * search.c (dfs_skip_nonprimary_vbases_unmarkedp): Adjust 3268 for BINFO_PRIMARY_P. 3269 (dfs_skip_nonprimary_vbases_markedp): Likewise. 3270 (get_shared_vbase_if_not_primary): Likewise. 3271 (dfs_get_pure_virtuals): Likewise. 3272 (expand_upcast_fixups): Likewise. 3273 (fixup_virtual_upcast_offsets): Likewise. 3274 (dfs_find_vbase_instance): Likewise. 3275 (find_vbase_instance): Likewise. 3276 (binfo_from_vbase): Adjust comment to reflect reality. 3277 (binfo_via_virtual): New function. 3278 * class.c (VTT_TOP_LEVEL_P, VTT_MARKED_BINFO_P): New macros 3279 for binfo walking during VTT construction. 3280 (dfs_mark_primary_bases): Remove. 3281 (force_canonical_binfo_r): New function. 3282 (force_canonical_binfo): New function. 3283 (mark_primary_virtual_base): New function. 3284 (mark_primary_bases): Walk in inheritance graph order, use 3285 mark_primary_virtual_base. 3286 (determine_primary_base): Use some more intermediate variables. 3287 (dfs_find_final_overrider): Don't check for overriding along a 3288 virtual path. 3289 (dfs_modify_vtables): Walk into primary virtual bases too. 3290 (walk_subobject_offsets): Adjust for BINFO_PRIMARY_P. 3291 (build_base_fields): Likewise. 3292 (dfs_set_offset_for_unshared_vbases): Likewise. 3293 (layout_virtual_bases): Likewise. 3294 (end_of_class): Likewise. 3295 (finish_struct_1): Call dump_class_hierarchy, if requested. 3296 (dfs_get_primary_binfo): Use BINFO_TYPE for binfos. 3297 (dump_class_hierarchy_r): Add stream parameter. Emit more information. 3298 (dump_class_hierarchy): Add file parameter. Append to file, if 3299 required. 3300 (finish_vtbls): Adjust accumulate_vtbl_inits call. 3301 Use canonical base for virtual bases. 3302 (build_vtt): Add more comments. Adjust build_vtt_inits call. 3303 (build_vtt_inits): Remove VIRTUAL_VTTS_P parm. 3304 Only set BINFO_VPTR_INDEX on top level. Use VTT_TOP_LEVEL_P, 3305 VTT_MARKED_BINFO_P for binfo walking. Use canonical vbase for 3306 virtual VTTs. 3307 (dfs_build_secondary_vptr_vtt_inits): Extract VTT_TOP_LEVEL_P 3308 from DATA. We want virtual primary bases and all bases via virtual. 3309 Only set BINFO_VPTR_INDEX for top level. Look up from a primary 3310 virtual base when not a construction vtable. 3311 (dfs_ctor_vtable_bases_queue_p): New DFS predicate. 3312 (build_ctor_vtbl_group): Adjust accumulate_vtbl_inits call. 3313 Use canonical bases when processing virtual bases. 3314 (accumulate_vtbl_inits): We're interested in any base via a 3315 virtual path. 3316 (dfs_accumulate_vtbl_inits): If this is a primary virtual base 3317 within a construction vtable, determine what is being overridden. 3318 (build_vtbl_initializer): Add more comments 3319 (add_vcall_offset_vtbl_entries_1): Adjust comment. 3320 (build_rtti_vtbl_entries): Check if the base has lost its 3321 primary. 3322 33232001-02-05 Mark Mitchell <mark@codesourcery.com> 3324 3325 * Makefile.in (g++spec.o): Adjust use of DRIVER_DEFINES. 3326 33272001-02-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 3328 3329 * decl.c (pushdecl): Call abort instead of fatal. 3330 * except.c (decl_is_java_type): Call fatal_error instead of fatal. 3331 * init.c (build_new_1): Likewise. 3332 (build_java_class_ref): Call internal_error and fatal_error, not fatal. 3333 * decl.c (build_typename_type): hash_table_init now returns void. 3334 decl.c (init_decl_processing): Make an error non-fatal. 3335 33362001-02-04 Mark Mitchell <mark@codesourcery.com> 3337 3338 * cp-tree.h (CLASSTYPE_INTERFACE_UNKNOWN): Fix formatting. 3339 Document. 3340 (CLASSTYPE_INTERFACE_KNOWN): Likewise. 3341 (SET_CLASSTYPE_INTERFACE_UNKNOWN_X): Likewise. 3342 (SET_CLASSTYPE_INTERFACE_UNKNOWN): Likewise. 3343 (SET_CLASSTYPE_INTERFACE_KNOWN): Likewise. 3344 * decl.c (maybe_commonize_var): Use the new name-mangling where 3345 appropriate. 3346 * decl2.c (comdat_linkage): Enhance comments. Make all 3347 compiler-generated things static, if COMDAT is not available. 3348 (get_tinfo_decl): Do not make typeinfo objects that belong in the 3349 library COMDAT. 3350 (tinfo_base_init): Use the correct mangled name for typeinfo 3351 strings, and push them into the global scope. 3352 (typeinfo_in_lib_p): New function. 3353 (synthesize_tinfo_var): Use it. 3354 (create_real_tinfo_var): Likewise. 3355 33562001-02-03 Jakub Jelinek <jakub@redhat.com> 3357 3358 * decl.c (push_class_binding): Use context_for_name_lookup instead 3359 of CP_DECL_CONTEXT. 3360 * search.c (context_for_name_lookup): Remove static. Check for NULL 3361 context in the loop. 3362 * cp-tree.h (context_for_name_lookup): Add prototype. 3363 33642001-02-02 Jakub Jelinek <jakub@redhat.com> 3365 3366 * cp-tree.h (build_expr_ptr_wrapper, can_free): Remove. 3367 * tree.c (build_expr_ptr_wrapper, can_free, permanent_obstack): 3368 Remove. 3369 * call.c (convert_class_to_reference, build_user_type_conversion_1, 3370 add_warning): Change build_expr_ptr_wrapper to build_ptr_wrapper. 3371 33722001-02-02 Mark Mitchell <mark@codesourcery.com> 3373 3374 * Make-lang.in (g++spec.o): Add DRIVER_DEFINES to the list 3375 of macros used when compiling g++spec.c. 3376 * g++spec.c (lang_specific_driver): Link with the shared 3377 libgcc by default. 3378 33792001-01-29 Joseph S. Myers <jsm28@cam.ac.uk> 3380 3381 * decl2.c (build_expr_from_tree), lex.c (make_pointer_declarator, 3382 make_reference_declarator, make_call_declarator), method.c 3383 (implicitly_declare_fn), parse.y (namespace_using_decl, 3384 notype_unqualified_id, expr_or_declarator, new_type_id, 3385 after_type_declarator, direct_after_type_declarator, 3386 notype_declarator, complex_notype_declarator, 3387 complex_direct_notype_declarator, qualified_id, 3388 notype_qualified_id, overqualified_id, direct_new_declarator, 3389 absdcl, direct_abstract_declarator, conversion_declarator), pt.c 3390 (tsubst), semantics.c (begin_constructor_declarator): Use build_nt 3391 instead of build_parse_node. 3392 33932001-01-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3394 3395 * cp-tree.h (cp_tree_index): Delete CPTI_MINUS_ONE. 3396 (minus_one_node): Moved to top level gcc directory. Renamed 3397 to integer_minus_one_node. 3398 3399 * init.c (init_init_processing): Don't set minus_one_node. 3400 (build_vec_init): Use integer_minus_one_node. 3401 3402 * rtti.c (get_tinfo_decl_dynamic): Likewise. 3403 34042001-01-28 Jakub Jelinek <jakub@redhat.com> 3405 3406 * optimize.c (copy_body_r): If MODIFY_EXPR has both arguments 3407 identical and they would be replaced with constant, remove 3408 MODIFY_EXPR from the tree. 3409 34102001-01-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3411 3412 * Make-lang.in: Remove all dependencies on defaults.h. 3413 * call.c: Don't include defaults.h. 3414 * decl.c: Likewise. 3415 * decl2.c: Likewise. 3416 * except.c: Likewise. 3417 * pt.c: Likewise. 3418 * rtti.c: Likewise. 3419 * tree.c: Likewise. 3420 * typeck.c: Likewise. 3421 34222001-01-25 Jakub Jelinek <jakub@redhat.com> 3423 3424 * mangle.c (write_mangled_name, write_encoding): Mangle overloaded 3425 operators even in "C" linkage. 3426 * method.c (set_mangled_name_for_decl): Likewise. 3427 * decl.c (grokfndecl): Call set_mangled_name_for_decl even for 3428 overloaded operators in "C" linkage. 3429 34302001-01-24 Nathan Sidwell <nathan@codesourcery.com> 3431 3432 * pt.c (tsubst_decl): Remove IN_DECL parameter. 3433 (tsubst_arg_types): Check parameter is not void. 3434 (tsubst): Adjust tsubst_decl call. 3435 34362001-01-24 Nathan Sidwell <nathan@codesourcery.com> 3437 3438 * call.c (add_builtin_candidate): Quote std properly, from 3439 previous change. 3440 34412001-01-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 3442 3443 * pt.c (check_explicit_specialization): Clone constructors and 3444 destructors. 3445 34462001-01-23 Nathan Sidwell <nathan@codesourcery.com> 3447 3448 * decl.c (grokdeclarator): Don't presume DECL_LANG_SPECIFIC 3449 indicates anything special about template depth. Make sure we 3450 only count the user visible template classes. 3451 34522001-01-23 Nathan Sidwell <nathan@codesourcery.com> 3453 3454 * call.c (build_conv): Typo in comment. 3455 (add_builtin_candidate): Add more explanation. 3456 Remove extra test for ENUMERAL_TYPE in {PRE,POST}INCREMENT_EXPR. 3457 Allow ENUMERAL_TYPEs for relops and eqops. Add both candidates 3458 when we have enumeral types. 3459 (add_builtin_candidates): Add more explanation. Add ENUMERAL_TYPE 3460 candidates for relops and eqops. 3461 (joust): Simplify control flow. Allow a non-template user 3462 function to hide a builtin. 3463 34642001-01-22 Nathan Sidwell <nathan@codesourcery.com> 3465 3466 * cp-tree.h (unification_kind_t): Add DEDUCE_ORDER. 3467 (more_specialized): Add deduction parameter. 3468 * call.c (joust): Adjust more_specialized call. 3469 * pt.c (UNIFY_ALLOW_OUTER_MORE_CV_QUAL, 3470 UNIFY_ALLOW_OUTER_LESS_CV_QUAL): New unify flags. 3471 (get_bindings_order): Remove. 3472 (get_bindings_real): Add DEDUCE parameter. 3473 (maybe_adjust_types_for_deduction): Return extra unify flags. Do 3474 REFERENCE_TYPE jig for DEDUCE_ORDER. 3475 (type_unification_real): Deal with DEDUCE_ORDER. Use result of 3476 maybe_adjust_types_for_deduction. 3477 (more_specialized): Add DEDUCE parameter. Call get_bindings_real 3478 directly. 3479 (try_one_overload): Use result of maybe_adjust_types_for_deduction. 3480 (check_cv_quals_for_unify): Use new unify qualifier flags. 3481 (unify): Clear new unify qualifier flags. 3482 (get_bindings_real): Add DEDUCE parameter. 3483 (get_bindings): Adjust call to get_bindings_real. 3484 (get_bindings_overload): Likewise. 3485 (most_specialized_instantiation): Adjust call to 3486 more_specialized. 3487 34882001-01-19 Jason Merrill <jason@redhat.com> 3489 3490 * decl2.c (flag_vtable_thunks): Also depend on ENABLE_NEW_GXX_ABI. 3491 3492 * decl.c (init_decl_processing): Just force -fvtable-thunks on if 3493 -fnew-abi. 3494 34952001-01-19 Ute Pelkmann <scope.muc@t-online.de> 3496 3497 * decl2.c (arg_assoc_class): Fix double iteration logic. 3498 34992001-01-19 Jason Merrill <jason@redhat.com> 3500 3501 * init.c (build_delete): Always call convert_force to strip cv-quals. 3502 3503 * decl2.c (flag_new_abi): Depend on ENABLE_NEW_GXX_ABI. 3504 * lang-specs.h: Default ABI depends on ENABLE_NEW_GXX_ABI. 3505 * g++spec.c: Don't look at ENABLE_NEW_GXX_ABI. 3506 35072001-01-19 Nathan Sidwell <nathan@codesourcery.com> 3508 3509 * search.c (get_vbase_1): Count only virtual bases. 3510 35112001-01-19 Nathan Sidwell <nathan@codesourcery.com> 3512 3513 * class.c (duplicate_tag_error): Robustify flag clearing. 3514 35152001-01-19 Nathan Sidwell <nathan@codesourcery.com> 3516 3517 * cp-tree.h (lookup_template_class): Add complain parm. 3518 * decl.c (lookup_namespace_name): Adjust call to 3519 lookup_template_class. 3520 (make_typename_type): Likewise. 3521 * semantics.c (finish_template_type): Likewise. 3522 * pt.c (lookup_template_class): Add complain parm. Adjust. 3523 (tsubst_aggr_type): Pass COMPLAIN down to lookup_template_class. 3524 (tsubst): Likewise. 3525 35262001-01-19 Nathan Sidwell <nathan@codesourcery.com> 3527 3528 * pt.c (copy_default_args_to_explicit_spec): Preserve 3529 object's CV quals. Reorganize. 3530 35312001-01-18 Nathan Sidwell <nathan@codesourcery.com> 3532 3533 * typeck.c (build_modify_expr): Say `initialization' for 3534 INIT_EXPRs. 3535 * init.c (build_default_init): Convert to enumeral type, if 3536 needed. 3537 35382001-01-18 Jakub Jelinek <jakub@redhat.com> 3539 3540 * parse.y (nomods_initdcl0): Properly set things up for 3541 initdcl0_innards. 3542 35432001-01-18 Nathan Sidwell <nathan@codesourcery.com> 3544 3545 * pt.c (UNIFY_ALLOW_OUTER_LEVEL): New unify flag. 3546 (type_unification_real): Set it. 3547 (unify): Use it. 3548 35492001-01-18 Nathan Sidwell <nathan@codesourcery.com> 3550 3551 * decl.c (finish_destructor_body): Convert to vbase pointer here. 3552 35532001-01-18 Nathan Sidwell <nathan@codesourcery.com> 3554 3555 * semantics.c (begin_class_definition): Check we're not inside a 3556 template parm list. 3557 35582001-01-18 Nathan Sidwell <nathan@codesourcery.com> 3559 3560 * tree.c (walk_tree, TREE_LIST): Don't walk the TREE_PURPOSE of 3561 BASELINK_P. 3562 35632001-01-16 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 3564 3565 * typeck.c (build_function_call_real): Call fold on the CALL_EXPR. 3566 * call.c (build_over_call): Add comment. 3567 35682001-01-16 Daniel Berlin <dberlin@redhat.com> 3569 3570 * cvt.c (ocp_convert): Handle vector type conversion 3571 * typeck2.c (digest_init): Handle vector type initializations 3572 35732001-01-16 Phil Edwards <pme@sources.redhat.com> 3574 3575 * g++spec.c: Don't add libraries needlessly if -fsyntax-only 3576 was given. 3577 35782001-01-15 Nathan Sidwell <nathan@codesourcery.com> 3579 3580 * pt.c (check_nontype_parm): Rename to ... 3581 (invalid_nontype_parm_type_p): ... here. 3582 (process_template_parm): Adjust. 3583 (convert_template_argument): Adjust. 3584 35852001-01-15 Nathan Sidwell <nathan@codesourcery.com> 3586 3587 * pt.c (check_nontype_parm): New function. 3588 (process_template_parm): Use it. 3589 (convert_template_argument): Use it. 3590 (convert_nontype_argument, RECORD_TYPE): Assert it's a ptr to 3591 member. 3592 35932001-01-14 Jeffrey Oldham <oldham@codesourcery.com> 3594 3595 * tree.c: Add defaults.h 3596 (cp_valid_lang_attribute): Incorporate SUPPORTS_INIT_PRIORITY. 3597 * Make-lang.in (cp/tree.o): Add defaults.h. 3598 35992001-01-13 Joseph S. Myers <jsm28@cam.ac.uk> 3600 3601 * Make-lang.in (CXX_C_OBJS): Add c-format.o. 3602 36032001-01-13 Joseph S. Myers <jsm28@cam.ac.uk> 3604 3605 * g++.1: Change to be ".so man1/gcc.1". 3606 36072001-01-13 Joseph S. Myers <jsm28@cam.ac.uk> 3608 3609 * Make-lang.in (c++.info, c++.install-info): Build and install g++ 3610 internals info. 3611 (c++.uninstall, c++.maintainer-clean): Remove g++ internals info. 3612 ($(srcdir)/cp/g++int.info): New target. 3613 * gxxint.texi: Add info directory entry. Use @@ in email address. 3614 * .cvsignore: Update. 3615 36162001-01-12 Nathan Sidwell <nathan@codesourcery.com> 3617 3618 * typeck.c (build_c_cast): Do template processing earlier. 3619 Always pedwarn on array casts. 3620 36212001-01-12 Nathan Sidwell <nathan@codesourcery.com> 3622 3623 * friend.c (make_friend_class): Make sure a templated class is 3624 actually a template. 3625 36262001-01-11 Nathan Sidwell <nathan@codesourcery.com> 3627 3628 * decl2.c (get_guard): Set linkage from guarded decl. 3629 36302001-01-11 Nathan Sidwell <nathan@codesourcery.com> 3631 3632 * call.c (convert_default_arg): Check for unprocessed 3633 DEFAULT_ARG. 3634 * cp-tree.h (replace_defarg): Move to spew.c. 3635 (maybe_snarf_defarg, add_defarg_fn, do_pending_defargs): Move to 3636 spew.c, which is where they really are. 3637 (done_pending_defargs): Declare. 3638 (unprocessed_defarg_fn): Declare. 3639 * decl.c (replace_defarg): Move to spew.c 3640 * parse.y (structsp): Call done_pending_defargs. 3641 * spew.c (defarg_fns): Rearrange list structure. 3642 (defarg_fnsdone): New static variable. 3643 (defarg_depfns): New static variable. 3644 (init_spew): Adjust. 3645 (add_defarg_fn): Store the type in TREE_TYPE. 3646 (do_pending_defargs): Detect and deal with ordering constraints 3647 and circularity. 3648 (done_pending_defargs): New function. 3649 (unprocessed_defarg_fn): New function. 3650 (replace_defarg): Moved from decl.c. Robustify. Don't save 3651 if circularity detected. 3652 36532001-01-11 Nathan Sidwell <nathan@codesourcery.com> 3654 3655 * pt.c (unify): Check array has a domain, before checking 3656 whether it is variable sized. 3657 36582001-01-11 Nathan Sidwell <nathan@codesourcery.com> 3659 3660 * decl.c (grokparms): Unobfuscate and get correct diagnostic for 3661 parameters with pointers to arrays of unknown bound. 3662 36632001-01-11 Nathan Sidwell <nathan@codesourcery.com> 3664 3665 * parse.y (template_parm_header, template_spec_header): New 3666 reductions. Split out from ... 3667 (template_header): ... here. Use them. 3668 (template_template_parm): Use template_parm_header. 3669 * semantics.c (finish_template_template_parm): Add assert. 3670 36712001-01-10 Mark Mitchell <mark@codesourcery.com> 3672 3673 * mangle.c (write_builtin_type): Fix thinko. 3674 3675 * pt.c (copy_default_args_to_explicit_spec_1): New function. 3676 (copy_default_args_to_explicit_spec): Likewise. 3677 (check_explicit_specialization): Use it. 3678 3679 * class.c (finish_struct_1): Remove last argument in call to 3680 make_decl_rtl; use make_function_rtl instead of make_decl_rtl. 3681 * decl.c (builtin_function): Likewise. 3682 (build_cp_library_fn): Likewise. 3683 (check_initializer): Likewise. 3684 (make_rtl_for_nonlocal_decl): Likewise. 3685 (cp_finish_decl): Likewise. 3686 (start_function): Likewise. 3687 * decl2.c (finish_anon_union): Likewise. 3688 * friend.c (do_friend): Likewise. 3689 * init.c (build_java_class_ref): Likewise. 3690 * method.c (make_thunk): Likewise. 3691 * pt.c (tsubst_friend_function): Likewise. 3692 * semantics.c (expand_body): Likewise. 3693 36942001-01-10 Mark Mitchell <mark@codesourcery.com> 3695 3696 * cp-tree.h (DECL_CLONED_FUNCTION_P): Avoid wild reads by not 3697 looking at DECL_CLONED_FUNCTION for non-functions. 3698 36992001-01-10 Nathan Sidwell <nathan@codesourcery.com> 3700 3701 * error.c (dump_template_parameter): Use parm to determine how 3702 to print default value. 3703 37042001-01-10 Nathan Sidwell <nathan@codesourcery.com> 3705 3706 * class.c (duplicate_tag_error): Clear more flags. 3707 37082001-01-10 Nathan Sidwell <nathan@codesourcery.com> 3709 3710 * call.c (build_new_method_call): Use binfo_for_vbase. 3711 37122001-01-10 Joseph S. Myers <jsm28@cam.ac.uk> 3713 3714 * cp-tree.h (flag_cond_mismatch): Don't declare. 3715 * decl2.c (flag_cond_mismatch): Don't define. 3716 (lang_f_options): Remove cond-mismatch. 3717 (unsupported_options): Add cond-mismatch. 3718 37192001-01-09 Nathan Sidwell <nathan@codesourcery.com> 3720 3721 * class.c (handle_using_decl): Reject using of constructor name 3722 of sourcing class. Allow injecting of a method with same name as 3723 nested class. Fixup error messages. 3724 37252001-01-09 Joseph S. Myers <jsm28@cam.ac.uk> 3726 3727 * decl2.c (lang_decode_option): Handle -Wformat=2. 3728 37292001-01-08 Nathan Sidwell <nathan@codesourcery.com> 3730 3731 * cp-tree.h (lang_decl_flags): Rename defined_in_class to 3732 initialized_in_class. 3733 (DECL_DEFINED_IN_CLASS_P): Rename to ... 3734 (DECL_INITIALIZED_IN_CLASS_P): ... here, to reflect true meaning. 3735 * decl.c (duplicate_decls): Preseve DECL_INITIALIZED_IN_CLASS_P. 3736 (cp_finish_decl): Adjust for DECL_INITIALIZED_IN_CLASS_P. 3737 * pt.c (check_default_tmpl_args): Adjust for 3738 DECL_INITIALIZED_IN_CLASS_P. 3739 (instantiate_class_template): Likewise. 3740 (instantiate_decl): Check DECL_INITIALIZED_IN_CLASS_P. 3741 3742 * class.c (finish_struct): Constify saved_filename. 3743 37442001-01-08 Nathan Sidwell <nathan@codesourcery.com> 3745 3746 * class.c (duplicate_tag_error): Adjust diagnostic. 3747 (finish_struct): Locally set location to start of struct. 3748 * decl.c (fixup_anonymous_aggr): Use cp_error_at. 3749 37502001-01-08 Nathan Sidwell <nathan@codesourcery.com> 3751 3752 * decl.c (struct binding_level): Adjust class_shadowed comments 3753 to reflect reality. 3754 (push_class_level_binding): Adjust comments to reflect reality. 3755 Set IDENTIFIER_CLASS_VALUE when replacing an existing binding. 3756 Don't set TREE_VALUE on the class_shadowed list. 3757 37582001-01-07 Alexandre Petit-Bianco <apbianco@cygnus.com> 3759 3760 * decl2.c (acceptable_java_type): Allow references too. 3761 * init.c (build_java_class_ref): When using the new ABI, search 3762 `class$' and have it mangled with `mangle_decl.' 3763 * mangle.c (write_java_integer_type_codes): New function. 3764 (write_builtin_type): Detect and mangle Java integer and real 3765 types. 3766 37672001-01-07 Mark Mitchell <mark@codesourcery.com> 3768 3769 * decl2.c (grokfield): Don't accept `asm' specifiers for 3770 non-static data members. 3771 37722001-01-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3773 3774 * expr.c (cplus_expand_expr): Don't reset `target'. 3775 37762001-01-07 Neil Booth <neil@daikokuya.demon.co.uk> 3777 3778 * cp/decl2.c (cxx_post_options): Call cpp_post_options. 3779 37802001-01-05 Nathan Sidwell <nathan@codesourcery.com> 3781 3782 * parse.y (template_datadef): Check for error_mark_node. 3783 37842001-01-05 Nathan Sidwell <nathan@codesourcery.com> 3785 3786 * cp-tree.def (DEFAULT_ARG): Make `x' class. 3787 37882001-01-04 Joseph S. Myers <jsm28@cam.ac.uk> 3789 3790 * decl.c (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE): Don't define. 3791 (record_builtin_type): Make non-static. 3792 (flag_short_double): Don't declare. 3793 (init_decl_processing): Remove the creation of many tree nodes now 3794 in c_common_nodes_and_builtins. 3795 (build_void_list_node): New function. 3796 * decl2.c (flag_short_double, flag_short_wchar): Don't define. 3797 * cp-tree.h (flag_short_wchar): Don't declare. 3798 37992001-01-04 Mark Mitchell <mark@codesourcery.com> 3800 3801 * call.c (build_conv): Don't use build1 for USER_CONV. 3802 * pt.c (tsubst_copy): Or for PREINCREMENT_EXPR and similar nodes. 3803 38042001-01-03 Joseph S. Myers <jsm28@cam.ac.uk> 3805 3806 * lex.c (lang_init): Call c_common_lang_init. 3807 38082001-01-03 Nathan Sidwell <nathan@codesourcery.com> 3809 3810 * search.c (lookup_fnfields_here): Remove. 3811 (look_for_overrides_r): Use lookup_fnfields_1. 3812 Ignore functions from using declarations. 3813 38142001-01-03 Nathan Sidwell <nathan@codesourcery.com> 3815 3816 Implement exceptions specifiers for implicit member functions. 3817 * cp-tree.h (merge_exceptions_specifiers): Declare new function. 3818 * method.c (synthesize_exception_spec): New function. 3819 (locate_dtor, locate_ctor, locate_copy): New functions. 3820 (implicitly_declare_fn): Generate the exception spec too. 3821 * search.c (check_final_overrider): Check artificial functions 3822 too. 3823 * typeck2.c (merge_exception_specifiers): New function. 3824 38252001-01-03 Jason Merrill <jason@redhat.com> 3826 3827 * init.c (build_default_init): New fn. 3828 (perform_member_init): Split out from here. 3829 (build_new_1): Use it. Simplify initialization logic. 3830 (build_vec_init): Take an array, rather than a pointer and maxindex. 3831 Speed up simple initializations. Don't clean up if we're assigning. 3832 * cp-tree.h: Adjust. 3833 * decl2.c (do_static_initialization): Remove TREE_VEC case. 3834 * parse.y (new_initializer): Return void_zero_node for (). 3835 * typeck.c (build_modify_expr): Handle getting a CONSTRUCTOR. 3836 * typeck2.c (digest_init): Only complain about user-written 3837 CONSTRUCTORs. 3838 38392000-12-22 Mike Stump <mrs@wrs.com> 3840 3841 * decl2.c: (max_tinst_depth): Increase to 50. 3842 38432001-01-02 Mark Mitchell <mark@codesourcery.com> 3844 3845 * class.c (invalidate_class_lookup_cache): Zero the 3846 previous_class_values. 3847 * cp-tree.h (TMPL_PARMS_DEPTH): Use TREE_INT_CST_LOW, not 3848 TREE_INT_CST_HIGH. 3849 (CLASSTYPE_TEMPLATE_LEVEL): Likewise. 3850 * decl.c (free_bindings): New variable. 3851 (push_binding): Don't create a new binding if we have one on the 3852 free list. 3853 (pop_binding): Put old bindings on the free list. 3854 (init_decl_processing): Use size_int, not build_int_2. 3855 Register free_bindings as a GC root. 3856 (cp_make_fname_decl): Use size_int, not build_int_2. 3857 (push_inline_template_parms_recursive): Likewise. 3858 (end_template_parm_list): Likewise. 3859 (for_each_template_parm): Do not use walk_tree_without_duplicates. 3860 (tsubst_template_parms): Use size_int, not build_int_2. 3861 (tsubst): Likewise. 3862 * rtti.c (get_vmi_pseudo_type_info): Likewise. 3863 38642001-01-02 Richard Henderson <rth@redhat.com> 3865 3866 * parse.y (asm): Set ASM_INPUT_P. 3867 38682001-01-02 Jason Merrill <jason@redhat.com> 3869 3870 * tree.c (cp_valid_lang_attribute): Don't set CLASSTYPE_COM_INTERFACE 3871 for v3 ABI. 3872 3873 * typeck.c (cp_truthvalue_conversion): New fn. 3874 * cvt.c (ocp_convert): Use it. 3875 3876 * cp-tree.h: Lose c-common.c decls. 3877 3878 * typeck.c (build_unary_op): Restore old &a.f diagnostic code. 3879 * cvt.c (convert_to_void): Use type_unknown_p. 3880 3881 * typeck.c (strip_all_pointer_quals): Also strip quals from 3882 pointer-to-member types. 3883 3884 * Make-lang.in (cp/TAGS): Use --no-globals. Ignore parse.c, and treat 3885 parse.y as C. 3886 3887 * call.c (build_new_method_call): Do evaluate the object parameter 3888 when accessing a static member. 3889 * typeck.c (build_component_ref): Likewise. 3890 38912001-01-02 Andreas Jaeger <aj@suse.de> 3892 3893 * decl.c (cp_missing_noreturn_ok_p): New. 3894 (init_decl_processing): Set lang_missing_noreturn_ok_p. 3895 3896 3897Copyright (C) 2001 Free Software Foundation, Inc. 3898 3899Copying and distribution of this file, with or without modification, 3900are permitted in any medium without royalty provided the copyright 3901notice and this notice are preserved. 3902