12002-12-31 Neil Booth <neil@daikokuya.co.uk> 2 3 * .cvsignore: Remove. 4 52002-12-31 Steven Bosscher <s.bosscher@student.tudelft.nl> 6 7 * call.c, class.c, cp-lang.c, cp-tree.h, cvt.c, dump.c, error.c, 8 except.c, expr.c friend.c, g++spec.c, init.c, lang-options.h, 9 lang-specs.h, lex.c, mangle.c, method.c, optimize.c, parser.c, 10 pt.c, ptree.c, repo.c, rtti.c, search.c, semantics.c, tree.c, 11 typeck.c, typeck2.c: Replace "GNU CC" with "GCC" in the 12 copyright header. 13 * lex.h: parse.y is dead, so don't mention it. Also replace the 14 copyright header with the default GNU copyright header. 15 162002-12-31 Mark Mitchell <mark@codesourcery.com> 17 18 * cp-tree.h (LOOKUP_TEMPLATES_EXPECTED): Remove. 19 (lookup_name_namespace_only): Likewise. 20 (begin_only_namespace_names): Likewise. 21 (end_only_namespace_names): Likewise. 22 * decl.c (only_namespace_names): Remove. 23 (qualify_lookup): Do not check LOOKUP_TEMPLATES_EXPECTED. 24 (lookup_name_real): Do not check only_namespace_names. 25 (lookup_name_namespace_only): Remove. 26 (begin_only_namespace_names): Likewise. 27 (end_only_namespace_names): Likewise. 28 * parser.c (cp_parser_nested_name_specifier_opt): Handle erroneous 29 nested-name-specifiers more gracefully. 30 (cp_parser_class_or_namespace_name): Avoid looking up namespace 31 names when they cannot possibly appear. 32 (cp_parser_template_name): Adjust call to cp_parser_lookup_name. 33 (cp_parser_elaborated_type_specifier): Likewise. 34 (cp_parser_namespace_name): Only look for namespace names. 35 (cp_parser_lookup_name): Add is_namespace parameter. 36 (cp_parser_lookup_name_simple): Adjust call to 37 cp_parser_lookup_name. 38 39 * parser.c (cp_parser_dependent_type_p): Fix thinko. 40 412002-12-31 Neil Booth <neil@daikokuya.co.uk> 42 43 * .cvsignore: Update. 44 452002-12-31 Nathan Sidwell <nathan@codesourcery.com> 46 47 * class.c (modify_vtable_entry): Remove unused variable. 48 (get_vcall_index): Always expect a non-thunk. 49 (update_vtable_entry_for_fn): Combine covariant adjustments, when 50 overriding a thunk. Pass get_vcall_index a non-thunk. 51 52 * decl2.c (finish_file): Mark undefined inlines as extern. 53 542002-12-31 Mark Mitchell <mark@codesourcery.com> 55 56 * cp-tree.def (RETURN_INIT): Remove. 57 * cp-tree.h (DECL_IN_MEMORY_P): Remove. 58 (scope_kind): Add sk_block, sk_try, sk_catch, sk_for. 59 (note_level_for_for): Remove. 60 (note_level_for_try): Likewise. 61 (note_level_for_catch): Likewise. 62 (finish_named_return_value): Likewise. 63 (do_pushlevel): Change prototype. 64 (pending_lang_change): Remove. 65 * decl.c (begin_scope): Handle sk_block, sk_try, sk_catch, 66 sk_for. 67 (note_level_for_for): Remove. 68 (note_level_for_try): Likewise. 69 (note_level_for_catch): Likewise. 70 (maybe_inject_for_scope_var): Remove use of DECL_IN_MEMORY_P. 71 * parser.c (cp_parser_context_free_list): Make it "deletable". 72 (cp_parser_template_argument): Remove misleading comment. 73 * pt.c (tsubst_expr): Remove RETURN_INIT code. 74 * semantics.c (genrtl_named_return_value): Remove. 75 (do_pushlevel): Take a scope kind as an argument. 76 (begin_if_stmt): Adjust. 77 (begin_while_stmt): Likewise. 78 (begin_for_stmt): Likewise. 79 (finish_for_init_stmt): Likewise. 80 (begin_switch_stmt): Likewise. 81 (begin_handler): Likewise. 82 (begin_compound_stmt): Likewise. 83 (finish_named_return_value): Remove. 84 (cp_expand_stmt): Remove RETURN_INIT case. 85 * tree.c (cp_statement_code_p): Remove RETURN_INIT case. 86 872002-12-31 Mark Mitchell <mark@codesourcery.com> 88 89 PR c++/9112 90 * parser.c (cp_parser_direct_declarator): Handle erroneous 91 parenthesized declarators correctly. 92 932002-12-31 Gabriel Dos Reis <gdr@integrable-solutions.net> 94 95 * cp-tree.h (pending_lang_change): Declare. 96 972002-12-30 Mark Mitchell <mark@codesourcery.com> 98 99 * parser.c (cp_parser_context_free_list): New variable. 100 (cp_parser_context_new): Use it. 101 (cp_parser_error): Check return code from 102 cp_parser_simulate_error. 103 (cp_parser_simulate_error): Return a value. 104 (cp_parser_id_expression): Optimize common case. 105 (cp_parser_class_name): Likewise. 106 (cp_parser_class_specifier): Adjust call to 107 cp_parser_late_parsing_default_args. 108 (cp_parser_lookup_name): Optimize common case. 109 (cp_parser_late_parsing_for_member): Adjust call to 110 cp_parser_late_parsing_default_args. 111 (cp_parser_late_parsing_default_args): Add scope parameter. 112 (cp_parser_require): Avoid creating the error message unless it's 113 needed. 114 (cp_parser_parse_definitely): Place free'd contexts on the free 115 list. 116 117 * parser.c (cp_parser_declaration_seq_opt): Handle pending_lang_change. 118 1192002-12-30 David Edelsohn <edelsohn@gnu.org> 120 121 * parser.c (cp_parser_parameter_declaration_clause): Treat system 122 header as extern "C" if NO_IMPLICIT_EXTERN_C undefined. 123 1242002-12-30 Nathanael Nerode <neroden@gcc.gnu.org> 125 126 * config-lang.in, Make-lang.in, operators.def, cp-tree.def: 127 GCC, not GNU CC. 128 1292002-12-30 Mark Mitchell <mark@codesourcery.com> 130 131 * parse.y: Remove. 132 * spew.c: Likewise. 133 * Make-lang.in (gt-cp-spew.h): Remove. 134 * cp-tree.h (do_pending_lang_change): Remove. 135 (do_identifier): Change prototype. 136 (finish_id_expr): Remove. 137 * decl.c (lookup_name_real): Remove yylex variable. 138 * decl2.c (build_expr_from_tree): Adjust call to do_identifier. 139 * lex.c (init_cpp_parse): Remove. 140 (reduce_cmp): Likewise. 141 (token_cmp): Likewise. 142 (yychar): Likewise. 143 (lastiddecl): Likewise. 144 (token_count): Likewise. 145 (reduce_count): Likewise. 146 (yyhook): Likewise. 147 (print_parse_statistics): Likewise. 148 (do_pending_lang_change): Likewise. 149 (do_identifier): Remove parsing parameter. 150 * lex.h (lastiddecl): Remove. 151 (looking_for_typename): Remove. 152 (looking_for_template): Likewise. 153 (pending_lang_change): Likewise. 154 (yylex): Likewise. 155 * semantics.c (finish_id_expr): Remove. 156 157 * decl.c (grokdeclarator): Diagnost "extern thread" and "static 158 thread" correctly. 159 1602002-12-30 Nathanael Nerode <neroden@gcc.gnu.org> 161 162 * decl.c, decl2.c, decl.h: GCC, not GNU CC. This is the C++ front 163 end, not the C front end. 164 1652002-12-30 Nathan Sidwell <nathan@codesourcery.com> 166 167 * cp-tree.h (THUNK_TARGET): New macro. 168 (THUNK_VIRTUAL_OFFSET): For result thunks it is always a binfo. 169 (finish_thunk): Remove offset parms. 170 * class.c (find_final_overrider): Look through thunks. 171 (get_vcall_index): Use THUNK_TARGET. 172 (update_vtable_entry_for_fn): Look through thunks. Set covariant 173 fixed offset here. Adjust finish_thunk call. 174 (build_vtbl_initializer): Adjust finish_thunk calls. 175 * mangle.c (mangle_call_offset): Remove superfluous if. 176 (mangle_thunk): Adjust. 177 * method.c (make_thunk): Adjust. 178 (finish_thunk): Adjust. 179 (thunk_adjust): Remove assert. 180 (use_thunk): Use THUNK_TARGET 181 * dump1.c (cp_dump_tree): Adjust thunk dumping. 182 183 PR c++/9054 184 * class.c (layout_class_type): Set TYPE_CONTEXT of type for base. 185 * dump.c (cp_dump_tree, RECORD_TYPE): Deal with type for base types. 186 1872002-12-28 Gabriel Dos Reis <gdr@integrable-solutions.net> 188 189 Remove traditional C constructs 4/n. 190 * decl2.c (grok_method_quals, warn_if_unknown_interface, 191 grok_x_components, cp_build_parm_decl, build_artificial_parm, 192 maybe_retrofit_in_chrg, grokclassfn, grok_array_decl, 193 delete_sanity, check_member_template, check_java_method, 194 check_classfn, finish_static_data_member_decl, grokfield, 195 grokbitfield, grokoptypename, grok_function_init, 196 cplus_decl_attributes, constructor_name, defer_fn, 197 build_anon_union_vars, finish_anon_union, coerce_new_type, 198 coerce_delete_type, comdat_linkage, maybe_make_one_only, 199 key_method, import_export_vtable, import_export_class, 200 output_vtable_inherit, import_export_decl, import_export_tinfo, 201 build_cleanup, get_guard, get_guard_bits, get_guard_cond, 202 set_guard, start_objects, finish_objects, 203 start_static_storage_duration_function, 204 finish_static_storage_duration_function, get_priority_info, 205 start_static_initialization_or_destruction, 206 finish_static_initialization_or_destruction, 207 do_static_initialization, do_static_destruction, 208 prune_vars_needing_no_initialization, write_out_vars, 209 reparse_decl_as_expr, finish_decl_parsing, namespace_ancestor, 210 add_using_namespace, merge_functions, ambiguous_decl, 211 lookup_using_namespace, lookup_using_namespace, 212 qualified_lookup_using_namespace, set_decl_namespace, 213 decl_namespace, current_decl_namespace, push_decl_namespace, 214 pop_decl_namespace, push_scope, pop_scope, add_function, 215 arg_assoc_namespace, arg_assoc_template_arg, arg_assoc, 216 lookup_arg_dependent, do_namespace_alias, 217 validate_nonmember_using_decl, do_nonmember_using_decl, 218 do_toplevel_using_decl, do_local_using_decl, 219 do_class_using_decl, do_using_directive, check_default_args, 220 mark_used, handle_class_head): Use C90 prototypings. Use booleans. 221 * parser.c (cp_parser_class_head): Use booleanss. 222 * decl.c (walk_globals, walk_vtables): Likewise. 223 * cp-tree.h (walk_globals_pred, walk_globals_fn, walk_vtables, 224 walk_globals): Change return type from 'int' to 'bool'. 225 * rtti.c (init_rtti_processing, build_headof, throw_bad_cast 226 throw_bad_typeid, get_tinfo_decl_dynamic, typeid_ok_p, 227 build_typeid, tinfo_name, get_tinfo_decl, get_tinfo_ptr, 228 get_typeid, ifnonnull, build_dynamic_cast_1, build_dynamic_cast, 229 qualifier_flags, tinfo_base_init, generic_initializer, 230 ptr_initializer, dfs_class_hint_mark, ptm_initializer, 231 dfs_class_hint_unmark, class_hint_flags, class_initializer, 232 typeinfo_in_lib_p, get_pseudo_ti_init, create_pseudo_type_info, 233 get_pseudo_ti_desc, create_tinfo_types, emit_support_tinfos, 234 unemitted_tinfo_decl_p, emit_tinfo_decl): Likewise. 235 * repo.c (repo_compile_flags, repo_template_declared, 236 repo_template_defined, repo_class_defined, repo_get_id, 237 repo_template_used, repo_vtable_used, repo_inline_used, 238 repo_tinfo_used, repo_template_instantiated, extract_string, 239 open_repo_file, afgets, init_repo, reopen_repo_file_for_write, 240 finish_repo): Likewise. 241 * ptree.c (cxx_print_decl, cxx_print_type, cxx_print_identifier, 242 cxx_print_xnode): Likewise.. 243 * cp-lang.c (ok_to_generate_alias_set_for_type, cxx_get_alias_set, 244 cxx_warn_unused_global_decl, cp_expr_size): Likewise. 245 * cxxfilt.c (demangle_it, print_demangler_list, usage, 246 standard_symbol_characters, hp_symbol_characters, main, fatal): 247 Likewise. 248 (strip_underscore): Change type from 'int' to 'bool'. 249 (main): Use boolean constants. 250 2512002-12-28 Gabriel Dos Reis <gdr@integrable-solutions.net> 252 253 Remove traditional C constructs 3/n. 254 * cvt.c (cp_convert_to_pointer, convert_to_pointer_force, 255 build_up_reference, warn_ref_binding, convert_to_reference, 256 convert_from_reference, convert_lvalue, cp_convert, ocp_convert, 257 convert_to_void, convert, convert_force, build_type_conversion, 258 build_expr_type_conversion, type_promotes_to, 259 perform_qualification_conversions): Use C90 prototyping style. 260 * decl2.c (grok_array_decl): Use boolean constant. 261 (delete_sanity): Likewise. 262 * typeck.c (build_unary_op): Likewise. 263 * semantics.c (finish_switch_cond): Likewise. 264 * parser.c (cp_parser_direct_new_declarator): Likewise. 265 * init.c (build_new): Likewise. 266 2672002-12-27 Mark Mitchell <mark@codesourcery.com> 268 269 * Make-lang.in (po-generated): Remove parse.c. 270 (CXX_OBJS): Remove parse.o and spew.o. Add parser.o. 271 ($(srcdir)/cp/parse.h): Remove target. 272 ($(srcdir)/cp/parse.c): Likewise. 273 (gt-cp-parse.h): Likewise. 274 (gt-cp-parser.h): New target. 275 (c++.distclean): Do not remove parse.output. 276 (c++.maintainer-clean): Do not remove parse.c or parse.h. 277 (cp/spew.o): Remove target. 278 (cp/lex.o): Adjust dependencies. 279 (cp/pt.o): Likewise. 280 (cp/parse.o): Likewise. 281 (cp/TAGS): Do not mention parse.c. 282 (cp/parser.o): New target. 283 * NEWS: Mention the new parser. 284 * call.c (build_scoped_method_call): Simplify. 285 (build_method_call): Likewise. 286 (build_new_function_call): Adjust calls to add_function_candidate 287 and add_template_candidate. 288 (build_new_op): Improve handling of erroroneous operands. 289 (convert_default_arg): Remove circular argument processing. 290 (name_as_c_string): New function. 291 (build_new_method_call): Use it. 292 (perform_implicit_conversion): Use error_operand_p. 293 * class.c (finish_struct_anon): Use constructor_name_p. 294 (check_field_decls): Likewise. 295 (pop_nested_class): Use OVL_NEXT, not OVL_CHAIN. 296 (resolve_address_of_overloaded_function): Likewise. 297 (instantiate_type): Tweak pointer-to-member handling. 298 (get_primary_binfo): Remove incorrect assertion. 299 * config-lang.in (gtfiles): Add parser.c, remove parse.c. 300 * cp-tree.h (DEFARG_TOKENS): New macro. 301 (default_arg): New structure. 302 (cp_tree_node_structure_enum): Add TS_CP_DEFAULT_ARG. 303 (lang_tree_node): Add default_arg. 304 (cp_tree_index): Add CPTI_TYPE_INFO_REF_TYPE. 305 (type_info_ref_type): New macro. 306 (saved_scope): Make processing_explicit_instantiation a boolean. 307 (check_access): New field. 308 (unparsed_text): Remove. 309 (language_function): Remove unparsed_inlines. 310 (error_operand_p): New macro. 311 (lang_decl): Adjust pending_inline_info. 312 (DEFARG_POINTER): Remove. 313 (tag_types): Add typenames. 314 (lookup_ualified_name): Declare. 315 (lookup_name_real): Likewise. 316 (shadow_tag): Adjust prototype. 317 (get_scope_of_declarator): Declare it. 318 (process_next_inline): Remove it. 319 (check_for_missing_semicolon): Likewise. 320 (maybe_get_template_decl_from_type_decl): Declare it. 321 (finish_label_stmt): Adjust prototype. 322 (finish_non_static_data_meber): Declare it. 323 (finish_pseudo_destructor_call_expr): Rename to ... 324 (finish_pseudo_destructor_expr): ... this. 325 (finish_compound_literal): Declare it. 326 (begin_inline_definitions): Remove it. 327 (init_spew): Remove. 328 (peekyylex): Likewise. 329 (arbitrate_lookup): Likewise. 330 (frob_opname): Likewise. 331 (maybe_snarf_defarg): Likewise. 332 (add_defarg_fn): Likewise. 333 (do_pending_defargs): Likewise. 334 (done_pending_defargs): Likewise. 335 (unprocessed_defarg_fn): Likewise. 336 (replace_defarg): Likewise. 337 (end_input): Likewise. 338 (get_overloaded_fn): Likewise. 339 * cvt.c (convert_to_reference): Improve error handling. 340 * decl.c (lookup_name_real): Do not declare it static. 341 (maybe_push_to_top_level): Set check_access. 342 (identifier_type_value): Adjust call to lookup_name_real. 343 (lookup_qualified_name): New method. 344 (lookup_name_real): Remove special-case parsing code. 345 (lookup_name-nonclass): Adjust call to lookup_name_real. 346 (lookup_name_namespace_only): Likewise. 347 (lookup_name): Likewise. 348 (check_tag_decl): Return the type declared. 349 (shadow_tag): Likewise. 350 (register_dtor_fn): Tweak check_access. 351 (grokfndecl): Use constructor_name_p. 352 (get_scope_of_declarator): New function. 353 (grokdeclarator): Obscure tweaks for slightly different declarator 354 representations. 355 (start_method): Return error_mark_node to indicate failure. 356 (cp_tree_node_structure_enum): Use TS_CP_DEFAULT_ARG for DEFAULT_ARGs. 357 * decl2.c (constructor_name_full): Simplify. 358 (constructor_name): Use it. 359 (build_expr_from_tree): Adjust for changes to do new parser. 360 (push_scope): Improve robustness. 361 (validate_nonmember_using_decl): Process declarations, not names. 362 (do_class_using_decl): Likewise. 363 (handle_class_head): Do not mess with CLASSTYPE_DECLARED_CLASS 364 here. 365 * error.c (dump_expr): Handle IDENTIFIER_NODEs and BASELINKs. 366 * expr.c (cxx_expand_expr): Handle BASELINKs. 367 * init.c (member_init_ok_or_else): Issue more errors. 368 (build_offset_ref): Tweak handling of FUNCTION_DECLs. 369 * lex.c: Do not include parse.h. 370 (yypring): Do not declare. 371 (yylval): Likewise. 372 (make_reference_declarator): Remove error-generating code. 373 (rid_to_yy): Remove. 374 (cxx_init): Do not call init_spew. 375 (yypring): Remove. 376 (check_for_missing_semicolon): Remove. 377 * lex.h (got_scope): Remove. 378 (got_object): Remove. 379 * method.c (hack_identifier): Use finish_non_static_data_member. 380 (implicitly_declare_fn): Adjust use of constructor_name. 381 * parser.c: New file. 382 * pt.c (parse.h): Do not include it. 383 (maybe_get_template_decl_from_template): Do not declare it. 384 (finish_member_template_decl): Tweak. 385 (begin_explicit_instantiation): Adjust for 386 processing_explicit_instantiation being boolean. 387 (end_explicit_instantiation): Likewise. 388 (maybe_process_partial_specialization): Tighten specialization 389 test. 390 (retrieve_local_specialization): Adjust ue of hash table. 391 (eq_local_specializations): New function. 392 (register_local_specialization): Likewise. 393 (push_template_decl_real): Remove unnecessary test. 394 (maybe_get_template_decl_from_type_decl): Don't make it static. 395 (for_each_template_parm_r): Handle TYPEOF_TYPE. 396 (tsubst_copy): Use retrieive_local_specialization to handle 397 PARM_DECL. Adjust handling of CONST_DECLs. Handle BASELINKs. 398 Handle COMPONENT_REFs with pseudo-destructor-expressions. 399 Simplify handling of CALL_EXPR and METHOD_CALL_EXPR. 400 (tsubst_expr): Pass decls, not names, to do_local_using_decl. 401 (unify): Tweak handling of CONST_DECLs. 402 (regenerate_decl_from_template): Use push_nested_class. 403 (template_for_substitution): New funciton. 404 (instantiate_decl): Use it. Register parameters as local 405 specializations. 406 * rtti.c (init_rtti_processing): Set type_info_ref_type. 407 (build_typeid): Use it. 408 (get_typeid): Likeise. 409 * search.c (accessible_p): Use check_access, not 410 flag_access_control. 411 (adjust_result_of_qualified_name_lookup): Pay attention to the 412 context_class. 413 * semantics.c (finish_asm_stmt): Adjust error handling. 414 (finish_label_stmt): Return the statement. 415 (finish_non_static_data_member): New function. 416 (finish_class_expr): Handle BASELINKs. 417 (finish_call_expr): Handle PSEUDO_DTOR_EXPR. 418 (finish_object_call_expr): Simplify handling during templates. 419 (finish_pseudo_destructor_call_expr): Rename to ... 420 (finish_pseudo_dtor_expr): ... this. 421 (finish_compound_literal): New function. 422 (begin_inline_definitions): Remove. 423 (finish_sizeof): Remove special template handling. 424 * spew.c: Do not include parse.h. 425 * tree.c (get_overloaded_fn): Remove. 426 * typeck.c (build_class_member_access_expr): Handle 427 PSEUDO_DTOR_EXPR. Adjust handling of static member functions. 428 (lookup_destructor): New function. 429 (finish_class_member_access_expr): Use it. 430 (convert_arguments): Simplify. 431 (build_unary_op): Handle BASELINKs. 432 4332002-12-26 Nathan Sidwell <nathan@codesourcery.com> 434 435 PR c++/4803 436 * decl2.c (mark_used): Defer inline functions. 437 (finish_file): Merge deferred_fns loops. Check all used 438 inline functions have a definition. 439 * method.c (make_thunk): Thunks are not inline. 440 441 PR c++/5116, c++/764 442 * call.c (build_new_op): Make sure template class operands are 443 instantiated. 444 4452002-12-24 Nathan Sidwell <nathan@codesourcery.com> 446 447 PR C++/7964 448 * cp-tree.h (resolve_scoped_fn_name): Prototype. 449 * call.c (resolve_scoped_fn_name): New function. Deal with 450 more template expansion. Broken out of ... 451 * parse.y (parse_finish_call_expr): ... here. Call it. 452 * decl2.c (build_expr_from_tree, CALL_EXPR): Use 453 resolve_scoped_fn_name and build_call_from_tree. 454 455 PR c++/9053 456 * decl.c (duplicate_decls): Templates may be disambiguated by 457 return type. 458 459 PR c++/8702 460 * decl2.c (check_classfn): Use lookup_fnfield_1. List all 461 conversion operators on failure. 462 4632002-12-23 Gabriel Dos Reis <gdr@integrable-solutions.net> 464 465 Remove traditional C constructs 2/n. 466 * call.c (tourney, build_field_call, equal_functions, joust, 467 compare_ics, build_over_call, build_java_interface_fn_ref, 468 convert_like_real, op_error, build_object_call, resolve_args, 469 build_vfield_ref, check_dtor_name, build_scoped_method_call, 470 build_addr_func, build_call, build_method_call, null_ptr_cst_p, 471 sufficient_parms_p, build_conv, non_reference, strip_top_quals, 472 standard_conversion, reference_related_p, 473 reference_compatible_p, convert_class_to_reference, 474 direct_reference_binding, reference_binding, 475 ,implicit_conversion, is_complete, promoted_arithmetic_type_p, 476 add_template_conv_candidate, any_viable, any_strictly_viable, 477 build_this, splice_viable, print_z_candidates, 478 build_user_type_conversion, build_new_function_call, 479 conditional_conversion, build_conditional_expr, build_new_op, 480 build_op_delete_call, enforce_access, call_builtin_trap, 481 convert_arg_to_ellipsis, build_x_va_arg, cxx_type_promotes_to, 482 convert_default_arg, type_passed_as, convert_for_arg_passing, 483 in_charge_arg_for_name, is_properly_derived_from, 484 maybe_handle_implicit_object, maybe_handle_ref_bind, 485 source_type, add_warning, can_convert, can_convert_arg, 486 perform_implicit_conversion, can_convert_arg_bad, 487 initialize_reference, add_conv_candidate, 488 add_template_candidate_real, add_template_candidate): Ansify. 489 4902002-12-22 Nathan Sidwell <nathan@codesourcery.com> 491 492 PR c++/8572 493 * cp-tree.h (grokoptypename): Add SCOPE parameter. 494 * decl2.c (grokoptypename): Add SCOPE parameter. tsubst the type 495 if in a template scope. 496 * parse.y (unoperator): Return the scope. 497 (operator_name): Adjust grokoptypename call. 498 4992002-12-22 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 500 501 * cp-tree.h (make_unbound_class_template): Use tsubst_flags_t. 502 * decl.c (make_unbound_class_template): Adjust. Check for tf_error. 503 * pt.c (tsubst) [OFFSET_TYPE]: Check for tf_error. 504 5052002-12-20 Kazu Hirata <kazu@cs.umass.edu> 506 507 * ChangeLog: Fix a typo. 508 * class.c: Fix comment typos. 509 * cp-tree.h: Likewise. 510 5112002-12-18 Jason Merrill <jason@redhat.com> 512 513 Handle anonymous unions at the tree level. 514 C++ ABI change: Mangle anonymous unions using the name of their 515 first named field (by depth-first search). Should not cause 516 binary compatibility problems, though, as the compiler previously 517 didn't emit anything for affected unions. 518 * cp-tree.def (ALIAS_DECL): New tree code. 519 * decl2.c (build_anon_union_vars): Build ALIAS_DECLs. Return the 520 first field, not the largest. 521 (finish_anon_union): Don't mess with RTL. Do set DECL_ASSEMBLER_NAME, 522 push the decl, and write it out at namespace scope. 523 * decl.c (lookup_name_real): See through an ALIAS_DECL. 524 (pushdecl): Add namespace bindings for ALIAS_DECLs. 525 * rtti.c (unemitted_tinfo_decl_p): Don't try to look at the name 526 of a decl which doesn't have one. 527 * typeck.c (build_class_member_access_expr): Don't recurse if 528 we already have the type we want. 529 5302002-12-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 531 532 PR c++/8099 533 * friend.c (make_friend_class): Allow partial specialization 534 when declaration is not a template friend. 535 5362002-12-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 537 538 PR c++/3663 539 * pt.c (lookup_template_class): Copy TREE_PRIVATE and 540 TREE_PROTECTED to created decl nodes. 541 5422002-12-18 Mark Mitchell <mark@codesourcery.com> 543 544 * class.c (build_base_field): Do not set DECL_PACKED on the 545 FIELD_DECL. 546 5472002-12-18 Gabriel Dos Reis <gdr@integrable-solutions.net> 548 549 * cp-tree.h (struct tree_srcloc): Use location_t. 550 (SOURCE_LOCUS): New. 551 (SRCLOC_FILE, SRCLOC_LINE): Adjust. 552 5532002-12-17 Jason Merrill <jason@redhat.com> 554 555 * decl.c (finish_function): Also complain about no return in 556 templates. 557 * semantics.c (finish_return_stmt): Also call check_return_expr in 558 templates. 559 * typeck.c (check_return_expr): In a template, just remember that we 560 saw a return. 561 5622002-12-16 Jason Merrill <jason@redhat.com> 563 564 * semantics.c (simplify_aggr_init_exprs_r): Don't change the type 565 of the CALL_EXPR. 566 567 * semantics.c (do_pushlevel): Call pushlevel after adding the 568 SCOPE_STMT. 569 (do_poplevel): Call poplevel before adding the SCOPE_STMT. 570 * parse.y (function_body): Go back to using compstmt. 571 * decl.c (pushdecl): Skip another level to get to the parms level. 572 573 * call.c (build_new_method_call): Use is_dummy_object to determine 574 whether or not to evaluate the object parameter to a static member 575 function. 576 5772002-12-14 Jason Merrill <jason@redhat.com> 578 579 * semantics.c (simplify_aggr_init_exprs_r): Also prepend the 580 return slot for normal functions. Set CALL_EXPR_HAS_RETURN_SLOT_ADDR. 581 * tree.c (build_cplus_new): If the type isn't TREE_ADDRESSABLE, 582 don't bother with an AGGR_INIT_EXPR. 583 (cp_copy_res_decl_for_inlining): If the type isn't TREE_ADDRESSABLE, 584 just generate a new decl normally. Take return slot parm. 585 * cp-tree.h: Adjust prototype. 586 5872002-12-13 Gabriel Dos Reis <gdr@integrable-solutions.net> 588 589 PR C++/8031 590 * cvt.c (convert_to_pointer_force): Don't try comparing against 591 erronous type. 592 5932002-12-13 Geoffrey Keating <geoffk@apple.com> 594 595 * cp-tree.h: Have the multiple-include guards around 596 the entire file. 597 5982002-12-10 David Edelsohn <edelsohn@gnu.org> 599 600 * cp/spew.c (feed_input): Change limit to last_pos and pos to cur_pos 601 for SPEW_DEBUG. 602 (snarf_method): Same. 603 (snarf_defarg): Same. 604 6052002-12-10 Mark Mitchell <mark@codesourcery.com> 606 607 PR c++/8372 608 * pt.c (tsubst_copy): Handle destructor names more correctly. 609 6102002-12-10 Matt Austern <austern@apple.com> 611 612 * cp-tree.h: get rid of needs_virtual_reinit bit. 613 6142002-12-09 Mark Mitchell <mark@codesourcery.com> 615 616 * NEWS: Document removal of in-class initialization extension for 617 static data members of non-arithmetic, non-enumeration type. 618 * decl.c (check_static_variable_definition): Do not allow that 619 extension. 620 * decl2.c (grokfield): Do not call digest_init when processing 621 templates. 622 6232002-12-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 624 625 * error.c (dump_expr): Fix format specifier warning. 626 6272002-12-04 Geoffrey Keating <geoffk@apple.com> 628 629 * class.c (finish_struct_1): Correct comment. 630 * cp-tree.c (DECL_SORTED_FIELDS): Likewise. 631 6322002-12-04 Gabriel Dos Reis <gdr@integrable-solutions.net> 633 634 PR C++/8799 635 * error.c (dump_expr): Don't ever try to dump a non-existent 636 expression. 637 6382002-12-03 Nathan Sidwell <nathan@codesourcery.com> 639 640 Implement covariant returns. 641 * cp-tree.h (IS_AGGR_TYPE_2): Remove. 642 (struct lang_decl_flags): Add this_thunk_p flag. 643 Rename vcall_offset to virtual_offset. 644 (struct lang_decl): Rename delta to fixed_offset. 645 (DECL_THIS_THUNK_P, DECL_RESULT_THUNK_P): New #defines. 646 (SET_DECL_THUNK_P): Add THIS_ADJUSTING arg. 647 (THUNK_DELTA, THUNK_VCALL_OFFSET): Rename to ... 648 (THUNK_FIXED_OFFSET, THUNK_VIRTUAL_OFFSET): ... here. 649 (make_thunk): Add this_adjusting arg. 650 (finish_thunk): Declare. 651 (mangle_thunk): Add this_adjusting arg. 652 * class.c (get_vcall_index): Use base function for lookup. 653 (update_vtable_entry_for_fn): Generate covariant thunk. 654 (finish_struct_1): Set DECL_VINDEX to NULL for thunks. 655 (build_vtbl_initializer): Use base function for lookup. 656 Finish covariant thunk here. Adjust thunk generation. 657 * dump.c (cp_dump_tree): Simplify DECL_GLOBAL_[CD]TOR_P handling. 658 Adjust thunk dumping. 659 * mangle.c (mangle_call_offset): New function. 660 (mangle_thunk): Adjust for covariant thunks. 661 * method.c (make_thunk): Adjust. Do not set name here. 662 (finish_thunk): New function. Set name here. 663 (use_thunk): Generate covariant thunks too. 664 (thunk_adjust): New function. 665 * search.c (covariant_return_p): Remove. Fold into ... 666 (check_final_overrider): ... here. Simplify. 667 * semantics.c (emit_associated_thunks): Walk covariant thunk lists. 668 6692002-12-03 Jason Merrill <jason@redhat.com> 670 671 PR c++/8674 672 * call.c (build_over_call): Check specifically for TARGET_EXPR 673 when eliding. 674 675 PR c++/8461, c++/8625 676 * call.c (convert_for_arg_passing): Don't mess with error_mark_node. 677 (cp_convert_parm_for_inlining): Remove. 678 * cp-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING): 679 Remove. 680 * cp-tree.h (ADDR_IS_INVISIREF): Remove. 681 * except.c (stabilize_throw_expr): Remove ADDR_IS_INVISIREF code. 682 683 * call.c (build_user_type_conversion_1): Don't set ICS_BAD_FLAG on 684 an ambiguous conversion. 685 6862002-12-03 Mark Mitchell <mark@codesourcery.com> 687 688 PR c++/8688 689 * decl.c (reshape_init): Handle erroneous initializers. 690 6912002-12-02 Mark Mitchell <mark@codesourcery.com> 692 693 PR c++/8720 694 * spew.c (remove_last_token): Make sure that last_chunk is set 695 correctly. 696 697 PR c++/8615 698 * error.c (dump_expr): Handle character constants with 699 TREE_OVERFLOW set. 700 7012002-12-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 702 703 DR 180 704 * decl.c (grokdeclarator): Require class-key for all friend class. 705 Output the correct type and context in the error message. 706 7072002-12-01 Mark Mitchell <mark@codesourcery.com> 708 709 PR c++/5919 710 * pt.c (unify): Use variably_modified_type_p to test validity of 711 template argument types. 712 713 PR c++/8727 714 * cp-tree.h (lang_type_class): Add typeinfo_var. 715 (CLASSTYPE_TYPEINFO_VAR): New macro. 716 * rtti.c (get_tinfo_decl): Use it. 717 718 PR c++/8663 719 * init.c (expand_member_init): Always get the main variant of a 720 base class. 721 7222002-12-01 Mark Mitchell <mark@codesourcery.com> 723 724 PR c++/8332 725 PR c++/8493 726 * decl.c (cxx_init_decl_processing): Use size_type_node, not 727 c_size_type_node. 728 * decl2.c (coerce_new_type): Likewise. 729 * except.c (do_allocate_exception): Likewise. 730 7312002-11-30 Zack Weinberg <zack@codesourcery.com> 732 733 * call.c, class.c, cp-lang.c, cvt.c, cxxfilt.c, decl.c, decl2.c, 734 dump.c, error.c, except.c, expr.c, friend.c, g++spec.c, init.c, 735 lex.c, mangle.c, method.c, optimize.c, parse.y, pt.c, ptree.c, 736 repo.c, rtti.c, search.c, semantics.c, spew.c, tree.c, typeck.c, 737 typeck2.c: Include coretypes.h and tm.h. 738 * Make-lang.in: Update dependencies. 739 7402002-11-30 Mark Mitchell <mark@codesourcery.com> 741 742 PR c++/8227 743 * decl.c (layout_var_decl): Deal gracefully with erroneous types. 744 (check_initializer): Validate the type of the initialized 745 variable, even if the initializer is absent. 746 * typeck.c (cp_type_quals): Deal gracefully with erroneous types. 747 748 PR c++/8214 749 * typeck.c (convert_for_assignment): Do not use 750 decl_constant_value on the operand. 751 752 PR c++/8511 753 * pt.c (instantiate_decl): Handle template friends defined outside 754 of the class correctly. 755 7562002-11-29 Joe Buck <jbuck@synopsys.com> 757 758 * parse.y (class_head_defn): Set CLASSTYPE_DECLARED_CLASS for 759 anonymous structs. 760 7612002-11-29 Mark Mitchell <mark@codesourcery.com> 762 763 * class.c (walk_subobject_offsets): Recur on binfos as well as on 764 types. 765 (layout_nonempty_base_or_field): Pass it a binfo when processing a 766 base class. 767 (layout_empty_base): Likewise. 768 (build_base_field): Likewise. 769 7702002-11-27 Mark Mitchell <mark@codesourcery.com> 771 772 * class.c (build_base_field): Make sure we get the canonical base 773 when descending through primary bases. 774 7752002-11-26 Geoffrey Keating <geoffk@apple.com> 776 777 * decl.c (check_initializer): Don't error on initialisation of 778 a scalar with a brace-enclosed expression. 779 7802002-11-26 Nathan Sidwell <nathan@codesourcery.com> 781 782 * cp-tree.h (DECL_LANG_FLAG_4): Document more uses. 783 (template_parms_equal): Remove prototype. 784 * typeck.c (buuld_indirect_ref): Reformat. 785 7862002-11-25 Jason Merrill <jason@redhat.com> 787 788 * init.c (build_vec_init): Use a FOR_STMT instead of an IF_STMT 789 and a DO_STMT. 790 7912002-11-25 Mark Mitchell <mark@codesourcery.com> 792 793 * tree.c (cp_build_qualified_type_real): Correct handling of 794 array types. 795 * class.c (walk_subobject_offsets): Fix thinko. 796 (build_base_field): Record offsets of empty bases in primary 797 virtual bases. 798 (layout_class_type): Record offsets of empty bases in fields. 799 800 * search.c (is_subobject_of_p_1): Fix thinko. 801 (lookup_field_queue_p): Likewise. 802 8032002-11-24 Mark Mitchell <mark@codesourcery.com> 804 805 * class.c (layout_class_type): Reuse tail padding when laying out 806 virtual bases. 807 8082002-11-22 Mark Mitchell <mark@codesourcery.com> 809 810 * rtti.c (qualifier_flags): Fix thinko. 811 8122002-11-21 Gabriel Dos Reis <gdr@integrable-solutions.net> 813 814 Remove traditional C constructs 1/n. 815 * cp-tree.h (init_method, set_mangled_name_for_decl, 816 build_opfncall, hack_identifier, make_thunk, use_thunk, 817 synthesize_method, implicitly_declare_fn, 818 skip_artificial_parms_for, optimize_function, calls_setjmp_p, 819 maybe_clone_body): Remove use of PARAMS. 820 821 * method.c (do_build_assign_ref, do_build_copy_constructor, 822 synthesize_exception_spec, locate_dtor, locate_ctor, locate_copy): 823 Likewise. 824 (synthesize_method): Use 'bool' type and constants instead of 825 'int'. 826 (locate_copy): Likewise. 827 (implicitly_declare_fn): Likewise. 828 829 * optimize.c (calls_setjmp_r, update_cloned_parm, dump_function): 830 Remove old-style declaration. 831 (maybe_clone_body): Use 'bool' type and constants. 832 8332002-11-21 Glen Nakamura <glen@imodulo.com> 834 835 PR c++/8342 836 * typeck.c (get_member_function_from_ptrfunc): Make sure that a 837 SAVE_EXPR for instance_ptr doesn't get evaluated first inside one 838 of the branches of a COND_EXPR. 839 8402002-11-19 Mark Mitchell <mark@codesourcery.com> 841 842 * pt.c (for_each_template_parm): Free allocated memory. 843 * search.c (is_subobject_of_p_1): New function. 844 (is_subobject_of_p): Avoid walking virtual bases multiple times. 845 8462002-11-19 Jason Thorpe <thorpej@wasabisystems.com> 847 848 * g++spec.c (lang_specific_spec_functions): New. 849 8502002-11-15 Kazu Hirata <kazu@cs.umass.edu> 851 852 * ChangeLog: Follow spelling conventions. 853 * class.c: Likewise. 854 * decl2.c: Likewise. 855 8562002-11-14 Zack Weinberg <zack@codesourcery.com> 857 858 * search.c (dfs_push_decls): Do not try to reorder elements 859 3..n of method_vec if method_vec has only two elements. 860 Reverse order of two tests to avoid accessing unallocated 861 memory. 862 8632002-11-14 Mark Mitchell <mark@codesourcery.com> 864 865 * class.c (dfs_find_final_overrider): Adjust so that the most 866 derived object is a binfo, rather than a class type. 867 (find_final_overrider): Likewise. 868 (add_vcall_offset_vtbl_entries_1): Simplify accordingly. 869 (add_vcall_offset): Likewise. 870 8712002-11-09 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 872 873 PR c++/8389 874 * pt.c (instantiate_template): Push class scope for member 875 functions. 876 (get_mostly_instantiated_function_type): Likewise. Don't call 877 tsubst on context. Remove CONTEXTP and TPARMSP parameters. 878 * cp-tree.h (get_mostly_instantiated_function_type): Adjust. 879 * mangle.c (write_encoding, write_unqualified_name): Adjust. 880 8812002-11-07 Mark Mitchell <mark@codesourcery.com> 882 883 * class.c (add_vcall_offset_vtbl_entries_1): Correct ordering of 884 vcall offfsets. Split out ... 885 (add_vcall_offset): ... new function. 886 887 PR c++/8338 888 * pt.c (for_each_template_parm): Add htab parameter. 889 (process_partial_specialization): Adjust call. 890 (push_template_decl_real): Likewise. 891 (pair_fn_data): Add visited. 892 (for_each_template_parm_r): Avoid walking duplicates more than 893 once. 894 (uses_template_parms): Adjust call to for_each_template_parm. 895 8962002-11-07 Mark Mitchell <mark@codesourcery.com> 897 898 * class.c (add_implicitly_declared_members): Put implicitly 899 declared functions at the end of TYPE_METHODs when -fabi-version 900 is at least 2. 901 9022002-11-05 Geoffrey Keating <geoffk@apple.com> 903 904 * decl2.c (finish_file): Correct spelling. 905 9062002-11-03 Mark Mitchell <mark@codesourcery.com> 907 908 * call.c (build_special_member_call): Do not try to lookup VTTs by 909 name. 910 * class.c (vtbl_init_data): Add generate_vcall_entries. 911 (get_vtable_decl): Do not look up virtual tables by name. 912 (copy_virtuals): Do not use BV_USE_VCALL_INDEX_P. 913 (set_primary_base): Do not set CLASSTYPE_RTTI. 914 (determine_primary_base): Likewise. 915 (get_matching_virtual): Remove. 916 (get_vcall_index): New function. 917 (update_vtable_entry_for_fn): Do not try to use virtual thunks 918 when they are not required. Assign vcall indices at this point. 919 (finish_struct_1): Do not set CLASSTYPE_NEEDS_VIRTUAL_REINIT. 920 Do update dynamic_classes. 921 (build_vtt): Do not add VTTs to the symbol table. 922 (build_ctor_vtbl_group): Likewise. 923 (build_vtbl_initializer): Simplify handling of vcall indices. 924 (build_vcall_offset_vtbl_entries): Pretend to build vcall offsets 925 for the most derived class. 926 (add_vcall_offset_vtbl_entries_1): But do not actually add them to 927 the vtable. 928 * cp-tree.h (dynamic_classes): New macro. 929 (lang_type_class): Remove rtti. Add vtables. Add vcall_indices. 930 (CLASSTYPE_RTTI): Remove. 931 (CLASSTYPE_NEEDS_VIRTUAL_REINIT): Remove. 932 (CLASSTYPE_VCALL_INDICES): New macro. 933 (CLASSTYPE_VTABLES): Likewise. 934 (BV_USE_VCALL_INDEX_P): Remove. 935 (build_vtable_path): Remove. 936 * decl2.c (finish_vtable_vardecl): Remove. 937 (key_method): Remove #if 0'd code. 938 (finish_vtable_vardecl): Rename to ... 939 (maybe_emit_vtables): ... this. 940 (finish_file): Use it. 941 * search.c (look_for_overrides_here): Update comment. 942 9432002-11-01 Zack Weinberg <zack@codesourcery.com> 944 945 PR c/7353 redux 946 * decl2.c (grokfield): Reject TYPE_DECLs with initializers. 947 9482002-10-30 Jason Merrill <jason@redhat.com> 949 950 PR c++/8186 951 * cp-tree.h (ADDR_IS_INVISIREF): New macro. 952 * call.c (convert_for_arg_passing): Set it. 953 * except.c (stabilize_throw_expr): Recurse for such an arg. 954 9552002-10-31 Mark Mitchell <mark@codesourcery.com> 956 957 * cp-tree.h (lang_decl_flags): Remove init_priority. 958 (lang_decl): Add delta. 959 (GLOBAL_INIT_PRIORITY): Remove. 960 (THUNK_DELTA): Revise definition. 961 * decl2.c (start_objects): Don't set GLOBAL_INIT_PRIORITY. 962 * dump.c (cp_dump_tree): Don't dump it. 963 9642002-10-30 Mark Mitchell <mark@codesourcery.com> 965 966 PR c++/8160 967 * typeck2.c (process_init_constructor): Call complete_array_type. 968 969 PR c++/8149 970 * decl.c (make_typename_type): Issue errors about invalid results. 971 9722002-10-30 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 973 974 Core issue 287, PR c++/7639 975 * cp-tree.h (lang_type_class): Add decl_list field. 976 (CLASSTYPE_DECL_LIST): New macro. 977 (maybe_add_class_template_decl_list): Add declaration. 978 * class.c (duplicate_tag_error): Initialize CLASSTYPE_DECL_LIST. 979 (unreverse_member_declarations): Reverse CLASSTYPE_DECL_LIST. 980 (maybe_add_class_template_decl_list): New function. 981 (add_implicitly_declared_members): Use it. 982 * decl.c (maybe_process_template_type_declaration): Likewise. 983 (pushtag): Likewise. 984 * friend.c (add_friend): Likewise. 985 (make_friend_class): Likewise. 986 * semantics.c (finish_member_declaration): Likewise. 987 (begin_class_definition): Initialize CLASSTYPE_DECL_LIST. 988 * pt.c (instantiate_class_template): Use CLASSTYPE_DECL_LIST 989 to process members and friends in the order of declaration. 990 9912002-10-29 Mark Mitchell <mark@codesourcery.com> 992 993 PR c++/8287 994 * decl.c (finish_destructor_body): Create the label to jump to 995 when returning from a destructor here. 996 (finish_function_body): Rather than here. 997 9982002-10-25 Zack Weinberg <zack@codesourcery.com> 999 1000 PR c++/7266 1001 * decl.c (grokdeclarator): Check that TREE_OPERAND 0 of a 1002 SCOPE_REF is not null before dereferencing it. 1003 10042002-10-25 Mark Mitchell <mark@codesourcery.com> 1005 1006 * call.c (build_over_call): Use DECL_CONTEXT, not 1007 DECL_VIRTUAL_CONTEXT. 1008 * class.c (modify_vtable_entry): Don't mess with 1009 DECL_VIRTUAL_CONTEXT. 1010 (set_vindex): Remove. 1011 (set_primary_base): Remove vfuns_p parameter. 1012 (determine_primary_base): Likewise. 1013 (modify_all_vtables): Likewise. 1014 (layout_class_type): Likewise. Adjust calls to other functions 1015 accordingly. 1016 (finish_struct_1): Adjust calls to modified functions. Set 1017 DECL_VINDEX here. 1018 * cp-tree.h (lang_type_class): Remove vsize. 1019 (CLASSTYPE_VSIZE): Remove. 1020 (lang_decl): Remove thunks. 1021 (DECL_THUNKS): Adjust. 1022 (DECL_VIRTUAL_CONTEXT): Remove. 1023 (duplicate_decls): Don't copy it. 1024 * pt.c (build_template_decl): Don't set it. 1025 (tsubst_decl): Likewise. 1026 * typeck.c (expand_ptrmemfunc_cst): Don't use it. 1027 1028 * class.c (build_vtbl_initializer): Don't use build_vtable_entry. 1029 (build_vtable_entry): Remove. 1030 * cp-tree.h (BINFO_VIRTUALS): Expand documentation. 1031 (lang_decl): Add thunks. 1032 (DECL_THUNKS): New macro. 1033 * decl.c (duplicate_decls): Copy it. 1034 * method.c (make_thunk): Simplify, and add thunks to DECL_THUNKS. 1035 * semantics.c (emit_associated_thunks): Simplify. 1036 10372002-10-24 David Edelsohn <edelsohn@gnu.org> 1038 1039 PR c++/7228 1040 * cp-tree.h (CLASSTYPE_READONLY_FIELDS_NEED_INIT): Check that 1041 lang_type structure exists before accessing field. 1042 (SET_CLASSTYPE_READONLY_FIELDS_NEED_INIT): New macro. 1043 (CLASSTYPE_REF_FIELDS_NEED_INIT): Similar. 1044 (SET_CLASSTYPE_REF_FIELDS_NEED_INIT): New macro. 1045 * class.c (check_field_decls): Use new macros. 1046 * typeck2.c (process_init_constructor): Remove redundant check for 1047 existence of lang_type structure. 1048 10492002-10-24 Mark Mitchell <mark@codesourcery.com> 1050 1051 * class.c (end_of_base): New method. 1052 (end_of_class): Use it. Check indirect virtual bases. 1053 1054 * class.c (check_field_decls): Fix typo. 1055 10562002-10-23 Mark Mitchell <mark@codesourcery.com> 1057 1058 PR c++/8067 1059 * decl.c (maybe_inject_for_scope_var): Ignore __FUNCTION__ and 1060 related variables. 1061 1062 PR c++/7679 1063 * spew.c (next_token): Do not return an endless stream of 1064 END_OF_SAVED_INPUT tokens. 1065 (snarf_method): Add three END_OF_SAVED_INPUT tokens to the end of 1066 the cached token stream. 1067 (snarf_defarg): Likewise. 1068 10692002-10-23 Zack Weinberg <zack@codesourcery.com> 1070 1071 * cp-lang.c (cp_var_mod_type_p): New: C++ hook for 1072 variably_modified_type_p. 1073 * cp-tree.h: Remove prototype of variably_modified_type_p. 1074 * tree.c (variably_modified_type_p): Remove; now implemented 1075 in language-independent code. 1076 10772002-10-22 Mark Mitchell <mark@codesourcery.com> 1078 1079 PR c++/6579 1080 * spew.c (snarf_parenthesized_expression): New function. 1081 (snarf_block): Use it. 1082 10832002-10-22 Richard Henderson <rth@redhat.com> 1084 1085 * method.c (use_thunk): Always compute vcall_value; assert that 1086 it is not zero. Use can_output_mi_thunk; use output_mi_thunk 1087 for vcall thunks as well. 1088 10892002-10-21 Mark Mitchell <mark@codesourcery.com> 1090 1091 * class.c (empty_base_at_nonzero_offset_p): New function. 1092 (layout_nonempty_base_or_field): Do not check for conflicts when 1093 laying out a virtual base using the GCC 3.2 ABI. 1094 (build_base_field): Correct checking for presence of empty classes 1095 at nonzero offsets when clearing CLASSTYPE_NEARLY_EMPTY_P. 1096 1097 * class.c (include_empty_classes): Use normalize_rli. 1098 (layout_class_type): Likewise. 1099 1100 * decl.c (reshape_init): Tweak handling of character arrays. 1101 1102 PR c++/8218 1103 * cp-tree.h (lang_type_class): Add contains_empty_class_p. 1104 (CLASSTYPE_CONTAINS_EMPTY_CLASS_P): New macro. 1105 * class.c (check_bases): Update CLASSTYPE_CONTAINS_EMPTY_CLASS_P. 1106 (check_field_decls): Likewise. 1107 (layout_class_type): Likewise. 1108 (finish_struct_1): Initialize it. 1109 (walk_subobject_offsets): Use it to prune searches. 1110 11112002-10-20 Mark Mitchell <mark@codesourcery.com> 1112 1113 * method.c (use_thunk): Compute the vcall index as a HOST_WIDE_INT. 1114 * optimize.c (optimize_function): Replace ASM_OUTPUT_MI_THUNK with 1115 TARGET_ASM_OUTPUT_MI_THUNK in comments. 1116 11172002-10-18 Zack Weinberg <zack@codesourcery.com> 1118 1119 * decl.c (start_decl): Point users of the old initialized- 1120 typedef extension at __typeof__. 1121 11222002-10-18 Mark Mitchell <mark@codesourcery.com> 1123 1124 * Make-lang.in (method.o): Depend on TARGET_H. 1125 * method.c (target.h): Include it. 1126 (use_thunk): Use target hooks. Use vcall thunks, if available. 1127 11282002-10-18 Mark Mitchell <mark@codesourcery.com> 1129 1130 * class.c (base_derived_from): Make sure return value is a bool. 1131 11322002-10-18 Mark Mitchell <mark@codesourcery.com> 1133 1134 * class.c (find_final_overrider_data_s): Remove overriding_fn and 1135 overriding_base. 1136 (dfs_base_derived_from): New function. 1137 (base_derived_from): Likewise. 1138 (dfs_find_final_overrider): Use base_derived_from. 1139 (find_final_overrider): Adjust. 1140 11412002-10-18 Jason Merrill <jason@redhat.com> 1142 1143 PR c++/8080 1144 * semantics.c (finish_for_cond, finish_while_cond): Don't mess 1145 with condition decls in a template. 1146 11472002-10-17 Nathan Sidwell <nathan@codesourcery.com> 1148 1149 * class.c (add_method): Compare template parms too. 1150 11512002-10-17 Mark Mitchell <mark@codesourcery.com> 1152 1153 PR c++/7584 1154 * class.c (handle_using_decl): Allow the declaration used to be 1155 from an ambiguous base. 1156 1157 * pt.c (convert_template_argument): Revert this change: 1158 2002-10-16 Mark Mitchell <mark@codesourcery.com> 1159 * pt.c (convert_template_argument): Do not fold non-type 1160 template rguments when inside a template. 1161 1162 * init.c (expand_default_init): Handle brace-enclosed initializers 1163 correctly. 1164 11652002-10-16 Mark Mitchell <mark@codesourcery.com> 1166 1167 * mangle.c (write_expression): Correct handling of enumeration 1168 constants. 1169 (write_template_arg): Likewise. 1170 * pt.c (convert_template_argument): Do not fold non-type template 1171 arguments when inside a template. 1172 1173 PR c++/7478 1174 * cvt.c (convert_to_reference): Allow references as the incoming 1175 type. 1176 11772002-10-16 Mark Mitchell <mark@codesourcery.com> 1178 1179 PR c++/7524 1180 * method.c (do_build_assign_ref): Use cp_build_qualified_type, not 1181 build_qualified_type. 1182 11832002-10-15 Richard Henderson <rth@redhat.com> 1184 1185 * error.c (dump_expr): Use real_to_decimal directly, and with 1186 the new arguments. 1187 11882002-10-15 Mark Mitchell <mark@codesourcery.com> 1189 1190 * decl.c (reshape_init): Fix typo. 1191 1192 * cp-tree.h (operator_name_info_t): Add arity. 1193 * lex.c (init_operators): Initialize it. 1194 * mangle.c (write_conversion_operator_name): New function. 1195 (write_unqualified_name): Use it. 1196 (write_template_args): Accept template arguments as a TREE_LIST. 1197 (write_expression): Adjust handling of qualified names to match 1198 specification. 1199 12002002-10-15 Jason Merrill <jason@redhat.com> 1201 1202 * call.c (call_builtin_trap): New fn. 1203 (convert_arg_to_ellipsis): Use it. Downgrade error to warning. 1204 (build_call): Don't set current_function_returns_abnormally outside 1205 a function. 1206 12072002-10-14 Mark Mitchell <mark@codesourcery.com> 1208 1209 * class.c (check_field_decls): Remove empty_p parameter. Instead, 1210 clear CLASSTYPE_EMPTY_P. 1211 (build_base_field): Likewise. 1212 (build_base_fields): Likewise. 1213 (check_bases_and_members): Likewise. 1214 (create_vtbl_ptr): Likewise. 1215 (layout_class_type): Likewise. Ensure that empty classes have 1216 size zero when used as base classes in the 3.2 ABI. 1217 (finish_struct_1): Initialize CLASSTYPE_EMPTY_P and 1218 CLASSTYPE_NEARLY_EMPTY_P. Adjust calls to avoid passing empty_p 1219 parameter. 1220 (is_empty_class): Correct definition when using post-3.2 ABI. 1221 * cp-tree.h (lang_type_class): Add empty_p. 1222 (CLASSTYPE_EMPTY_P): New macro. 1223 12242002-10-12 Nathan Sidwell <nathan@codesourcery.com> 1225 1226 * init.c (build_delete): Do not apply save_expr for arrays. 1227 (build_vec_delete): Likewise. 1228 12292002-10-14 Mark Mitchell <mark@codesourcery.com> 1230 1231 * decl.c (layout_var_decl): Call layout_decl even for variables 1232 whose type is an array with unspecified bounds. 1233 1234 PR c++/7176 1235 * lex.c (do_identifier): Add another option for the parsing 1236 parameter. 1237 * parse.y (do_id): Use it. 1238 12392002-10-11 Gabriel Dos Reis <gdr@integrable-solutions.net> 1240 1241 PRs C++/6803, C++/7721 and C++/7803 1242 * decl.c (grokdeclarator): Gracefully handle template-name as 1243 decl-specifier. 1244 12452002-10-11 Jason Molenda <jmolenda@apple.com> 1246 1247 * init.c (build_field_list): Provide uses_unions_p with a default 1248 value. 1249 12502002-10-11 Mark Mitchell <mark@codesourcery.com> 1251 1252 PR c++/5661 1253 * cp-tree.h (variably_modified_type_p): New function. 1254 (grokdeclarator) Tighten check for variably modified types as 1255 fields. 1256 * pt.c (convert_template_argument): Do not allow variably modified 1257 types as template arguments. 1258 * tree.c (variably_modified_type_p): New function. 1259 1260 * NEWS: Document removal of "new X = ..." extension. 1261 * class.c (initialize_array): Set TREE_HAS_CONSTRUCTOR on 1262 brace-enclosed initializers. 1263 * cp-tree.h (CP_AGGREGATE_TYPE_P): New macro. 1264 (initialize_local_var): Remove declaration. 1265 (expand_static_init): Likewise. 1266 * decl.c (next_initializable_field): New function. 1267 (reshape_init): Likewise. 1268 (check_initializer): Use them. Build dynamic initializer for 1269 aggregates here too. 1270 (initialize_local_var): Simplify, and incorporate cleanup 1271 insertion code as well. 1272 (destroy_local_var): Remove. 1273 (cp_finish_decl): Tidy. 1274 (expand_static_init): Fold checks for whether or not a variable 1275 needs initialization into this function. Simplify. 1276 * decl2.c (do_static_initialization): Simplify. 1277 * init.c (build_init): Do not set TREE_SIDE_EFFECTS when it will 1278 be done for us automatically. 1279 (expand_default_init): Handle brace-enclosed initializers 1280 correctly. 1281 (expand_aggr_init_1): Remove RTL-generation code. 1282 (build_vec_init): Remove "new X = ..." support. 1283 * parse.y (new_initializer): Likewise. 1284 * rtti.c (get_pseudo_ti_init): Set TREE_HAS_CONSTRUCTOR on 1285 brace-enclosed initializer. 1286 (create_pseudo_type_info): Likewise. 1287 * typeck2.c (store_init_value): Don't try to handle digest_init 1288 being called more than once. 1289 (digest_init): Tidy handling of brace-enclosed initializers. 1290 12912002-10-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1292 1293 * decl.c (typename_hash): Use htab_hash_pointer. 1294 12952002-10-10 Jim Wilson <wilson@redhat.com> 1296 1297 * decl.c (duplicate_decls): Don't call decl_attributes. 1298 12992002-10-09 Zack Weinberg <zack@codesourcery.com> 1300 1301 PR c/7353 1302 * decl.c (start_decl): Unconditionally issue error for 1303 'typedef foo = bar'. 1304 (cp_finish_decl): Remove special case for TYPE_DECL with initializer. 1305 (grokdeclarator): Remove redundant error for 'typedef foo = bar'. 1306 13072002-10-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1308 1309 * decl2.c (prune_vtable_vardecl): Delete unused function. 1310 13112002-10-03 Mark Mitchell <mark@codesourcery.com> 1312 1313 PR c++/7754 1314 * decl2.c (finish_anon_union): Do not expand anonymous unions when 1315 procesing template functions. 1316 * pt.c (tsubst_decl, case VAR_DECL): Try to complete the variable 1317 type. Call layout_decl. 1318 (tsubst_expr, case DECL_STMT): Handle anonymous unions. 1319 13202002-10-07 Richard Henderson <rth@redhat.com> 1321 1322 * decl2.c, pt.c: Revert c++/7754 fix. 1323 13242002-10-05 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1325 1326 PR c++/7804 1327 * error.c (dump_expr) [REAL_CST]: Output in decimal format. 1328 13292002-10-03 Mark Mitchell <mark@codesourcery.com> 1330 1331 PR c++/7931 1332 * pt.c (for_each_template_parm_r): Handle BASELINKs. 1333 1334 PR c++/7754 1335 * decl2.c (finish_anon_union): Do not expand anonymous unions when 1336 procesing template functions. 1337 * pt.c (tsubst_decl, case VAR_DECL): Try to complete the variable 1338 type. Call layout_decl. 1339 (tsubst_expr, case DECL_STMT): Handle anonymous unions. 1340 13412002-10-03 Mark Mitchell <mark@codesourcery.com> 1342 1343 PR c++/8006 1344 * mangle.c (CLASSTYPE_TEMPLATE_ID_P): Handle instances of template 1345 template parameters. 1346 (globals): Add entity and need_abi_warning. 1347 (decl_is_template_id): Use TYPE_TEMPLATE_INFO, not 1348 CLASSTYPE_TEMPLATE_INFO. 1349 (is_std_substitution): Use CLASSTYPE_TI_TEMPLATE, not 1350 TYPE_TI_TEMPLATE. 1351 (write_prefix): Handle typename types correctly. 1352 (write_template_prefix): Handle template template parameters 1353 correctly. 1354 (start_mangling): Add entity parameter. 1355 (finish_mangling): Warn about names whose mangling will change. 1356 (mangle_decl_string): Adjust. 1357 (mangle_type_string): Likewise. 1358 (mangle_special_for_type): Likewise. 1359 (mangle_ctor_vtbl_for_type): Likewise. 1360 (mangle_thunk): Likewise. 1361 (mangle_guard_variable): Likewise. 1362 (mangle_ref_init_variable): Likewise. 1363 13642002-10-02 Mark Mitchell <mark@codesourcery.com> 1365 1366 PR c++/7188. 1367 * cp-tree.def (CTOR_INITIALIZER): Use one slot, not two. 1368 * cp-tree.h (emit_base_init): Rename to .... 1369 (emit_mem_initializers): ... this. 1370 (expand_member_init): Change prototype. 1371 * init.c (perform_member_init): Compute explicit, rather than 1372 requiring it as a parameter. 1373 (sort_member_init): Rename to ... 1374 (sort_mem_initializers): ... this. Process bases and data members 1375 together. 1376 (sort_base_init): Remove. 1377 (emit_base_init): Rename to ... 1378 (emit_mem_initializers): ... this. 1379 (expand_aggr_vbase_init_1): Remove. 1380 (construct_virtual_bases): Rename to ... 1381 (construct_virtual_base): ... this. 1382 (expand_member_init): Rework handling of base initializers. 1383 * method.c (do_build_copy_constructor): Use 1384 finish_mem_initializers. 1385 * parse.y (member_init): Adjust calls to expand_member_init. 1386 * pt.c (tsubst_expr): Simplify CTOR_INITIALIZER case. 1387 (tsubst_initializer_list): Use expand_member_init. 1388 * semantics.c (finish_mem_intiailizers): Simplify. 1389 13902002-10-02 Matt Austern <austern@apple.com> 1391 * decl.c (walk_vtables_r): Fixed typo that caused result to 1392 never get a nonzero value. 1393 13942002-10-02 Roger Sayle <roger@eyesopen.com> 1395 1396 PR optimization/6627 1397 * cp-tree.h (enum ptrmemfunc_vbit_where_t): Delete definition 1398 from here, and move it to tree.h. 1399 * decl.c (cxx_init_decl_processing): If storing the vbit 1400 in function pointers, ensure that force_align_functions_log 1401 is atleast one. 1402 14032002-10-02 Matt Austern <austern@apple.com> 1404 1405 * class.c (check_field_decls): Changed warning about const member 1406 variables so that it doesn't get issued for a class aggregate. 1407 14082002-10-01 Mark Mitchell <mark@codesourcery.com> 1409 1410 * decl.c (cp_finish_decl): Make sure array types are laid out, 1411 even if the array bounds are unknown. 1412 14132002-10-01 Steve Ellcey <sje@cup.hp.com> 1414 1415 * class.c (build_vtbl_initializer): Change build_c_cast 1416 to build1. 1417 14182002-10-01 Mark Mitchell <mark@codesourcery.com> 1419 1420 * decl.c (cp_finish_decl): Make sure array types are laid out, 1421 even if the array bounds are unknown. 1422 1423 * decl.c (cp_finish_decl): Correct check for dynamic 1424 initialization of thread-local storage. 1425 14262002-09-30 Nathan Sidwell <nathan@codesourcery.com> 1427 1428 * tree.c (really_overloaded_fn): TEMPLATE_ID_EXPRs are also 1429 overloaded. 1430 14312002-09-30 Steve Ellcey <sje@cup.hp.com> 1432 1433 * class.c (build_vtbl_initializer): Add cast. 1434 (add_vcall_offset_vtbl_entries_1): 1435 Use TARGET_VTABLE_DATA_ENTRY_DISTANCE for offset. 1436 14372002-09-30 Mark Mitchell <mark@codesourcery.com> 1438 1439 * class.c (walk_subobject_offsets): Correct the calculation of 1440 offsets for virtual bases. Correct the counting of array 1441 elements. 1442 (layout_nonempty_base_or_field): Simplify. Correct the 1443 calculation of offsets to be propagated through the binfo 1444 hierarchy. 1445 (build_base_field): Avoid creating a FIELD_DECL for empty bases. 1446 Add the FIELD_DECL to TYPE_FIELDS. 1447 (build_base_fields): Adjust accordingly. 1448 (layout_virtual_bases): Use build_base_field. 1449 (end_of_class): Return a tree, not an integer. 1450 (warn_about_ambiguous_direct_bases): Rename to ... 1451 (warn_about_ambiguous_bases): ... this. 1452 (include_empty_classes): New function. 1453 (layout_class_type): Create an alternative version of the type to 1454 be used when as a base class type. Do not call 1455 finish_record_layout until we are done laying out the class. 1456 * cp-tree.h (lang_type_class): Remove size, size_unit. Add 1457 as_base. 1458 (CLASSTYPE_SIZE): Reimplement. 1459 (CLASSTYPE_SIZE_UNIT): Likewise. 1460 (CLASSTYPE_ALIGN): Likweise. 1461 (CLASSTYPE_USER_ALIGN): Likewise. 1462 (CLASSTYPE_AS_BASE): New macro. 1463 (DECL_INITIALIZED_P): Likewise. 1464 (extract_init): Remove prototype. 1465 (build_forced_zero_init): Rename to ... 1466 (build_zero_init): ... this. 1467 (force_store_init_value): Remove. 1468 * decl.c (obscure_complex_init): Remove. 1469 (duplicate_decls): Copy DECL_INITIALIZED_P. 1470 (check_initializer): Do not leave junk in DECL_INITIAL. 1471 (cp_finish_decl): Handle zero-initialization of entities with 1472 static storage duration. 1473 * expr.c (extract_init): Remove. 1474 * init.c (build_forced_zero_init): Remove. 1475 (build_zero_init): New function. 1476 (build_default_init): Use it. 1477 (build_field_list): Skip FIELD_DECLs for base subobjects. 1478 (push_base_cleanups): Likewise. 1479 * method.c (do_build_assign_ref): Likewise. 1480 (synthesize_exception_spec): Likewise. 1481 * pt.c (tsubst_decl): Clear DECL_INITIALIZED_P. 1482 (regenerate_decl_from_template): To not set DECL_INITIAL for a 1483 static data member whose initialization took place in its class. 1484 (instantiate_decl): Do not pass an initializer to cp_finish_decl 1485 in that situation. 1486 * search.c (dfs_push_decls): Skip FIELD_DECLs for base subobjects. 1487 (dfs_unuse_fields): Likewise. 1488 * tree.c (pod_type_p): Handle error_mark_node. 1489 (zero_init_p): Likewise. 1490 * typeck.c (lookup_anon_field): Skip FIELD_DECLs for base 1491 subobjects. 1492 * typeck2.c (store_init_value): Remove #if 0'd code. 1493 (force_store_init_value): Remove. 1494 (process_init_constructor): Use build_zero_init. 1495 14962002-09-29 Nathan Sidwell <nathan@codesourcery.com> 1497 1498 PR c++/7788 1499 * rtti.c (unemitted_tinfo_decl_p): Check it has a field. 1500 15012002-09-29 Kazu Hirata <kazu@cs.umass.edu> 1502 1503 * cp-tree.h: Fix comment typos. 1504 * decl.c: Likewise. 1505 * pt.c: Likewise. 1506 15072002-09-25 Mark Mitchell <mark@codesourcery.com> 1508 1509 * cp/class.c (contains_empty_class_p): New method. 1510 (walk_subobject_offsets): Correct computation of field offset. 1511 (layout_empty_base): Correct placement of emtpy base classes. 1512 (layout_class_type): Warn about ABI changes. 1513 15142002-09-23 Mark Mitchell <mark@codesourcery.com> 1515 1516 * cp/class.c (layout_virtual_bases): Do not round the size of the 1517 type to a multiple of the alignment before laying out virtual bases. 1518 (layout_class_type): Correct handling of bit-fields that are wider 1519 than their type inside unions. Round the size of the type to a 1520 even number of bytes when computing the size without virtual 1521 bases. 1522 * cp/cp-tree.h (abi_version_at_least): New macro. 1523 15242002-09-21 Kazu Hirata <kazu@cs.umass.edu> 1525 1526 * ChangeLog: Follow spelling conventions. 1527 * ChangeLog.2: Likewise. 1528 * call.c: Likewise. 1529 * class.c: Likewise. 1530 * cp-tree.h: Likewise. 1531 * cvt.c: Likewise. 1532 * decl.c: Likewise. 1533 * decl2.c: Likewise. 1534 * except.c: Likewise. 1535 * friend.c: Likewise. 1536 * g++spec.c: Likewise. 1537 * init.c: Likewise. 1538 * lex.c: Likewise. 1539 * mangle.c: Likewise. 1540 * method.c: Likewise. 1541 * operators.def: Likewise. 1542 * optimize.c: Likewise. 1543 * pt.c: Likewise. 1544 * rtti.c: Likewise. 1545 * search.c: Likewise. 1546 * semantics.c: Likewise. 1547 * spew.c: Likewise. 1548 * tree.c: Likewise. 1549 * typeck.c: Likewise. 1550 15512002-09-18 Devang Patel <dpatel@apple.com> 1552 1553 * cp/cp-tree.h: New prototype for walk_vtabls(). 1554 * cp/decl.c (walk_vtables_r): New function. 1555 (struct cp_binding_level): Add new members, namespaces, 1556 names_size and vtables. 1557 (add_decl_to_level): Add decl in namespaces or vtables 1558 chain, if conditions match. 1559 (walk_vtables): New function. 1560 (walk_namespaces_r): Travers separate namespace chain 1561 for namespace decls. 1562 (wrapup_globals_for_namespace): Use names_size instead 1563 of list_length(). 1564 * cp/decl2.c (finish_file): Use walk_vtables() instead of 1565 walk_globals() to walk vtable decls. 1566 15672002-09-18 Nathan Sidwell <nathan@codesourcery.com> 1568 1569 * decl.c (grokdeclarator): Use assert, not internal_error. Don't 1570 ICE with invalid pointers & references. 1571 15722002-09-17 Zack Weinberg <zack@codesourcery.com> 1573 1574 * Make-lang.in: Remove all references to the demangler. 1575 * cxxfilt.c: Moved to binutils. 1576 15772002-09-16 Nathan Sidwell <nathan@codesourcery.com> 1578 1579 PR c++/7718 1580 * pt.c (tsubst_decl): Remove assert. 1581 1582 Remove DR 295 implementation. 1583 * pt.c (check_cv_quals_for_unify): Disable function & method cases. 1584 * tree.c (cp_build_qualified_type_real): Likewise. Don't warn 1585 about ignoring volatile qualifiers. 1586 1587 * search.c (lookup_member): Correct documentation. 1588 15892002-09-16 Geoffrey Keating <geoffk@apple.com> 1590 1591 * cp-tree.h (union lang_tree_node): Add chain_next option. 1592 15932002-09-16 Nathan Sidwell <nathan@codesourcery.com> 1594 1595 * parse.y (parse_finish_call_expr): Check lookup_member result. 1596 1597 PR c++/7015 1598 * semantic.c (finish_asm_stmt): Fix operand/output_operands 1599 thinko. 1600 * typeck.c (c_expand_asm_operands): Protect from error_mark_node. 1601 16022002-09-15 Nathan Sidwell <nathan@codesourcery.com> 1603 1604 PR c++/7919 1605 * call.c (build_over_call): Convert this pointer for fns found by 1606 using decls. 1607 16082002-09-15 Kazu Hirata <kazu@cs.umass.edu> 1609 1610 * ChangeLog: Follow spelling conventions. 1611 * ChangeLog.1: Likewise. 1612 16132002-09-14 Nathan Sidwell <nathan@codesourcery.com> 1614 1615 PR c++/7768 1616 * pt.c (build_template_decl): Copy DECL_DESTRUCTOR_P. 1617 16182002-09-14 Kazu Hirata <kazu@cs.umass.edu> 1619 1620 * error.c: Fix comment formatting. 1621 * except.c: Likewise. 1622 * expr.c: Likewise. 1623 * friend.c: Likewise. 1624 * g++spec.c: Likewise. 1625 * init.c: Likewise. 1626 * lex.c: Likewise. 1627 * mangle.c: Likewise. 1628 * method.c: Likewise. 1629 * optimize.c: Likewise. 1630 * pt.c: Likewise. 1631 * rtti.c: Likewise. 1632 * search.c: Likewise. 1633 * semantics.c: Likewise. 1634 * spew.c: Likewise. 1635 * tree.c: Likewise. 1636 * typeck.c: Likewise. 1637 * typeck2.c: Likewise. 1638 16392002-09-13 Matt Austern <austern@apple.com> 1640 1641 PR C++/7828 1642 * cp/cp-tree.h, cp/tree.c: New function non_cast_lvalue_p. 1643 * cp/call.c: Change call-by-const-reference mechanism to use 1644 non_cast_lvalue_p when deciding whether the create a temporary. 1645 We need a temporary when passing, e.g. (long) x by const ref. 1646 16472002-09-13 Nathan Sidwell <nathan@codesourcery.com> 1648 1649 * pt.c (unify, ARRAY_TYPE): Element type can be more qualified. 1650 16512002-09-13 Kazu Hirata <kazu@cs.umass.edu> 1652 1653 * decl.c: Fix comment formatting. 1654 * decl2.c: Likewise. 1655 16562002-09-12 Kazu Hirata <kazu@cs.umass.edu> 1657 1658 * call.c: Fix comment formatting. 1659 * class.c: Likewise. 1660 * cp-lang.c: Likewise. 1661 * cp-tree.h: Likewise. 1662 * cvt.c: Likewise. 1663 16642002-09-11 Zack Weinberg <zack@codesourcery.com> 1665 1666 * Make-lang.in: Build cp/cxxfilt.o from $(srcdir)/cp/cxxfilt.c, 1667 and c++filt from cxxfilt.o + version.o + $(LIBDEPS). 1668 * cxxfilt.c: New file: split from libiberty/cplus-dem.c, with 1669 minor adjustments (use version_string, eliminate yet another 1670 duplicate of xmalloc) 1671 16722002-09-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1673 1674 * cp-tree.h (require_complete_eh_spec_types): Add prototype. 1675 16762002-09-05 Jason Merrill <jason@redhat.com> 1677 1678 * typeck2.c (add_exception_specifier): Only pedwarn for an 1679 incomplete type. 1680 (require_complete_eh_spec_types): New fn. 1681 (cxx_incomplete_type_diagnostic): Also support pedwarning. 1682 * typeck.c (complete_type_or_diagnostic): Likewise. 1683 * call.c (build_call): Call require_complete_eh_spec_types. 1684 * rtti.c (get_pseudo_ti_desc): Give an error rather than aborting 1685 on an incomplete type. 1686 16872002-09-04 Jakub Jelinek <jakub@redhat.com> 1688 1689 * decl.c (start_cleanup_fn): Clear interface_only before 1690 start_function, restore it afterwards. 1691 16922002-09-02 Nathan Sidwell <nathan@codesourcery.com> 1693 1694 * cp-tree.h (finish_builtin_type): Remove. 1695 * decl2.c (finish_builtin_type): Move to common code. 1696 * decl.c (build_ptrmemfunc_type): Adjust. 1697 * rtti.c (create_pseudo_type_info): Adjust. 1698 (create_tinfo_types): Adjust. 1699 17002002-08-31 Jason Merrill <jason@redhat.com> 1701 1702 * cp-lang.c (cp_expr_size): Allow initialization from a 1703 CONSTRUCTOR. 1704 17052002-08-30 Richard Henderson <rth@redhat.com> 1706 1707 PR opt/7515 1708 * tree.c: Include target.h. 1709 (cp_cannot_inline_tree_fn): Don't auto-inline functions that 1710 don't bind locally. 1711 * Makefile.in (tree.o): Update. 1712 17132002-08-27 Mark Mitchell <mark@codesourcery.com> 1714 1715 * class.c (layout_virtual_bases): Warn about bugs in G++ that 1716 result in incorrect object layouts. 1717 (layout_class_type): Likewise. 1718 17192002-08-24 Matt Austern <austern@apple.com> 1720 1721 * tree.c (lvalue_p_1): Add argument for whether casts of lvalues 1722 are allowable. 1723 (real_lvalue_p): Update caller. 1724 (lvalue_p): Ditto. 1725 (non_cast_lvalue_or_else): New. 1726 * tree.h: Declare it. 1727 * typeck.c (build_unary_op): Use non_cast_lvalue_or_else. 1728 17292002-08-22 Mark Mitchell <mark@codesourcery.com> 1730 1731 * typeck.c (build_class_member_access_expr): Handle COMPOUND_EXPR 1732 and COND_EXPR specially; fix error message output. 1733 17342002-08-22 Jason Merrill <jason@redhat.com> 1735 1736 * pt.c (tsubst_expr): RETURN_EXPR is now RETURN_STMT_EXPR. 1737 * semantics.c (nullify_returns_r): Likewise. 1738 17392002-08-17 Gabriel Dos Reis <gdr@integrable-solutions.net> 1740 1741 Fix PR/7621 1742 * typeck.c (finish_class_member_access_expr): Diagnose cases where 1743 name lookup finds nothing. 1744 17452002-08-15 Jason Merrill <jason@redhat.com> 1746 1747 * semantics.c (finish_then_clause): Remove redundant assignment. 1748 (finish_if_stmt, begin_switch_stmt, finish_switch_stmt): Move the 1749 extra binding level outside the if/switch statement. 1750 (finish_while_cond, finish_for_cond): Rewrite complex condition 1751 into the loop body. 1752 17532002-08-15 Alexandre Oliva <aoliva@redhat.com> 1754 1755 * parse.y (sizeof, alignof, typeof): New non-terminals to 1756 increment skip_evaluation. Replace terminals with them and 1757 decrement skip_evaluation at the end of rules using them. 1758 * decl2.c (mark_used): Don't assemble_external if 1759 skipping evaluation. 1760 17612002-08-15 Gabriel Dos Reis <gdr@nerim.net> 1762 1763 Fix PR/7504 1764 * parse.y (parse_finish_call_expr): Handle incomplete 1765 type used to name a scope. 1766 17672002-08-15 Nathan Sidwell <nathan@codesourcery.com> 1768 1769 PR c++/7598 1770 * typeck.c (build_unary_op): Fold offsetof idiom. Fixes 1771 regression caused by my 2002-08-08 patch. 1772 17732002-08-13 Mark Mitchell <mark@codesourcery.com> 1774 1775 * decl.c (pushdecl_class_level): Honor requests to bind names to 1776 OVERLOADs. 1777 17782002-08-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1779 1780 * decl2.c (build_call_from_tree): Fix uninitialized variable. 1781 * parse.y (parse_finish_call_expr): Likewise. 1782 * repo.c (old_args, old_dir, old_main): Const-ify. 1783 17842002-08-11 Gabriel Dos Reis <gdr@nerim.net> 1785 1786 * decl.c (duplicate_decls): Replace DECL_SOURCE_FILE 1787 DECL_SOURCE_LINE with DECL_SOURCE_LOCATION. 1788 * optimize.c (maybe_clone_body): Likewise. 1789 * pt.c (tsubst_enum): Likewise. 1790 (lookup_template_class): Likewise. 1791 * tree.c (cp_copy_res_decl_for_inlining): Likewise. 1792 17932002-08-10 Neil Booth <neil@daikokuya.co.uk> 1794 1795 * lang-specs.h: Remove -ansi. 1796 17972002-08-10 Nathan Sidwell <nathan@codesourcery.com> 1798 1799 * tree.c (maybe_dummy_object): Replace // with /* */ 1800 18012002-08-09 Mark Mitchell <mark@codesourcery.com> 1802 1803 * call.c (standard_conversion): Use build_ptrmem_type. 1804 * cp-tree.h (build_ptrmem_type): New function. 1805 (adjust_result_of_qualified_name_lookup): Likewise. 1806 * decl.c (grokvardecl): Do not look for OFFSET_TYPEs to indicate 1807 static data members. 1808 (build_ptrmem_type): New function. 1809 (grokdeclarator): Do not use build_offset_type when encountering a 1810 qualified name. 1811 * parse.y (parse_finish_call_expr): Use 1812 adjust_result_of_qualified_name_lookup. 1813 * search.c (adjust_result_of_qualified_name_lookup): New function. 1814 * typeck.c (qualify_type_recursive): Use TYPE_PTRMEM_* rather than 1815 accessing OFFSET_TYPEs directly. 1816 18172002-08-08 Mike Stump <mrs@apple.com> 1818 1819 * call.c (add_builtin_candidate): legal -> valid, illegal -> invalid. 1820 (type_decays_to): Likewise. 1821 * class.c (find_final_overrider): Likewise. 1822 (maybe_note_name_used_in_class): Likewise. 1823 * decl.c (current_tmpl_spec_kind): Likewise. 1824 (add_binding): Likewise. 1825 (push_class_binding): Likewise. 1826 (duplicate_decls): Likewise. 1827 (layout_var_decl): Likewise. 1828 (grokfndecl): Likewise. 1829 (grokdeclarator): Likewise. 1830 (check_default_argument): Likewise. 1831 * decl2.c (handle_class_head): Likewise. 1832 * error.c (dump_template_decl): Likewise. 1833 * init.c (build_offset_ref): Likewise. 1834 * pt.c (check_specialization_scope): Likewise. 1835 (determine_specialization): Likewise. 1836 (check_explicit_specialization): Likewise. 1837 (maybe_check_template_type): Likewise. 1838 (process_partial_specialization): Likewise. 1839 (check_default_tmpl_args): Likewise. 1840 (push_template_decl_real): Likewise. 1841 (convert_template_argument): Likewise. 1842 (try_class_unification): Likewise. 1843 (get_bindings_real): Likewise. 1844 (do_decl_instantiation): Likewise. 1845 * semantics.c (begin_function_definition): Likewise. 1846 (finish_member_declaration): Likewise. 1847 (check_multiple_declarators): Likewise. 1848 * typeck.c (comp_array_types): Likewise. 1849 (comptypes): Likewise. 1850 (expr_sizeof): Likewise. 1851 (build_binary_op): Likewise. 1852 (dubious_conversion_warnings): Likewise. 1853 (check_return_expr): Likewise. 1854 18552002-08-08 Mark Mitchell <mark@codesourcery.com> 1856 1857 * typeck.c (build_class_member_access_expr): Do not return 1858 error_mark_node when no error has occurred. 1859 18602002-08-08 Nathan Sidwell <nathan@codesourcery.com> 1861 1862 * typeck.c (build_component_addr): Remove. 1863 (build_unary_op): Just check it's not a bitfield, and then build 1864 an ADDR_EXPR. 1865 18662002-08-08 Nathan Sidwell <nathan@codesourcery.com> 1867 1868 * class.c (convert_to_base): Correct check for error_mark_node. 1869 (create_vtable_ptr): Remove unused VFUNS_P parm. 1870 18712002-08-08 Nathan Sidwell <nathan@codesourcery.com> 1872 1873 * cp/Make-lang.in (c++.mostlyclean): Remove coverage files. 1874 18752002-08-07 Mark Mitchell <mark@codesourcery.com> 1876 1877 Rework build_component_ref. 1878 * call.c (build_vfield_ref): Do not go through build_component_ref. 1879 (build_field_call): Use build_class_member_access_expr. 1880 (build_user_type_conversion_1): Use BASELINK_FUNCTIONS. 1881 (build_object_call): Likewise. 1882 * class.c (convert_to_base): New function. 1883 (type_requires_array_cookie): Use BASELINK_FUNCTIONS. 1884 (instantiate_type): Handle BASELINKs. 1885 * cp-tree.def (BASELINK): New tree code. 1886 * cp-tree.h (BASELINK_P): Reimplement. 1887 (SET_BASELINK_P): Remove. 1888 (BASELINK_BINFO): Reimplement. 1889 (BASELINK_FUNCTIONS): Likewise. 1890 (BASELINK_ACCESS_BINFO): Likewise. 1891 (BASELINK_OPTYPE): Likewise. 1892 (convert_to_base): New function. 1893 (name_p): Likewise. 1894 (build_object_ref): Remove. 1895 (build_component_ref_1): Likewise. 1896 (build_component_ref): Likewise. 1897 (build_x_component_ref): Likewise. 1898 (build_class_member_access_expr): New function. 1899 (finish_class_member_access_expr): Likewise. 1900 (build_ptrmemfunc_access_expr): Likewise. 1901 * decl.c (grokdeclarator): Handle BASELINKs. 1902 * decl2. (build_expr_from_tree): Handle COMPONENT_REFs by using 1903 finish_class_member_access_expr. 1904 (arg_assoc): Handle BASELINKs. 1905 (do_class_using_decl): Likewise. 1906 * error.c (dump_decl): Likewise. 1907 (dump_expr): Use build_ptrmemfunc_access_expr. 1908 * except.c (dtor_nothrow): Use CLASSTYPE_DESTRUCTORS to find 1909 destructors. 1910 (build_throw): Use BASELINK_FUNCTIONS. 1911 * init.c (perform_member_init): Use 1912 build_class_member_access_expr. 1913 (build_offset_ref): Handle BASELINKs. Use 1914 build_class_member_access_expr. 1915 * method.c (hack_identifier): Likewise. 1916 * parse.y (do_id): Use BASELINK, not TREE_LIST. 1917 (primary): Remove uses of build_object_ref. 1918 * pt.c (lookup_template_function): Handle BASELINKs. 1919 (resolve_overloaded_unification): Likewise. 1920 * search.c (build_baselink): Build a BASELINK, not a TREE_LIST. 1921 (lookup_field): Use BASELINK, not TREE_LIST. 1922 (lookup_fnfiels): Likewise. 1923 (setup_class_bindings): Likewise. 1924 * semantics.c (finish_object_call_expr): Do not use 1925 build_method_call when we already know what function is being 1926 called. 1927 * spew.c (identifier_type): Use BASELINK, not TREE_LIST. 1928 * tree.c (really_overloaded_fn): Use OVL_CHAIN for OVERLOADs, not 1929 TREE_CHAIN. 1930 (name_p): New function. 1931 * typeck.c (build_object_ref): Remove. 1932 (build_component_ref_1): Likewise. 1933 (build_x_component_ref): Likewise. 1934 (build_class_member_access_expr): New function. 1935 (finish_class_member_access_expr): Likewise. 1936 (build_ptrmemfunc_access_expr): Likewise. 1937 (get_member_function_from_ptrfunc): Use 1938 build_ptrmemfunc_access_expr. 1939 (build_binary_op): Likewise. 1940 (build_unary_op): Likewise. 1941 (build_ptrmemfunc): Likewise. 1942 (pfn_from_ptrmemfunc): Likewise. 1943 * typeck2.c (build_m_component_ref): Adjust comment. 1944 19452002-08-07 Neil Booth <neil@daikokuya.co.uk> 1946 1947 * Make-lang.in (CXX_C_OBJS): Update. 1948 * cp-lang.c (LANG_HOOKS_DECODE_OPTION): Use c_common_decode_option. 1949 * cp-tree.h (cxx_decode_option): Remove. 1950 * decl2.c (compare_options, lang_f_options, unsupported_options, 1951 cxx_decode_option): Remove. 1952 19532002-08-06 Gabriel Dos Reis <gdr@nerim.net> 1954 1955 * typeck.c (build_x_unary_op): Handle pointer-to-member. 1956 19572002-08-05 Geoffrey Keating <geoffk@redhat.com> 1958 1959 * class.c: Don't include obstack.h. 1960 (popclass): 1961 * decl2.c: Delete bogus comment. 1962 * error.c: Don't include obstack.h. 1963 * except.c: Likewise. 1964 (dump_type): Correct comment. 1965 * method.c: Don't include obstack.h. 1966 * tree.c: Likewise. 1967 19682002-08-04 Gabriel Dos Reis <gdr@nerim.net> 1969 1970 Fix PR/2213 1971 * cvt.c (cp_convert_to_pointer): Reject conversions from integral 1972 expressions to pointer-to-data-member of pointer-to-member-functions. 1973 19742002-08-04 Geoffrey Keating <geoffk@redhat.com> 1975 1976 * cvt.c (ocp_convert): Delete obsolete code. 1977 * parse.y (permanent_obstack): Delete declaration. 1978 * pt.c (permanent_obstack): Delete declaration. 1979 * repo.c (permanent_obstack): Delete declaration. 1980 (open_repo_file): Use xmalloc instead of permanent_obstack. 1981 (init_repo): Use xstrdup instead of permanent_obstack. 1982 19832002-08-04 Nathan Sidwell <nathan@codesourcery.com> 1984 1985 * cp-tree.h (VF_DERIVED_VALUE): Remove. 1986 * class.c (finish_struct_1): Use VF_BINFO_VALUE not VF_DERIVED_VALUE. 1987 19882002-08-03 Nathan Sidwell <nathan@codesourcery.com> 1989 1990 PR 7470. 1991 C++ ABI change - vfunc ordering. 1992 * class.c (add_virtual_function): Remove. 1993 (dfs_modify_all_vtables): Take list of all declared 1994 virtuals. Assign all that are not in primary base. 1995 (check_for_override): Adjust comments. 1996 (create_vtable_ptr): Take single list of virtuals. Build chain 1997 of declared virtuals here. 1998 (layout_class_type): Take single list of virtuals. Adjust. 1999 (finish_struct_1): Keep virtuals on single list. Adjust. 2000 20012002-08-02 Mark Mitchell <mark@codesourcery.com> 2002 2003 * init.c (build_member_call): Use build_new_method_call, not 2004 build_method_call. 2005 20062002-08-02 Krister Walfridsson <cato@df.lth.se> 2007 2008 * Make-lang.in (spew.o, lex.o, pt.o): Add path to parse.h dependencies. 2009 20102002-08-02 Mark Mitchell <mark@codesourcery.com> 2011 2012 * call.c (build_method_call): Issue a more helpful error message 2013 about ambiguous method names. 2014 20152002-08-02 Nathan Sidwell <nathan@codesourcery.com> 2016 2017 * tree.c (build_shared_int_cst): Make cache file scope, and 2018 GTY it. 2019 20202002-08-02 Jason Merrill <jason@redhat.com> 2021 2022 * cp-lang.c (LANG_HOOKS_EXPR_SIZE): Define. 2023 (cp_expr_size): New fn. 2024 * call.c (build_over_call): Lose empty class hackery. 2025 (convert_arg_to_ellipsis): Promote non-POD warning to error. 2026 * typeck.c (build_modify_expr): Don't use save_expr on an lvalue. 2027 2028 * semantics.c (expand_body): Do tree optimization in the function 2029 context, too. 2030 20312002-08-01 Neil Booth <neil@daikokuya.co.uk> 2032 2033 * cp-tree.h: Move all warning and flag declarations to c-common.h. 2034 * decl.c: Move all warning and flag variables to c-common.c. 2035 * decl2.c: Move all warning and flag variables to c-common.c. 2036 * lex.c (flag_digraphs): Remove. 2037 (warn_traditional): Now in c-common.c. 2038 20392002-07-31 Mark Mitchell <mark@codesourcery.com> 2040 2041 * call.c (build_field_call): Do not look up the field by name. 2042 (build_method_call): Simplify. 2043 (struct z_candidate): Add access_path and conversion_path. Remove 2044 basetype_path. 2045 (convert_class_to_reference): Adjust use of 2046 add_function_candidate. 2047 (add_candidate): Add conversion_path argument. 2048 (add_function_candidate): Use it. 2049 (add_conv_dndidate): Likewise. 2050 (build_builtin_candidate): Likewise. 2051 (add_template_candidate_real): Add conversion_path argument. 2052 (add_template_conv_candidate): Likewise. 2053 (add_template_candidate): Likewise. 2054 (build_user_type_conversion_1): Use it. 2055 (build_new_function_call): Remove name lookup code. Adjust use of 2056 add_template_candidate and add_function_candidate. 2057 (build_new_op): Likewise. 2058 (convert_like_real): Use build_special_member_call. 2059 (build_over_call): Use cand->conversion_path. 2060 (build_special_member_call): New method. 2061 (build_new_method_call): Remove name lookup code. 2062 * cp-tree.def (OFFSET_REF): Update documentation. 2063 (TEMPLATE_ID_EXPR): Likewise. 2064 * cp-tree.h (BASELINK_ACCESS_BINFO): New macro. 2065 (BASELINK_OPTYPE): Likewise. 2066 (build_new_method_call): Adjust prototype. 2067 (build_special_member_call): New method. 2068 (build_baselink): New method. 2069 (build_offset_ref_call_from_tree): Likewise. 2070 (build_call_from_tree): Likewise. 2071 (finish_qualified_call_expr): Remove. 2072 (finish_call_expr): Adjust prototype. 2073 (build_x_function_call): Remove. 2074 * cvt.c (ocp_convert): Use build_special_member_call. 2075 * decl2.c (reparse_absdcl_as_expr): Use finish_call_expr. 2076 (build_expr_from_tree): Adjust handling for TEMPLATE_ID_EXPR and 2077 CALL_EXPR. 2078 (build_offset_ref_call_from_tree): New function. 2079 (build_call_from_tree): Likewise. 2080 * init.c (expand_cleanup): Use build_special_member_call. 2081 (expand_default_init): Likewise. 2082 (build_member_call): Use finish_call_expr. 2083 (build_new_1): Use build_special_member_call. 2084 (push_base_cleanups): Likewise. 2085 * method.c (do_build_assign_ref): Likewise. 2086 * parse.y (template_id): Do not pass a COMPONENT_REF to 2087 lookup_template_function. 2088 (primary): Use parse_finish_call_epxr, not finish_call_expr. 2089 (parse_finish_call_expr): New function. 2090 * pt.c (lookup_template_function): Add assertions. 2091 * search.c (lookup_base): Allow T to be a binfo. 2092 (build_baselink): New function. 2093 (lookup_member): Use it. 2094 * semantics.c (finish_call_expr): Do not do name lookup. 2095 (finish_object_call_expr): Remove #if 0'd code. 2096 (finish_qualified_call_expr): Remove. 2097 * typeck.c (build_x_function_call): Remove. 2098 (build_static_case): Use build_special_member_call. 2099 * typeck2.c (build_functional_cast): Likewise. 2100 21012002-07-30 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> 2102 2103 * lang-specs.h: Remove __GXX_ABI_VERSION, moved to gcc.c. 2104 21052002-07-30 Gabriel Dos Reis <gdr@nerim.net> 2106 2107 * cp-tree.h (VF_DERIVED_VALUE): Restore from previous deletion. 2108 21092002-07-30 Nathan Sidwell <nathan@codesourcery.com> 2110 2111 * cp-tree.h (CLASSTYPE_VFIELDS, VF_*, BV_*): Add more 2112 documentation. 2113 21142002-07-29 Alan Modra <amodra@bigpond.net.au> 2115 2116 * cp-tree.h: Comment typo fix. 2117 21182002-07-29 Richard Earnshaw <rearnsha@arm.com> 2119 2120 * spew.c (space_for_token): Allocate zeroed memory for a new token 2121 chunk. 2122 21232002-07-27 Roger Sayle <roger@eyesopen.com> 2124 2125 * decl.c (builtin_function_1): No need to explicitly mark 2126 BUILT_IN_RETURN and BUILT_IN_EH_RETURN as noreturn. 2127 21282002-07-27 Roger Sayle <roger@eyesopen.com> 2129 2130 * decl2.c (cxx_decode_option): Support -fno-builtin-foo. 2131 21322002-07-26 Jason Merrill <jason@redhat.com> 2133 2134 * call.c (build_over_call): Likewise. 2135 (cp_convert_parm_for_inlining): New fn. 2136 (convert_for_arg_passing): New fn. 2137 (convert_default_arg, build_over_call): Use it. 2138 (type_passed_as): New fn. 2139 * pt.c (tsubst_decl): Use it. 2140 * decl2.c (cp_build_parm_decl): New fn. 2141 (build_artificial_parm): Use it. 2142 (start_static_storage_duration_function): Likewise. 2143 * decl.c (start_cleanup_fn, grokdeclarater): Likewise. 2144 (grokparms): Don't mess with DECL_ARG_TYPE. 2145 * typeck.c (convert_arguments): Use convert_for_arg_passing. 2146 * cp-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING): 2147 Define. 2148 * cp-tree.h: Declare new fns. 2149 21502002-07-26 Neil Booth <neil@daikokuya.co.uk> 2151 2152 * cp-tree.h (flag_operator_names): Remove. 2153 * decl2.c (flag_operator_names): Remove. 2154 (lang_f_options): Remove operator-names. 2155 * lex.c (D_OPNAME): Remove. 2156 (reswords): Remove operator names. 2157 (rid_to_yy): Remove operator names. 2158 (init_reswords): No need to handle D_OPNAME. 2159 * spew.c (read_process_identifier): There are no operator 2160 names. 2161 21622002-07-26 Jason Merrill <jason@redhat.com> 2163 2164 * dump.c (cp_dump_tree): Call c_dump_tree. 2165 * Make-lang.in (CXX_C_OBJS): Add c-dump.o. 2166 21672002-07-25 Neil Booth <neil@daikokuya.co.uk> 2168 2169 * error.c (print_whitespace): Remove. 2170 * g++spec.c (LIBUNWIND): Move. 2171 * mangle.c (mangled_position, write_signed_number): Remove. 2172 21732002-07-25 Neil Booth <neil@daikokuya.co.uk> 2174 2175 * decl2.c (cxx_decode_option): Similarly. 2176 21772002-07-25 Gabriel Dos Reis <gdr@nerim.net> 2178 2179 * cp-tree.h (cxx_sizeof_nowarn): Now a macro. 2180 (cxx_sizeof_or_alignof_type): Take a third argument. 2181 (cxx_sizeof): Adjust definition. 2182 (cxx_alignof): Likewise. 2183 * init.c (build_delete): Use cxx_sizeof_nowarn to reflect reality. 2184 * typeck.c (cxx_sizeof_or_alignof_type): Take a third argument for 2185 complaining. 2186 (c_sizeof_nowarn): Remove definition. 2187 (build_unary_op): Use cxx_sizeof_nowarn. 2188 21892002-07-24 Geoffrey Keating <geoffk@redhat.com> 2190 2191 * tree.c (cp_build_qualified_type_real): When copying 2192 pointer-to-method types, unshare the record that holds 2193 the cached pointer-to-member-function type. 2194 21952002-07-23 Neil Booth <neil@daikokuya.co.uk> 2196 2197 * cp-tree.h (FILE_FUNCTION_PREFIX_LEN): Remove. 2198 21992002-07-23 Gabriel Dos Reis <gdr@nerim.net> 2200 2201 Fix PR/7363: 2202 * typeck.c (cxx_sizeof_or_alignof_type): New function. 2203 (c_sizeof): Remove definition. 2204 (expr_sizeof): Use cxx_sizeof. 2205 * decl2.c (build_expr_from_tree): Use cxx_sizeof_or_alignof_type. 2206 * decl.c (finish_destructor_body): Use cxx_sizeof. 2207 * semantics.c (finish_alignof): Likewise. 2208 (finish_alignof): Use cxx_alignof. 2209 * cp-tree.h (cxx_sizeof, cxx_alignof): New macros. 2210 (cxx_sizeof_or_alignof_type): Declare. 2211 (my_friendly_assert): Move to ../c-common.h. 2212 22132002-07-23 Neil Booth <neil@daikokuya.co.uk> 2214 2215 * class.c, method.c, pt.c, search.c: Don't define obstack macros. 2216 22172002-07-22 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2218 2219 PR c++/7347, c++/7348 2220 * cp-tree.h (tsubst_flags_t): Add tf_parsing. 2221 * decl.c (make_typename_type): Use it. 2222 (make_unbound_class_template): Likewise. 2223 (lookup_name_real): Don't call type_access_control if scope is 2224 template parameter dependent. 2225 * parse.y (template_arg): Call make_unbound_class_template with 2226 tf_parsing set. 2227 (nest_name_specifier): Call make_typename_type with tf_parsing set. 2228 (typename_sub0): Likewise. 2229 (typename_sub1): Likewise. 2230 (instantiate_decl): Push class scope. 2231 * pt.c (regenerate_decl_from_template): Call pushclass and popclass 2232 for both static variable and member function template. 2233 (instantiate_decl) Call pushclass and popclass when tsubst'ing type 2234 and arguments. 2235 * search.c (type_access_control): Do type access for TEMPLATE_DECL 2236 too. 2237 22382002-07-20 Roger Sayle <roger@eyesopen.com> 2239 2240 * decl2.c (cxx_decode_option): Simplify -fhandle-exceptions 2241 test by using positive_option. Make whitespace consistent. 2242 22432002-07-20 Gabriel Dos Reis <gdr@nerim.net> 2244 2245 * spew.c (struct unparsed_test): Replace 'filename' and 'lineno' 2246 members with 'locus'. Adjust use throughout. 2247 (struct feed): Likewise. 2248 (alloc_unparsed_test): Change prototype, take a 'const location_t *'. 2249 Adjust use. 2250 (snarf_defarg): Use error(), not error_with_file_and_line(). 2251 22522002-07-19 Chris Demetriou <cgd@broadcom.com> 2253 2254 * lang-specs.h (@c++): Include "%2" (cc1plus_spec) wherever 2255 cpp_options is included. 2256 22572002-07-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2258 2259 PR c++/2862, c++/2863 2260 * pt.c (determine_specialization): Compare the length of 2261 TYPE_ARG_TYPES. Tidy. 2262 22632002-07-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2264 2265 PR c++/3797 2266 * decl.c (duplicate_decls): Don't propagate inlining parameters from 2267 olddecl to newdecl when newdecl is a specialization of the 2268 instantiation olddecl. 2269 22702002-07-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2271 2272 PR c++/4802, c++/5387 2273 * decl.c (make_typename_type): Use enforce_access. 2274 22752002-07-17 Scott Snyder <snyder@fnal.gov> 2276 2277 PR c++/7320 2278 * rtti.c (get_tinfo_decl): Set DECL_COMDAT. 2279 22802002-07-12 Mark Mitchell <mark@codesourcery.com> 2281 2282 * class.c (add_method): Correct handling of conversion operators. 2283 22842002-07-11 Mark Mitchell <mark@codesourcery.com> 2285 2286 PR c++/7224 2287 * class.c (add_method): Simplify. 2288 22892002-07-11 Jason Merrill <jason@redhat.com> 2290 2291 PR c++/7279 2292 * tree.c (cp_copy_res_decl_for_inlining): Also copy 2293 TREE_ADDRESSABLE. 2294 22952002-07-10 Graham Stott <graham.stott@btinternet.com> 2296 2297 * pt.c (template_parm_this_level_p, push_template_decl_real): 2298 Pass depth as int pointer. 2299 23002002-07-11 Tim Josling <tej@melbpc.org.au> 2301 2302 Remove front end hard coding from gengtype.c. 2303 2304 * config-lang.in (gtfiles): Add files needed for this front end. 2305 23062002-07-10 Mark Mitchell <mark@codesourcery.com> 2307 2308 * cp-tree.h (unqualified_name_lookup_error): Declare it. 2309 (begin_function_definition): Adjust prototype. 2310 * lex.c (unqualified_name_lookup_error): New function, split out 2311 from ... 2312 (do_identifier): ... here. 2313 * parse.y (parse_begin_function_definition): New function. 2314 (fn.def1): Use it. 2315 * semantics.c (begin_function_definition): Accept decl-specifiers 2316 and attributes as separate parameters. 2317 23182002-07-10 Jason Merrill <jason@redhat.com> 2319 2320 PR c++/6255 2321 * decl.c (lookup_name_real): Build a new TYPENAME_TYPE rather than 2322 modifying the old one. 2323 23242002-07-09 Mark Mitchell <mark@codesourcery.com> 2325 2326 * cp-tree.h (constructor_name_p): Declare it. 2327 (check_template_template_default_arg): Likewise. 2328 * class.c (handle_using_decl): Use constructor_name_p. 2329 * decl.c (grokdeclarator): Likewise. 2330 * decl2.c (constructor_name_p): Define it. 2331 * init.c (build_member_call): Use constructor_name_p. 2332 * parse.y (template_parm): Use check_template_template_default_arg. 2333 * pt.c (check_explicit_specialization): Use constructor_name_p. 2334 * semantics.c (check_template_template_default_arg): New function. 2335 23362002-07-08 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2337 2338 * pt.c (can_complete_type_without_circularity): Add static to 2339 function definition. 2340 23412002-07-08 Mark Mitchell <mark@codesourcery.com> 2342 2343 * cp-tree.h (have_extern_spec): Declare it 2344 * decl.c (have_extern_spec): Define it. 2345 (start_decl): Eliminate use of used_extern_spec. 2346 (start_function): Likewise. 2347 * parse.y (have_extern_spec): Remove declaration. 2348 (used_extern_spec): Likewise. 2349 (frob_specs): Eliminate use of used_extern_spec. 2350 (.hush_warning): Likewise. 2351 23522002-07-07 Mark Mitchell <mark@codesourcery.com> 2353 2354 * Make-lang.in (cp/parse.o): Depend on decl.h. 2355 * cp-tree.h (do_decl_instantiation): Change prototype. 2356 * parse.y: Include decl.h. 2357 (parse_decl_instantiation): New function. 2358 (explicit_instantiation): Use it. 2359 * pt.c (do_decl_instantiation): Accept a DECL, not a DECLARATOR 2360 and DECLSPECS. 2361 23622002-07-07 Roger Sayle <roger@eyesopen.com> 2363 2364 * error.c (dump_function_name): Use DECL_TEMPLATE_RESULT for 2365 constructor and destructor tests when passed a TEMPLATE_DECL. 2366 23672002-07-05 Jason Merrill <jason@redhat.com> 2368 2369 * cvt.c (cp_convert_to_pointer): Call force_fit_type for null 2370 pointers. 2371 2372 PR optimization/7145 2373 * tree.c (cp_copy_res_decl_for_inlining): Also copy DECL_INITIAL. 2374 23752002-07-05 Nathan Sidwell <nathan@codesourcery.com> 2376 2377 Repair damage on weak-impared targets caused by my previous patch. 2378 * cp-tree.h (import_export_tinfo): Add parameter. 2379 * decl2.c (import_export_tinfo): Add parameter, post adjust 2380 DECL_COMDAT. 2381 * rtti.c (emit_tinfo_decl): DECL_COMDAT is (nearly) always setup by 2382 import_export_tinfo. 2383 23842002-07-03 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2385 2386 PR c++/6944 2387 * init.c (build_aggr_init): Remove qualifiers of init before calling 2388 build_vec_init. 2389 (build_vec_init): Flatten multi-dimensional array during cleanup. 2390 (build_vec_delete_1): Abort if the type of each element is array. 2391 23922002-07-03 Graham Stott <graham.stott@btinternet.com> 2393 2394 * pt.c (instantiate_class_template): Fix typo. 2395 23962002-07-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2397 2398 * typeck2.c (cxx_incomplete_type_diagnostic): Fix typo caused 2399 by CVS conflict in my last patch. 2400 24012002-07-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2402 2403 PR c++/6716 2404 * pt.c (can_complete_type_without_circularity): New function. 2405 (instantiate_class_template): Use it. 2406 * typeck2.c (cxx_incomplete_type_diagnostic): Improve error 2407 message due to incomplete fields. 2408 24092002-07-01 Mark Mitchell <mark@codesourcery.com> 2410 2411 PR c++/7112 2412 * mangle.c (write_expression): Add mangling for sizeof when 2413 applied to a type. 2414 * operators.def: Remove stale comment. 2415 24162002-06-30 Nathan Sidwell <nathan@codesourcery.com> 2417 2418 * cp-tree.h (CPTI_TINFO_DECL_TYPE): Replace with ... 2419 (CPTI_TYPE_INFO_PTR_TYPE): ... this. 2420 (tinfo_decl_type): Replace with ... 2421 (type_info_ptr_type): ... this. 2422 (import_export_tinfo): Declare. 2423 (tinfo_decl_p): Rename to ... 2424 (unemitted_tinfo_decl_p): ... this. 2425 * decl2.c (import_export_decl): Break out tinfo handling into ... 2426 (import_export_tinfo): ... here. New function. 2427 (finish_file): Adjust. 2428 * rtti.c (TINFO_REAL_NAME): New macro. 2429 (init_rtti_processing): Create the tinfo types. 2430 (get_tinfo_decl_dynamic): Use type_info_ptr_type, get_tinfo_ptr. 2431 (get_tinfo_decl): Adjust. 2432 (get_tinfo_ptr): New function. 2433 (get_type_id): Use it. 2434 (tinfo_base_init): Create vtable decl here, if it doesn't exist. 2435 (ptr_initializer): Use get_tinfo_ptr. 2436 (ptm_initializer): Likewise. 2437 (synthesize_tinfo_var): Break into ... 2438 (get_pseudo_ti_init): ... this. Just create the initializer. 2439 (get_pseudo_ti_desc): .. and this. 2440 (create_real_tinfo_var): Remove. 2441 (create_pseudo_type_info): Don't create the vtable decl here. 2442 (get_vmi_pseudo_type_info): Remove. 2443 (create_tinfo_types): Adjust. 2444 (tinfo_decl_p): Rename to ... 2445 (unemitted_tinfo_decl_p): ... here. Adjust. 2446 (emit_tinfo_decl): Adjust. Create the initializer. 2447 24482002-06-27 Mark Mitchell <mark@codesourcery.com> 2449 2450 PR c++/6695 2451 * pt.c (tsubst_friend_class): Substitute into the context of the 2452 friend before using it. 2453 24542002-06-26 Mark Mitchell <mark@codesourcery.com> 2455 2456 * cp-tree.h (xref_tag): Change prototype. 2457 (handle_class_head): Likewise. 2458 (build_x_component_ref): Likewise. 2459 * decl.c (cxx_init_decl_processing): Adjust call to xref_tag. 2460 (xref_tag): Take attributes as a separate parameter. 2461 (xref_tag_from_type): Adjust call to xref_tag. 2462 * decl2.c (build_expr_from_tree): Adjust call to 2463 build_x_component_ref. 2464 (handle_class_head): Take attributes as a separate parameter. 2465 * parse.y (parse_xref_tag): New function. 2466 (parse_handle_class_head): Likewise. 2467 (primary): Use parse_xref_tag. 2468 (class_head_decl): Use parse_handle_class_head. 2469 (class_head_defn): Likewise. 2470 * rtti.c (init_rtti_processing): Adjust call to xref_tag. 2471 (build_dynamic_cast_1): Likewise. 2472 (create_pseudo_type_info): Likewise. 2473 (emit_support_tinfos): Likewise. 2474 * typeck.c (build_object_ref): Adjust call to 2475 build_x_component_ref. 2476 (build_x_component_ref): Remove protect parameter. 2477 24782002-06-25 Mark Mitchell <mark@codesourcery.com> 2479 2480 * call.c (build_op_delete_call): Use BASELINK_FUNCTIONS. 2481 * class.c (handle_using_decl): Likewise. 2482 (instantiate_type): Likewise. 2483 * cp-tree.h (BASELINK_FUNCTIONS): New macro. 2484 (xref_basetypes): Change prototype. 2485 (begin_mem_initializers): New function. 2486 (get_overloaded_fn): Likewise. 2487 * decl.c (xref_basetypes): Simplify. 2488 * error.c (dump_expr): Use BASELINK_FUNCTIONS. 2489 * init.c (build_offset_ref): Likewise. 2490 * parse.y (base_init): Use begin_mem_initializers(). 2491 (structsp): Adjust call to xref_basetypes. 2492 * pt.c (determine_specialization): Use BASELINK_FUNCTIONS. 2493 (instantiate_class_template): Adjust call to xref_basetypes. 2494 * semantics.c (begin_mem_initializers): New function. 2495 * tree.c (is_overloaded_fn): Use BASELINK_FUNCTIONS. 2496 (really_overloaded_fn): Likewise. 2497 (get_overloaded_fn): New function.' 2498 (get_first_fn): USe BASELINK_FUNCTIONS. 2499 25002002-06-24 Mark Mitchell <mark@codesourcery.com> 2501 2502 * cp-tree.h (SCALAR_TYPE_P): New macro. 2503 (check_for_out_of_scope_variable): New function. 2504 (at_class_scope_p): Likewise. 2505 (finish_fname): Likewise. 2506 * class.c (finish_struct): Use at_function_scope_p. 2507 * decl.c (check_for_out_of_scope_variable): New function, split 2508 out from do_identifier. 2509 (finish_enum): Use at_function_scope_p. 2510 * lex.c (do_identifier): Use check_for_out_of_scope_variable. 2511 * parse.y (VAR_FUNC_NAME): Give it <ttype>. Use finish_fname. 2512 (primary): Use at_function_scope_p. 2513 * search.c (at_class_scope_p): New function. 2514 * semantics.c (finish_fname): Likewise. 2515 (check_multiple_declarators): Use at_function_scope_p. 2516 25172002-06-23 Mark Mitchell <mark@codesourcery.com> 2518 2519 * parse.y (parse_scoped_id): New function. 2520 (primary): Use it. 2521 * cp-tree.h (do_scoped_id): Adjust declaration. 2522 * lex.c (do_scoped_id): Remove call to yylex. 2523 * decl2.c (build_expr_from_tree): Adjust use of do_scoped_id. 2524 * typeck2.c (add_exception_specifier): Use tree_cons, rather than 2525 expanding it inline. 2526 25272002-06-23 Matt Thomas <matt@3am-software.com> 2528 2529 * decl.c (finish_function): Change "#ifdef VMS_TARGET" to 2530 "#if VMS_TARGET". 2531 25322002-06-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2533 2534 * mangle.c (integer_type_codes): Const-ify. 2535 25362002-06-20 Richard Henderson <rth@redhat.com> 2537 2538 PR c++/6747 2539 * typeck.c (mark_addressable): Don't test TREE_ADDRESSABLE early. 2540 Call put_var_into_stack. 2541 25422002-06-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2543 2544 * spew.c (remove_last_token): Use ARRAY_SIZE in lieu of explicit 2545 array size calculation. 2546 25472002-06-20 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2548 2549 PR c++/6892 2550 * pt.c (tsubst_expr): Handle FILE_STMT. 2551 25522002-06-20 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2553 2554 PR c++/6723 2555 * pt.c (lookup_template_class): Don't build complete argument of 2556 BOUND_TEMPLATE_TEMPLATE_PARM if appeared as a default template 2557 argument. 2558 25592002-06-19 Akim Demaille <akim@epita.fr> 2560 2561 * parse.y (TYPENAME): Rename as tTYPENAME to avoid the clash with 2562 decl.h's TYPENAME. 2563 * spew.c, lex.c: Adjust. 2564 * parse.y (explicit_instantiation): Add empty action to override 2565 the default $$ = $1 where it introduces a type clash. 2566 25672002-06-14 Jason Merrill <jason@redhat.com> 2568 2569 * semantics.c (begin_for_stmt): Push the 'for' scope before 2570 adding the FOR_STMT. 2571 2572 C++ ABI changes. 2573 * class.c (build_base_field): Set DECL_PACKED. 2574 (layout_class_type): Don't use tail padding of PODs. 2575 * mangle.c (write_unqualified_name): Fix template conversion op 2576 mangling. 2577 25782002-06-16 Richard Henderson <rth@redhat.com> 2579 2580 PR opt/6793 2581 * tree.c (cp_cannot_inline_tree_fn): Don't short-circuit test 2582 after template instantiation. 2583 25842002-06-16 Richard Henderson <rth@redhat.com> 2585 2586 * cp-tree.h, decl2.c (flag_ms_extensions): Move to c-common. 2587 25882002-06-15 Gabriel Dos Reis <gdr@codesourcery.com> 2589 2590 * cp-tree.h (compiler_error): Remove declaration. 2591 * lex.c (compiler_error): Remove definition. 2592 25932002-06-14 Steve Ellcey <sje@cup.hp.com> 2594 2595 * g++spec.c (LIBUNWIND): New. 2596 (lang_specific_driver): Add it if USE_UNWIND_EXCEPTIONS is set. 2597 25982002-06-13 Jessica Han <jessica@cup.hp.com> 2599 2600 * class.c (build_vtable): Use TARGET_VTABLE_ENTRY_ALIGN. 2601 (build_vtbl_initializer): Honor TARGET_VTABLE_DATA_ENTRY_DISTANCE. 2602 (build_vbase_offset_vtbl_entries): Likewise. 2603 * rtti.c (build_headof): Likewise. 2604 (get_tinfo_decl_dynamic): Likewise. 2605 (create_pseudo_type_info): Likewise. 2606 26072002-06-12 Stan Shebs <shebs@apple.com> 2608 2609 * mpw-config.in: Remove file, no longer used. 2610 * mpw-make.sed: Ditto. 2611 26122002-06-07 Zack Weinberg <zack@codesourcery.com> 2613 2614 * decl2.c: Update call to cpp_handle_option. 2615 26162002-06-07 H.J. Lu (hjl@gnu.org) 2617 2618 * decl2.c (flag_use_cxa_atexit): Set to DEFAULT_USE_CXA_ATEXIT. 2619 26202002-06-06 Gabriel Dos Reis <gdr@codesourcery.com> 2621 2622 * error.c (cp_error_at): Fix typo. 2623 26242002-06-04 Gabriel Dos Reis <gdr@codesourcery.com> 2625 2626 * error.c (cp_diagnostic_starter): Adjust call. 2627 (maybe_print_instantiation_context): Change prototype to take a 2628 'diagnostic_info *'. 2629 (print_instantiation_full_context): Likewise. 2630 (print_instantiation_partial_context): Likewise. 2631 (cp_diagnostic_starter): Likewise. 2632 (cp_diagnostic_finalizer): Likewise. 2633 (cp_print_error_function): Likewise. 2634 (cp_printer): Take a secondary parameter as a 'text_info *'. 2635 Remove output_state savings. Adjust calls. 2636 26372002-06-03 Geoffrey Keating <geoffk@redhat.com> 2638 2639 * pt.c (inline_parm_levels): Mark for GC. 2640 2641 * mangle.c (start_mangling): Allocate G.substitutions here... 2642 (init_mangle): ... rather than here. 2643 (finish_mangling): Clear the varray pointer when done with it. 2644 * spew.c (yylexstring): Don't use VARRAY_FREE. 2645 * search.c (bfs_walk): Don't use VARRAY_FREE. 2646 * decl2.c (pending_statics): Use gengtype to mark. 2647 (deferred_fns): Likewise. 2648 (ssdf_decls): Likewise. 2649 (init_decl2): Delete. 2650 * decl.c (pop_from_top_level): Don't use VARRAY_FREE. 2651 (cxx_init_decl_processing): Don't call init_decl2. 2652 (cxx_pop_function_context): Don't use VARRAY_FREE. 2653 * cp-tree.h (struct saved_scope): No need for special marking 2654 of varrays. 2655 (struct language_function): Likewise. 2656 (local_classes): Use gengtype to mark. 2657 (init_decl2): Delete prototype. 2658 * class.c (init_class_processing): Don't use 2659 ggc_add_tree_varray_root. 2660 (build_vtbl_initializer): Don't use VARRAY_FREE. 2661 2662 * decl.c (typename_compare): Don't use same_type_p. 2663 2664 * decl.c: Include hashtab.h instead of hash.h. 2665 (typename_hash): Update to use htab_h. 2666 (typename_compare): Likewise. 2667 (typename_htab): Use gengtype to mark. 2668 (build_typename_type): Update to use htab_h. 2669 * Make-lang.in (cp/decl.o): Use HASHTAB_H instead of hash.h. 2670 2671 * Make-lang.in (gt-cp-tree.h): New rule. 2672 (cp/tree.o): Depend on gt-cp-tree.h. 2673 * config-lang.in (gtfiles): Add cp/tree.c. 2674 * tree.c: Include gt-cp-tree.h. 2675 (list_hash_table): Use gengtype to mark. 2676 (init_tree): Use gengtype to mark trees. 2677 2678 * Make-lang.in (cp/decl.o): Add debug.h dependency. 2679 * call.c (struct z_candidate): Use gengtype. 2680 (USER_CONV_CAND): Use WRAPPER_ZC. 2681 (convert_class_to_reference): Use build_zc_wrapper. 2682 (build_type_conversion_1): Likewise. 2683 (build_over_call): Use WRAPPER_ZC. 2684 (add_warning): Use build_zc_wrapper. 2685 * cp-lang.c (LANG_HOOKS_MARK_TREE): Delete. 2686 * cp-tree.h (struct lang_identifier): Use gengtype. 2687 (struct template_parm_index_s): Likewise. 2688 (struct ptrmem_cst): Likewise. 2689 (struct tree_binding): Likewise. 2690 (struct tree_overload): Likewise. 2691 (struct tree_srcloc): Likewise. 2692 (struct tree_wrapper): Likewise. Also modify to have a pointer 2693 to struct z_candidate rather than void. 2694 (enum cp_tree_node_structure_enum): New. 2695 (union lang_tree_node): New. 2696 (cxx_mark_tree): Delete prototype. 2697 (cp_tree_node_structure): New prototype. 2698 (build_ptr_wrapper): Delete prototype. 2699 (build_int_wrapper): Delete prototype. 2700 (build_zc_wrapper): New prototype. 2701 * decl.c: Include debug.h 2702 (cxx_mark_tree): Delete. 2703 (cp_tree_node_structure): New. 2704 * tree.c (build_ptr_wrapper): Delete. 2705 (build_int_wrapper): Delete. 2706 (build_zc_wrapper): New. 2707 2708 * cp-tree.h [! ENABLE_TREE_CHECKING] (LANG_TYPE_PTRMEM_CHECK): 2709 Correct typo. Patch from k_fukui@highway.ne.jp. 2710 2711 * semantics.c (current_stmt_tree): Update for change to 2712 struct language_function. 2713 (finish_mem_initializers): Likewise. 2714 * decl.c (cxx_init_decl_processing): Don't set mark_lang_status. 2715 * cp-tree.h (struct language_function): Rename from 2716 cp_language_function. Change all uses. 2717 (cp_function_chain): Don't need to cast. 2718 2719 * class.c (duplicate_tag_error): Reset discriminator. 2720 (check_bases_and_members): Update for data structure changes. 2721 * cp-tree.h (struct lang_id2): Use gengtype. 2722 (flagged_type_tree): Likewise. 2723 (SET_LANG_ID): Use GGC on struct lang_id2. 2724 (struct cp_language_function): Use gengtype. Remove field 2725 'x_vcalls_possible_p'. 2726 (current_vcalls_possible_p): Delete. 2727 (struct lang_type_header): New. 2728 (struct lang_type_class): Rename from struct lang_type. Include 2729 struct lang_type_header. 2730 (struct lang_type_ptrmem): New. 2731 (struct lang_type): New. 2732 (LANG_TYPE_CLASS_CHECK): New. Use it in all the appropriate macros. 2733 (LANG_TYPE_PTRMEM_CHECK): New. Use it in all the appropriate macros. 2734 (TYPE_SET_PTRMEMFUNC_TYPE): Set discriminator, update for changes. 2735 (struct lang_decl_flags): Use gengtype. Add discriminators. 2736 (struct lang_decl): Use gengtype. Add and use discriminators. 2737 Update the macros that reference moved fields. 2738 (LANG_DECL_U2_CHECK): New function. Use it when appropriate. 2739 (SET_DECL_THUNK_P): Set discriminator too. 2740 (clear_inline_text_obstack): Delete prototype. 2741 (finish_inline_definitions): Delete prototype. 2742 (mark_pending_inlines): Delete prototype. 2743 (lang_check_failed): New prototype. 2744 * decl.c (struct named_label_use_list): Use gengtype. 2745 (struct named_label_list): Likewise. 2746 (mark_binding_level): Delete. 2747 (mark_named_label_lists): Delete. 2748 (push_local_name): Set discriminator on DECL_LANG_SPECIFIC. 2749 (cxx_init_decl_processing): Use generated marker routine. 2750 (begin_destructor_body): Delete dead set to 2751 current_vcalls_possible_p. 2752 (mark_lang_function): Delete. 2753 (mark_cp_function_context): Delete. 2754 (lang_mark_tree): Use generated marker routines. 2755 * decl2.c (start_objects): Set discriminator when setting 2756 GLOBAL_INIT_PRIORITY. 2757 * lex.c (retrofit_lang_decl): Set discriminators. 2758 (copy_lang_type): Update for changes to lang_type structure. 2759 (cp_make_lang_type): Set discriminator. 2760 * parse.y: Use gengtype on YYLVAL. Don't use dots in identifiers. 2761 * search.c: Include ggc.h. 2762 * semantics.c (anon_aggr_type_p): Use the macro, don't hand-code it. 2763 (finish_inline_definitions): Delete. 2764 * spew.c (struct token): Use gengtype. 2765 (struct token_chunk): New. 2766 (struct unparsed_text): Use gengtype. Store tokens in chunks. 2767 (struct feed): Use gengtype. 2768 (feed_obstack): Delete. 2769 (feed): Mark as GC root. 2770 (pending_inlines): Mark as GC root. 2771 (pending_inlines_tail): Likewise. 2772 (processing_these_inlines): Likewise. 2773 (token_obstack): Make static. 2774 (first_token): Likewise. 2775 (init_spew): Don't initialize deleted things; use gengtype for roots. 2776 (clear_inline_text_obstack): Delete. 2777 (feed_input): Use GC for struct feed. Update for changes to 2778 struct unparsed_text. 2779 (mark_pending_inlines): Delete. 2780 (next_token): Rename from add_token. Change all callers. Update 2781 for changes to struct unparsed_text. 2782 (space_for_token): New. 2783 (remove_last_token): New. 2784 (alloc_unparsed_text): New. 2785 (snarf_block): Take an unparsed_text. Update for changes to struct 2786 unparsed_text. 2787 (snarf_method): Update for changes to struct unparsed_text. 2788 (snarf_defarg): Update for changes to struct unparsed_text. 2789 * tree.c (lang_check_failed): New. 2790 2791 * Make-lang.in (gt-cp-call.h gt-cp-decl2.h gt-cp-parse.h 2792 gt-cp-pt.h gt-cp-repo.h gt-cp-spew.h): New rules. 2793 (cp/spew.o): Add dependency on gt-<filename>.h. 2794 (cp/decl2.o): Add dependency on gt-<filename>.h. 2795 (cp/call.o): Add dependency on gt-<filename>.h. 2796 (cp/pt.o): Add dependency on gt-<filename>.h. 2797 (cp/repo.o): Add dependency on gt-<filename>.h. 2798 (cp/parse.o): Add dependency on gt-<filename>.h. 2799 * call.c: Use gengtype for roots. 2800 * config-lang.in (gtfiles): Add cp-tree.h decl.h lex.h call.c 2801 decl2.c parse.y pt.c repo.c spew.c. 2802 * cp-tree.h: Use gengtype for roots. 2803 (struct saved_scope): Use GGC, gengtype. 2804 (cp_parse_init): Delete prototype. 2805 (init_pt): Delete prototype. 2806 * decl.c: Use gengtype for roots. 2807 (mark_saved_scope): Delete. 2808 (cxx_init_decl_processing): Don't call deleted initilisation 2809 routines. 2810 (signed_size_zero_node): Delete, unused. 2811 * decl.h: Use gengtype for roots. 2812 * decl2.c: Use gengtype for roots. 2813 * lex.h: Use gengtype for roots. 2814 * parse.y: Use gengtype for roots. 2815 (cp_parse_init): Delete. 2816 * pt.c: Use gengtype for roots. 2817 (init_pt): Delete. 2818 * repo.c: Use gengtype for roots. 2819 * spew.c: Use gengtype for roots. 2820 2821 * Make-lang.in: Allow for filename changes. Add gtype-cp.h. 2822 (cp/decl.o): Add dependency on gtype-cp.h. 2823 * decl.c: Remove use of add_deletable_root, use GTY marker instead. 2824 Include gtype-cp.h. Allow for filename changes. 2825 2826 * Make-lang.in (cp/gt-decl.h): Generate using gengtype. 2827 (cp/decl.o): Add cp/gt-decl.h dependency. 2828 * config-lang.in (gtfiles): New. 2829 * tree.h: Rename struct binding_level to struct cp_binding_level. 2830 * decl.c: Rename struct binding_level to struct cp_binding_level. 2831 Include cp/gt-decl.h. 2832 (struct cp_binding_level): Use gengtype. 2833 (make_binding_level): Use GGC on struct cp_binding_level. 2834 (mark_binding_level): Use gt_ggc_m_cp_binding_level. 2835 (cxx_init_decl_processing): Mark free_binding_level as 2836 deletable. 2837 2838 * decl.c (mark_cp_function_context): Update calling sequence. 2839 2840 * decl.c (start_function): Don't free 'struct 2841 cp_language_function'. 2842 (pop_cp_function_context): Likewise. 2843 (save_function_data): Allocate it using GC. 2844 * semantics.c (genrtl_start_function): Don't free 'struct 2845 cp_language_function'. 2846 28472002-05-31 Matthew Woodcraft <mattheww@chiark.greenend.org.uk> 2848 2849 * lang-specs.h: Use cpp_debug_options. 2850 28512002-05-28 Zack Weinberg <zack@codesourcery.com> 2852 2853 * mangle.c, tree.c: Include real.h. 2854 * Make-lang.in: Update dependency lists. 2855 28562002-05-25 Neil Booth <neil@daikokuya.demon.co.uk> 2857 2858 * lex.c: Don't include c-lex.h. 2859 * parse.y, spew.c: Don't include c-lex.h; include c-pragma.h. 2860 28612002-05-23 Neil Booth <neil@daikokuya.demon.co.uk> 2862 2863 * spew.c (yyungetc, snarf_block): Remove indent_level handling. 2864 28652002-05-22 Richard Henderson <rth@redhat.com> 2866 2867 * decl.c (obscure_complex_init): Check for VAR_DECL 2868 before using DECL_THREAD_LOCAL. 2869 28702002-05-22 Richard Henderson <rth@redhat.com> 2871 2872 * decl.c (check_tag_decl): Handle RID_THREAD. 2873 (obscure_complex_init): Reject run-time init of tls. 2874 (grokvardecl, grokdeclarator): Handle RID_THREAD. 2875 * lex.c (reswords): Add __thread. 2876 (rid_to_yy): Map RID_THREAD to SCSPEC. 2877 28782002-05-22 Neil Booth <neil@daikokuya.demon.co.uk> 2879 2880 * cp-lang.c (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options. 2881 * cp-tree.h (cxx_post_options): Kill. 2882 * cp-lex.c (cxx_post_options): Kill. 2883 28842002-05-21 Richard Henderson <rth@redhat.com> 2885 2886 * lex.c (rid_to_yy): Add RID_THREAD. 2887 28882002-05-21 Alexandre Oliva <aoliva@redhat.com> 2889 2890 * init.c (build_vec_init): Test for trivial copy-assignment when 2891 copy-assigning arrays. 2892 28932002-05-20 Andreas Jaeger <aj@suse.de> 2894 2895 * init.c (build_default_init): Remove unused variable. 2896 28972002-05-20 Alexandre Oliva <aoliva@redhat.com> 2898 2899 * call.c (any_strictly_viable): New. 2900 (build_new_op): Use it for COMPOUND_EXPR and ADDR_EXPRs. 2901 29022002-05-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2903 2904 * error.c (dump_type) [TYPEOF_TYPE]: Fix parenthesis printing. 2905 29062002-05-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2907 2908 PR c++/186, DR 259 2909 * pt.c (do_decl_instantiation): Don't complain explicit 2910 instantiation after explicit specialization. 2911 (do_type_instantiation): Likewise. 2912 29132002-05-19 Alexandre Oliva <aoliva@redhat.com> 2914 2915 * cp-tree.h (complete_type_or_diagnostic): Changed prototype, 2916 renamed from... 2917 (complete_type_or_else): ... this. Redefined as macro. 2918 (cxx_incomplete_type_diagnostic): Declare. 2919 (cxx_incomplete_type_error): Define as macro. 2920 * init.c (build_delete): Warn about incomplete types other than 2921 void, and use the built-in operator delete for them. 2922 * typeck.c (complete_type_or_diagnostic): Renamed from 2923 complete_type_or_else. Added warn_only argument, passed to... 2924 * typeck2.c (cxx_incomplete_type_diagnostic): ... this. Print 2925 warnings or errors depending on new warn_only argument. Renamed 2926 from... 2927 (cxx_incomplete_type_error): ... this. New implementation in 2928 terms of cxx_incomplete_type_diagnostic. 2929 29302002-05-18 Jason Merrill <jason@redhat.com> 2931 2932 PR c++/6611 2933 * decl2.c (import_export_decl): If we clear 2934 DECL_NOT_REALLY_EXTERN, make sure DECL_EXTERNAL is set. 2935 29362002-05-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2937 2938 PR c++/6620 2939 * pt.c (verify_class_unification): Don't check if PARM is template 2940 parameter dependent. Simplify. 2941 (unify) [TEMPLATE_PARM_INDEX]: Handle when ARG is a template 2942 parameter dependent expression. 2943 29442002-05-14 Jason Merrill <jason@redhat.com> 2945 2946 * rtti.c (get_tinfo_decl): Don't call comdat_linkage. 2947 Do set DECL_COMDAT. 2948 (synthesize_tinfo_var): Take the public decl. 2949 (create_real_tinfo_var): Likewise. Check DECL_COMDAT. 2950 (emit_tinfo_decl): Adjust. Call import_export_decl. 2951 * decl2.c (import_export_decl): Simplify tinfo decl handling. 2952 29532002-05-14 Alexandre Oliva <aoliva@redhat.com> 2954 2955 * cp-tree.h (struct lang_type): Added non_zero_init. 2956 (CLASSTYPE_NON_ZERO_INIT_P): New macro. 2957 (zero_init_p, force_store_init_value, build_forced_zero_init): Declare. 2958 * class.c (check_field_decls): Test non_zero_init. 2959 * cvt.c (convert_to_pointer_force): Use cp_convert_to_pointer for 2960 zero-to-NULL conversions. 2961 * decl.c (obscure_complex_init): Don't reset DECL_INITIAL of a 2962 type that needs zero-initialization without zeros. 2963 (check_initializer_decl): Compute zero-initializer for types 2964 that require a non-trivial one. 2965 * init.c (build_forced_zero_init): New function. 2966 (build_default_init): Use it. 2967 * tree.c (zero_init_p): New function. 2968 * typeck2.c (force_store_init_value): New function. 2969 (process_init_constructor): Create non-trivial zero-initializers 2970 for array members and class fields. 2971 29722002-05-14 Neil Booth <neil@daikokuya.demon.co.uk> 2973 2974 * lang-specs.h: Remove redundant -lang-c++. 2975 29762002-05-13 Jason Merrill <jason@redhat.com> 2977 2978 * class.c (build_vtbl_ref_1): Use fixed_type_or_null. 2979 (fixed_type_or_null): See through reference vars. 2980 (build_base_path): Vtable contents are constant. 2981 * typeck.c (get_member_function_from_ptrfunc): Likewise. 2982 29832002-05-12 Jason Merrill <jason@redhat.com> 2984 2985 * cp-lang.c (ok_to_generate_alias_set_for_type): Backend-created 2986 structs are safe. 2987 29882002-05-09 Neil Booth <neil@daikokuya.demon.co.uk> 2989 2990 * cp-tree.h (flag_ansi): Remove. 2991 * decl2.c (flag_ansi): Remove. 2992 (cxx_decode_option): Set flag_iso and flag_undef. 2993 29942002-05-09 Jason Merrill <jason@redhat.com> 2995 2996 * typeck.c (get_member_function_from_ptrfunc): Reorganize. 2997 Use subtraction rather than a bitmask to get the index. 2998 * cvt.c (cp_convert_to_pointer): Bail on an error_mark_node. 2999 3000 * pt.c (tsubst_expr) [ASM_STMT]: Copy ASM_INPUT_P. 3001 30022002-05-07 Neil Booth <neil@daikokuya.demon.co.uk> 3003 3004 * Make-lang.in (decl2.o): Update. 3005 * cp-tree.h (warn_multichar): Remove. 3006 * decl2.c: Include c-common.h. 3007 (warn_multichar): Remove. 3008 30092002-05-03 Jason Merrill <jason@redhat.com> 3010 3011 * tree.c (build_cplus_array_type): Only const and volatile get 3012 special handling. 3013 3014 * decl.c (BOOL_TYPE_SIZE): Move default to defaults.h. 3015 30162002-04-30 Mark Mitchell <mark@codesourcery.com> 3017 3018 ABI change, returning simple classes from functions. 3019 * class.c (finish_struct_bits): Only mark TREE_ADDRESSABLE if 3020 TYPE_HAS_TRIVIAL_INIT_REF is false or 3021 TYPE_HAS_NONTRIVIAL_DESTRUCTOR is true. 3022 30232002-04-30 Jason Merrill <jason@redhat.com> 3024 3025 PR debug/6436 3026 * decl.c (grokdeclarator): Don't override TYPE_NAME of an 3027 anonymous class with a typedef if there are attributes. 3028 30292002-04-29 Paul Eggert <eggert@twinsun.com> 3030 3031 * parse.y (nomods_initdcl0): Replace $<ttype>3 with $<ttype>$. 3032 30332002-04-29 Jakub Jelinek <jakub@redhat.com> 3034 3035 PR c++/6477 3036 * decl.c (follow_tag_typedef): Check if TYPE_NAME (original) is 3037 non-NULL first. 3038 30392002-04-29 Mark Mitchell <mark@codesourcery.com> 3040 3041 PR c++/6492 3042 * pt.c (tsubst_friend_class): If the friend has an explicit scope, 3043 enter that scope before name lookup. 3044 3045 PR c++/6486 3046 * method.c (do_build_copy_constructor): Avoid building 3047 cv-qualified reference types. 3048 30492002-04-29 Nathan Sidwell <nathan@codesourcery.com> 3050 3051 PR c++/5719 3052 * decl.c (grok_op_properties): Assignment ops don't have to return 3053 by value. operator% should. 3054 30552002-04-28 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> 3056 3057 PR c/6343 3058 * decl.c (duplicate_decls): Call merge_weak. 3059 30602002-04-26 Richard Henderson <rth@redhat.com> 3061 3062 * parse.y (malloced_yyss, malloced_yyvs): New. 3063 (yyoverflow): Re-add. Set them. 3064 (free_parser_stacks): New. 3065 30662002-04-26 Mark Mitchell <mark@codesourcery.com> 3067 3068 PR c++/6497 3069 * method.c (do_build_assign_ref): Pass a derivation to 3070 build_method_call when calling base class assignment operators. 3071 30722002-04-26 Richard Henderson <rth@redhat.com> 3073 3074 * parse.y (yyoverflow): Revert. 3075 30762002-04-26 Richard Henderson <rth@redhat.com> 3077 3078 PR c/3581 3079 * parse.y (string): Remove. Update all uses to use STRING 3080 instead, and not call combine_strings. 3081 * rtti.c (tinfo_name): Use fix_string_type. 3082 * semantics.c (finish_asm_stmt): Don't call combine_strings. 3083 * spew.c (yylexstring): New. 3084 (read_token): Use it. 3085 30862002-04-25 Richard Henderson <rth@redhat.com> 3087 3088 PR c/2161 3089 * parse.y (yyoverflow): New. 3090 30912002-04-25 Jason Merrill <jason@redhat.com> 3092 3093 PR c++/5607 3094 * search.c (check_final_overrider): No longer static. 3095 * class.c (update_vtable_entry_for_fn): Call it. 3096 * cp-tree.h: Adjust. 3097 30982002-04-25 Neil Booth <neil@daikokuya.demon.co.uk> 3099 3100 * cp-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove. 3101 * cp-tree.h (cxx_set_yydebug): Die. 3102 * lex.c (YYDEBUG): Get from c-lex.h. 3103 (cxx_set_yydebug): Remove. 3104 * parse.y: Include c-lex.h. 3105 (YYDEBUG): Get from c-lex.h. 3106 31072002-04-24 Mark Mitchell <mark@codesourcery.com> 3108 3109 PR c++/6438. 3110 * cvt.c (convert_to_void): Don't unconditionally make COND_EXPRs 3111 void. 3112 31132002-04-24 Neil Booth <neil@daikokuya.demon.co.uk> 3114 3115 * cp-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, 3116 LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE, LANG_HOOKS_ATTRIBUTE_TABLE): 3117 Redefine. 3118 * cp-tree.h (cp_attribute_table): Rename. 3119 * decl.c (lang_attribute_table): Remove declaration. 3120 (cxx_init_decl_processing): Don't set it. 3121 * tree.c (cp_attribute_table): Rename. 3122 31232002-04-24 Jason Merrill <jason@redhat.com> 3124 3125 PR c++/6331 3126 * method.c (do_build_copy_constructor): Use cp_build_qualified_type. 3127 * typeck.c (build_modify_expr): Allow arrays to differ in cv-quals. 3128 The pedwarn for array assignment is now unconditional. 3129 * tree.c (build_cplus_array_type_1): Still process simple array types 3130 normally in templates. 3131 3132 PR c++/6395 3133 * decl.c (make_rtl_for_nonlocal_decl): Don't mess with #pragma i/i 3134 stuff for comdats. 3135 31362002-04-23 Jakub Jelinek <jakub@redhat.com> 3137 3138 * parse.y (check_class_key): Allow KEY to be union/enum/struct/class 3139 node with attributes. 3140 31412002-2-23 David O'Brien <obrien@FreeBSD.org> 3142 3143 * g++spec.c (MATH_LIBRARY_PROFILE, LIBSTDCXX_PROFILE): Add. 3144 Use MATH_LIBRARY_PROFILE and LIBSTDCXX_PROFILE if profile flag given. 3145 31462002-04-23 Mark Mitchell <mark@codesourcery.com> 3147 3148 PR c++/6256: 3149 * pt.c (tsubst_friend_class): Handle templates with explicit 3150 nested names. 3151 3152 PR c++/6331: 3153 * typeck.c (merge_types): Remember the cv-qualification of pointer 3154 types when merging them. 3155 31562002-04-20 Neil Booth <neil@daikokuya.demon.co.uk> 3157 3158 * cp-lang.c (LANG_HOOKS_FUNCTION_INIT, 3159 LANG_HOOKS_FUNCTION_FREE, LANG_HOOKS_FUNCTION_MARK): Redefine. 3160 * cp-tree.h (cxx_push_function_context, cxx_pop_function_context, 3161 cxx_mark_function_context): New. 3162 * decl.c (push_cp_function_context, pop_cp_function_context, 3163 mark_cp_function_context): Rename for consistency. 3164 (cxx_init_decl_processing): Don't set old hooks. 3165 31662002-04-19 Neil Booth <neil@daikokuya.demon.co.uk> 3167 3168 * call.c (convert_type_from_ellipsis): Rename, update. 3169 * cp-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine. 3170 * cp-tree.h (convert_type_from_ellipsis): Rename. 3171 * decl.c (cxx_init_decl_processing): Don't set hook. 3172 31732002-04-18 Neil Booth <neil@daikokuya.demon.co.uk> 3174 3175 * call.c (build_new_method_call): Update. 3176 * cp-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine. 3177 * cp-tree.h (cxx_incomplete_type_error): New. 3178 * decl.c (grokdeclarator, grokparms): Update. 3179 * decl2.c (check_classfn): Update. 3180 * pt.c (tsubst): Update. 3181 * typeck.c (complete_type_or_else, expr_sizeof, 3182 decay_conversion): Update. 3183 * typeck2.c (incomplete_type_error): Rename. 3184 (add_exception_specifier): Update. 3185 31862002-04-18 Jason Merrill <jason@redhat.com> 3187 3188 PR c++/5658 3189 * search.c (setup_class_bindings): A class template qualifies as a 3190 type binding. 3191 31922002-04-17 Jakub Jelinek <jakub@redhat.com> 3193 3194 PR c++/6316 3195 * decl2.c (finish_file): Clear DECL_EXTERNAL in a separate loop 3196 before expanding. 3197 31982002-04-16 Mark Mitchell <mark@codesourcery.com> 3199 3200 * init.c (begin_init_stmts): Remove commented out code. 3201 (finish_init_stmts): Set STMT_EXPR_NO_SCOPE. 3202 * semantics.c (begin_gobal_stmt_expr): Adjust call to 3203 expand_start_stmt_expr. 3204 32052002-04-15 Mark Mitchell <mark@codesourcery.com> 3206 3207 * decl.c (register_dtor_fn): Pass the address of dso_handle, not 3208 dso_handle itself, to __cxa_atexit. 3209 32102002-04-15 Gabriel Dos Reis <gdr@merlin.codesourcery.com> 3211 3212 * error.c (cxx_print_error_function): Adjust call to macros. 3213 32142002-04-14 Jakub Jelinek <jakub@redhat.com> 3215 3216 * class.c (layout_virtual_bases): Do all dsize computation on trees. 3217 32182002-04-14 Jason Merrill <jason@redhat.com> 3219 3220 * typeck.c (get_member_function_from_ptrfunc): Don't do 3221 gratuitious division and multiplication on 3222 ptrmemfunc_vbit_in_delta targets. 3223 32242002-04-12 Mark Mitchell <mark@codesourcery.com> 3225 3226 PR c++/5373. 3227 * semantics.c (finish_expr_stmt): Remember the type of the 3228 expression before any conversions are performed. 3229 32302002-04-12 Mark Mitchell <mark@codesourcery.com> 3231 3232 PR c++/5189. 3233 * call.c (add_template_candidate_real): Do not treat member 3234 templates as copy constructors. 3235 32362002-04-12 Mark Mitchell <mark@codesourcery.com> 3237 3238 * decl.c (duplicate_decls): Do not copy the RTL for a variable 3239 declaration if the old variable had an incomplete type and the new 3240 variable does not. 3241 (complete_vars): Do not call layout_decl for completed variables. 3242 32432002-04-12 Richard Sandiford <rsandifo@redhat.com> 3244 3245 * decl.c (duplicate_decls): Don't try to unify an implicit typedef 3246 with an explicit one. 3247 (follow_tag_typedef): New. 3248 (lookup_tag): Use it to extract the tag of an explicit typedef. 3249 (xref_tag): Likewise. 3250 32512002-04-11 Andrew Haley <aph@redhat.com> 3252 3253 * typeck.c (type_after_usual_arithmetic_conversions): 3254 If two types have the same variant, return immediately. 3255 When two floating-point operands are the same precision: 3256 convert to float if one of the operands is float; 3257 if neither operand is one of the standard types, return the type 3258 of the first operand. 3259 32602002-04-10 Nathan Sidwell <nathan@codesourcery.com> 3261 3262 PR c++/5507 3263 * decl.c (make_typename_type): Remove implicit typenameness. 3264 32652002-04-09 Jason Merrill <jason@redhat.com> 3266 3267 PR optimization/6189 3268 * semantics.c (genrtl_start_function): Don't free 3269 DECL_SAVED_FUNCTION_DATA for inline functions. 3270 3271 * init.c (build_member_call): For now, don't convert to 3272 intermediate base if it would cause an error. 3273 32742002-04-08 Paolo Carlini <pcarlini@unitus.it> 3275 3276 * parse.y (namespace_qualifier, maybe_identifier, 3277 begin_explicit_instantiation, end_explicit_instantiation, 3278 apparent_template_type, .finish_template_type, 3279 do_id, maybe_init, defarg_again, component_decl_1): 3280 Add ending ';', in accordance with POSIX. 3281 32822002-04-06 Mark Mitchell <mark@codesourcery.com> 3283 3284 PR c++/5571 3285 * class.c (layout_class_type): Remember incomplete static 3286 variables. 3287 (finish_struct_1): Call complete_vars, not 3288 hack_incomplete_structures. 3289 * cp-tree.h (hack_incomplete_structures): Rename to ... 3290 (complete_vars): ... this. 3291 (struct saved_scope): Remove incomplete. 3292 (namespace_scope_incomplete): Remove. 3293 * decl.c (struct binding_level): Remove incomplete. 3294 (incomplete_vars): New variable. 3295 (mark_binding_level): Don't mark incomplete. 3296 (print_binding_level): Don't print it. 3297 (mark_saved_scope): Don't mark incomplete. 3298 (pushdecl): Use maybe_register_incopmlete_var. 3299 (cxx_init_decl_processing): Register incomplete_vars for GC. 3300 (start_decl_1): Clarify error message. 3301 (hack_incomplete_vars): Remove. 3302 (maybe_register_incomplete_var): New function. 3303 (complete_vars): Likewise. 3304 33052002-04-06 Jason Merrill <jason@redhat.com> 3306 3307 PR c++/4934 3308 * error.c (dump_expr) [CONVERT_EXPR]: Make sure TREE_TYPE (t) is 3309 set before checking it. 3310 3311 PR c++/525 3312 * init.c (build_member_call): Use build_scoped_ref. 3313 (resolve_offset_ref): Likewise. 3314 * call.c (build_scoped_method_call): Likewise. 3315 * tree.c (maybe_dummy_object): Kludge around current_class_type being 3316 wrong. 3317 * typeck2.c (build_scoped_ref): Return the binfo via binfo_p parm. 3318 * cp-tree.h: Adjust. 3319 3320 * init.c (push_base_cleanups): Just use build_scoped_method_call. 3321 3322 PR c++/6179 3323 * method.c (implicitly_declare_fn): Pass unqualified type to 3324 synthesize_exception_spec. 3325 33262002-04-04 Neil Booth <neil@daikokuya.demon.co.uk> 3327 3328 * cp-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine. 3329 * cvt.c: Update comment. 3330 * init.c (expand_cleanup_for_base): Update. 3331 * semantics.c (finish_parenthesized_expr): Update. 3332 * typeck.c (cp_truthvalue_conversion): Update. 3333 33342002-04-04 Jason Merrill <jason@redhat.com> 3335 3336 * semantics.c (finish_eh_cleanup): New fn. 3337 * cp-tree.h: Add prototype. 3338 * init.c (perform_member_init, expand_cleanup_for_base): Use 3339 finish_eh_cleanup. 3340 * cp-tree.def (SUBOBJECT, CTOR_STMT): Remove. 3341 * cp-tree.h: Remove references. 3342 * decl.c (begin_constructor_body, end_constructor_body): Likewise. 3343 * dump.c (cp_dump_tree): Likewise. 3344 * pt.c (tsubst_expr): Likewise. 3345 * semantics.c (genrtl_ctor_stmt, genrtl_subobject): Remove. 3346 (cp_expand_stmt): Remove handling of CTOR_STMT and SUBOBJECT. 3347 * tree.c (cp_statement_code_p): Likewise. 3348 3349 * init.c (build_new_1): Set CLEANUP_EH_ONLY on deleting cleanup. 3350 3351 PR c++/5636 3352 * semantics.c (nullify_returns_r): Just set CLEANUP_EH_ONLY on 3353 cleanup for nrv. 3354 3355 PR c++/5104 3356 * typeck.c (comptypes) [FUNCTION_TYPE]: Don't compare exception 3357 specifiers. 3358 [METHOD_TYPE]: Use same code as FUNCTION_TYPE. 3359 33602002-04-03 Richard Henderson <rth@redhat.com> 3361 3362 * cp-lang.c (cxx_warn_unused_global_decl): New. 3363 (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New. 3364 33652002-04-03 Neil Booth <neil@daikokuya.demon.co.uk> 3366 3367 * cp-lang.c (LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): Redefine. 3368 * tree.c (init_tree): Don't set hook. 3369 33702002-04-03 Roger Sayle <roger@eyesopen.com> 3371 3372 PR c++/5998: 3373 * decl.c (duplicate_decls): Don't mess with assembler names when 3374 redeclaring builtin functions as static. 3375 33762002-04-01 Neil Booth <neil@daikokuya.demon.co.uk> 3377 3378 * call.c (build_addr_func): Update. 3379 * class.c (resolve_address_of_overloaded_function): Update. 3380 * cp-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine. 3381 * cp-tree.h (cxx_mark_addressable): New. 3382 * decl.c (register_dtor_fn, cxx_maybe_build_cleanup): Update. 3383 * decl2.c (build_cleanup): Update. 3384 * except.c (build_throw): Update. 3385 * init.c (resolve_offset_ref): Update. 3386 * pt.c (convert_nontype_argument): Update. 3387 * semantics.c (finish_asm_stmt, simplify_affr_init_exprs_r): Update. 3388 * typeck.c (decay_conversion, build_array_ref, build_unary_op, 3389 unary_complex_lvalue): Update. 3390 (mark_addressable): Rename. 3391 33922002-04-01 Roger Sayle <roger@eyesopen.com> 3393 3394 PR c++/5998: 3395 * decl.c (duplicate_decls): Overwrite the RTL when (and only 3396 when) overwriting a built-in function. Don't use COPY_DECL_RTL, 3397 but follow the SET_DECL_RTL idiom used elsewhere in the function. 3398 33992002-04-01 Neil Booth <neil@daikokuya.demon.co.uk> 3400 3401 * cp-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE, 3402 LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New. 3403 * decl.c (grokdeclarator): Update. 3404 * mangle.c (write_integer_cst): Update. 3405 * typeck.c (build_binary_op): Update. 3406 34072002-03-31 Neil Booth <neil@daikokuya.demon.co.uk> 3408 3409 * cp-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine. 3410 * lex.c (cxx_init): Don't set hook. 3411 34122002-03-31 Neil Booth <neil@daikokuya.demon.co.uk> 3413 3414 * Make-lang.in (error.o): Update. 3415 * cp-lang.c (LANG_HOOKS_PRINT_ERROR_FUNCTION): Redefine. 3416 * cp-tree.h (struct diagnostic_context): Predeclare. 3417 (cxx_print_error_function): New. 3418 * error.c: Include langhooks-def.h. 3419 (lang_print_error_function): Rename. Update. 3420 (init_error): Don't set hook. 3421 34222002-03-29 Neil Booth <neil@daikokuya.demon.co.uk> 3423 3424 * cp-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE): 3425 Redefine. 3426 * cvt.c (cp_convert_to_pointer, type_promotes_to): Use new hooks. 3427 * decl.c (finish_enum): Similarly. 3428 * error.c (dump_type): Similarly. 3429 * lex.c (cxx_init): Similarly. 3430 * mangle.c (write_builtin_type): Similarly. 3431 * typeck.c (comptypes): Similarly. 3432 34332002-03-28 Roger Sayle <roger@eyesopen.com> 3434 3435 PR c++/5998: 3436 * decl.c (cxx_init_decl_processing): Re-enable built-in functions 3437 in the g++ front-end. 3438 (duplicate_decl): Allow redefinition of anticipated built-ins. 3439 Fix inlining problem by over-writing the old DECL_RTL. 3440 (lookup_namespace_name): Fail to find an identifier in the 3441 specified namespace if its still anticipated. 3442 (builtin_function_1): New function split out from builtin_function 3443 to create a builtin in the current namespace with given context. 3444 (builtin_function): Call builtin_function_1 to define the 3445 appropriate builtins in both the std and global namespaces. 3446 (select_decl): Don't test for anticipated decls here. 3447 (unqualified_namespace_lookup): Instead ignore them whilst 3448 searching through scopes and namespaces. 3449 * decl2.c (do_nonmember_using_decl): If a using declaration 3450 specifies an anticipated built-in function, mark it as no longer 3451 anticipated in that scope. 3452 (ambiguous_decl): Avoid resolving to an anticipated decl. 3453 * lex.c (do_scoped_id): Fail to find an identifier in the global 3454 namespace if its still anticipated. 3455 34562002-03-29 Neil Booth <neil@daikokuya.demon.co.uk> 3457 3458 * cp-lang.c (LANG_HOOKS_MAKE_TYPE): Redefine. 3459 * cp-tree.h (cp_make_lang_type): Rename. 3460 * lex.c (cp_make_lang_type): Rename. 3461 (make_aggr_type): Update. 3462 * tree.c (init_tree): Don't set make_lang_type_fn. 3463 34642002-03-29 Jakub Jelinek <jakub@redhat.com> 3465 3466 PR c++/6073 3467 * class.c (finish_struct_1): Update static field's DECL_MODE even 3468 if its type is a variant of t. 3469 34702002-03-27 Neil Booth <neil@daikokuya.demon.co.uk> 3471 3472 * cp-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine. 3473 * cp-tree.h (cxx_insert_default_attributes): New. 3474 * decl.c (insert_default_attributes): Rename. 3475 34762002-03-27 Mark Mitchell <mark@codesourcery.com> 3477 3478 PR c++/4884 3479 * call.c (build_op_delete_call): Allow for the fact the placement 3480 may be a COMPOUND_EXPR. 3481 34822002-03-27 Neil Booth <neil@daikokuya.demon.co.uk> 3483 3484 * cp-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine. 3485 * cp-tree.h (init_cplus_expand): Remove. 3486 (cxx_expand_expr): New. 3487 * expr.c (cplus_expand_expr): Rename cxx_expand_expr, 3488 fix prototype. 3489 (init_cplus_expand): Remove. 3490 * lex.c (cxx_init): Don't call init_cplus_expand. 3491 34922002-03-26 Mark Mitchell <mark@codesourcery.com> 3493 3494 PR c++/4884. 3495 * init.c (build_new_1): Allow for the fact the result of 3496 build_function_call may be a COMPOUND_EXPR. 3497 34982002-03-26 Nathan Sidwell <nathan@codesourcery.com> 3499 3500 PR c++/5682 3501 * cp-tree.h (BINFO_PRIMARY_P): Explain meaning better. 3502 (dfs_skip_nonprimary_vbases_unmarkedp): Remove. 3503 (dfs_skip_nonprimary_vbases_markedp): Remove. 3504 * search.c (get_shared_vbase_if_not_primary): Remove. 3505 (dfs_skip_nonprimary_vbases_unmarkedp): Remove. 3506 (dfs_skip_nonprimary_vbases_markedp): Remove. 3507 (dfs_unmarked_real_bases_queue_p): Just get the canonical binfo. 3508 (dfs_marked_real_bases_queue_p): Likewise. 3509 35102002-03-26 Neil Booth <neil@daikokuya.demon.co.uk> 3511 3512 * cp-lang.c (LANG_HOOKS_MARK_TREE): Redefine. 3513 * cp-tree.h (cxx_mark_tree): New. 3514 * decl.c (lang_mark_tree): Rename cxx_mark_tree. 3515 35162002-03-25 Neil Booth <neil@daikokuya.demon.co.uk> 3517 3518 * cp-tree.h (cxx_maybe_build_cleanup): New. 3519 * decl.c (destroy_local_var, hack_incomplete_structures): Update. 3520 (maybe_build_cleanup): Rename cxx_maybe_build_cleanup. 3521 * tree.c (build_target_expr): Update. 3522 * cp-lang.c (LANG_HOOKS_MAYBE_BUILD_CLEANUP): Redefine. 3523 35242002-03-24 Neil Booth <neil@daikokuya.demon.co.uk> 3525 3526 * decl2.c (cxx_decode_option): Handle -E. 3527 * lang-specs.h (default_compilers): Preprocess with cc1plus. 3528 * lex.c (cxx_init): Exit quickly if c_common_init returns NULL. 3529 35302002-03-23 Jakub Jelinek <jakub@redhat.com> 3531 3532 PR c++/6037 3533 * decl.c (start_enum): Don't set TREE_ADDRESSABLE on TREE_LIST node. 3534 35352002-03-23 Gabriel Dos Reis <gdr@merlin.codesourcery.com> 3536 3537 * error.c (dump_type): Be careful about implicit typenames. 3538 35392002-03-21 Gabriel Dos Reis <gdr@merlin.codesourcery.com> 3540 3541 PR C++/3656 3542 * semantics.c (finish_base_specifier): Handle erronous base 3543 classes. 3544 35452002-03-22 Zack Weinberg <zack@codesourcery.com> 3546 3547 * error.c: Always use REAL_VALUE_TO_DECIMAL; don't test 3548 REAL_IS_NOT_DOUBLE. 3549 35502002-03-22 Jeff Knaggs <jknaggs@redhat.com> 3551 3552 * typeck.c (get_member_function_from_ptrfunc): Scale idx down to 3553 an index into the vtable_entry array regardless of 3554 TARGET_PTRMEMFUNC_VBIT_LOCATION. 3555 35562002-03-21 Aldy Hernandez <aldyh@redhat.com> 3557 3558 * tree.c (cp_cannot_inline_tree_fn): Same. 3559 35602002-03-21 Neil Booth <neil@daikokuya.demon.co.uk> 3561 3562 * cp-tree.h (pushdecl, pushlevel, poplevel, set_block, 3563 insert_block, getdecls, global_bindings_p): New. 3564 35652002-03-20 Nathan Sidwell <nathan@codesourcery.com> 3566 3567 PR c++/4361 3568 * mangle.c (struct globals) Add internal_mangling_p member. 3569 (write_template_param): Do internal mangling, if needed. 3570 (mangle_conv_op_name_for_type): Request internal mangling. 3571 35722002-03-20 Jason Merrill <jason@redhat.com> 3573 3574 PR c++/2136 3575 * init.c (build_delete): Check access for a member op delete here. 3576 * decl2.c (delete_sanity): Not here. 3577 35782002-03-19 Jason Merrill <jason@redhat.com> 3579 3580 PR c++/5118 3581 * class.c (get_vfield_name): Use the constructor_name. 3582 35832002-03-20 Neil Booth <neil@daikokuya.demon.co.uk> 3584 3585 * cp-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine. 3586 * cp-tree.h (lang_printable_name): Rename. 3587 * error.c (lang_decl_name): Use new hook. 3588 * lex.c (cxx_init): Remove old hook. 3589 * pt.c (tsubst_decl): Use new hook. 3590 * tree.c (lang_printable_name): Rename. 3591 35922002-03-18 Eric Botcazou <ebotcazou@multimania.com> 3593 3594 PR c++/3882 3595 * pt.c (tsubst_decl): Move __PRETTY_FUNCTION__ handling... 3596 (tsubst_expr) [DECL_STMT]: ...here. And substitute the initializer 3597 only after recording the declaration. 3598 35992002-03-18 Jason Merrill <jason@redhat.com> 3600 3601 PR c++/2039 3602 * init.c (resolve_offset_ref): Hand off to build_component_ref. 3603 3604 PR c++/4222, c++/5995 3605 * call.c (build_over_call): Fix empty class logic. 3606 3607 PR c++/3870 3608 * cp-tree.h (struct saved_scope): Add last_parms field. 3609 * decl.c (maybe_push_to_top_level): Save last_function_parms. 3610 (pop_from_top_level): Restore it. 3611 3612 PR c++/4377 3613 * mangle.c (write_expression): Strip NOP_EXPRs sooner. Also strip 3614 NON_LVALUE_EXPRs. 3615 3616 PR c++/4003 3617 * pt.c (tsubst_friend_function): Use decl_namespace_context. 3618 3619 PR c++/3948 -- C++ ABI change, followup to 2001-12-18 patch. 3620 * class.c (finish_struct_bits): Also set TREE_ADDRESSABLE for a 3621 type with a nontrivial destructor. 3622 36232002-03-17 Jason Merrill <jason@redhat.com> 3624 3625 PR c++/4460 3626 * class.c (build_base_path): Virtual base layout is fixed in 3627 in-charge [cd]tors. 3628 36292002-03-17 Neil Booth <neil@daikokuya.demon.co.uk> 3630 3631 * cp-lang.c (LANG_HOOKS_PARSE_FILE): Redefine. 3632 * parse.y (yyparse): Remove macro. 3633 36342002-03-17 Jason Merrill <jason@redhat.com> 3635 3636 PR c++/5757 3637 * init.c (build_new_1): Pass the right pointer to op delete. 3638 36392002-03-16 Nathan Sidwell <nathan@codesourcery.com> 3640 3641 PR c++/4361 3642 * cp-tree.h (CLASSTYPE_METHOD_VEC): Document where templated 3643 conversion operators go. 3644 (struct lang_decl_flags): Add template_conv_p and unused 3645 bitfields. 3646 (DECL_TEMPLATE_CONV_FN_P): New macro. 3647 * call.c (build_user_type_conversion_1): Don't check second type 3648 conversion of overload set first. 3649 * class.c (add_method): Make sure templated conversion operators 3650 all end up on slot 2. 3651 * lex.c (do_identifier): A conversion operator token might be 3652 satisfied by a templated conversion operator. 3653 * pt.c (check_explicit_specialization): Use 3654 CLASSTYPE_FIRST_CONVERSION_SLOT. 3655 (template_parm_this_level_p): New function. 3656 (push_template_decl_real): Determine DECL_TEMPLATE_CONV_FN_P. 3657 * search.c (lookup_fnfields_1): Template conversions will be on 3658 the first slot. 3659 * typeck.c (build_component_ref): Preserve the type of an 3660 conversion operator name on the overload type. 3661 (build_x_function_call): Retrieve the conversion operator name. 3662 36632002-03-15 Richard Henderson <rth@redhat.com> 3664 3665 * init.c (build_new_1): Use size_binop instead of cp_build_binary_op. 3666 36672002-03-15 Mark Mitchell <mark@codesourcery.com> 3668 3669 * cp-tree.h (CLEANUP_DECL): Remove. 3670 (CLEANUP_EXPR): Likewise. 3671 * decl.c (destroy_local_var): Simplify. 3672 (maybe_build_cleanup): Tidy. 3673 * dump.c (cp_dump_tree): Remove handling of CLEANUP_STMT. 3674 * semantics.c (cp_expand_stmt): Likewise. 3675 * cp/tree.c (cp_statement_code_p): Likewise. 3676 36772002-03-15 Jason Merrill <jason@redhat.com> 3678 3679 PR c++/5857 3680 * decl.c (duplicate_decls): Use merge_types instead of common_type. 3681 * typeck.c (common_type): Just hand off to 3682 type_after_usual_arithmetic_conversions and 3683 composite_pointer_type. 3684 (merge_types): New fn. 3685 (commonparms): Use it instead of common_type. 3686 (type_after_usual_arithmetic_conversions): Also handle COMPLEX_TYPE. 3687 (composite_pointer_type): Also handle attributes. 3688 * cp-tree.h: Declare merge_types. 3689 3690 * decl.c (make_rtl_for_nonlocal_decl): Also defer COMDAT 3691 variables. 3692 * decl2.c (maybe_make_one_only): Also mark the decl as needed. 3693 36942002-03-14 Richard Henderson <rth@redhat.com> 3695 3696 * decl.c: Include c-pragma.h. 3697 (start_decl, start_function): Invoke maybe_apply_pragma_weak. 3698 * Make-lang.in: Update dependencies. 3699 37002002-03-14 Jakub Jelinek <jakub@redhat.com> 3701 3702 PR c++/5908 3703 * call.c (build_over_call): Set TREE_NO_UNUSED_WARNING too. 3704 * cvt.c (convert_to_void): Preserve TREE_NO_UNUSED_WARNING. 3705 37062002-03-12 Richard Sandiford <rsandifo@redhat.com> 3707 3708 * mangle.c (write_builtin_type): Handle 128-bit integers even if 3709 they are not a standard integer type. 3710 37112002-03-12 Richard Sandiford <rsandifo@redhat.com> 3712 3713 * cp-tree.h (init_init_processing): Remove declaration. 3714 * init.c (BI_header_type, init_init_processing): Remove old ABI stuff. 3715 * decl.c (cxx_init_decl_processing): Don't call init_init_processing. 3716 37172002-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3718 3719 * cp-lang.c (tree_code_type, tree_code_length, tree_code_name): 3720 Define. 3721 * decl.c (duplicate_decls): Use TREE_CODE_LENGTH, not 3722 tree_code_length. 3723 * lex.c (cplus_tree_code_type, cplus_tree_code_length, 3724 cplus_tree_code_name): Delete. 3725 (cxx_init): Don't call add_c_tree_codes, instead set 3726 lang_unsafe_for_reeval. Don't try to copy into the various 3727 tree_code arrays. 3728 37292002-03-12 Nathan Sidwell <nathan@codesourcery.com> 3730 3731 PR c++/5659 3732 * decl.c (xref_tag): Don't set CLASSTYPE_DECLARED_CLASS here. 3733 * decl2.c (handle_class_head): Set CLASSTYPE_DECLARED_CLASS for 3734 definitions. 3735 37362002-03-11 Nathan Sidwell <nathan@codesourcery.com> 3737 3738 Revert 2001-03-26 Nathan Sidwell <nathan@codesourcery.com>, 3739 DR209 is now not a defect. 3740 * cp-tree.h (skip_type_access_control): Remove. 3741 * decl.c (grokdeclarator): Do type access control for friend 3742 declarations. 3743 * semantics.c (decl_type_access_control): Don't reset 3744 current_type_lookups. 3745 (save_type_access_control): Always save the lookups. 3746 (skip_type_access_control): Remove. 3747 (finish_class_definition): Don't change type_lookups. 3748 37492002-03-11 Nathan Sidwell <nathan@codesourcery.com> 3750 3751 Revert 2000-12-01 Nathan Sidwell <nathan@codesourcery.com>, 3752 It is incorrect. 3753 * typeck.c (build_static_cast): Compare non-qualified types 3754 with pointer to member conversions. 3755 37562002-03-11 Dan Nicolaescu <dann@ics.uci.edu> 3757 Daniel Berlin <dan@dberlin.org> 3758 3759 * cp-lang.c (ok_to_generate_alias_set_for_type): New function. 3760 (cxx_get_alias_set): Use it. 3761 37622002-03-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3763 3764 * cp-tree.h (stabilize_expr): Prototype. 3765 37662002-03-08 Craig Rodrigues <rodrigc@gcc.gnu.org> 3767 3768 * cp-tree.h (CLEAR_BINFO_MARKED): Make both parts of 3769 conditional return void. 3770 37712002-03-08 Neil Booth <neil@daikokuya.demon.co.uk> 3772 3773 * cp-lang.c (LANG_HOOKS_UNSAVE): Redefine. 3774 * cp-tree.h (cxx_unsave): New. 3775 * tree.c (cp_unsave): Rename cxx_unsave, update prototype. 3776 (init_tree): Update. 3777 37782002-03-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3779 3780 * decl.c (cxx_init_decl_processing): Use ARRAY_SIZE in lieu of 3781 explicit sizeof/sizeof. 3782 * decl2.c (cxx_decode_option): Likewise. 3783 * lex.c (init_reswords, REDUCE_LENGTH, TOKEN_LENGTH): Likewise. 3784 37852002-03-02 Nathan Sidwell <nathan@codesourcery.com> 3786 3787 PR c++/775 3788 * decl.c (lookup_tag): Only reject enum/class mismatch, not 3789 class/union mismatch. 3790 * parse.y (check_class_key): New function. 3791 (structsp): Call it. 3792 37932002-03-01 Michael Matz <matz@suse.de> 3794 3795 * typeck.c (cp_pointer_int_sum): Complete inner type which is 3796 used later by size_in_bytes(). 3797 37982002-03-01 Phil Edwards <pme@gcc.gnu.org> 3799 3800 * cp-tree.h: Require __GNUC__ to be #defined. 3801 (build_init): Add missing prototype. 3802 38032002-03-01 Jason Merrill <jason@redhat.com> 3804 3805 * except.c: Don't include decl.h or obstack.h. Do include 3806 tree-inline.h. 3807 (build_throw): Destroy temporaries from the thrown 3808 expression before calling __cxa_throw. Construct a thrown 3809 temporary directly into the exception object. 3810 (stabilize_throw_expr): New function. 3811 (wrap_cleanups_r): New function. 3812 * tree.c (stabilize_expr): New function. 3813 * init.c (build_init): New function. 3814 * Make-lang.in (cp/except.o): Adjust .h deps. 3815 38162002-02-28 Jason Merrill <jason@redhat.com> 3817 3818 * search.c (lookup_base_r): Don't clear is_non_public just because 3819 we found a friendly scope. 3820 3821 * decl.c (finish_function): Only warn about missing return 3822 statement with -Wreturn-type. 3823 38242002-02-28 Neil Booth <neil@daikokuya.demon.co.uk> 3825 3826 * class.c (build_clone): Update. 3827 * cp-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine. 3828 * cp-tree.h (cxx_dup_lang_specific_decl): New. 3829 * lex.c (copy_lang_decl): Rename cxx_dup_lang_specific_decl. 3830 (copy_decl): Update. 3831 * method.c (make_thunk): Update. 3832 38332002-02-27 Zack Weinberg <zack@codesourcery.com> 3834 3835 * decl2.c: Delete traditional-mode-related code copied from 3836 the C front end but not used, or used only to permit the 3837 compiler to link. 3838 38392002-02-24 Craig Rodrigues <rodrigc@gcc.gnu.org> 3840 3841 PR c++/4093 3842 * cp-tree.h (SET_BINFO_MARKED): Cast false part of condition 3843 to void. 3844 38452002-02-22 Jakub Jelinek <jakub@redhat.com> 3846 3847 PR other/5746 3848 * semantics.c (finish_switch_cond): Don't call get_unwidened 3849 if error_mark_node. 3850 38512002-02-22 Nathan Sidwell <nathan@codesourcery.com> 3852 3853 PR c++/2645, DR 295 3854 * cp-tree.h (tsubst_flags_t): Add tf_ignore_bad_quals, 3855 tf_keep_type_decl. 3856 (make_typename_type): Use tsubst_flags_t. 3857 * decl.c (make_typename_type): Adjust. Return non-artificial 3858 TYPE_DECLs, if required. 3859 (grokdeclarator): Simplify CVR qualification handling. Allow bad 3860 qualifiers on typedef types. 3861 * decl2.c (handle_class_head): Adjust make_typename_type call. 3862 * parse.y (nested_name_specifier): Likewise. 3863 (typename_sub0): Likewise. 3864 (typename_sub1): Likewise. 3865 * pt.c (convert_template_argument): Adjust make_typename_type 3866 return value. 3867 (tsubst): Adjust cp_build_qualified_type_real calls. 3868 (check_cv_quals_for_unify): Cope with allowing bad qualifications 3869 on template type parms. 3870 (instantiate_decl): Recheck substitutions to give warnings on bad 3871 qualifications. 3872 * tree.c (cp_build_qualified_type_real): Use tf_allow_bad_quals. 3873 38742002-02-21 Aldy Hernandez <aldyh@redhat.com> 3875 3876 * cp/decl.c (duplicate_decls): Merge always_inline attribute. 3877 3878 * cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0 3879 unless DECL_ALWAYS_INLINE. 3880 38812002-02-20 Jakub Jelinek <jakub@redhat.com> 3882 3883 * typeck.c (cp_pointer_int_sum): Renamed from 3884 pointer_int_sum, call pointer_int_sum. 3885 38862002-02-20 Jakub Jelinek <jakub@redhat.com> 3887 3888 * decl.c (duplicate_decls): Return 0 if issued error about 3889 redeclaration. 3890 38912002-02-19 Jason Merrill <jason@redhat.com> 3892 3893 ABI change: Mangle `void (A::*)() const' as 3894 M1AKFvvE, not MK1AFvvE. 3895 * mangle.c (write_function_type): Write cv-quals for member 3896 function type here. 3897 (write_pointer_to_member_type): Not here. 3898 38992002-02-18 Jason Merrill <jason@redhat.com> 3900 3901 * pt.c (do_type_instantiation): Don't pedwarn if in_system_header. 3902 (do_decl_instantiation): Likewise. 3903 39042002-02-17 Craig Rodrigues <rodrigc@gcc.gnu.org> 3905 3906 PR c++/5685 3907 * decl.c (duplicate_decls): Make warning unconditional 3908 if duplicate default argument declarations are present. 3909 39102002-02-17 Jakub Jelinek <jakub@redhat.com> 3911 3912 * typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit 3913 shortening. 3914 39152002-02-15 Nathan Sidwell <nathan@codesourcery.com> 3916 3917 * decl.c (grokdeclarator): Set typedef_decl for all TYPE_DECLs, 3918 remove incorrect comment. Move #if 0'd code to common path. Use 3919 IMPLICIT_TYPENAME_P. Simplify & reformat ARRAY_TYPE duplication. 3920 39212002-02-13 Jason Merrill <jason@redhat.com> 3922 3923 * decl.c (builtin_function): Set TREE_THIS_VOLATILE on return fns. 3924 (finish_function): Don't warn if current_function_returns_null. 3925 3926 * typeck2.c (digest_init): Do handle values of vector type. 3927 3928 * typeck2.c (digest_init, process_init_constructor): Treat vectors 3929 like arrays. 3930 39312002-02-11 Jason Merrill <jason@redhat.com> 3932 3933 * parse.y (reserved_declspecs): Don't handle attributes. 3934 (reserved_typespecquals): Handle them here. 3935 * Make-lang.in (parse.c): Adjust expected conflicts. 3936 39372002-02-08 Jakub Jelinek <jakub@redhat.com> 3938 3939 * parse.y (primary, primary_no_id): Use compstmt_or_stmtexpr 3940 instead of compstmt. 3941 (compstmt_or_stmtexpr): Renamed from compstmt. 3942 (compstmt): In addition to compstmt_or_stmtexpr clear last_expr_type. 3943 39442002-02-07 Nathan Sidwell <nathan@codesourcery.com> 3945 3946 Rename instantiate_type_flags to tsubst_flags_t & expand use. 3947 * cp-tree.h (instantiate_type_flags): Rename to ... 3948 (tsubst_flags_t): ... here. Rename itf_complain to tf_error, 3949 add tf_warning flag. 3950 (instantiate_type): Adjust prototype. 3951 (tsubst, tsubst_expr, tsubst_copy, lookup_template_class, 3952 do_type_instantiation, cp_build_qualified_type_real): Likewise. 3953 cp_build_qualified_type: Adjust. 3954 * class.c (instantiate_type): Adjust parameter. Rename itf_* to 3955 tf_*. 3956 * call.c (standard_conversion): Rename itf_* to tf_*. 3957 (reference_binding): Likewise. 3958 (convert_like_real): Likewise. 3959 * cvt.c (cp_convert_to_pointer): Likewise. 3960 (convert_to_reference): Likewise. 3961 * decl.c (lookup_namespace_name): Use tf_* flags. 3962 (make_typename_type): Likewise. 3963 (grokdeclarator): Likewise. 3964 * pt.c (convert_nontype_argument): Adjust COMPLAIN usage. 3965 (coerce_template_template_parms, convert_template_argument, 3966 coerce_template_parms, maybe_get_template_decl_from_type_decl, 3967 lookup_template_class, tsubst_friend_function, tsubst_friend_class, 3968 instantiate_class_template, tsubst_template_arg_vector, 3969 tsubst_template_parms, tsubst_aggr_type, tsubst_default_argument, 3970 tsubst_decl, tsubst_arg_types, tsubst_function_type, 3971 tsubst_call_declarator_parms, tsubst, tsubst_copy, tsubst_expr, 3972 instantiate_template, fn_type_unification, 3973 resolve_overloaded_unification, verify_class_unification, 3974 unify, get_bindings_real, do_type_instantiation, 3975 regenerate_decl_from_template, instantiate_decl, 3976 tsubst_initializer_list, tsubst_enum, 3977 get_mostly_instantiated_function_type, 3978 invalid_nontype_parm_type_p): Likewise. 3979 * tree.c (cp_build_qualified_type_real): Likewise. 3980 * typeck.c (build_binary_op): Rename itf_* to tf_*. 3981 (build_ptrmemfunc): Likewise. 3982 (convert_for_assignment): Likewise. 3983 39842002-02-07 Nathan Sidwell <nathan@codesourcery.com> 3985 3986 PR c++/109 3987 * decl.c (grokdeclarator): Allow friend declarations from 3988 dependent types. 3989 * decl2.c (handle_class_head): Don't push into template parm contexts. 3990 * pt.c (push_template_decl_real): Template parm contexts are never 3991 being defined. 3992 39932002-02-05 Alexandre Oliva <aoliva@redhat.com> 3994 3995 * class.c: Include target.h. 3996 (check_bitfield_decl): Disregard EMPTY_FIELD_BOUNDARY, 3997 BITFIELDS_NBYTES_LIMITED and PCC_BITFIELD_TYPE_MATTERS for MS 3998 bit-field layout. 3999 * Make-lang.in: Adjust deps. 4000 40012002-02-05 Jason Merrill <jason@redhat.com> 4002 4003 * error.c (dump_type): Be more helpful about VECTOR_TYPE. 4004 40052002-02-04 Jakub Jelinek <jakub@redhat.com> 4006 4007 * semantics.c (begin_switch_stmt): Clear SWITCH_TYPE. 4008 (finish_switch_cond): Set SWITCH_TYPE. 4009 40102002-02-04 Richard Henderson <rth@redhat.com> 4011 4012 * method.c (use_thunk): Always initialize the block tree. Reindent. 4013 * semantics.c (expand_body): Emit thunks after function, not before. 4014 40152002-02-04 Jason Merrill <jason@redhat.com> 4016 4017 * decl.c (start_function): Call cplus_decl_attributes immediately 4018 after grokdeclarator. 4019 4020 * decl.c (start_function): Combine DECL_RESULT handling code. 4021 40222002-02-03 Jason Merrill <jason@redhat.com> 4023 4024 * xref.c: Remove. 4025 * Make-lang.in (CXX_OBJS): Remove cp/xref.o 4026 (cp/xref.o): Remove dependencies. 4027 * class.c (finish_struct_1, check_methods): Don't call xref fns. 4028 (finish_struct_1): Likewise. 4029 * friend.c (make_friend_class): Likewise. 4030 * lex.c (cxx_init, cxx_finish, extract_interface_info): Likewise. 4031 * spew.c (read_process_identifier): Likewise. 4032 40332002-02-01 Jason Merrill <jason@redhat.com> 4034 4035 PR c++/4872 4036 * decl.c (finish_function): Warn about a non-void function with 4037 no return statement and no abnormal exit. 4038 * cp-tree.h (struct cp_language_function): Add returns_abnormally. 4039 (current_function_returns_abnormally): New macro. 4040 * call.c (build_call): Set it. 4041 4042 * typeck.c (build_component_ref): Always complain about offsetof 4043 constructs on non-PODs. Only make it an error for members of 4044 virtual bases. 4045 4046 * error.c (dump_scope): Don't add TFF_DECL_SPECIFIERS. 4047 (dump_function_decl): Always dump parms. 4048 4049 * decl2.c (finish_static_data_member_decl): Complain about a local 4050 class with a static data member. 4051 4052 PR c++/4286 4053 * search.c (lookup_field_1): Don't xref a static data member 4054 just because we looked it up. 4055 40562002-01-31 Jason Merrill <jason@redhat.com> 4057 4058 * Make-lang.in (parse.c): Handle .output file. 4059 4060 PR c++/3395 4061 * decl.c (xref_tag): Remember early attributes in TYPE_ATTRIBUTES, 4062 not TREE_TYPE. 4063 * semantics.c (finish_class_definition): Adjust. 4064 4065 Allow attributes in parms and casts. 4066 * parse.y (named_parm): Don't strip attrs. 4067 (declmods): Remove 'attributes' production. 4068 (nonempty_cv_qualifiers): Accept attributes. 4069 (ATTRIBUTE): Give precedence. 4070 * decl.c (groktypename): Handle attributes. 4071 (grokparms): Likewise. 4072 40732002-01-29 Jakub Jelinek <jakub@redhat.com> 4074 4075 * decl2.c (cxx_decode_option): Pass 0 as last argument to 4076 cpp_handle_option. 4077 * lang-specs.h: Use cpp_unique_options instead of cpp_options 4078 when used together with cc1_options. 4079 40802002-01-29 Nathan Sidwell <nathan@codesourcery.com> 4081 4082 PR c++/5132 4083 * typeck2.c (digest_init): Make sure non-array core type is 4084 instantiated. 4085 * decl2.c (reparse_absdcl_as_casts): Just store the type in the 4086 constructor, rather than build a new one. 4087 (build_expr_from_tree, CONSTRUCTOR case): Be careful with the 4088 PURPOSE of constructor elts. 4089 40902002-01-23 Zack Weinberg <zack@codesourcery.com> 4091 4092 * Make-lang.in (parse.c): Adjust expected number of 4093 shift-reduce conflicts. 4094 (decl.o): Depend on diagnostic.h. 4095 * decl.c: Include diagnostic.h. 4096 (grokdeclarator): Check for null pointer. 4097 (finish_function): Don't abort when 4098 current_binding_level->parm_flag != 1, if errors have 4099 occurred; throw away the statement tree and extra binding 4100 levels, and continue. 4101 * lex.c (note_list_got_semicolon): Check for null pointer. 4102 * method.c (hack_identifier): Just return error_mark_node if 4103 value is error_mark_node. 4104 * parse.y (primary: TYPEID(type_id)): No need to use 4105 TYPE_MAIN_VARIANT here. 4106 (handler_seq): Accept an empty list of catch clauses and 4107 generate a fake handler block to avoid later crashes. 4108 (ansi_raise_identifier): Accept the error token too. 4109 * semantics.c (begin_class_definition, 4110 finish_class_definition): Check for error_mark_node. 4111 41122002-01-23 Zack Weinberg <zack@codesourcery.com> 4113 4114 * typeck2.c (friendly_abort): Delete definition. 4115 * cp-tree.h (friendly_abort): Don't prototype. 4116 (my_friendly_assert): Use fancy_abort. 4117 41182002-01-23 Craig Rodrigues <rodrigc@gcc.gnu.org> 4119 4120 * cp-tree.h (my_friendly_abort): Remove. 4121 41222002-01-23 Jakub Jelinek <jakub@redhat.com> 4123 4124 * spew.c (pending_inlines, pending_inlines_tail, 4125 processing_these_inlines): Make static. 4126 (mark_pending_inlines): Remove static. 4127 (begin_parsing_inclass_inline): If in function, save pi 4128 for GC to cp_function_chain->unparsed_inlines instead. 4129 (process_next_inline): Likewise. 4130 * cp-tree.h (struct cp_language_function): Add unparsed_inlines. 4131 (mark_pending_inlines): Add prototype. 4132 * decl.c (spew_debug): Remove unused extern. 4133 (mark_lang_function): Call mark_pending_inlines. 4134 41352002-01-23 Craig Rodrigues <rodrigc@gcc.gnu.org> 4136 4137 * call.c, class.c, decl.c, decl2.c, error.c, expr.c, friend.c, 4138 init.c, lex.c, mangle.c, method.c, pt.c, repo.c, rtti.c, search.c, 4139 semantics.c, spew.c, tree.c, typeck.c, typeck2.c, xref.c: 4140 Change my_fancy_abort() to abort(). 4141 41422002-01-23 Jason Merrill <jason@redhat.com> 4143 4144 PR c++/5453 4145 * class.c (fixed_type_or_null): Fix thinko. 4146 4147 PR c++/3331 4148 * init.c (resolve_offset_ref): Use build_indirect_ref. 4149 4150 * decl2.c (grokclassfn): Don't set DECL_REGISTER on 'this'. 4151 41522002-01-22 Jason Merrill <jason@redhat.com> 4153 4154 * parse.y (function_body): Suppress the block for the outermost 4155 curly braces. 4156 * decl.c (pushdecl): Don't try to skip it. 4157 (begin_function_body): Keep the block we create, not the next one. 4158 * init.c (emit_base_init): Don't mess with keep_next_level. 4159 4160 * class.c (build_base_path): Tweak formatting. 4161 41622002-01-19 Nathan Sidwell <nathan@codesourcery.com> 4163 4164 Fix regression introduced with patch for c++/775 4165 * parse.y (class_head_defn): Check for template specializations 4166 with a different class-key. 4167 41682002-01-17 Jason Merrill <jason@redhat.com> 4169 4170 * decl.c (begin_constructor_body, begin_destructor_body): New fns. 4171 (begin_function_body): Call them and keep_next_level. 4172 * init.c (emit_base_init): Call keep_next_level. 4173 * semantics.c (setup_vtbl_ptr): Lose. 4174 * cp-tree.h (struct cp_language_function): Remove vtbls_set_up_p. 4175 (vtbls_set_up_p): Lose. 4176 * pt.c (tsubst_expr, CTOR_INITIALIZER): Call emit_base_init. 4177 * method.c (do_build_copy_constructor): Likewise. 4178 (synthesize_method): Call finish_mem_initializers. 4179 * parse.y (nodecls): Likewise. 4180 4181 * error.c (dump_type_suffix): Print the exception specs before 4182 recursing. 4183 (dump_function_decl): Here, too. 4184 4185 * cp-tree.h (TMPL_PARMS_DEPTH): Cast to signed HOST_WIDE_INT. 4186 41872002-01-10 Ira Ruben <ira@apple.com> 4188 4189 PR c++/907 4190 * decl.c (start_method): Handle attrlist. 4191 41922002-01-10 Jakub Jelinek <jakub@redhat.com> 4193 4194 * decl2.c (max_tinst_depth): Increase default limit to 500. 4195 41962002-01-10 Graham Stott <grahams@redhat.com> 4197 4198 * spew.c (YYCHAR): Uppercase macro parameter and add 4199 parenthesis. 4200 (YYCODE): Likewise. 4201 (NAME): Uppercase macro parameter. 4202 42032002-01-09 Graham Stott <grahams@redhat.com> 4204 4205 * decl.h (grokdeclarator): Wrap long line. 4206 4207 * semantics.c (FINISH_COND): Uppercase macro paramaters and 4208 add parenthesis. 4209 42102002-01-08 Graham Stott <grahams@redhat.com> 4211 4212 * xref.c (FILE_NAME_ABSOLUTE_P): Add parenthesis. 4213 (PALLOC): Uppercase macro parameter and whitespace. 4214 (SALLOC): Uppercase macro parameter. 4215 (SFREE): Uppercase macros parameter, add parenthese and 4216 whitespace. 4217 (STREQL): Uppercase macro parameter and whitespace. 4218 (STRNEQ): Likewise. 4219 (STRLSS): Likewise. 4220 (STRLEQ): Likewise. 4221 (STRGTR): Likewise. 4222 (STRGEQ): Likewise. 4223 4224 * call.c (convert_like): Add parenthesis and wrap. 4225 (convert_like_with_context): Likewise. 4226 (ICS_RANK): Whitespace. 4227 (NEED_TEMPORARY_P): Remove parenthesis. 4228 4229 * class.c (VTT_TOP_LEVEL_P): Uppercase macro parameter and 4230 whitespace. 4231 (VTT_MARKED_BINFO_P): Likewise. 4232 4233 * decl.c (BINDING_LEVEL): Add parenthesis. 4234 (DEF_OPERATOR): Likewise. 4235 4236 * mangle.c (MANGLE_TRACE): Add parenthesis. 4237 (MANGLE_TRACE_TREE): Likewise. 4238 (write_signed_number): Likewise. 4239 (write_unsigned_number): Likewise. 4240 4241 * pt.c (ccat): Uppercase macro parameter. 4242 (cat): Likewise 4243 4244 * search.c (SET_BINFO_ACCESS): Add parenthesis. 4245 42462002-01-07 Jason Merrill <jason@redhat.com> 4247 4248 * decl2.c (coerce_new_type): Downgrade error for size_t mismatch 4249 to pedwarn. 4250 4251 PR c++/3536 4252 * method.c (make_thunk): If !flag_weak, give the thunk the 4253 function's linkage. 4254 (use_thunk): Here, too. 4255 42562002-01-07 Graham Stott <grahams@redhat.com> 4257 4258 * error.c: Update copyright date. 4259 (print_scope_operator): Add parenthesis. 4260 (print_left_paren): Likewise. 4261 (print_right_paren): Likewise. 4262 (print_left_bracket): Likewise. 4263 (print_right_bracket): Likewise. 4264 (print_template_argument_list_start): Likewise. 4265 (print_template_argument_list_end): Likewise. 4266 (print_non_consecutive_character): Likewise. 4267 (print_tree_identifier): Likewise. 4268 (print_identifier): Likewise. 4269 (NEXT_CODE): Uppercase macro parameter. 4270 (ident_fndecl): Delete unused. 4271 (GLOBAL_THING): Likewise. 4272 42732002-01-06 Graham Stott <grahams@redhat.com> 4274 4275 * cp-tree.h (VAR_OR_FUNCTION_DECL_CHECK): Add parenthesis. 4276 (VAR_FUNCTION_OR_PARM_DECL_CHECK): Likewise. 4277 (VAR_TEMPL_TYPE_OR_FUNCTION_DECL_CHECK) Likewise. 4278 (RECORD_OR_UNION_TYPE_CHECK): Likewise. 4279 (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): Likewise. 4280 (C_IS_RESERVED_WORD): Uppercase macro parameter. 4281 (C_RID_YYCODE) Likewise. 4282 (ptrmem_cst): Use rtx. 4283 (LOCAL_BINDING_P): Add whitespace. 4284 (INHERITED_VALUE_BINDING_P): Likewise. 4285 (BINDING_SCOPE): Wrap long line. 4286 (BINDING_HAS_LEVEL_P): Remove parenthesis. 4287 (BINDING_VALUE): Wrap long line. 4288 (BINDING_TYPE): Whitespace. 4289 (IDENTIFIER_GLOBAL_VALUE): Add parenthesis. 4290 (SET_IDENTIFIER_GLOBAL_VALUE): Likewise. 4291 (IDENTIFIER_NAMESPACE_VALUE): Likewise. 4292 (SET_IDENTIFIER_NAMESPACE_VALUE: Likewise. 4293 (same_type_p): Uppercase macro parameters. 4294 (same_type_ignoring_top_level_qualifiers_p): Likewise. 4295 (OVL_FUNCTION): Wrap long line. 4296 (OVL_CHAIN): Whitespace. 4297 (OVL_CURRENT): Add parenthesis and whitespace. 4298 (OVL_NEXT): Whitespace. 4299 (OVL_USED): Likewise. 4300 (IDENTIFIER_TYPE_VALUE): Likewise. 4301 (REAL_IDENTIFIER_TYPE_VALUE): Remove parenthesis. 4302 (SET_IDENTIFIER_TYPE_VALUE): Add parenthesis and whitespace. 4303 (LANG_ID_FIELD): Whitespace. 4304 (SET_LANG_ID(NODE,VALUE,NAME): Likewise. 4305 (IDENTIFIER_LABEL_VALUE): Whitespace and wrap. 4306 (SET_IDENTIFIER_LABEL_VALUE): Whitespace. 4307 (IDENTIFIER_IMPLICIT_DECL): Whitespace and wrap. 4308 (SET_IDENTIFIER_IMPLICIT_DECL); Whitespace. 4309 (IDENTIFIER_ERROR_LOCUS): Whitespace and wrap. 4310 (SET_IDENTIFIER_ERROR_LOCUS); Whitespace. 4311 (IDENTIFIER_VIRTUAL_P): Likewise. 4312 (IDENTIFIER_OPNAME_P): Likewise. 4313 (IDENTIFIER_TYPENAME_P): Remove parenthesis. 4314 (C_TYPE_FIELDS_READONLY): Uppercase macro parameters. 4315 (C_SET_EXP_ORIGINAL_CODE): Likewise. 4316 (TYPE_ASSEMBLER_NAME_STRING): Wrap long line. 4317 (TYPE_ASSEMBLER_NAME_LENGTH): Likewise. 4318 (IS_AGGR_TYPE): Uppercase macro parameter. 4319 (CLASS_TYPE_P): Likewise. 4320 (IS_AGGR_TYPE_CODE): Uppercase macro parameter and parenthesis. 4321 (IS_AGGR_TYPE_2): Whitespace. 4322 (TAGGED_TYPE_P): Uppercase macro parameter. 4323 (TYPE_BUILT_IN): Whitespace. 4324 (TYPE_FOR_JAVA): Likewise. 4325 (FUNCTION_ARG_CHAIN): Remove parenthesis. 4326 (FUNCTION_FIRST_USER_PARMTYPE): Add parenthesis. 4327 (FUNCTION_FIRST_USER_PARAM): Likewise. 4328 (PROMOTES_TO_AGGR_TYPE): Whitespace. 4329 (DERIVED_FROM_P): Add parenthesis and wrap. 4330 (UNIQUELY_DERIVED_FROM_P): Likewise. 4331 (ACCESSIBLY_UNIQUELY_DERIVED_P): Likewise. 4332 (PUBLICLY_UNIQUELY_DERIVED_P): Likewise. 4333 (CLASSTYPE_USE_TEMPLATE): Whitespace. 4334 (CLASSTYPE_INLINE_FRIENDS): Remove parenthesis. 4335 (TYPE_GETS_DELETE): Add parenthesis. 4336 (TYPE_HAS_CONVERSION): Add parenthesis and wrap. 4337 (TYPE_HAS_ASSIGN_REF): Likewise, 4338 (TYPE_HAS_CONST_ASSIGN_REF): Likewise. 4339 (TYPE_HAS_INIT_REF): Likewise. 4340 (TYPE_HAS_CONST_INIT_REF): Likewise. 4341 (TYPE_BEING_DEFINED): Likewise. 4342 (TYPE_LANG_SPECIFIC): Likewise. 4343 (CLASSTYPE_RTTI): Likewise. 4344 (TYPE_OVERLOADS_CALL_EXPR): Likewise. 4345 (TYPE_OVERLOADS_ARRAY_REF): Likewise. 4346 (TYPE_OVERLOADS_ARROW): Likewise. 4347 (TYPE_USES_MULTIPLE_INHERITANCE): Likewise. 4348 (TYPE_USES_VIRTUAL_BASECLASSES): Add parenthesis. 4349 (CLASSTYPE_METHOD_VEC): Likewise. 4350 (CLASSTYPE_MARKED_N): Likewise. 4351 (CLASSTYPE_MARKED): Likewise. 4352 (CLASSTYPE_MARKED2): Likewise. 4353 (CLASSTYPE_MARKED3): Likewise. 4354 (CLASSTYPE_MARKED4): Likewise. 4355 (CLASSTYPE_MARKED5): Likewise. 4356 (CLASSTYPE_MARKED6): Likewise. 4357 (SET_CLASSTYPE_MARKED): Whitespace. 4358 (CLEAR_CLASSTYPE_MARKED): Likewise. 4359 (SET_CLASSTYPE_MARKED2): Likewise. 4360 (CLEAR_CLASSTYPE_MARKED2): Likewise. 4361 (SET_CLASSTYPE_MARKED3): Likewise. 4362 (CLEAR_CLASSTYPE_MARKED3): Likewise. 4363 (SET_CLASSTYPE_MARKED4): Likewise. 4364 (CLEAR_CLASSTYPE_MARKED4): Likewise. 4365 (SET_CLASSTYPE_MARKED5): Likewise. 4366 (CLEAR_CLASSTYPE_MARKED5): Likewise. 4367 (SET_CLASSTYPE_MARKED6): Likewise. 4368 (CLEAR_CLASSTYPE_MARKED6): Likewise. 4369 (CLASSTYPE_TAGS): Likewise. 4370 (CLASSTYPE_VSIZE): Likewise. 4371 (CLASSTYPE_VBASECLASSES): Likewise. 4372 (CANONICAL_BINFO): Add parenthesis. 4373 (CLASSTYPE_SIZE(NODE): Likewise. 4374 (CLASSTYPE_SIZE_UNIT): Likewise. 4375 (CLASSTYPE_ALIGN(NODE): Likewise. 4376 (CLASSTYPE_USER_ALIGN): Likewise. 4377 (TYPE_JAVA_INTERFACE): Likewise. 4378 (CLASSTYPE_PURE_VIRTUALS): Likewise. 4379 (CLASSTYPE_NEEDS_VIRTUAL_REINIT): Whitespace and wrap. 4380 (TYPE_HAS_DEFAULT_CONSTRUCTOR): Likewise. 4381 (CLASSTYPE_HAS_MUTABLE): Likewise. 4382 (CLASSTYPE_FRIEND_CLASSES): Likewise. Likewise. 4383 (CLASSTYPE_DECLARED_CLASS): Whitespace and wrap. 4384 (CLASSTYPE_READONLY_FIELDS_NEED_INIT): Likewise. 4385 (CLASSTYPE_REF_FIELDS_NEED_INIT): Likewise. 4386 (CLASSTYPE_INTERFACE_ONLY): Likewise. 4387 (CLASSTYPE_INTERFACE_KNOWN): Likewise. 4388 (CLASSTYPE_INTERFACE_UNKNOWN): Likewise. 4389 (SET_CLASSTYPE_INTERFACE_UNKNOWN_X): Likewise. 4390 (SET_CLASSTYPE_INTERFACE_UNKNOWN): Likewise. 4391 (SET_CLASSTYPE_INTERFACE_KNOWN): Likewise. 4392 (CLASSTYPE_DEBUG_REQUESTED): Whitespace and wrap. 4393 (BINFO_UNSHARED_MARKED): Whitespace. 4394 (BINFO_MARKED): Whitespace and wrap. 4395 (SET_BINFO_MARKED): Likewise. 4396 (CLEAR_BINFO_MARKED): Likewise. 4397 (BINFO_VTABLE_PATH_MARKED): Likewise. 4398 (SET_BINFO_VTABLE_PATH_MARKED): Likewise. 4399 (CLEAR_BINFO_VTABLE_PATH_MARKED): Likewise. 4400 (BINFO_SUBVTT_INDEX): Remove parenthesis. 4401 (BINFO_VPTR_INDEX): Likewise. 4402 (BINFO_PRIMARY_BASE_OF): Likewise, 4403 (CLASSTYPE_VFIELDS): Whitespace. 4404 (VF_DERIVED_VALUE): Wrap long line. 4405 (NAMESPACE_LEVEL): Whitespace. 4406 (CAN_HAVE_FULL_LANG_DECL_P): Remove parenthesis. 4407 (DEFARG_POINTER): Whitespace. 4408 (DECL_NEEDED_P): Remove parenthesis. 4409 (DECL_LANGUAGE): Whitespace. 4410 (SET_DECL_LANGUAGE): Add parenthesis. 4411 (DECL_CONSTRUCTOR_P): Whitespace and wrap. 4412 (DECL_OVERLOADED_OPERATOR_P): Remove parenthesis. 4413 (DECL_IN_AGGR_P): Whitespace. 4414 (DECL_FRIEND_P): Likewise. 4415 (DECL_BEFRIENDING_CLASSES): Likewise. 4416 (DECL_STATIC_FUNCTION_P): Whitespace and wrap. 4417 (DECL_NONCONVERTING_P): Whitespace. 4418 (DECL_PURE_VIRTUAL_P): Likewise. 4419 (DECL_NEEDS_FINAL_OVERRIDER_P): Likewise. 4420 (DECL_PENDING_INLINE_INFO): Whitespace. 4421 (DECL_SORTED_FIELDS): Likewise. 4422 (DECL_DEFERRED_FN): Likewise. 4423 (DECL_TEMPLATE_INFO): Likewise. 4424 (CLASSTYPE_TEMPLATE_INFO): Whitespace and wrap. 4425 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO); Likewise. 4426 (SET_TYPE_TEMPLATE_INFO): Add parenthesis. 4427 (TMPL_ARGS_LEVEL): Likewise. 4428 (SET_TMPL_ARGS_LEVEL): Likewise. 4429 (INNERMOST_TEMPLATE_PARMS): Whitespace. 4430 (C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter. 4431 (INTEGRAL_CODE_P(CODE): Add parenthesis. 4432 (CP_INTEGRAL_TYPE_P): Remove parenthesis. 4433 (TYPE_HAS_CONSTRUCTOR): Whitespace. 4434 (TREE_HAS_CONSTRUCTOR): Likewise. 4435 (TYPE_HAS_DESTRUCTOR): Likewise. 4436 (TYPE_HAS_REAL_ASSIGN_REF): Likewise. 4437 (TYPE_HAS_COMPLEX_ASSIGN_REF): Likewise. 4438 (TYPE_HAS_ABSTRACT_ASSIGN_REF): Likewise. 4439 (TYPE_HAS_COMPLEX_INIT_REF): Likewise. 4440 (TYPE_HAS_NONTRIVIAL_DESTRUCTOR): Likewise. 4441 (TYPE_PTRMEMFUNC_P): Likewise. 4442 (TYPE_PTRMEMFUNC_FLAG): Likewise. 4443 (TYPE_GET_PTRMEMFUNC_TYPE): Likewise. 4444 (TYPE_SET_PTRMEMFUNC_TYPE): Likewise. 4445 (TYPE_PTRMEM_CLASS_TYPE): Remove parenthesis. 4446 (TYPE_PTRMEM_POINTED_TO_TYPE): Likewise. 4447 (DECL_ACCESS): Whitespace. 4448 (DECL_GLOBAL_CTOR_P): Remove parenthesis. 4449 (DECL_GLOBAL_DTOR_P): Likewise. 4450 (GLOBAL_INIT_PRIORITY): Likewise. 4451 (DECL_TEMPLATE_PARMS): Likewise. 4452 (DECL_TEMPLATE_RESULT): Likewise. 4453 (DECL_TEMPLATE_INSTANTIATIONS): Likewise. 4454 (DECL_TEMPLATE_SPECIALIZATIONS): Likewise. 4455 (DECL_IMPLICIT_TYPEDEF_P): Remove parenthesis. 4456 (SET_DECL_IMPLICIT_TYPEDEF_P): Likewise. 4457 (PRIMARY_TEMPLATE_P): Add parenthesis. 4458 (DECL_USE_TEMPLATE): Whitespace. 4459 (CLASSTYPE_IMPLICIT_INSTANTIATION): Likewise. 4460 (SET_CLASSTYPE_IMPLICIT_INSTANTIATION): Likewise. 4461 (CLASSTYPE_EXPLICIT_INSTANTIATION): Likewise. 4462 (SET_CLASSTYPE_EXPLICIT_INSTANTIATION): Likewise. 4463 (CALL_DECLARATOR_PARMS): Remove parenthesis. 4464 (CALL_DECLARATOR_QUALS): Likewise. 4465 (CALL_DECLARATOR_EXCEPTION_SPEC): Likewise. 4466 (TEMP_NAME_P): Wrap. 4467 (VFIELD_NAME_P): Likewise. 4468 (B_SET): Uppercase macro parameters and add parenthesis. 4469 (B_CLR): Likewise. 4470 (B_TST): Likewise. 4471 (LOOKUP_NAMESPACES_ONLY): Uppercase macro parameters. 4472 (LOOKUP_TYPES_ONLY): Uppercase macro parameters. 4473 (LOOKUP_QUALIFIERS_ONLY): Uppercase macro parameters. 4474 (same_or_base_type_p): Likewise. 4475 (cp_deprecated): Likewise. 4476 44772002-01-05 Richard Henderson <rth@redhat.com> 4478 4479 * semantics.c (expand_body): Revert last change. 4480 44812002-01-04 Jason Merrill <jason@redhat.com> 4482 4483 PR c++/4122 4484 * class.c (update_vtable_entry_for_fn): Set delta to zero for a 4485 lost primary. 4486 4487 * class.c (build_vtbl_initializer): Check for a lost primary 4488 before calculating the vtable entry to throw away. 4489 44902002-01-02 Jason Merrill <jason@redhat.com> 4491 4492 * semantics.c (expand_body): Call outlining_inline_function when 4493 emitting an inline function out of line. 4494 44952002-01-02 Nathan Sidwell <nathan@codesourcery.com> 4496 4497 PR c++/5116, c++/764 reversion 4498 * call.c (build_new_op): Revert the instantiations. They are 4499 incorrect. 4500 45012002-01-02 Nathan Sidwell <nathan@codesourcery.com> 4502 4503 PR c++/5089 4504 * decl2.c (reparse_absdcl_as_casts): Don't warn about casts to void. 4505 45062002-01-02 Nathan Sidwell <nathan@codesourcery.com> 4507 4508 PR c++/3716 4509 * pt.c (tsubst_aggr_type): Move pmf handling into tsubst. 4510 (tsubst, case POINTER_TYPE): Handle pmfs here. 4511 (tsubst, case OFFSET_TYPE): Check it is not an offset to 4512 reference. If it is offset to FUNCTION_TYPE, create a METHOD_TYPE. 4513 45142002-01-02 Nathan Sidwell <nathan@codesourcery.com> 4515 4516 PR c++/35 4517 * cp-tree.h (DECL_LANG_FLAG_0): Used for PARM_DECL too. 4518 (DECL_TEMPLATE_PARM_P): A PARM_DECL might be one too. 4519 * pt.c (process_template_parm): SET_DECL_TEMPLATE_PARM_P on the 4520 PARM_DECL. 4521 (tsubst_template_parms): Break up loop statements. 4522 (tsubst_decl, case PARM_DECL): Copy DECL_TEMPLATE_PARM_P. Template 4523 parm PARM_DECLs don't get promoted. 4524 45252002-01-02 Nathan Sidwell <nathan@codesourcery.com> 4526 4527 PR c++/5123 4528 * typeck.c (build_component_ref): Cope with a TEMPLATE_ID_EXPR. 4529 (build_x_function_call): Cope with a COMPONENT_REF containing a 4530 TEMPLATE_ID_EXPR. 4531 45322002-01-02 Nathan Sidwell <nathan@codesourcery.com> 4533 4534 PR c++/5213 4535 * pt.c (convert_template_argument): Be more careful determining 4536 when RECORD_TYPE templates are or are not templates. 4537 45382002-01-02 Nathan Sidwell <nathan@codesourcery.com> 4539 4540 PR c++/775 4541 * cp-tree.h (handle_class_head): Adjust prototype. 4542 * decl2.c (handle_class_head): Add DEFN_P and NEW_TYPE_P 4543 parameters. Use for all class heads. 4544 * parse.y (named_class_head_sans_basetype, named_class_head, 4545 named_complex_class_head_sans_basetype, 4546 named_class_head_sans_basetype_defn, 4547 unnamed_class_head): Remove. 4548 (class_head, class_head_apparent_template): Recognize class heads 4549 (class_head_decl, class_head_defn): New reductions. Process class 4550 heads. 4551 (structsp): Adjust class definition and class declaration 4552 reductions. 4553 (maybe_base_class_list): Give diagnostic on empty list. 4554 45552002-01-02 Nathan Sidwell <nathan@codesourcery.com> 4556 4557 PR c++/4379 4558 * typeck.c (build_x_unary_op): Don't destroy the OFFSET_REF on a 4559 single non-static member. 4560 (unary_complex_lvalue): If it cannot be a pointer to member, don't 4561 make it so. Check it is not pointer to reference. 4562 45632002-01-02 Nathan Sidwell <nathan@codesourcery.com> 4564 4565 PR c++/5132 4566 * decl2.c (reparse_absdcl_as_casts): Don't digest_init if we 4567 are processing a template decl. 4568 45692002-01-02 Nathan Sidwell <nathan@codesourcery.com> 4570 4571 PR c++/5116, c++/764 4572 * call.c (build_new_op): Make sure template class operands are 4573 instantiated. Simplify arglist construction. 4574 4575 4576 4577Copyright (C) 2002 Free Software Foundation, Inc. 4578 4579Copying and distribution of this file, with or without modification, 4580are permitted in any medium without royalty provided the copyright 4581notice and this notice are preserved. 4582