12000-12-29 Jakub Jelinek <jakub@redhat.com> 2 3 * decl.c (init_decl_processing): Fix sign of wchar_type_node. 4 52000-12-29 Mark Mitchell <mark@codesourcery.com> 6 7 * class.c (pushclass): Remove #if 0'd code. 8 * cp-tree.h (overload_template_name): Remove. 9 * decl.c (store_bindings): Simplify. 10 (pop_from_top_level): Likewise. 11 * pt.c (overload_template_name): Remove. 12 (instantiate_decl): Don't call push_to_top_level if it's not 13 needed. 14 152000-12-28 Mark Mitchell <mark@codesourcery.com> 16 17 * pt.c (register_local_specialization): Don't return a value. 18 (lookup_template_class): Use move-to-front heuristic when looking 19 up template instantiations. 20 (instantiate_decl): Only push_to_top_level when we're actually 21 going to instantiate the template. 22 232000-12-29 Hans-Peter Nilsson <hp@bitrange.com> 24 25 * search.c (binfo_for_vtable): Return least derived class, not 26 most. Handle secondary vtables. 27 282000-12-22 Jason Merrill <jason@redhat.com> 29 30 * pt.c (more_specialized): Don't optimize len==0. 31 (fn_type_unification): If we're adding the return type, increase len. 32 33 * typeck.c (build_binary_op): Fix pmf comparison logic. 34 35 * call.c (joust): Use DECL_NONSTATIC_MEMBER_FUNCTION_P, not 36 DECL_STATIC_FUNCTION_P. 37 38 * semantics.c (genrtl_finish_function): Don't try to jump to 39 return_label unless it exists. 40 41 In partial ordering for a call, ignore parms for which we don't have 42 a real argument. 43 * call.c (joust): Pass len to more_specialized. 44 (add_template_candidate_real): Strip 'this', pass len. 45 * pt.c (more_specialized): Pass len down. Lose explicit_args parm. 46 (get_bindings_order): New fn. Pass len down. 47 (get_bindings_real): Strip 'this', pass len. 48 (fn_type_unification): Likewise. 49 (type_unification_real): Succeed after checking 'len' args. 50 (most_specialized_instantiation): Lose explicit_args parm. 51 * class.c (resolve_address_of_overloaded_function): Strip 'this', 52 pass len. 53 542000-12-21 Jason Merrill <jason@redhat.com> 55 56 * pt.c (tsubst_decl): A FUNCTION_DECL has DECL_RESULT, not 57 DECL_TEMPLATE_RESULT. 58 59 * search.c (lookup_field_r): Call lookup_fnfields_1, not 60 lookup_fnfields_here. 61 62 * parse.y (typename_sub2): Return the TYPE_DECL, not the type. 63 64 * call.c (build_object_call): Also allow conversions that return 65 reference to pointer to function. 66 (add_conv_candidate): Handle totype being ref to ptr to fn. 67 (build_field_call): Also allow members of type reference to function. 68 Lose support for calling pointer to METHOD_TYPE fields. 69 70 * error.c (dump_expr): Handle *_CAST_EXPR. 71 72 * typeck2.c (build_scoped_ref): Always convert to the naming class. 73 74 * tree.c (break_out_cleanups): Lose. 75 * cp-tree.h: Remove prototype. 76 * typeck.c (build_component_ref): Don't break_out_cleanups. 77 (build_compound_expr): Likewise. 78 * semantics.c (finish_expr_stmt): Likewise. 79 802000-12-20 Richard Henderson <rth@redhat.com> 81 82 * cp-tree.h: Update declarations. 83 * decl.c (finish_case_label): Return the new stmt node. 84 * semantics.c (finish_goto_stmt): Likewise. 85 (finish_expr_stmt, finish_return_stmt): Likewise. 86 (finish_break_stmt, finish_continue_stmt): Likewise. 87 (finish_asm_stmt): Likewise. 88 * parse.y (already_scoped_stmt): Set STMT_LINENO. 89 (compstmt, implicitly_scoped_stmt, stmt): Likewise. 90 (simple_if, simple_stmt): Return the new stmt node. 91 (save_lineno): New. 92 932000-12-18 Joseph S. Myers <jsm28@cam.ac.uk> 94 95 * cp-tree.h: Don't declare warn_long_long. 96 972000-12-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 98 99 * tree.c (no_linkage_helper): Use CLASS_TYPE_P instead of 100 IS_AGGR_TYPE. 101 1022000-12-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 103 104 * pt.c (unify): Handle when both ARG and PARM are 105 BOUND_TEMPLATE_TEMPLATE_PARM. 106 1072000-12-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 108 109 * pt.c (reduce_template_parm_level): Set DECL_ARTIFICIAL and 110 DECL_TEMPLATE_PARM_P. 111 1122000-12-15 Jason Merrill <jason@redhat.com> 113 114 * init.c (build_new_1): Reorganize. Now with 100% fewer SAVE_EXPRs! 115 116 * init.c (build_new_1): Don't strip quals from type. 117 118 * decl.c (pushdecl): Don't check for linkage on a non-decl. 119 120 * call.c (build_op_delete_call): See through ARRAY_TYPEs. 121 122 * call.c (build_new_function_call): Lose space before paren in 123 error message. 124 (build_new_method_call): Likewise. 125 126 * typeck2.c (build_m_component_ref): Propagate quals from datum. 127 1282000-12-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 129 130 * pt.c (check_explicit_specialization): Propagate default 131 function arguments to explicit specializations. 132 1332000-12-13 DJ Delorie <dj@redhat.com> 134 135 * typeck.c (build_binary_op): Do signed/unsigned warnings for >? 136 and <? operators. 137 1382000-12-08 Jason Merrill <jason@redhat.com> 139 140 * error.c (dump_function_name): Don't let the user see __comp_ctor. 141 142 Clean up copy-initialization in overloading code. 143 * call.c (build_user_type_conversion_1): Die if we are asked to 144 convert to the same or a base type. 145 (implicit_conversion): Avoid doing so. Lose reference binding code. 146 (convert_like_real): Treat BASE_CONV and RVALUE_CONV as implicit 147 direct-initialization. Also do direct-init part of copy-init. 148 (build_user_type_conversion): Don't provide context to convert_like. 149 * cvt.c (ocp_convert): build_user_type_conversion will now provide 150 the constructor call for copy-init. 151 152 * pt.c (tsubst_decl): Call clone_function_decl here if this is an 153 instantiation of a member template. 154 (do_decl_instantiation): Not here. 155 1562000-12-07 Nathan Sidwell <nathan@codesourcery.com> 157 158 * class.c (check_field_decls): Don't special case anonymous 159 fields in error messages. 160 (note_name_declared_in_class): Use %D on diagnostic. 161 162 * tree.c (pod_type_p): Use strip_array_types. 163 (cp_valid_lang_attribute): Likewise. 164 * typeck.c (cp_type_quals): Strip arrays separately, to avoid 165 multiple evaluations. 166 (cp_has_mutable_p): Use strip_array_types. 167 1682000-12-07 Nathan Sidwell <nathan@codesourcery.com> 169 170 * cp-tree.h (sufficient_parms_p): Declare new function. 171 * call.c (sufficient_parms_p): New function, broken out of ... 172 (add_function_candidate): ... here. Use it. 173 (add_conv_candidate): Use it. 174 * decl.c (grok_ctor_properties): Use it. 175 1762000-12-07 Jakub Jelinek <jakub@redhat.com> 177 178 * optimize.c (copy_body_r): Set STMT_IS_FULL_EXPR_P on EXPR_STMT. 179 1802000-12-07 Joseph S. Myers <jsm28@cam.ac.uk> 181 182 * decl2.c (lang_decode_option): Handle -Wformat-security. 183 1842000-12-06 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 185 186 * pt.c (verify_class_unification): New function. 187 (get_class_bindings): Use it. 188 (try_class_unification): Tidy. 189 (unify): Handle when argument of a template-id is not 190 template parameter dependent. 191 (template_args_equal): Handle when TREE_CODE's do not match. 192 1932000-12-06 Alexandre Oliva <aoliva@redhat.com> 194 195 * lang-specs.h (c++): When invoking the stand-alone preprocessor 196 for -save-temps, pass all relevant -Defines to it, and then don't 197 pass them to cc1plus. 198 1992000-12-05 Will Cohen <wcohen@redhat.com> 200 201 * decl.c (finish_case_label): Cleared 202 more_cleanups_ok in surrounding function scopes. 203 (define_label): Likewise. 204 2052000-12-05 Nathan Sidwell <nathan@codesourcery.com> 206 207 * cp-tree.h (IDENTIFIER_VIRTUAL_P): Document. 208 (get_matching_virtual): Remove. 209 (look_for_overrides): Declare new function. 210 * decl.c (grokfndecl): Don't set IDENTIFIER_VIRTUAL_P or 211 DECL_VINDEX here. 212 * class.c (check_for_override): Move base class iteration code 213 to look_for_overrides. 214 * search.c (next_baselink): Remove. 215 (get_virtuals_named_this): Remove. 216 (get_virtual_destructor): Remove. 217 (tree_has_any_destructors_p): Remove. 218 (struct gvnt_info): Remove. 219 (check_final_overrider): Remove `virtual' from error messages. 220 (get_matching_virtuals): Remove. Move functionality to ... 221 (look_for_overrides): ... here, and ... 222 (look_for_overrides_r): ... here. Set DECL_VIRTUAL_P, if found 223 to be overriding. 224 2252000-12-05 Nathan Sidwell <nathan@codesourcery.com> 226 227 * typeck.c (get_delta_difference): If via a virtual base, 228 return zero. 229 * cvt.c (cp_convert_to_pointer): If via a virtual base, do no 230 adjustment. 231 2322000-12-04 Richard Henderson <rth@redhat.com> 233 234 * error.c (dump_tree): Use output_add_string not OB_PUTS. 235 2362000-12-04 Jason Merrill <jason@redhat.com> 237 238 * mangle.c (write_type): Mangle VECTOR_TYPE with "U8__vector". 239 (write_builtin_type): Pass intSI_type_node and the like through 240 type_for_mode. 241 * method.c (process_overload_item): Mangle VECTOR_TYPEs with 'o'. 242 Pass intSI_type_node and the like through type_for_mode. 243 * decl2.c (arg_assoc_type): Handle VECTOR_TYPE like COMPLEX_TYPE. 244 * pt.c (tsubst, unify): Likewise. 245 * tree.c (walk_tree): Likewise. 246 * error.c (dump_type): Likewise. 247 (dump_type_prefix, dump_type_suffix): Don't bother with VECTOR_TYPE. 248 249 * Make-lang.in: Tweak top comment for emacs. 250 (cp/TAGS): Restore. 251 252 * except.c (expand_throw): Use push_throw_library_fn for _Jv_Throw. 253 254 * class.c (clone_function_decl): Robustify. 255 2562000-12-04 Michael Matz <matzmich@cs.tu-berlin.de> 257 258 * decl.c (store_bindings): Only search in the non modified 259 old_bindings for duplicates. 260 2612000-12-04 Nathan Sidwell <nathan@codesourcery.com> 262 263 * error.c (dump_function_decl): Use DECL_VIRTUAL_P, not 264 TYPE_POLYMORPHIC_P. 265 266 * typeck.c (build_static_cast): Remove unused variable. 267 2682000-12-01 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 269 270 * pt.c: Fix typo in comment. 271 2722000-12-01 Joseph S. Myers <jsm28@cam.ac.uk> 273 274 * decl2.c (warn_format): Remove definition. 275 (lang_decode_option): Handle -Wformat-nonliteral, 276 -Wno-format-extra-args and -Wno-format-y2k. Use set_Wformat. 277 2782000-12-01 Joseph S. Myers <jsm28@cam.ac.uk> 279 280 * decl.c (WINT_TYPE, INTMAX_TYPE, UINTMAX_TYPE): Don't define. 281 (init_decl_processing): Don't create string_type_node, 282 const_string_type_node, wint_type_node, intmax_type_node, 283 uintmax_type_node, default_function_type, ptrdiff_type_node and 284 unsigned_ptrdiff_type_node. Adjust position of call to 285 c_common_nodes_and_builtins. 286 (identifier_global_value): New function. 287 2882000-12-01 Nathan Sidwell <nathan@codesourcery.com> 289 290 * call.c (standard_conversion): Reject pointer to member 291 conversions from ambiguous, inaccessible or virtual bases. 292 * typeck.c (build_static_cast): Don't check pointers to members 293 specially. 294 2952000-11-30 Nathan Sidwell <nathan@codesourcery.com> 296 297 * method.c (do_build_copy_constructor): Preserve cv 298 qualifications when accessing source object members. 299 (do_build_assign_ref): Likewise. Remove separate diagnostics for 300 unnamed fields. 301 3022000-11-30 Nathan Sidwell <nathan@codesourcery.com> 303 304 * method.c (do_build_assign_ref): Construct appropriately 305 CV-qualified base reference. Don't allow const casts in base 306 conversion. 307 3082000-11-30 Nathan Sidwell <nathan@codesourcery.com> 309 310 * call.c (build_over_call): Use VOID_TYPE_P. Don't die on 311 incomplete return type. 312 3132000-11-28 Nathan Sidwell <nathan@codesourcery.com> 314 315 * parse.y (base_class.1): Produce a _TYPE not a _DECL. 316 * semantics.c (finish_base_specifier): Accept a _TYPE not a 317 _DECL. 318 3192000-11-28 Nathan Sidwell <nathan@codesourcery.com> 320 321 * spew.c (yyerror): Cope if yylval.ttype is NULL. 322 3232000-11-28 Nathan Sidwell <nathan@codesourcery.com> 324 325 * decl.c (grokdeclarator): Diagnose undefined template contexts. 326 3272000-11-28 Nathan Sidwell <nathan@codesourcery.com> 328 329 * decl.c (grokdeclarator): Do type access control on friend 330 class. 331 3322000-11-27 Nathan Sidwell <nathan@codesourcery.com> 333 334 * decl.c (grokfndecl): Undo COMPONENT_REF damage caused by 335 bison parser ickiness. 336 * pt.c (tsubst_friend_function): Enter namespace scope when 337 tsubsting the function name. 338 * cp-tree.h (DECL_TI_TEMPLATE): Update comment to reflect reality. 339 3402000-11-27 Nathan Sidwell <nathan@codesourcery.com> 341 342 * cp-tree.h (binfo_from_vbase): Return the virtual base's binfo. 343 * cvt.c (cp_convert_to_pointer): Add force parameter. 344 Allow conversions via virtual base if forced. 345 (convert_to_pointer_force): Adjust call to cp_convert_to_pointer. 346 (ocp_convert): Likewise. 347 * search.c (binfo_from_vbase): Return the virtual base's binfo. 348 * typeck.c (get_delta_difference): Adjust handling of virtual 349 bases. 350 3512000-11-26 Mark Mitchell <mark@codesourcery.com> 352 353 * tree.c (struct list_hash): Remove. 354 (list_hash_table): Make it be an htab. 355 (struct list_proxy): New type. 356 (list_hash_eq): New function. 357 (list_hash_pieces): Renamed from ... 358 (list_hash): ... this. 359 (list_hash_lookup): Remove. 360 (list_hash_add): Remove. 361 (hash_tree_cons): Use the generic hashtable. 362 (mark_list_hash): Remove. 363 (init_tree): Create the hashtable. 364 3652000-11-25 Joseph S. Myers <jsm28@cam.ac.uk> 366 367 * method.c (build_mangled_C9x_name): Rename to 368 build_mangled_C99_name. Change C9X references in comments to 369 refer to C99. 370 3712000-11-24 Nathan Sidwell <nathan@codesourcery.com> 372 373 * parse.y (unary_expr): Move VA_ARG from here ... 374 (primary): ... to here. 375 3762000-11-24 Nathan Sidwell <nathan@codesourcery.com> 377 378 * semantics.c (finish_id_expr): If type is error_mark, return 379 error_mark. 380 3812000-11-23 Nathan Sidwell <nathan@codesourcery.com> 382 383 * pt.c (lookup_template_class): Simplify loop exit constructs. 384 Cope when there is no partial instantiation of a template 385 template member. 386 3872000-11-23 J"orn Rennecke <amylaar@redhat.com> 388 389 * Make-lang.in (g++spec.o, cxxmain.o): Depend on $(CONFIG_H). 390 3912000-11-22 Mark Mitchell <mark@codesourcery.com> 392 393 * mangle.c (mangle_conv_op_name_for_type): Don't use `__op' 394 prefix. 395 396 * pt.c (do_decl_instantiate): Explicitly clone constructors and 397 destructors that haven't already been cloned. 398 3992000-11-20 Richard Henderson <rth@redhat.com> 400 401 * parse.y (yyparse_1): Rename the parser entry point. 402 4032000-11-20 Alex Samuel <samuel@codesourcery.com> 404 405 * mangle.c (write_name): Use <unscoped-name> for names directly in 406 function scope. 407 (write_unscoped_name): Accept names directly in function scope. 408 4092000-11-20 Nathan Sidwell <nathan@codesourcery.com> 410 411 * lex.c (rid_to_yy, RID_EXPORT): Make unique keyword. 412 * parse.y (extdef): Add EXPORT reduction. 413 * spew.c (yylex): Don't skip export here. 414 4152000-11-19 Mark Mitchell <mark@codesourcery.com> 416 417 * decl.c (init_decl_processing): Correct name of pure virtual 418 function under the new ABI. 419 * rtti.c (throw_bad_cast): Likewise, for bad cast function. 420 (throw_bad_typeid): Likewise for bad typeid function. 421 4222000-11-18 Mark Mitchell <mark@codesourcery.com> 423 424 * decl.c (grokparms): Don't even function types of `void' type, 425 either. 426 * mangle.c (write_type): Don't crash when confronted with the 427 error_mark_node. 428 429 * decl.c (grokparms): Don't create parameters of `void' type. 430 4312000-11-17 Zack Weinberg <zack@wolery.stanford.edu> 432 433 * lex.c (mark_impl_file_chain): Delete. 434 (init_parse): Remove call to ggc_add_string_root. No need to 435 ggc_strdup a string constant. Do not add impl_file_chain to GC 436 roots. 437 (handle_pragma_implementation): No need to ggc_strdup main_filename. 438 4392000-11-17 Nathan Sidwell <nathan@codesourcery.com> 440 441 * pt.c (tsubst_expr, DECL_STMT): Instantiate decl's type. 442 4432000-11-17 Nathan Sidwell <nathan@codesourcery.com> 444 445 * cp-tree.h (PARMLIST_ELLIPSIS_P): New macro. 446 * decl.c (grokdeclarator): Don't reject void parms here. 447 (require_complete_types_for_parms): Simplify, use 448 complete_type_or_else. 449 (grokparms): Remove bitrot. Remove funcdef parm. 450 Deal with ellipsis parm lists here. 451 * semantics.c (finish_parmlist): Don't append void_list_node 452 here. Set PARMLIST_ELLIPSIS_P. 453 4542000-11-17 Nathan Sidwell <nathan@codesourcery.com> 455 456 * typeck2.c (incomplete_type_error): Reorganize to avoid 457 excessive diagnostics. 458 4592000-11-16 Zack Weinberg <zack@wolery.stanford.edu> 460 461 * lex.c (struct impl_files, internal_filename): Constify a char *. 462 4632000-11-16 Mark Mitchell <mark@codesourcery.com> 464 465 * mangle.c (write_special_name_constructor): Don't generate 466 assembler junk when confronted with an old-style constructor. 467 (write_special_name_destructor): Likewise. 468 (mangle_decl_string): Do it here instead. 469 4702000-11-16 Nathan Sidwell <nathan@codesourcery.com> 471 472 * call.c (op_error): Make error messages clearer. 473 4742000-11-15 Mark Mitchell <mark@codesourcery.com> 475 476 * decl.c (wrapup_globals_for_namespace): Don't mark things 477 TREE_ASM_WRITTEN when they're not. 478 4792000-11-15 Jason Merrill <jason@redhat.com> 480 481 * typeck2.c (friendly_abort): Uncount the error before handing 482 off to fancy_abort. 483 4842000-11-15 Nathan Sidwell <nathan@codesourcery.com> 485 486 * typeck.c (lookup_anon_field): Cope with qv qualifiers. 487 4882000-11-14 Mark Mitchell <mark@codesourcery.com> 489 490 * class.c (build_vtbl_initializer): Fix typo in comment. 491 * typeck.c (expr_sizeof): Don't crash on errors. 492 4932000-11-14 Jim Wilson <wilson@redhat.com> 494 495 * lang-specs.h: Add %2 after %(cc1_options). 496 4972000-11-14 Richard Henderson <rth@redhat.com> 498 499 * typeck.c (c_sizeof): Be strict about casting result value 500 back to c_size_type_node. 501 (expr_sizeof, c_sizeof_nowarn, c_alignof): Likewise. 502 5032000-11-13 Joseph S. Myers <jsm28@cam.ac.uk> 504 505 * typeck.c (build_unary_op): Use boolean_increment from 506 c-common.c, moving the relevant code there. 507 5082000-11-11 Jason Merrill <jason@redhat.com> 509 510 * typeck.c (mark_addressable): Don't call put_var_into_stack. 511 512 * decl.c (maybe_commonize_var): Set DECL_UNINLINABLE for statics 513 in inlines. 514 5152000-11-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 516 517 * decl.c (grokdeclarator, save_function_data): Use memcpy, not bcopy. 518 * lex.c (copy_lang_decl): Likewise. 519 5202000-11-09 Mark Mitchell <mark@codesourcery.com> 521 522 * dump.c (cp_dump_tree): Don't dump function bodies here. 523 524 * Make-lang.in (CXX_C_OBJS): Add c-dump.o. 525 (dump.o): Update dependency list. 526 * cp-tree.h (DECL_MAYBE_TEMPLATE): Remove. 527 (flag_dump_translation_unit): Likewise. 528 (CP_TYPE_QUALS): Adjust definition. 529 (DECL_C_BIT_FIELD): Remove. 530 (SET_DECL_C_BIT_FIELD): Likewise. 531 (CLEAR_DECL_C_BIT_FIELD): Likewise. 532 (add_maybe_template): Likewise. 533 (strip_array_types): Likewise. 534 (dump_node_to_file): Likewise. 535 (cp_dump_tree): New function. 536 * decl.c (init_decl_processing): Set lang_dump_tree. 537 * decl2.c (flag_dump_translation_unit): Remove. 538 * dump.c: Move most of it to ../c-dump.c. 539 (cp_dump_tree): New function. 540 * pt.c (add_maybe_template): Remove. 541 * typeck.c (strip_array_types): Likewise. 542 5432000-11-07 Eric Christopher <echristo@redhat.com> 544 545 * decl.c (init_decl_processing): Change definition of 546 __wchar_t to wchar_t. Remove artificial declaration of 547 wchar_t. 548 * lex.c: Change instances of __wchar_t to wchar_t. 549 5502000-11-09 Nathan Sidwell <nathan@codesourcery.com> 551 552 * lex.c (do_identifier): Don't lookup_name for operators. 553 * parse.y (operator): Save looking_for_typename. 554 (unoperator): Restore it. 555 * spew.c (frob_opname): Use nth_token for lookahead. 556 5572000-11-08 Nathan Sidwell <nathan@codesourcery.com> 558 559 * decl.c (grok_op_properties): Always use coerce_new_type and 560 coerce_delete_type. 561 * decl2.c (coerce_new_type): Use c_size_type_node. Preserve 562 exception specification. Tidy up. 563 (coerce_delete_type): Preserve exception specification. Tidy up. 564 5652000-11-07 Joseph S. Myers <jsm28@cam.ac.uk> 566 567 * class.c (duplicate_tag_error, build_vtbl_initializer), decl.c 568 (push_binding_level), error.c (cp_tree_printer), pt.c 569 (process_partial_specialization, tsubst_template_arg_vector), 570 search.c (lookup_member): Use memset () instead of bzero (). 571 5722000-11-07 Nathan Sidwell <nathan@codesourcery.com> 573 574 * decl.c (build_ptrmemfunc_type): Allow error_mark_node. 575 5762000-11-05 Joseph S. Myers <jsm28@cam.ac.uk> 577 578 * Make-lang.in (c++.distdir): Remove. 579 5802000-11-04 Mark Mitchell <mark@codesourcery.com> 581 582 * decl2.c (do_nonmember_using_decl): Allow `extern "C"' 583 declarations from different namespaces to be combined. 584 5852000-11-03 Zack Weinberg <zack@wolery.stanford.edu> 586 587 * decl.c: Include tm_p.h. 588 5892000-11-03 Joseph S. Myers <jsm28@cam.ac.uk> 590 591 * tree.c (cp_tree_equal): Use memcmp () instead of bcmp (). 592 5932000-11-02 Joseph S. Myers <jsm28@cam.ac.uk> 594 595 * dump.c (dequeue_and_dump), lex.c (interface_strcmp), method.c 596 (build_overload_value), repo.c (open_repo_file), xref.c 597 (open_xref_file): Use strchr () and strrchr () instead of index () 598 and rindex (). 599 6002000-11-01 Bernd Schmidt <bernds@redhat.co.uk> 601 602 * call.c (build_over_call): Call fold on the CALL_EXPR. 603 6042000-11-01 Gabriel Dos Reis <gdr@codesourcery.com> 605 606 * error.c (dump_template_decl): Separate template hearders with 607 space not comma. 608 6092000-10-31 Gabriel Dos Reis <gdr@codesourcery.com> 610 611 * error.c: Move TFF_ macros into cp-tree.h. Throughout, replace 612 TS_* flags with corresponding TFF_*. Adjust prototypes of 613 functions (which used to take a tree_string_flags) to take an int. 614 615 * cp-tree.h (enum tree_string_flags): Remove 616 (TFF_PLAIN_IDENTIFIER, TFF_NAMESPACE_SCOPE, TFF_CLASS_SCOPE, 617 TFF_CHASE_NAMESPACE_ALIAS, TFF_CHASE_TYPEDEF, TFF_DECL_SPECIFIERS, 618 TFF_CLASS_KEY_OR_ENUM, TFF_RETURN_TYPE, 619 TFF_FUNCTION_DEFAULT_ARGUMENTS, TFF_EXCEPTION_SPECIFICATION, 620 TFF_TEMPLATE_HEADER, TFF_TEMPLATE_DEFAULT_ARGUMENTS, 621 TFF_TEMPLATE_NAME, TFF_EXPR_IN_PARENS, TFF_SCOPE): New macros. 622 (type_as_string, decl_as_string, expr_as_string, 623 context_as_string): Adjust prototype. 624 625 * class.c (dump_class_hierarchy_r): Use TFF_PLAIN_IDENTIFIER 626 instead of TS_PLAIN. 627 628 * pt.c (mangle_class_name_for_template): Use TFF_CHASE_TYPEDEF 629 instead of TF_CHASE_TYPEDEFS. Use TFF_PLAIN_IDENTIFIER instead of 630 plain `0'. 631 6322000-10-30 Mark Mitchell <mark@codesourcery.com> 633 634 * cp-tree.h (DECL_EXTERNAL_LINKAGE_P): New macro. 635 (linkage_kind): New enumeration. 636 (decl_linkage): New function. 637 * decl2.c (comdat_linkage): Extend comment. 638 * error.c (dump_function_decl): Print the arguments used to 639 instantiate a template, even when not printing the type of the 640 function. 641 * pt.c (convert_nontype_argument): Use DECL_EXTERNAL_LINKAGE_P, 642 not TREE_PUBLIC, to test for external linkage. 643 * tree.c (decl_linkage): New function. 644 6452000-10-28 Mark Mitchell <mark@codesourcery.com> 646 647 * pt.c (instantiate_decl): Always instantiate static data members 648 initialized in-class. 649 6502000-10-27 Zack Weinberg <zack@wolery.stanford.edu> 651 652 * Make-lang.in: Move all build rules here from Makefile.in, 653 adapt to new context. Wrap all rules that change the current 654 directory in parentheses. Expunge all references to $(P). 655 When one command depends on another and they're run all at 656 once, use && to separate them, not ;. Add OUTPUT_OPTION to 657 all object-file generation rules. Delete obsolete variables. 658 659 * Makefile.in: Delete. 660 * config-lang.in: Delete outputs= line. 661 6622000-10-26 Gabriel Dos Reis <gdr@codesourcery.com> 663 664 * error.c (dump_function_decl): Print no space between 665 `ptr-operator' the `type-specifier' of the return type. 666 (dump_type_prefix): Make sure we put space at the appropriate 667 place. 668 6692000-10-23 Jason Merrill <jason@redhat.com> 670 671 * call.c (equal_functions): Also call decls_match for extern "C" fns. 672 6732000-10-22 Jason Merrill <jason@redhat.com> 674 675 * call.c (build_conditional_expr): Use ocp_convert to force 676 rvalue conversion. 677 6782000-10-22 Mark Mitchell <mark@codesourcery.com> 679 680 * call.c (standard_conversion): Use RVALUE_CONVs for all 681 expressions that satisfy lvalue_p, not just those that satisfy 682 real_lvalue_p. 683 684 * optimize.c (copy_body_r): Don't treat CALL_EXPRs specially. 685 686 * typeck.c (c_sizeof): Return an expression of `size_t' type, 687 not one with TYPE_IS_SIZETYPE set. 688 (dubious_conversion_warnings): Remove special-case code. 689 6902000-10-21 Geoffrey Keating <geoffk@cygnus.com> 691 692 * decl2.c (arg_assoc_type): Handle VECTOR_TYPE. 693 * error.c (dump_type): Handle VECTOR_TYPE like POINTER_TYPE. 694 (dump_type_prefix): Print vector-of-int as 'int vector'. 695 (dump_type_suffix): Handle VECTOR_TYPE like POINTER_TYPE. 696 * tree.c (walk_tree): Handle VECTOR_TYPE. 697 698 * decl.c (init_decl_processing): Call MD_INIT_BUILTINS. 699 7002000-10-21 Jason Merrill <jason@redhat.com> 701 702 * parse.y (operator): Set got_object from got_scope. 703 Set looking_for_typename. 704 * decl.c (lookup_name_real): Clear val after setting from_obj. 705 Reorganize diagnostic. 706 7072000-10-20 Jason Merrill <jason@redhat.com> 708 709 * tree.c (walk_tree): Don't walk into default args. 710 711 * error.c (dump_expr): Use host_integerp. 712 7132000-10-20 David Edelsohn <edelsohn@gnu.org> 714 715 * typeck2.c (abstract_virtuals_error): Use "because" instead of 716 "since" in error message. 717 7182000-10-20 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 719 720 * typeck.c (dubious_conversion_warning): Suppress if TYPE_IS_SIZETYPE. 721 7222000-10-20 Jeffrey Oldham <oldham@codesourcery.com> 723 724 * decl.c (revert_static_member_fn): Fixed typo. 725 7262000-10-19 Mark Mitchell <mark@codesourcery.com> 727 728 * class.c (subobject_offset_fn): New type. 729 (dfs_record_base_offsets): Remove. 730 (record_base_offsets): Likewise. 731 (dfs_search_base_offsets): Likewise. 732 (record_subobject_offset): New function. 733 (check_subobject_offset): Likewise. 734 (walk_subobject_offsets): Likewise. 735 (record_subobject_offsets): Likewise. 736 (layout_conflict_p): Reimplement. 737 (layout_nonempty_base_or_field): Correct handling of type 738 conflicts during layout. 739 (layout_empty_base): Likewise. 740 (build_base_field): Adjust to handle new representation of empty 741 base offset table. 742 (build_base_fields): Likewise. 743 (layout_virtual_bases): Likewise. 744 (splay_tree_compare_integer_csts): New function. 745 (layout_class_type): Use a splay_tree, rather than a varray, to 746 represent the offsets of empty bases. 747 748 * cp-tree.h (DECL_ANTICIPATED): Don't require a FUNCTION_DECL. 749 * decl.c (select_decl): Don't return declarations that are 750 DECL_ANTICIPATED. 751 7522000-10-18 Mark Mitchell <mark@codesourcery.com> 753 754 * cp-tree.h (cp_tree_index): Add CPTI_FAKE_STD. 755 (fake_std_node): New macro. 756 * decl.c (in_std): Rename to ... 757 (in_fake_std): ... this. 758 (flag_no_builtin): Remove. 759 (flag_no_nonansi_builtin): Likewise. 760 (walk_namespaces_r): Use fake_std_node. 761 (push_namespace): Use std_identifier. 762 (pop_namespace): Use in_fake_std. 763 (lookup_name_real): Use fake_std_node. 764 (init_decl_processing): When -fhonor-std, create the `std' 765 namespace. Don't create a dummy fake_std_node in that case. 766 Adjust call to c_common_nodes_and_builtins. Use std_identifier. 767 (builtin_function): Put builtins whose names don't begin 768 with `_' in the std namespace. 769 * decl2.c (flag_no_builtin): Remove. 770 (flag_no_nonansi_builtin): Likewise. 771 (set_decl_namespace): Use fake_std_node. 772 (validate_nonmember_using_decl): Likewise. 773 (do_using_directive): Likewise. 774 (handle_class_head): Likewise. 775 * dump.c (dequeue_and_dump): Likewise. 776 * except.c (init_exception_processing): Use std_identifier. 777 * init.c (build_member_call): Use fake_std_node. 778 * rtti.c (init_rtti_processing): Use std_identifier. 779 7802000-10-17 Mark Mitchell <mark@codesourcery.com> 781 782 * cp-tree.h (back_end_hook): Remove declaration. 783 * decl2.c (back_end_hook): Remove definition. 784 785 * dump.c (dequeue_and_dump): Dump TREE_USED. 786 7872000-10-17 Brad Lucier <lucier@math.purdue.edu> 788 789 * spew.c (snarf_defarg): Cast 2nd arg to obstack_blank to (int). 790 7912000-10-17 Joseph S. Myers <jsm28@cam.ac.uk> 792 793 * decl.c (WINT_TYPE): Define. 794 (init_decl_processing): Create types unsigned_ptrdiff_type_node, 795 c_size_type_node, signed_size_type_node and wint_type_node. 796 7972000-10-17 Joseph S. Myers <jsm28@cam.ac.uk> 798 799 * decl2.c (warn_missing_format_attribute): New variable. 800 (lang_decode_option): Decode -Wmissing-format-attribute. 801 8022000-10-16 Mark Mitchell <mark@codesourcery.com> 803 804 * typeck.c (qualify_type): Remove. 805 (composite_pointer_type): Fix handling of conversions to `cv void*'. 806 8072000-10-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 808 809 * Makefile.in (parse.c, parse.h): Fix think-o in last patch. 810 8112000-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 812 813 * Makefile.in (parse.c, parse.h): Create atomically. 814 8152000-10-12 Mark Mitchell <mark@codesourcery.com> 816 817 * class.c (current_obstack): Remove. 818 * decl.c (ggc_p): Remove. 819 (start_decl): Don't use decl_tree_cons. 820 (grokdeclarator): Don't use build_decl_list. 821 (start_function): Don't use decl_tree_cons. 822 (finish_function): Don't mess with obstacks. 823 * decl2.c (grok_x_components): Don't use build_decl_list. 824 * lex.c (make_call_declarator): Don't call decl_tree_cons. 825 (implicitly_declare_fn): Don't call build_decl_list. 826 * parse.y (frob_specs): Don't call build_decl_list or 827 decl_tree_cons. 828 (expr_or_declarator_intern): Don't call decl_tree_cons. 829 (primary): Don't call build_decl_list. 830 (fcast_or_absdcl): Likewise. 831 (typed_declspecs): Don't call decl_tree_cons. 832 (reserved_declspecs): Don't call build_decl_list. 833 (declmods): Likewise. 834 (reserved_typespecquals): Likewise. 835 (aggr): Likewise. 836 (new_type_id): Likewise. 837 (cv_qualifiers): Likewise. 838 (after_type_declarator_intern): Likewise. 839 (notype_declarator_intern): Likewise. 840 (absdcl_intern): Likewise. 841 (named_parm): Likewise. 842 * pt.c (most_specialized_class): Likewise. 843 * repo.c (temporary_obstack): Make it a structure, not a pointer. 844 (init_repo): Initialize it. 845 * search.c (current_obstack): Remove. 846 * typeck2.c (add_exception_specifier): Don't call build_decl_list. 847 8482000-10-09 Richard Henderson <rth@cygnus.com> 849 850 * Make-lang.in (CXX_EXTRA_HEADERS): Remove. 851 (c++ language support bits for libgcc): Remove. 852 (c++.clean): Remove cplib2.txt cleanup. 853 * config-lang.in (headers, lib2funcs): Remove. 854 855 * exception.cc, new.cc, new1.cc, new2.cc: Remove files. 856 * tinfo.cc, tinfo.h, tinfo2.cc, vec.cc: Remove files. 857 * inc/cxxabi.h, inc/exception, inc/new: Remove files. 858 * inc/new.h, inc/typeinfo: Remove files. 859 8602000-10-08 Joseph S. Myers <jsm28@cam.ac.uk> 861 862 * decl.c (INTMAX_TYPE, UINTMAX_TYPE): Define if not already 863 defined. 864 (init_decl_processing): Initialize intmax_type_node and 865 uintmax_type_node. 866 8672000-10-06 Richard Henderson <rth@cygnus.com> 868 869 * cp-tree.h (struct cp_language_function): Remove x_result_rtx. 870 (original_result_rtx): Remove. 871 * decl.c (save_function_data): Don't clear x_result_rtx. 872 (mark_lang_function): Don't mark it either. 873 * expr.c (fixup_result_decl): Remove. 874 * semantics.c (genrtl_named_return_value): Frob the return decl 875 before calling emit_local_var. 876 (genrtl_finish_function): Don't call fixup_result_decl. 877 Always emit the jump to return_label. 878 8792000-10-06 Nathan Sidwell <nathan@codesourcery.com> 880 881 * pt.c (lookup_template_class): Set current access for enum. 882 (tsubst_enum): Set file & line for enum decl. 883 884 * spew.c (yylex): Remove unused variable. 885 8862000-10-05 Richard Henderson <rth@cygnus.com> 887 888 * semantics.c (genrtl_finish_function): Don't init or check 889 can_reach_end; remove noreturn and return value checks. 890 8912000-10-05 Tom Tromey <tromey@cygnus.com> 892 893 * init.c (build_java_class_ref): Use `build_static_name' with a 894 suffix, not a prefix, to build the class object's name. 895 8962000-10-05 Nathan Sidwell <nathan@codesourcery.com> 897 898 * cp-tree.h (access_kind): Fix comment typo. 899 * decl2.c (grokfield): Fix diagnostic typo. 900 * semantics.c (finish_template_type): Fix comment typo. 901 (finish_qualified_object_call_expr): Likewise. 902 9032000-10-05 Nathan Sidwell <nathan@codesourcery.com> 904 905 * pt.c (tsubst_expr, DECL_STMT case): Don't process if 906 tsubsting fails. 907 9082000-10-05 Nathan Sidwell <nathan@codesourcery.com> 909 910 * spew.c (frob_id): New static function. 911 (frob_opname): Use it. 912 (yylex): Use it. 913 9142000-10-01 Mark Mitchell <mark@codesourcery.com> 915 916 * decl.c (lang_mark_false_label_stack): Remove. 917 * lex.c (cp_mang_lang_type): Use ggc_alloc_cleared. 918 9192000-09-30 Joseph S. Myers <jsm28@cam.ac.uk> 920 921 * gxxint.texi: Use @email for formatting email addresses. 922 9232000-09-29 Gabriel Dos Reis <gdr@codesourcery.com> 924 925 * error.c: Remove direct obstack manipulation. Replace with 926 output_buffer-based formatting. Adjust calls to removed macros. 927 (obstack_chunk_alloc, obstack_chunk_free): Remove. 928 (OB_INIT, OB_PUTC, OB_PUTC2, OB_PUTS, OB_PUTID, OB_PUTCP, 929 OB_FINISH, OB_PUTI, OB_END_TEMPLATE): Likewise. 930 9312000-09-24 Mark Mitchell <mark@codesourcery.com> 932 933 * ir.texi: Move to ../c-tree.texi. 934 9352000-09-20 Jason Merrill <jason@redhat.com> 936 937 * decl2.c (get_guard): Check DECL_FUNCTION_SCOPE_P. 938 9392000-09-21 Andreas Jaeger <aj@suse.de> 940 941 * errfn.c: Move declaration of cp_printer and cp_printers to ... 942 * cp-tree.h: ... here. 943 944 * error.c: Remove declaration of cp_printer. 945 9462000-09-20 Mark Mitchell <mark@codesourcery.com> 947 948 * tree.c (mark_local_for_remap_r): Handle CASE_LABELs. 949 9502000-09-20 Hans-Peter Nilsson <hp@axis.com> 951 952 * except.c: Delete #if 0:d EXCEPTION_SECTION_ASM_OP-default and 953 users. 954 9552000-09-18 Mark Mitchell <mark@codesourcery.com> 956 957 * decl.c (start_function): Robustify. 958 9592000-09-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 960 961 * cp-tree.h (check_function_format): Accept a `status' parameter. 962 963 * call.c, typeck.c: Updates calls to `check_function_format'. 964 9652000-09-17 Geoffrey Keating <geoffk@cygnus.com> 966 967 * decl2.c (handle_class_head): Always push some scope even 968 in the error case. 969 9702000-09-16 Mark Mitchell <mark@codesourcery.com> 971 972 * cp-tree.h (struct cp_language_function): Remove 973 x_scope_stmt_stack and name_declared. 974 (current_scope_stmt_stack): Remove. 975 (function_name_declared_p): New macro. 976 (struct lang_decl_flags): Use c_lang_decl as a base class. 977 (context): Remove. 978 (struct lang_decl): Replace saved_tree with context. 979 (DECL_FRIEND_CONTEXT): Adjust accordingly. 980 (SET_DECL_FRIEND_CONTEXT): Likewise. 981 (DECL_VIRTUAL_CONTEXT): Likewise. 982 (DECL_SAVED_TREE): Remove. 983 (C_DECLARED_LABEL_FLAG): Likewise. 984 (cplus_expand_expr_stmt): Don't declare. 985 (add_decl_stmt): Likewise. 986 (add_scope_stmt): Likewise. 987 * decl.c (mark_stmt_tree): Remove. 988 (case_compare): Likewise. 989 (finish_case_label): Use c_add_case_label. 990 (init_decl_processing): Set more language-specific hooks. 991 (build_enumerator): Fix typo in comment. 992 (cplus_expand_expr_stmt): Remove. 993 (mark_lang_function): Use mark_c_language_function. 994 (lang_mark_tree): Use c_mark_lang_decl. 995 * decl2.c: Change order of inclusion. 996 * except.c: Likewise. 997 * expr.c (cplus_expand_expr): Remove handling of STMT_EXPR. Fall 998 back on c_expand_expr. 999 * friend.c: Include expr.h. 1000 * init.c: Change order of inclusion. 1001 * Makefile.in: Update dependencies. 1002 * lex.h (free_lang_decl_chain): Remove. 1003 * optimize.c (maybe_clone_body): Use function_name_declared_p. 1004 * pt.c (build_template_decl): Don't copy DECL_VIRTUAL_CONTEXT if 1005 it doesn't exist. 1006 (instantiate_decl): Use function_name_declared_p. 1007 * semantics.c (lang_expand_expr_stmt): Remove. 1008 (set_current_function_name_declared): Likewise. 1009 (current_function_name_declared): Likewise. 1010 (begin_compound_stmt): Use function_name_declared_p. 1011 (add_decl_stmt): Remove. 1012 (setup_vtbl_ptr): Use function_name_declared_p. 1013 (add_scope_stmt): Remove. 1014 (current_scope_stmt_stack): New function. 1015 (cp_expand_stmt): Don't handle SCOPE_STMTs. 1016 (expand_body): Use function_name_declared_p. 1017 * tree.c (cp_statement_code_p): Don't include SCOPE_STMT. 1018 * typeck.c: Change order of includes. 1019 (convert_sequence): Remove. 1020 10212000-09-14 Joseph S. Myers <jsm28@cam.ac.uk> 1022 1023 * lex.c (reswords): Add _Complex. 1024 10252000-09-14 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 1026 1027 * Make-lang.in (cplib2.txt): Depend on cp/Makefile. 1028 10292000-09-13 J. David Anglin <dave@hiauly1.hia.nrc.ca> 1030 1031 * init.c (begin_init_stmts): Don't use // comments. 1032 10332000-09-12 Jason Merrill <jason@redhat.com> 1034 1035 * decl.c (maybe_deduce_size_from_array_init): Set do_default for 1036 all non-extern arrays. 1037 1038 * decl.c (grokdeclarator): Complain about 'friend T' for implicit 1039 typenames, too. Downgrade complaint to pedwarn. 1040 (xref_tag): Warn about surprising behavior of 'friend struct T'. 1041 * decl2.c (handle_class_head): Generate a TYPENAME_TYPE for 1042 'class This::Inherited'. 1043 10442000-09-12 Mark Mitchell <mark@codesourcery.com> 1045 1046 * decl.c (finish_case_label): Given the LABEL_DECL a 1047 DECL_CONTEXT. 1048 10492000-09-12 Gabriel Dos Reis <gdr@codesourcery.com> 1050 1051 * error.c (TFF_PLAIN_IDENTIFIER, TFF_NAMESPACE_SCOPE, 1052 TFF_CLASS_SCOPE, TFF_CHASE_NAMESPACE_ALIAS, TFF_CHASE_TYPDEF, 1053 TFF_DECL_SPECIFIERS, TFF_CLASS_KEY_OR_ENUM, TFF_RETURN_TYPE, 1054 TFF_FUNCTION_DEFAULT_ARGUMENTS, TFF_EXCEPTION_SPECIFICATION, 1055 TFF_TEMPLATE_HEADER, TFF_TEMPLATE_DEFAULT_ARGUMENTS, TFF_SCOPE): 1056 New macros. 1057 (sorry_for_unsupported_tree, print_scope_operator, 1058 print_left_paren, print_right_paren, print_left_bracket, 1059 print_right_bracket, print_whitespace): Likewise. 1060 (aggr_variety): Rename to class_key_or_enum. 1061 (print_type): Rename to print_type_id. 1062 (print_type_specifier_seq, print_simple_type_specifier, 1063 print_elaborated_type_specifier, 1064 print_rest_of_abstract_declarator, 1065 print_parameter_declaration_clause, print_exception_specification, 1066 print_nested_name_specifier, print_template_id, 1067 typedef_original_name, print_template_argument_list_start, 1068 print_template_argument_list_end): New functions. 1069 10702000-09-11 Gabriel Dos Reis <gdr@codesourcery.com> 1071 1072 * ir.texi: Add more documentation. 1073 10742000-09-11 Mark Mitchell <mark@codesourcery.com> 1075 1076 * cp-tree.h (struct saved_scope): Remove x_function_parms. 1077 (current_function_parms): Don't define. 1078 (struct cp_language_function): Remove parms_stored. 1079 (current_function_just_assigned_this): Don't define. 1080 (current_function_parms_stored): Likewise. 1081 (static_ctors): Declare. 1082 (static_dtors): Likewise. 1083 (SF_EXPAND): Don't define. 1084 (expand_start_early_try_stmts): Remove declaration. 1085 (store_parm_decls): Likewise. 1086 * decl.c (static_ctors): Don't declare. 1087 (static_dtors): Likewise. 1088 (struct binding_level): Remove this_block. 1089 (poplevel): Remove dead code. 1090 (set_block): Likewise. 1091 (mark_binding_level): Don't mark this_block. 1092 (mark_saved_scope): Don't mark x_function_parms. 1093 (init_decl_processing): Don't add current_function_parms as a GC 1094 root. 1095 (check_function_type): Change prototype. 1096 (start_function): Remove RTL-generation code. 1097 (expand_start_early_try_stmts): Remove. 1098 (store_parm_decls): Give it internal linkage. Remove 1099 RTL-generation code. 1100 (finish_function): Remove RTL-generation code. 1101 * decl2.c (static_ctors): Fix formatting. 1102 (static_dtors): Likewise. 1103 * method.c (use_thunk): Don't call store_parm_decls. 1104 (synthesize_method): Likewise. 1105 * optimize.c (maybe_clone_body): Likewise. 1106 * parse.y (fn.def2): Likewise. 1107 (.set_base_init): Likewise. 1108 (nodecls): Likewise. 1109 * pt.c (instantiate_decl): Likewise. 1110 * rtti.c (synthesize_tinfo_fn): Likewise. 1111 * semantics.c (genrtl_try_block): Simplify. 1112 (expand_body): Use genrtl_start_function and 1113 genrtl_finish_function. 1114 (genrtl_start_function): New function. 1115 (genrtl_finish_function): Likewise. 1116 11172000-09-11 Nathan Sidwell <nathan@codesourcery.com> 1118 1119 * error.c (cp_tree_printer, case 'P'): Append break. 1120 11212000-09-11 Nathan Sidwell <nathan@codesourcery.com> 1122 1123 * cp-tree.h (frob_opname): Declare. 1124 * parse.y (saved_scopes): New static variable. 1125 (cp_parse_init): Adjust. 1126 (do_id): If lastiddecl is NULL, do do_identifier. 1127 (operator): Save scope information. 1128 (unoperator): New reduction. Restore scope information. 1129 (operator_name): Append unoperator. Call frob_opname. 1130 * spew.c (frob_opname): Define. 1131 11322000-09-10 Zack Weinberg <zack@wolery.cumb.org> 1133 1134 * decl.c, rtti.c: Include defaults.h if not already included. 1135 Don't define the *_TYPE_SIZE macros. 1136 11372000-09-09 Mark Mitchell <mark@codesourcery.com> 1138 1139 * cp-tree.h (push_switch): Change prototype. 1140 (check_cp_case_value): Remove declaration. 1141 (decl_constant_value): Likewise. 1142 * decl.c (struct cp_switch): Add switch_stmt and cases. 1143 (case_compare): New function. 1144 (push_switch): Set switch_stmt. Initialize cases. 1145 (pop_switch): Clean up cases. 1146 (define_case_label): Rename to ... 1147 (finish_case_label): ... this. Do semantic analysis for case 1148 labels here. 1149 (start_function): Correct comment. 1150 * decl2.c (check_cp_case_value): Remove. 1151 * expr.c (do_case): Remove. 1152 * pt.c (tsubst_expr): Adjust call to finish_case_label. 1153 * semantics.c (genrtl_do_poplevel): Remove declaration. 1154 (RECHAIN_STMTS): Remove. 1155 (finish_break_stmt): Use build_break_stmt. 1156 (finish_continue_stmt): Use build_continue_stmt. 1157 (finish_switch_cond): Adjust condition here, rater than in 1158 c_expand_start_case. 1159 (finish_case_label): Remove. 1160 * typeck.c (c_expand_return): Remove. 1161 (c_expand_start_case): Likewise. 1162 11632000-09-07 Gabriel Dos Reis <gdr@codesourcery.com> 1164 1165 * ir.texi: Document type nodes. 1166 11672000-09-06 Mark Mitchell <mark@codesourcery.com> 1168 1169 * cp-tree.h (init_cp_semantics): Declare. 1170 (genrtl_try_block): Don't declare. 1171 (genrtl_handler): Likewise. 1172 (genrtl_catch_block): Likewise. 1173 (genrtl_ctor_stmt): Likewise. 1174 (genrtl_subobject): Likewise. 1175 (genrtl_do_poplevel): Likewise. 1176 (genrtl_named_return_value): Likewise. 1177 * lex.c (init_parse): Call init_cp_semantics. 1178 * semantics.c (genrtl_try_block): Give it internal linkage. 1179 (genrtl_handler): Likewise. 1180 (genrtl_catch_block): Likewise. 1181 (genrtl_ctor_stmt): Likewise. 1182 (genrtl_subobject): Likewise. 1183 (genrtl_do_poplevel): Likewise. 1184 (genrtl_named_return_value): Likewise. 1185 (lang_expand_stmt): Rename to ... 1186 (cp_expand_stmt): ... this. Only handle C++-specific nodes. 1187 (init_cp_semantics): Define. 1188 1189 * decl.c (initialize_local_var): Remove RTL-generating code. 1190 * semantics.c (genrtl_try_block): Fix formatting. 1191 1192 Move statement-tree facilities from C++ to C front-end. 1193 * cp-tree.h (cp_tree_index): Remove CPTI_VOID_ZERO. 1194 (void_zero_node): Remove. 1195 (stmt_tree): Likewise. 1196 (scope_chain): Adjust. 1197 (language_function): Rename to cp_language_function. 1198 (cp_function_chain): Adjust. 1199 (current_stmt_tree): Remove. 1200 (last_tree): Likewise. 1201 (last_expr_type): Likewise. 1202 (struct lang_decl): Adjust. 1203 (STMT_IS_FULL_EXPR_P): Remove. 1204 (add_tree): Remove. 1205 (begin_stmt_tree): Likewise. 1206 (finish_stmt_tree): Likewise. 1207 (walk_tree_fn): Likewise. 1208 (walk_stmt_tree): Likewise. 1209 * class.c (finish_struct): Replace use of add_tree with add_stmt. 1210 * decl.c (mark_stmt_tree): Adjust type. 1211 (init_decl_processing): Don't build void_zero_node. 1212 (initialize_local_var): Adjust usage of current_stmt_tree. 1213 (finish_enum): Use add_stmt, not add_tree. 1214 (save_function_data): Adjust use of language_function. 1215 (finish_constructor_body): Use add_stmt, not add_tree. 1216 (finish_destructor_body): Likewise. 1217 (push_cp_function_context): Adjust use of language_function. 1218 (pop_cp_function_context): Likewise. 1219 (mark_lang_function): Likewise. 1220 (mark_cp_function_context): Likewise. 1221 * init.c (build_aggr_init): Adjust use of current_stmt_tree. 1222 (build_vec_init): Likewise. 1223 * semantics.c (SET_LAST_STMT): Remove. 1224 (RECHAIN_STMTS): Don't use it. 1225 (stmts_are_full_exprs_p): Adjust use of current_stmt_tree. 1226 (current_stmt_tree): Define. 1227 (add_tree): Remove. 1228 (finish_goto_stmt): Use add_stmt, not add_tree. 1229 (finish_expr_stmt): Likewise. 1230 (begin_if_stmt): Likewise. 1231 (finish_then_clause): Likewise. 1232 (begin_while_stmt): Likewise. 1233 (begin_do_stmt): Likewise. 1234 (finish_return_stmt): Likewise. 1235 (begin_for_stmt): Likewise. 1236 (finish_break_stmt): Likewise. 1237 (finish_continue_stmt): Likewise. 1238 (begin_switch_stmt): Likewise. 1239 (finish_case_label): Likewise. 1240 (begin_try_block): Likewise. 1241 (begin_function_try_block): Likewise. 1242 (begin_handler): Likewise. 1243 (begin_catch_block): Likewise. 1244 (begin_compound_stmt): Likewise. 1245 (begin_asm_stmt): Likewise. 1246 (finish_asm_stmt): Likewise. 1247 (finish_label_stmt): Likewise. 1248 (add_decl_stmt): Likewise. 1249 (finish_subobject): Likewise. 1250 (finish_decl_cleanup): Likewise. 1251 (finish_named_return_value): Likewise. 1252 (setup_vtbl_ptr): Likewise. 1253 (add_scope_stmt): Likewise. 1254 (finish_stmt_expr): Likewise. 1255 (prune_unused_decls): Remove. 1256 (begin_stmt_tree): Likewise. 1257 (finish_stmt_tree): Likewise. 1258 (prep_stmt): Adjust use of current_stmt_tree. 1259 (lang_expand_stmt): Likewise. 1260 * tree.c (statement_code_p): Remove. 1261 (cp_statement_code_p): New function. 1262 (walk_stmt_tree): Remove. 1263 (init_tree): Set lang_statement_code_p. 1264 12652000-09-06 Zack Weinberg <zack@wolery.cumb.org> 1266 1267 Integrated preprocessor. 1268 1269 * Make-lang.in, Makefile.in: Remove all references to input.c, 1270 gxx.gperf, and hash.h. Add ../c-lex.o to C_OBJS. 1271 * gxx.gperf, hash.h, input.c: Delete. 1272 * lang-specs.h: Pass -lang-c++ to cc1plus so cpplib is 1273 initialized properly. 1274 1275 * class.c (fixup_pending_inline): Take a tree, not a 1276 struct pending_inline *. All callers changed. 1277 (init_class_processing): Set RID_PUBLIC, RID_PRIVATE, 1278 RID_PROTECTED entries in ridpointers[] array here. 1279 * decl.c (duplicate_decls): Do not refer to struct 1280 pending_inline. 1281 (record_builtin_type, init_decl_processing): Use RID_MAX not 1282 CP_RID_MAX. 1283 (grokdeclarator): Use C_IS_RESERVED_WORD. 1284 * decl2.c (lang_decode_option): Ignore -lang-c++ for sake of 1285 cpplib. 1286 (grok_x_components): Do not inspect pending_inlines chain. 1287 1288 * cp-tree.h (struct lang_identifier): Add rid_code entry. 1289 (C_IS_RESERVED_WORD, C_RID_CODE, C_RID_YYCODE): New. 1290 (flag_no_gnu_keywords, flag_operator_names, rid_to_yy): Declare. 1291 (DEFARG_LENGTH, struct pending_inline, TIME_IDENTIFIER_TIME, 1292 TIME_IDENTIFIER_FILEINFO): Kill. 1293 Update prototypes. 1294 * lex.h: Expunge cp_rid. Rewrite RIDBIT macros to use just a 1295 single 32-bit word. 1296 * parse.y: Call do_pending_inlines unconditionally. 1297 reinit_parse_for_method is now snarf_method. fn.defpen is no 1298 longer necessary. Remove unnecessary <itype> annotation on 1299 SCOPE. Do not refer to end_of_file or struct pending_inline. 1300 * semantics.c (begin_inline_definitions): Call 1301 do_pending_inlines unconditionally. 1302 1303 * lex.c: Remove all code now shared with C front end. 1304 Initialize cpplib properly if USE_CPPLIB. Put reserved words 1305 into the get_identifier table. Rewrite pragma handling to 1306 work with the registry. Move code to save tokens for later 1307 processing to spew.c. 1308 1309 * spew.c: Rewrite everything in terms of token streams instead 1310 of text. Move routines here from lex.c / input.c as 1311 appropriate. GC-mark trees hanging off the pending inlines 1312 chain. 1313 13142000-09-06 Mark Mitchell <mark@codesourcery.com> 1315 1316 * NEWS: Mention that the named return value extension has been 1317 deprecated. 1318 * cp-tree.h (original_result_rtx): Define. 1319 (TREE_REFERENCE_EXPR): Remove. 1320 (DECL_VPARENT): Likewise. 1321 (pushdecl_nonclass_level): Likewise. 1322 (store_return_init): Likewise. 1323 (reinit_lang_specific): Likewise. 1324 (genrtl_named_return_value): Change prototype. 1325 * decl.c (original_result_rtx): Remove. 1326 (cp_finish_decl): Don't build DECL_STMTs for RESULT_DECLs. 1327 Do not generate RTL for local variables here. 1328 (store_return_init): Remove. 1329 * semantics.c (genrtl_named_return_value): Simplify. Fold in 1330 store_return_init. 1331 (finish_named_return_value): Adjust accordingly. Warn that this 1332 extension is deprecated. 1333 (lang_expand_stmt): Adjust call to genrtl_named_return_value. 1334 13352000-09-06 Nathan Sidwell <nathan@codesourcery.com> 1336 1337 * pt.c (type_unification_real): Replace switch with if. 1338 (unify): Tsubst non-type parms before comparing. 1339 13402000-09-06 Nathan Sidwell <nathan@codesourcery.com> 1341 1342 * error.c (dump_typename): New function, broken out of ... 1343 (dump_type): ... here. Use it. 1344 * typeck.c (same_type_p): Use cp_tree_equal for TYPENAME_TYPE. 1345 13462000-09-06 Nathan Sidwell <nathan@codesourcery.com> 1347 1348 * init.c (build_offset_ref): Deal with namespace scoped 1349 TEMPLATE_ID_EXPRs. 1350 13512000-09-06 Nathan Sidwell <nathan@codesourcery.com> 1352 1353 * class.c (resolve_address_of_overloaded_function): Add 1354 explanation message. 1355 * decl.c (define_case_label): Reformat explanation. 1356 * decl2.c (finish_static_data_member_decl): Likewise. 1357 (grokfield): Likewise. 1358 * friend.c (do_friend): Likewise. 1359 13602000-09-05 Zack Weinberg <zack@wolery.cumb.org> 1361 1362 * tree.c (walk_tree): Expose tail recursion. 1363 (walk_stmt_tree): New function. 1364 * cp-tree.h: Prototype walk_stmt_tree. 1365 * semantics.c (prune_unused_decls): Operate on SCOPE_STMTs not 1366 the BLOCKs directly. If a BLOCK has no variables after 1367 pruning, discard it. 1368 (finish_stmt_tree): Use walk_stmt_tree. No need to save and 1369 restore the line number. 1370 13712000-09-05 Mark Mitchell <mark@codesourcery.com> 1372 1373 * Makefile.in (CXX_TREE_H): Add dependency on HTAB_H. 1374 (pt.o): Remove dependency on HTAB_H. 1375 * cp-tree.h: Include hashtab.h. 1376 (walk_tree): Change prototype. 1377 (walk_tree_without_duplicates): New function. 1378 * decl.c (check_default_argument): Use it. 1379 * optimize.c (remap_decl): Adjust calls to walk_tree. 1380 (copy_body): Likewise. 1381 (expand_calls_inline): Likewise. 1382 (calls_setjmp_p): Use walk_tree_without_duplicates. 1383 * pt.c: Don't include hashtab.h. 1384 (for_each_template_parm): Use walk_tree_without_duplicates. 1385 * semantics.c (finish-stmt_tree): Likewise. 1386 (expand_body): Likewise. 1387 * tree.c (walk_tree): Add additional parameter. 1388 (walk_tree_without_duplicates): New function. 1389 (count_trees): Use it. 1390 (verify_stmt_tree): Adjust call to walk_tree. 1391 (find_tree): Use walk_tree_without_duplicates. 1392 (no_linkage_check): Likewise. 1393 (break_out_target_exprs): Adjust call to walk_tree. 1394 (cp_unsave): Likewise. 1395 13962000-09-04 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1397 1398 * cp-tree.def (BOUND_TEMPLATE_TEMPLATE_PARM): New tree code. 1399 (TEMPLATE_TEMPLATE_PARM): Adjust comment. 1400 * cp-tree.h (TYPE_BINFO): Adjust comment. 1401 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Likewise. 1402 (TEMPLATE_TYPE_PARM_INDEX): Likewise. 1403 (IS_AGGR_TYPE): Use BOUND_TEMPLATE_TEMPLATE_PARM instead. 1404 (TYPE_TEMPLATE_INFO): Likewise. 1405 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL): Likewise. 1406 * class.c (push_nested_class): Likewise. 1407 * decl.c (lookup_name_real): Likewise. 1408 (grokdeclarator): Likewise. 1409 (grok_op_properties): Likewise. 1410 (xref_tag): Likewise. 1411 (xref_basetypes): Likewise. 1412 * decl2.c (constructor_name_full): Likewise. 1413 (arg_assoc_template_arg): Add TEMPLATE_TEMPLATE_PARM case. 1414 (arg_assoc_type): Use BOUND_TEMPLATE_TEMPLATE_PARM instead. 1415 * error.c (dump_type): Split TEMPLATE_TEMPLATE_PARM case. 1416 (dump_type_prefix): Add BOUND_TEMPLATE_TEMPLATE_PARM. 1417 (dump_type_suffix): Likewise. 1418 * init.c (is_aggr_type): Use BOUND_TEMPLATE_TEMPLATE_PARM 1419 instead. 1420 (get_aggr_from_typedef): Likewise. 1421 * mangle.c (write_type): Split TEMPLATE_TEMPLATE_PARM case. 1422 (write_expression): Add BOUND_TEMPLATE_TEMPLATE_PARM. 1423 (write_template_parm): Likewise. 1424 (write_template_template_parm): Check tree code instead of 1425 using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO. 1426 * method.c (build_overload_nested_name): Add 1427 BOUND_TEMPLATE_TEMPLATE_PARM. 1428 (process_overload_item): Split TEMPLATE_TEMPLATE_PARM case. 1429 * parse.y (bad_parm): Add BOUND_TEMPLATE_TEMPLATE_PARM. 1430 * pt.c (convert_template_argument): Check tree code instead of 1431 using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO. 1432 (for_each_template_parm_r): Split TEMPLATE_TEMPLATE_PARM case. 1433 (for_each_template_parm): Adjust comment. 1434 (tsubst): Add BOUND_TEMPLATE_TEMPLATE_PARM. Reorganize. 1435 (tsubst_copy): Add BOUND_TEMPLATE_TEMPLATE_PARM. 1436 (unify): Add BOUND_TEMPLATE_TEMPLATE_PARM. Reorganize. Use 1437 template_args_equal to compare template template parameter cases. 1438 * ptree.c (print_lang_type): Add BOUND_TEMPLATE_TEMPLATE_PARM. 1439 * search.c (lookup_field_1): Use BOUND_TEMPLATE_TEMPLATE_PARM 1440 instead. 1441 * tree.c (copy_template_template_parm): Decide whether to create 1442 a TEMPLATE_TEMPLATE_PARM or BOUND_TEMPLATE_TEMPLATE_PARM node. 1443 (walk_tree): Add BOUND_TEMPLATE_TEMPLATE_PARM. 1444 (copy_tree_r): Likewise. 1445 * typeck.c (comptypes): Likewise. Check tree code instead of 1446 using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO. 1447 14482000-09-04 Mark Elbrecht <snowball3@bigfoot.com> 1449 1450 * decl.c (finish_function): Move the code for handling functions 1451 marked with the constructor and destructor attributes inside the 1452 expand_p block. 1453 14542000-09-04 Nathan Sidwell <nathan@codesourcery.com> 1455 1456 * init.c (resolve_offset_ref): Deal with TEMPLATE_ID_EXPR. 1457 14582000-09-04 Nathan Sidwell <nathan@codesourcery.com> 1459 1460 * pt.c (lookup_template_class): Remove abort. 1461 * tree.c (get_type_decl): Allow error_mark_node. 1462 14632000-09-04 Nathan Sidwell <nathan@codesourcery.com> 1464 1465 * decl2.c (arg_assoc): Deal with COMPONENT_REFs inside 1466 TEMPLATE_ID_EXPRs. 1467 14682000-09-03 Mark Mitchell <mark@codesourcery.com> 1469 1470 * operators.def (ALIGNOF_EXPR, MAX_EXPR, MIN_EXPR): Change 1471 new ABI mangling. 1472 14732000-09-01 Nathan Sidwell <nathan@codesourcery.com> 1474 1475 * parse.y (named_class_head): Check for TYPENAME_TYPE. Simplify 1476 union tag mismatch error reporting. 1477 14782000-09-01 Nathan Sidwell <nathan@codesourcery.com> 1479 1480 * call.c (build_scoped_method_call): Check it is not a namespace. 1481 14822000-08-30 Jason Merrill <jason@redhat.com> 1483 1484 * cp-tree.h (LOCAL_CLASS_P): Use decl_function_context. 1485 1486 * tree.c (bot_manip): Check TREE_CONSTANT rather than 1487 !TREE_SIDE_EFFECTS. Call break_out_target_exprs and 1488 build_target_expr_with_type for the non-AGGR_INIT_EXPR case. 1489 1490 * decl.c (start_function): Always call make_function_rtl. 1491 14922000-08-29 Zack Weinberg <zack@wolery.cumb.org> 1493 1494 * semantics.c (prune_unused_decls): New function. 1495 (finish_stmt_tree): Call it via walk_tree. 1496 14972000-08-29 Zack Weinberg <zack@wolery.cumb.org> 1498 1499 * class.c (build_secondary_vtable): Constify a char *. 1500 * decl.c (init_decl_processing): Initialize function_id_node, 1501 pretty_function_id_node, and func_id_node. 1502 * input.c (struct input_source): Constify 'str'. 1503 (feed_input): Constify first argument. 1504 * mangle.c (write_identifier): Constify argument. 1505 * pt.c (mangle_class_name_for_template): Constify argument. 1506 15072000-08-29 Mark Mitchell <mark@codesourcery.com> 1508 1509 * typeck.c (mark_addressable): Remove code that pokes around in 1510 RTL. 1511 15122000-08-28 Jason Merrill <jason@redhat.com> 1513 1514 * lex.c (file_name_nondirectory): Move to toplev.c. 1515 1516 * cp-tree.h (LOCAL_CLASS_P): New macro. 1517 * class.c (finish_struct_1): Use it. 1518 15192000-08-27 Alex Samuel <samuel@codesourcery.com> 1520 1521 * mangle.c (CLASSTYPE_TEMPLATE_ID_P): Remove unexplained voodoo. 1522 (write_encoding): Pass another argument to write_name. 1523 (write_name): Add ignore_local_scope parameter. Fix handling of 1524 local names. 1525 (write_nested_name): Use write_unqualified_name. 1526 (write_prefix): Likewise. Skip out on FUNCTION_DECLs. 1527 (write_template_prefix): Use write_unqualified_name. 1528 (write_component): Remove. 1529 (write_local_name): Add parameter. Use direct local entity to 1530 discriminator calculation. 1531 (write_class_enum_type): Pass another argument to write_name. 1532 (write_template_template_arg): Likewise. 1533 (make_guard_variable): Likewise. 1534 15352000-08-27 Jason Merrill <jason@redhat.com> 1536 1537 * decl.c (pushdecl): Matching decls for local externs are found in 1538 the current level. Propagate linkage information from previous 1539 declarations. 1540 15412000-08-26 Gabriel Dos Reis <gdr@codesourcery.com> 1542 1543 * ir.texi (Expressions): Fix typo. 1544 15452000-08-25 Greg McGary <greg@mcgary.org> 1546 1547 * tree.c (init_tree): Use ARRAY_SIZE. 1548 15492000-08-25 Gabriel Dos Reis <gdr@codesourcery.com> 1550 1551 * error.c (cp_tree_printer): Rework. 1552 15532000-08-25 Mark Mitchell <mark@codesourcery.com> 1554 1555 * Make-lang.in (CXX_LIB2FUNCS): Remove cp-demangle.o and 1556 dyn-string.o. 1557 (CXX_LIB2SRCS): Remove cp-demangle.c and dyn-string.c. 1558 (cp-demangle.o): Remove target. 1559 (dyn-string.o): Likewise. 1560 1561 * decl.c (grokfndecl): Require that `main' return an `int'. 1562 * mangle.c (write_encoding): Don't mangle return types for 1563 conversion functions. 1564 15652000-08-25 Gabriel Dos Reis <gdr@codesourcery.com> 1566 1567 * error.c (tree_formatting_info): New data type. 1568 (tree_being_formatted): New macro. 1569 (tree_formatting_flags): Likewise. 1570 (put_whitespace): Likewise. 1571 (print_tree_identifier): Likewise. 1572 (print_identifier): Likewise. 1573 (cp_tree_printer, print_function_argument_list, print_declaration, 1574 print_expression, print_function_declaration, 1575 print_function_parameter, print_type, print_cv_qualifier): New 1576 functions. 1577 (init_error): Initialize lang_printer. 1578 15792000-08-24 Jason Merrill <jason@redhat.com> 1580 1581 * typeck.c (build_ptrmemfunc): Just reinterpret if there's no 1582 adjustment necessary. 1583 15842000-08-24 Greg McGary <greg@mcgary.org> 1585 1586 * cp-tree.h (MAIN_NAME_P): Remove macro. 1587 15882000-08-24 Gabriel Dos Reis <gdr@codesourcery.com> 1589 1590 * error.c (print_instantiation_context): Don't forget to flush the 1591 buffer. 1592 15932000-08-23 Jason Merrill <jason@redhat.com> 1594 1595 * typeck.c (build_ptrmemfunc): Save the input pmf. 1596 1597 * method.c (process_modifiers): Use same_type_p. 1598 15992000-08-23 Mark Mitchell <mark@codesourcery.com> 1600 1601 * cp-tree.h (DECL_CLONED_FUNCTION_P): Check DECL_LANG_SPECIFIC. 1602 * mangle.c (write_function_type): Change prototype. 1603 (write_encoding): Don't mangle return types for 1604 constructors or destructors. 1605 (write_type): Adjust call to write_function_type. 1606 * pt.c (instantiate_template): Instantiate alternate entry points 1607 when instantiating the main function. 1608 16092000-08-23 Gabriel Dos Reis <gdr@codesourcery.com> 1610 1611 * error.c (cp_print_error_function): Don't use embedded '\n' in 1612 output_printf. 1613 16142000-08-23 Gabriel Dos Reis <gdr@codesourcery.com> 1615 1616 * decl.c (init_decl_processing): Remove bogus initialization. 1617 * error.c (lang_print_error_function): Restore here. 1618 (init_error): Initialize print_error_function. 1619 16202000-08-22 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> 1621 1622 * decl2.c (arg_assoc): Revert my 2000-08-11 change. 1623 16242000-08-22 Gabriel Dos Reis <gdr@codesourcery.com> 1625 1626 * Makefile.in (error.o): Depends on diagnostic.h 1627 1628 * cp-tree.h (problematic_instantiation_changed, 1629 record_last_problematic_instantiation, current_instantiation, 1630 print_instantiation_context): Declare. 1631 (maybe_print_template_context): Remove. 1632 1633 * decl.c (init_decl_processing): Set print_error_function to NULL. 1634 (lang_print_error_function): Remove, since we're using a new 1635 machinery. 1636 1637 * error.c: #include diagnostic.h 1638 (function_category): New function. 1639 (cp_diagnostic_starter): Likewise. 1640 (cp_diagnostic_finalizer): Likewise. 1641 (cp_print_error_function): Likewise. 1642 (maybe_print_instantiation_context): Likewise. 1643 (print_instantiation_full_context): Likewise. 1644 (print_instantiation_partial_context): Likewise. 1645 (print_instantiation_context): Define. 1646 (init_error): Initialize diagnostic pager and finalizer. 1647 1648 * pt.c (problematic_instantiation_changed): Define. 1649 (record_last_problematic_instantiation): Likewise. 1650 (current_instantiation): Likewise. 1651 (maybe_print_template_context): Remove. 1652 (print_template_context): Likewise. 1653 (current_tinst_level): Make static to reflect Brendan Kehoe's 1654 change of 1995-04-13. 1655 (push_tinst_level): Call print_instantiation_context. 1656 16572000-08-21 Nix <nix@esperi.demon.co.uk> 1658 1659 * lang-specs.h: Do not process -o or run the assembler if 1660 -fsyntax-only. 1661 16622000-08-21 Joseph S. Myers <jsm28@cam.ac.uk> 1663 1664 * decl.c (flag_hosted, flag_noniso_default_format_attributes): New 1665 variables. 1666 * decl2.c (lang_decode_option): Disable gettext attributes for 1667 -ansi. 1668 16692000-08-21 Gabriel Dos Reis <gdr@codesourcery.com> 1670 1671 * lex.c (lang_init_options): Default diagnostic message maximum 1672 length to 80, when line-wrapping. 1673 16742000-08-20 Mark Mitchell <mark@codesourcery.com> 1675 1676 * class.c (build_vtbl_initializer): Clear the entire 1677 vtbl_init_data. Start keeping track of the functions for which we 1678 have created vcall offsets here. 1679 (dfs_build_vcall_offset_vtbl_entries): Remove. 1680 (build_vcall_offset_vtbl_entries): Reimplement. 1681 (add_vcall_offset_vtbl_entries_r): New function. 1682 (add_vcall_offset_vtbl_entries_1): Likewise. Tweak logic for 1683 computing when vcall offsets are necessary. 1684 16852000-08-18 Nathan Sidwell <nathan@codesourcery.com> 1686 1687 * decl.c (member_function_or_else): Use cp_error ... %T. 1688 (grokdeclarator): Likewise. 1689 (start_method): Likewise. 1690 * friend.c (make_friend_class): Use cp_pedwarn ... %T. 1691 16922000-08-18 Nathan Sidwell <nathan@codesourcery.com> 1693 1694 * decl2.c (grokfield): Set CLASSTYPE_GOT_SEMICOLON on class 1695 TYPE_DECLs. 1696 16972000-08-18 Nathan Sidwell <nathan@codesourcery.com> 1698 1699 * cp-tree.h (PTRMEM_OK_P): New macro. 1700 (itf_ptrmem_ok): New enumeration value. 1701 * class.c (resolve_address_of_overloaded_function): Add PTRMEM 1702 argument. Diagnose implicit pointer to member. 1703 (instantiate_type): Don't diagnose implicit pointer to member 1704 here. Pass itf_ptrmem_ok if ok. Adjust calls to 1705 resolve_address_of_overloaded_function. 1706 * init.c (build_offset_ref): Set PTRMEM_OK_P. 1707 (resolve_offset_ref): Don't diagnose implicit pointer to member here. 1708 * semantics.c (finish_parenthesized_expr): Clear OFFSET_REFs here. 1709 * typeck.c (build_x_unary_op): Calculate PTRMEM_OK_P. 1710 (build_unary_op): Deal with single non-static member in 1711 microsoft-land. 1712 17132000-08-18 Nathan Sidwell <nathan@codesourcery.com> 1714 1715 * decl2.c (arg_assoc_type): Cope with TYPENAME_TYPE. 1716 17172000-08-18 Nathan Sidwell <nathan@codesourcery.com> 1718 1719 * cp-tree.h (enum_name_string): Remove prototype. 1720 (report_case_error): Remove prototype. 1721 * cp/typeck2.c (enum_name_string): Remove. 1722 (report_case_error): Remove. 1723 * error.c (dump_expr): Deal with enum values directly. 1724 Correctly negate integer constant. 1725 17262000-08-17 Nathan Sidwell <nathan@codesourcery.com> 1727 1728 * inc/cxxabi.h (__cxa_vec_new2, __cxa_vec_new3): Declare. 1729 (__cxa_vec_delete2, __cxa_vec_delete3): Declare. 1730 * vec.cc (__cxa_vec_new2, __cxa_vec_new3): Implement. 1731 (__cxa_vec_delete2, __cxa_vec_delete3): Implement. 1732 (__cxa_vec_new): Use __cxa_vec_new2. 1733 (__cxa_vec_delete): Use __cxa_vec_delete2. 1734 17352000-08-17 Nathan Sidwell <nathan@codesourcery.com> 1736 1737 * vec.cc (__cxa_vec_new): Set "C" linkage. 1738 (__cxa_vec_ctor): Likewise. 1739 (__cxa_vec_cctor): Likewise. 1740 (__cxa_vec_dtor): Likewise. 1741 (__cxa_vec_delete): Likewise. 1742 * inc/cxxabi.h (__cxa_vec_new): Set "C" linkage. 1743 (__cxa_vec_ctor): Likewise. 1744 (__cxa_vec_cctor): Likewise. 1745 (__cxa_vec_dtor): Likewise. 1746 (__cxa_vec_delete): Likewise. 1747 17482000-08-17 Nathan Sidwell <nathan@codesourcery.com> 1749 1750 * class.c (instantiate_type): Reinstate local variable 1751 deleted in previous change. 1752 1753 * cvt.c (cp_convert_to_pointer): Pass itf_complain, not 1754 itf_no_attributes. 1755 17562000-08-17 Nathan Sidwell <nathan@codesourcery.com> 1757 1758 * cp-tree.h (instantiate_type_flags): New enumeration. 1759 (instantiate_type): Change parameter. 1760 * class.c (instantiate_type): Adjust prototype. Adjust. 1761 * call.c (standard_conversion): Adjust instantiate_type call. 1762 (reference_binding): Likewise. 1763 (build_op_delete_call): Likewise. 1764 (convert_like_real): Likewise. 1765 * cvt.c (cp_convert_to_pointer): Likewise. 1766 (convert_to_reference): Likewise. 1767 * pt.c (convert_nontype_argument): Likewise. 1768 * typeck.c (build_binary_op): Likewise. 1769 (build_ptrmemfunc): Likewise. 1770 (convert_for_assignment): Likewise. 1771 17722000-08-17 Nathan Sidwell <nathan@codesourcery.com> 1773 1774 * cp-tree.h (CPTR_AGGR_TAG): New global tree node. 1775 (current_aggr): Define. 1776 * decl.c (grokdeclarator): Make sure a friend class is an 1777 elaborated type specifier. 1778 * parse.y (current_aggr): Remove static definition. 1779 (cp_parse_init): Adjust. 1780 (structsp): Clear and restore current_aggr. 1781 (component_decl_list): Clear current_aggr. 1782 1783 * error.c (dump_type, case TYPENAME_TYPE): Don't emit the 1784 aggregate tag on the typename's context. 1785 1786 * pt.c (tsubst_friend_class): Return error_mark_node, if 1787 parms becomes NULL. 1788 (instantiate_class_template): Ignore error_mark_node friend types. 1789 17902000-08-14 Nathan Sidwell <nathan@codesourcery.com> 1791 1792 * cvt.c (warn_ref_binding): New static function, broken out of ... 1793 (convert_to_reference): ... here. Use it. 1794 17952000-08-11 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu> 1796 1797 * parse.y (template_arg): Add rule for template qualified with 1798 global scope. 1799 18002000-08-11 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> 1801 1802 * decl2.c (add_function): Reorganize. 1803 (arg_assoc): Do not consider function template decls. 1804 18052000-08-11 Jason Merrill <jason@redhat.com> 1806 1807 * decl.c (lookup_name_real): Don't forget the TYPENAME_TYPE we're 1808 looking inside. 1809 18102000-08-11 Nathan Sidwell <nathan@codesourcery.com> 1811 1812 * cp-tree.h (resolve_scope_to_name): Remove unused prototype. 1813 (lookup_nested_tag): Likewise. 1814 1815 * decl2.c (grokfield): Fix comment to reflect many types of _DECLs 1816 can be produced. 1817 18182000-08-11 Nathan Sidwell <nathan@codesourcery.com> 1819 1820 * parse.y (named_complex_class_head_sans_basetype): Remove 1821 always true if. 1822 18232000-08-11 Nathan Sidwell <nathan@codesourcery.com> 1824 1825 * decl2.c (build_expr_from_tree, case METHOD_CALL_EXPR): Build 1826 explicit TEMPLATE_ID_EXPR args. 1827 (build_expr_from_tree, case CALL_EXPR): Likewise. 1828 18292000-08-11 Nathan Sidwell <nathan@codesourcery.com> 1830 1831 * decl.c (check_tag_decl): Diagnose typename's which don't 1832 declare anything. 1833 18342000-08-10 Nathan Sidwell <nathan@codesourcery.com> 1835 1836 * init.c (build_aggr_init): Reject bogus array initializers 1837 early. 1838 18392000-08-09 Nathan Sidwell <nathan@codesourcery.com> 1840 1841 * rtti.c (build_dynamic_cast_1): Set "C" linkage for new abi 1842 runtime. 1843 * cp/tinfo.cc (__dynamic_cast): Likewise. 1844 * cp/inc/cxxabi.h (__dynamic_cast): Likewise. 1845 18462000-08-09 Nathan Sidwell <nathan@codesourcery.com> 1847 1848 * cvt.c (convert_to_pointer_force): Fix error message when 1849 attempting to cast from ambiguous base. 1850 18512000-08-08 Jason Merrill <jason@redhat.com> 1852 1853 * pt.c (tsubst_aggr_type): Bail if creating the argvec fails. 1854 (tsubst_template_arg_vector): Likewise. 1855 1856 * decl2.c (build_anon_union_vars): Choose the largest field; don't 1857 assume that one will be as large as the union. 1858 18592000-08-07 Kazu Hirata <kazu@hxi.com> 1860 1861 * cp-tree.h (CLASSTYPE_HAS_PRIMARY_BASE_P): Fix a comment typo. 1862 * decl.c (pop_labels): Likewise. 1863 18642000-08-04 Jeffrey Oldham <oldham@codesourcery.com> 1865 1866 * inc/cxxabi.h (__pbase_type_info): Changed member names to match 1867 specifications. 1868 (__pointer_to_member_type_info): Likewise. 1869 (__base_class_info): Likewise. 1870 (__class_type_info): Likewise. 1871 (__si_class_type_info): Likewise. 1872 (__vmi_class_type_info): Likewise. 1873 * tinfo.cc (__si_class_type_info::__do_find_public_src): 1874 Changed member names to match specifications. 1875 (__vmi_class_type_info::__do_find_public_src): Likewise. 1876 (__si_class_type_info::__do_dyncast): Likewise. 1877 (__vmi_class_type_info::__do_dyncast): Likewise. 1878 (__si_class_type_info::__do_upcast): Likewise. 1879 (__vmi_class_type_info::__do_upcast): Likewise. 1880 * tinfo2.cc (__pbase_type_info::__do_catch): Likewise. 1881 (__pbase_type_info::__pointer_catch): Likewise. 1882 (__pointer_type_info::__pointer_catch): Likewise. 1883 (__pointer_to_member_type_info::__pointer_catch): Likewise. 1884 18852000-08-04 Zack Weinberg <zack@wolery.cumb.org> 1886 1887 * Make-lang.in (cc1plus): Depend on $(BACKEND), not stamp-objlist. 1888 * Makefile.in: Add C_OBJS, BACKEND; delete OBJS, OBJDEPS. 1889 (cc1plus): Link with $(BACKEND) and $(C_OBJS). 1890 18912000-08-04 Mark Mitchell <mark@codesourcery.com> 1892 1893 * cp-tree.h (add_method): Change prototype. 1894 * class.c (add_method): Remove FIELDS parameter. Add ERROR_P. 1895 Don't double the size of the method vector in the error case. 1896 (handle_using_decl): Adjust call to add_method. 1897 (add_implicitly_declared_members): Likewise. 1898 (clone_function_decl): Likewise. 1899 * decl2.c (check_classfn): Likewise. 1900 * semantics.c (finish_member_declaration): Likewise. 1901 19022000-08-04 Joseph S. Myers <jsm28@cam.ac.uk> 1903 1904 * decl.c (flag_isoc94): New variable. 1905 19062000-08-02 Jason Merrill <jason@redhat.com> 1907 1908 * pt.c (do_type_instantiation): Add complain parm; don't complain 1909 if called recursively. 1910 * cp-tree.h, parse.y: Adjust. 1911 19122000-08-02 Zack Weinberg <zack@wolery.cumb.org> 1913 1914 * decl2.c: Silently ignore -Wstrict-prototypes; warn about 1915 -Wno-strict-prototypes. 1916 1917 * g++spec.c: Adjust type of second argument to 1918 lang_specific_driver, and update code as necessary. 1919 1920 * cp-tree.h: Don't prototype min_precision here. 1921 (my_friendly_assert): Cast expression to void. 1922 * semantics.c (do_poplevel): Initialize scope_stmts. 1923 19242000-08-02 Mark Mitchell <mark@codesourcery.com> 1925 1926 * cp-tree.h (DECL_NEEDED_P): Tweak. 1927 19282000-07-28 Jason Merrill <jason@redhat.com> 1929 1930 * lang-specs.h: Use %i in rule for .ii files. 1931 19322000-07-31 Zack Weinberg <zack@wolery.cumb.org> 1933 1934 * lang-specs.h: Rename cpp to cpp0 and/or tradcpp to tradcpp0. 1935 19362000-07-30 Mark Mitchell <mark@codesourcery.com> 1937 1938 Allow indirect primary bases. 1939 * cp-tree.h (struct lang_type): Remove vfield_parent. Add 1940 primary_base. 1941 (CLASSTYPE_VFIELD_PARENT): Remove. 1942 (CLASSTYPE_PRIMARY_BINFO): Reimplement. 1943 (BINFO_PRIMARY_BINFO): Remove. 1944 (CLASSTYPE_HAS_PRIMARY_BASE_P): Reimplement. 1945 (BINFO_VBASE_PRIMARY_P): Likewise. 1946 (BINFO_PRIMARY_BASE_OF): New macro. 1947 (BINFO_INDIRECT_PRIMARY_P): Likewise. 1948 (get_primary_binfo): New function. 1949 * decl.c (lang_mark_tree): Make lang_type::primary_base. 1950 * class.c (vcall_offset_data_s): Rename to ... 1951 (vtbl_init_data_s): ... this. Rename primary_p to primary_vtbl_p, 1952 and add ctor_vtbl_p. 1953 (get_derived_offset): Use get_primary_binfo. 1954 (dfs_mark_primary_bases): Adjust handling of virtual primary 1955 bases. 1956 (mark_primary_bases): Likewise. 1957 (set_primary_base): Take a binfo, not an integer, as a 1958 representation of the primary base. 1959 (indirect_primary_base_p): Remove. 1960 (determine_primary_base): Adjust for indirect primary bases. 1961 (dfs_find_final_overrider): Fix typo in coment. 1962 (update_vtable_entry_for_fn): Use get_primary_binfo. 1963 (layout_nonempty_base_or_field): Tweak. 1964 (build_base_fields): Adjust for new primary base semantics. 1965 (dfs_propagate_binfo_offsets): Remove. 1966 (propagate_binfo_offsets): Rewrite. 1967 (dfs_set_offset_for_shared_vbases): Remove. 1968 (layout_virtual_bases): Don't use it. 1969 (layout_class_type): Set CLASSTYPE_SIZE correctly under the new 1970 ABI. 1971 (finish_struct_1): Set CLASSTYPE_PRIMARY_BINFO, not 1972 CLASSTYPE_VFIELD_PARENT. 1973 (dfs_get_primary_binfo): New function. 1974 (get_primary_binfo): Likewise. 1975 (dump_class_hierarchy_r): Tweak printing of primary bases. 1976 (build_vtbl_initializer): Fix typo in comments. Use 1977 vtbl_init_data. 1978 (build_vcall_and_vbase_vtbl_entries): Likewise. 1979 (build_vbaes_offset_vtbl_entries): Likewise. 1980 (dfs_build_vcall_offset_vtbl_entries): Adjust setting of 1981 BV_VCALL_INDEX to handle indirect primary bases. 1982 (build_vcall_offset_vtbl_entries): Use vtbl_init_data. 1983 (build_rtti_vtbl_entries): Likewise. 1984 * search.c (get_shared_vbase_if_not_primary): Tweak. 1985 (find_vbase_instance): Likewise. 1986 (binfo_for_vtable): Simplify. 1987 * tree.c (unshare_base_binfos): Clear BINFO_PRIMARY_BASE_OF. 1988 (make_binfo): Make it have 11 entries. 1989 19902000-07-30 Alex Samuel <samuel@codesourcery.com> 1991 1992 * mangle.c (DECL_TEMPLATE_ID_P): Remove. 1993 (CLASSTYEP_TEMPLATE_ID_P): Check template info, and context when 1994 ascertaining primaryness. 1995 (G): Remove template_args. 1996 (decl_is_template_id): New function. 1997 (write_encoding): Use decl_is_template_id. 1998 (write_name): Likewise. Handle type_decls. Get main variant of 1999 type decls. 2000 (write_nested_name): Likewise. 2001 (write_prefix): Likewise. 2002 (write_template_prefix): Likewise. 2003 (write_special_name_constructor): Remove defunct production from 2004 comment. 2005 (write_bare_function_type): Remove comment about absent parameter. 2006 (write_template_template_arg): Add missing grammar production to 2007 comment. 2008 20092000-07-27 Jason Merrill <jason@redhat.com> 2010 2011 * decl.c (duplicate_decls): If common_type produces a non-typedef 2012 type for a typedef, just use the old type. 2013 20142000-07-27 Mark Mitchell <mark@codesourcery.com> 2015 2016 * cp-tree.h (function_depth): Declare. 2017 (verify_stmt_tree): Likewise. 2018 (find_tree): Likewise. 2019 * decl.c (function_depth): Give it external linkage. 2020 * optimize.c (optimize_function): Increment and decrement it. 2021 * tree.c (verify_stmt_tree_r): New function. 2022 (verify_stmt_tree): Likewise. 2023 (find_tree_r): Likewise. 2024 (find_tree): Likewise. 2025 20262000-07-27 Jason Merrill <jason@redhat.com> 2027 2028 * pt.c (for_each_template_parm_r, case RECORD_TYPE): Use 2029 TYPE_PTRMEMFUNC_P. 2030 * cp-tree.h (TYPE_TEMPLATE_INFO): Check for TYPE_LANG_SPECIFIC. 2031 20322000-07-26 Mark Mitchell <mark@codesourcery.com> 2033 2034 * decl.c (start_cleanup_fn): Mark the function as `inline'. 2035 * decl2.c (get_guard): Call cp_finish_decl, not 2036 rest_of_decl_compilation, for local guards. 2037 * lex.c (do_identifier): Remove unused variable. 2038 20392000-07-26 Marc Espie <espie@cvs.openbsd.org> 2040 2041 * parse.y: Add missing ';'. 2042 20432000-07-26 Mark Mitchell <mark@codesourcery.com> 2044 2045 * parse.y (empty_parms): Use `()', not `(...)', when in the scope 2046 of `extern "C++"'. 2047 20482000-07-25 Nathan Sidwell <nathan@codesourcery.com> 2049 2050 Kill strict_prototype. Backwards compatibility only for 2051 non NO_IMPLICIT_EXTERN_C systems. 2052 * cp-tree.h (flag_strict_prototype): Remove. 2053 (strict_prototype): Remove. 2054 (strict_prototypes_lang_c, strict_prototypes_lang_cplusplus): Remove. 2055 * decl.c (maybe_push_to_top_level): Adjust. 2056 (pop_from_top_level): Adjust. 2057 (decls_match): Only allow sloppy parm matching for ancient 2058 system headers. 2059 (init_decl_processing): Adjust. 2060 (grokdeclarator): Adjust. 2061 * decl2.c (flag_strict_prototype): Remove. 2062 (strict_prototype): Remove. 2063 (strict_prototypes_lang_c, strict_prototypes_lang_cplusplus): Remove. 2064 (lang_f_options): Remove "strict-prototype". 2065 (unsupported-options): Add "strict-prototype". 2066 * lex.c (do_identifier): Adjust. 2067 (do_scoped_id): Adjust. 2068 * parse.y (empty_parms): Adjust. 2069 * class.c (push_lang_context): Adjust. 2070 (pop_lang_context): Adjust. 2071 * typeck.c (comp_target_parms): Adjust. 2072 20732000-07-25 Nathan Sidwell <nathan@codesourcery.com> 2074 2075 * decl.c (poplevel): Deal with anonymous variables at for scope. 2076 (maybe_inject_for_scope_var): Likewise. 2077 20782000-07-25 Zack Weinberg <zack@wolery.cumb.org> 2079 2080 * decl.c: Remove all signal handling code, now done in toplev.c. 2081 20822000-07-23 Mark Mitchell <mark@codesourcery.com> 2083 2084 * decl.c (make_rtl_for_nonlocal_decl): Rework. 2085 2086 * pt.c (lookup_template_class): Ensure that TYPE_CONTEXT is set 2087 correctly. 2088 20892000-07-20 Zack Weinberg <zack@wolery.cumb.org> 2090 2091 * cp-tree.h: Use __FUNCTION__ not __PRETTY_FUNCTION__. 2092 Define my_friendly_assert and my_friendly_abort as macros 2093 which may call friendly_abort. Prototype friendly abort, not 2094 my_friendly_abort or my_friendly_assert. 2095 * decl.c (signal_catch): Report the signal caught in the error 2096 message. Call fatal directly. 2097 * typeck2.c (ack, my_friendly_assert): Delete. 2098 (my_friendly_abort): Rename to friendly_abort. Expect file, 2099 line, and function parameters. Report the abort code, then 2100 call fancy_abort. Do not mask an abort if errors have 2101 already occurred. 2102 21032000-07-18 Nathan Sidwell <nathan@codesourcery.com> 2104 2105 * typeck.c (comp_target_parms): Remove obsolete parameter. 2106 (comp_target_types): Adjust. 2107 21082000-07-17 Jason Merrill <jason@redhat.com> 2109 2110 * typeck.c (mark_addressable): Never set TREE_USED. 2111 * call.c (build_call): Don't abort on calls to library functions 2112 that have been declared normally. 2113 2114 * typeck.c (build_binary_op): Fix grammar in warning. 2115 2116 * exception.cc (__eh_free): Fix prototype. 2117 2118 * decl2.c (finish_decl_parsing): Handle TEMPLATE_ID_EXPR. 2119 2120 * decl.c (pushdecl): Handle seeing an OVERLOAD in 2121 IDENTIFIER_NAMESPACE_VALUE. 2122 21232000-07-16 Mark Mitchell <mark@codesourcery.com> 2124 2125 * cp-tree.h (THUNK_VCALL_OFFSET): Update documentation. 2126 * method.c (use_thunk): Correct handling of vcall offsets. 2127 21282000-07-14 Zack Weinberg <zack@wolery.cumb.org> 2129 2130 * .cvsignore: parse.h and parse.c have no cp- prefix. 2131 21322000-07-13 Mark Mitchell <mark@codesourcery.com> 2133 2134 * .cvsignore: New file. 2135 21362000-07-13 Zack Weinberg <zack@wolery.cumb.org> 2137 2138 * lang-specs.h: Use the new named specs. Remove unnecessary braces. 2139 21402000-07-12 Mark Mitchell <mark@codesourcery.com> 2141 2142 * Makefile.in ($(PARSE_H)): Depend directly on parse.y. 2143 * parse.c: Remove. 2144 * parse.h: Likewise. 2145 21462000-07-11 Mark Mitchell <mark@codesourcery.com> 2147 2148 * class.c (layout_class_type): Add pointers to virtual bases after 2149 base classes under the old ABI. 2150 21512000-07-10 Benjamin Chelf <chelf@codesourcery.com> 2152 2153 * semantics.c (finish_for_stmt): Remove call to emit_line_note. 2154 (finish_continue_stmt): Likewise. 2155 (begin_for_stmt): Remove call to note_level_for_for. 2156 (finish_goto_stmt): Change call from build_min_nt 2157 to build_stmt. 2158 (finish_expr_stmt): Likewise. 2159 (begin_if_stmt): Likewise. 2160 (begin_while_stmt): Likewise. 2161 (finish_while_stmt): Likewise. 2162 (finish_return_stmt): Likewise. 2163 (begin_for_stmt): Likewise. 2164 (finish_for_stmt): Likewise. 2165 (finish_break_stmt): Likewise. 2166 (begin_switch_stmt): Likewise. 2167 (finish_case_label): Likewise. 2168 (genrtl_try_block): Likewise. 2169 (begin_try_block): Likewise. 2170 (begin_handler): Likewise. 2171 (begin_compound_stmt): Likewise. 2172 (finish_asm_stmt): Likewise. 2173 (finish_label_stmt): Likewise. 2174 (add_decl_stmt): Likewise. 2175 (finish_subobject): Likewise. 2176 (finish_decl_cleanup): Likewise. 2177 (finish_named_return_value): Likewise. 2178 (setup_vtbl_ptr): Likewise. 2179 (add_scope_stmt): Likewise. 2180 * decl.c (finish_constructor_body): Likewise. 2181 (finish_destructor_body): Likewise. 2182 * optimize.c (copy_body_r): Likewise. 2183 (initialize_inlined_parameters): Likewise. 2184 (declare_return_variable): Likewise. 2185 (expand_call_inline): Likewise. 2186 21872000-07-10 Jakub Jelinek <jakub@redhat.com> 2188 2189 * semantics.c (expand_body): Sync interface information 2190 at the end of function body expansion. 2191 21922000-07-09 Jason Merrill <jason@redhat.com> 2193 2194 * init.c (build_new_1): Bail early if the call to new fails. 2195 2196 * decl.c (compute_array_index_type): Check specifically for 2197 an INTEGER_CST, not just TREE_CONSTANT. 2198 2199 * decl.c (duplicate_decls): Don't call duplicate_decls on 2200 the DECL_TEMPLATE_RESULT. 2201 (decls_match): Return 0 if the DECL_TEMPLATE_RESULTs have different 2202 codes. 2203 2204 * error.c (dump_template_bindings): Don't crash if we had an 2205 invalid argument list. 2206 2207 * typeck.c (c_expand_start_case): Do narrowing here. 2208 * semantics.c (finish_switch_cond): Not here. 2209 22102000-07-09 Hidvegi Zoli <hzoli@austin.ibm.com> 2211 2212 * parse.y (asm_clobbers): Do string concatenation. 2213 22142000-07-09 Mark Mitchell <mark@codesourcery.com> 2215 2216 * decl.c (pushtag): Don't put local classes in template functions 2217 on the local_classes list. 2218 22192000-07-04 Scott Snyder <snyder@fnal.gov> 2220 2221 * decl2.c (get_guard): Add missing return for old ABI local 2222 variable case. 2223 22242000-07-09 Mark Mitchell <mark@codesourcery.com> 2225 2226 * cp-tree.h (char_type_p): New function. 2227 * decl.c (init_decl_processing): Don't initialize 2228 signed_wchar_type_node or unsigned_wchar_type_node. 2229 (complete_array_type): Handle brace-enclosed string-constants. 2230 * rtti.c (emit_support_tinfos): Remove #if 0'd code. 2231 * tree.c (char_type_p): New function. 2232 * typeck2.c (digest_init): Use char_type_p. 2233 22342000-07-06 Nathan Sidwell <nathan@codesourcery.com> 2235 2236 * pt.c (tsubst): Don't layout type, if it's error_mark. 2237 22382000-07-06 Nathan Sidwell <nathan@codesourcery.com> 2239 2240 * pt.c (instantiate_pending_templates): Reset template level. 2241 22422000-07-05 Jason Merrill <jason@redhat.com> 2243 2244 * call.c (joust): Don't complain about `operator char *()' beating 2245 `operator const char *() const'. 2246 22472000-07-04 scott snyder <snyder@fnal.gov> 2248 Jason Merrill <jason@redhat.com> 2249 2250 * repo.c (repo_get_id): Handle the case where a class with virtual 2251 bases has a null TYPE_BINFO_VTABLE. 2252 22532000-07-04 Kevin Buhr <buhr@stat.wisc.edu> 2254 Jason Merrill <jason@redhat.com> 2255 2256 * parse.y (member_init): Just pass in the type. 2257 * init.c (expand_member_init): Handle getting a type. 2258 22592000-07-04 Martin v. Löwis <loewis@informatik.hu-berlin.de> 2260 Jason Merrill <jason@redhat.com> 2261 2262 * decl.c (finish_function): Warn if a function has no return 2263 statement. 2264 Suggested by Andrew Koenig. 2265 * typeck.c (check_return_expr): Do set current_function_returns_value 2266 if we got an error_mark_node. 2267 22682000-07-03 Nathan Sidwell <nathan@codesourcery.com> 2269 2270 * decl2.c (push_decl_namespace): Push the original namespace. 2271 22722000-07-03 Nathan Sidwell <nathan@codesourcery.com> 2273 2274 * pt.c (instantiate_class_template): Set CLASSTYPE_VBASECLASSES. 2275 * semantics.c (begin_class_definition): Clear it. 2276 22772000-07-02 Benjamin Chelf <chelf@codesourcery.com> 2278 2279 * cp-tree.h (genrtl_goto_stmt): Remove declaration. 2280 (genrtl_expr_stmt): Likewise. 2281 (genrtl_decl_stmt): Likewise. 2282 (genrtl_if_stmt): Likewise. 2283 (genrtl_while_stmt): Likewise. 2284 (genrtl_do_stmt): Likewise. 2285 (genrtl_return_stmt): Likewise. 2286 (genrtl_for_stmt): Likewise. 2287 (genrtl_break_stmt): Likewise. 2288 (genrtl_continue_stmt): Likewise. 2289 (genrtl_scope_stmt): Likewise. 2290 (genrtl_switch_stmt): Likewise. 2291 (genrtl_case_label): Likewise. 2292 (genrtl_begin_compound_stmt): Likewise. 2293 (genrtl_finish_compound_stmt): Likewise. 2294 (genrtl_compound_stmt): Likewise. 2295 (genrtl_asm_stmt): Likewise. 2296 2297 * init.c (begin_init_stmts): Remove call to 2298 genrtl_begin_compound_stmt. 2299 (finish_init_stmts): Remove call to genrtl_finish_compound_stmt. 2300 2301 * semantics.c (lang_expand_stmt): Changed call to 2302 genrtl_compound_stmt to ignore return value. 2303 23042000-07-02 Mark Mitchell <mark@codesourcery.com> 2305 2306 * mangle.c (canonicalize_for_substitution): Return the canonical 2307 variant of a type. 2308 2309 * decl.c (duplicate_decls): Preserve DECL_ORIGINAL_TYPE for a 2310 TYPE_DECL. 2311 * typeck.c (commonparms): Remove obstack manipulations. 2312 23132000-07-01 Benjamin Chelf <chelf@codesourcery.com> 2314 2315 * Make-lang.in (cc1plus$(exeext)): Added c-semantics.o. 2316 2317 * Makefile.in (OBJS): Added ../c-semantics.o. 2318 (OBJDEPS): Likewise. 2319 2320 * cp-tree.h (TREE_LANG_FLAG_?): Moved common documentation to 2321 ../c-common.h. 2322 (struct stmt_tree): Added comment. 2323 (current_function_name_declared): Removed. 2324 (stmts_are_full_exprs_p): Likewise. 2325 (genrtl_do_pushlevel): Likewise. 2326 (genrtl_clear_out_block): Likewise. 2327 (COMPOUND_STMT_NO_SCOPE): Moved to ../c-common.h. 2328 (DECL_ANON_UNION_ELEMS): Likewise. 2329 (emit_local_var): Likewise. 2330 (make_rtl_for_local_static): Likewise. 2331 (do_case): Likewise. 2332 (expand_stmt): Likewise. 2333 (genrtl_decl_cleanup): Likewise. 2334 (c_expand_asm_operands): Likewise. 2335 (c_expand_return): Likewise. 2336 (c_expand_start_case): Likewise. 2337 2338 * decl.c (make_rtl_for_local_static): Moved to c-semantics.c. 2339 (emit_local_var): Likewise. 2340 (initialize_local_var): Change reference to 2341 stmts_are_full_exprs_p to call to stmts_are_full_exprs_p(). 2342 Change reference to stmts_are_full_exprs_p to 2343 current_stmt_tree->stmts_are_full_exprs_p. 2344 (push_cp_function_context): Likewise. 2345 2346 * expect.c (expand_throw): Change reference to 2347 stmts_are_full_exprs_p. 2348 2349 * init.c (build_aggr_init): Change reference to 2350 stmts_are_full_exprs_p. 2351 (build_vec_init): Likewise. 2352 2353 * optimize.c (maybe_clone_body): Change reference to 2354 current_function_name_declared to 2355 cp_function_chain->name_declared. 2356 2357 * pt.c (instantiate_decl): Change reference to 2358 current_function_name_declared to 2359 cp_function_chain->name_declared. 2360 2361 * semantics.c (expand_cond): Moved declaration to c-common.h. 2362 (genrtl_do_pushlevel): Moved to c-semantics.c. 2363 (genrtl_clear_out_block): Likewise. 2364 (genrtl_goto_stmt): Likewise. 2365 (genrtl_expr_stmt): Likewise. 2366 (genrtl_decl_stmt): Likewise. 2367 (gerntl_if_stmt): Likewise. 2368 (genrtl_while_stmt): Likewise. 2369 (genrtl_do_stmt): Likewise. 2370 (genrtl_return_stmt): Likewise. 2371 (genrtl_for_stmt): Likewise. 2372 (genrtl_break_stmt): Likewise. 2373 (genrtl_continue_stmt): Likewise. 2374 (genrtl_scope_stmt): Likewise. 2375 (genrtl_switch_stmt): Likewise. 2376 (genrtl_case_label): Likewise. 2377 (genrtl_begin_compound_stmt): Likewise. 2378 (genrtl_finish_compound_stmt): Likewise. 2379 (genrtl_compound_stmt): Likewise. 2380 (genrtl_asm_stmt): Likewise. 2381 (genrtl_decl_cleanup): Likewise. 2382 (expand_cond): Likewise. 2383 (expand_stmt): Renamed to ... 2384 (lang_expand_stmt): ... this. 2385 (lang_expand_expr_stmt): Initialize. 2386 (set_current_function_name_declared): Likewise. 2387 (stmts_are_full_exprs_p): Likewise. 2388 (current_function_name_declared): Likewise. 2389 (anon_aggr_type_p): Likewise. 2390 (do_poplevel): Change reference to 2391 stmts_are_full_exprs_p to call to stmts_are_full_exprs_p(). 2392 Change reference to stmts_are_full_exprs_p to 2393 current_stmt_tree->stmts_are_full_exprs_p. 2394 (add_tree): Likewise. 2395 (finish_expr_stmt): Likewise. 2396 (prep_stmt): Likewise. 2397 (lang_expand_stmt): Likewise. 2398 (begin_compound_stmt): Change reference to 2399 current_function_name_declared to 2400 cp_function_chain->name_declared and call to 2401 current_function_name_declared(). 2402 (setup_vtbl_ptr): Likewise. 2403 (genrtl_do_poplevel): Removed. 2404 24052000-06-30 Jason Merrill <jason@redhat.com> 2406 2407 * init.c (init_init_processing): Go back to aligning like 2408 double_type_node for old ABI. 2409 (get_cookie_size): Make cookie larger if we get a type that needs 2410 more alignment. 2411 (build_vec_delete): Call it. 2412 2413 * typeck.c (qualify_type_recursive): New fn. 2414 (composite_pointer_type): Use it. 2415 (build_binary_op): Use composite_pointer_type. 2416 24172000-06-24 Carlos O'Ryan <coryan@cs.wustl.edu> 2418 Jason Merrill <jason@redhat.com> 2419 2420 * typeck.c (check_return_expr): Don't complain about returning 2421 NULL from operator new if -fcheck-new. 2422 * cp-tree.h: Declare flag_check_new here. 2423 * init.c: Not here. 2424 24252000-06-28 Alex Samuel <samuel@codesourcery.com> 2426 2427 * mangle.c (find_substitution): Use same_type_p. 2428 (write_encoding): Don't check for substitutions. 2429 24302000-06-30 Nathan Sidwell <nathan@codesourcery.com> 2431 2432 * parse.y (expr_no_comma_rangle): New non-terminal. 2433 (template_parm): Use it for default parameter case. 2434 (template_arg): Use it. 2435 (expr_no_commas): Remove commented out undefined extensions. 2436 * Makefile.in (CONFLICTS): Adjust to 33 s/r & 48 r/r. 2437 * parse.h, parse.c: Rebuilt. 2438 24392000-06-30 Mark Mitchell <mark@codesourcery.com> 2440 2441 * semantics.c (genrtl_asm_stmt): Don't decay input operands here. 2442 (finish_asm_stmt): Do it here, instead. 2443 2444 * cp-tree.h (ridpointers): Don't declare. 2445 * decl.c (record_builtin_type): Use CP_RID_MAX instead of RID_MAX. 2446 (record_builtin_java_type): Likewise. 2447 (init_decl_processing): Likewise. 2448 * lex.c: Move inclusion of lex.h. 2449 (ridpointers): Don't define. 2450 (init_parse): Initialize ripdointers. Use CP_RID_MAX instead of 2451 RID_MAX. 2452 * lex.h (enum rid): Rename to ... 2453 (enum cp_rid): ... this. 2454 (ridpointers): Don't declare. 2455 * parse.y: Move inclusion of lex.h. 2456 * parse.c: Regenerated. 2457 * spew.c: Move inclusion of lex.h. 2458 2459 * cp-tree.h (struct language_function): Remove temp_name_counter. 2460 (temp_name_counter): Remove. 2461 (get_temp_name): Change prototype. 2462 (get_guard): New function. 2463 (get_guard_cond): Likewise. 2464 (set_guard): Likewise. 2465 * cvt.c (build_up_reference): Adjust call to get_temp_name. 2466 * decl.c (expand_static_init): Use get_guard and friends to 2467 implement guard variables. 2468 * decl2.c (get_temp_name): Assume that the variables created are 2469 always static. 2470 (get_sentry): Rename to ... 2471 (get_guard): ... this. Implement new ABI guard variables. 2472 (get_guard_bits): New function. 2473 (get_guard_cond): Likewise. 2474 (set_guard): Likewise. 2475 (start_static_initialization_or_destruction): Use them. 2476 (do_static_initialization): Replace sentry with guard throughout. 2477 (do_static_destruction): Likewise. 2478 * init.c (create_temporary_var): Add comment. 2479 24802000-06-28 Alex Samuel <samuel@codesourcery.com> 2481 2482 * mangle.c (find_substitution): Use same_type_p. 2483 (write_encoding): Don't check for substitutions. 2484 24852000-06-30 Nathan Sidwell <nathan@codesourcery.com> 2486 2487 * parse.y (expr_no_comma_rangle): New non-terminal. 2488 (template_parm): Use it for default parameter case. 2489 (template_arg): Use it. 2490 (expr_no_commas): Remove commented out undefined extensions. 2491 * Makefile.in (CONFLICTS): Adjust to 33 s/r & 48 r/r. 2492 * parse.h, parse.c: Rebuilt. 2493 24942000-06-29 Mark Mitchell <mark@codesourcery.com> 2495 2496 * cp-tree.h (flag_const_strings): Remove. 2497 (warn_parentheses): Likewise. 2498 (warn_format): Likewise. 2499 (common_type): Likewise. 2500 (default_conversion): Likewise. 2501 (build_binary_op): Likewise. 2502 (cp_build_binary_op): New macro. 2503 * call.c (build_new_op): Use cp_build_binary_op instead of 2504 build_binary_op. 2505 * class.c (build_vtable_entry_ref): Likewise. 2506 * decl.c (expand_static_init): Likewise. 2507 (compute_array_index_type): Likewise. 2508 (build_enumerator): Likewise. 2509 * decl2.c (delete_sanity): Likewise. 2510 (start_static_initialization_or_destruction): Likewise. 2511 * error.c (dump_type_suffix): Likewise. 2512 * init.c (resolve_offset_ref): Likewise. 2513 (build_new): Likewise. 2514 (build_new_1): Likewise. 2515 (build_vec_delete_1): Likewise. 2516 (build_vec_init): Likewise. 2517 (build_delete): Likewise. 2518 * rtti.c (synthesize_tinfo_fn): Likewise. 2519 (synthesize_tinfo_var): Likewise. 2520 * search.c (expand_upcast_fixups): Likewise. 2521 (fixup_all_virtual_upcast_offsets): Likewise. 2522 * typeck.c (build_array_ref): Likewise. 2523 (get_member_function_from_ptrfunc): Likewise. 2524 (build_binary_op): Add parameter. 2525 (pointer_int_sum): Use cp_build_binary_op. 2526 (pointer_diff): Likewise. 2527 (build_modify_expr): Likewise. 2528 (get_delta_difference): Likewise. 2529 (build_ptrmemfunc): Likewise. 2530 25312000-06-29 Nathan Sidwell <nathan@codesourcery.com> 2532 2533 * cp-tree.h (SET_DECL_ARTIFICIAL): Remove. 2534 * decl.c (create_implicit_typedef): Adjust. 2535 * decl2.c (build_artificial_parm): Adjust. 2536 * method.c (implicitly_declare_fn): Adjust. 2537 * pt.c (push_inline_template_parms_recursive): Adjust. 2538 (process_template_parm): Adjust. 2539 (overloaded_template_name): Adjust. 2540 * semantics.c (finish_template_template_parm): Adjust. 2541 25422000-06-28 Mark Mitchell <mark@codesourcery.com> 2543 2544 * cp-tree.h (CLEAR_BINFO_NEW_VTABLE_MARKED): Remove. 2545 * class.c (update_vtable_entry_for_fn): Correct logic for deciding 2546 where to emit thunks. 2547 (build_vtt): Adjust call to build_vtt_inits. 2548 (build_vtt_inits): Add parameter to indicate whether or not 2549 sub-VTTs for virtual bases should be included. Adjust handling of 2550 construction vtables. 2551 (get_matching_base): New function. 2552 (dfs_build_vtt_inits): Rename to ... 2553 (dfs_build_secondary_vptr_vtt_inits): Adjust handling of 2554 construction vtables. 2555 (dfs_fixup_binfo_vtbls): Likewise. 2556 (build_ctor_vtbl_groups): Build construction vtables for virtual 2557 bases, too. 2558 (accumulate_vtbl_inits): Tweak logic for deciding whether or not 2559 to build construction vtbls. 2560 (dfs_accumulate_vtbl_inits): Adjust handling of 2561 construction vtables. 2562 2563 * pt.c (tsubst, case TEMPLATE_TEMPLATE_PARM): Handle cv-qualified 2564 types correctly. 2565 25662000-06-27 Mark Mitchell <mark@codesourcery.com> 2567 2568 * decl.c (grokfndecl): Set DECL_CONTEXT for static functions too. 2569 25702000-06-26 Nathan Sidwell <nathan@codesourcery.com> 2571 2572 * search.c (hides): Remove. 2573 (is_subobject_of_p): Add most_derived parameter. Use 2574 CANONICAL_BINFO. 2575 (lookup_field_queue_p): Adjust. 2576 (lookup_field_r): Adjust. 2577 25782000-06-26 Nathan Sidwell <nathan@codesourcery.com> 2579 2580 * decl2.c (handle_class_head): Bash typedefs to the type's main 2581 decl. 2582 25832000-06-25 Mark Mitchell <mark@codesourcery.com> 2584 2585 * cp-tree.h (genrtl_begin_stmt_expr): Rename to ... 2586 (begin_global_stmt_expr): ... this. 2587 (genrtl_finish_stmt_expr): Rename to ... 2588 (finish_global_stmt_expr): ... this. 2589 * init.c (begin_init_stmts): Adjust calls. 2590 (finish_init_stmts): Likewise. 2591 * semantics.c (genrtl_begin_stmt_expr): Rename to ... 2592 (begin_global_stmt_expr): ... this. 2593 (genrtl_finish_stmt_expr): Rename to ... 2594 (finish_global_stmt_expr): ... this. 2595 25962000-06-25 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> 2597 2598 * search.c (lookup_member): Fix typo in comment. 2599 26002000-06-24 Jason Merrill <jason@redhat.com> 2601 2602 * decl.c (pushdecl): Don't set DECL_CONTEXT from current_namespace. 2603 (push_namespace): Set DECL_CONTEXT for a new NAMESPACE_DECL. 2604 26052000-06-24 Martin v. Löwis <loewis@informatik.hu-berlin.de> 2606 2607 * parse.y (complex_direct_notype_declarator): Support global_scope. 2608 * Makefile.in: Adjust conflict count. 2609 26102000-06-23 Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu> 2611 2612 * parse.y (template_arg): Convert TEMPLATE_DECL 2613 that is a template template parameter to 2614 TEMPLATE_TEMPLATE_PARM here. 2615 2616 * cp-tree.def (TEMPLATE_TEMPLATE_PARM): Adjust comment. 2617 * cp-tree.h (TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL): New macro. 2618 (copy_template_template_parm): Adjust prototype. 2619 * decl.c (grokdeclarator): Remove dead code. 2620 * pt.c (process_template_parm): Tidy. 2621 (lookup_template_class): Construct nodes in 2622 copy_template_template_parm. 2623 (tsubst): Pass TEMPLATE_DECL rather than IDENTIFIER_NODE to 2624 lookup_template_class. Use TYPE_TI_TEMPLATE. 2625 * tree.c (copy_template_template_parm): Add NEWARGS 2626 parameter. 2627 (mapcar): Adjust call to copy_template_template_parm. 2628 * typeck.c (comptypes): Use TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL. 2629 * method.c (build_template_template_parm_names): Change error 2630 code to avoid compilation warning. 2631 2632 * gxxint.texi: Document template template parameter 2633 name mangling. 2634 26352000-06-21 Alex Samuel <samuel@codesourcery.com> 2636 2637 * Make-lang.in (CXX_LIB2FUNCS): Add cp-demangle.o and dyn-string.o. 2638 (CXX_LIB2SRCS): Add cp-demangle.c and dyn-string.c. 2639 (cp-demangle.o): New rule. 2640 (dyn-string.o): Likewise. 2641 * inc/cxxabi.h (__cxa_demangle): New declaration. 2642 26432000-06-22 Mark Mitchell <mark@codesourcery.com> 2644 2645 * cp-tree.h (BV_USE_VCALL_INDEX_P): New macro. 2646 (BV_GENERATE_THUNK_WITH_VTABLE_P): Likewise. 2647 (lang_decl_flags): Add generate_with_vtable_p. Make vcall_offset 2648 a tree, not an int. 2649 (THUNK_GENERATE_WITH_VTABLE_P): New macro. 2650 (make_thunk): Change prototype. 2651 (emit_thunk): Rename to use_thunk. 2652 (mangle_thunk): Change prototype. 2653 * class.c (get_derived_offset): Simplify. 2654 (copy_virtuals): Clear BV_USE_VCALL_INDEX_P and 2655 BV_GENERATE_THUNK_WITH_VTABLE_P. 2656 (build_primary_vtable): Simplify. 2657 (add_virtual_function): Use BV_FN, rather than TREE_VALUE. 2658 (dfs_find_base): Remove. 2659 (update_vtable_entry_for_fn): Correct bug in finding the base 2660 where a virtual function was first declared. Figure out whether 2661 or not to emit a vcall-thunk with the vtables in which it appears. 2662 Correct logic for deciding whether to use an ordinary thunk, or a 2663 vcall thunk. 2664 (finish_struct_1): Remove unnecssary code. 2665 (build_vtbl_initializer): Use ssize_int for the running counter of 2666 negative indices. 2667 (build_vtbl_initializer): Only use vcall thunks where necessary. 2668 Mark thunks as needing to be emitted with their vtables, or not. 2669 (build_vbase_offset_vtbl_entries): Adjust for use of ssize_int in 2670 indices. Use size_binop. 2671 (dfs_build_vcall_offset_vtbl_entries): Don't rely on 2672 BINFO_PRIMARY_MARKED_P here. Use BV_FN consistently. Use 2673 size_binop. 2674 (build_rtti_vtbl_entries): Adjust call to build_vtable_entry. 2675 (build_vtable_entry): Mark thunks as needing to be emitted with 2676 their vtables, or not. 2677 * decl.c (lang_mark_tree): Mark the vcall_offset in a thunk. 2678 * decl2.c (mark_vtable_entries): Use use_thunk instead of 2679 emit_thunk. 2680 * dump.c (dequeue_and_dump): Remove dead code. Dump new thunk 2681 information. 2682 * error.c (dump_expr): Use BV_FN. 2683 * mangle.c (mangle_thunk): Adjust now that vcall_offset is a tree, 2684 not an int. 2685 * method.c (make_thunk): Likewise. 2686 (emit_thunk): Rename to use_thunk. Allow callers to decide 2687 whether or not to actually emit the thunk. Adjust for changes in 2688 representation of vcall offsets. 2689 * search.c (dfs_get_pure_virtuals): Use BV_FN. 2690 * semantics.c (emit_associated_thunks): New function. 2691 (expand_body): Use it. 2692 * ir.texi: Adjust descriptions of thunks. 2693 26942000-06-22 Jason Merrill <jason@redhat.com> 2695 2696 * pt.c (tsubst_decl, case FUNCTION_DECL): Clear DECL_SAVED_TREE. 2697 (tsubst_friend_function): Copy it here. 2698 2699 * decl.c (grok_op_properties): Fix typo. 2700 2701 * decl2.c (delete_sanity): Clarify warning, avoid failure on 2702 deleting void*. 2703 2704 * pt.c (check_explicit_specialization): Clarify error. 2705 2706 * decl.c (pushdecl): Also pull out one of the FUNCTION_DECLs from 2707 an old OVERLOAD when we're declaring a non-function. 2708 (pushdecl, destroy_local_var): Check for error_mark_node. 2709 (warn_extern_redeclared_static): Also bail early if 2710 we're a CONST_DECL. 2711 (push_overloaded_decl): Ignore an old error_mark_node. 2712 27132000-06-22 Nathan Sidwell <nathan@codesourcery.com> 2714 2715 * call.c (build_x_va_arg): Check if in a template decl. 2716 * pt.c (tsubst_copy, case VA_ARG_EXPR): Use build_x_va_arg. 2717 27182000-06-20 Alexandre Petit-Bianco <apbianco@cygnus.com> 2719 2720 * class.c (push_lang_context): TYPE_NAME gets you to the Java 2721 types DECLs. 2722 * decl.c (check_goto): Computed gotos assumed OK. 2723 27242000-06-20 Jason Merrill <jason@redhat.com> 2725 2726 * pt.c (tsubst_decl, case TYPE_DECL): Fix test for TYPE_DECLs 2727 for which we don't need to look for instantiations. 2728 27292000-06-21 Nathan Sidwell <nathan@codesourcery.com> 2730 2731 * parse.y (program): Always call finish_translation_unit. 2732 * parse.c, parse.h: Rebuilt. 2733 27342000-06-20 Zack Weinberg <zack@wolery.cumb.org> 2735 2736 * method.c: Don't include hard-reg-set.h. 2737 27382000-06-20 Nathan Sidwell <nathan@codesourcery.com> 2739 2740 * rtti.c (get_base_offset): Cope when vbase field is in a base. 2741 27422000-06-20 Nathan Sidwell <nathan@codesourcery.com> 2743 2744 * call.c (build_conditional_expr): Use VOID_TYPE_P. 2745 * cvt.c (cp_convert_to_pointer): Likewise. 2746 (convert_to_void): Likewise. 2747 * error.c (dump_expr): Likewise. 2748 * except.c (complete_ptr_ref_or_void_ptr_p): Likewise. 2749 * init.c (build_delete): Likewise. 2750 * method.c (emit_thunk): Likewise. 2751 * optmize.c (declare_return_variable): Likewise. 2752 * rtti.c (get_tinfo_decl_dynamic): Likewise. 2753 (get_typeid): Likewise. 2754 (build_dynamic_cast_1): Likewise. 2755 * typeck.c (composite_pointer_type): Likewise. 2756 (common_type): Likewise. 2757 (build_indirect_ref): Likewise. 2758 (build_binary_op): Likewise. 2759 (build_x_compound_expr): Likewise. 2760 (check_return_expr): Likewise. 2761 * typeck2.c (add_exception_specifier): Likewise. 2762 2763 * mangle.c (write_method_parms): Use direct comparison for end 2764 of parmlist. 2765 27662000-06-19 Benjamin Chelf <chelf@codesourcery.com> 2767 2768 * cp-tree.h (genrtl_try_block): Declare function. 2769 (genrtl_handler): Likewise. 2770 (genrtl_catch_block): Likewise. 2771 (genrtl_ctor_stmt): Likewise. 2772 (genrtl_subobject): Likewise. 2773 (genrtl_decl_cleanup): Likewise. 2774 (genrtl_do_poplevel): Likewise. 2775 (genrtl_do_pushlevel): Likewise. 2776 (genrtl_clear_out_block): Likewise. 2777 (genrtl_goto_stmt): Likewise. 2778 (genrtl_expr_stmt): Likewise. 2779 (genrtl_decl_stmt): Likewise. 2780 (genrtl_if_stmt): Likewise. 2781 (genrtl_while_stmt): Likewise. 2782 (genrtl_do_stmt): Likewise. 2783 (genrtl_return_stmt): Likewise. 2784 (genrtl_for_stmt): Likewise. 2785 (genrtl_break_stmt): Likewise. 2786 (genrtl_continue_stmt): Likewise. 2787 (genrtl_scope_stmt): Likewise. 2788 (genrtl_switch_stmt): Likewise. 2789 (genrtl_case_label): Likewise. 2790 (genrtl_begin_compound_stmt): Likewise. 2791 (genrtl_finish_compound_stmt): Likewise. 2792 (genrtl_compound_stmt): Likewise. 2793 (genrtl_asm_stmt): Likewise. 2794 (genrtl_named_return_value): Likewise. 2795 (genrtl_begin_stmt_expr): Likewise. 2796 (genrtl_finish_stmt_expr): Likewise. 2797 (finish_for_stmt): Removed first argument. 2798 (finish_switch_stmt): Likewise. 2799 2800 * semantics.c (genrtl_try_block): Define function. 2801 (genrtl_handler): Likewise. 2802 (genrtl_catch_block): Likewise. 2803 (genrtl_ctor_stmt): Likewise. 2804 (genrtl_subobject): Likewise. 2805 (genrtl_decl_cleanup): Likewise. 2806 (genrtl_do_poplevel): Likewise. 2807 (genrtl_do_pushlevel): Likewise. 2808 (genrtl_clear_out_block): Likewise. 2809 (genrtl_goto_stmt): Likewise. 2810 (genrtl_expr_stmt): Likewise. 2811 (genrtl_decl_stmt): Likewise. 2812 (genrtl_if_stmt): Likewise. 2813 (genrtl_while_stmt): Likewise. 2814 (genrtl_do_stmt): Likewise. 2815 (genrtl_return_stmt): Likewise. 2816 (genrtl_for_stmt): Likewise. 2817 (genrtl_break_stmt): Likewise. 2818 (genrtl_continue_stmt): Likewise. 2819 (genrtl_scope_stmt): Likewise. 2820 (genrtl_switch_stmt): Likewise. 2821 (genrtl_case_label): Likewise. 2822 (genrtl_begin_compound_stmt): Likewise. 2823 (genrtl_finish_compound_stmt): Likewise. 2824 (genrtl_compound_stmt): Likewise. 2825 (genrtl_asm_stmt): Likewise. 2826 (genrtl_named_return_value): Likewise. 2827 (genrtl_begin_stmt_expr): Likewise. 2828 (genrtl_finish_stmt_expr): Likewise. 2829 (finish_for_stmt): Removed first argument and generate rtl 2830 specific code. 2831 (finish_switch_stmt): Likewise. 2832 (do_poplevel): Removed generate rtl specific code. 2833 (do_pushlevel): Likewise. 2834 (add_tree): Likewise. 2835 (finish_goto_stmt): Likewise. 2836 (finish_expr_stmt): Likewise. 2837 (begin_if_stmt): Likewise. 2838 (finish_if_stmt_cond): Likewise. 2839 (finish_then_clause): Likewise. 2840 (begin_else_clause): Likewise. 2841 (finish_else_clause): Likewise. 2842 (finish_if_stmt): Likewise. 2843 (clear_out_block): Likewise. 2844 (begin_while_stmt): Likewise. 2845 (finish_while_stmt_cond): Likewise. 2846 (finish_while_stmt): Likewise. 2847 (begin_do_stmt): Likewise. 2848 (finish_do_body): Likewise. 2849 (finish_do_stmt): Likewise. 2850 (finish_return_stmt): Likewise. 2851 (begin_for_stmt): Likewise. 2852 (finish_for_init_stmt): Likewise. 2853 (finish_for_cond): Likewise. 2854 (finish_for_expr): Likewise. 2855 (finish_break_stmt): Likewise. 2856 (finish_continue_stmt): Likewise. 2857 (begin_switch_stmt): Likewise. 2858 (finish_switch_cond): Likewise. 2859 (finish_case_label): Likewise. 2860 (begin_try_block): Likewise. 2861 (begin_function_try_block): Likewise. 2862 (finish_try_block): Likewise. 2863 (finish_cleanup_try_block): Likewise. 2864 (finish_cleanup): Likewise. 2865 (finish_function_try_block): Likewise. 2866 (finish_handler_sequence): Likewise. 2867 (finish_function_handler_sequence): Likewise. 2868 (begin_handler): Likewise. 2869 (finish_handler_parms): Likewise. 2870 (begin_catch_block): Likewise. 2871 (finish_handler): Likewise. 2872 (begin_compound_stmt): Likewise. 2873 (finish_compound_stmt): Likewise. 2874 (finish_asm_stmt): Likewise. 2875 (finish_label_stmt): Likewise. 2876 (finish_label_decl): Likewise. 2877 (finish_subobject): Likewise. 2878 (finish_decl_cleanup): Likewise. 2879 (finish_named_return_value): Likewise. 2880 (begin_stmt_expr): Likewise. 2881 (finish_stmt_expr): Likewise. 2882 2883 * decl.c (initialize_local_var): Changed call to finish_expr_stmt 2884 to call genrtl_expr_stmt when appropriate. 2885 2886 * init.c (begin_init_stmts): Changed calls to begin_stmt_expr and 2887 begin_compound_expr to call genrtl_begin_stmt_expr and 2888 genrtl_begin_compound_expr when appropriate. 2889 (finish_init_stmts): Changed calls to finish_compound_expr and 2890 finish_stmt_expr to call genrtl_finish_compound_expr and 2891 genrtl_finish_stmt_expr when appropriate. 2892 (expand_default_init): Changed call to finish_expr_stmt to call 2893 genrtl_expr_stmt when appropriate. 2894 (build_vec_init): Likewise. 2895 2896 * parse.y (simple_stmt): Removed first argument from call to 2897 finish_for_stmt. Removed first argument from call to 2898 finish_switch_stmt. 2899 2900 * parse.c: Regenerated. 2901 2902 * pt.c (tsubst_expr): Removed first argument from call to 2903 finish_for_stmt. Removed first argument from call to 2904 finish_switch_stmt. 2905 29062000-06-16 Benjamin Chelf <chelf@codesourcery.com> 2907 2908 * cp-tree.h (enum cplus_tree_code): Changed __DUMMY to 2909 CP_DUMMY_TREE_CODE. Remove #include "c-common.def". 2910 2911 * lex.c (cplus_tree_code_type[]): Removed #include "c-common.def". 2912 (cplus_tree_code_length[]): Likewise. 2913 (cplus_tree_code_name[]): Likewise. 2914 (init_parse): Added call to add_c_tree_codes. Changed 2915 LAST_AND_UNUSED_TREE_CODE to LAST_C_TREE_CODE. 2916 29172000-06-16 Mark Mitchell <mark@codesourcery.com> 2918 2919 * cp-tree.h (finish_mem_initializers): Declare. 2920 (count_trees): Likewise. 2921 * parse.y (base_init): Use finish_mem_initializers. 2922 * semantics.c (finish_mem_initializers): New function. 2923 2924 * tree.c (count_trees_r): Prototype. Use DATA parameter to store 2925 the number of trees. 2926 (n_trees): Remove. 2927 (count_trees): Don't use it. 2928 29292000-06-15 Jason Merrill <jason@redhat.com> 2930 2931 * tree.c (count_trees): New debugging function. 2932 2933 * typeck.c (build_x_function_call): Use DECL_FUNCTION_TEMPLATE_P. 2934 * init.c (build_member_call): Pull out the name of a DECL. 2935 2936 * Makefile.in (semantics.o, pt.o): Depend on TIMEVAR_H. 2937 * semantics.c (expand_body): Push to TV_INTEGRATION here. 2938 * optimize.c (optimize_function): Not here. 2939 * pt.c (instantiate_decl): Push to TV_PARSE. 2940 29412000-06-15 Mark Mitchell <mark@codesourcery.com> 2942 2943 * cp-tree.h (struct language_function): Remove x_base_init_list 2944 and x_member_init_list. 2945 (current_base_init_list): Remove. 2946 (current_member_init_list): Likewise. 2947 (setup_vtbl_ptr): Change prototype. 2948 (emit_base_init): Likewise. 2949 (expand_member_init): Likewise. 2950 (reinit_parse_for_function): Remove. 2951 * decl.c (save_function_data): Don't clear x_base_init_list and 2952 x_member_init_list. 2953 (mark_language_function): Don't mark them. 2954 * init.c (perform_member_init): Tweak comment. 2955 (sort_member_init): Take the list of initializers as an argument. 2956 (sort_base_init): Likewise. 2957 (emit_base_init): Likewise. 2958 (expand_member_init): Return the initializer. Don't use global 2959 variables. 2960 * lex.c (reinit_parse_for_function): Remove. 2961 * method.c (build_template_parm_names): Correct substitution. 2962 (do_build_copy_constructor): Don't use current_member_init_list 2963 and current_base_init_list. 2964 (synthesize_method): Likewise. 2965 * parse.y (base_init): Split mem-initializers into 2966 base-initializers and field-initializers. 2967 (member_init_list): Build up the list here. 2968 (member_init): Return the initializer. 2969 (fn.depfn): Don't use reinit_parse_for_function. 2970 * parse.c: Regenerated. 2971 * pt.c (convert_nontype_argument): Don't make an ADDR_EXPR of the 2972 ERROR_MARK. 2973 (tsubst_expr): Don't use current_member_init_list 2974 and current_base_init_list. 2975 (tsubst_expr_values): Rename to ... 2976 (tsubst_initializer_list): ... this. Use convert_from_reference. 2977 * semantics.c (setup_vtbl_ptr): Don't use current_member_init_list 2978 and current_base_init_list. 2979 (begin_function_definition): Don't call reinit_parse_for_function. 2980 2981 * dump.c (dequeue_and_dump): Use TREE_VEC_LENGTH with vectors. 2982 2983 * error.c (dump_expr): Handle ADDR_EXPRs with REFERENCE_TYPE 2984 correctly. 2985 2986 * cp-tree.h (DECL_PENDING_INLINE_P): Relax checking. 2987 29882000-06-14 Benjamin Chelf <chelf@codesourcery.com> 2989 2990 * cp-tree.h (IF_COND): Move to c-common.h. 2991 (THEN_CLAUSE): Likewise. 2992 (ELSE_CLAUSE): Likewise. 2993 (WHILE_COND): Likewise. 2994 (WHILE_BODY): Likewise. 2995 (DO_COND): Likewise. 2996 (DO_BODY): Likewise. 2997 (RETURN_EXPR): Likewise. 2998 (EXPR_STMT_EXPR): Likewise. 2999 (FOR_INIT_STMT): Likewise. 3000 (FOR_COND): Likewise. 3001 (FOR_EXPR): Likewise. 3002 (FOR_BODY): Likewise. 3003 (SWITCH_COND): Likewise. 3004 (SWITCH_BODY): Likewise. 3005 (CASE_LOW): Likewise. 3006 (CASE_HIGH): Likewise. 3007 (GOTO_DESTINATION): Likewise. 3008 (COMPOUND_BODY): Likewise. 3009 (ASM_CV_QUAL): Likewise. 3010 (ASM_STRING): Likewise. 3011 (ASM_OUTPUTS): Likewise. 3012 (ASM_INPUTS): Likewise. 3013 (ASM_CLOBBERS): Likewise. 3014 (DECL_STMT_DECL): Likewise. 3015 (STMT_EXPR_STMT): Likewise. 3016 (LABEL_STMT_LABEL): Likewise. 3017 (SCOPE_BEGIN_P): Likewise. 3018 (SCOPE_END_P): Likewise. 3019 (SCOPE_STMT_BLOCK): Likewise. 3020 (SCOPE_NULLIFIED_P): Likewise. 3021 (SCOPE_NO_CLEANUPS_P): Likewise. 3022 (SCOPE_PARTIAL_P): Likewise. 3023 (ASM_VOLATILE_P): Likewise. 3024 (STMT_LINENO): Likewise. 3025 (STMT_LINENO_FOR_FN_P): Likewise. 3026 3027 * cp-tree.def: Removed SRCLOC, SIZEOF_EXPR, ARROW_EXPR, 3028 ALIGNOF_EXPR, EXPR_STMT, COMPOUND_STMT, DECL_STMT, IF_STMT, 3029 FOR_STMT, WHILE_STMT, DO_STMT, RETURN_STMT, BREAK_STMT, 3030 CONTINUE_STMT, SWITCH_STMT, GOTO_STMT, LABEL_STMT, ASM_STMT, 3031 SCOPE_STMT, CASE_LABEL, STMT_EXPR. 3032 3033 * Makefile.in (CXX_TREE_H): Added $(srcdir)/../c-common.def. 3034 3035 * Make-lang.in (CXX_SRCS): Added $(srcdir)/c-common.def. 3036 (cc1plus$(exeext)): Added $(srcdir)/c-common.def. 3037 3038 * lex.c (cplus_tree_code_type[]): Added '#include "c-common.def"'. 3039 (cplus_tree_code_length[]): Added '#include "c-common.def"'. 3040 (cplus_tree_code_name[]): Added '#include "c-common.def"'. 3041 30422000-06-14 Mark Mitchell <mark@codesourcery.com> 3043 3044 * cp-tree.h (BINFO_OVERRIDE_ALONG_VIRTUAL_PATH): New macro. 3045 * class.c (dfs_find_final_overrider): Set it appropriately. 3046 (dfs_built_vtt_inits): Check BINFO_OVERRIDE_ALONG_VIRTUAL_PATH to 3047 avoid unneeded secondary vptrs. 3048 30492000-06-13 Jakub Jelinek <jakub@redhat.com> 3050 3051 * class.c (build_secondary_vtable): Set DECL_USER_ALIGN. 3052 (check_bitfield_decl, check_field_decl): Likewise. 3053 (build_vtbl_or_vbase_field, build_base_field): Likewise. 3054 (layout_class_type): Set DECL_USER_ALIGN resp. CLASSTYPE_USER_ALIGN. 3055 * decl.c (record_unknown_type): Set TYPE_USER_ALIGN. 3056 (xfer_tag, finish_enum): Likewise. 3057 * decl2.c (finish_builtin_type): Likewise. 3058 * init.c (init_init_processing): Likewise. 3059 * pt.c (instantiate_class_template): Likewise. 3060 * rtti.c (get_tinfo_decl, synthesize_tinfo_fn): Set DECL_USER_ALIGN. 3061 * cp-tree.h (struct lang_type): Add user_align member. 3062 (CLASSTYPE_USER_ALIGN): Define. 3063 30642000-06-13 Maciej W. Rozycki <macro@ds2.pg.gda.pl> 3065 3066 * Make-lang.in (c++.install-common): Install g++-cross in 3067 $(gcc_tooldir)/bin as g++ and c++; g++ in $(bindir) as 3068 $(target_alias)-g++ and $(target_alias)-c++. 3069 30702000-06-12 Mark Mitchell <mark@codesourcery.com> 3071 3072 * class.c (vcall_offset_data_s): Add last_init and fns. 3073 (overrides): Rename to same_signature_p. 3074 (dfs_find_final_overrider): Adjust accordingly. 3075 (mark_overriders): Likewise. 3076 (warn_hidden): Likewise. 3077 (build_vtbl_initializer): Reorganize machinery for building things 3078 at negative offsets. 3079 (build_vcall_and_vbase_vtbl_entries): Likewise. 3080 (build_vbase_offset_vtbl_entries): Likewise. 3081 (dfs_build_vcall_offset_vtbl_entries): Correct order of vcall 3082 offset entries. Do not create two entries for functions with the 3083 same signature. 3084 (build_vcall_offset_vtbl_entries): Initialize vod->fns. 3085 (build_rtti_vtbl_entries): Reorganize machinery for building things 3086 at negative offsets. 3087 3088 * optimize.c (expand_call_inline): Don't recurse into the code 3089 used to initialize the parameters more than once. 3090 30912000-06-11 Mark Mitchell <mark@codesourcery.com> 3092 3093 * mangle.c (NESTED_TEMPLATE_MATCH): Fix typo in comment. 3094 (is_std_substitution): Don't check CLASSTYPE_USE_TEMPLATE here. 3095 (find_substitution): Only use the `Sa' substitution for 3096 std::allocator, not instantiations of it. 3097 (write_template_prefix): Move comment. Only use a TREE_LIST to 3098 represent substitutions for a member template. 3099 (write_array_type): Mangle array dimensions correctly. 3100 * optimize.c (maybe_clone_body): Copy more information from the 3101 cloned function. 3102 * pt.c (regenerate_decl_from_template): Preserve DECL_USE_TEMPLATE 3103 on the regenerated declaration. 3104 31052000-06-11 Chip Salzenberg <chip@valinux.com> 3106 Mark Mitchell <mark@codesourcery.com> 3107 3108 * class.c (build_vtable): Clarify comment. 3109 (build_ctor_vtbl_group): Pass the most derived type to 3110 build_vtable. 3111 31122000-06-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3113 3114 * decl2.c (compare_options): Don't needlessly cast away const-ness. 3115 31162000-06-10 Mark Mitchell <mark@codesourcery.com> 3117 3118 * decl.c (add_binding): Handle duplicate declarations of external 3119 variables. 3120 31212000-06-09 Chip Salzenberg <chip@valinux.com> 3122 Mark Mitchell <mark@codesourcery.com> 3123 3124 * mangle.c (write_number): Take an unsigned HOST_WIDE_INT as an 3125 argument. 3126 (write_signed_number): New macro. 3127 (write_unsigned_number): Likewise. 3128 (write_source_name): Use them. 3129 (write_number): Handle signed and unsigned values. 3130 (write_integer_cst): Use tree_int_cst_sgn, and use 3131 write_unsigned_number or write_signed_number as appropriate. 3132 (write_discriminator): Use write_unsigned_number or 3133 write_signed_number as appropriate. 3134 (write_template_arg_literal): Likewise. 3135 (write_array_type): Use tree_low_cst. 3136 (write_template_parm): Use write_unsigned_number or 3137 write_signed_number as appropriate. 3138 (write_substitution): Adjust call to write_number. 3139 (write_type): Get the TYPE_MAIN_VARIANT before mangling it. 3140 (write_expression): Handle non-type template arguments of 3141 reference type correctly. 3142 (mangle_thunk): Use write_signed_number. 3143 31442000-06-09 Chip Salzenberg <chip@valinux.com> 3145 3146 * mangle.c (find_substition): Don't mangle objects with typename 3147 substitutions (e.g. "cin" as "Si"). 3148 31492000-06-09 Zack Weinberg <zack@wolery.cumb.org> 3150 3151 * call.c (add_candidate): Use ggc_alloc_cleared. 3152 * decl.c (lookup_label): Likewise. 3153 * lex.c (retrofit_lang_decl): Likewise. 3154 31552000-06-09 Jason Merrill <jason@casey.soma.redhat.com> 3156 3157 * semantics.c (expand_body): Push to TV_EXPAND. 3158 * optimize.c (optimize_function): Push to TV_INTEGRATION. 3159 * decl.c (start_function): Always call announce_function. 3160 3161 * tinfo2.cc: Just declare abort. 3162 31632000-06-09 Gabriel Dos Reis <gdr@codesourcery.com> 3164 3165 * lex.c (DEF_OPERATOR): Say `operator@' -not- `operator @' 3166 whenever @ is a symbolic name. 3167 31682000-06-08 Jakub Jelinek <jakub@redhat.com> 3169 3170 * method.c (make_thunk): Clear DECL_VTT_PARM in thunk. 3171 31722000-06-07 Mark Mitchell <mark@codesourcery.com> 3173 3174 * decl.c (pushdecl): Look up functions by DECL_NAME, not 3175 DECL_ASSEMBLER_NAME. 3176 31772000-06-06 Mark Mitchell <mark@codesourcery.com> 3178 3179 * decl2.c (c_language): Define. 3180 31812000-06-06 Gabriel Dos Reis <gdr@codesourcery.com> 3182 3183 * lex.c (lang_init_options): Tweak. 3184 3185 * decl2.c: Remove #inclusion of diagnostic.h 3186 (lang_decode_option): Move diagnostic formatting options to 3187 toplevel. 3188 3189 * lang-options.h: Remove documentation for diagnostic options. 3190 3191 * Makefile.in (lex.o): Depends upon diagnostic.h 3192 31932000-06-06 Mark Mitchell <mark@codesourcery.com> 3194 3195 * decl.c (redeclaration_error_message): If two TEMPLATE_DECLs have 3196 the same DECL_RESULT, it's not a redefinition. 3197 * pt.c (tsubst_decl): Remove code to handle illegal 3198 specializations. 3199 32002000-06-06 Nathan Sidwell <nathan@codesourcery.com> 3201 3202 * exception.cc: (__eh_alloc, __eh_free): Moved to libgcc2.c 3203 32042000-06-05 Jason Merrill <jason@casey.soma.redhat.com> 3205 3206 * search.c (maybe_suppress_debug_info): Don't check 3207 CLASSTYPE_INTERFACE_ONLY if CLASSTYPE_INTERFACE_KNOWN isn't set. 3208 3209 * pt.c (mark_decl_instantiated): Do SET_DECL_EXPLICIT_INSTANTIATION 3210 here if extern_p. 3211 3212 Remember instantiation context in deferred instantiations. 3213 * cp-tree.h (struct tinst_level): Remove. 3214 (TINST_DECL, TINST_LINE, TINST_FILE): New macros. 3215 * pt.c (current_tinst_level): Now a tree. 3216 (print_template_context, push_tinst_level, pop_tinst_level, 3217 tinst_for_decl): Adjust. 3218 (reopen_tinst_level): New fn. 3219 (init_pt): Register current_tinst_level as a root. 3220 (add_pending_template): Put current_tinst_level in TREE_PURPOSE 3221 of the pending templates list. 3222 (instantiate_pending_templates): Adjust. Call reopen_tinst_level. 3223 * lex.c (extract_interface_info): Adjust. 3224 * decl2.c (warn_if_unknown_interface): Adjust. 3225 32262000-06-05 Mark Mitchell <mark@codesourcery.com> 3227 3228 * class.c (indirect_primary_base_p): New function. 3229 (determine_primary_base): Use it. 3230 32312000-06-05 Nathan Sidwell <nathan@codesourcery.com> 3232 3233 Update new-abi dynamic cast algorithm. 3234 * tinfo.cc (__class_type_info::__dyncast_result): Add 3235 whole_details. Adjust constructor. 3236 (__vmi_class_type_info::__do_dyncast): Adjust for vmi_flags. 3237 Avoid unnecessary searching. 3238 (__dynamic_cast): Adjust for __dyncast_result::whole_details. 3239 32402000-06-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 3241 3242 * decl.c (init_decl_processing): Don't call record_component_aliases. 3243 * tree.c (build_cplus_array_type_1): Likewise. 3244 32452000-06-04 Mark Mitchell <mark@codesourcery.com> 3246 3247 * ir.texi: Correct typo. 3248 * mangle.c (write_expression): Handle non-type template arguments 3249 with reference type. 3250 * method.c (build_overload_value): Likewise. 3251 * pt.c (convert_nontype_argument): Explicitly represent conversion 3252 to a reference with an ADDR_EXPR. 3253 (unify): Always unify arguments in left-to-right order. 3254 32552000-06-03 Alex Samuel <samuel@codesourcery.com> 3256 Mark Mitchell <mark@codesourcery.com> 3257 3258 * Make-lang.in (CXX_SRCS): Add mangle.c. 3259 * Makefile.in (CXX_OBJS): Add mangle.o. 3260 (mangle.o): New rule. 3261 3262 * class.c (local_classes): New variable. 3263 * class.c (get_vtable_name): Use mangle_vtable_for_type for new ABI. 3264 (get_vtt_name): Use mangle_vtt_name for new ABI. 3265 (init_class_processing): Initialize local_classes. 3266 (build_ctor_vtbl_group): Use mangle_ctor_vtbl_for_type for new ABI. 3267 * cp-tree.h (cp_tree_index): Add CPTI_STD_IDENTIFIER. 3268 (std_identifier): New macro. 3269 (DECL_VOLATILE_MEMFUNC_P): New macro. 3270 (DECL_NAMESPACE_STD_P): Likewise. 3271 (local_classes): Declare. 3272 (get_mostly_instantiated_function_type): Declare. 3273 (init_mangle): Declare. 3274 (mangle_decl): Likewise. 3275 (mangle_type_string): Likewise. 3276 (mangle_type): Likewise. 3277 (mangle_typeinfo_for_type): Likewise. 3278 (mangle_typeinfo_string_for_type): Likewise. 3279 (mangle_vtbl_for_type): Likewise. 3280 (mangle_vtt_for_type): Likewise. 3281 (mangle_ctor_vtbl_for_type): Likewise. 3282 (mangle_thunk): Likewise. 3283 (mangle_conv_op_name_for_type): Likewise. 3284 (mangle_guard_variable): Likewise. 3285 * decl.c (pushtag): Keep track of local classes. 3286 (initialize_predefined_identifiers): Initialize std_identifier. 3287 (init_decl_processing): Use std_identifier. 3288 (start_decl): Don't treat instantiations as specializations. 3289 (grokdeclarator): Likewise. 3290 (grokvardecl): Call mangle_decl for new ABI. Only set mangled 3291 name for fully-instantiated templates. 3292 * decl2.c (grokclassfn): Use set_mangled_name_for_decl for 3293 destructors with the new ABI. 3294 (finish_static_data_member_decl): Use mangle_decl under the new ABI. 3295 (grokfield): Use mangle_type for new ABI. 3296 (grokoptypename): Use mangle_conv_op_for_type for new ABI. 3297 (get_sentry): Use mangle_guard_variable for new ABI. 3298 (start_static_initialization_or_destruction): Likewise. 3299 * expr.c (extract_aggr_init): Remove. 3300 (extract_scalar_init): Likewise. 3301 (extract_init): Remove #if 0'd code. 3302 * mangle.c: New function. 3303 * method.c (build_mangled_name): Assert not flag_new_abi. 3304 (build_static_name): Likewise. 3305 (build_decl_overload_real): Likewise. 3306 (build_typename_overload): Likewise. 3307 (build_overload_with_type): Likewise. 3308 (build_overload_name): Likewise. 3309 (get_ctor_vtbl_name): Likewise. 3310 (start_squangling): Likewise. 3311 (get_id_2): Likewise. 3312 (set_mangled_name_for_decl): Call mangle_decl for new ABI. 3313 (init_method): Call init_mangle for new ABI. 3314 (make_thunk): Call mangle_thunk for new ABI. 3315 * operators.def: Correct new ABI manglings for the `%' operator. 3316 Add `::' operator. 3317 * pt.c (build_template_decl): Copy DECL_OVERLOADED_OPERATOR_P and 3318 DECL_ASSIGNMENT_OPERATOR_P to the TEMPLATE_DECL. 3319 (lookup_template_class): Call mangle_decl for new ABI. 3320 (get_mostly_instantiated_function_type): New function. 3321 (set_mangled_name_for_template_decl): Use it. 3322 (tsubst_decl): Use set_mangled_name_for_decl for destructors with 3323 the new ABI. Use mangle_conv_op_name_for_type for instantiated 3324 conversion op names. 3325 * rtti.c (tinfo_name): Call mangle_type_string for new ABI. 3326 (get_tinfo_decl): Call mangle_typeinfo_for_type for new ABI. 3327 (tinfo_base_init): Likewise. Mangle typeinfo string name with 3328 mangle_typeinfo_string_for_type. 3329 33302000-06-03 Mark Mitchell <mark@codesourcery.com> 3331 3332 * cp-tree.h (TMPL_ARGS_LEVEL): Clarify comment. 3333 (INNERMOST_TEMPLATE_ARGS): New macro. 3334 (innermost_args): Remove. 3335 (get_innermost_template_args): New function. 3336 * decl2.c (arg_assoc_class): Use INNERMOST_TEMPLATE_ARGS. 3337 * error.c (dump_function_decl): Be caution when using 3338 most_general_template. 3339 * method.c (build_template_parm_names): Use 3340 INNERMOST_TEMPLATE_ARGS. 3341 * pt.c (add_to_template_args): Tidy comment 3342 (get_innermost_template_args): New function. 3343 (check_explicit_specialization): Clear DECL_INITIAL for a new 3344 specialization. 3345 (process_partial_specialization): Use INNERMOST_TEMPLATE_ARGS. 3346 Tidy. 3347 (push_template_decl): Always register specializations of the most 3348 general template. 3349 (convert_template_argument): Use INNERMOST_TEMPLATE_ARGS. 3350 (coerce_template_parms): Likewise. 3351 (lookup_template_class): Likewise. 3352 (innermost_args): Remove. 3353 (tsubst_decl): Use INNERMOST_TEMPLATE_ARGS. 3354 (tsubst_decl): Handle tricky specializations. Use 3355 get_innermost_template_args. 3356 (instantiate_template): Simplify handling of partial 3357 instantiations. 3358 (get_class_bindings): Use INNERMOST_TEMPLATE_ARGS. 3359 (most_general_template): Reimplement, in a more straightforward 3360 manner. 3361 (regenerate_decl_from_template): Tweak formatting. Use 3362 TMPL_ARGS_DEPTH for clarity. 3363 (set_mangled_name_for_template_decl): Use INNERMOST_ARGS. 3364 3365 * dump.c (dequeue_and_dump): Dump information about thunks. 3366 33672000-06-01 Richard Henderson <rth@cygnus.com> 3368 3369 * decl.c (init_decl_processing): Set lang_get_alias_set first thing. 3370 33712000-06-01 Richard Henderson <rth@cygnus.com> 3372 3373 * decl2.c (unsupported_options): Fix typo, make const. 3374 (lang_decode_option): Fix bsearch argument order. 3375 33762000-06-01 Mark Mitchell <mark@codesourcery.com> 3377 3378 * init.c (resolve_offset_ref): Remove check for TREE_ADDRESSABLE 3379 on FIELD_DECLs. 3380 33812000-05-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 3382 3383 * cp-tree.h (c_get_alias_set): Deleted. 3384 * Makefile.in (decl.o): Include ../expr.h. 3385 * decl.c (expr.h): Include. 3386 (init_decl_processing): Call record_component_aliases for arrays. 3387 (grokdeclarator): Likewise. 3388 Set TREE_ADDRESSABLE for fields that aren't bitfields. 3389 * tree.c (build_cplus_array_type_1): Call record_component_aliases. 3390 33912000-05-31 Mark Mitchell <mark@codesourcery.com> 3392 3393 Remove guiding declaration support. 3394 * cp/cp-tree.h (flag_dump_translation_unit): Make it const. 3395 (flag_guiding_decls): Remove. 3396 * call.c (build_user_type_conversion_1): Remove support for 3397 guiding decls. 3398 (build_new_function_call): Likewise. 3399 (build_new_op): Likewise. 3400 (build_new_method_call): Likewise. 3401 * decl.c (start_function): Likewise. 3402 * friend.c (is_friend): Likewise. 3403 (do_friend): Likewise. 3404 * decl2.c ((flag_dump_translation_unit): Make it const. 3405 (flag_guiding_decls): Remove. 3406 (unsupported_options): New variable 3407 (compare_options): New function. 3408 (lang_decode_option): Use them. 3409 3410 * decl.c (build_cp_library_fn): Set DECL_CONTEXT. 3411 3412 * method.c (mangle_expression): Adjust test for legal expression 3413 operators. 3414 3415 * pt.c (instantiate_decl): Save and restore the local 3416 specializations list. 3417 34182000-05-30 Jason Merrill <jason@decepticon.cygnus.com> 3419 3420 * decl.c (grok_reference_init): Pass LOOKUP_ONLYCONVERTING. 3421 34222000-05-30 Mark Mitchell <mark@codesourcery.com> 3423 3424 * call.c (add_template_candidate_real): Handle member template 3425 constructors for classes with virtual bases. 3426 (build_user_type_conversion_1): Use in_charge_arg_for_name. 3427 (build_new_method_call): Use DECL_NONSTATIC_MEMBER_FUNCTION_P. 3428 3429 * ir.texi: Update thunk documentation. 3430 3431 * call.c (joust): Fix handling of overloaded builtin operators. 3432 34332000-05-30 Zack Weinberg <zack@wolery.cumb.org> 3434 3435 * cp-tree.h (DECL_ANTICIPATED): New macro. 3436 Document new use of DECL_LANG_FLAG_7. 3437 * decl.c (builtin_function): Set DECL_ANTICIPATED on builtins 3438 in the user namespace. 3439 * lex.c (do_identifier): If the identifier's declaration has 3440 DECL_ANTICIPATED on, it has not yet been declared. But do not 3441 replace it with an ordinary implicit declaration. 3442 3443 * tinfo2.cc: Include stdlib.h. 3444 34452000-05-29 Mark Mitchell <mark@codesourcery.com> 3446 3447 * cp-tree.h (CLASSTYPE_ALIGN_UNIT): New macro. 3448 * class.c (layout_empty_base): Use CLASSTYPE_ALIGN_UNIT, not 3449 CLASSTYPE_ALIGN. 3450 34512000-05-28 Gabriel Dos Reis <gdr@codesourcery.com> 3452 3453 * decl2.c (lang_decode_option): Use skip_leading_substring instead 3454 of plain strncmp. 3455 34562000-05-28 Alexandre Oliva <aoliva@cygnus.com> 3457 3458 * operators.def (<?): Duplicated, should have been... 3459 (>?): this. Fixed. 3460 34612000-05-27 Alex Samuel <samuel@codesourcery.com> 3462 Mark Mitchell <mark@codesourcery.com> 3463 3464 * cp-tree.h (ansi_opname): Make it a macro. 3465 (ansi_assopname): Likewise. 3466 (struct lang_decl_flags): Add assignment_operator_p. 3467 (struct lang_decl): Add operator_code. 3468 (DECL_VTT_PARM): Adjust. 3469 (DECL_OVERLOADED_OPERATOR_P): Return the operator_code for an 3470 overloaded operator. 3471 (SET_OVERLOADED_OPERATOR_CODE): New macro. 3472 (DECL_ASSIGNMENT_OPERATOR_P): New macro. 3473 (DECL_ARRAY_DELETE_OPERATOR_P): Adjust. 3474 (opname_tab): Remove. 3475 (assignop_tab): Likewise. 3476 (operator_name_info_t): New type. 3477 (operator_name_info): New variable. 3478 (assignment_operator_name_info): Likewise. 3479 (build_cp_library_fn): Remove declaration. 3480 (push_cp_library_fn): Likewise. 3481 (operator_name_string): Likewise. 3482 (build_decl_overload): Likewise. 3483 * call.c (print_z_candidates): Simplify. 3484 (build_object_call): Adjust usage of ansi_opname. Use 3485 DECL_OVERLOADED_OPERATOR_P. 3486 (op_error): Adjust operator name lookup. 3487 (build_conditional_expr): Adjust usage of ansi_opname. 3488 (build_new_op): Likewise. 3489 (build_op_delete_call): Likewise. 3490 (build_over_call): Likewise. 3491 (joust): Use DECL_OVERLOADED_OPERATOR_P. 3492 * decl.c (duplicate_decls): Copy operator_code. 3493 (init_decl_processing): Adjust parameters to push_cp_library_fn. 3494 (builtin_function): Adjust parameters to build_library_fn_1. 3495 (build_library_fn_1): Accept an overloaded operator code. 3496 (build_library_fn): Pass ERROR_MARK. 3497 (build_cp_library_fn): Accept an overloaded operator code. 3498 (push_cp_library_fn): Likewise. 3499 (grokfndecl): Tweak. 3500 (grokdeclarator): Simplify code to compute names of overloaded 3501 operators. Adjust use of ansi_opname. 3502 (ambi_op_p): Work on tree_codes, not identifiers. 3503 (unary_op_p): Likewise. 3504 (grok_op_properties): Likewise. 3505 (start_function): Use DECL_OVERLOADED_OPERATOR_P. 3506 (lang_mark_tree): Don't try to mark the operator_code. 3507 * decl2.c (grok_function_init): Use DECL_OVERLOADED_OPERATOR_P. 3508 * error.c (dump_decl): Remove special handling for operator 3509 names. 3510 (dump_function_name): Likewise. 3511 (dump_expr): Adjust name lookup of operators. 3512 (op_to_string): Simplify. 3513 (assop_to_string): Likewise. 3514 * init.c (build_new_1): Adjust use of ansi_opname. 3515 * lex.c (opname_tab): Remove. 3516 (assignop_tab): Likewise. 3517 (ansi_opname): Likewise. 3518 (ansi_assopname): Likewise. 3519 (operator_name_string): Likewise. 3520 (reinit_lang_specific): Likewise. 3521 (operator_name_info): New variable. 3522 (assignment_operator_name_info): Likewise. 3523 (init_operators): New function. 3524 (init_parse): Use it. 3525 (do_identifier): Adjust use of ansi_opname. 3526 * method.c (mangle_expression): Don't use ansi_opname for 3527 mangling. 3528 (build_decl_overload_real): Use DECL_OVERLOADED_OPERATOR_P. 3529 (build_decl_overload): Remove. 3530 (build_typename_overload): Use OPERATOR_TYPENAME_FORMAT directly. 3531 (do_build_assign_ref): Adjust use of ansi_opname. 3532 (synthesize_method): Likewise. 3533 (implicitly_declare_fn): Likewise. 3534 * operators.def: New file. 3535 * parse.y (operator): Adjust use of ansi_opname. 3536 * pt.c (tsubst_decl): Use IDENTIFIER_OPNAME_P. 3537 (set_mangled_name_for_template_decl): Don't play games with 3538 current_namespace. 3539 (special_function_p): Adjust use of ansi_opname. 3540 * typeck.c (check_return_expr): Likewise. 3541 * Make-lang.in (cc1plus): Depend on operators.def. 3542 * Makefile.in (lex.o): Likewise. 3543 (decl.o): Likewise. 3544 35452000-05-27 Zack Weinberg <zack@wolery.cumb.org> 3546 3547 * Make-lang.in (cplib2.ready): Eradicate. 3548 35492000-05-27 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 3550 3551 * method.c (mangle_expression): Use TREE_CODE_LENGTH. 3552 * tree.c (break_out_calls, build_min_nt): Use TREE_CODE_LENGTH. 3553 (built_min, cp_tree_equal): Likewise. 3554 35552000-05-26 Mark Mitchell <mark@codesourcery.com> 3556 3557 * class.c (layout_nonempty_base_or_field): Replace 3558 `record_layout_info' with `record_layout_info_s'. 3559 35602000-05-26 Jason Merrill <jason@casey.soma.redhat.com> 3561 3562 Fix goto checking. 3563 * cp-tree.h (struct language_function): x_named_labels is now 3564 a struct named_label_list*. 3565 * decl.c (struct named_label_use_list): Renamed from... 3566 (struct named_label_list): ...this. New struct. 3567 (push_binding_level): Don't set eh_region. 3568 (note_level_for_eh): New fn. 3569 (pop_label): Take label and old value directly. 3570 (pop_labels): Adjust for new named_labels format. 3571 (lookup_label): Likewise. 3572 (poplevel): Note characteristics of a binding level containing a 3573 named label. Mess with named label lists earlier. 3574 (mark_named_label_lists): New fn. 3575 (mark_lang_function): Call it. 3576 (use_label): New fn, split out from... 3577 (make_label_decl): ...here. Don't call it. 3578 (decl_jump_unsafe, check_previous_goto, check_previous_goto_1, 3579 check_previous_gotos): New fns, split out from... 3580 (define_label): ...here. 3581 (check_switch_goto): New fn. 3582 (define_case_label): Call it. 3583 (check_goto): New fn. 3584 * semantics.c (finish_goto_stmt): Call it and use_label. 3585 (begin_compound_stmt): If we're a try block, call note_level_for_eh. 3586 (expand_stmt): Never pass 1 as DONT_JUMP_IN to expand_end_bindings. 3587 35882000-05-26 Mark Mitchell <mark@codesourcery.com> 3589 3590 * class.c (build_vtable_entry_ref): Correct usage of 3591 get_vtbl_decl_for_binfo. 3592 3593 * decl2.c (grokclassfn): Set DECL_LANGUAGE here. 3594 * method.c (implicitly_declare_fn): Not here. 3595 35962000-05-26 Nathan Sidwell <nathan@codesourcery.com> 3597 3598 * cp-tree.h (CPTI_PTMD_DESC_TYPE): Rename to ... 3599 (CPTI_PTMD_DESC_TYPE): ... here. 3600 (ptmd_desc_type_node): Rename to ... 3601 (ptm_desc_type_node): ... here. 3602 * decl.c: Likewise. 3603 * rtti.c (ptmd_initializer): Rename to ... 3604 (ptm_initializer): ... here. 3605 (sythesize_tinfo_var): Adjust. Deal with pointer to member 3606 function. 3607 (create_tinfo_types): Adjust. 3608 36092000-05-25 Mark Mitchell <mark@codesourcery.com> 3610 3611 Finish implementation of VTTs. 3612 * cp-tree.h (cp_tree_index): Add CPTI_VTT_PARM_TYPE and 3613 CPTI_VTT_PARM_IDENTIFIER. 3614 (vtt_parm_identifier): New macro. 3615 (vtt_parm_type): Likewise. 3616 (BINFO_SUBVTT_INDEX): Likewise. 3617 (BINFO_VPTR_INDEX): Likewise. 3618 (struct lang_decl): Add vtt_parm. 3619 (DECL_VTT_PARM): New macro. 3620 (DECL_USE_VTT_PARM): Likewise. 3621 (DECL_NEEDS_VTT_PARM_P): Likewise. 3622 (get_vtt_name): Declare. 3623 (build_artificial_parm): Likewise. 3624 (fixup_all_virtual_upcast_offsets): Likewise. 3625 (expand_indirect_vtbls_init): Remove. 3626 * call.c (build_new_method_call): Pass the vtt to subobject 3627 constructors and destructors. 3628 * class.c (get_vtt_name): Give it external linkage. 3629 (build_clone): Handle the magic VTT parameters for clones. 3630 (clone_function_decl): Fix typo in comment. 3631 (build_vtt): Keep track of the indices in the VTTs where various 3632 entities are stored. 3633 (build_vtt_inits): Likewise. 3634 (dfs_build_vtt_inits): Likewise. 3635 (build_ctor_vtbl_group): Tweak type of construction vtables. 3636 (dfs_accumulate_vtbl_inits): Build vtables for all bases, even 3637 primary bases, when building construction vtables. 3638 * decl.c (duplicate_decls): Handle DECL_VTT_PARM. 3639 (initialize_predefined_identifiers): Add vtt_parm_identifier. 3640 (init_decl_processing): Initialize vtt_parm_type. 3641 (grokfndecl): Use DECL_OVERLOADED_OPERATOR_P. 3642 (lang_mark_tree): Make vtt_parm. 3643 * decl2.c (build_artificial_parm): New function. 3644 (maybe_retrofit_in_chrg): Use it. Add VTT parameters. 3645 (grokclassfn): Use build_artificial_parm. 3646 * init.c (initialize_vtbl_ptrs): Call 3647 fixup_all_virtual_upcast_offsets directly. 3648 (perform_member_init): Use the complete subobject destructor for 3649 member cleanups. 3650 (build_vtbl_address): New function. 3651 (expand_virtual_init): Handle VTTs. 3652 * optimize (maybe_clone_body): Likewise. 3653 * search.c (fixup_all_virtual_upcast_offsets): Give it external 3654 linkage. 3655 (expand_indirect_vtbls_init): Remove. 3656 * semantics.c (setup_vtbl_ptr): Fix typos in comment. 3657 * tree.c (make_binfo): Make them bigger. 3658 36592000-05-25 Nathan Sidwell <nathan@codesourcery.com> 3660 3661 * inc/cxxabi.h (__pbase_type_info): Define, based on 3662 __pointer_type_info. 3663 (__pointer_type_info): Derive from __pbase_type_info. Adjust. 3664 (__pointer_to_member_type_info): Likewise. 3665 * tinfo2.cc (__pbase_type_info::~__pbase_type_info): Implement. 3666 (__pointer_to_member_type_info::__is_pointer_p): Remove. 3667 (__pointer_type_info::__do_catch): Rename to ... 3668 (__pbase_type_info::__do_catch): ... here. Adjust. 3669 (__pbase_type_info::__pointer_catch): Implement. 3670 (__pointer_type_info::__pointer_catch): Adjust. 3671 (__pointer_to_member_type_info::__pointer_catch): Adjust. 3672 36732000-05-25 Nathan Sidwell <nathan@codesourcery.com> 3674 3675 * tinfo.h (__user_type_info::contained_virtual_p): New 3676 predicate. 3677 * tinfo.cc (__user_type_info::do_upcast): Fix bug with diamond 3678 shaped hierarchy. 3679 (__vmi_class_type_info::__do_upcast): Fix bug with NULL pointer to 3680 diamond shaped hierarchy. Add early out for mixed diamond and 3681 duplicate shaped hierarchy. 3682 36832000-05-24 Mark Mitchell <mark@codesourcery.com> 3684 3685 * cp-tree.h (build_delete): Change prototype. 3686 (build_vec_delete): Likewise. 3687 * call.c (build_scoped_method_call): Use special_function_kind 3688 values to indicate the kind of destruction to be done. 3689 (build_method_call): Likewise. 3690 * decl.c (finish_destructor_body): Likewise. 3691 (maybe_build_cleanup_1): Likewise. Rename to ... 3692 (maybe_build_cleanup): ... this. 3693 * decl2.c (delete_sanity): Use special_function_kind 3694 values to indicate the kind of destruction to be done. 3695 (build_cleanup): Likewise. 3696 * init.c (perform_member_init): Likewise. 3697 (build_vec_delete_1): Likewise. 3698 (build_dtor_call): Simplify. 3699 (build_delete): Use special_function_kind 3700 values to indicate the kind of destruction to be done. 3701 (build_vbase_delete): Likewise. 3702 (build_vec_delete): Likewise. 3703 3704 * init.c (sort_member_init): Fix typo in error message generation 3705 code. 3706 37072000-05-15 Donald Lindsay <dlindsay@cygnus.com> 3708 3709 * semantics.c (begin_class_definition): make the packed 3710 attribute be sensitive to the "-fpack-struct" command line flag 3711 37122000-05-24 Nathan Sidwell <nathan@codesourcery.com> 3713 3714 Update new-abi upcast algorithm. 3715 * inc/cxxabi.h (__class_type_info::__do_upcast): Change 3716 prototype and meaning of return value. 3717 (__si_class_type_info::__do_upcast): Likewise. 3718 (__vmi_class_type_info::__do_upcast): Likewise. 3719 * tinfo.cc (__class_type_info::__upcast_result): Replace 3720 whole2dst with part2dst. Adjust ctor. 3721 (__class_type_info::__do_upcast): Adjust call of worker function. 3722 (__class_type_info::__do_upcast): Adjust. 3723 (__si_class_type_info::__do_upcast): Adjust. Use parent's 3724 __do_upcast. 3725 (__vmi_class_type_info::__do_upcast): Likewise. Fix private 3726 virtual base in diamond hierarchy bug. 3727 37282000-05-23 Mark Mitchell <mark@codesourcery.com> 3729 3730 * cp-tree.h (lang_decl_flags): Rename mutable_flag to uninlinable 3731 and bitfield to tinfo_fn_p. 3732 (DECL_TINFO_FN_P): Adjust. 3733 (SET_DECL_TINFO_FN_P): Likewise. 3734 (DECL_MUTABLE_P): Likewise. 3735 (DECL_C_BIT_FIELD): Likewise. 3736 (SET_DECL_C_BIT_FIELD): Likewise. 3737 (CLEAR_DECL_C_BIT_FIELD): Likewise. 3738 (DECL_UNINLINABLE): Likewise. 3739 * class.c (alter_access): Call retrofit_lang_decl if ncessary. 3740 (handle_using_decl): Remove assertion. 3741 (build_vtbl_or_vbase_field): Use build_decl, not build_lang_decl, 3742 to build FIELD_DECLs. 3743 (build_base_field): Likewise. 3744 (layout_class_type): Likewise. 3745 * decl.c (init_decl_processing): Likewise. 3746 (build_ptrmemfunc_type): Likewise. 3747 (grokdeclarator): Likewise. 3748 * decl2.c (grok_x_components): Likewise. 3749 * except.c (call_eh_info): Likewise. 3750 * init.c (init_init_processing): Likewise. 3751 * rtti.c (expand_class_desc): Likewise. 3752 (create_pseudo_type_info): Likewise. 3753 (get_vmi_pseudo_type_info): Likewise. 3754 (create_tinfo_types): Likewise. 3755 * ptree.c (print_lang_decl): Adjust. 3756 * typeck.c (build_component_ref): Don't check DECL_LANG_SPECIFIC 3757 before checking DECL_MUTABLE_P. 3758 3759 * decl2.c (maybe_retrofit_in_chrg): Don't create in-charge 3760 parameters for template functions. 3761 * pt.c (tsubst_decl): Make sure we call maybe_retrofit_in_chrg for 3762 destructors as well as constructors. 3763 37642000-05-22 Mark Mitchell <mark@codesourcery.com> 3765 3766 * class.c (build_ctor_vtbl_group): Set inits. 3767 * optimize.c (maybe_clone_body): Set DECL_INLINE and 3768 DECL_THIS_INLINE appropriately for clones. 3769 3770 * cp-tree.h (IDENTIFIER_TYPENAME_P): Use a flag, not strncmp. 3771 (DECL_CONV_FN_P): Simplify. 3772 (DECL_OPERATOR): Remove. 3773 (language_to_string): Declare. 3774 * decl.c (duplicate_decls): Fix typo in comment. 3775 (grokdeclarator): Adjust use of IDENTIFIER_TYPENAME_P. 3776 (grok_op_properties): Use DECL_CONV_FN_P instead of 3777 IDENTIFIER_TYPENAME_P. 3778 * dump.c (dequeue_and_dump): Dump the language linkage of 3779 declarations. 3780 * error.c (language_to_string): Give it external linkage. 3781 * method.c (build_typename_overload): Set IDENTIFIER_TYPENAME_P. 3782 (implicitly_declare_fn): Set DECL_LANGUAGE. 3783 * pt.c (check_explicit_specialization): Use DECL_CONV_FN_P, not 3784 IDENTIFIER_TYPENAME_P. 3785 (tsubst_decl): Likewise. 3786 (tsubst_copy): Adjust use of IDENTIFIER_TYPENAME_P. 3787 * semantics.c (finish_member_declaration): Don't mark members of 3788 classes declared in an extern "C" region as extern "C". 3789 37902000-05-22 Martin v. Löwis <loewis@informatik.hu-berlin.de> 3791 3792 * decl2.c (qualified_lookup_using_namespace): Look through 3793 namespace aliases. 3794 3795 * decl.c (push_using_decl): Return the old decl on namespace level. 3796 37972000-05-21 Mark Mitchell <mark@codesourcery.com> 3798 3799 * cp-tree.h (SET_BINFO_NEW_VTABLE_MARKED): Add sanity checks. 3800 (VTT_NAME_PREFIX): New macro. 3801 (CTOR_VTBL_NAME_PREFIX): Likewise. 3802 (get_ctor_vtbl_name): New function. 3803 * class.c (get_vtable_name): Simplify. 3804 (get_vtt_name): New function. 3805 (get_vtable_decl): Don't set IDENTIFIER_GLOBAL_VALUE. 3806 (dfs_mark_primary_bases): Update the CLASSTYPE_VBASECLASSES list 3807 when a virtual base becomes primary. 3808 (finish_struct_1): Set CLASSTYPE_VFIELDS a little earlier. Build 3809 VTTs. 3810 (finish_vtbls): Adjust calls to accumulate_vtbl_inits to pass in 3811 additional parameters. 3812 (dfs_finish_vtbls): Don't clear BINFO_NEW_VTABLE_MARKED. 3813 (initialize_array): New function. 3814 (build_vtt): Likewise. 3815 (build_vtt_inits): Likewise. 3816 (dfs_build_vtt_inits): Likewise. 3817 (dfs_fixup_binfo_vtbls): Likewise. 3818 (build_ctor_vtbl_group): Likewise. 3819 (initialize_vtable): Use initialize_array. 3820 (accumulate_vtbl_inits): Reimplement to handle construction 3821 vtables. 3822 (dfs_accumulate_vtbl_inits): Likewise. 3823 (bulid_vtbl_initializer): Adjust parameter name. 3824 * method.c (build_typename_overload): Remove #if 0'd code. 3825 (get_ctor_vtbl_name): New function. 3826 * search.c (dfs_walk_real): Use BINFO_N_BASETYPES. 3827 (init_vbase_pointers): Don't mess with the TREE_CHAIN of a binfo. 3828 3829 * cp-tree.h (struct lang_type): Remove search_slot. 3830 (CLASSTYPE_SEARCH_SLOT): Remove. 3831 (emit_base_init): Change prototype. 3832 (initialize_vtbl_ptrs): Likewise. 3833 (expand_indirect_vtbls_init): Likewise. 3834 (clear_search_slots): Remove. 3835 * decl.c (lang_mark_tree): Don't mark search_slot. 3836 * init.c (initialize_vtbl_ptrs): Simplify. 3837 (emit_base_init): Likewise. 3838 * search.c (struct vbase_info): Document decl_ptr. 3839 (convert_pointer_to_single_level): Remove. 3840 (dfs_find_vbases): Remove. 3841 (dfs_init_base_pointers): Simplify. 3842 (dfs_clear_vbase_slots): Remove. 3843 (dfs_vtable_path_unmark): New function. 3844 (init_vbase_pointers): Simplify. 3845 (expand_upcast_fixups): Don't rely on CLASSTYPE_SEARCH_SLOT. 3846 (expand_indirect_vtbls_init): Simplify. Don't call 3847 mark_all_temps_used. 3848 * semantics.c (setup_vtbl_ptr): Adjust calls to emit_base_init and 3849 initialize_vtbl_ptrs. 3850 38512000-05-20 Zack Weinberg <zack@wolery.cumb.org> 3852 3853 * except.c: Add static prototypes. 3854 38552000-05-20 H.J. Lu <hjl@gnu.org> 3856 3857 * Make-lang.in (cplib2.ready): Also depend on cc1plus$(exeext). 3858 38592000-05-19 Mark Mitchell <mark@codesourcery.com> 3860 3861 Don't create a separate copy of virtual bases for the 3862 CLASSTYPE_VBASECLASSES list. 3863 * cp-tree.h (CLASSTYPE_VBASECLASSES): Change documentation. 3864 (BINFO_FOR_VBASE): Remove. 3865 (CANONICAL_BINFO): Adjust. 3866 (binfo_for_vbase): New function. 3867 * class.c (build_vbase_pointer_fields): Use binfo_for_vbase 3868 instead of BINFO_FOR_VBASE. 3869 (build_vbase_pointer): Likewise. 3870 (build_secondary_vtable): Likewise. 3871 (dfs_mark_primary_bases): Likewise. 3872 (mark_primary_bases): Likewise. 3873 (layout_nonempty_base_or_field): Likewise. 3874 (dfs_set_offset_for_shared_vbases): Likewise. 3875 (dfs_set_offset_for_unshared_vbases): Likewise. 3876 (layout_virtual_bases): Likewise. Adjust for changes to the 3877 CLASSTYPE_VBASECLASSES list. 3878 (dump_class_hierarchy_r): Use binfo_for_vbase 3879 instead of BINFO_FOR_VBASE. 3880 (dump_class_hierarchy): Likewise. 3881 (finish_vtbls): Likewise. 3882 (build_vtbl_initializer): Adjust for changes to the 3883 CLASSTYPE_VBASECLASSES list. 3884 (build_vbase_offset_vtbl_entries): Use binfo_for_vbase. 3885 * decl.c (finish_destructor_body): Adjust for changes to the 3886 CLASSTYPE_VBASECLASSES list. 3887 * init.c (sort_base_init): Use binfo_for_vbase. 3888 (construct_virtual_bases): Adjust for changes to the 3889 CLASSTYPE_VBASECLASSES list. 3890 (expand_member_init): Use binfo_for_vbase. 3891 (build_vbase_delete): Adjust for changes to the 3892 CLASSTYPE_VBASECLASSES list. 3893 * method.c (do_build_copy_constructor): Likewise. 3894 * rtti.c (get_base_offset): Use binfo_for_vbase. 3895 (expand_class_desc): Remove #if 0'd code. 3896 * search.c (struct vbase_info): Remove vbase_types. 3897 (get_base_distance): Use binfo_for_vbase. 3898 (lookup_field_queue_p): Use CANONICAL_BINFO. 3899 (get_shared_vbase_if_not_primary): Use binfo_for_vbase. 3900 (get_pure_virtuals): Adjust for changes to the 3901 CLASSTYPE_VBASECLASSES list. 3902 (dfs_find_vbases): Use binfo_for_vbase. 3903 (dfs_init_vbase_pointers): Likewise. 3904 (init_vbase_pointers): Don't initialize vi.vbase_types. 3905 (virtual_context): Use binfo_for_vbase. 3906 (fixup_all_virtual_upcast_offsets): Adjust for changes to the 3907 CLASSTYPE_VBASECLASSES list. 3908 (expand_indirect_vtbls_init): Simplify. 3909 (dfs_get_vbase_types): Don't replicate virtual bases. 3910 (find_vbase_instance): Use binfo_for_vbase. 3911 (binfo_for_vbase): New function. 3912 * typeck.c (get_delta_difference): Use binfo_for_vbase. 3913 39142000-05-17 Mark Mitchell <mark@codesourcery.com> 3915 3916 * decl2.c (finish_anon_union): Generalize error messages to handle 3917 anonymous structures. 3918 * init.c (perform_member_init): Remove `name' parameter. 3919 (build_field_list): New function. 3920 (sort_member_init): Handle anonymous union initialization order 3921 correctly. Check for multiple initializations of the same union. 3922 (emit_base_init): Don't look up fields by name here. 3923 (expand_member_init): Record the result of name lookup for future 3924 reference. 3925 * typeck.c (build_component_ref): Fix formatting. 3926 39272000-05-17 Andrew Cagney <cagney@b1.cygnus.com> 3928 3929 * decl.c (pop_label): Replace warn_unused with warn_unused_label. 3930 * typeck.c (build_x_compound_expr): Replace warn_unused with 3931 warn_unused_value. 3932 3933 * decl2.c (lang_decode_option): Update -Wall unused flags by 3934 calling set_Wunused. 3935 39362000-05-16 Mark Mitchell <mark@codesourcery.com> 3937 3938 * cp-treeh (BINFO_NEW_VTABLE_MARKED): Update documentation. 3939 * init.c (dfs_vtable_path_unmark): Remove. 3940 * search.c (marked_new_vtable_p): Likewise. 3941 (unmarked_new_vtable_p): Likewise. 3942 (dfs_search_slot_nonempty_p): Likewise. 3943 (dfs_mark): Likewise. 3944 (dfs_vtable_path_unmark): Likewise. 3945 (dfs_find_vbases): Don't set BINFO_NEW_VTABLE_MARKED. 3946 (dfs_int_vbase_pointers): Don't clear BINFO_VTABLE_PATH_MARKED. 3947 (dfs_init_vbase_pointers): Remove special-case new ABI code. 3948 (dfs_clear_vbase_slots): Don't clear BINFO_NEW_VTABLE_MARKED. 3949 (init_vbase_pointers): Simplify. 3950 (expand_indirect_vtbls_init): Likewise. 3951 3952 * class.c (copy_virtuals): New function. 3953 (build_primary_table): Use it. 3954 (build_secondary_vtable): Likewise. 3955 (modify_vtable_entry): Use NULL_TREE, not integer_zero_node, to 3956 indicate that no vcall offset is required. 3957 (add_virtual_function): Likewise. 3958 (modify_all_vtables): Likewise. 3959 (dfs_finish_vtbls): Adjust call to build_vtbl_initializer. 3960 (dfs_accumulate_vtbl_inits): Likewise. 3961 (build_vtbl_initializer): Make changes to handle construction 3962 vtables. 3963 (dfs_build_vcall_offset_vtbl_entries): Likewise. 3964 (build_rtti_vtbl_entries): Likewise. 3965 (build_vtable_entries): Handle a NULL vcall_index. 3966 39672000-05-15 Gabriel Dos Reis <gdr@codesourcery.com> 3968 3969 * decl2.c (lang_decode_option): Fix thinko. 3970 39712000-05-14 Jason Merrill <jason@casey.cygnus.com> 3972 3973 * except.c (check_handlers): New fn. 3974 * cp-tree.h: Declare it. 3975 * semantics.c (finish_handler_sequence): Call it. 3976 (finish_function_handler_sequence): Likewise. 3977 (finish_handler_parms): Set TREE_TYPE on the handler. 3978 * cp-tree.h (PUBLICLY_UNIQUELY_DERIVED_P): New macro. 3979 * search.c (get_base_distance_recursive): If protect>1, ignore 3980 special access. 3981 (get_base_distance): Don't reduce watch_access. 3982 39832000-05-13 Gabriel Dos Reis <gdr@codesourcery.com> 3984 3985 * lex.c: #include diagnostic.h. 3986 (lang_init_options): Set default prefixing rules. 3987 3988 * lang-options.h: Add -fdiagnostics-show-location=. 3989 3990 * decl2.c: #include diagnostic.h. 3991 (lang_decode_option): Handle -fdiagnostics-show-location=. 3992 39932000-05-12 Nathan Sidwell <nathan@codesourcery.com> 3994 3995 * tinfo.cc: Revert my 2000-05-08 and 2000-05-07 changes. 3996 * vec.cc: Revert my 2000-05-07 change. 3997 39982000-05-11 Jason Merrill <jason@casey.cygnus.com> 3999 4000 * class.c (check_field_decls): Complain about non-static data 4001 members with same name as class in class with constructor. 4002 40032000-05-10 Jason Merrill <jason@casey.cygnus.com> 4004 4005 * decl.c (grokdeclarator): Allow non-static data members with 4006 same name as class. 4007 40082000-05-09 Zack Weinberg <zack@wolery.cumb.org> 4009 4010 * cp-tree.h: Constify tree_srcloc.filename, tinst_level.file, 4011 and pending_inline.filename. Update prototypes. 4012 * decl.c (define_label): Constify filename parameter. 4013 * decl2.c (warn_if_unknown_interface): Constify local char *. 4014 * input.c Constify input_source.filename. Don't declare 4015 input_filename or lineno. Constify filename parameter to feed_input. 4016 * lex.c (init_parse): Constify parameter and return value. 4017 (cp_pragma_interface, cp_pragma_implementation): Constify 4018 filename argument. 4019 (reinit_parse_for_method, reinit_parse_for_block, 4020 reinit_parse_for_expr, feed_defarg, handle_cp_pragma): 4021 Constify local char *. 4022 * pt.c: Don't declare lineno or input_filename. 4023 (print_template_context, tsubst_friend_function, tsubst_decl, 4024 tsubst, instantiate_decl): Constify local char *. 4025 * semantics.c (expand_body): Constify local char *. 4026 * tree.c (build_srcloc): Constify filename parameter. 4027 * typeck.c (c_expand_asm_operands): Constify filename 4028 parameter. 4029 40302000-05-08 Nathan Sidwell <nathan@codesourcery.com> 4031 4032 * tinfo.cc (__dynamic_cast): Use a reinterpret_cast. Fix 4033 offsetof expansion. 4034 40352000-05-08 Branko Cibej <branko.cibej@hermes.si> 4036 4037 * inc/cxxabi.h: Fix typos in comment. 4038 (__base_class_info::__offset): Use a static_cast. 4039 40402000-05-07 Nathan Sidwell <nathan@codesourcery.com> 4041 4042 * inc/cxxabi.h: Use __SIZE_TYPE_ and __PTRDIFF_TYPE__ in place 4043 of std::size_t and std::ptrdiff_t respectively. 4044 * tinfo.cc: Likewise. 4045 * vec.cc: Likewise. 4046 40472000-05-06 Richard Henderson <rth@cygnus.com> 4048 4049 * typeck.c (build_c_cast): Don't warn integer->pointer size 4050 mismatch for constants. 4051 40522000-05-06 Nathan Sidwell <nathan@codesourcery.com> 4053 4054 * rtti.c (ptmd_initializer): Set non-public, if class is 4055 incomplete. 4056 4057 * inc/cxxabi.h (__dynamic_cast): Explicitly say extern "C++". 4058 (__cxa_vec_new, __cxa_vec_ctor, __cxa_vec_dtor, 4059 __cxa_vec_delete): Likewise. 4060 * tinfo.cc (__dynamic_cast): Likewise. 4061 * vec.cc (__cxa_vec_new, __cxa_vec_ctor, __cxa_vec_dtor, 4062 __cxa_vec_delete): Likewise. 4063 40642000-05-04 Mark Mitchell <mark@codesourcery.com> 4065 4066 * cp-tree.h (DELTA_FROM_VTABLE_ENTRY): Remove. 4067 (SET_FNADDR_FROM_VTABLE_ENTRY): Likewise. 4068 (lang_decl_flags): Add vcall_offset. 4069 (THUNK_VCALL_OFFSET): Use it. 4070 * decl.c (lang_mark_tree): Don't mark DECL_ACCESS for a thunk. 4071 * method.c (make_thunk): Create the lang_decl here, not in 4072 emit_thunk. 4073 (emit_thunk): Make generic thunks into ordinary functions once 4074 they have been fed to expand_body. 4075 * semantics.c (expand_body): Set current_function_is_thunk here. 4076 40772000-05-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 4078 4079 * class.c (update_vtable_entry_for_fn): Prototype. 4080 4081 * pt.c (tsubst_decl): Initialize variables `argvec', `gen_tmpl' 4082 and `tmpl'. 4083 4084 * search.c (dfs_build_inheritance_graph_order): Prototype. 4085 40862000-05-04 Mark Mitchell <mark@codesourcery.com> 4087 4088 * cp-tree.h (special_function_kind): Add various kinds of 4089 destructors. 4090 (special_function_p): New function. 4091 * class.c (overrides): Don't let one kind of destructor override 4092 another. 4093 * decl2.c (mark_used): Use DECL_NON_THUNK_FUNCTION_P when deciding 4094 whether or not to instantiate a template. 4095 * tree.c (special_function_p): Define. 4096 40972000-05-03 Mark Mitchell <mark@codesourcery.com> 4098 4099 * cp-tree.def (THUNK_DECL): Remove. 4100 * cp-tree.h (DECL_THUNK_P): New macro. 4101 (DECL_NON_THUNK_FUNCTION_P): Likewise. 4102 (DECL_EXTERN_C_FUNCTION_P): Likewise. 4103 (SET_DECL_THUNK_P): Likewise. 4104 (DELTA_FROM_VTABLE_ENTRY): Use DECL_THUNK_P. 4105 (FNADDR_FROM_VTABLE_ENTRY): Likewise. 4106 (DECL_MAIN_P): Use DECL_EXTERN_C_FUNCTION_P. 4107 * decl.c (decls_match): Use DECL_EXTERN_C_P. 4108 (duplicate_decls): Likewise. 4109 (pushdecl): Likewise. Adjust thunk handling. 4110 (grokfndecl): Use DECL_EXTERN_C_P. 4111 * decl2.c (mark_vtable_entries): Use DECL_THUNK_P. 4112 * dump.c (dequeue_and_dump): Remove THUNK_DECL handling. 4113 * except.c (nothrow_libfn_p): Use DECL_EXTERN_C_P. 4114 * expr.c (cplus_expand_expr): Remove THUNK_DECL handling. 4115 * method.c (make_thunk): Use SET_DECL_THUNK_P. Set 4116 DECL_NO_STATIC_CHAIN. 4117 (emit_thunk): Don't play games with TREE_CODE on thunks. Don't 4118 set DECL_DESTRUCTOR_P or DECL_CONSTRUCTOR_P on a thunk. 4119 * search.c (covariant_return_p): Remove THUNK_DECL handling. 4120 * ir.texi: Update. 4121 41222000-05-01 Jason Merrill <jason@casey.cygnus.com> 4123 4124 * tree.c (walk_tree): Set lineno. 4125 41262000-05-01 Mark Mitchell <mark@codesourcery.com> 4127 4128 * exception.cc: Update license notice. 4129 * new.cc: Likewise. 4130 * new1.cc: Likewise. 4131 * new2.cc: Likewise. 4132 * tinfo.cc: Likewise. 4133 * tinfo2.cc: Likewise. 4134 * vec.cc: Likewise. 4135 * inc/cxxabi.h: Likewise. 4136 * inc/exception: Likewise. 4137 * inc/new: Likewise. 4138 * inc/new.h: Likewise. 4139 * inc/typeinfo: Likewise. 4140 41412000-05-01 Jason Merrill <jason@casey.cygnus.com> 4142 4143 * tree.c (build_target_expr_with_type): If we already have a 4144 TARGET_EXPR, just return it. 4145 4146 * optimize.c (initialize_inlined_parameters): Don't generate an 4147 EXPR_STMT if we can just use DECL_INITIAL. 4148 * decl.c (emit_local_var): Only make the initialization a 4149 full-expression if stmts_are_full_exprs_p. 4150 41512000-05-01 Mark Mitchell <mark@codesourcery.com> 4152 4153 * cp-tree.h (same_type_ignoring_top_level_qualifiers_p): New 4154 macro. 4155 * call.c (standard_conversion): Use it. 4156 (direct_reference_binding): Likewise. 4157 (build_over_call): Likewise. 4158 (is_properly_derived_from): Likewise. 4159 (compare_ics): Likewise. 4160 * class.c (resolves_to_fixed_type_p): Likewise. 4161 * optimize.c (declare_return_variable): Likewise. 4162 * pt.c (is_specialization_of): Likewise. 4163 (unify): Likewise. 4164 * typeck.c (comp_target_parms): Likeiwse. 4165 (build_static_cast): Likewise. 4166 (build_reinterpret_cast): Likewise. 4167 (build_const_cast): Likewise. 4168 (comp_ptr_ttypes_real): Likewise. 4169 (comp_ptr_ttypes_const): Likewise. 4170 * typeck2.c (process_init_constructor): Likewise. 4171 41722000-04-30 Scott Snyder <snyder@fnal.gov> 4173 4174 * decl.c (finish_destructor_body): Use the base destructor when 4175 destroying virtual bases. 4176 41772000-04-30 Mark Mitchell <mark@codesourcery.com> 4178 4179 * expr.c (cplus_expand_expr): Preserve temporaries when expanding 4180 STMT_EXPRs. 4181 * optimize.c (struct inline_data): Add target_exprs field. 4182 (declare_return_variable): When a function returns an aggregate, 4183 use the variable declared in the TARGET_EXPR as the remapped 4184 DECL_RESULT. 4185 (expand_call_inline): Update the pending target_exprs stack. 4186 (optimize_function): Initialize the stack. 4187 4188 * decl2.c (finish_file): Fix typo in comment. 4189 4190 * method.c (emit_thunk): Don't try to return a `void' value. 4191 4192 * optimize.c (initialize_inlined_parameters): If the parameter is 4193 addressable, we need to make a new VAR_DECL, even if the 4194 initializer is constant. 4195 41962000-04-28 Cosmin Truta <cosmint@cs.ubbcluj.ro> 4197 4198 * decl.c (grok_op_properties): Add an extra check of argtypes. 4199 42002000-04-27 Mark Mitchell <mark@codesourcery.com> 4201 4202 * optimize.c (copy_body_r): Use STRIP_TYPE_NOPS when copying 4203 variables. 4204 (initialize_inlined_parameters): Try to avoid creating new 4205 VAR_DECLs. 4206 42072000-04-27 Alex Samuel <samuel@codesourcery.com> 4208 4209 * lex.c (my_get_run_time): Remove. 4210 (init_filename_times): Use get_run_time instead of my_get_run_time. 4211 (check_newline): Likewise. 4212 (dump_time_statistics): Likewise. 4213 * decl2.c (finish_file): Push and pop timevar TV_VARCONST instead 4214 of computing elapsed time explicitly. 4215 42162000-04-26 Mark Mitchell <mark@codesourcery.com> 4217 4218 * cp-tree.h (TREE_READONLY_DECL_P): Use DECL_P. 4219 * init.c (decl_constant_value): Check TREE_READONLY_DECL_P. 4220 * call.c (convert_like_real): Don't test TREE_READONLY_DECL_P 4221 before calling decl_constant_value. 4222 * class.c (check_bitfield_decl): Likewise. 4223 * cvt.c (ocp_convert): Likewise. 4224 (convert): Likewise. 4225 * decl.c (compute_array_index_type): Likewise. 4226 (build_enumerator): Likewise. 4227 * decl2.c (check_cp_case_value): Likewise. 4228 * pt.c (convert_nontype_argument): Likewise. 4229 (tsubst): Likewise. 4230 * typeck.c (decay_conversion): Likewise. 4231 (build_compound_expr): Likewise. 4232 (build_reinterpret_cast): Likewise. 4233 (build_c_cast): Likewise. 4234 (convert_for_assignment): Likewise. 4235 42362000-04-26 Jason Merrill <jason@casey.cygnus.com> 4237 4238 * decl.c (finish_function): Don't play games with DECL_INLINE. 4239 42402000-04-25 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr> 4241 4242 * ir.texi: Correct typo. 4243 42442000-04-25 Martin v. Löwis <loewis@informatik.hu-berlin.de> 4245 4246 * decl.c (grokdeclarator): Reject VLAs as members. 4247 42482000-04-24 Gabriel Dos Reis <gdr@codesourcery.com> 4249 4250 * call.c (standard_conversion): Accept conversion between 4251 COMPLEX_TYPEs. 4252 4253 * cvt.c (ocp_convert): Handle conversion to COMPLEX_TYPE. 4254 42552000-04-24 Zack Weinberg <zack@wolery.cumb.org> 4256 4257 * decl2.c (finish_file): Remove double setup for accounting 4258 compile time. 4259 42602000-04-24 Robert Lipe <robertlipe@usa.net> 4261 4262 * cp-tree.h (lang_type): Member `language' now ENUM_BITFIELD. 4263 42642000-04-23 Benjamin Kosnik <bkoz@cygnus.com> 4265 4266 * new.cc (set_new_handler): Needs to be in std::. 4267 42682000-04-23 Mark Mitchell <mark@codesourcery.com> 4269 4270 * cp-tree.h (lang_decl): Remove pretty_function_p. 4271 (DECL_PRETTY_FUNCTION_P): Use TREE_LANG_FLAG_0, not a bit in the 4272 language-specific node. 4273 * decl.c (cp_make_fname_decl): Use build_decl, not 4274 build_lang_decl, to build the variables. 4275 (grokvardecl): Don't call build_lang_decl for local variables in 4276 templates. 4277 (grokdeclarator): Don't call build_lang_decl for local type 4278 declarations in templates. 4279 * lex.c (retrofit_lang_decl): Use ggc_alloc_obj to allocated 4280 zero'd memory, rather than calling memset. 4281 * pt.c: Include hashtab.h. 4282 (local_specializations): New variable. 4283 (retrieve_local_specialization): Use it. 4284 (register_local_specialization): Likewise. 4285 (tsubst_decl): Don't assume local variables have 4286 DECL_LANG_SPECIFIC. 4287 (instantiate_decl): Set up local_specializations. 4288 * Makefile.in (HTAB_H): New variable. 4289 42902000-04-23 Richard Henderson <rth@cygnus.com> 4291 4292 * typeck.c (c_expand_asm_operands): Restore the original 4293 contents of the output list. 4294 42952000-04-22 Gabriel Dos Reis <gdr@codesourcery.com> 4296 4297 * ir.texi: Document complex number representation. 4298 42992000-04-20 Nathan Sidwell <nathan@codesourcery.com> 4300 4301 * rtti.c (init_rtti_processing): Set tinfo_var_id in new-abi. 4302 (target_incomplete_p): New function. 4303 (tinfo_base_init): Create comdat NTBS name variable. 4304 (ptr_initializer): Add non_public parameter. Calculate it. 4305 (ptmd_initializer): Likewise. 4306 (synthesize_tinfo_var): Adjust. Emit incomplete class tinfo. 4307 (create_real_tinfo_var): Add non_public parameter. Use it. 4308 Push proxy into global namespace. 4309 * inc/cxxabi.h (__pointer_type_info::incomplete_class_mask): 4310 New enumeration. 4311 * inc/typeinfo (type_info::before, type_info::operator==): 4312 Compare __name addresses. 4313 4314 * tinfo2.cc: Remove new-abi builtins comment. 4315 43162000-04-20 Jason Merrill <jason@casey.cygnus.com> 4317 4318 * typeck.c (build_x_function_call): Resolve an OFFSET_REF. 4319 4320 * call.c (joust): Exit early if we get the same function, too. 4321 4322 * decl2.c (key_method): Return NULL_TREE for template classes. 4323 (import_export_class): Don't need to check for template classes. 4324 43252000-04-18 Zack Weinberg <zack@wolery.cumb.org> 4326 4327 * lex.c: Remove references to cccp.c. 4328 43292000-04-18 Mark Mitchell <mark@codesourcery.com> 4330 4331 * cp-tree.h (lang_decl_flags): Remove const_memfunc and 4332 volatile_memfunc. Add destructor_attr. Adjust dummy. 4333 (DECL_DESTRUCTOR_P): Use destructor_attr. 4334 (DECL_CONST_MEMFUNC_P): Reimplement. 4335 (DECL_VOLATILE_MEMFUNC_P): Remove. 4336 * class.c (finish_struct_methods): Use CLASSTYPE_DESTRUCTORS. 4337 (overrides): Use DECL_DESTRUCTOR_P. 4338 (check_for_override): Likewise. 4339 * decl.c (start_function): Likewise. 4340 * decl2.c (grokfclassfn): Likewise. 4341 (check_classfn): Likewise. 4342 (grok_function_init): Likewise. 4343 43442000-04-17 Mark Mitchell <mark@codesourcery.com> 4345 4346 * decl2.c (grokfield): Issue error on illegal data member 4347 declaration. 4348 43492000-04-17 Mark P Mitchell <mark@codesourcery.com> 4350 4351 * method.c (make_thunk): Set DECL_CONTEXT for a THUNK_DECL. 4352 43532000-04-16 Mark Mitchell <mark@codesourcery.com> 4354 4355 * class.c (build_vtable_entry): Don't build thunks for type-info 4356 functions. 4357 43582000-04-16 Jason Merrill <jason@casey.cygnus.com> 4359 4360 * decl.c (decls_match): Allow a redeclaration of a builtin to 4361 specify args while the builtin did not. 4362 43632000-04-15 Mark Mitchell <mark@codesourcery.com> 4364 4365 * cp-tree.def (THUNK_DECL): Add to documentation. 4366 * cp-tree.h (flag_huge_objects): Declare. 4367 * class.c (modify_vtable_entry): Tidy. 4368 (update_vtable_entry_for_fn): Split out from dfs_modify_vtables. 4369 Calculate delta appropriately for the new ABI. 4370 (dfs_modify_vtables): Use it. 4371 (modify_all_vtables): Fix thinko in code to add overriding copies 4372 of functions to primary vtables. 4373 (build_clone): Fix typo in comment. 4374 (clone_function_decl): Correct order of destructors in vtable. 4375 (build_vbase_offset_vtbl_entries): Adjust comment. 4376 (dfs_vcall_offset_queue_p): Remove. 4377 (dfs_build_vcall_offset_vtbl_entries): Update BV_VCALL_INDEX. 4378 (build_vcall_offset_vtbl_entries): Juse use dfs_skip_vbases. 4379 (build_vtable_entry): Correct check for pure virtual functions. 4380 Don't declare flag_huge_objects. 4381 * decl.c (flag_huge_objects): Remove declaration. 4382 * method.c (make_thunk): Tweak mangling for vcall offset thunks. 4383 Use int_size_in_bytes. 4384 (emit_thunk): Handle vcall offset thunks. 4385 43862000-04-15 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 4387 4388 * decl2.c (parse_time, varconst_time): Delete declarations. 4389 (finish_file): Delete LINENO declaration. 4390 START_TIME and THIS_TIME now long. 4391 43922000-04-13 Nathan Sidwell <nathan@codesourcery.com> 4393 4394 * class.c (build_base_field): Reformat comment. 4395 4396 * inc/cxxabi.h (stddef.h): Comment inclusion. 4397 (__base_class_info::__offset): Comment shift. 4398 43992000-04-12 Mark Mitchell <mark@codesourcery.com> 4400 4401 * cp-tree.h (IDENTIFIER_CTOR_OR_DTOR_P): New macro. 4402 (cp_tree_index): Add CPTI_PUSH_EXCEPTION_IDENTIFIER. 4403 (cp_push_exception_identifier): New macro. 4404 (DECL_COMPLETE_DESTRUCTOR_P): New macro. 4405 (DECL_BASE_DESTRUCTOR_P): Likewise. 4406 (DECL_DELETING_DESTRUCTOR_P): Likewise. 4407 (get_vtbl_decl_for_binfo): Fix formatting. 4408 (in_charge_arg_for_name): New macro. 4409 (maybe_build_cleanup_and_delete): Remove declaration. 4410 * call.c (build_field_call): Use IDENTIFIER_CTOR_OR_DTOR_P. 4411 (in_charge_arg_for_name): New function. 4412 (build_new_method_call): Use it. Handle cloned destructors. 4413 (build_clone): Don't make the base constructor virtual. 4414 Automatically defer generated functions. 4415 (clone_function_decl): Handle destructors, too. 4416 (clone_constructors_and_destructors): Likewise. 4417 (create_vtable_ptr): Don't create a vtable entry for a cloned 4418 function. 4419 * decl.c (predefined_identifier): Add ctor_or_dtor_p. 4420 (initialize_predefined_identifiers): Update appropriately. 4421 (finish_destructor_body): Simplify. 4422 (maybe_build_cleanup_and_delete): Remove. 4423 * except.c (expand_throw): Handle new-ABI destructors. 4424 * init.c (expand_cleanup_for_base): Use base_dtor_identifier. 4425 (build_dtor_call): New function. 4426 (build_delete): Use it. Simplify. 4427 * optimize.c (maybe_clone_body): Handle destructors. 4428 * search.c (lookup_field_queue_p): Use IDENTIFIER_CTOR_OR_DTOR_P. 4429 4430 * exception.cc (cleanup_fn): New typedef. 4431 (CALL_CLEANUP): New macro. 4432 (cp_eh_info): Use them. 4433 (__cp_push_exception): Likewise. 4434 (__cp_pop_exception): Likewise. 4435 44362000-04-11 Mark Mitchell <mark@codesourcery.com> 4437 4438 * cp-tree.h (cp_tree_index): Add CPTI_DTOR_IDENTIFIER. 4439 (complete_dtor_identifier): New macro. 4440 (CLASSTYPE_FIRST_CONVERSION): Remove. 4441 (CLASSTYPE_CONSTRUCTOR_SLOT): New macro. 4442 (CLASSTYPE_DESTRUCTOR_SLOT): Likewise. 4443 (CLASSTYPE_FIRST_CONVERSION_SLOT): Likewise. 4444 (CLASSTYPE_CONSTRUCTORS): Likewise. 4445 (CLASSTYPE_DESTRUCTORS): Likewise. 4446 (lang_decl): Add cloned_function. 4447 (DECL_COMPLETE_CONSTRUCTOR_P): New macro. 4448 (DECL_BASE_CONSTRUCTOR_P): Likewise. 4449 (DECL_MAYBE_IN_CHARGE_CONSTRUCTOR_P): Likewise. 4450 (DECL_MAYBE_IN_CHARGE_DESTRUCTOR_P): Likewise. 4451 (DECL_CLONED_FUNCTION_P): Likewise. 4452 (DECL_CLONED_FUNCTION): Likewise. 4453 (clone_function_decl): Declare. 4454 (maybe_clone_body): Likewise. 4455 * call.c (build_user_type_conversion_1): Call complete object 4456 constructors in the new ABI. 4457 (build_new_method_call): Don't add in-charge parameters under the 4458 new ABI. 4459 * class.c (add_method): Use DECL_MAYBE_IN_CHARGE_CONSTRUCTOR_P, 4460 DECL_MAYBE_IN_CHARGE_DESTRUCTOR_P, CLASSTYPE_CONSTRUCTOR_SLOT, and 4461 CLASSTYPE_DESTRUCTOR_SLOT. 4462 (build_clone): New function. 4463 (clone_function_decl): Likewise. 4464 (clone_constructors_and_destructors): Likewise. 4465 (check_bases_and_members): Use it. 4466 * decl.c (iniitialize_predefined_identifiers): Initialize 4467 complete_dtor_identifier. 4468 (finish_function): Don't add extra code to a clone. 4469 (lang_mark_tree): Mark cloned_function. 4470 * decl2.c (mark_used): Don't bother trying to instantiate things 4471 we synthesized. 4472 * dump.c (dequeue_and_dump): Don't dump CP_DECL_CONTEXT twice. 4473 * method.c (set_mangled_name_for_decl): Don't treat clones as 4474 constructors. 4475 (synthesize_method): Sythesize cloned functions, not the clones. 4476 * optimize.c (inline_data): Update comment on ret_label. 4477 (remap_block): Don't assume DECL_INITIAL exists. 4478 (copy_body_r): Allow ret_label to be NULL. 4479 (maybe_clone_body): Define. 4480 * pt.c (tsubst_decl): Handle clones. 4481 (instantiate_clone): New function. 4482 (instantiate_template): Use it. 4483 (set_mangled_name_for_template_decl): Don't treat clones as 4484 constructors. 4485 * search.c (lookup_fnfields_1): Use CLASSTYPE_CONSTRUCTOR_SLOT, 4486 CLASSTYPE_DESTRUCTOR_SLOT, and CLASSTYPE_FIRST_CONVERSION_SLOT. 4487 * semantics.c (expand_body): Clone function bodies as necessary. 4488 4489 * optimize.c (remap_decl): Avoid sharing structure for arrays 4490 whose size is only known at run-time. 4491 * tree.c (copy_tree_r): Don't copy PARM_DECLs. 4492 4493 * cp-tree.h (lang_decl_flags): Rename constructor_for_vbase_attr 4494 to has_in_charge_parm_p. 4495 (DECL_CONSTRUCTOR_FOR_VBASE_P): Rename to ... 4496 (DECL_HAS_IN_CHARGE_PARM_P): ... this. 4497 (DECL_COPY_CONSTRUCTOR_P): New macro. 4498 * call.c (add_function_candidate): Use DECL_HAS_IN_CHARGE_PARM_P. 4499 (build_user_type_conversion_1): Likewise. 4500 (convert_like_real): Likewise. 4501 (build_over_call): Likeiwse. Use DECL_COPY_CONSTRUCTOR_P. 4502 * decl.c (grokdeclarator): Use DECL_HAS_IN_CHARGE_PARM_P. 4503 (copy_args_p): Likewise. 4504 (grok_ctor_properties): Likewise. 4505 (start_function): Likewise. 4506 * decl2.c (maybe_retrofit_in_charge): Likewise. Set it. 4507 * error.c (dump_function_decl): Use DECL_HAS_IN_CHARGE_PARM_P. 4508 * init.c (emit_base_init): Use DECL_COPY_CONSTRUCTOR_P. 4509 * method.c (do_build_copy_constructor): Use 4510 DECL_HAS_IN_CHARGE_PARM_P. 4511 (synthesize_method): Likewise. 4512 * pt.c (instantiate_template): Remove goto. 4513 * tree.c (build_cplus_method_type): Remove mention of obstacks in 4514 comment. 4515 4516 * cp-tre.h (finish_function): Change prototype. 4517 * decl.c (end_cleanup_fn): Adjust caller. 4518 (finish_function): Take only one parameter. 4519 * decl2.c (finish_objects): Adjust caller. 4520 (finish_static_storage_duration_function): Likewise. 4521 * method.c (emit_thunk): Likewise. 4522 * parse.y: Likewise. 4523 * parse.c: Regenerated. 4524 * pt.c (instantiate_decl): Likewise. 4525 * rtti.c (synthesize_tinfo_fn): Likewise. 4526 * semantics.c (expand_body): Likewise. 4527 4528 * cp-tree.h (copy_decl): New function. 4529 * class.c (finish_struct_1): Use it. 4530 * lex.c (copy_decl): Define it. 4531 * pt.c (tsubst_decl): Likewise. 4532 * tree.c (copy_template_template_parm): Likewise. 4533 4534 * cp-tree.h (lang_type): Remove has_nonpublic_ctor and 4535 has_nonpublic_assign_ref. 4536 (TYPE_HAS_NONPUBLIC_CTOR): Don't declare. 4537 (TYPE_HAS_NONPUBLIC_ASSIGN_REF): Likewise. 4538 * class.c (finish_struct_methods): Don't set 4539 TYPE_HAS_NONPUBLIC_CTOR or TYPE_HAS_NONPUBLIC_ASSIGN_REF. 4540 (interface_only): Don't declare. 4541 (interface_unknown): Likewise. 4542 45432000-04-11 Martin v. Löwis <loewis@informatik.hu-berlin.de> 4544 4545 * tree.h (HAVE_TEMPLATES): Remove definition. 4546 * lang-options.h (-fthis-is-variable): Remove documentation. 4547 45482000-04-10 Jason Merrill <jason@casey.cygnus.com> 4549 4550 * class.c (instantiate_type): Handle object-relative template-id. 4551 4552 * semantics.c (finish_expr_stmt): Call convert_to_void here. 4553 * decl.c (cplus_expand_expr_stmt): Not here. 4554 4555 * rtti.c (build_dynamic_cast_1): Call non_lvalue. 4556 Initialize exprtype earlier. 4557 4558 * parse.y (fn.def1): Check for defining types in return types. 4559 4560 * decl.c (check_tag_decl): Notice extra fundamental types. 4561 Diagnose empty decls in classes, too. 4562 4563 * decl.c (grokdeclarator): Don't override an anonymous name if no 4564 declarator was given. 4565 4566 * cvt.c (convert_to_void): Call resolve_offset_ref. 4567 4568 * typeck.c (build_x_function_call): Abort if we get an OFFSET_REF. 4569 4570 * decl2.c (decl_namespace): Handle getting a type. 4571 4572 * typeck.c (build_c_cast): Re-enable warning for cast between 4573 pointer and integer of different size. 4574 45752000-04-10 Nathan Sidwell <nathan@codesourcery.com> 4576 4577 * inc/cxxabi.h (__pointer_type_info): Add restrict and 4578 incomplete flags. 4579 (__pointer_type_info::__pointer_catch): New virtual function. 4580 (__pointer_to_member_type_info): Derive from 4581 __pointer_type_info. Adjust. 4582 (__pointer_to_member_type_info::__do_catch): Remove. 4583 (__pointer_to_member_type_info::__is_pointer_p): Declare. 4584 (__pointer_to_member_type_info::__pointer_catch): Declare. 4585 * rtti.c (qualifier_flags): Add restrict flag. 4586 (ptmd_initializer): Reorder members. 4587 (create_tinfo_types): Expand comments. Reorder 4588 ptmd_desc_type_node members. 4589 * tinfo2.cc (__pointer_to_member_type_info::__is_pointer_p): 4590 Implement. 4591 (__pointer_type_info::__do_catch): Move specific code into 4592 __pointer_catch. Call it. 4593 (__pointer_type_info::__pointer_catch): Non-pointer-to-member 4594 specific catch checking. Fix void conversion check. 4595 (__pointer_to_member_type_info::__do_catch): Remove. 4596 (__pointer_to_member_type_info::__pointer_catch): Implement. 4597 45982000-04-10 Martin v. Löwis <loewis@informatik.hu-berlin.de> 4599 4600 * lex.c (init_parse): Remove traces of classof and headof. 4601 * decl2.c (flag_operator_names): Default to 1. 4602 (lang_decode_option): Do not set it for -ansi. 4603 46042000-04-09 Mark Mitchell <mark@codesourcery.com> 4605 4606 * cp-tree.h (struct lang_decl): Remove main_decl_variant. 4607 (DECL_MAIN_VARIANT): Remove. 4608 * decl.c (duplicate_decls): Don't set it. 4609 (start_function): Likewise. 4610 (lang_mark_tree): Don't mark it. 4611 * decl2.c (defer_fn): Don't use it. 4612 * lex.c (retrofit_lang_decl): Don't set it. 4613 * pt.c (tsubst_decl): Likewise. 4614 * ptree.c (print_lang_decl): Don't print it. 4615 * typeck.c (mark_addressable): Don't use it. 4616 46172000-04-09 Nathan Sidwell <nathan@codesourcery.com> 4618 4619 * vec.cc: Include <new> and <exception>. 4620 (__cxa_vec_ctor): Use __cxa_vec_dtor for cleanup. 4621 (__cxa_vec_dtor): Catch dtor exceptions, and rethrow or 4622 terminate. 4623 (__cxa_vec_delete): Catch dtor exceptions. 4624 46252000-04-09 Nathan Sidwell <nathan@codesourcery.com> 4626 4627 Prepend __ to implementation defined names. 4628 * inc/typeinfo (type_info): Rename _name to __name. 4629 (type_info::type_info): Rename parameter. 4630 (type_info::operator==, type_info::operator!=, 4631 type_info::before): Likewise. 4632 (type_info::is_pointer_p, type_info::is_function_p, 4633 type_info::do_catch, type_info::do_upcast): Prepend __. Rename 4634 parameters. 4635 * inc/cxxabi.h 4636 (__fundamental_type_info::__fundamental_type_info) Rename parameters. 4637 (__pointer_type_info::__pointer_type_info): Likewise. 4638 (__pointer_type_info::is_pointer_p, 4639 __pointer_type_info::do_catch): Prepend __. Rename parameters. 4640 (__array_type_info::__array_type_info): Rename parameters. 4641 (__function_type_info::__function_type_info): Likewise. 4642 (__function_type_info::is_function_p): Prepend __. 4643 (__enum_type_info::__enum_type_info): Rename parameters. 4644 (__pointer_to_member_type_info::__pointer_to_member_type_info): 4645 Likewise. 4646 (__pointer_to_member_type_info::do_catch): Prepend __. Rename 4647 parameters. 4648 (__base_class_info::is_virtual_p, is_public_p, offset): Prepend __. 4649 (__class_type_info::__class_type_info): Rename parameters. 4650 (__class_type_info::sub_kind): Prepend __. Adjust member names. 4651 (__class_type_info::upcast_result, 4652 __class_type_info::dyncast_result): Prepend __. Move definition 4653 into tinfo.cc. 4654 (__class_type_info::do_upcast, __class_type_info::do_catch, 4655 __class_type_info::find_public_src, 4656 __class_type_info::do_dyncast, 4657 __class_type_info::do_find_public_src): Prepend __. Rename 4658 parameters. 4659 (__si_class_type_info::__si_class_type_info): Rename parameters. 4660 (__si_class_type_info::do_upcast, __si_class_type_info::do_dyncast, 4661 __si_class_type_info::do_find_public_src): Prepent __. Rename 4662 parameters. 4663 (__vmi_class_type_info::__vmi_class_type_info): Rename parameters. 4664 (__vmi_class_type_info::do_upcast, __vmi_class_type_info::do_dyncast, 4665 __vmi_class_type_info::do_find_public_src): Prepent __. Rename 4666 parameters. 4667 (__dynamic_cast): Rename parameters. 4668 * tinfo.cc (type_info::is_pointer_p, type_info::is_function_p, 4669 type_info::do_catch, type_info::do_upcast): Prepend __. 4670 (contained_p, public_p, virtual_p, contained_public_p, 4671 contained_nonpublic_p, contained_nonvirtual_p): Adjust. 4672 (__class_type_info::do_catch, 4673 __class_type_info::do_upcast): Prepend __. Adjust. 4674 (__class_type_info::__upcast_result, 4675 __class_type_info::__dyncast_result): Move from inc/cxxabi.h. 4676 Adjust. 4677 (__class_type_info::find_public_src): Prepend __. Adjust. 4678 (__class_type_info::do_find_public_src, 4679 __si_class_type_info::do_find_public_src, 4680 __vmi_class_type_info::do_find_public_src): Likewise. 4681 (__class_type_info::do_dyncast, 4682 __si_class_type_info::do_dyncast, 4683 __vmi_class_type_info::do_dyncast): Likewise. 4684 (__class_type_info::do_upcast, 4685 __si_class_type_info::do_upcast, 4686 __vmi_class_type_info::do_upcast): Likewise. 4687 (__dynamic_cast): Adjust. 4688 * tinfo2.cc (__pointer_type_info::is_pointer_p): Prepend __. 4689 (__function_type_info::is_function_p): Likewise. 4690 (__pointer_type_info::do_catch): Likewise. Adjust. 4691 (__pointer_to_member_type_info::do_catch): Likewise. Adjust. 4692 (__throw_type_match_rtti_2): Adjust. 4693 (__is_pointer): Adjust. 4694 46952000-04-08 Mark Mitchell <mark@codesourcery.com> 4696 4697 * cp-tree.h (cp_tree_index): Add CPTI_COMPLETE_CTOR_IDENTIFIER. 4698 (complete_ctor_identifier): New macro. 4699 (special_function_kind): Add sfk_copy_constructor and 4700 sfk_assignment_operator. 4701 (LOOKUP_HAS_IN_CHARGE): Remove. 4702 (cons_up_default_function): Rename to ... 4703 (implicitly_declare_fn): ... this. 4704 * call.c (build_new_method_call): Add in-charge parameters for 4705 constructors here. 4706 * class.c (add_implicitly_declared_members): Change parameter name 4707 from cant_have_assignment to cant_have_const_assignment. 4708 Replace calls to cons_up_default_function to implicitly_declare_fn. 4709 * cvt.c (ocp_convert): Use complete_ctor_identifier. 4710 * decl.c (initialize_predefined_identifiers): Initialize it. 4711 (start_function): Use DECL_CONSTRUCTOR_FOR_VBASE_P instead of 4712 complex expression. 4713 * init.c (expand_default_init): Don't calculate the in-charge 4714 parameter here. 4715 (build_new_1): Likewise. 4716 * lex.c (cons_up_default_function): Move to method.c. 4717 * method.c (synthesize_method): Use DECL_DESTRUCTOR_P. 4718 (implicitly_declare_fn): New function. 4719 * typeck.c (build_static_cast): Use complete_ctor_identifier. 4720 (build_modify_expr): Likewise. 4721 * typeck2.c (build_functional_cast): Likewise. 4722 4723 Under the new ABI, constructors don't return `this'. 4724 * cp-tree.h (warn_reorder): Declare. 4725 (special_function_kind): New enum. 4726 (global_base_init_list): Remove declaration. 4727 (emit_base_init): Don't return a value. 4728 (check_base_init): Don't declare. 4729 (is_aggr_typedef): Likewise. 4730 * decl.c (check_special_function_return_type): New function. 4731 (return_types): Remove. 4732 (grokdeclarator): Use check_special_function_return_type. 4733 (start_function): Don't initialize ctor_label under the new ABI. 4734 (finish_construtor_body): Don't create a corresponding LABEL_STMT. 4735 * init.c (begin_init_stmts): Move to top of file. 4736 (finish_init_stmts): Likewise. 4737 (warn_reorder): Don't declare. 4738 (emit_base_init): Don't create a STMT_EXPR here. Don't return a 4739 value. 4740 (check_base_init): Remove. 4741 (is_aggr_typedef): Likewise. 4742 (build_new_1): Don't use the return value of a constructor. 4743 * semantics.c (setup_vtbl_ptr): Don't use the return value 4744 of emit_base_init. 4745 * typeck.c (check_return_expr): Don't magically convert return 4746 statements into `return this' in constructors under the new ABI. 4747 4748 * cp-tree.h (cp_tree_index): Add CPTI_BASE_CTOR_IDENTIFIER, 4749 CPTI_BASE_DTOR_IDENTIFIER, and CPTI_DELETING_DTOR_IDENTIFIER. 4750 (base_ctor_identifier): New macro. 4751 (base_dtor_identifier): Likewise. 4752 (deleting_dtor_identifier): Likewise. 4753 * decl.c: Don't include obstack.h. 4754 (obstack_chunk_alloc): Don't define. 4755 (obstack_chunk_free): Likewise. 4756 (struct predefined_identifier): New type. 4757 (initialize_predefined_identifiers): New function. 4758 (init_decl_processing): Use it. 4759 (debug_temp_inits): Remove. 4760 (start_method): Don't call preserve_data. 4761 (hack_incomplete_structures): Update comment. 4762 * init.c (init_init_processing): Don't initialize 4763 nelts_identifier. 4764 (build_offset_rf): Remove dead code. 4765 (build_delete): Use CLASSTYPE_N_BASECLASSES. 4766 * search.c (init_search_processing): Don't initialize 4767 vptr_identifier. 4768 47692000-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 4770 4771 * typeck.c (build_binary_op): Call `tree_expr_nonnegative_p' to elide 4772 some sign_compare warnings. 4773 47742000-04-07 Nathan Sidwell <nathan@codesourcery.com> 4775 4776 Rename abi::__vmi_class_type_info members. 4777 * inc/cxxabi.h (__vmi_class_type_info): Rename details, n_bases, 4778 base_list, detail_masks members to vmi_flags, vmi_base_count, 4779 vmi_bases and vmi_flags_masks respectively. 4780 (__vmi_class_type_info::vmi_flags_masks): Rename 4781 details_unknown_mask to flags_unknown_mask. 4782 * tinfo.cc (__class_type_info::do_upcast): Adjust. 4783 (__vmi_class_type_info::do_find_public_src): Adjust. 4784 (__vmi_class_type_info::do_dyncast): Adjust. 4785 (__vmi_class_type_info::do_upcast): Adjust. 4786 47872000-04-07 Nathan Sidwell <nathan@codesourcery.com> 4788 4789 * tinfo.cc (convert_to_base): New function. 4790 (get_vbase_offset): Remove. Move into convert_to_base. 4791 (__vmi_class_type_info::do_find_public_src): Adjust. 4792 (__vmi_class_type_info::do_dyncast): Adjust. 4793 (__vmi_class_type_info::do_upcast): Adjust. 4794 47952000-04-06 Jason Merrill <jason@yorick.cygnus.com> 4796 4797 * tinfo.cc (operator=): Use __builtin_strcmp. 4798 * tinfo2.cc (before): Likewise. 4799 48002000-04-06 Mark Mitchell <mark@codesourcery.com> 4801 4802 * cp-tree.h (lang_decl_flags): Rename saved_inline to deferred. 4803 (DECL_SAVED_INLINE): Rename to ... 4804 (DECL_DEFERRED_FN): ... this. 4805 (in_function_p): Remove declaration. 4806 (mark_inline_for_output): Rename to ... 4807 (defer_fn): ... this. 4808 * decl.c (finish_function): Adjust call to mark_inline_for_output. 4809 (in_function_p): Remove definition. 4810 * decl2.c (saved_inlines): Rename to ... 4811 (deferred_fns): ... this. 4812 (saved_inlines_used): Rename to ... 4813 (deferred_fns_used): ... this. 4814 (mark_inline_for_output): Rename to ... 4815 (defer_fn): ... this. 4816 (finish_file): Adjust accordingly. 4817 (init_decl2): Likewise. 4818 * lex.c (cons_up_default_function): Likewise. 4819 * pt.c (mark_decl_instantiated): Likewise. 4820 (instantiate_decl): Don't set DECL_DEFER_OUTPUT under any 4821 circumstances. 4822 * rtti.c (get_tinfo_decl): Adjust call to mark_inline_for_output. 4823 * semantics.c (expand_body): Defer more functions. 4824 48252000-04-06 Nathan Sidwell <nathan@codesourcery.com> 4826 4827 * vec.cc: New file. 4828 * Make-lang.in (CXX_LIB2FUNCS): Add it. 4829 (vec.o): Build it. 4830 * inc/cxxabi.h (__cxa_vec_new, __cxa_vec_ctor, __cxa_vec_dtor, 4831 __cxa_vec_delete): Declare. 4832 48332000-04-06 Nathan Sidwell <nathan@codesourcery.com> 4834 4835 * rtti.c (dfs_class_hint_mark): New static function. 4836 (dfs_class_hint_unmark): New static function. 4837 (class_hint_flags): Use them. 4838 48392000-04-05 Benjamin Kosnik <bkoz@cygnus.com> 4840 4841 * decl2.c: Make flag_honor_std dependent on ENABLE_STD_NAMESPACE. 4842 48432000-04-05 Mark Mitchell <mark@codesourcery.com> 4844 4845 * cp-tree.h (instantiate_decl): Change prototype. 4846 * decl2.c (mark_used): Adjust call. 4847 * optimize.c (inlinable_function_p): Adjust handling of templates. 4848 * pt.c (do_decl_instantiation): Adjust call to instantiate_decl. 4849 (do_type_instantiation): Likewise. 4850 (instantiate_decl): Defer more templates. 4851 (instantiate_pending_templates): Adjust logic to handle inline 4852 friend functions. 4853 4854 * Makefile.in (GGC_H): New variable. Use it throughout in place 4855 of ggc.h. 4856 4857 * call.c: Don't include obstack.h. Include ggc.h. 4858 (obstack_chunk_alloc): Don't define. 4859 (obstack_chunk_free): Likewise. 4860 (add_candidate): Allocate the z_candidate with ggc_alloc_obj. 4861 * decl.c (push_switch): Use xmalloc to allocate the cp_switch. 4862 (pop_switch): Free it. 4863 4864 * decl2.c (grokclassfn): Set TREE_READONLY for PARM_DECLs. 4865 4866 * dump.c (dequeue_and_dump): Don't try to print the bit_position 4867 if we don't have a DECL_FIELD_OFFSET. 4868 4869Wed Apr 5 15:12:18 MET DST 2000 Jan Hubicka <jh@suse.cz> 4870 4871 * optimize.c (calls_setjmp_r): Use setjmp_call_p instead of 4872 special_function_p. 4873 48742000-04-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 4875 4876 * cfns.gperf (hash, libc_name_p): Prototype. 4877 4878 * rtti.c (build_dynamic_cast_1): Constification. 4879 4880 * search.c (dfs_debug_unmarkedp, dfs_debug_mark): Unhide prototypes. 4881 4882 * semantics.c (deferred_type_access_control): Prototype. 4883 48842000-04-04 Mark Mitchell <mark@codesourcery.com> 4885 4886 Correct many new ABI issues regarding vbase and vcall offset 4887 layout. 4888 * cp-tree.h (BINFO_VTABLE): Document. 4889 (struct lang_type): Tweak formatting. 4890 (BINFO_PRIMARY_BINFO): Add to documentation. 4891 (CLASSTYPE_VSIZE): Fix typo in comment. 4892 (CLASSTYPE_VBASECLASSES): Update documentation. 4893 (BINFO_VBASE_MARKED): Remove. 4894 (SET_BINFO_VBASE_MARKED): Likewise. 4895 (CLEAR_BINFO_VBASE_MARKED): Likewise. 4896 (BINFO_FIELDS_MARKED): Remove. 4897 (SET_BINFO_FIELDS_MARKED): Likewise. 4898 (CLEAR_BINFO_FIELDS_MARKED): Likewise. 4899 (enum access_kind): New enumeration. 4900 (num_extra_vtbl_entries): Remove declaration. 4901 (size_extra_vtbl_entries): Likewise. 4902 (get_vtbl_decl_for_binfo): New function. 4903 (dfs_vbase_unmark): Remove declaration. 4904 (mark_primary_bases): Likewise. 4905 * class.c (SAME_FN): Remove. 4906 (struct vcall_offset_data_s): Move definition. 4907 (build_vbase_pointer): Use `build', not `build_binary_op', to 4908 access the vbase pointer under the new ABI. 4909 (build_vtable_entry_ref): Use get_vtbl_decl_for_binfo. 4910 (build_primary_vtable): Likewise. 4911 (dfs_mark_primary_bases): Move here from search.c. 4912 (mark_primary_bases): Likewise. 4913 (determine_primary_bases): Under the new ABI, don't make a base 4914 class a primary base just because we don't yet have any virtual 4915 functions. 4916 (layout_vtable_decl): Use get_vtbl_decl_for_binfo. 4917 (num_vfun_entries): Remove. 4918 (dfs_count_virtuals): Likewise. 4919 (num_extra_vtbl_entries): Likewise. 4920 (size_extra_vtbl_entries): Likewise. 4921 (layout_virtual_bases): Iterate in inheritance graph order under 4922 the new ABI. 4923 (finish_struct_1): Use TYPE_VFIELD, not CLASSTYPE_VSIZE, to 4924 indicate that a vfield is present. 4925 (init_class_processing): Initialize access_public_node, etc., from 4926 ak_public, etc. 4927 (get_vtbl_decl_for_binfo): New function. 4928 (dump_class_hierarchy_r): Likewise. 4929 (dump_class_hierarchy): Use it. 4930 (finish_vtbls): Build the vtbls in inheritance graph order. 4931 (dfs_finish_vtbls): Adjust call to build_vtbl_initializer. 4932 (initialize_vtable): Use get_vtbl_decl_for_binfo. 4933 (accumulate_vtbl_inits): Add comments explaining why a pre-order 4934 walk is required. 4935 (dfs_accumulate_vtbl_inits): Set BINFO_VTABLE to the location 4936 where the vptr points, even for primary vtables. 4937 (build_vtbl_initializer): Adjust handling of vbase and vcall 4938 offsets. 4939 (build_vcall_and_vbase_vtable_entries): New function. 4940 (dfs_build_vbase_offset_vtbl_entries): Remove. 4941 (build_vbase_offset_vtbl_entries): Reimplement. 4942 (dfs_build_vcall_offset_vtbl_entries): Don't include virtuals that 4943 were already handled in a primary base class vtable. 4944 (build_vcall_offset_vtbl_entries): Adjust. 4945 (build_rtti_vtbl_entries): Adjust. 4946 * decl2.c (output_vtable_inherit): Use get_vtbl_decl_for_binfo. 4947 * init.c (expand_virtual_init): Simplify. 4948 * repo.c (repo_get_id): Use get_vtbl_decl_for_binfo. 4949 * rtti.c (create_pseudo_type_info): Adjust calculation of vptr. 4950 * search.c (BINFO_ACCESS): New macro. 4951 (SET_BINFO_ACCESS): Likewise. 4952 (dfs_access_in_type): Manipulate access_kinds, not access nodes. 4953 (access_in_type): Likewise. 4954 (dfs_accessible_p): Likewise. 4955 (protected_accessible_p): Likewise. 4956 (lookup_fnfields_1): Adjust documentation. 4957 (dfs_mark_primary_bases): Move to class.c 4958 (mark_primary_bases): Likewise. 4959 (dfs_vbase_unmark): Remove. 4960 (virtual_context): Use BINFO_FOR_VBASE. 4961 (dfs_get_vbase_types): Simplify. 4962 (dfs_build_inheritance_graph_order): New function. 4963 (get_vbase_types): Use it. 4964 * tree.c (debug_binfo): Use get_vtbl_decl_for_binfo. 4965 4966 * tinfo.cc (get_vbase_offset): New function. 4967 (__vmi_class_type_info::do_find_public_src): Use it. 4968 (__vmi_class_type_info::do_dyncast): Likewise. 4969 (__vmi_class_type_info::do_upcast): Likewise. 4970 49712000-04-03 Zack Weinberg <zack@wolery.cumb.org> 4972 4973 * lang-specs.h: Pass -fno-show-column to the preprocessor. 4974 49752000-03-30 Nathan Sidwell <nathan@codesourcery.com> 4976 4977 * rtti.c (class_hint_flags): Rename flags. 4978 (class_initializer): Remove flags. 4979 (synthesize_tinfo_var): Combine offset and flags. Add flags 4980 for __vmi_class_type_info. 4981 (create_tinfo_types): Remove flags from __class_type_info and 4982 __si_class_type_info. Merge flags and offset from 4983 base_class_type_info. 4984 * inc/cxxabi.h (__base_class_info): Merge offset and vmi_flags. 4985 (__base_class_info::is_virtual_p): Adjust. 4986 (__base_class_info::is_public_p): Adjust. 4987 (__base_class_info::offset): New accessor. 4988 (__class_type_info::details): Remove member. 4989 (__class_type_info::__class_type_info): Lose details. 4990 (__class_type_info::detail_masks): Remove. 4991 (__si_class_type_info::__si_class_type_info): Lose details. 4992 (__vmi_class_type_info::details): New member. 4993 (__vmi_class_type_info::__vmi_class_type_info): Adjust. 4994 (__vmi_class_type_info::detail_masks): New member. 4995 * tinfo.cc (__class_type_info::do_upcast): Initialize result 4996 with unknown_details_mask. 4997 (__vmi_class_type_info::do_find_public_src): Adjust 4998 (__vmi_class_type_info::do_dyncast): Adjust. 4999 (__vmi_class_type_info::do_upcast): Set result details, if 5000 needed. Adjust. 5001 (__dynamic_cast): Temporarily #if out optimization. 5002 50032000-03-29 Nathan Sidwell <nathan@codesourcery.com> 5004 5005 * rtti.c (get_tinfo_decl): Mark used. 5006 (emit_tinfo_decl): Don't optimize polymorphic type_info. Only 5007 mark as dealt with, if we output it. 5008 50092000-03-28 Mark Mitchell <mark@codesourcery.com> 5010 5011 * class.c: Reorganize to put virtual function table initialization 5012 machinery at the end of the file. 5013 50142000-03-28 Jason Merrill <jason@casey.cygnus.com> 5015 5016 * class.c (finish_struct): Use bitsize_zero_node. 5017 * pt.c (instantiate_class_template): Likewise. 5018 50192000-03-28 Mark Mitchell <mark@codesourcery.com> 5020 5021 Put RTTI entries at negative offsets in new ABI. 5022 * class.c (dfs_build_vbase_offset_vtbl_entries): Put the first 5023 vbase offset at index -3, not -1. 5024 (build_vtabe_offset_vtbl_entries): Use unmarked_vtable_pathp, not 5025 dfs_vtable_path_unmarked_real_bases_queue_p to walk bases. 5026 (dfs_build_vcall_offset_vtbl_entries): Don't use skip_rtti_stuff. 5027 (build_rtti_vtbl_entries): New function. 5028 (set_rtti_entry): Remove. 5029 (build_primary_vtable): Don't use it. 5030 (build_secondary_vtable): Likewise. 5031 (start_vtable): Remove. 5032 (first_vfun_index): New function. 5033 (set_vindex): Likewise. 5034 (add_virtual_function): Don't call start_vtable. Do call 5035 set_vindex. 5036 (set_primary_base): Rename parameter. 5037 (determine_primary_base): Likewise. 5038 (num_vfun_entries): Don't use skip_rtti_stuff. 5039 (num_extra_vtbl_entries): Include RTTI information. 5040 (build_vtbl_initializer): Use build_rtti_vtbl_entries. 5041 (skip_rtti_stuff): Remove. 5042 (dfs_modify_vtables): Don't use it. 5043 (modify_all_vtables): Don't use start_vtable. Do use set_vindex. 5044 (layout_nonempty_base_or_field): Update size handling. 5045 (create_vtable_ptr): Tweak. 5046 (layout_class_type): Adjust parameter names. 5047 (finish_struct_1): Simplify. 5048 * cp-tree.h (CLASSTYPE_VSIZE): Tweak documentation. 5049 (skip_rtti_stuff): Remove. 5050 (first_vfun_index): New function. 5051 (dfs_vtable_path_unmarked_real_bases_queue_p): Remove. 5052 (dfs_vtable_path_marked_real_bases_queue_p): Remove. 5053 (marked_vtable_pathp): Declare. 5054 (unmarked_vtable_pathp): Likewise. 5055 * error.c (dump_expr): Use first_vfun_index to calculate vtable 5056 offsets. 5057 * rtti.c (build_headof): Look for RTTI at negative offsets. 5058 (get_tinfo_decl_dynamic): Likewise. 5059 (tinfo_base_init): Don't take the address of the TINFO_VTABLE_DECL 5060 here. 5061 (create_pseudo_type_info): Do it here instead. Adjust so that 5062 vptr points at first virtual function. 5063 * search.c (marked_vtable_pathp): Make it global. 5064 (unmarked_vtable_pathp): Likewise. 5065 (dfs_vtable_path_unmarked_real_bases_queue_p): Remove. 5066 (dfs_vtable_path_marked_real_bases_queue_p): Likewise. 5067 (dfs_get_pure_virtuals): Don't use skip_rtti_stuff. 5068 (get_pure_virtuals): Likewise. 5069 (expand_upcast_fixups): Likewise. 5070 * tree.c (debug_binfo): Likewise. 5071 * tinfo.cc (__dynamic_cast): Look for vtable_prefix at appropriate 5072 negative offset. 5073 50742000-03-26 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 5075 5076 * class.c (check_field_decl): Fix typo. 5077 (build_vtbl_or_vbase_field): Don't clear DECL_SAVED_INSNS. 5078 (check_methods): Likewise. 5079 (check_field_decls): Likewise. 5080 Use DECL_CONTEXT, not DECL_FIELD_CONTEXT. 5081 * cp-tree.h (DECL_SHADOWED_FOR_VAR, DECL_TEMPLATE_RESULT): 5082 Use DECL_RESULT_FLD, not DECL_RESULT. 5083 * decl.c (xref_tag): Use DECL_TEMPLATE_RESULT. 5084 * lex.c (identifier_type): Likewise. 5085 * pt.c (determine_specialization, lookup_template_class): Likewise. 5086 (tsubst_friend_function, tsubst_decl, instantiate_template): Likewise. 5087 (resolve_overloaded_unification, more_specialized): Likewise. 5088 * semantics.c (finish_member_declaration): Likewise. 5089 * typeck.c (build_x_function_call): Likewise. 5090 50912000-03-26 Mark Mitchell <mark@codesourcery.com> 5092 5093 * class.c (layout_empty_base): Handle empty bases with non-byte 5094 alignment. 5095 (build_base_field): Likewise. 5096 (layout_virtual_bases): Likewise. 5097 5098 * class.c (finish_struct_1): Fix typo in this change: 5099 5100 Sat Mar 25 09:12:10 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 5101 51022000-03-25 Mark Mitchell <mark@codesourcery.com> 5103 5104 * decl.c (grokdeclarator): Count partial specializations when 5105 keeping track of how many template classes have been seen. 5106 5107 * dump.c (dequeue_and_dump): Dump DECL_TEMPLATE_RESULT. 5108 51092000-03-25 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 5110 5111 * class.c (build_vbase_pointer_fields): layout_field now place_field. 5112 (get_vfield_offset): Use byte_position. 5113 (set_rtti_entry): Set OFFSET to ssizetype zero. 5114 (get_binfo_offset_as_int): Deleted. 5115 (dfs_record_base_offsets): Use tree_low_cst. 5116 (dfs_search_base_offsets): Likewise. 5117 (layout_nonempty_base_or_field): Reflect changes in RLI format 5118 and call byte_position. 5119 (layout_empty_base): Convert offset to ssizetype. 5120 (build_base_field): use rli_size_unit_so_far. 5121 (dfs_propagate_binfo_offsets): Do computation in proper type. 5122 (layout_virtual_bases): Pass ssizetype to propagate_binfo_offsets. 5123 (layout_class_type): Reflect changes in RLI names and fields. 5124 (finish_struct_1): Set DECL_FIELD_OFFSET. 5125 * dump.c (dequeue_and_dump): Call bit_position. 5126 * expr.c (cplus_expand_constant): Use byte_position. 5127 * rtti.c (expand_class_desc): Use bitsize_one_node. 5128 * typeck.c (build_component_addr): Use byte_position and don't 5129 special case for zero offset. 5130 51312000-03-24 Nathan Sidwell <nathan@codesourcery.com> 5132 5133 * decl.c (vtype_decl_p): Use TYPE_POLYMORPHIC_P. 5134 5135 * rtti.c (get_tinfo_decl): Set comdat linkage on new-abi 5136 tinfo object. 5137 (emit_tinfo_decl): Only emit polymorphic tinfo's when emitting 5138 vtable. 5139 51402000-03-20 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> 5141 5142 * call.c (check_dtor_name, build_new_method_call): Use TYPE_P and 5143 DECL_P macros. 5144 * decl.c (push_class_binding, poplevel, pushtag, lookup_namespace_name, 5145 make_typename_type, check_initializer, cp_finish_decl, 5146 xref_tag): Likewise. 5147 * decl2.c (grokfield, build_expr_from_tree, build_expr_from_tree, 5148 decl_namespace, arg_assoc_template_arg, arg_assoc, 5149 validate_nonmember_using_decl, do_class_using_decl): Likewise. 5150 * error.c (dump_template_argument, dump_expr, cp_file_of, cp_line_of, 5151 args_to_string): Likewise. 5152 * friend.c (is_friend): Likewise. 5153 * lex.c (note_got_semicolon, note_list_got_semicolon, 5154 is_global): Likewise. 5155 * method.c (build_overload_nested_name, build_overload_value, 5156 build_qualified_name, build_qualified_name, hack_identifier): Likewise. 5157 * parse.y (typename_sub, typename_sub1): Likewise. 5158 * pt.c (push_inline_template_parms_recursive, check_template_shadow, 5159 process_partial_specialization, convert_template_argument, 5160 template_args_equal, add_pending_template, lookup_template_class, 5161 for_each_template_parm_r, maybe_fold_nontype_arg, 5162 tsubst, instantiate_template, type_unification_real, unify, 5163 instantiate_pending_templates, set_mangled_name_for_template_decl): 5164 Likewise. 5165 * repo.c (repo_get_id, repo_template_used): Likewise. 5166 * search.c (lookup_field_1): Likewise. 5167 * tree.c (walk_tree, get_type_decl, cp_tree_equal, member_p): Likewise. 5168 * xref.c (classname): Likewise. 5169 51702000-03-22 Mark Mitchell <mark@codesourcery.com> 5171 5172 * cp-tree.h (BINFO_FOR_VBASE): Adjust documentation. 5173 (CANONICAL_BINFO): New macro. 5174 (BINFO_NEW_VTABLE_MARKED): Use it. 5175 (SET_BINFO_NEW_VTABLE_MARKED): Likewise. 5176 (CLEAR_BINFO_NEW_VTABLE_MARKED): Likewise. 5177 * class.c (dfs_build_vbase_offset_vtbl_entries): Use BINFO_TYPE, 5178 not TREE_TYPE. 5179 (build_primary_vtable): Adjust usage of BINFO_NEW_VTABLE_MARKED. 5180 (build_secondary_vtable): Likewise. 5181 (dfs_finish_vtbls): Likewise. 5182 (dfs_accumulate_vtbl_inits): Likewise. 5183 (accumulate_vtbl_inits): New function. 5184 (finish_vtbls): Make sure that virtual bases come after 5185 non-virtual bases in the vtable group. 5186 (record_base_offsets): Don't save and restore TREE_VIA_VIRTUAL. 5187 (finish_struct_1): Adjust usage of BINFO_NEW_VTABLE_MARKED. 5188 * search.c (struct vbase_info): Move definition. 5189 (marked_new_vtable_p): Adjust usage of BINFO_NEW_VTABLE_MARKED. 5190 (unmarked_new_vtable_p): Likewise. 5191 (dfs_mark_vtable_path): Remove. 5192 (dfs_mark_new_vtable): Remove. 5193 (dfs_unmark_new_vtable): Likewise. 5194 (dfs_clear_search_slot): Likewise. 5195 (dfs_find_vbases): Adjust usage of BINFO_NEW_VTABLE_MARKED. 5196 (dfs_clear_vbase_slots): Likewise. 5197 (init_vbase_pointers): LIkewise. 5198 51992000-03-22 Jason Merrill <jason@casey.cygnus.com> 5200 5201 * typeck.c (type_after_usual_arithmetic_conversions): Prefer a 5202 SIZETYPE to a non-SIZETYPE. 5203 52042000-03-21 Mark Mitchell <mark@codesourcery.com> 5205 5206 * class.c (layout_virtual_bases): Adjust names in conditionally 5207 compiled code. 5208 5209 * class.c (record_base_offsets): New function. 5210 (layout_conflict_p): Likewise. 5211 (layout_nonempty_base_or_field): Use it. 5212 (layout_empty_base): New function. 5213 (build_base_field): Use it. 5214 (build_base_fields): Update comment. 5215 (layout_virtual_bases): Fold in a little code form 5216 layout_basetypes. Use layout_empty_base. 5217 (layout_basetypes): Remove. 5218 (end_of_class): New function. 5219 (layout_class_type): Use it. Adjust. 5220 5221 * cp-tree.h (CLASSTYPE_VBASECLASSES): Fix typo in comment. 5222 (fntype_p): Remove. 5223 * search.c (dfs_skip_nonprimary_vbases_unmarkedp): Fix typo in 5224 comment. 5225 (dfs_skip_nonprimary_vbases_markedp): Likewise. 5226 * typeck.c (fntype_p): Remove. 5227 5228 * cp-tree.h (TI_SPEC_INFO): Remove. 5229 (CLASSTYPE_TI_SPEC_INFO): Likewise. 5230 * pt.c (process_partial_specialization): Likewise. 5231 5232 * class.c (build_base_field): Fix thinko in computation of binfo 5233 offsets. 5234 5235 * tree.c (mark_local_for_remap_p): Mark variables declared in 5236 TARGET_EXPRs as well. 5237 52382000-03-21 Nathan Sidwell <nathan@codesourcery.com> 5239 5240 * typeck.c (require_complete_type, complete_type, 5241 complete_type_or_else, c_sizeof, c_sizeof_nowarn, 5242 build_array_ref, convert_arguments, pointer_diff, 5243 build_x_unary_op, build_unary_op, build_c_cast, 5244 build_modify_expr): Use COMPLETE_TYPE_P etc. 5245 * call.c (is_complete, convert_like_real, 5246 build_new_method_call): Likewise. 5247 * class.c (build_vbase_pointer_fields, check_bases, 5248 build_base_field, finish_struct_1, pushclass): Likewise. 5249 * cvt.c (cp_convert_to_pointer, convert_to_void): Likewise. 5250 * decl.c (maybe_process_template_type_declaration, pushtag, 5251 pushdecl, redeclaration_error_message, start_decl, start_decl_1, 5252 layout_var_decl, check_initializer, cp_finish_decl, 5253 grokdeclarator, require_complete_types_for_parms, 5254 grok_op_properties, xref_tag, xref_basetypes, 5255 check_function_type): Likewise. 5256 * decl2.c (check_classfn, reparse_absdcl_as_casts): Likewise. 5257 * friend.c (do_friend): Likewise. 5258 * init.c (build_offset_ref): Likewise. 5259 * parse.y (structsp): Likewise. 5260 * pt.c (maybe_process_partial_specialization, 5261 tsubst_friend_function, instantiate_class_template, tsubst, 5262 do_type_instantiation, instantiate_pending_templates): Likewise. 5263 * repo.c (repo_get_id): Likewise. 5264 * rtti.c (build_typeid, get_typeid, build_dynamic_cast_1, 5265 synthesize_tinfo_var, emit_support_tinfos): Likewise. 5266 * search.c (lookup_fnfields_1, lookup_conversions): Likewise. 5267 * semantics.c (begin_class_definition): Likewise. 5268 * tree.c (build_cplus_method_type): Likewise. 5269 * typeck2.c (digest_init, build_functional_cast, 5270 add_exception_specifier): Likewise. 5271 * parse.h, parse.c: Regenerated. 5272 52732000-03-21 Nathan Sidwell <nathan@codesourcery.com> 5274 5275 * inc/cxxabi.h: New header file. Define new-abi entry points. 5276 (__pointer_type_info::target): Rename member to ... 5277 (__pointer_type_info::type): ... here. 5278 (__base_class_info::type): Rename member to ... 5279 (__base_class_info::base): ... here. 5280 * Make-lang.in (CXX_EXTRA_HEADERS): Add cxxabi.h 5281 * cp-tree.h (CPTI_ABI): New global tree enumeration. 5282 (abi_node): New global tree node. 5283 * decl.c (abi_node): Document. 5284 (init_decl_processing): Initialize abi_node. 5285 * rtti.c (build_dynamic_cast_1): Use abi_node for new-abi. 5286 (get_vmi_pseudo_type_info): Likewise. 5287 (create_tinfo_types): Likewise. 5288 (emit_support_tinfos): Likewise. 5289 * tinfo.h (cxxabi.h): Include for new-abi. 5290 Move rtti class definitions to new header file. 5291 * tinfo.cc (abi): Use the namespace. 5292 (std): Move new abi rtti classes from here ... 5293 (__cxxabiv1): ... to here. 5294 * tinfo2.cc (cxxabi.h): Include for new-abi. 5295 Move rtti class definitions to new header file. 5296 (std): Move new abi rtti classes from here ... 5297 (__cxxabiv1): ... to here. 5298 * inc/typeinfo (__class_type_info): Move into __cxxabiv1 5299 namespace. 5300 53012000-03-20 Jed Wing <jedwin@zloty.ugcs.caltech.edu> 5302 Jason Merrill <jason@casey.cygnus.com> 5303 5304 * method.c (build_overload_int): Use host_integerp. 5305 53062000-03-20 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> 5307 5308 * init.c (build_offset_ref): Handle the case of a templated member 5309 function. 5310 53112000-03-19 Martin v. Löwis <loewis@informatik.hu-berlin.de> 5312 5313 * except.c (expand_exception_blocks): Clear catch_clauses_last. 5314 53152000-03-18 Mark Mitchell <mark@codesourcery.com> 5316 5317 * cp-tree.h (CLEAR_DECL_C_BIT_FIELD): New macro. 5318 * class.c (check_bitfield_decl): Turn illegal bitfields into 5319 non-bitfields. 5320 (dfs_propagate_binfo_offsets): Adjust for new size_binop 5321 semantics. 5322 (dfs_offset_for_unshared_vbases): Likewise. 5323 * cvt.c (cp_convert_to_pointer): Convert NULL to a 5324 pointer-to-member correctly under the new ABI. 5325 * expr.c (cplus_expand_constant): Don't use cp_convert when 5326 turning an offset into a pointer-to-member. 5327 * init.c (resolve_offset_ref): Don't adjust pointers-to-members 5328 when dereferencing them under the new ABI. 5329 * typeck.c (get_member_function_from_ptrfunc): Tweak calculation 5330 of pointers-to-members under the new ABI. 5331 5332 * class.c (check_bitfield_decl): Remove restriction on really long 5333 bitfields. 5334 (layout_class_type): Implement new ABI handling of bitfields 5335 longer than their types. 5336 53372000-03-18 Martin v. Löwis <loewis@informatik.hu-berlin.de> 5338 5339 * parse.y (extdefs): Call ggc_collect. 5340 * parse.c: Regenerated. 5341 53422000-03-18 Nathan Sidwell <nathan@codesourcery.com> 5343 5344 * class.c (build_base_field): Use TYPE_ALIGN to examine a type. 5345 (note_name_declared_in_class): Use OVL_CURRENT to get at a 5346 potential overload. 5347 53482000-03-17 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 5349 5350 * class.c (build_vbase_path): Use integer_zerop. 5351 (build_vtable_entry): Use tree_low_cst. 5352 (get_vfield_offset): Use bit_position. 5353 (dfs_modify_vtables): New variable vindex_val; `i' is HOST_WIDE_INT. 5354 Use tree_low_cst. 5355 (check_bitfield_decl): Set DECL_SIZE using convert. 5356 (build_base_field): Set DECL_SIZE and DECL_SIZE_UNIT using size_binop. 5357 (layout_virtual_bases): DSIZE is unsigned HOST_WIDE_INT. 5358 Use tree_low_cst. 5359 (finish_struct_1): Use bit_position. 5360 (dump_class_hierarchy): Use tree_low_cst. 5361 * cp-tree.h (min_precision): Add declaration. 5362 * decl.c (xref_tag, xref_basetypes): Use tree_low_cst. 5363 * error.c (dump_type_suffix): Use host_integerp and tree_low_cst. 5364 (dump_expr): Use integer_zerop, host_integerp, and tree_low_cst. 5365 * expr.c (cplus_expand_constant): Use bit_position. 5366 * init.c (build_vec_init): Use host_integerp and tree_low_cst. 5367 * rtti.c (get_base_offset): Use bit_position. 5368 * typeck.c (build_binary_op): Use integer_zerop, compare_tree_int, 5369 host_integerp, and tree_low_cst. 5370 (pointer_int_sum): Use integer_zerop. 5371 (build_component_addr): Use bit_position. 5372 53732000-03-17 Nathan Sidwell <nathan@codesourcery.com> 5374 5375 * typeck.c (require_complete_type): Don't assume size_zero_node. 5376 (complete_type_or_else): Likewise. 5377 53782000-03-16 Steven Grady <grady@digitaldeck.com> 5379 Jason Merrill <jason@casey.cygnus.com> 5380 5381 * rtti.c (build_dynamic_cast_1): Improve diagnostics. 5382 53832000-03-16 Nathan Sidwell <nathan@codesourcery.com> 5384 5385 * decl2.c (grokfield): Bail out if type is error_mark_node. 5386 53872000-03-15 Nathan Sidwell <nathan@codesourcery.com> 5388 5389 * tinfo2.cc (__ptr_to_member_data): Rename to ... 5390 (__pointer_to_member_data): ... here. Adjust. 5391 * rtti.c (create_tinfo_types): Adjust. 5392 53932000-03-15 Nathan Sidwell <nathan@codesourcery.com> 5394 5395 * cp-tree.h (CPTI_REF_DESC_TYPE, ref_desc_type_node): Remove. 5396 * decl.c (ref_desc_type_node): Undocument. 5397 * rtti.c (ptr_ref_initializer): Rename to ... 5398 (ptr_initializer): ... here. Adjust comments. 5399 (ptmd_initializer): Fix comment thinko. 5400 (synthesize_tinfo_var): Remove REFERENCE_TYPE case. 5401 (create_tinfo_types): Remove ref_desc_type_node init. 5402 * tinfo2.cc (__reference_type_info): Remove. 5403 54042000-03-15 Nathan Sidwell <nathan@codesourcery.com> 5405 5406 * decl.c (cp_finish_decl): Remove obsolete comment. 5407 5408 * typeck.c (build_ptrmemfunc1): Kill uninitialized warning. 5409 54102000-03-14 Mark Mitchell <mark@codesourcery.com> 5411 5412 * cp-tree.h: Tweak documentation. 5413 * class.c (build_vbase_pointer_fields): Layout the fields, too. 5414 (avoid_overlap): Remove. 5415 (get_binfo_offset_as_int): New function. 5416 (dfs_serach_base_offsets): Likewise. 5417 (layout_nonempty_base_or_field): Likewise. 5418 (build_base_field): Layout fields here. Avoid placing two objects 5419 of the same type at the same address, under the new ABI. 5420 (build_base_fields): Adjust accordingly. 5421 (create_vtable_ptr): Return the new field, but don't attach it to 5422 TYPE_FIELDS. 5423 (remove_base_field): Remove. 5424 (remove_base_fields): Remove. 5425 (layout_basetypes): Adjust accordingly. 5426 (layout_class_type): Call layout_field for each field, rather than 5427 just making a wholesale call to layout_type. 5428 54292000-03-14 Jeff Sturm <jsturm@sigma6.com> 5430 5431 * except.c (expand_throw): Fix typo in _Jv_Sjlj_Throw. 5432 54332000-03-13 Jason Merrill <jason@casey.cygnus.com> 5434 5435 * decl.c (grokfndecl): Set TREE_NOTHROW if TYPE_NOTHROW_P. 5436 5437 * except.c (dtor_nothrow): New fn. 5438 (do_pop_exception): Use it. Take type parm. 5439 (push_eh_cleanup): Take type parm. 5440 (expand_start_catch_block): Pass it. 5441 (build_eh_type_type_ref): Accept null type. 5442 54432000-03-12 Mark Mitchell <mark@codesourcery.com> 5444 5445 * cp-tree.h (revert_static_member_fn): Change prototype. 5446 * decl.c (grokfndecl): Adjust call to revert_static_member_fn. 5447 (grok_op_properties): Likewise. 5448 (start_function): Likewise. 5449 (revert_static_member_fn): Simplify. 5450 * pt.c (check_explicit_specialization): Adjust call to 5451 revert_static_member_fn. 5452 54532000-03-11 Mark Mitchell <mark@codesourcery.com> 5454 5455 * cp-tree.h (scope_kind): New type. 5456 (tmpl_spec_kind): Likewise. 5457 (declare_pseudo_global_level): Remove. 5458 (pseudo_global_level_p): Rename to template_parm_scope_p. 5459 (pushlevel): Remove declaration. 5460 (begin_scope): New function. 5461 (finish_scope): Likewise. 5462 (current_tmpl_spec_kind): Likewise. 5463 * decl.c (struct binding_level): Shorten parm_flag to 2 bits. 5464 Shorten keep to 2 bits. Rename pseudo_global to template_parms_p. 5465 Add template_spec_p. 5466 (toplevel_bindings_p): Adjust. 5467 (declare_pseudo_global_level): Remove. 5468 (pseudo_global_level_p): Rename to template_parm_scope_p. 5469 (current_tmpl_spec_kind): New function. 5470 (begin_scope): Likewise. 5471 (finish_scope): Likewise. 5472 (maybe_push_to_top_level): Adjust. 5473 (maybe_process_template_type_declaration): Likewise. 5474 (pushtag): Likewise. 5475 (pushdecl_nonclass_level): Likewise. 5476 (lookup_tag): Likewise. 5477 (grokfndecl): Handle member template specializations. Share 5478 constructor and non-constructor code. 5479 * decl2.c (check_classfn): Handle member template specializations. 5480 * pt.c (begin_template_parm_list): Use begin_scope. 5481 (begin_specialization): Likewise. 5482 (end_specialization): Likewise. 5483 (check_explicit_specialization): Use current_tmpl_spec_kind. 5484 Handle member template specializations. 5485 (end_template_decl): Use finish_scope. Remove call to 5486 get_pending_sizes. 5487 (push_template_decl_real): Remove bogus error message. 5488 (tsubst_decl): Fix typo in code contained in comment. 5489 (instantiate_template): Handle member template specializations. 5490 (most_general_template): Likewise. 5491 54922000-03-11 Gabriel Dos Reis <gdr@codesourcery.com> 5493 5494 * lex.c (whitespace_cr): Compress consecutive calls to warning(). 5495 (do_identifier): Ditto for error(). 5496 5497 * pt.c (convert_nontype_argument): Ditto for cp_error(). 5498 (convert_template_argument): Ditto for cp_pedwarn(). 5499 55002000-03-11 Jason Merrill <jason@casey.cygnus.com> 5501 5502 * exception.cc (__check_null_eh_spec): New fn. 5503 * except.c (expand_end_eh_spec): Call it if the spec is throw(). 5504 55052000-03-10 Jason Merrill <jason@casey.cygnus.com> 5506 5507 * decl.c (push_throw_library_fn): Take the FUNCTION_TYPE. 5508 * except.c (expand_end_eh_spec): Add the return type. 5509 * rtti.c (throw_bad_cast): Add the parmtypes. 5510 (throw_bad_typeid): Likewise. 5511 5512 * semantics.c (expand_stmt): Only leave out rtl for unused 5513 artificials, and set DECL_IGNORED_P on them as well. 5514 * decl.c (wrapup_globals_for_namespace): Likewise. 5515 55162000-03-09 Nathan Sidwell <nathan@codesourcery.com> 5517 5518 * decl.c (maybe_commonize_var): Skip all artificial decls. 5519 * pt.c (tsubst_decl): Don't copy TREE_ASM_WRITTEN. 5520 55212000-03-10 Jason Merrill <jason@casey.cygnus.com> 5522 5523 * lang-options.h, decl2.c: Add -fno-enforce-eh-specs. 5524 * cp-tree.h: Declare flag_enforce_eh_specs. 5525 * decl.c (store_parm_decls, finish_function): Check it. 5526 5527 C library functions don't throw. 5528 * Makefile.in (cfns.h): New target. 5529 (except.o): Depend on it. 5530 * Make-lang.in (cc1plus): Depend on cfns.gperf. 5531 * cfns.gperf: New file. 5532 * cfns.h: Generated. 5533 * except.c: Include it. 5534 (nothrow_libfn_p): New fn. 5535 * decl.c (grokfndecl): Use it. 5536 * cp-tree.h: Declare it. 5537 5538 * decl.c (push_overloaded_decl_1, auto_function, 5539 define_function): Lose. 5540 (build_library_fn_1): New static fn. 5541 (builtin_function): Use it. 5542 (get_atexit_node): Use build_library_fn_ptr. 5543 (build_library_fn, build_cp_library_fn, build_library_fn_ptr, 5544 build_cp_library_fn_ptr, push_library_fn, push_cp_library_fn, 5545 push_void_library_fn, push_throw_library_fn): New fns. 5546 * cp-tree.h: Declare them. 5547 (cp_tree_index): Remove CPTI_BAD_CAST, CPTI_BAD_TYPEID. 5548 (throw_bad_cast_node, throw_bad_typeid_node): Lose. 5549 * except.c (init_exception_processing, call_eh_info, do_pop_exception, 5550 (expand_end_eh_spec, alloc_eh_object, expand_throw): Use above fns. 5551 * rtti.c (build_runtime_decl): Lose. 5552 (throw_bad_cast, throw_bad_typeid, get_tinfo_decl, 5553 build_dynamic_cast_1, expand_si_desc, expand_class_desc, 5554 expand_ptr_desc, expand_attr_desc, expand_generic_desc): Use above fns. 5555 5556 * call.c (build_call): Remove result_type parm. 5557 Call mark_used on unused artificial fns. 5558 * init.c, method.c, typeck.c, except.c, rtti.c: Adjust. 5559 55602000-03-09 Jason Merrill <jason@casey.cygnus.com> 5561 5562 * call.c (build_call): Set TREE_NOTHROW on the CALL_EXPR as 5563 appropriate. 5564 * decl.c (define_function): Set TREE_NOTHROW on the FUNCTION_DECL. 5565 * except.c (call_eh_info, alloc_eh_object, expand_throw): Set 5566 TREE_NOTHROW or TREE_THIS_VOLATILE on the function as appropriate. 5567 * rtti.c (build_runtime_decl, get_tinfo_decl, build_dynamic_cast_1, 5568 expand_si_desc, expand_class_desc, expand_ptr_desc, expand_attr_desc, 5569 expand_generic_desc): Likewise. 5570 55712000-03-08 Nathan Sidwell <nathan@codesourcery.com> 5572 5573 * exception.cc (__cp_pop_exception): Cleanup the original object. 5574 55752000-03-08 Nathan Sidwell <nathan@codesourcery.com> 5576 5577 * decl.c (grok_op_properties): Merge conversion to void warning 5578 with other silly op warnings. 5579 55802000-03-08 Jason Merrill <jason@casey.cygnus.com> 5581 5582 * typeck2.c (process_init_constructor): Set TREE_PURPOSE of 5583 array CONSTRUCTOR elements. Don't use expr_tree_cons. 5584 55852000-03-08 Nathan Sidwell <nathan@codesourcery.com> 5586 5587 * decl.c (cp_make_fname_decl): New function. 5588 (wrapup_globals_for_namespace): Don't emit unused static vars. 5589 (init_decl_processing): Remove comment about use of 5590 array_domain_type. Set make_fname_decl. 5591 (cp_finish_decl): Remove __FUNCTION__ nadgering. 5592 * semantics.c (begin_compound_stmt): Remove 5593 current_function_name_declared flagging. 5594 (expand_stmt): Don't emit unused local statics. 5595 * typeck.c (decay_conversion): Don't treat __FUNCTION__ decls 5596 specially. 5597 55982000-03-08 Nathan Sidwell <nathan@codesourcery.com> 5599 5600 * typeck.c (convert_for_assignment): Don't look at array 5601 initializer. 5602 * call.c (convert_like_real): Likewise. 5603 56042000-03-07 Jason Merrill <jason@casey.cygnus.com> 5605 5606 Add initial support for '\uNNNN' specifier. 5607 * lex.c (read_ucs): New fn. 5608 (readescape, skip_white_space): Call it. 5609 (is_extended_char, is_extended_char_1): New fns. 5610 (utf8_extend_token): New fn, #if 0'd out. 5611 (real_yylex): Treat extended chars like letters. 5612 5613 * search.c (note_debug_info_needed): Walk the bases even if we 5614 weren't deferring the type itself. 5615 56162000-03-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 5617 5618 * decl2.c (finish_objects): Constify a char*. 5619 5620 * method.c (emit_thunk): Likewise. 5621 56222000-03-06 Nathan Sidwell <nathan@codesourcery.com> 5623 5624 * typeck.c (dubious_conversion_warnings): Look through 5625 REFERENCE_TYPE. 5626 56272000-03-06 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 5628 5629 * class.c (dfs_modify_vtables): I is now unsigned. 5630 (check_bitfield_decl): Use tree_int_cst_sgn and compare_tree_int. 5631 (build_base_field): Add casts of TREE_INT_CST_LOW to HOST_WIDE_INT. 5632 * error.c (dump_expr): Cast TREE_INT_CST_HIGH to unsigned. 5633 * init.c (build_vec_init): Cast TREE_INT_CST_LOW to HOST_WIDE_INT. 5634 * method.c (build_overload_int): Cast TREE_INT_CST_HIGH to unsigned. 5635 * typeck.c (build_binary_op, case TRUNC_DIV_EXPR): 5636 Call integer_all_onesp. 5637 * typeck2.c (process_init_constructor): Use compare_tree_int. 5638 5639 * lang-specs.h (as): Don't call if -syntax-only. 5640 56412000-03-06 Mark Mitchell <mark@codesourcery.com> 5642 5643 * expr.c (cplus_expand_expr, case STMT_EXPR): Don't set 5644 RTL_EXPR_HAS_NO_SCOPE after all. 5645 56462000-03-05 Mark Mitchell <mark@codesourcery.com> 5647 5648 * expr.c (cplus_expand_expr, case STMT_EXPR): Use 5649 expand_start_stmt_expr and expand_end_stmt_expr directly. Set 5650 RTL_EXPR_HAS_NO_SCOPE. 5651 5652 * pt.c (instantiate_decl): Clear TI_PENDING_TEMPLATE_FLAG a little 5653 later. 5654 5655 * dump.c (dequeue_and_dump): Dump SCOPE_NO_CLEANUPS_P. 5656 56572000-03-05 Nathan Sidwell <nathan@codesourcery.com> 5658 5659 * call.c (convert_like): Macrofy. 5660 (convert_like_with_context): New macro. 5661 (convert_like_real): Renamed from convert_like. Add calling 5662 context parameters, for diagnostics. Add recursive flag. Call 5663 dubious_conversion_warnings for outer conversion. 5664 (build_user_type_conversion): Use convert_like_with_context. 5665 (build_over_call): Likewise. Don't warn about dubious 5666 conversions here. Adjust convert_default_arg calls. 5667 (convert_default_arg): Add context parameters for diagnostics. 5668 Pass through to convert_like_with_context. 5669 * cp-tree.h (convert_default_arg): Add context parameters. 5670 (dubious_conversion_warnings): Prototype new function. 5671 * typeck.c (convert_arguments): Adjust convert_default_arg call. 5672 (dubious_conversion_warnings): New function, broken 5673 out of convert_for_assignment. 5674 (convert_for_assignment): Adjust. 5675 56762000-03-03 Jason Merrill <jason@casey.cygnus.com> 5677 5678 * decl2.c (key_method): Break out from... 5679 (import_export_vtable, import_export_class): ...here. 5680 5681 * decl.c (finish_function): Don't mess with flag_keep_inline_functions. 5682 * decl2.c (finish_vtable_vardecl): Don't check decl_function_context. 5683 5684 * search.c (note_debug_info_needed, dfs_debug_mark, 5685 dfs_debug_unmarkedp): Uncomment. Adjust for new scheme. 5686 * decl2.c (finish_vtable_vardecl): Call note_debug_info_needed. 5687 56882000-03-03 Nathan Sidwell <nathan@codesourcery.com> 5689 5690 * decl.c (cp_finish_decl): Remove obsolete obstack comments, fix 5691 typos. 5692 56932000-03-02 Mark Mitchell <mark@codesourcery.com> 5694 5695 * cp-tree.h (TYPE_NEEDS_DESTRUCTOR): Rename to ... 5696 (TYPE_HAS_NONTRIVIAL_DESTRUCTOR): ... this. 5697 (TYPE_HAS_TRIVIAL_DESTRUCTOR): New macro. 5698 (lang_type): Split gets_new into has_new and has_array_new. 5699 (TYPE_VEC_NEW_USES_COOKIE): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR. 5700 (TYPE_GETS_NEW): Split into ... 5701 (TYPE_HAS_NEW_OPERATOR): ... this, and ... 5702 (TYPE_HAS_ARRAY_NEW_OPERATOR): ... this. 5703 (DECL_ARRAY_DELETE_OPERATOR_P): New macro 5704 (build_op_new_call): Don't declare. 5705 (build_new_1): Likewise. 5706 * call.c (build_op_new_call): Remove. 5707 * class.c (check_bases): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR 5708 instead of TYPE_NEEDS_DESTRUCTOR. 5709 (finish_struct_bits): Likewise. 5710 (add_implicitly_declared_members): Likewise. 5711 (check_field_decl): Likewise. 5712 (check_methods): Set TYPE_VEC_DELETE_TAKES_SIZE here, and set it 5713 correctly under the new ABI. 5714 * decl.c (start_decl_1): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR 5715 instead of TYPE_NEEDS_DESTRUCTOR. 5716 (initialize_local_var): Likewise. 5717 (destroy_local_var): Likewise. 5718 (cp_finish_decl): Likewise. 5719 (register_dtor_fn): Likewise. 5720 (grok_op_properties): Set TYPE_HAS_NEW_OPERATOR and 5721 TYPE_HAS_ARRAY_NEW_OPERATOR, not TYPE_HAS_NEW. Don't set 5722 TYPE_VEC_DELETE_TAKES_SIZE here. 5723 (xref_basetypes): Set TYPE_HAS_NEW_OPERATOR and 5724 TYPE_HAS_ARRAY_NEW_OPERATOR, not TYPE_HAS_NEW. 5725 (store_parm_decls): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR. 5726 (finish_destructor_body): Likewise. 5727 (maybe_build_cleanup_1): Likewise. 5728 * decl2.c (do_static_destruction): Likewise. 5729 * init.c (build_new_1): Make it static. 5730 (perform_member_init): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR. 5731 (expand_cleanup_for_base): Likewise. 5732 (get_cookie_size): New function. 5733 (build_new_1): Handle array-new cookies correctly under the new 5734 ABI. 5735 (build_vec_delete_1): Likewise. 5736 (build_vec_init): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR. 5737 (build_delete): Likewise. 5738 (build_vec_delete): Handle array-new cookies correctly under the new 5739 ABI. 5740 * lex.c (do_identifier): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR. 5741 * pt.c (instantiate_class_template): Set TYPE_HAS_NEW_OPERATOR and 5742 TYPE_HAS_ARRAY_NEW_OPERATOR. 5743 * ptree.c (print_lang_type): Check them. 5744 * search.c (context_for_name_lookup): Fix typo in comment. 5745 (tree_has_any_destructor_p): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR. 5746 * tree.c (break_out_cleanups): Likewise. 5747 (build_cplus_array_test_1): Likewise. 5748 (cp_build_qualified_type_real): Likewise. 5749 * typeck.c (complete_type): Likewise. 5750 5751 * g++spec.c (lang_specific_driver): Add -fnew-abi at the start of 5752 the command-line, not the end. 5753 57542000-03-01 Jason Merrill <jason@casey.cygnus.com> 5755 5756 * pt.c (instantiate_decl): Clear TI_PENDING_TEMPLATE_FLAG. 5757 57582000-03-02 Tom Tromey <tromey@cygnus.com> 5759 5760 * cp-tree.h (build_java_class_ref): Declare. 5761 * init.c (build_java_class_ref): No longer static. 5762 * except.c (expand_throw): Generate a Java-style `throw' if the 5763 thrown object is a "Java" object. 5764 (initialize_handler_parm): Generate a Java-style lookup of 5765 exception info if the caught object is a "Java" object. 5766 (catch_language, catch_language_init): New globals. 5767 (decl_is_java_type): New function. 5768 (expand_start_catch_block): Don't call push_eh_info() or 5769 push_eh_cleanup() when handling a Java-style "catch". Pass Java 5770 class reference to build_catch_block. 5771 57722000-03-02 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 5773 5774 * typeck.c (comptypes): Treat sizetype like its language equivalent. 5775 57762000-03-01 Bernd Schmidt <bernds@cygnus.co.uk> 5777 5778 * typeck.c (maybe_warn_about_returning_address_of_local): Reorganize 5779 to merge reference/pointer code and fix incorrect warnings. 5780 57812000-02-29 Jason Merrill <jason@casey.cygnus.com> 5782 5783 * search.c (protected_accessible_p): Use context_for_name_lookup. 5784 5785 * init.c (construct_virtual_bases): Fix thinko. 5786 * typeck.c (expand_ptrmemfunc_cst): Fix thinko. 5787 57882000-03-01 Martin von Löwis <loewis@informatik.hu-berlin.de> 5789 5790 * decl.c (current_function_decl): Move to toplev.c. 5791 57922000-02-29 Nathan Sidwell <nathan@codesourcery.com> 5793 5794 * pt.c (fn_type_unification): Unify return type, whenever 5795 provided. 5796 (get_bindings_real): Only pass return type when necessary. 5797 Remove explicit return type check. 5798 * class.c (resolve_address_of_overloaded_function): Pass desired 5799 return type to fn_type_unification. 5800 58012000-02-28 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 5802 5803 * class.c (build_vtbl_or_vbase_field, check_methods): Don't clear 5804 DECL_FIELD_SIZE. 5805 (check_bitfield_decl, check_field_decls): Set DECL_SIZE, not 5806 DECL_FIELD_SIZE. 5807 * rtti.c (expand_class_desc): Likewise. 5808 * cp-tree.h (DECL_INIT_PRIORITY): Use underlying union name. 5809 (THUNK_VCALL_OFFSET): Likewise. 5810 (THUNK_DELTA): Reflect changes in ../tree.h. 5811 58122000-02-28 Jason Merrill <jason@casey.cygnus.com> 5813 5814 * search.c (protected_accessible_p): Also allow the access if 5815 the member is public in DERIVED. Lose TYPE parm. 5816 (friend_accessible_p): Lose TYPE parm. 5817 (accessible_p): Adjust. 5818 58192000-02-27 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 5820 5821 * class.c (dfs_build_vtable_offset_vtbl_entries): Don't use size_binop 5822 on things that are not sizes; ssize_binop deleted. 5823 Call size_diffop when appropriate. 5824 (dfs_build_vcall_offset_vtbl_entries): Likewise. 5825 (build_primary_vtable, build_secondary_vtable): Likewise. 5826 (dfs_set_offset_for_unshared_vbases, dfs_modify_vtables): Likewise. 5827 Variable I is HOST_WIDE_INT. 5828 (get_vfield_offset): Pass proper types to size_binop. 5829 (size_extra_vtbl_entries, layout_virtual_bases): Likewise. 5830 (finish_struct_1): Likewise. 5831 (skip_rtti_stuff): Arg N is now pointer to signed. 5832 (layout_class_type): Use size_zero_node. 5833 * cp-tree.h (skip_rtti_stuff): Arg N is pointer to signed. 5834 * cvt.c (cp_convert_to_pointer): Pass proper types to size_binop. 5835 * decl.c (complete_arry_type): Pass proper types to size_binop. 5836 (xref_basetypes): BINFO_OFFSET is sizetype. 5837 * error.c (dump_expr): Don't use size_binop non-sizes. 5838 * expr.c (cplus_expand_constant): Pass proper types to size_binop. 5839 * init.c (construct_virtual_bases): Fix type error. 5840 (build_vec_delete_1): Pass proper type to size_binop and don't 5841 fold result. 5842 * lex.c (cp_make_lang_type): BINFO_OFFSET is sizetype. 5843 * rtti.c (get_base_offset): Pass proper type to size_binop. 5844 * search.c (dfs_find_vbases): Fix type error. 5845 (expand_upcast_fixups): Arg to skip_rtti_stuff is pointer to signed. 5846 (dfs_get_vbase_types): BINFO_OFFSET is sizetype. 5847 * tree.c (debug_binfo): Variable N is signed. 5848 Use HOST_WIDE_INT_PRINT_DEC. 5849 * typeck.c (comptypes): sizetype is same as equivalent integer type. 5850 (c_sizeof, c_sizeof_nowarn, expr_sizeof): Use TYPE_SIZE_UNIT, 5851 size_one_node and size_zero_node. 5852 (c_alignof): Use size_one_node. 5853 (build_component_addr): Pass proper types to size_binop. 5854 (expand_ptrmemfunc_cst): Don't use size_binop on non-sizes. 5855 58562000-02-26 Jason Merrill <jason@casey.cygnus.com> 5857 5858 Implement class scope using-declarations for functions. 5859 * class.c (handle_using_decl): Call add_method for used functions. 5860 Use IDENTIFIER_CLASS_VALUE to check for conflicts. 5861 (add_method): Used functions are hidden by local functions. 5862 (check_bases_and_members): Handle using-decls before finalizing 5863 CLASSTYPE_METHOD_VEC. 5864 * call.c (add_function_candidate): Add ctype parm; if nonzero, 5865 override the type of 'this' accordingly. 5866 (add_template_candidate, add_template_candidate_real): Add ctype parm. 5867 (convert_class_to_reference, build_user_type_conversion_1, 5868 build_new_function_call, build_object_call, build_new_op, 5869 build_new_method_call): Pass ctype parm. 5870 5871 * search.c (lookup_member): Put rval_binfo, not basetype_path, in 5872 the baselink. 5873 * call.c (convert_class_to_reference, build_user_type_conversion_1, 5874 build_new_function_call, build_object_call, build_new_op, 5875 build_new_method_call, build_op_delete_call): Don't get basetype_path 5876 from a baselink. 5877 * typeck.c (build_component_ref): Likewise. 5878 * init.c (build_offset_ref): Likewise. 5879 (resolve_offset_ref): Don't call enforce_access. 5880 Call build_scoped_ref. 5881 * typeck2.c (build_scoped_ref): Simplify. Do nothing if it 5882 would cause an error or if -pedantic. 5883 * class.c (alter_access): Lose binfo parm. 5884 58852000-02-26 Mark Mitchell <mark@codesourcery.com> 5886 5887 * semantics.c (simplify_aggr_init_exprs_p): Don't walk into 5888 types. 5889 58902000-02-25 Alfred Minarik <a8601248@unet.univie.ac.at> 5891 5892 * rtti.c (get_vmi_pseudo_type_info): Move __vmi_class_type_info 5893 pseudo_type_info creation into the std namespace 5894 58952000-02-26 Mark Mitchell <mark@codesourcery.com> 5896 5897 * cp-tree.h (DECL_NEEDED_P): Tweak to correct usage before EOF. 5898 (import_export_class): Remove declaration. 5899 * decl2.c (import_export_class): Make it static. 5900 * dump.c (dequeue_and_dump): Handle PREDECREMENT_EXPR, 5901 PREINCREMENT_EXPR, POSTDECREMENT_EXPR, POSTINCREMENT_EXPR, 5902 EXPR_WITH_FILE_LOCATION. 5903 * lex.c (check_newline): Tweak filename/lineno setting. 5904 * semantics.c (begin_while_stmt): Fix typo in comment. 5905 59062000-02-26 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 5907 5908 * lang-options.h (-fmessage-length=): Add missing option. 5909 5910 * Make-lang.in (CXX_SRCS): Add .h files and sort list. 5911 59122000-02-26 Zack Weinberg <zack@wolery.cumb.org> 5913 5914 * Make-lang.in: Delete refs to LIBGCC2_DEPS. 5915 59162000-02-25 Jim Wilson <wilson@cygnus.com> 5917 5918 * optimize.c (expand_call_inline): Emit the return label before 5919 evaluating the return value. 5920 59212000-02-24 Mark Mitchell <mark@codesourcery.com> 5922 5923 * lex.c (check_newline): Use push_srcloc and pop_srcloc, rather 5924 than duplicating functionality here. 5925 * optimize.c: Include input.h. 5926 (expand_call_inline): Use push_srcloc and pop_srcloc. 5927 * parse.y (maybe_cv_qualifier): Remove calls to emit_line_note. 5928 * parse.c: Regenerated. 5929 * Makefile.in (lex.o): Depend on input.h. 5930 (optimize.o): Likewise. 5931 59322000-02-24 Nathan Sidwell <nathan@codesourcery.com> 5933 5934 * decl.c (grokdeclarator): Diagnose qualifiers on non-member 5935 function type, rather than ICE. 5936 59372000-02-23 Jason Merrill <jason@casey.cygnus.com> 5938 5939 * decl.c (grokdeclarator): Call decl_type_access_control. 5940 * parse.y (parse_end_decl): Don't call decl_type_access_control if 5941 decl is null. 5942 59432000-02-23 Nathan Sidwell <nathan@codesourcery.com> 5944 5945 * decl.c (decls_match): Remove obsolete static member nadgering. 5946 59472000-02-21 Martin v. Löwis <loewis@informatik.hu-berlin.de> 5948 5949 * decl.c (grokdeclarator): Change ANSI to ISO. 5950 * lex.c (consume_string, readescape, do_identifier): Likewise. 5951 (parse_float, real_yylex): Likewise. 5952 * parse.y (paren_expr_or_null, paren_cond_or_null): Likewise. 5953 (unary_expr, new_initializer, cast_expr, primary, primary_no_id, 5954 new_type_id, maybe_label_decls, simple_stmt, 5955 for.init.statement): Likewise. 5956 * pt.c (do_decl_instantiation, do_type_instantiation): Likewise. 5957 * semantics.c (finish_named_return_value): Likewise. 5958 * parse.c: Regenerate. 5959 59602000-02-21 Mark Mitchell <mark@codesourcery.com> 5961 5962 * cp-tree.h (CPTI_VTABLE_INDEX_TYPE): New macro. 5963 (CPTI_CLASS_STAR_TYPE): Remove. 5964 (vtable_index_type): Likewise. 5965 (class_star_type_node): Remove. 5966 (TYPE_PTRMEMFUNC_FN_TYPE): Adjust for the new ABI. 5967 (build_binary_op_nodefault): Remove. 5968 * call.c (build_new_op): Use build_binary_op instead of 5969 build_binary_op_nodefault. 5970 * decl.c (init_decl_processing): Remove class_star_type_node 5971 initialization. Make delta_type_node ptrdiff_type_node under the 5972 new ABI. Initialize vtable_index_type. 5973 (build_ptrmemfunc_type): Build different structures for the new 5974 ABI. 5975 (build_enumerator): Use build_binary_op instead of 5976 build_binary_op_nodefault. 5977 * method.c (build_overload_value): Mangle pointers-to-members 5978 appropriately under the new ABI. 5979 * typeck.c (build_array_ref): Use build_binary_op instead of 5980 build_binary_op_nodefault. 5981 (get_member_function_from_ptrfunc): Adjust for the new ABI. 5982 (build_binary_op_nodefault): Rename to ... 5983 (build_binary_op): ... this. Remove old version. Adjust for 5984 pointer-to-member comparisons under the new ABI. 5985 (build_ptrmemfunc1): Remove dead code. Adjust for the new ABI. 5986 (build_ptrmemfunc): Adjust for the new ABI. 5987 (expand_ptrmemfunc_cst): Likewise. 5988 (delta2_from_ptrmemfunc): Assert that we're not using the new ABI. 5989 (pfn_from_ptrmemfunc): Adjust for the new ABI. 5990 59912000-02-21 Gabriel Dos Reis <gdr@codesourcery.com> 5992 5993 * call.c (build_object_call): Compress consecutive calls to 5994 cp_error. 5995 (build_conditional_expr): Say 'ISO C++' not 'ANSI C++'. 5996 (build_op_delete_call): Adjust message formatting. 5997 5998 * class.c (check_bases): Compress consecutive calls to 5999 cp_pedwarn. 6000 (finish_struct_anon): Say 'ISO C++'. 6001 6002 * decl.c (start_decl): Same here. 6003 (grok_reference_init): Likewise. 6004 (grokfndecl): Correct message formatting. 6005 (grokfndecl): Improve diagnostic. 6006 (check_static_variable_definition): Likewise. Say 'ISO C++' 6007 (compute_array_index_type): Say 'ISO C++' 6008 (create_array_type_for_decl): Compress consecutive calls to 6009 cp_error. 6010 (grokdeclarator): Say 'ISO C++' 6011 (grok_op_properties): Likewise. 6012 6013 * decl2.c (delete_sanity): Clairify diagnostic. 6014 (check_member_template): Same here. 6015 (grok_function_init): Use consistent terminology. 6016 6017 * expr.c (do_case): Say 'ISO C++' 6018 6019 * friend.c (do_friend): Compress consecutive calls to warning. 6020 60212000-02-20 Mark Mitchell <mark@codesourcery.com> 6022 6023 * cp-tree.h (merge_primary_and_secondary_vtables_p): New macro. 6024 * class.c (build_secondary_vtable): Reorganize. Don't create a 6025 new vtable under the new ABI. 6026 (layout_vtable_decl): Don't add num_extra_vtbl_entries when 6027 computing the size. 6028 (build_vtbl_initializer): Don't return a CONSTRUCTOR; just return 6029 the initializing elements. 6030 (initialize_vtable): New function. 6031 (dfs_finish_vtbls): Use it. 6032 (dfs_accumulate_vtbl_inits): New function. 6033 (finish_vtbls): Merge primary and secondary vtables under the new 6034 ABI. 6035 (finish_struct_1): Remove redundant call to layout_vtable_decl. 6036 * init.c (expand_virtual_init): Deal with BINFO_VTABLEs that 6037 aren't VAR_DECLs. 6038 6039 * class.c (build_vtable): New function, split out from ... 6040 (get_vtable_decl): ... here, and ... 6041 (build_secondary_vtable): ... here. 6042 6043 * pt.c (tsubst_decl): Fix formatting. 6044 60452000-02-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 6046 6047 * class.c (build_primary_vtable, layout_vtable_decl): Likewise. 6048 (avoid_overlap, build_base_field): Likewise. 6049 (build_base_field, build_base_fields, is_empty_class): 6050 Test DECL_SIZE with integer_zero. 6051 (layout_class_type): Set CLASSTYPE_SIZE_UNIT. 6052 * cp-tree.h (struct lang_type): New field size_unit. 6053 (CLASSTYPE_SIZE_UNIT): New macro. 6054 * decl.c (init_decl_processing): Set DECL_SIZE_UNIT. 6055 (cp_finish_decl): Delete -Wlarger-than processing. 6056 * optimize.c (remap_decl): Walk DECL_SIZE_UNIT. 6057 * pt.c (tsubst_decl): Set DECL_SIZE_UNIT. 6058 * tree.c (make_binfo): binfo vector is one entry longer. 6059 (walk_tree): Walk DECL_SIZE_UNIT. 6060 60612000-02-19 Mark Mitchell <mark@codesourcery.com> 6062 6063 * class.c (dfs_build_vcall_offset_vtbl_entries): Fix typo in 6064 comment. 6065 (build_vtable_entry): Don't assume all vtable entries are 6066 functions. 6067 (build_vtbl_initializer): Adjust accordingly. 6068 (get_vtable_decl): Fix formatting. 6069 60702000-02-18 Jason Merrill <jason@casey.cygnus.com> 6071 6072 * semantics.c (deferred_type_access_control): Walk the entire 6073 type_lookups list. 6074 (save_type_access_control): Rename from 6075 initial_deferred_type_access_control. Just remember the value. 6076 (decl_type_access_control): New fn. 6077 (begin_function_definition): Use deferred_type_access_control, after 6078 we've started the function. Set type_lookups to error_mark_node. 6079 * parse.y (frob_specs, fn.def1): Adjust. 6080 (parse_decl0, parse_field, parse_field0, parse_bitfield): New fns. 6081 (parse_end_decl, parse_bitfield0, parse_method): New fns. 6082 (fn.def2, initdcl, initdcl0_innards, nomods_initdcl0): Use them. 6083 (after_type_component_declarator0): Likewise. 6084 (after_type_component_declarator): Likewise. 6085 (notype_component_declarator): Likewise. 6086 * cp-tree.h: Adjust. 6087 6088 * decl.c (redeclaration_error_message): Allow redeclaration of 6089 namespace-scope decls. 6090 60912000-02-18 Martin von Löwis <loewis@informatik.hu-berlin.de> 6092 6093 * typeck2.c (my_friendly_abort): Use GCCBUGURL. 6094 60952000-02-17 Mark Mitchell <mark@codesourcery.com> 6096 6097 * class.c (add_method): Don't set DECL_VIRTUAL_CONTEXT. 6098 * decl2.c (grokclassfn): Likewise. 6099 6100 * ir.texi: Document DECL_TEMPLATE_INSTANTIATIONS. 6101 6102 * decl2.c (lang_decode_option): Don't set default message length 6103 here. 6104 * lex.c (lang_init_options): Set it here. 6105 61062000-02-16 Mark Mitchell <mark@codesourcery.com> 6107 6108 Make DECL_CONTEXT mean the class in which a member function was 6109 declared, even for a virtual function. 6110 * cp-tree.h (DECL_CLASS_CONTEXT): Adjust. 6111 (DECL_FRIEND_CONTEXT): New macro. 6112 (DECL_REAL_CONTEXT): Remove. 6113 (SET_DECL_FRIEND_CONTEXT): Likewise. 6114 (DECL_VIRTUAL_CONTEXT): Adjust. 6115 (DECL_CLASS_SCOPE_P): Use TYPE_P. 6116 (add_friends): Remove. 6117 (hack_decl_function_context): Likewise. 6118 * call.c (build_new_function_call): Replace DECL_REAL_CONTEXT with 6119 CP_DECL_CONTEXT. 6120 (build_over_call): Fix indentation. Use DECL_CONTEXT 6121 instead of DECL_CLASS_CONTEXT. 6122 * class.c (dfs_build_vcall_offset_vtbl_entries): Likewise. 6123 (add_method): Set DECL_VIRTUAL_CONTEXT, not DECL_CLASS_CONTEXT. 6124 (strictly_overrides): Use DECL_CONTEXT, not DECL_CLASS_CONTEXT. 6125 (build_vtbl_or_vbase_field): Don't set DECL_CLASS_CONTEXT. 6126 (build_base_field): Likewise. 6127 (finish_struct_1): Likewise. 6128 (build_self_reference): Likewise. 6129 * decl.c (push_class_binding): Use CP_DECL_CONTEXT, not 6130 DECL_REAL_CONTEXT. 6131 (pushtag): Use decl_function_context, not 6132 hack_decl_function_context. 6133 (decls_match): Use CP_DECL_CONTEXT, not DECL_REAL_CONTEXT. 6134 (duplicate_decls): Use DECL_VIRTUAL_CONTEXT. 6135 (pushdecl): Remove bogus code. 6136 (start_decl): Use DECL_CONTEXT rather than DECL_CLASS_CONTEXT. 6137 (cp_finish_decl): Use CP_DECL_CONTEXT, not DECL_REAL_CONTEXT. 6138 (grokfndecl): Use DECL_CONTEXT, not DECL_CLASS_CONTEXT. 6139 Use decl_function_context, nothack_decl_function_context. 6140 (grokvardecl): Don't set DECL_CLASS_CONTEXT. 6141 (grokdeclarator): Likewise. Use decl_function_context, not 6142 hack_decl_function_context. 6143 (copy_args_p): Document. Don't use DECL_CLASS_CONTEXT. 6144 (start_function): Use DECL_FRIEND_CONTEXT, not 6145 DECL_CLASS_CONTEXT. Use decl_function_context, not 6146 hack_decl_function_context. 6147 (finish_function): Use decl_function_context, not 6148 hack_decl_function_context. 6149 (maybe_retrofit_in_chrg): Use DECL_CONTEXT, not 6150 DECL_CLASS_CONTEXT. 6151 (grokclassfn): Set DECL_VIRTUAL_CONTEXT, not DECL_CONTEXT. 6152 (finish_static_data_member_decl): Don't set DECL_CLASS_CONTEXT. 6153 (grokfield): Likewise. 6154 (finish_builtin_type): Likewise. 6155 (finish_vtable_vardec): Use decl_function_context, not 6156 hack_decl_function_context. 6157 (import_export_decl): Use DECL_CONTEXT, not DECL_CLASS_CONTEXT. 6158 (start_static_initialization_or_destruction): Likewise. 6159 (finish_static_initialization_or_destruction): Likewise. 6160 (mark_used): Adjust logic for deciding when to synthesize methods. 6161 * dump.c (dequeue_and_dump): Use CP_DECL_CONTEXT, not 6162 DECL_REAL_CONTEXT. 6163 * error.c (dump_function_decl): Use DECL_CONTEXT, not 6164 DECL_CLASS_CONTEXT. 6165 * friend.c (is_friend): Likewise. 6166 (add_friends): Remove. 6167 (do_friend): Use SET_DECL_FRIEND_CONTEXT. 6168 * lex.c (begin_definition_of_inclass_inline): Use 6169 decl_function_context, not hack_decl_function_context. 6170 (process_next_inline): Likewise. 6171 (do_identifier): Use CP_DECL_CONTEXT, not DECL_REAL_CONTEXT. 6172 * method.c (set_mangled_name_for_decl): Use DECL_CONTEXT, not 6173 DECL_CLASSS_CONTEXT. 6174 (hack_identifier): Likewise. 6175 (synthesize_method): Use decl_function_context, not 6176 hack_decl_function_context. 6177 * pt.c (template_class_depth_real): Use CP_DECL_CONTEXT, not 6178 DECL_REAL_CONTEXT. 6179 (is_member_template): Use decl_function_context, not 6180 hack_decl_function_context. Use DECL_CONTEXT, not 6181 DECL_CLASS_CONTEXT. 6182 (build_template_decl): Set DECL_VIRTUAL_CONTEXT, not 6183 DECL_CLASS_CONTEXT. 6184 (check_default_tmpl_args): Use CP_DECL_CONTEXT, not 6185 DECL_REAL_CONTEXT. 6186 (push_template_decl_real): Likewise. 6187 (instantiate_class_template): Don't call add_friends. 6188 (tsubst_default_argument): Use DECL_CONTEXT, not 6189 DECL_REAL_CONTEXT. 6190 (tsubst_decl): Set DECL_VIRTUAL_CONTEXT, not DECL_CLASS_CONTEXT. 6191 Use DECL_CONTEXT, not DECL_CLASS_CONTEXT. 6192 (set_meangled_name_for_template_decl): Use DECL_CONTEXT, not 6193 DECL_CLASS_CONTEXT. 6194 * repo.c (repo_inline_used): Likewise. 6195 * search.c (current_scope): Adjust for new _CONTEXT macros. 6196 (context_for_name_lookup): Use CP_DECL_CONTEXT, not 6197 DECL_REAL_CONTEXT. 6198 (friend_accessible_p): Use DECL_CONTEXT, not DECL_CLASS_CONTEXT. 6199 (lookup_fnfields_here):Likewise. 6200 (check_final_overrider): Likewise. 6201 (init_vbase_pointers): Likewise. 6202 (virtual_context): Likewise. 6203 * semantics.c (finish_member_declaration): Just set DECL_CONTEXT. 6204 (expand_body): Use decl_function_context, not 6205 hack_decl_function_context. 6206 * tree.c (hack_decl_function_context): Remove. 6207 * typeck.c (build_x_function_call): Use DECL_CONTEXT, not 6208 DECL_CLASS_CONTEXT. 6209 * typeck2.c (error_not_base_type): Likewise. 6210 62112000-02-15 Jason Merrill <jason@casey.cygnus.com> 6212 6213 * decl.c (xref_tag): Don't SET_IDENTIFIER_NAMESPACE_VALUE. 6214 62152000-02-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 6216 6217 * Make-lang.in (g++spec.o): Depend on $(GCC_H), not gcc.h. 6218 62192000-02-15 Jonathan Larmour <jlarmour@redhat.co.uk> 6220 6221 * lang-specs.h: Add new __GNUC_PATCHLEVEL__ define to default spec. 6222 62232000-01-16 Gabriel Dos Reis <gdr@codesourcery.com> 6224 6225 * decl2.c (lang_decode_option): Enable automatic line wrapping. 6226 62272000-02-13 Jason Merrill <jason@casey.cygnus.com> 6228 6229 * parse.y (frob_specs): Split out... 6230 (parse_decl): From here. 6231 (fn.def2): Call initial_deferred_type_access_control. 6232 (after_type_component_declarator0): Call frob_specs. 6233 (notype_component_declarator0): Likewise. 6234 * search.c (friend_accessible_p): Nested classes are friends of their 6235 enclosing classes. 6236 62372000-02-10 Mark Mitchell <mark@codesourcery.com> 6238 6239 * ir.texi (ADDR_EXPR): Document the fact that an ADDR_EXPR can be 6240 used to create an implicit temporary. 6241 6242 * class.c (dfs_modify_vtables): Tweak calculation of functions to 6243 override. 6244 62452000-02-08 Nathan Sidwell <nathan@acm.org> 6246 6247 * typeck.c (strip_all_pointer_quals): Use TYPE_MAIN_VARIANT, to 6248 strip array element qualifiers too. 6249 62502000-02-07 Mark Mitchell <mark@codesourcery.com> 6251 6252 * decl.c (store_parm_decls): Don't build cleanups for parameters 6253 while processing_template_decl. 6254 62552000-02-07 Jason Merrill <jason@casey.cygnus.com> 6256 6257 * cp-tree.h (struct saved_scope): Add incomplete field. 6258 (namespace_scope_incomplete): New macro. 6259 * decl.c (pushdecl): Use it. 6260 (hack_incomplete_structures): Use it. See through artificial 6261 binding levels. 6262 (mark_saved_scope): Mark it. 6263 6264 Implement access control for nested types. 6265 * search.c (type_access_control): New fn. 6266 (accessible_p): Now we do perform access control for types. 6267 * semantics.c (deferred_type_access_control): New fn. 6268 (initial_deferred_type_access_control): New fn. 6269 (begin_function_definition): Call it. Add lookups parm. 6270 * decl.c (struct binding_level): Add this_class field. 6271 (pushlevel_class): Set it. 6272 (mark_binding_level): Mark it. 6273 (lookup_name_real): Use it. Call type_access_control. 6274 (mark_saved_scope): Mark lookups field. 6275 * cp-tree.h (flagged_type_tree): Add lookups field. 6276 (struct saved_scope): Add lookups field. 6277 (type_lookups): New macro. 6278 * parse.y (declmods): Now <ftype>. 6279 (parse_decl): Add lookups parm. Call 6280 initial_deferred_type_access_control. 6281 (lang_extdef): Clear type_lookups. 6282 (typed_declspecs, declmods, typespec): Set lookups field. 6283 (initdcl): Call deferred_type_access_control. 6284 (fn.def1, fn.def2, typed_declspecs1, initdcl0_innards, nomods_initdcl0, 6285 component_decl_1, named_parm): Adjust. 6286 * friend.c (is_friend): Nested classes are friends of their 6287 enclosing classes. 6288 6289 * class.c (currently_open_derived_class): New fn. 6290 * method.c (hack_identifier): Use it. 6291 6292 * lex.c (do_identifier): Remove obsolete code. 6293 6294 * parse.y (typed_typespecs): Propagate new_type_flag properly. 6295 62962000-02-05 Zack Weinberg <zack@wolery.cumb.org> 6297 6298 * tinfo.h: Remove apostrophes from C++ comment (xgettext 6299 thinks this file is plain C). 6300 63012000-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 6302 6303 * Makefile.in (call.o): Depend on $(EXPR_H). 6304 6305 * call.c: Include "expr.h". 6306 6307 * class.c (dump_class_hierarchy): Add prototype. 6308 6309 * search.c (dfs_get_pure_virtuals): Likewise. 6310 63112000-02-1 Ulrich Drepper <drepper@redhat.com> 6312 6313 * parse.y (simple_stmt): Allow :: token in asm parameter list. 6314 * parse.c: Rebuilt. 6315 63162000-01-31 Jim Wilson <wilson@cygnus.com> 6317 6318 * class.c (build_vtbl_or_vbase_field): New parameter fcontext. 6319 Store it in DECL_FCONTEXT. 6320 (build_vbase_pointer_fields, create_vtable_ptr): Fix callers. 6321 63222000-01-31 Jason Merrill <jason@casey.cygnus.com> 6323 6324 * tinfo.h (old abi): #include "tconfig.h". 6325 * tinfo.cc (convert_to_base): Move into old abi section. 6326 63272000-01-31 Mark Mitchell <mark@codesourcery.com> 6328 6329 * cp-tree.h (BINFO_VIRTUALS): Tweak documentation. 6330 (CLASSTYPE_PRIMARY_BINFO): Use BINFO_PRIMARY_BINFO. 6331 (BINFO_PRIMARY_BINFO): New macro. 6332 (BF_DELTA): Rename to ... 6333 (BV_DELTA): ... this. 6334 (BF_VCALL_INDEX): Rename to ... 6335 (BV_VCALL_INDEX): ... this. 6336 (BF_FN): Rename to ... 6337 (BV_FN): ... this. 6338 * class.c (build_vbase_path): Adjust for changes to reverse_path. 6339 (set_rtti_entry): Rename BF_ macros to BV_ variants. 6340 (modify_vtable_entry): Simplify. 6341 (add_virtual_function): Rename BF_ macros to BV_ variants. 6342 (build_vtable_initializer): Likewise. 6343 (get_class_offset_1): Remove. 6344 (dfs_get_class_offset): Likewise. 6345 (get_class_offset): Likewise. 6346 (dfs_find_final_overrider): New function. 6347 (find_final_overrider): Likewise. 6348 (modify_one_vtable): Remove. 6349 (dfs_find_base): New function. 6350 (dfs_modify_vtables): Fold modify_one_vtable in here. Use 6351 find_final_overrider. 6352 (modify_all_vtables): Adjust. Set BV_VCALL_INDEX on new 6353 virtuals. 6354 (dfs_fixup_vtable_deltas): Remove. 6355 (override_one_vtable): Remove. 6356 (merge_overrides): Likewise. 6357 (layout_virtual_bases): Make sure BINFO_OFFSET is set right for 6358 unreal chilren of virtual bases. 6359 (finish_struct_1): Don't use merge_overrides. Don't use 6360 dfs_fixup_vtable_deltas. 6361 * tree.c (reverse_path): Return a TREE_LIST, not a chain of 6362 BINFOs. 6363 63642000-01-31 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> 6365 Jason Merrill <jason@yorick.cygnus.com> 6366 6367 * tinfo.h: Rename USItype to myint32, depend on BITS_PER_UNIT. 6368 63692000-01-31 Alfred Minarik <a8601248@unet.univie.ac.at> 6370 6371 * exception.cc (__throw_bad_typeid): Add missing std::. 6372 63732000-01-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 6374 6375 * cp-tree.h (make_thunk): PROTO -> PARAMS. 6376 63772000-01-31 Nathan Sidwell <sidwell@codesourcery.com> 6378 6379 * cp-tree.h (new_abi_rtti_p): Use flag_new_abi. 6380 6381 Runtime support for new-abi rtti. 6382 * inc/typeinfo (type_info::operator!=): Define in class. 6383 (type_info::before, type_info::name, type_info::operator==, 6384 type_info::operator!=): Define new ABI implementations. 6385 (type_info::is_pointer_p, type_info::is_function_p): Declare 6386 new virtual functions. 6387 (type_info::do_catch, type_info::do_upcast): Likewise. 6388 6389 * tinfo.h (__base_class_info): Define new class. 6390 (__class_type_info): Likewise. 6391 (__si_class_type_info): Likewise. 6392 (__vmi_class_type_info): Likewise. 6393 (__dynamic_cast): Prototype. 6394 6395 * tinfo.cc: Conditionalize old and new rtti mechanisms. 6396 (type_info::is_pointer_p): Define new function. 6397 (type_info::is_function_p): Likewise. 6398 (type_info::do_catch): Likewise. 6399 (type_info::do_upcast): Likewise. 6400 (vtable_prefix): New structure for vtable access. 6401 (adjust_pointer): Define new template function. 6402 (contained_p, public_p, virtual_p, contained_public_p, 6403 contained_nonpublic_p, contained_nonvirtual_p): Define new 6404 functions. 6405 (nonvirtual_base_type): New local variable. 6406 (__class_type_info::~__class_type_info): Define. 6407 (__si_class_type_info::~__si_class_type_info): Likewise. 6408 (__vmi_class_type_info::~__vmi_class_type_info): Likewise. 6409 (__class_type_info::do_catch): Define new function. 6410 (__class_type_info::do_upcast): Likewise. 6411 (__class_type_info::find_public_src): Likewise. 6412 (__class_type_info::do_find_public_src): Likewise. 6413 (__si_class_type_info::do_find_public_src): Likewise. 6414 (__vmi_class_type_info::do_find_public_src): Likewise. 6415 (__class_type_info::do_dyncast): Likewise. 6416 (__si_class_type_info::do_dyncast): Likewise. 6417 (__vmi_class_type_info::do_dyncast): Likewise. 6418 (__class_type_info::do_upcast): Likewise. 6419 (__si_class_type_info::do_upcast): Likewise. 6420 (__vmi_class_type_info::do_upcast): Likewise. 6421 (__dynamic_cast): Likewise. 6422 6423 * tinfo2.cc (__fundamental_type_info): Define new class. 6424 (__pointer_type_info): Likewise. 6425 (__reference_type_info): Likewise. 6426 (__array_type_info): Likewise. 6427 (__function_type_info): Likewise. 6428 (__enum_type_info): Likewise. 6429 (__ptr_to_member_type_info): Likewise. 6430 (__fundamental_type_info::~__fundamental_type_info): Define. 6431 (__pointer_type_info::~__pointer_type_info): Likewise. 6432 (__reference_type_info::~__reference_type_info): Likewise. 6433 (__array_type_info::~__array_type_info): Likewise. 6434 (__function_type_info::~__function_type_info): Likewise. 6435 (__enum_type_info::~__enum_type_info): Likewise. 6436 (__ptr_to_member_type_info::~__ptr_to_member_type_info): Likewise. 6437 (__pointer_type_info::do_catch): Define new function. 6438 (__ptr_to_member_type_info::do_catch): Define new function. 6439 6440 (__throw_type_match_rtti_2): Use new ABI interface, if enabled. 6441 (__is_pointer): Likewise. 6442 6443 * exception.cc (__cplus_type_matcher): Deal with new-abi rtti. 6444 64452000-01-30 Mark Mitchell <mark@codesourcery.com> 6446 6447 * cp/class.c (build_vtable): Rename to build_primary_vtable. 6448 (prepare_fresh_vtable): Rename to build_secondary_vtable. 6449 (make_new_vtable): New function. 6450 (modify_vtable_entry): Handle generation of new vtables correctly. 6451 (modify_one_vtable): Remove unused parameter. 6452 (dfs_fixup_vtable_deltas): Likewise. 6453 (override_one_vtable): Use build_secondary_vtable. 6454 (finish_struct_1): Use build_primary_vtable and 6455 build_secondary_vtable. 6456 64572000-01-28 Ulrich Drepper <drepper@redhat.com> 6458 6459 * cp/decl.c: Adjust variable names, comments, help strings. 6460 64612000-01-29 Nathan Sidwell <nathan@acm.org> 6462 6463 * new2.cc (operator delete[]): Use operator delete, don't assume 6464 implementation. 6465 64662000-01-29 Nathan Sidwell <sidwell@codesourcery.com> 6467 6468 * class.c (build_vtbl_initializer): Add argument to 6469 build_vtable_entry call. 6470 64712000-01-27 Mark Mitchell <mark@codesourcery.com> 6472 6473 * cp-tree.def (THUNK_DECL): Discuss vcall indices. 6474 * cp-tree.h (BINFO_VIRTUALS): Update documentation. 6475 (BF_DELTA): New macro. 6476 (BF_VCALL_INDEX): Likewise. 6477 (BF_FN): Likewise. 6478 (THUNK_VCALL_OFFSET): Likewise. 6479 (make_thunk): Change prototype. 6480 * class.c (build_vtable_entry): Integrate 6481 build_vtable_entry_for_fn. Handle vcall indices. 6482 (build_vtable_entry_for_fn): Remove. 6483 (set_rtti_entry): Handle vcall indices. Use BF_DELTA, 6484 BF_VCALL_INDEX, BF_FN. 6485 (modify_vtable_entry): Integrate common code from 6486 modify_one_vtable and dfs_fixup_vtable_deltas. 6487 (add_virtual_function): Set BF_VCALL_INDEX. 6488 (build_vtbl_initializer): Simplify. Use BF_DELTA, BF_VCALL_INDEX, 6489 and BF_FN. 6490 (modify_one_vtable): Simplify. 6491 (dfs_fixup_vtable_deltas): Likewise. 6492 (override_one_vtable): Use BF_DELTA, BF_VCALL_INDEX, BF_FN. 6493 * method.c (make_thunk): Handle vcall indices. 6494 64952000-01-28 Nathan Sidwell <sidwell@codesourcery.com> 6496 6497 Compiler side new abi rtti (not enabled). 6498 * cp-tree.h (new_abi_rtti_p): New macro. 6499 (emit_support_tinfos): Prototype new function. 6500 (tinfo_decl_p): Likewise. 6501 (emit_tinfo_decl): Likwise. 6502 * rtti.c (TINFO_PSEUDO_TYPE, TINFO_VTABLE_DECL): New accessor 6503 macros. 6504 (doing_runtime): New local static. 6505 (init_rtti_processing): Add new-abi initializer. 6506 (get_tinfo_decl): Add new-abi logic. 6507 (tinfo_from_decl): Likewise. 6508 (build_dynamic_cast_1): Likewise. 6509 (qualifier_flags): New static function. 6510 (tinfo_base_init): Likewise. 6511 (generic_initializer): Likewise. 6512 (ptr_ref_initializer): Likewise. 6513 (ptmd_initializer): Likewise. 6514 (class_hint_flags): Likewise. 6515 (class_initializer): Likewise. 6516 (synthesize_tinfo_var): Likewise. 6517 (create_real_tinfo_var): Likewise. 6518 (create_pseudo_type_info): Likewise. 6519 (get_vmi_pseudo_type_info): Likewise. 6520 (create_tinfo_types): Likewise. 6521 (emit_support_tinfos): New global function. 6522 (tinfo_decl_p): New global predicate. 6523 (emit_tinfo_decl): New global function. 6524 * class.c (set_rtti_entry): Generalize for old and new rtti. 6525 (build_vtbl_initializer): Likewise. 6526 * decl2.c (finish_file): Likewise. 6527 65282000-01-27 Jim Wilson <wilson@cygnus.com> 6529 6530 * optimize.c (remap_decl): Add walk_tree calls for DECL_SIZE (t) 6531 and TYPE_MAX_VALUE (TYPE_DOMAIN (TREE_TYPE (t))). 6532 65332000-01-27 Mike Stump <mrs@wrs.com> 6534 6535 * decl.c (pushdecl): Fix up shadow warnings with respect to implicit 6536 for scopes. 6537 65382000-01-26 Jason Merrill <jason@casey.cygnus.com> 6539 6540 * pt.c (unify): Use fold, not maybe_fold_nontype_arg. 6541 65422000-01-26 J"orn Rennecke <amylaar@cygnus.co.uk> 6543 6544 * optimize.c (calls_setjmp_r): Supply new argument 6545 to special_function_p. 6546 65472000-01-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 6548 6549 * call.c: PROTO -> PARAMS. 6550 * class.c: Likewise. 6551 * cp-tree.h: Likewise. 6552 * cvt.c: Likewise. 6553 * decl.c: Likewise. 6554 * decl.h: Likewise. 6555 * decl2.c: Likewise. 6556 * dump.c: Likewise. 6557 * errfn.c: Likewise. 6558 * error.c: Likewise. 6559 * except.c: Likewise. 6560 * expr.c: Likewise. 6561 * init.c: Likewise. 6562 * input.c: Likewise. 6563 * lex.c: Likewise. 6564 * lex.h: Likewise. 6565 * method.c: Likewise. 6566 * optimize.c: Likewise. 6567 * parse.y: Likewise. 6568 * pt.c: Likewise. 6569 * repo.c: Likewise. 6570 * rtti.c: Likewise. 6571 * search.c: Likewise. 6572 * semantics.c: Likewise. 6573 * spew.c: Likewise. 6574 * tree.c: Likewise. 6575 * typeck.c: Likewise. 6576 * typeck2.c: Likewise. 6577 * xref.c: Likewise. 6578 65792000-01-25 Richard Henderson <rth@cygnus.com> 6580 6581 * typeck.c (build_binary_op_nodefault): Remove UNNE_EXPR. 6582 65832000-01-25 Mark Mitchell <mark@codesourcery.com> 6584 6585 * cp-tree.h (vcall_offset_in_vtable_p): New macro. 6586 * class.c (build_vbase_offset_vtbl_entries): Fix typo in commment. 6587 (struct vcall_offset_data_s): New type. 6588 (dfs_vcall_offset_queue_p): New function. 6589 (dfs_build_vcall_offset_vtbl_entries): Likewise. 6590 (build_vcall_offset_vtbl_entries): Likewise. 6591 (layout_vtable_decl): Likewise. 6592 (num_vfun_entries): Likewise. 6593 (num_extra_vtbl_entries): Add the entries for vcall offsets. 6594 (build_vtbl_initializer): Likewise. 6595 (dfs_finish_vtabls): Use layout_vtable_decl. 6596 (modify_one_vtables): Always duplicate vtables under the new ABI. 6597 (finish_struct_1): Use layout_vtable_decl. 6598 65992000-01-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 6600 6601 * decl.c (member_function_or_else): Change third arg from a format 6602 specifier to an `enum overload_flags'. Callers changed. 6603 66042000-01-25 Gabriel Dos Reis <gdr@codesourcery.com> 6605 6606 * typeck.c (composite_pointer_type, c_sizeof, expr_sizeof, 6607 build_binary_op_nodefault, build_unary_op, build_reinterpret_cast, 6608 build_const_cast, get_delta_difference, check_return_expr): Avoid 6609 ANSI string concatenation usage. 6610 66112000-01-24 Mark Mitchell <mark@codesourcery.com> 6612 6613 * class.c (layout_class_type): Put the fields required to make a 6614 class non-empty at the end, not the beginning, of the TYPE_FIELDs 6615 list. 6616 66172000-01-24 Jason Merrill <jason@casey.cygnus.com> 6618 6619 * pt.c (maybe_fold_nontype_arg): Do nothing if we're not in a 6620 template. 6621 6622 * decl2.c (mark_used): Do instantiate inlines that have been 6623 explicitly instantiated. 6624 66252000-01-24 Richard Henderson <rth@cygnus.com> 6626 6627 * call.c (build_over_call): Use expand_tree_builtin. 6628 * typeck.c (build_function_call_real): Likewise. 6629 (build_binary_op_nodefault): Handle unordered compares. 6630 66312000-01-24 Nathan Sidwell <sidwell@codesourcery.com> 6632 6633 * cp-tree.h (CPTI_BAD_CAST, CPTI_BAD_TYPEID, CPTI_DCAST): New 6634 cp_tree_index values. 6635 (throw_bad_cast_node, throw_bad_typeid_node, dynamic_cast_node): 6636 New global node #defines for them. 6637 * rtti.c (call_void_fn): Replace with ... 6638 (build_runtime_decl): ... new static function. 6639 (throw_bad_cast): Use throw_bad_cast_node and build_runtime_decl. 6640 (throw_bad_typeid): Use throw_bad_typeid_node and build_runtime_decl. 6641 (build_dynamic_cast_1): Always produce correctly typed result. 6642 Explicitly produce type_info addresses. Use dynamic_cast_node. 6643 * exception.cc (__throw_bad_cast): Return `void *'. 6644 (__throw_bad_typeid): Return `const type_info &'. 6645 66462000-01-24 Nathan Sidwell <sidwell@codesourcery.com> 6647 6648 * cp-tree.h (get_vtable_decl): Prototype new function. 6649 * class.c (get_vtable_decl): New function. Broken out from ... 6650 (build_vtable): ... here. Use it. 6651 * decl2.c (finish_vtable_vardecl): Ignore dummy vtables created 6652 by get_vtable_decl. 6653 66542000-01-24 Nathan Sidwell <sidwell@codesourcery.com> 6655 6656 * cp-tree.h (CPTI_TP_DESC_TYPE, CPTI_ACCESS_MODE_TYPE, 6657 CPTI_USER_DESC_TYPE, CPTI_CLASS_DESC_TYPE, CPTI_ATTR_DESC_TYPE, 6658 CPTI_PTMF_DESC_TYPE): Remove cp_tree_index enumerations. 6659 (CPTI_TI_DESC_TYPE, CPTI_REF_DESC_TYPE, CPTI_ARY_DESC_TYPE, 6660 CPTI_ENUM_DESC_TYPE, CPTI_CLASS_DESC_TYPE, CPTI_SI_CLASS_DESC_TYPE, 6661 CPTI_VMI_CLASS_DESC_TYPE, CPTI_BASE_DESC_TYPE): New enumerations. 6662 (CPTI_TINFO_FN_ID, CPTI_TINFO_FN_TYPE): Rename to ... 6663 (CPTI_TINFO_DECL_ID, CPTI_TINFO_DECL_TYPE): ... here. 6664 (CPTI_TINFO_VAR_ID): New enumeration. 6665 (__tp_desc_type_node, __access_mode_type_node, 6666 __bltn_desc_type_node, __user_desc_type_node, 6667 __class_desc_type_node, __ptr_desc_type_node, 6668 __attr_desc_type_node, __func_desc_type_node, 6669 __ptmf_desc_type_node, __ptmd_desc_type_node): Remove #defines. 6670 (ti_desc_type_node, bltn_desc_type_node, ptr_desc_type_node, 6671 ref_desc_type_node, ary_desc_type_node, func_desc_type_node, 6672 enum_desc_type_node, class_desc_type_node, 6673 si_class_desc_type_node, vmi_class_desc_type_node, 6674 ptmd_desc_type_node, base_desc_type_node): New #defines. 6675 (tinfo_fn_id, tinfo_fn_type): Rename to ... 6676 (tinfo_decl_id, tinfo_decl_type): ... here. Adjust. 6677 (tinfo_var_id): New enumeration. 6678 (DECL_TINFO_FN_P): Augment comment. 6679 * decl.c (cp_global_trees): Adjust documentation. 6680 * rtti.c (init_rtti_processing): Adjust for tinfo_decl_id, 6681 tinfo_decl_type and tinfo_var_id. 6682 (get_tinfo_decl_dynamic): Adjust for tinfo_decl_type. 6683 (build_typeid): Remove unused variable. 6684 (get_tinfo_var): Use tinfo_var_id. 6685 (tinfo_name): New static function. 6686 (get_tinfo_decl): Adjust for tinfo_decl_id and tinfo_decl_type. 6687 (tinfo_from_decl): Likewise. 6688 (get_base_offset): New static function, broken out of 6689 expand_class_desc. 6690 (expand_si_desc): Use tinfo_name. 6691 (expand_class_desc): Likewise. Lose local static variable. 6692 Use base_desc_type_node. Use get_base_offset. 6693 (expand_ptr_desc): Use tinfo_name. 6694 (expand_attr_desc): Likewise. 6695 (expand_generic_desc): Likewise. 6696 6697 * tinfo.cc (__GXX_ABI_VERSION): Test value and existence. 6698 * tinfo.h (__GXX_ABI_VERSION): Test value and existence. 6699 67002000-01-23 Mark Mitchell <mark@codesourcery.com> 6701 6702 * cp-tree.h (__eprintf): Remove declaration. 6703 * tree.c (__eprintf): Remove definition. 6704 67052000-01-23 Zack Weinberg <zack@rabi.columbia.edu> 6706 Mark Mitchell <mark@codesourcery.com> 6707 6708 * cp-tree.h (CLASSTYPE_MARKED_N, SET_CLASSTYPE_MARKED_N, 6709 CLEAR_CLASSTYPE_MARKED_N): Avoid signed vs. unsigned warnings. 6710 67112000-01-23 Brad Lucier <lucier@math.purdue.edu> 6712 6713 * class.c (dump_class_hierarchy): Print HOST_WIDE_INT properly. 6714 67152000-01-23 Mark Mitchell <mark@codesourcery.com> 6716 6717 * cp-tree.h (register_dtor_fn): New function. 6718 * decl.c (destroy_local_static): Rename to ... 6719 (register_dtor_fn): ... this. Give it external linkage. 6720 (expand_static_init): Use it. 6721 * decl2.c (do_static_initialization): Likewise, if using 6722 __cxa_atexit. 6723 (do_static_destruction): Check that __cxa_atexit is not in use. 6724 (finish_file): Don't call do_static_destruction if using 6725 __cxa_atexit. 6726 6727 * typeck.c (convert_arguments): Restore two-message error 6728 reporting. 6729 67302000-01-20 Nathan Sidwell <sidwell@codesourcery.com> 6731 6732 Remap dynamic cast hint values to be consistent across ABIs. 6733 * search.c (dynamic_cast_base_recurse): Remap generated value. 6734 (get_dynamic_cast_base_type): Adjust documentation. 6735 * tinfo.h (__user_type_info::dyncast): Likewise. 6736 (__user_type_info::find_public_subobj): Remap BOFF meaning. 6737 * tinfo.cc (__si_type_info::do_dyncast): Remap BOFF meaning. 6738 (__class_type_info::do_dyncast): Likewise. 6739 (__class_type_info::do_find_public_subobj): Likewise. 6740 * tinfo2.cc (__dynamic_cast): Remap BOFF parameter. 6741 67422000-01-19 Gabriel Dos Reis <gdr@codesourcery.com> 6743 6744 * typeck.c (build_unary_op): Use cp_pedwarn, not pedwarn. 6745 6746 * typeck2.c (incomplete_type_error): Restore previous 6747 cp_error and cp_error_at call sequence. 6748 67492000-01-20 Brad Lucier <lucier@math.purdue.edu> 6750 6751 * class.c (dump_class_hierarchy): Make format agree with argument; 6752 cast pointer to unsigned long and print with %lx. 6753 67542000-01-19 Gabriel Dos Reis <gdr@codesourcery.com> 6755 6756 * decl2.c (lang_decode_option): Set default line-wrap length to 72. 6757 6758 * typeck.c (composite_pointer_type, common_type, 6759 comp_target_parms, c_sizeof, expr_sizeof, build_array_ref, 6760 build_function_call_real, convert_arguments, 6761 build_binary_op_nodefault, pointer_int_sum, pointer_diff, 6762 build_unary_op, mark_addressable, build_compound_expr, 6763 build_static_cast, build_reinterpret_cast, build_const_cast, 6764 build_c_cast, build_modify_expr, get_delta_difference, 6765 build_ptrmemfunc, check_return_expr): Replace 'ANSI C++' with 6766 'ISO C++'. Fusion consecutive calls to diagnostic message routines 6767 into a single one. 6768 * typeck2.c (readonly_error, abstract_virtuals_error, 6769 process_init_constructor, check_for_new_type): Likewise. 6770 67712000-01-19 Mark Mitchell <mark@codesourcery.com> 6772 6773 * tree.c (bot_manip): Set DECL_CONTEXT for newly created 6774 VAR_DECLs. 6775 67762000-01-18 Nathan Sidwell <sidwell@codesourcery.com> 6777 6778 * cp-tree.h (get_tinfo_fn_dynamic): Remove prototype. 6779 (build_x_typeid): Likewise. 6780 (get_tinfo_fn): Likewise. 6781 (get_tinfo_fn_unused): Rename to ... 6782 (get_tinfo_decl): ... here. 6783 * rtti.c (build_headof): Replace logic error with assertion. 6784 (get_tinfo_fn_dynamic): Rename to ... 6785 (get_tinfo_decl_dynamic): ... here. Make static. Use 6786 complete_type_or_else. 6787 (build_x_typeid): Move into ... 6788 (build_typeid): ... here. Adjust call to 6789 get_tinfo_decl_dynamic. Use tinfo_from_decl. Simplify 6790 throw_bad_typeid expression. 6791 (get_tinfo_fn_unused): Rename to ... 6792 (get_tinfo_decl): ... here. Adjust comment. 6793 (get_tinfo_fn): Delete. 6794 (tinfo_from_decl): New static function. 6795 (get_typeid_1): Call get_tinfo_decl and tinfo_from_decl. 6796 (get_typeid): Use complete_type_or_else. 6797 (build_dynamic_cast_1): Adjust calls to 6798 get_tinfo_decl_dynamic. Simplify throw_bad_cast expression. 6799 * parse.y (primary): Adjust call to build_typeid. 6800 * except.c (build_eh_type_type_ref): Adjust call to 6801 get_tinfo_decl. Mark as used. 6802 * class.c (set_rtti_entry): Adjust call to get_tinfo_decl. 6803 * decl2.c (build_expr_from_tree): Adjust call to build_typeid. 6804 * parse.c: Regenerated. 6805 68062000-01-17 Mark Mitchell <mark@codesourcery.com> 6807 6808 * class.c (fixed_type_or_null): Don't clear NONNULL. Document 6809 calling convention. 6810 (resolves_to_fixed_type_p): Document calling convention. 6811 * rtti.c (build_x_typeid): Initialize NONNULL. 6812 6813 * cp-tree.h (build_shared_int_cst): New function. 6814 * call.c (build_over_call): Use DECL_VIRTUAL_CONTEXT, for clarity. 6815 * class.c (modify_vtable_entry): Likewise. 6816 (add_virtual_function): Split out code to generated shared 6817 INTEGER_CSTs to build_share_int_cst. 6818 (modify_all_vtables): Handle all the overridden functions here. 6819 Add overridden functions from non-primary virtual bases to the 6820 primary vtable. 6821 (finish_struct_1): Adjust call to modify_all_vtables. Add 6822 overridden functions from non-primary bases to the vtable. 6823 * tree.c (build_shared_int_cst): New function. 6824 6825 * cp-tree.h (scratchalloc): Remove. 6826 (build_scratch_list): Likewise. 6827 * call.c (convert_class_to_reference): Replace build_scratch_list 6828 and build_expr_list with build_tree_list. 6829 (add_candidate): Replace scratchalloc with expralloc. Note memory 6830 leak. 6831 (build_user_type_conversion_1): Replace build_scratch_list 6832 and build_expr_list with build_tree_list. 6833 (build_new_op): Likewise. 6834 (build_op_delete_call): Likewise. 6835 (convert_like): Likewise. 6836 * cvt.c (ocp_convert): Likewise. 6837 * decl.c (start_decl): Likewise. 6838 (start_function): Likewise. 6839 (finish_destructor_body): Likewise. 6840 (maybe_build_cleanup_1): Likewise. 6841 * decl2.c (reparse_decl_as_expr): Likewise. 6842 * init.c (perform_member_init): Likewise. 6843 (expand_cleanup_for_base): Likewise. 6844 (build_builtin_delete_call): Likewise. 6845 (build_new_1): Likewise. 6846 (build_delete): Likewise. 6847 * method.c (do_build_assign_ref): Likewise. 6848 * parse.y (already_scoped_stmt): Likewise. 6849 (nontrivial_exprlist): Likewise. 6850 (net_initializer): Likewise. 6851 (initlist): Likewise. 6852 * parse.c: Regenerated. 6853 * rtti.c (build_x_typeid): Likewise. 6854 (build_dynamic_cast_1): Likewise. 6855 * typeck.c (build_x_compound_expr): Likewise. 6856 (build_static_cast): Likewise. 6857 (build_modify_expr): Likewise. 6858 6859 * cp-tree.h (DECL_VINDEX): Add documentation. 6860 * class.c (build_vtable_entry): Likewise. 6861 (start_vtable): Add comment. 6862 (add_virtual_function): Replace pending_hard_virtuals with 6863 overridden_virtuals and pending_virtuals with new_virtuals. 6864 Replace redundant assignments with assertions. 6865 (check_for_override): Add comment. 6866 (check_bases_and_members): Replace pending_hard_virtuals with 6867 overridden_virtuals and pending_virtuals with new_virtuals. 6868 (create_vtbl_ptr): Likewise. 6869 (layout_class_type): Likewise. 6870 (finish_struct_1): Likewise. Add comments. 6871 68722000-01-16 Mark Mitchell <mark@codesourcery.com> 6873 6874 * class.c (finish_struct_1): Replace redundant code with 6875 assertions. 6876 6877 * cp-tree.h (flag_new_abi): Move. 6878 (flag_use_cxa_atexit): Likewise. 6879 (flag_honor_std): Likewise. 6880 (flag_rtti): Likewise. 6881 (vbase_offsets_in_vtable_p): Define. 6882 (vptrs_present_everywhere_p): Likewise. 6883 (TYPE_CONTAINS_VPTR_P): Likewise. 6884 (dfs_walk_real): Declare. 6885 * class.c (build_vbase_pointer_fields): Check 6886 vbase_offsets_in_vtable_p. 6887 (dfs_build_vbase_offset_vtbl_entries): Record the vbase indices in 6888 BINFO_VPTR_FIELD. 6889 (build_vbase_offset_vtbl_entries): Simplify. 6890 (build_vbase_offset_vtbl_entries): Adjust. 6891 (build_vbase_pointer): Add ability to look up vbase offsets in 6892 vtable. 6893 (start_vtable): New function. 6894 (add_virtual_function): Use it. 6895 (determine_primary_base): Use TYPE_CONTAINS_VPTR_P. 6896 (num_extra_vtbl_entries): Use vbase_offsets_in_vtable_p. 6897 (build_vtbl_initializer): Take the type of the complete object as 6898 input. Use it to correctly calculate vbase offsets. 6899 (dfs_finish_vtbls): Pass the complete type to 6900 build_vtbl_initializer. 6901 (check_bases_and_members): Use TYPE_CONTAINS_VPTR_P. 6902 (create_vtable_ptr): Create a vtable even if there are no 6903 new virtual functions, under the new ABI. 6904 (finish_struct_1): Likewise. 6905 (get_vfield_name): Use TYPE_CONTAINS_VPTR_P. 6906 * decl.c (exapnd_static_init): Remove call to 6907 preserve_initializer. 6908 * decl2.c (mark_vtable_entries): Tweak to handle vbase offsets in 6909 vtables. 6910 * init.c (initialize_vtbl_ptrs): Initialize them in pre-order. 6911 (expand_virtual_init): Use vbase_offsets_in_vtable_p. 6912 (construct_virtual_bases): Don't initialize virtual base pointers 6913 under the new ABI. 6914 (build_aggr_init): Clean up comment. 6915 (expand_aggr_init_1): Likewise. 6916 * rtti.c (expand_class_desc): Store the virtual function table 6917 index where the vbase offset lives in the offset field. 6918 * search.c (dfs_walk_real): Make it global. 6919 (dfs_debug_mark): Use TYPE_CONTAINS_VPTR_P. 6920 * tree.c (make_binfo): Don't clear BINFO_VPTR_FIELD. 6921 6922 * tinfo.h (USItype): Make it signed under the new ABI. 6923 * tinfo.cc (convert_to_base): New function. Encapsulate base 6924 conversion logic here. 6925 (__class_type_info::do_upcast): Use it. 6926 (__class_type_info::do_dyncast): Likewise. 6927 (__class_type_info::do_find_public_subobj): Likewise. 6928 6929 * init.c (construct_virtual_bases): Don't look up the addresses of 6930 virtual bases at run-time. 6931 6932 * class.c (build_vbase_pointer): Relocate. 6933 (build_vbase_pointer_fields): Likewise. 6934 (dfs_build_vbase_offset_vtbl_entries): Likewise. 6935 (build_vbase_offset_vtbl_entries): Likewise. 6936 6937 * decl.c (init_decl_processing): Complain if -fnew-abi 6938 -fno-vtable-thunks is used. 6939 6940 * decl2.c (lang_decode_option): Don't couple flag_honor_std to 6941 flag_new_abi. 6942 69432000-01-15 Mark Mitchell <mark@codesourcery.com> 6944 6945 * cp-tree.h (num_extra_vtbl_entries): New function. 6946 (size_extra_vtbl_entries): Likewise. 6947 (dfs_vtable_path_unmark): Likewise. 6948 (dfs_vtable_path_unmarked_real_bases_queue_p): Likewise. 6949 (dfs_vtable_path_marked_real_bases_queue_p): Likewise. 6950 * class.c (num_extra_vtbl_entries): New function. 6951 (size_extra_vtbl_entries): Likewise. 6952 (dfs_build_vbase_offset_vtbl_entries): New function. 6953 (build_vbase_offset_vtbl_entries): Likewise. 6954 (build_vtbl_initializer): Use it. 6955 (finish_struct_1): Adjust vtable sizes (using 6956 num_extra_vtbl_entries). 6957 * expr.c (cplus_expand_expr): Assert that the DECL_RTL for a 6958 THUNK_DECL is non-NULL before expanding it. 6959 * init.c (expand_virtual_init): Adjust the vtable pointer by 6960 size_extra_vtbl_entries before storing it. 6961 * search.c (get_shared_vase_if_not_primary): Adjust prototype. 6962 Handle TREE_LIST parameters here, not in the dfs_* functions. 6963 (dfs_unmarked_real_bases_queue_p): Adjust. 6964 (dfs_marked_real_bases_queue_p): Likewise. 6965 (dfs_vtable_path_unmarked_real_bases_queue_p): New function. 6966 (dfs_vtable_path_marked_real_bases_queue_p): New function. 6967 (dfs_vtable_path_unmark): Likewise. 6968 69692000-01-14 Mark Mitchell <mark@codesourcery.com> 6970 6971 * optimize.c (copy_body_r): Clear the operand three of a 6972 TARGET_EXPR when copying it. 6973 69742000-01-14 Martin v. Löwis <loewis@informatik.hu-berlin.de> 6975 6976 * method.c (build_decl_overload_real): Check whether we are in :: 6977 before returning __builtin_new/delete. 6978 69792000-01-13 Mark Mitchell <mark@codesourcery.com> 6980 6981 * pt.c (tsubst_friend_function): Improve comment. 6982 (instantiate_decl): Avoid crashing when a "nested" function is 6983 instantiated from the top level. 6984 6985 * dump.c (dqeueue_and_dump): Dump 6986 DECL_FRIEND_PSEUDO_TEMPLATE_INSTANTIATION. 6987 69882000-01-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 6989 6990 * call.c: If GATHER_STATISTICS, declare `n_build_method_call'. 6991 69922000-01-13 Nathan Sidwell <sidwell@codesourcery.com> 6993 6994 * g++spec.c (lang_specific_driver): Add -fnew-abi if 6995 ENABLE_NEW_GXX_ABI defined. 6996 * Make-lang.in (tinfo.o, tinfo2.o, exception.o, new.o, 6997 opnew.o, opnewnt.o, opvnew.o, opvnewnt.o, opdel.o, opdelnt.o, 6998 opvdel.o, opvdelnt.o): Use GXX_ABI_FLAG switch. 6999 70002000-01-12 Mark Mitchell <mark@codesourcery.com> 7001 7002 * decl.c (start_cleanup_fn): Call pushdecl. 7003 7004 * call.c (convert_class_to_reference): Fix typos. 7005 (build_conditional_expr): Handle errors gracefully. 7006 * class.c (push_nested_class): Likewise. 7007 * cp-tree.h (VAR_FUNCTION_OR_PARM_DECL_CHECK): New macro. 7008 (DECL_THIS_EXTERN): Use it. 7009 (DECL_THIS_STATIC): Likewise. 7010 * cvt.c (convert_to_void): Handle errors gracefully. 7011 (build_expr_type_conversion): Likewise. 7012 * decl.c (maybe_push_decl): Likewise. 7013 (start_decl_1): Likewise. 7014 (require_complete_types_for_parms): Likewise. 7015 * parse.y (structsp): Likewise. 7016 (base_class): Likewise. 7017 * parse.c: Regenerated. 7018 * pt.c (finish_member_template_decl): Likewise. 7019 * typeck.c (decay_conversion): Likewise. 7020 7021 * cp-tree.h (dfs_skip_vbases): New function. 7022 (find_vbase_instance): Likewise. 7023 * class.c (determine_primary_base): Allow a nearly empty base to 7024 serve as a primary base class under the new ABI. 7025 (get_class_offset_1): Rename to ... 7026 (dfs_get_class_offset): ... this. Simplify. Don't issue error 7027 messages here. 7028 (get_class_offset): Use it. Issue error messages here. 7029 (dfs_modify_vtables): Rely on dfs_unmarked_real_bases_queue_p to 7030 find the right copies of virtual bases. 7031 (fixup_vtable_deltas1): Rename to ... 7032 (dfs_fixup_vtable_deltas): ... this. Adjust to handle virtual 7033 bases as primary bases. 7034 (fixup_vtable_deltas): Remove. 7035 (override_one_vtable): Handle virtual bases as primary bases. 7036 (merge_overrides): Likewise. 7037 (finish_struct_1): Likewise. 7038 (dump_class_hierarchy): Dump primary-ness of bases as well. 7039 * search.c (mark_primary_bases): Use a pre-order traversal to 7040 handle primary virtual bases. 7041 (dfs_skip_vbases): New fiunction. 7042 (expand_upcast_fixups): Adjust to handle primary virtual bases. 7043 (fixup_virtual_upcast_offsets): Likewise. 7044 (fixup_all_virtual_upcast_offsets): Likewise. 7045 (dfs_find_vbase_instances): New function. 7046 (find_vbase_instance): Likewise. 7047 70482000-01-11 Mumit Khan <khan@xraylith.wisc.edu> 7049 7050 * lex.c (DIR_SEPARATOR): Delete macro. 7051 70522000-01-12 Gabriel Dos Reis <gdr@codesourcery.com> 7053 7054 * decl2.c (lang_decode_option): Handle automatic line wrapping 7055 option. 7056 70572000-01-11 Mark Mitchell <mark@codesourcery.com> 7058 7059 * friend.c (do_friend): Don't resolve scopes when processing 7060 template declarations, even if the qualifying scope doesn't 7061 involve template parameters. 7062 70632000-01-10 Mark Mitchell <mitchell@dumbledore.codesourcery.com> 7064 7065 * class.c (dfs_modify_vtables_queue_p): Remove. 7066 (modify_all_vtables): Use dfs_unmarked_real_bases_queue_p 7067 and dfs_marked_real_bases_queue_p instead of 7068 dfs_modify_vtables_queue_p. 7069 7070 * class.c (build_vbase_path): Simplify. 7071 (dfs_propagate_binfo_offsets): New function. 7072 (propagate_binfo_offsets): Use it. 7073 (remove_base_field): Simplify. 7074 (dfs_set_offset_for_vbases): Remove. 7075 (dfs_set_offset_for_shared_vbases): New function. 7076 (dfs_set_offset_for_unshared_vbases): Likewise. 7077 (layout_virtual_bases): Use them. 7078 (layout_basetypes): Don't call propagate_binfo_offsets. 7079 * search.c (dfs_get_vbase_types): Clone completely fresh binfos 7080 for the vbases. 7081 7082 * class.c (build_base_field): New function, split out from ... 7083 (build_base_fields): ... here. Use it. Allocate primary bases 7084 first, under the new ABI. 7085 (get_vtable_entry): Remove. 7086 (remove_base_field): New function, split out from ... 7087 (remove_base_fields): ... here. Adjust since primary bases come 7088 first under the new ABI. 7089 7090 * cp-tree.h (expand_direct_vtbls_init): Remove declaration. 7091 (initialize_vtbl_ptrs): New function. 7092 (expand_indirect_vtbls_init): Change prototype. 7093 (convert_pointer_to_vbase): Declare. 7094 * init.c (expand_direct_vtbls_init): Remove. 7095 (dfs_initialize_vtbl_ptrs): New function. 7096 (initialize_vtbl_ptrs): Likewise. 7097 (emit_base_init): Use initialize_vtbl_ptrs. 7098 * search.c (convert_pointer_to_vbase): Make it global. 7099 (expand_indirect_vtbls_init): Remove vtable initialization code. 7100 * semantics.c (setup_vtbl_ptr): Use initialize_vtbl_ptrs. 7101 7102 * class.c (dfs_finish_vtbls): New function. 7103 (finish_vtbls): Use it. 7104 (dump_class_hierarchy): New function. 7105 7106 * cp-tree.h (BINFO_PRIMARY_MARKED_P): Change definition. 7107 (BINFO_VBASE_PRIMARY_P): New macro. 7108 (BINFO_VIRTUALS): Add to documentation. 7109 (SET_BINFO_PRIMARY_MARKED_P): Remove. 7110 (CLEAR_BINFO_PRIMARY_MARKED_P): Likewise. 7111 (dfs_mark_primary_bases_queue_p): Likewise. 7112 (dfs_unmarked_real_bases_queue_p): New function. 7113 (dfs_marked_real_bases_queue_p): Likewise. 7114 * search.c (dfs_mark_primary_bases): Adjust. 7115 (mark_primary_bases): Likewise. 7116 (get_shared_vbase_if_not_primary): New function. 7117 (dfs_unmarked_real_bases_queue_p): Likewise. 7118 (dfs_marked_real_bases_queue_p): Likewise. 7119 (dfs_get_pure_virtuals): Simplify. 7120 (get_pure_virtuals): Likewise. 7121 71222000-01-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 7123 7124 * lex.c: Include tm_p.h. 7125 71262000-01-07 Nathan Sidwell <sidwell@codesourcery.com> 7127 7128 * lang-specs.h (__GXX_ABI_VERSION): New preprocessor macro. 7129 71302000-01-06 Jason Merrill <jason@casey.cygnus.com> 7131 7132 * decl2.c (comdat_linkage): Don't set DECL_DEFER_OUTPUT. 7133 * pt.c (instantiate_decl): Defer comdat templates that might not be 7134 needed. 7135 7136 * cp-tree.h (DECL_NEEDED_P): Also true if !DECL_COMDAT. 7137 * decl2.c (finish_vtable_vardecl): Don't check !DECL_COMDAT. 7138 (finish_file): Likewise. 7139 7140 * decl2.c (import_export_class): Undo 12/14 change. 7141 7142 * error.c (dump_decl): operator new, not operatornew. 7143 7144 * class.c (field_decl_cmp): A nontype is "greater" than a type. 7145 * search.c (lookup_field_1): Look for the last field with the 7146 desired name. 7147 71482000-01-05 Nathan Sidwell <nathan@acm.org> 7149 7150 * decl2.c (lookup_arg_dependent): Deal with FNS not being a 7151 FUNCTION_DECL. 7152 71532000-01-05 Nathan Sidwell <nathan@acm.org> 7154 7155 * typeck.c (build_static_cast): Don't strip target qualifiers 7156 when casting from a class. 7157 71582000-01-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 7159 7160 * class.c (warn_hidden): Initialize variable `fndecl'. 7161 71622000-01-03 Ulrich Drepper <drepper@cygnus.com> 7163 7164 * decl.c (flag_isoc9x): New variable to be able to use code in 7165 c-common.c. For now always zero. 7166 71672000-01-03 Mark Mitchell <mark@codesourcery.com> 7168 7169 * cp-tree.h (CLASSTYPE_VBASECLASSES): Improve documentation. 7170 * class.c (layout_basetypes): Don't set BINFO_INHERITANCE_CHAIN 7171 or unshare_base_binfos for virtual bases here. 7172 * search.c (dfs_get_vbase_types): Do it here. 7173 (get_vbase_types): Adjust. 7174 71752000-01-02 Mark Mitchell <mark@codesourcery.com> 7176 7177 * cp-tree.h (CLASSTYPE_VFIELDS): Move definition. 7178 (BINFO_PRIMARY_MARKED_P): Use flag 5. 7179 (SET_BINFO_PRIMARY_MARKED_P): Likewise. 7180 (CLEAR_BINFO_PRIMARY_MARKED_P): Likewise. 7181 (unmark_primary_bases): Remove declaration. 7182 (unmarkedp): Declare. 7183 (dfs_vbase_unmark): Likewise. 7184 * class.c (determine_primary_base): Return immediately if there 7185 are no base classes. Call mark_primary_bases here. 7186 (modify_all_direct_vtables): Remove. 7187 (modify_all_indirect_vtables): Remove. 7188 (dfs_modify_vtables_queue_p): New function. 7189 (dfs_modify_vtables): New function. 7190 (modify_all_vtables): Use them. 7191 (build_base_fields): Build FIELD_DECLs for primary virtual base 7192 classes. 7193 (create_vtable_ptr): Don't call determine_primary_base here. 7194 (dfs_mark_primary_bases_and_set_vbase_offsets): Rename to ... 7195 (dfs_set_offset_for_vbases): ... this. 7196 (layout_virtual_bases): Use it. 7197 (layout_class_type): Call determine_primary_base here. 7198 * search.c (unmarkedp): Make it global. 7199 (shared_marked_p): Simplify. 7200 (shared_unmarked_p): Likewise. 7201 (dfs_primary_bases_queue_p): Remove. 7202 (dfs_unmark_primary_bases): Likewise. 7203 (unmark_primary_bases): Likewise. 7204 (mark_primary_bases): Simplify. 7205 (get_pure_virtuals): Don't call mark_primary_bases here. 7206 (dfs_vbase_unmark): New function. 7207 (get_vbase_types): Simplify. 7208 7209 * class.c (struct base_info): Remove. 7210 (determine_primary_base): Take has_virtual_p rather than a 7211 base_info as input. Don't calculate max_has_virtual. 7212 (finish_struct_bits): Remove max_has_virtual argument. 7213 (create_vtable_ptr): Remove max_has_virtual_p argument. 7214 (layout_virtual_bases): Remove max argument. 7215 (layout_basetypes): Likewise. 7216 (layout_class_type): Remove max_has_virtual_p argument. 7217 (finish_struct_1): Remove max_has_virtual. 7218 7219 * cp-tree.h (dfs_mark_primary_bases_queue_p): New function. 7220 (layout_basetypes): Remove. 7221 * class.c (propagate_binfo_offsets): Moved here from tree.c. 7222 Update to handle primary virtual bases. 7223 (remove_base_fields): New function, split out from 7224 layout_basetypes. 7225 (dfs_mark_primary_bases_and_set_vbase_offsets): New function. 7226 (layout_virtual_bases): New function, split out from 7227 layout_basetypes. Update to handle primary virtual bases. 7228 (layout_basetypes): Moved here from tree.c. Use 7229 remove_base_fields and layout_virtual_bases. 7230 * search.c (dfs_mark_primary_bases_queue_p): New function. 7231 (mark_primary_bases): Use it. 7232 * tree.c (CEIL): Remove. 7233 (propagate_binfo_offsets): Remove. 7234 (layout_basetypes): Remove. 7235 72362000-01-01 Mark Mitchell <mark@codesourcery.com> 7237 7238 * cp-tree.h (CLASSTYPE_N_BASECLASSES): Use BINFO_N_BASETYPES. 7239 (BINFO_PRIMARY_MARKED_P): New macro. 7240 (SET_BINFO_PRIMARY_MARKED_P): Likewise. 7241 (CLEAR_BINFO_PRIMARY_MARKED_P): Likewise. 7242 (mark_primary_bases): New function. 7243 (unmark_primary_bases): Likewise. 7244 * search.c (get_abstract_virtuals_1): Remove. 7245 (dfs_mark_primary_bases): New function. 7246 (mark_primary_bases): Likewise. 7247 (dfs_unmark_primary_bases): Likewise. 7248 (unmark_primary_bases): Likewise. 7249 (dfs_get_pure_virtuals): Likewise. 7250 72512000-01-01 Mark Mitchell <mark@codesourcery.com> 7252 7253 * cp-tree.h (skip_rtti_stuff): Adjust prototype. 7254 * class.c (skip_rtti_stuff): Reorganize parameters and return value. 7255 (modify_one_vtable): Adjust. 7256 (fixup_vtable_deltas1): Likewise. 7257 (override_one_vtable): Likewise. 7258 * search.c (get_abstract_virtuals_1): Likewise. 7259 (get_pure_virtuals): Likewise. 7260 (expand_upcast_fixups): Likewise. 7261 * tree.c (debug_binfo): Likewise. 7262 7263 * class.c (build_vtable): Don't return a value. Don't rebuild 7264 vtables for bases that have already been handled. 7265 (prepare_fresh_vtable): Don't rebuild vtables for bases that have 7266 already been handled. 7267 (modify_one_vtable): Adjust accordingly. 7268 (fixup_vtable_deltas1): Likewise. 7269 (finish_struct_1): Likewise. 7270 72712000-01-01 Martin v. Löwis <loewis@informatik.hu-berlin.de> 7272 7273 * call.c (build_new_method_call): Also check destructors. 7274 7275 7276 7277Copyright (C) 2000 Free Software Foundation, Inc. 7278 7279Copying and distribution of this file, with or without modification, 7280are permitted in any medium without royalty provided the copyright 7281notice and this notice are preserved. 7282