1169689Skan1999-12-31 Mark Mitchell <mark@codesourcery.com> 2169689Skan 3169689Skan * cp-tree.h (VF_NORMAL_VALUE): Remove. 4169689Skan * class.c (struct base_info): Remove vfield, vfields, and rtti. 5169689Skan (set_primary_base): New function, split out from ... 6169689Skan (finish_base_struct): ... here. Rename to ... 7169689Skan (determine_primary_base): ... this. Simplify. 8169689Skan (create_vtable_ptr): Tweak accordingly. 9169689Skan (finish_struct_1): Simplify. 10169689Skan 11169689Skan * cp-tree.h (CLASSTYPE_VBASECLASSES): Update documentation. 12169689Skan (CLASSTYPE_N_BASECLASSES): Likewise. 13169689Skan (BINFO_FOR_VBASE): New macro. 14169689Skan (get_vbase_types): Change prototype. 15169689Skan * class.c (build_vbase_path): Use BINFO_FOR_VBASE. 16169689Skan (prepare_fresh_vtable): Likewise. 17169689Skan (finish_vtbls): Likewise. 18169689Skan (get_class_offset_1): Likewise. 19169689Skan (modify_all_indirect_vtables): Likewise. 20169689Skan (build_vbase_pointer_fields): Likewise. 21169689Skan * decl.c (xref_basetypes): Don't set CLASSTYPE_VBASECLASSES here. 22169689Skan * init.c (sort_base_init): Use BINFO_FOR_VBASE. 23169689Skan (expand_member_init): Likewise. 24169689Skan * search.c (get_base_distance): Likewise. 25169689Skan (lookup_field_queue_p): Likewise. 26169689Skan (virtual_context): Likewise. 27169689Skan (get_vbase_types): Don't return a value. Set 28169689Skan CLASSTYPE_VBASECLASSES here. 29169689Skan * typeck.c (get_delta_difference): Use BINFO_FOR_VBASE. 30169689Skan 31169689Skan1999-12-30 Mark Mitchell <mark@codesourcery.com> 32169689Skan 33169689Skan * class.c (fixup_inline_methods): Clear CLASSTYPE_INLINE_FRIENDS. 34169689Skan 35169689Skan1999-12-29 Mark Mitchell <mark@codesourcery.com> 36169689Skan 37169689Skan * class.c (create_vtable_ptr): Put the vtable at the beginning of 38169689Skan the class, not the end, in the new ABI. 39169689Skan * tree.c (propagate_binfo_offsets): Do the right thing for the new 40169689Skan ABI. 41169689Skan 42169689Skan1999-12-29 Mark Mitchell <mark@codesourcery.com> 43169689Skan 44169689Skan * cp-tree.h (lang_type): Add nearly_empty_p. Adjust dummy. 45169689Skan (CLASSTYPE_NEARLY_EMPTY_P): New macro. 46169689Skan * class.c (check_bases): Update CLASSTYPE_NEARLY_EMPTY_P. 47169689Skan (check_field_decls): Likewise. 48169689Skan (check_bases_and_members): Likewise. 49169689Skan 50169689Skan1999-12-28 Mark Mitchell <mark@codesourcery.com> 51169689Skan 52169689Skan * cp-tree.h (do_inline_function_hair): Remove. 53169689Skan * class.c (layout_class_type): New function, split out from 54169689Skan finish_struct_1. 55169689Skan (fixup_pending_inline): Likewise. 56169689Skan (fixup_inline_methods): New function. 57169689Skan * method.c (fixup_pending_inline): Remove. 58169689Skan (do_inline_function_hair): Likewise. 59169689Skan 60169689Skan * decl.c (BOOL_TYPE_SIZE): Bools always have size `1' under the 61169689Skan new ABI. 62169689Skan 63169689Skan * cp-tree.h (lang_type): Replace abstract_virtuals with pure_virtuals. 64169689Skan (CLASSTYPE_ABSTRACT_VIRTUALS): Rename to ... 65169689Skan (CLASSTYPE_PURE_VIRTUALS): ... this. 66169689Skan (lang_decl_flags): Replace abstract_virtual with pure_virtual. 67169689Skan (DECL_ABSTRACT_VIRTUAL_P): Rename to ... 68169689Skan (DECL_PURE_VIRTUAL_P): ... this. 69169689Skan (get_abstract_virtuals): Rename to ... 70169689Skan (get_pure_virtuals): ... this. 71169689Skan * call.c (build_new_method_call): Replace DECL_PURE_VIRTUAL_P with 72169689Skan DECL_ABSTRACT_VIRTUAL_P. Replace CLASSTYPE_ABSTRACT_VIRTUALS with 73169689Skan CLASSTYPE_PURE_VIRTUALS. 74169689Skan * class.c (build_vtable_entry): Likewise. 75169689Skan (finish_struct_bits): Likewise. Call get_pure_virtuals, not 76169689Skan get_abstract_virtuals. 77169689Skan (build_vtbl_initializer): Likewise. 78169689Skan (override_one_vtable): Likewise. 79169689Skan (check_methods): Likewise. 80169689Skan * decl.c (duplicate_decls): Likewise. 81169689Skan (redeclaration_error_message): Likewise. 82169689Skan (lang_mark_tree): Likewise. 83169689Skan * decl2.c (grok_function_init): Likewise. 84169689Skan (import_export_vtable): Likewise. 85169689Skan (import_expor_class): Likewise. 86169689Skan * typeck2.c (abstract_virtuals_error): Likewise. 87169689Skan * xref.c (GNU_xref_member): Likewise. 88169689Skan * search.c (get_abstract_virtuals): Rename to get_pure_virtuals. 89169689Skan 90169689Skan1999-12-26 Zack Weinberg <zack@wolery.cumb.org> 91169689Skan 92169689Skan * cp-tree.h: Replace ENABLE_CHECKING with ENABLE_TREE_CHECKING 93169689Skan throughout. 94169689Skan 95169689Skan1999-12-26 Mark Mitchell <mark@codesourcery.com> 96169689Skan 97169689Skan * decl.c (store_return_init): Use mode of old RTL generated for 98169689Skan DECL_RESULT, not the mode of DECL_RESULT itself. 99169689Skan * semantics.c (finish_named_return_value): Set DECL_UNINLINABLE 100169689Skan for functions that used named return values. 101169689Skan 102169689Skan1999-12-24 Mark Mitchell <mark@codesourcery.com> 103169689Skan 104169689Skan * semantics.c (expand_body): Use 105169689Skan note_deferral_of_defined_inline_function. 106169689Skan 107169689Skan1999-12-22 Mark Mitchell <mark@codesourcery.com> 108169689Skan 109169689Skan * dump.c (dequeue_and_dump): Handle CTOR_STMTs. 110169689Skan 111169689Skan1999-12-22 Alexandre Oliva <oliva@lsd.ic.unicamp.br> 112169689Skan 113169689Skan * error.c (dump_decl): Support named return values. 114169689Skan 115169689Skan1999-12-20 Mark Mitchell <mark@codesourcery.com> 116169689Skan 117169689Skan * cp-tree.h (CLASSTYPE_VFIELD_PARENT): Update comments. 118169689Skan (CLASSTYPE_HAS_PRIMARY_BASE_P): New macro. 119169689Skan (CLASSTYPE_PRIMARY_BINFO): Likewise. 120169689Skan * class.c (check_methods): Don't set TYPE_HAS_COMPLEX_INIT_REF, 121169689Skan TYPE_NEEDS_CONSTRUCTING, and CLASSTYPE_NON_AGGREGATE here. 122169689Skan (check_bases_and_members): Set them here instead. 123169689Skan (create_vtable_ptr): New function, split out from ... 124169689Skan (finish_struct_1): ... here. Use it. Tidy. Use 125169689Skan CLASSTYPE_HAS_PRIMARY_BASE_P and CLASSTYPE_PRIMARY_BINFO. 126169689Skan * search.c (dfs_init_vbase_pointers): Handle seeing TYPE_VFIELD as 127169689Skan the first field in the class. 128169689Skan * tree.c (layout_basetypes): Use CLASSTYPE_N_BASECLASSES. Handle 129169689Skan seeing TYPE_VFIELD as the first field in the class. 130169689Skan 131169689Skan * cp-tree.h (TYPE_VIRTUAL_P): Rename to ... 132169689Skan (TYPE_POLYMORPHIC_P): ... this. 133169689Skan (TYPE_USES_COMPLEX_INHERITANCE): Rename to ... 134169689Skan (TYPE_BASE_CONVS_MAY_REQUIRE_CODE_P): ... this. 135169689Skan (TREE_CALLS_NEW): Remove. 136169689Skan (TREE_MANGLED): Likewise. 137169689Skan * call.c (build_vfield_ref): Use TYPE_BASE_CONVS_MAY_REQUIRE_CODE_P, 138169689Skan and TYPE_POLYMORPHIC_P. 139169689Skan * class.c (check_bases): Likewise. 140169689Skan (finish_base_struct): Likewise. 141169689Skan (finish_struct_bits): Likewise. 142169689Skan (check_for_override): Likewise. 143169689Skan (finish_struct_1): Likewise. 144169689Skan (get_vfield_name): Likewise. 145169689Skan * decl.c (xref_basetypes): Likewise. 146169689Skan * decl2.c (import_export_class): Likewise. 147169689Skan (import_export_decl): Likewise. 148169689Skan * error.c (dump_function_decl): Likewise. 149169689Skan * pt.c (instantiate_class_template): Likewise. 150169689Skan * repo.c (repo_inline_used): Likewise. 151169689Skan * rtti.c (build_headof): Likewise. 152169689Skan (get_tinfo_fn_dynamic): Likewise. 153169689Skan (build_x_typeid): Likewise. 154169689Skan (get_tinfo_var): Likewise. 155169689Skan (build_dynamic_cast_1): Likewise. 156169689Skan (synthesize_tinfo_fn): Likewise. 157169689Skan * search.c (lookup_field_1): Likewise. 158169689Skan (dfs_debug_mark): Likewise. 159169689Skan (maybe_suppress_debug_info): Likewise. 160169689Skan * typeck.c (build_component_ref): Likewise. 161169689Skan (build_component_addr): Likewise. 162169689Skan * typeck2.c (process_init_constructor): Likewise. 163169689Skan 164169689Skan1999-12-20 Nathan Sidwell <nathan@acm.org> 165169689Skan 166169689Skan * typeck.c (strip_all_pointer_quals): New static function. 167169689Skan (build_static_cast): Use it. Don't use at_least_as_qualified_p. 168169689Skan 169169689Skan1999-12-16 Mark Mitchell <mark@codesourcery.com> 170169689Skan 171169689Skan * cp-tree.h (cp_tree_index): Add CPTI_DSO_HANDLE. 172169689Skan (dso_handle_node): New macro. 173169689Skan (flag_use_cxa_atexit): New variable. 174169689Skan (declare_global_var): New function. 175169689Skan (start_anon_func): Remove declaration. 176169689Skan (end_anon_func): Likewise. 177169689Skan * decl.c (get_atexit_node): New function, split out from 178169689Skan destroy_local_static. Handle flag_use_cxa_atexit. 179169689Skan (get_dso_handle_node): Likewise. 180169689Skan (start_cleanup_fn): Renamed from start_anon_func. Moved here from 181169689Skan except.c. Handle flag_use_cxa_atexit. 182169689Skan (end_cleanup_fn): Renamed from end_anon_func. Moved here from 183169689Skan except.c. 184169689Skan (declare_global_var): New variable. 185169689Skan (destroy_local_static): Handle flag_use_cxa_atexit. 186169689Skan * decl2.c (flag_use_cxa_atexit): New variable. 187169689Skan (lang_f_options): Likewise. 188169689Skan * except.c (start_anon_func): Remove. 189169689Skan (end_anon_func): Liekwise. 190169689Skan * lang-options.h: Add -fuse-cxa-atexit and -fno-use-cxa-atexit. 191169689Skan * rtti.c (get_tinfo_var): Use declare_global_var. 192169689Skan 193169689Skan1999-12-16 Mark Mitchell <mark@codesourcery.com> 194169689Skan 195169689Skan * class.c (check_field_decls): Don't return a value. 196169689Skan (avoid_overlap): Moved here from tree.c. 197169689Skan (build_base_fields): Likewise. 198169689Skan (check_bases): New function, split out from finish_base_struct. 199169689Skan (check_bases_and_members): New function, split out from 200169689Skan finish_struct_1. 201169689Skan (struct base_info): Remove cant_have_default_ctor, 202169689Skan cant_have_const_ctor, cant_have_asn_ref. 203169689Skan (finish_base_struct): Split semantic analysis into check_bases. 204169689Skan (finish_struct_methods): Fix bogus assertion. 205169689Skan (check_field_decls): Call finish_struct_anon here. 206169689Skan (build_vbase_pointer_fields): Use CLASSTYPE_N_BASECLASSES. 207169689Skan (finish_struct_1): Use check_bases_and_members. Reorganize. 208169689Skan * cp-tree.h (CLASSTYPE_VBASECLASSES): Improve documentation. 209169689Skan (build_base_fields): Don't declare. 210169689Skan * tree.c (avoid_overlap): Remove. 211169689Skan (build_base_fields): Likewise. 212169689Skan 213169689Skan * optimize.c (struct inline_data): Remove scope_stmt. 214169689Skan (remap_block): Don't use insert_block_after_note. Don't update 215169689Skan scope_stmt. 216169689Skan (expand_call_inline): Don't update scope_stmt. 217169689Skan (optimize_function): Don't initialize scope_stmt. 218169689Skan * semantics.c (expand_stmt): Set NOTE_BLOCK for newly emitted 219169689Skan NOTE_INSN_BLOCK_BEG/NOTE_INSN_BLOCK_END notes. 220169689Skan 221169689Skan1999-12-15 Mark Mitchell <mark@codesourcery.com> 222169689Skan 223169689Skan * class.c (handle_using_decl): Get TYPE_FIELDS and TYPE_METHODS 224169689Skan out of the class, rather than taking them as parameters. 225169689Skan (build_vbase_pointer_fields): Move here from tree.c. 226169689Skan (build_vtbl_or_vbase_field): New function. 227169689Skan (check_methods): Likewise. 228169689Skan (remove_zero_width_bitfields): Likewise. 229169689Skan (add_virtual_function): Use tree_cons instead of temp_tree_cons. 230169689Skan (delete_duplicate_fields_1): Tidy. Don't delete duplicate 231169689Skan USING_DECLs here. 232169689Skan (finish_struct_methods): Handle the case where there are no 233169689Skan methods here. 234169689Skan (get_basefndecls): Use tree_cons instead of temp_tree_cons. 235169689Skan (check_field_decls): Call delete_duplicate_fields here. 236169689Skan (finish_struct_1): Tidy. Use check_methods and 237169689Skan remove_zero_width_bitfields. 238169689Skan * cp-tree.h (build_vbase_pointer_fields): Remove. 239169689Skan * decl.c (grokdeclarator): Use tree_cons instead of 240169689Skan temp_tree_cons. 241169689Skan * decl2.c (qualified_lookup_using_namespace): Use tree_cons 242169689Skan instead of temp_tree_cons. 243169689Skan * lex.c (cons_up_default_function): Remove dead code. 244169689Skan * method.c (fixup_pending_inline): New function, split out from ... 245169689Skan (do_inline_function_hair): ... here. 246169689Skan * tree.c (build_vbase_pointer_fields): Remove. 247169689Skan 248169689Skan1999-12-15 Jason Merrill <jason@casey.cygnus.com> 249169689Skan 250169689Skan * tree.c (walk_tree): Walk operand subtrees in forward order. 251169689Skan * optimize.c (expand_call_inline): Likewise. 252169689Skan (optimize_function): Initialize id->scope_stmt to something useful. 253169689Skan (remap_block): Assume id->scope_stmt has a useful value. 254169689Skan 255169689Skan1999-12-15 Nathan Sidwell <nathan@acm.org> 256169689Skan 257169689Skan * typeck.c (build_c_cast): Expand warning message. Move pointer 258169689Skan alignment warning to after the cast. Don't warn about pointer 259169689Skan alignment when given a pointer to incomplete. 260169689Skan 261169689Skan1999-12-15 Richard Henderson <rth@cygnus.com> 262169689Skan 263169689Skan * cp-tree.h (make_aggr_type): Declare. 264169689Skan * lex.c (cp_make_lang_type): Don't SET_IS_AGGR_TYPE. 265169689Skan (make_aggr_type): New. 266169689Skan 267169689Skan * decl.c (build_typename_type, init_decl_processing): Use it. 268169689Skan (build_ptrmemfunc_type, xref_tag): Likewise. 269169689Skan * except.c (call_eh_info): Likewise. 270169689Skan * init.c (init_init_processing): Likewise. 271169689Skan * pt.c (process_template_parm, lookup_template_class): Likewise. 272169689Skan * rtti.c (expand_class_desc): Likewise. 273169689Skan * semantics.c (begin_class_definition, finish_typeof): Likewise. 274169689Skan * tree.c (copy_template_template_parm): Likewise. 275169689Skan 276169689Skan1999-12-15 Jason Merrill <jason@yorick.cygnus.com> 277169689Skan 278169689Skan * cp-tree.def (TEMPLATE_PARM_INDEX): Calculate size using 279169689Skan sizeof (struct tree_common). 280169689Skan 281169689Skan1999-12-14 Jason Merrill <jason@casey.cygnus.com> 282169689Skan 283169689Skan * optimize.c (expand_call_inline): Set BLOCK_ABSTRACT_ORIGIN on the 284169689Skan outermost block to point to the inlined function decl. 285169689Skan 286169689Skan * error.c (dump_decl): operator==, not operator ==. 287169689Skan (op_to_string): Likewise. 288169689Skan 289169689Skan * decl.c (compute_array_index_type): Handle null name. 290169689Skan 291169689Skan * decl2.c (ambiguous_decl): Fix to match comment. 292169689Skan (lookup_using_namespace): Adjust. 293169689Skan 294169689Skan * decl2.c (import_export_class): Don't ignore dllimport. 295169689Skan 296169689Skan1999-12-14 Mark Mitchell <mark@codesourcery.com> 297169689Skan 298169689Skan * class.c (check_field_decls): Split out from ... 299169689Skan (finish_struct_1): ... here. Use it. Tidy. 300169689Skan 301169689Skan * cp-tree.h (remap_save_expr): Add walk_subtrees parameter. 302169689Skan * optimize.c (copy_body_r): Pass it. 303169689Skan * tree.c (remap_save_expr): Clear walk_subtrees for an 304169689Skan already-handled SAVE_EXPR. 305169689Skan (cp_unsave_r): Pass walk_subtrees to remap_save_expr. 306169689Skan 307169689Skan * dump.c (dequeue_and_dump): Dump DECL_NAMESPACE_ALIAS. 308169689Skan * ir.texi (DECL_NAMESPACE_ALIAS): Document it. 309169689Skan 310169689Skan * error.c (dump_expr): Handle EXPR_WITH_FILE_LOCATION. 311169689Skan 312169689Skan1999-12-14 Mumit Khan <khan@xraylith.wisc.edu> 313169689Skan 314169689Skan * class.c (finish_base_struct): Allow multiple COM base classes 315169689Skan as well as non-COM bases as long as it's not the leftmost. 316169689Skan 317169689Skan1999-12-13 Mumit Khan <khan@xraylith.wisc.edu> 318169689Skan 319169689Skan * lex.c (saving_parse_to_obstack): New global. 320169689Skan (reinit_parse_for_block): Use. 321169689Skan (reinit_parse_for_expr): Use. 322169689Skan (check_newline): Use. 323169689Skan 324169689Skan1999-12-13 Mark Mitchell <mark@codesourcery.com> 325169689Skan 326169689Skan * optimize.c (initialize_inlined_parameters): Take FN to which the 327169689Skan parameters belong as an argument. 328169689Skan (expand_call_inline): Expand calls into the parameter 329169689Skan initializations before pushing the function onto the list of 330169689Skan functions we are presently expanding. 331169689Skan 332169689Skan1999-12-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 333169689Skan 334169689Skan * class.c (get_vtable_name): Use a literal format string and 335169689Skan VTABLE_NAME_PREFIX macro instead of VTABLE_NAME_FORMAT. 336169689Skan (prepare_fresh_vtable): Likewise. 337169689Skan 338169689Skan * cp-tree.h (VTABLE_NAME_PREFIX): Define this instead of 339169689Skan VTABLE_NAME_FORMAT. 340169689Skan 341169689Skan * decl.c (make_rtl_for_local_static): Remove unused variable `type'. 342169689Skan 343169689Skan * init.c (build_vec_init): Initialize variable `try_body'. 344169689Skan 345169689Skan * lex.c (yyerror): Don't call a variadic function with a 346169689Skan non-literal format string. 347169689Skan 348169689Skan * optimize.c (optimize_function): Call memset, not bzero. 349169689Skan 350169689Skan * pt.c (for_each_template_parm_r): Add static prototype. 351169689Skan 352169689Skan1999-12-09 Andreas Jaeger <aj@suse.de> 353169689Skan 354169689Skan * except.c (expand_throw): Add static attribute to match 355169689Skan prototype. 356169689Skan 357169689Skan * Makefile.in (semantics.o): Add dependency on output.h. 358169689Skan * semantics.c: Include output.h for declaration of 359169689Skan make_function_rtl. 360169689Skan 361169689Skan1999-12-09 Mark Mitchell <mark@codesourcery.com> 362169689Skan 363169689Skan * decl.c (init_decl_processing): Reenable inlining on trees. 364169689Skan (finish_function): Likewise. 365169689Skan * expr.c (cplus_expand_expr): Don't handle AGGR_INIT_EXPR here. 366169689Skan * semantics.c (simplify_aggr_init_exprs): New function. 367169689Skan (expand_body): Use it. 368169689Skan * tree.c (walk_tree): Special-case TARGET_EXPRs since they 369169689Skan sometimes present the same sub-tree twice. 370169689Skan 371169689Skan * dump.c (dequeue_and_dump): Abbreviate `class' as `cls', not 372169689Skan `csl'. 373169689Skan 374169689Skan * semantics.c (finish_switch_cond): Do conversions here, not ... 375169689Skan * typeck.c (c_expand_start_case): Here. 376169689Skan 377169689Skan * semantics.c (do_poplevel): Remove unused variable. 378169689Skan 379169689Skan1999-12-06 Mark Mitchell <mark@codesourcery.com> 380169689Skan 381169689Skan * tree.c (walk_tree): Don't recurse into DECL_INITIAL or DECL_SIZE 382169689Skan unless we're declaring the variable in question. 383169689Skan 384169689Skan1999-12-06 Mark Mitchell <mark@codesourcery.com> 385169689Skan 386169689Skan * decl.c (init_decl_processing): #if 0 last patch. 387169689Skan (finish_function): Likewise. 388169689Skan 389169689Skan1999-12-05 Mark Mitchell <mark@codesourcery.com> 390169689Skan 391169689Skan * decl.c (init_decl_processing): Set flag_inline_trees if 392169689Skan !flag_no_inline. 393169689Skan 394169689Skan * cp-tree.h (calls_setjmp_p): Declare. 395169689Skan * decl.c (finish_function): Mark functions that call setjmp as 396169689Skan uninlinable. 397169689Skan * optimize.c (calls_setjmp_r): New function. 398169689Skan (calls_setjmp_p): Likewise. 399169689Skan 400169689Skan1999-12-04 Mark Mitchell <mark@codesourcery.com> 401169689Skan 402169689Skan * optimize.c (expand_call_inline): Wrap the expanded call in an 403169689Skan EXPR_WITH_FILE_LOCATION node to get correct line numbers for 404169689Skan inlined functions. 405169689Skan 406169689Skan * optimize.c (inline_data): Remove fns_top. Add scope_stmt. Add 407169689Skan in_target_cleanup_p. 408169689Skan (remap_decl): New function. 409169689Skan (remap_block): Likewise. 410169689Skan (copy_scope_stmt): Likewise. 411169689Skan (copy_body_r): Use remap_decl and copy_scope_stmt. 412169689Skan (copy_body): Use VARRAY_TOP_TREE. 413169689Skan (initialize_inlined_parameters): Likewise. 414169689Skan (declare_return_variable): Likewise. 415169689Skan (inlinable_function_p): Check flag_inline_trees. 416169689Skan (expand_call_inline): Handle SCOPE_STMTs and TARGET_EXPRs 417169689Skan specially. Use VARRAY_PUSH_TREE. Create a BLOCK for the 418169689Skan parameters of the inlined function. 419169689Skan (optimize_function): Prevent recursion into partially complete 420169689Skan functions. 421169689Skan 422169689Skan * cp-tree.def (SCOPE_STMT): Take one operand. 423169689Skan * cp-tree.h (SCOPE_STMT_BLOCK): New macro. 424169689Skan (SCOPE_NULLIFIED_P): Redefine. 425169689Skan (SCOPE_NO_CLEANUPS_P): New macro. 426169689Skan (add_scope_stmt): Change prototype. 427169689Skan * decl.c (poplevel): Tidy. Warn about unused variables here. 428169689Skan Record SCOPE_STMT_BLOCKs. 429169689Skan (finish_function): Keep DECL_INITIAL for functions that might be 430169689Skan inlined. 431169689Skan * ir.texi: Document SCOPE_NO_CLEANUPS_P. 432169689Skan * semantics.c: Include rtl.h. 433169689Skan (add_scope_stmt): Return the new scope statement and, for an 434169689Skan end-of-scope statement, its matching begin statement. Don't set 435169689Skan SCOPE_NULLIFIED_P. 436169689Skan (do_pushlevel): Simplify, now that we are always 437169689Skan function-at-a-time. 438169689Skan (do_poplevel): Likewise. Record SCOPE_STMT_BLOCKs. 439169689Skan (expand_stmt): Don't call expand_start_bindings or 440169689Skan expand_end_bindings for a scope with SCOPE_NO_CLEANUPS_P set. 441169689Skan * tree.c (copy_tree_r): Clear SCOPE_STMT_BLOCK rather than setting 442169689Skan SCOPE_NULLIFIED_P. 443169689Skan * Makefile.in (semantics.o): Depend on RTL_H. 444169689Skan 445169689Skan * decl2.c (pending_statics_used): Make it a macro. 446169689Skan (saved_inlines_used): Likewise. 447169689Skan (finish_static_data_member_decl): Use VARRAY_PUSH_TREE. 448169689Skan (mark_inline_for_output): Likewise. 449169689Skan (ssdf_decls_used): Remove. 450169689Skan (start_static_storage_duration_function): Use VARRAY_PUSH_TREE. 451169689Skan (generate_ctor_or_dtor_function): Adjust accordingly. 452169689Skan 453169689Skan1999-11-24 Geoffrey Keating <geoffk@cygnus.com> 454169689Skan Greg McGary <gkm@gnu.org> 455169689Skan 456169689Skan * decl.c (duplicate_decls): Merge 457169689Skan DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT, 458169689Skan DECL_NO_CHECK_MEMORY_USAGE, DECL_NO_LIMIT_STACK. 459169689Skan 460169689Skan1999-12-02 Mike Stump <mrs@wrs.com> 461169689Skan 462169689Skan * init.c (perform_member_init): Handle parse errors better. 463169689Skan 464169689Skan1999-12-01 Mark Mitchell <mark@codesourcery.com> 465169689Skan 466169689Skan * cp-tree.h (min_tree_cons): Remove. 467169689Skan (scratch_ovl_cons): Likewise. 468169689Skan * decl.c (saveable_obstack): Don't declare. 469169689Skan (duplicate_decls): Tweak error-message. 470169689Skan (initialize_local_var): Explicitly mark the definition as static. 471169689Skan (finish_function): Call permanent_allocation, just so 472169689Skan that the middle-end sees the obstacks it expects. 473169689Skan (mark_cp_function_context): Likewise. 474169689Skan * init.c (build_new): Don't use min_tree_cons. 475169689Skan * lex.c (permanent_obstack): Don't declare. 476169689Skan (current_obstack, saveable_obstack): Likewise. 477169689Skan * spew.c (current_obstack, saveable_obstack): Likewise. 478169689Skan * tree.c (current_obstack, saveable_obstack): Likewise. 479169689Skan (scratch_ovl_cons): Remove. 480169689Skan (build_min_nt): Don't mess with obstacks. 481169689Skan (build_min): Likewise. 482169689Skan (min_tree_cons): Remove 483169689Skan * typeck.c (build_component_ref): Don't use scratch_ovl_cons. 484169689Skan (build_x_function_call): Likewise. 485169689Skan (build_c_cast): Don't use min_tree_cons. 486169689Skan 487169689Skan1999-11-29 Mark Mitchell <mark@codesourcery.com> 488169689Skan 489169689Skan * pt.c (tsubst_decl): Robustify. 490169689Skan 491169689Skan1999-11-27 Mark Mitchell <mark@codesourcery.com> 492169689Skan 493169689Skan * decl2.c (finish_file): Call expand_body for inline functions 494169689Skan that will be written out but that do not yet have RTL. 495169689Skan * semantics.c (expand_body): Do not generate RTL For inline 496169689Skan functions that do not yet need to be written out. 497169689Skan 498169689Skan1999-11-25 Mark Mitchell <mark@codesourcery.com> 499169689Skan 500169689Skan * Make-lang.in (CXX_SRCS): Add optimize.c. 501169689Skan * Makefile.in (CXX_OBJS): Add optimize.o. 502169689Skan (CXX_TREE_H): Add splay-tree.h, system.h, and $(CONFIG_H). 503169689Skan (spew.o, lex.o, decl.o, decl2.o, typeck2.o, typeck.o): Adjust. 504169689Skan (class.o, call.o, friend.o, init.o, method.o, cvt.o): Likewise. 505169689Skan (search.o, tree.o, ptree.o, rtti.o, except.o, expr.o): Likewise. 506169689Skan (xref.o, pt.o, error.o, errfn.o, repo.o, semantics.o): Likewise. 507169689Skan (dump.o): Likewise. 508169689Skan (optimize.o): New target. 509169689Skan * class.c: Don't include splay-tree.h. 510169689Skan * cp-tree.def (CTOR_COMPLETE): Rename to CTOR_STMT. 511169689Skan * cp-tree.h: Include splay-tree.h. 512169689Skan (DECL_UNINLINABLE): New macro. 513169689Skan (CTOR_BEGIN_P, CTOR_END_P): New macros. 514169689Skan (flag_inline_trees): New variable. 515169689Skan (local_variable_p): New function. 516169689Skan (nonstatic_local_decl_p): Likewise. 517169689Skan (optimize_function): Likewise. 518169689Skan (cplus_unsave_expr_now): Remove. 519169689Skan (copy_tree_r): Declare. 520169689Skan (remap_save_expr): Likewise. 521169689Skan * decl.c (local_variable_p): Don't 522169689Skan make it static. 523169689Skan (local_variable_p_walkfn): New function. 524169689Skan (make_rtl_for_local_static): Remove code to try to avoid writing 525169689Skan out static constants. 526169689Skan (emit_local_var): Fix indentation. 527169689Skan (nonstatic_local_decl_p): New function. 528169689Skan (check_default_argument): Use local_variable_p_walkfn, not 529169689Skan local_variable_p, when walking the tree. 530169689Skan (start_function): Set the DECL_CONTEXT for automatically generated 531169689Skan labels. 532169689Skan (finish_constructor_body): Use CTOR_STMT to mark the end of a 533169689Skan constructor. 534169689Skan * decl2.c: Don't include splay-tree.h. 535169689Skan (flag_inline_trees): Define. 536169689Skan * dump.c: Don't include 537169689Skan splay-tree.h. 538169689Skan * except.c (expand_end_catch_block): Fix comment formatting. 539169689Skan (expand_end_eh_spec): Set DECL_CONTEXT on temporary variables. 540169689Skan (expand_throw): Tidy comment. 541169689Skan * init.c (build_vec_delete_1): Use create_temporary_var. 542169689Skan * lex.c (cplus_tree_code_type): Make it static. 543169689Skan (cplus_tree_code_length): Likewise. 544169689Skan (cplus_tree_code_name): Likewise. 545169689Skan * optimize.c: New file. 546169689Skan * semantics.c (finish_goto_stmt): Set DECL_UNLINABLE for functions 547169689Skan with computed gotos. 548169689Skan (setup_vtbl_ptr): Mark the beginnings of constructors with 549169689Skan CTOR_STMT. 550169689Skan (expand_stmt): Handle CTOR_STMT, not CTOR_COMPLETE. 551169689Skan (expand_body): Call optimize_function. Save bodies if we're doing 552169689Skan inlining on trees. 553169689Skan * tree.c: Don't include splay-tree.h. Include insn-config.h and 554169689Skan integrate.h. 555169689Skan (copy_tree_r): Make it public. 556169689Skan (statement_code_p): New function. 557169689Skan (mark_local_for_remap_r): Likewise. 558169689Skan (cp_usave_r): Likewise. 559169689Skan (cp_unsave): Likewise. 560169689Skan (build_cplus_new): Set DECL_CONTEXT for temporary variables. 561169689Skan (walk_tree): Walk into `s' class nodes. Walk statement chains. 562169689Skan (copy_tree_r): Handle 's' class nodes. Restore chains for 563169689Skan statements. Nullify scopes. Don't copy types. 564169689Skan (init_tree): Set lang_unsave to cp_unsave. 565169689Skan (remap_save_expr): Define. 566169689Skan * ir.texi: Document CTOR_STMT. 567169689Skan 568169689Skan1999-11-24 Jason Merrill <jason@casey.cygnus.com> 569169689Skan 570169689Skan * search.c (note_debug_info_needed): Do perform this optimization 571169689Skan for dwarf2. 572169689Skan (maybe_suppress_debug_info): Likewise. Start by clearing 573169689Skan TYPE_DECL_SUPPRESS_DEBUG. 574169689Skan 575169689Skan1999-11-24 Mark Mitchell <mark@codesourcery.com> 576169689Skan 577169689Skan * pt.c (tsubst_decl): Copy TREE_ASM_WRITTEN for VAR_DECLs. 578169689Skan 579169689Skan * decl2.c (finish_vtable_vardecl): Don't prune vtables here. 580169689Skan 581169689Skan1999-11-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 582169689Skan 583169689Skan * decl.c (pushdecl, grokdeclarator): Don't call a variadic 584169689Skan function with a non-literal format string. 585169689Skan 586169689Skan * lex.c (do_identifier): Likewise. 587169689Skan 588169689Skan * typeck.c (build_unary_op): Likewise. 589169689Skan 590169689Skan1999-11-23 Mark Mitchell <mark@codesourcery.com> 591169689Skan 592169689Skan * cp-tree.h (DECL_NEEDED_P): Tweak to match documentation. 593169689Skan 594169689Skan1999-11-22 Mark Mitchell <mark@codesourcery.com> 595169689Skan 596169689Skan * cp-tree.def (CTOR_COMPLETE): New tree node. 597169689Skan * decl.c (finish_constructor_body): Add it, to mark the end of the 598169689Skan constructor. 599169689Skan (finish_function): Don't call end_protect_partials here. 600169689Skan * ir.texi (CTOR_COMPLETE): Document it. 601169689Skan * semantics.c (expand_stmt): Handle it. 602169689Skan 603169689Skan * cp-tree.def (FUNCTION_NAME): New tree node. 604169689Skan * cp-tree.h (current_function_name_declared): Tweak documentation. 605169689Skan (lang_decl_flags): Add pretty_function_p, adjust dummy. 606169689Skan (DECL_PRETTY_FUNCTION_P): New macro. 607169689Skan * decl.c (cp_finish_decl): Handle declarations of __FUNCTION__, 608169689Skan etc., in a template function. Use at_function_scope_p instead of 609169689Skan expanding it inline. 610169689Skan * pt.c (tsubst_decl): Handle DECL_PRETTY_FUNCTION_P declarations 611169689Skan specially. 612169689Skan (tsubst): Handle FUNCTION_NAME. 613169689Skan (tsubst_copy): Likewise. 614169689Skan (instantiate_decl): Prevent redeclarations of __PRETTY_FUNCTION__, 615169689Skan etc. in instantiation. 616169689Skan * semantics.c (begin_compound_stmt): Declare __FUNCTION__, etc., 617169689Skan even in template functions. 618169689Skan (setup_vtbl_ptr): Don't declare __PRETTY_FUNCTION in the 619169689Skan conditional scope at the top of a destructor. 620169689Skan 621169689Skan * error.c (dump_function_decl): Use `[ with ... ]' syntax for 622169689Skan specializations too. 623169689Skan 624169689Skan1999-11-22 Nathan Sidwell <nathan@acm.org> 625169689Skan 626169689Skan * semantics.c (finish_unary_op_expr): Only set TREE_NEGATED_INT 627169689Skan when actually negative. 628169689Skan 629169689Skan * typeck.c (convert_for_assignment): Expand comment about 630169689Skan strange NULL check, moved from ... 631169689Skan (convert_for_initialization): ... here. Remove unneeded 632169689Skan code. 633169689Skan 634169689Skan1999-11-21 Alexandre Oliva <oliva@lsd.ic.unicamp.br> 635169689Skan 636169689Skan * cp-tree.h (build_vec_delete): Remove `auto_delete' argument. 637169689Skan * init.c (build_vec_delete, build_vec_delete_1): Likewise. 638169689Skan Always destruct virtual bases of array components, but never 639169689Skan delete them. 640169689Skan (build_vec_init): Adjust invocations. 641169689Skan (build_delete): Likewise. 642169689Skan * decl2.c (delete_sanity): Likewise. 643169689Skan 644169689Skan1999-11-19 Nathan Sidwell <nathan@acm.org> 645169689Skan 646169689Skan * cp-tree.h (grok_method_quals): Return this pointer qualifiers. 647169689Skan * decl.c (grokdeclarator): Adjust calls to grok_method_quals. 648169689Skan * decl2.c (grok_method_quals): Accept `restrict' as applying to 649169689Skan the object pointer. Return such qualifiers. 650169689Skan (grokclassfn): Apply this pointer qualifiers. Cleanup unused 651169689Skan variables. 652169689Skan 653169689Skan1999-11-18 Mark Mitchell <mark@codesourcery.com> 654169689Skan 655169689Skan * except.c (expand_end_catch_block): Fix typo. 656169689Skan (expand_exception_blocks): Simplify. Don't call 657169689Skan expand_leftover_cleanups. 658169689Skan 659169689Skan1999-11-15 Jason Merrill <jason@casey.cygnus.com> 660169689Skan 661169689Skan * cp-tree.h, decl.c (compute_array_index_type): Make nonstatic. 662169689Skan * pt.c (tsubst, case INTEGER_TYPE): Call it. 663169689Skan Check uses_template_parms. 664169689Skan 665169689Skan * class.c (finish_struct): If we're a local class in a template 666169689Skan function, add a TAG_DEFN. 667169689Skan * pt.c (lookup_template_class): If this is a local class in a 668169689Skan template function, call pushtag. 669169689Skan (tsubst_expr, case TAG_DEFN): Handle classes, too. 670169689Skan 671169689Skan Emit debug info with the vtable. 672169689Skan * search.c (maybe_suppress_debug_info): New function... 673169689Skan * class.c (finish_struct_1): ...split out from here. 674169689Skan * cp-tree.h: Declare it. 675169689Skan * decl2.c (finish_vtable_vardecl): Override TYPE_DECL_SUPPRESS_DEBUG 676169689Skan if we're writing out the vtable. 677169689Skan * decl.c, search.c (dfs_debug_mark, dfs_debug_unmarked_p, 678169689Skan note_debug_info_needed): #if 0 out. 679169689Skan 680169689Skan1999-11-14 Mark Mitchell <mark@codesourcery.com> 681169689Skan 682169689Skan * cp-tree.h (DECL_LOCAL_FUCNTION_P): New macro. 683169689Skan * call.c (equal_functions): Use DECL_LOCAL_FUCNTION_P, not 684169689Skan TREE_PERMANENT. 685169689Skan * decl.c (pushdecl): Set DECL_LOCAL_FUNCTION_P. 686169689Skan * decl2.c (lookup_arg_dependent): Use it. 687169689Skan 688169689Skan * cp-tree.h (cp_finish_decl): Change prototype. 689169689Skan (finish_static_data_member_decl): Likewise. 690169689Skan (push_permanent_obstack): Remove declaration. 691169689Skan (push_expression_obstack): Likewise. 692169689Skan (push_scratch_obstack): Likewise. 693169689Skan (DECL_TEMPLATE_PARM_P): Robustify. 694169689Skan (SET_DECL_TEMPLATE_PARM_P): New macro. 695169689Skan * class.c (add_method): Don't manipulate obstacks. 696169689Skan (finish_vtbls): Likewise. 697169689Skan * cvt.c (build_up_reference): Adjust calls to cp_finish_decl. 698169689Skan * decl.c (binding_for_name): Don't manipulate obstacks. 699169689Skan (maybe_push_to_top_level): Likewise. 700169689Skan (pop_from_top_level): Likewise. 701169689Skan (duplicate_decls): Likewise. 702169689Skan (pushdecl): Likewise. 703169689Skan (implicitly_declare): Likewise. 704169689Skan (build_typename_type): Likewise. 705169689Skan (start_decl): Likewise. 706169689Skan (cp_finish_decl): Likewise. 707169689Skan (finish_decl): Likewise. 708169689Skan (destroy_local_static): Likewise. 709169689Skan (expand_static_init): Likewise. 710169689Skan (complete_array_type): Likewise. 711169689Skan (grokvardecl): Likewise. 712169689Skan (build_ptrmemfnc_type): Likewise. 713169689Skan (grokdeclarator): Likewise. 714169689Skan (xref_tag): Likewise. 715169689Skan (xref_basetypes): Likewise. 716169689Skan (start_enum): Likewise. 717169689Skan (finish_enum): Likewise. 718169689Skan (start_function): Likewise. 719169689Skan (finish_function): Likewise. 720169689Skan (start_method): Adjust call to cp_finish_decl. 721169689Skan * decl2.c (finish_static_data_member_decl): Don't manipulate 722169689Skan obstacks. 723169689Skan (grokfield): Likewise. 724169689Skan (grokbitfield): Likewise. 725169689Skan (get_temp_name): Likewise. 726169689Skan (get_sentry): Likewise. 727169689Skan (fnish_file): Likewise. 728169689Skan (lookup_arg_dependent): Likewise. 729169689Skan * except.c (call_eh_info): Likewise. 730169689Skan (push_eh_info): Likewise. 731169689Skan (do_pop_exception): Likewise. 732169689Skan (initialize_handler_parm): Likewise. 733169689Skan (expand_end_eh_spec): Likewise. 734169689Skan (alloc_eh_object): Likewise. 735169689Skan (expand_throw): Likewise. 736169689Skan * expr.c (extract_scalar_init): Likewise. 737169689Skan * init.c (build_java_class_ref): Likewise. 738169689Skan * lex.c (get_time_identifier): Likewise. 739169689Skan (snarf_defarg): Likewise. 740169689Skan (add_defarg_fn): Likewise. 741169689Skan (is_global): Simplify. 742169689Skan (do_identifier): Don't check TREE_PERMANENT. 743169689Skan * method.c (emit_thunk): Don't manipulate obstacks. 744169689Skan * parse.y (condition): Adjust call to cp_finish_decl. 745169689Skan (primary): Likewise. 746169689Skan (initdcl): Likewise. 747169689Skan (initdcl0_innards): Likewise. 748169689Skan (nomods_initdcl0): Likewise. 749169689Skan * pt.c (push_inline_template_parms_recursive): Use 750169689Skan SET_DECL_TEMPLATE_PARM_P. 751169689Skan (process_template_parm): Likewise. 752169689Skan (lookup_template_class): Don't manipulate obstacks. 753169689Skan (instantiate_class_template): Adjust call to 754169689Skan finish_static_data_member_decl. 755169689Skan (tsubst_decl): Don't manipulate obstacks. 756169689Skan (tsubst_expr): Likewise. 757169689Skan (instantiate_template): Likewise. 758169689Skan (instantiate_decl): Adjust calls to cp_finish_decl. 759169689Skan * rtti.c (call_void_fn): Don't manipulate obstacks. 760169689Skan (get_tinfo_var): Likewise. 761169689Skan (get_tinfo_fn_unused): Likewise. 762169689Skan (build_dynamic_cast_1): Likewise. 763169689Skan (expand_si_desc): Likewise. 764169689Skan (expand_class_desc): Likewise. 765169689Skan (expand_ptr_desc): Likewise. 766169689Skan (expand_attr_desc): Likewise. 767169689Skan (expand_generic_desc): Likewise. 768169689Skan (synthesize_tinfo_fn): Likewise. 769169689Skan * search.c (expand_upcast_fixups): Likewise. 770169689Skan * semantics.c (finish_asm_stmt): Likewise. 771169689Skan (finish_named_return_value): Likewise. 772169689Skan (begin_class_definition): Likewise. 773169689Skan (finish_class_definition): Likewise. 774169689Skan (finish_typeof): Likewise. 775169689Skan * tree.c (build_cplus_method_type): Likewise. 776169689Skan (reverse_path): Likewise. 777169689Skan (copy_template_template_parm): Likewise. 778169689Skan (build_expr_ptr_wrapper): Likewise. 779169689Skan (push_expression_obstack): Remove. 780169689Skan (push_permanent_obstack): Likewise. 781169689Skan * typeck.c (mark_addressable): Likewise. 782169689Skan 783169689Skan1999-11-13 Mark Mitchell <mark@codesourcery.com> 784169689Skan 785169689Skan * call.c (build_conditional_expr): Use build_target_expr_with_type. 786169689Skan (convert_like): Likewise. 787169689Skan (build_over_call): Likewise. 788169689Skan * cp-tree.h (build_target_expr): Remove. 789169689Skan (build_target_expr_with_type): New function. 790169689Skan * cvt.c (build_up_reference): Use get_target_expr. 791169689Skan * decl.c (build_target_expr): Move to ... 792169689Skan * tree.c (build_target_expr): Here. Make it static. 793169689Skan (build_target_expr_with_type): New function. Set DECL_CONTEXT on 794169689Skan the temporary VAR_DECLs. 795169689Skan (get_target_expr): Use it. 796169689Skan 797169689Skan1999-11-13 Jason Merrill <jason@yorick.cygnus.com> 798169689Skan 799169689Skan * decl.c (duplicate_decls): Propagate DECL_DEFER_OUTPUT. 800169689Skan * decl2.c (comdat_linkage): Set DECL_DEFER_OUTPUT. 801169689Skan * rtti.c (get_tinfo_fn_unused): Split out from get_tinfo_fn. 802169689Skan * class.c (set_rtti_entry): Use it. 803169689Skan 804169689Skan1999-11-12 Mark Mitchell <mark@codesourcery.com> 805169689Skan 806169689Skan * decl.c (cplus_expand_expr_stmt): Don't call break_out_cleanups 807169689Skan here. 808169689Skan * semantics.c (finish_expr_stmt): Call it here instead. Move 809169689Skan default_conversion logic to semantic-analysis time. 810169689Skan 811169689Skan1999-11-12 Jason Merrill <jason@yorick.cygnus.com> 812169689Skan 813169689Skan * rtti.c (synthesize_tinfo_fn): Set DECL_DEFER_OUTPUT. 814169689Skan 815169689SkanFri Nov 12 12:56:32 MST 1999 Diego Novillo <dnovillo@cygnus.com> 816169689Skan 817169689Skan * init.c (init_init_processing): Re-instated Nov 11 patch after 818169689Skan approval. 819169689Skan 820169689SkanFri Nov 12 10:42:02 MST 1999 Diego Novillo <dnovillo@cygnus.com> 821169689Skan 822169689Skan * init.c (init_init_processing): Undo patch from Nov 11, 1999. 823169689Skan Patch had not been approved yet. 824169689Skan 825169689Skan1999-11-12 Mark Mitchell <mark@codesourcery.com> 826169689Skan 827169689Skan * decl.c (compute_array_index_type): New function, split out from 828169689Skan grokdeclarator. 829169689Skan (create_array_type_for_decl): Likewise. 830169689Skan (grokdeclarator): Use them. 831169689Skan 832169689Skan * semantics.c (expand_stmt): Don't suspend_momentary or 833169689Skan resume_momentary. 834169689Skan 835169689SkanThu Nov 11 12:42:11 MST 1999 Diego Novillo <dnovillo@cygnus.com> 836169689Skan 837169689Skan * init.c (init_init_processing): Header information for 838169689Skan arrays allocated via `new' should have the same alignment used by 839169689Skan malloc. 840169689Skan 841169689Skan1999-11-10 Mark Mitchell <mark@codesourcery.com> 842169689Skan 843169689Skan * error.c (dump_function_name): Don't crash if given a friend 844169689Skan pseudo-instantiation. 845169689Skan 846169689Skan * cp-tree.h (build_enumerator): Change prototype. 847169689Skan * decl.c (enum_next_value): Remove. 848169689Skan (enum_overflow): Likewise. 849169689Skan (init_decl_processing): Don't register enum_next_value as a root. 850169689Skan (start_enum): Clear TYPE_VALUES for a redefined enum. 851169689Skan (finish_enum): Reset the type of enumeration constants. 852169689Skan (build_enumerator): Fix indentation. Don't copy CONST_DECLs when 853169689Skan we don't need to. Maintain the TYPE_VALUES list and look there 854169689Skan for the previously defined enumeration constant. Let enumeration 855169689Skan constants have the type of their values until the enumeration type 856169689Skan is complete. 857169689Skan * parse.y (enumlist_opt, enumlist, enumerator): Don't return a value. 858169689Skan (structsp): Adjust. 859169689Skan * parse.c: Regenerated. 860169689Skan * pt.c (tsubst_enum): Adjust according to build_enumerator changes. 861169689Skan 862169689SkanWed Nov 10 12:43:21 1999 Philippe De Muyter <phdm@macqel.be> 863169689Skan Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 864169689Skan 865169689Skan * cp-tree.h: Test `GCC_VERSION', not `HAVE_GCC_VERSION'. 866169689Skan 867169689Skan1999-11-09 Mark Mitchell <mark@codesourcery.com> 868169689Skan 869169689Skan * cp-tree.h (language_function): Remove x_last_dtor_insn and 870169689Skan x_last_parm_cleanup_insn. 871169689Skan * decl.c (last_dtor_insn): Remove. 872169689Skan (last_parm_cleanup_insn): Likewise. 873169689Skan (expand_start_early_try_stmts): Don't set them. 874169689Skan (store_parm_decls): Likewise. 875169689Skan (save_function_data): Or save them. 876169689Skan (mark_lang_function): Or mark them. 877169689Skan 878169689Skan1999-11-08 Mark Mitchell <mark@codesourcery.com> 879169689Skan 880169689Skan * decl.c (store_parm_decls): Generate cleanup code at 881169689Skan semantic-analysis time. Destroy objects in the correct order. 882169689Skan 883169689Skan1999-11-07 Mark Mitchell <mark@codesourcery.com> 884169689Skan 885169689Skan * cp-tree.h (begin_new_placement): Remove. 886169689Skan (finish_new_placement): Likewise. 887169689Skan * class.c (finish_struct_1): Don't suspend_momentary or 888169689Skan resume_momentary. 889169689Skan * decl.c (grokdeclarator): Likewise. 890169689Skan (maybe_build_cleanup_1): Likewise. 891169689Skan * except.c (push_eh_cleanup): Likewise. 892169689Skan (build_terminate_handler): Likewise. 893169689Skan * init.c (build_new_1): Likewise. 894169689Skan * parse.y (parse_decl): Change prototype. 895169689Skan (initdecls, notype_initdecls, initdcl): Don't return int. 896169689Skan (initdcl0, notype_initdcl0, initdcl0_innards): Likewise. 897169689Skan (.begin_new_placement): Remove. 898169689Skan (.finish_new_placement): Likewise. 899169689Skan (nonmomentary_expr): Likewise. 900169689Skan (suspend_mom): Likewise. 901169689Skan (condition): Don't suspend_momentary, resume_momentary, or keep 902169689Skan track of need to resume. 903169689Skan (unary_expr): Likewise. 904169689Skan (new_placement): Likewise. 905169689Skan (decl): Likewise. 906169689Skan (structsp): Likewise. 907169689Skan (new_type_id): Likewise. 908169689Skan (maybe_parmlist): Likewise. 909169689Skan (direct_after_type_declaration): Likewise. 910169689Skan (direct_new_declarator): Likewise. 911169689Skan (direct_abstract_declaration): Likewise. 912169689Skan * parse.c: Regenerated. 913169689Skan * pt.c (tsubst_expr): Don't suspend_momentary or resume_momentary. 914169689Skan * semantics.c (begin_new_placement): Remove. 915169689Skan (finish_new_placement): Likewise. 916169689Skan 917169689Skan1999-11-05 Martin v. L�wis <loewis@informatik.hu-berlin.de> 918169689Skan 919169689Skan * cp-tree.h (VAR_TEMPL_TYPE_OR_FUNCTION_DECL_CHECK): New macro. 920169689Skan (DECL_TEMPLATE_INFO): Use it. 921169689Skan * decl.c (warn_extern_redeclared_static): Do nothing for 922169689Skan TEMPLATE_DECLs. 923169689Skan * decl2.c (mark_used): Explicitly check for function or variable. 924169689Skan * semantics.c (finish_unary_op_expr): Check whether result is also 925169689Skan an INTEGER_CST. 926169689Skan 927169689Skan1999-11-05 Mark Mitchell <mark@codesourcery.com> 928169689Skan 929169689Skan * Makefile.in (typeck2.o): Depend on output.h. 930169689Skan * typeck2.c: Include output.h. 931169689Skan 932169689Skan * decl.c (flag_ansi): Remove declaration. 933169689Skan 934169689Skan * pt.c (tinst_level_tick): Make it static. 935169689Skan (last_template_error_tick): Likewise. 936169689Skan 937169689Skan * cp-tree.h (mapcar): Remove declaration. 938169689Skan (search_tree): Likewise. 939169689Skan (walk_tree_fn): New typedef. 940169689Skan (walk_tree): New function. 941169689Skan * tree.c (bot_manip): Change prototype. Adjust to be called via 942169689Skan walk_tree. 943169689Skan (bot_replace): Likewise. 944169689Skan (no_linkage_helper): Likewise. 945169689Skan (copy_tree_r): New function. 946169689Skan (search_tree): Rename, and adjust, to become ... 947169689Skan (walk_tree): New function. 948169689Skan (mapcar): Remove. 949169689Skan (target_remap): Remove. 950169689Skan (target_remap_count): Likewise. 951169689Skan (break_out_target_exprs): Use walk_tree. 952169689Skan * decl.c (local_variable_p): Change prototype. 953169689Skan (check_default_argument): Use walk_tree. 954169689Skan * pt.c (for_each_template_parm_r): New function, split out from ... 955169689Skan (for_each_template_parm): Here. Use it, via walk_tree. 956169689Skan 957169689Skan1999-11-03 Mark Mitchell <mark@codesourcery.com> 958169689Skan 959169689Skan * class.c (check_bitfield_decl): New function, split out from 960169689Skan finish_stuct_1. 961169689Skan (check_field_decl): Likewise. Recursively examine members of 962169689Skan anonymous structs. 963169689Skan (finish_struct_1): Use them. 964169689Skan * cp-tree.h (ANON_UNION_TYPE_P): New macro. 965169689Skan 966169689Skan1999-11-02 Mark Mitchell <mark@codesourcery.com> 967169689Skan 968169689Skan * decl.c (grokfndecl): Remove dead code. 969169689Skan 970169689Skan * dump.c (dequeue_and_dump): Fix thinko for catch-clauses. 971169689Skan 972169689Skan1999-11-02 Scott Snyder <snyder@fnal.gov> 973169689Skan 974169689Skan * decl2.c (build_expr_from_tree): Handle REALPART_EXPR and 975169689Skan IMAGPART_EXPR. 976169689Skan * pt.c (tsubst_copy): Likewise. 977169689Skan 978169689Skan1999-11-01 Jason Merrill <jason@yorick.cygnus.com> 979169689Skan 980169689Skan * decl2.c (maybe_make_one_only): Always make things comdat on 981169689Skan ELF targets, too. 982169689Skan 983169689Skan1999-10-31 Mark Mitchell <mark@codesourcery.com> 984169689Skan 985169689Skan * decl.c (finish_function): Call free_after_parsing for functions 986169689Skan we are not immediately turning into RTL. 987169689Skan 988169689Skan1999-10-31 Brendan Kehoe <brendan@cygnus.com> 989169689Skan 990169689Skan * cp-tree.h (flag_dump_translation_unit): Add decl. 991169689Skan 992169689SkanSat Oct 30 22:42:50 1999 Stephen L Moshier <moshier@mediaone.net> 993169689Skan 994169689Skan * lex.c (yylex): Accept 'f' in mantissa of hex float constant. 995169689Skan 996169689Skan1999-10-30 Mark Mitchell <mark@codesourcery.com> 997169689Skan 998169689Skan * decl.c (pop_cp_function_context): Don't call free on a NULL 999169689Skan pointer. 1000169689Skan * semantics.c: Include ggc.h. 1001169689Skan (expand_body): Do garbage-collection after processing a template 1002169689Skan function. Clear DECL_SAVED_TREE after generating RTL for a 1003169689Skan function. 1004169689Skan * Makefile.in (semantics.o): Depend on ggc.h. 1005169689Skan 1006169689Skan1999-10-29 Mark Mitchell <mark@codesourcery.com> 1007169689Skan 1008169689Skan * cp-tree.h (make_typename_type): Change prototype. 1009169689Skan * decl.c (make_typename_type): Only complain if so requested. 1010169689Skan * parse.y (nested_name_specifier): Adjust calls. 1011169689Skan (typename_sub0): Likewise. 1012169689Skan (typename_sub1): Likewise. 1013169689Skan * parse.c: Regenerated. 1014169689Skan * pt.c (convert_template_argument): Pass complain to 1015169689Skan make_typename_type. 1016169689Skan (tsubst): Likewise. 1017169689Skan 1018169689Skan1999-10-28 Mark Mitchell <mark@codesourcery.com> 1019169689Skan 1020169689Skan * semantics.c (finish_handler): End the scope of the handler 1021169689Skan before attaching it to the statement-tree. 1022169689Skan 1023169689Skan1999-10-28 Ian Lance Taylor <ian@zembu.com> 1024169689Skan 1025169689Skan * rtti.c (build_dynamic_cast_1): Give a better error message for 1026169689Skan an attempt to dynamic_cast from a non-polymorphic type. 1027169689Skan 1028169689Skan1999-10-27 Mark Mitchell <mark@codesourcery.com> 1029169689Skan 1030169689Skan * cp-tree.h (make_temp_vec): Remove. 1031169689Skan (make_scratch_vec): Likewise. 1032169689Skan * call.c (add_function_candidate): Use make_tree_vec. 1033169689Skan (add_conv_candidate): Likewise. 1034169689Skan (build_builtin_candidate): Likewise. 1035169689Skan (add_template_candidate_real): Likewise. 1036169689Skan * class.c (resolve_address_of_overloaded_function): Likewise. 1037169689Skan * decl.c (start_function): Don't fool with the momentary obstack. 1038169689Skan (finish_function): Likewise. 1039169689Skan * init.c (expand_direct_vtbls_init): Likewise. 1040169689Skan (begin_init_stmts): Likewise. 1041169689Skan (finish_init_stmts): Likewise. 1042169689Skan * pt.c (add_to_template_args): Use make_tree_vec. 1043169689Skan (check_explicit_specialization): Likewise. 1044169689Skan (coerce_template_parms): Likewise. 1045169689Skan (lookup_template_class): Don't fool with the momentary obstack. 1046169689Skan (instantiate_class_template): Likewise. 1047169689Skan (tsubst_template_arg_vector): Use make_tree_vec. 1048169689Skan (tsubst_aggr_type): Don't fool with the momentary obstack. 1049169689Skan (tsubst_decl): Likewise. Use make_tree_vec. 1050169689Skan (try_one_overload): Likewise. 1051169689Skan (try_class_unification): Don't fool with the momentary obstack. 1052169689Skan (get_bindings_real): Use make_tree_vec. 1053169689Skan (set_mangled_name_for_template_decl): Likewise. 1054169689Skan * rtti.c (synthesize_tinfo_fn): Don't fool with the momentary obstack. 1055169689Skan * semantics.c (finish_expr_stmt): Likewise. 1056169689Skan (finish_do_stmt): Likewise. 1057169689Skan (finish_for_expr): Likewise. 1058169689Skan (finish_switch_cond): Likewise. 1059169689Skan (do_pushlevel): Likewise. 1060169689Skan (do_poplevel): Likewise. 1061169689Skan * tree.c (make_temp_vec): Remove. 1062169689Skan 1063169689Skan * dump.c (dequeue_and_dump): Dump HANDLERs and SAVE_EXPRs. Dump 1064169689Skan CLEANUP_P for a TRY_BLOCK. 1065169689Skan * ir.texi: Document SAVE_EXPR. 1066169689Skan 1067169689SkanTue Oct 26 23:29:56 1999 Jeffrey A Law (law@cygnus.com) 1068169689Skan 1069169689Skan * call.c (build_over_call): Check that the built-in function is 1070169689Skan of class BUILT_IN_NORMAL before trying to recongize it as BUILT_IN_ABS. 1071169689Skan * typeck.c (build_function_call_real): Similarly. 1072169689Skan 1073169689Skan1999-10-26 Mark Mitchell <mark@codesourcery.com> 1074169689Skan 1075169689Skan * decl.c (poplevel): Don't set BLOCK_TYPE_TAGS. Don't call 1076169689Skan remember_end_note. 1077169689Skan 1078169689Skan1999-10-24 Mark Mitchell <mark@codesourcery.com> 1079169689Skan 1080169689Skan * decl.c (push_overloaded_decl_1): Use pushdecl. 1081169689Skan 1082169689Skan * decl.c (auto_function): Replace #ifdef'd __inline with just 1083169689Skan plain inline. 1084169689Skan * lex.c (my_get_run_time): Likeise. 1085169689Skan (yyprint): Likewise. 1086169689Skan (identifier_type): Likewise. 1087169689Skan * method.c (start_squangling): Likewise. 1088169689Skan (end_squangling): Likewise. 1089169689Skan (icat): Likewise. 1090169689Skan (old_backref_index): Likewise. 1091169689Skan (flush_repeats): Likewise. 1092169689Skan (issue_ktype): Likewise. 1093169689Skan * parse.y (empty_parms): Likewise. 1094169689Skan * parse.c: Regenerated. 1095169689Skan 1096169689Skan1999-10-21 Mark Mitchell <mark@codesourcery.com> 1097169689Skan 1098169689Skan * dump.c (dequeue_and_dump): Replace several uses of 1099169689Skan queue_and_dump_index with dump_child. 1100169689Skan 1101169689Skan1999-10-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1102169689Skan 1103169689Skan * expr.c: Include tm_p.h. 1104169689Skan 1105169689Skan1999-10-21 Mark Mitchell <mark@codesourcery.com> 1106169689Skan 1107169689Skan * cp-tree.h (SCOPE_PARTIAL_P): New macro. 1108169689Skan (pushlevel_temporary): Remove. 1109169689Skan (add_scope_stmt): New function. 1110169689Skan * decl.c (pushlevel_temporary): Remove. 1111169689Skan (poplevel): Use add_scope_stmt. 1112169689Skan (start_decl_1): Likewise. 1113169689Skan * semantics.c (add_scope_stmt): New function. 1114169689Skan (do_pushlevel): Use it. 1115169689Skan (do_poplevel): Use it. 1116169689Skan (expand_stmt): Check SCOPE_PARTIAL_P. 1117169689Skan 1118169689Skan * cp-tree.def (EMPTY_CLASS_EXPR): New tree node. 1119169689Skan * call.c (build_call): Use EMPTY_CLASS_EXPR instead of RTL_EXPR. 1120169689Skan * expr.c (cplus_expand_expr): Expand it. 1121169689Skan * ir.texi: Document EMPTY_CLASS_EXPR. 1122169689Skan 1123169689Skan1999-10-20 Mark Mitchell <mark@codesourcery.com> 1124169689Skan 1125169689Skan * cp-tree.h (DECL_NAMESPACE_SCOPE_P): Don't treat template 1126169689Skan parameters as having namespace scope. 1127169689Skan 1128169689Skan1999-10-19 Mark Mitchell <mark@codesourcery.com> 1129169689Skan 1130169689Skan * method.c (PARM_CAN_BE_ARRAY_TYPE): Remove. 1131169689Skan (mangling_flags): New type. 1132169689Skan (build_overload_int): Change prototype. 1133169689Skan (build_overload_value): Likewise. 1134169689Skan (numeric_output_need_bar): Improve comment. 1135169689Skan (mangle_expression): New function, broken out from ... 1136169689Skan (build_overload_int): Here. 1137169689Skan (build_overload_value): Adjust for use of mangling flags. Don't 1138169689Skan warn about real-valued template parameters here. Do handle 1139169689Skan complex expressions involving real-valued template parameters. 1140169689Skan (build_template_parm_names): Encase non-type template parameters 1141169689Skan in underscores, if necessary. 1142169689Skan (process_overload_item): Remove conditional on 1143169689Skan PARM_CAN_BE_ARRAY_TYPE. 1144169689Skan 1145169689Skan1999-10-17 Mark Mitchell <mark@codesourcery.com> 1146169689Skan 1147169689Skan * dump.c (dequeue_and_dump): Handle CLEANUP_POINT_EXPR. 1148169689Skan 1149169689Skan * ir.texi: Clean up documentation of RETURN_INIT. 1150169689Skan 1151169689Skan1999-10-15 Greg McGary <gkm@gnu.org> 1152169689Skan 1153169689Skan * lex.c (lang_init_options): Set flag_bounds_check as "unspecified". 1154169689Skan (lang_init): Set default for flag_bounds_check if still "unspecified". 1155169689Skan 1156169689Skan1999-10-13 Andrew Haley <aph@cygnus.com> 1157169689Skan 1158169689Skan * class.c (finish_struct_1): Force alignment of non-bitfields to 1159169689Skan BITS_PER_UNIT. 1160169689Skan 1161169689SkanWed Oct 13 22:01:35 1999 J"orn Rennecke <amylaar@cygnus.co.uk> 1162169689Skan 1163169689Skan * typeck2.c (process_init_constructor): Handle empty constructors. 1164169689Skan 1165169689Skan1999-10-13 Jason Merrill <jason@yorick.cygnus.com> 1166169689Skan 1167169689Skan * decl.c (lang_mark_tree): Mark NAMESPACE_LEVEL. 1168169689Skan 1169169689Skan * pt.c (tsubst, case INTEGER_TYPE): Be more explicit in zero-size 1170169689Skan array error. 1171169689Skan 1172169689Skan1999-10-13 Mark Mitchell <mark@codesourcery.com> 1173169689Skan 1174169689Skan * decl.c (make_rtl_for_local_static): Don't create register RTL 1175169689Skan for addressable constants. 1176169689Skan 1177169689Skan1999-10-13 Nathan Sidwell <nathan@acm.org> 1178169689Skan 1179169689Skan * cp-tree.h (build_x_va_arg): Prototype new function. 1180169689Skan * call.c (build_x_va_arg): Define it. 1181169689Skan * parse.y (unary_expr): Call build_x_va_arg. 1182169689Skan 1183169689Skan * cp-tree.h (convert_type_from_ellipsis): Prototype new function. 1184169689Skan * call.c (convert_type_from_ellipsis): Define it. 1185169689Skan * decl.c (init_decl_processing): Set lang_type_promotes_to. 1186169689Skan 1187169689Skan * tree.c (lvalue_p_1): Accept VA_ARG_EXPR with aggregates. 1188169689Skan 1189169689Skan1999-10-11 Jason Merrill <jason@yorick.cygnus.com> 1190169689Skan 1191169689Skan * class.c (fixed_type_or_null): Always set *nonnull. 1192169689Skan 1193169689Skan1999-10-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1194169689Skan 1195169689Skan * cp-tree.h: Use HAVE_GCC_VERSION instead of explicitly testing 1196169689Skan __GNUC__ and __GNUC_MINOR__. 1197169689Skan 1198169689Skan1999-10-09 Mark Mitchell <mark@codesourcery.com> 1199169689Skan 1200169689Skan * cp-tree.h (make_rtl_for_local_static): New function. 1201169689Skan * decl.c (make_rtl_for_nonlocal_decl): Move code to create RTL for 1202169689Skan local statics ... 1203169689Skan (make_rtl_for_local_static): Here. 1204169689Skan * semantics.c (expand_stmt): Use make_rtl_for_local_static. 1205169689Skan 1206169689Skan1999-10-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1207169689Skan 1208169689Skan * method.c: Include tm_p.h. 1209169689Skan 1210169689Skan1999-10-7 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> 1211169689Skan 1212169689Skan * cp-tree.h (cp_make_lake_type): Renamed from make_lang_type. 1213169689Skan * lex.c (cp_make_lake_type): Likewise. 1214169689Skan * tree.c (init_tree): Init make_lang_type_fn. 1215169689Skan 1216169689Skan1999-10-07 Mark Mitchell <mark@codesourcery.com> 1217169689Skan 1218169689Skan * pt.c (tsubst_expr): Set DECL_TEMPLATE_INSTANTIATED for a catch 1219169689Skan parameter. 1220169689Skan 1221169689Skan * semantics.c (expand_stmt): Don't pretend to have asmspecs for 1222169689Skan local statics if we don't really have them. 1223169689Skan 1224169689Skan * ir.texi: Improve documentation for STMT_EXPR. Describe 1225169689Skan CLEANUP_POINT_EXPR. 1226169689Skan 1227169689Skan1999-10-07 Jason Merrill <jason@yorick.cygnus.com> 1228169689Skan 1229169689Skan * class.c (build_vtable_entry_ref): Use finish_asm_stmt. 1230169689Skan 1231169689Skan1999-10-07 Greg McGary <gkm@gnu.org> 1232169689Skan 1233169689Skan * class.c (finish_struct_1): Use simpler method of 1234169689Skan removing elements of a singly-linked list which doesn't 1235169689Skan lose for classes without data members. 1236169689Skan 1237169689Skan1999-10-07 Mark Mitchell <mark@codesourcery.com> 1238169689Skan 1239169689Skan * friend.c (make_friend_class): Robustify. 1240169689Skan 1241169689Skan * semantics.c (finish_object_call_expr): Reject calls to template 1242169689Skan types. 1243169689Skan 1244169689Skan1999-10-06 Mark Mitchell <mark@codesourcery.com> 1245169689Skan 1246169689Skan * dump.c (dequeue_and_dump): Dump all three operands to a COND_EXPR. 1247169689Skan 1248169689Skan * cp-tree.h (CLASSTYPE_VFIELD): Remove. 1249169689Skan * call.c (build_vfield_ref): Use TYPE_VFIELD, not 1250169689Skan CLASSTYPE_VFIELD. 1251169689Skan * class.c (get_vfield_offset): Likewise. 1252169689Skan (finish_base_struct): Likewise. 1253169689Skan (modify_one_vtable): Likewise. 1254169689Skan (fixup_vtable_deltas): Likewise. 1255169689Skan (finish_struct_1): Likewise. 1256169689Skan * init.c (expand_virtual_init): Likewise. 1257169689Skan * search.c (lookup_field_1): Likewise. 1258169689Skan (expand_upcast_fixups): Likewise. 1259169689Skan * typeck.c (build_component_ref): Likewise. 1260169689Skan (build_binary_op_nodefault): Likewise. 1261169689Skan 1262169689Skan * dump.c (dqueue_and_dump): Dump TYPE_VFIELD. 1263169689Skan * ir.texi: Document TYPE_VFIELD. 1264169689Skan 1265169689Skan1999-10-06 Brendan Kehoe <brendan@cygnus.com> 1266169689Skan 1267169689Skan * decl.c (grokdeclarator): Only warn about nonzero arrays if 1268169689Skan !in_system_header (linux socketbits.h can give this for 1269169689Skan __cmsg_data, which is using a GNU extension). 1270169689Skan 1271169689Skan1999-10-05 Mark Mitchell <mark@codesourcery.com> 1272169689Skan 1273169689Skan * decl2.c (start_static_storage_duration_function): Push the 1274169689Skan function declaration so it ends up in namespace scope. 1275169689Skan 1276169689Skan * dump.c (DUMP_CHILDREN): Remove. 1277169689Skan (DUMP_BINFO): Adjust. 1278169689Skan (struct dump_node_info): Remove dump_children_p. 1279169689Skan (queue_and_dump_type): Remove dump_children_p parameter. 1280169689Skan (queue): Don't set dump_children_p. 1281169689Skan (dump_child): Pass DUMP_NONE, instead of DUMP_CHILDREN, to 1282169689Skan queue_and_dump_index. 1283169689Skan (dequeue_and_dump): Unconditionally print children. Adjust calls 1284169689Skan to functions mentioned above. 1285169689Skan (dump_node): Pass DUMP_NONE, instead of DUMP_CHILDREN to queue. 1286169689Skan 1287169689Skan * ir.texi: Document BIND_EXPR, LOOP_EXPR, and EXIT_EXPR. 1288169689Skan * dump.c (dequeue_and_dump): Dump them. 1289169689Skan 1290169689Skan * method.c (synthesize_method): Call setup_vtbl_ptr for destructors. 1291169689Skan 1292169689Skan * decl.c (start_function): Set current_in_charge_parm for 1293169689Skan constructors, too, where appropriate. 1294169689Skan * search.c (fixup_all_virtual_upcast_offsets): New function. 1295169689Skan (expand_indirect_vtbls_init): Use it. 1296169689Skan 1297169689Skan1999-10-04 Nathan Sidwell <nathan@acm.org> 1298169689Skan 1299169689Skan * decl2.c (grok_alignof): Don't decay lvalues. 1300169689Skan 1301169689Skan * init.c (build_new): Remove unused variable. 1302169689Skan 1303169689Skan1999-10-04 Mark Mitchell <mark@codesourcery.com> 1304169689Skan 1305169689Skan * cp-tree.h (struct language_function): Remove static_labelno. 1306169689Skan (static_labelno): Remove macro. 1307169689Skan * method.c (build_overload_nested_name): Make static_labelno 1308169689Skan static here. 1309169689Skan 1310169689Skan * pt.c (instantiate_decl): Use DECL_SAVED_TREE, not DECL_INITIAL, 1311169689Skan to decide whether or not a function is defined. 1312169689Skan 1313169689Skan * call.c (build_over_call): Don't set TREE_SIDE_EFFECTS for 1314169689Skan situations where make_node will do it automatically. 1315169689Skan * decl.c (grok_reference_init): Likewise. 1316169689Skan (expand_static_init): Likewise. 1317169689Skan (do_static_initialization): Likewise. 1318169689Skan * init.c (perform_member_init): Likewise. 1319169689Skan (expand_aggr_init_1): Likewise. 1320169689Skan (build_new_1): Likewise. 1321169689Skan * method.c (do_build_copy_constructor): Likewise. 1322169689Skan (do_build_assign_ref): Likewise. 1323169689Skan * search.c (expand_upcast_fixups): Likewise. 1324169689Skan * semantics.c (finish_stmt_expr): Likewise. 1325169689Skan * typeck.c (build_unary_op): Likewise. 1326169689Skan (check_return_expr): Likewise. 1327169689Skan 1328169689Skan1999-10-04 Jason Merrill <jason@yorick.cygnus.com> 1329169689Skan 1330169689Skan * init.c (build_vec_delete_1): Fold COND_EXPRs. 1331169689Skan 1332169689Skan1999-10-03 Mark Mitchell <mark@codesourcery.com> 1333169689Skan 1334169689Skan * cp-tree.def (VEC_INIT_EXPR): Remove. 1335169689Skan * cp-tree.h (struct stmt_tree): New type. 1336169689Skan (struct saved_scope): Remove firstobj. Add x_saved_tree, 1337169689Skan x_stmt_tree. 1338169689Skan (class_cache_firstobj): Remove. 1339169689Skan (struct language_function): Remove stmts_are_full_exprs_p, 1340169689Skan x_last_tree, and x_last_expr_type. Add x_stmt_tree. 1341169689Skan (current_stmt_tree): New macro. 1342169689Skan (last_tree): Adjust. 1343169689Skan (last_expr_type): Likewise. 1344169689Skan (doing_semantic_analysis_p): Simplify. 1345169689Skan (stmts_are_full_exprs_p): Adjust. 1346169689Skan (begin_tree): Remove prototype. 1347169689Skan (end_tree): Likewise. 1348169689Skan (begin_stmt_tree): Change prototype. 1349169689Skan (finish_stmt_tree): Likewise. 1350169689Skan (building_stmt_tree): Simplify. 1351169689Skan * decl.c (mark_stmt_tree): New function. 1352169689Skan (mark_saved_scope): Use it. 1353169689Skan (start_function): Rearrange slightly to call begin_stmt_tree 1354169689Skan earlier. 1355169689Skan (save_function_data): Tweak. 1356169689Skan (finish_function): Adjust call to finish_stmt_tree. 1357169689Skan (mark_lang_function): Use mark_stmt_tree. 1358169689Skan * expr.c (cplus_expand_expr): Don't handle VEC_INIT_EXPR. 1359169689Skan * init.c (build_new_1): Remove creation of VEC_INIT_EXPR. 1360169689Skan (build_vec_init): Remove creation of stand-in initializer. 1361169689Skan * pt.c (begin_tree): Remove. 1362169689Skan (end_tree): Likewise. 1363169689Skan * semantics.c (SET_LAST_STMT): New macro. Use it throughout. 1364169689Skan (begin_compound_stmt): Handle a compound-statement outside of a 1365169689Skan function. 1366169689Skan (begin_stmt_expr): Handle a statement-expression outsidef of a 1367169689Skan function. 1368169689Skan (finish_stmt_expr): Likewise. 1369169689Skan (begin_class_definition): Don't call begin_tree. 1370169689Skan (finish_inline_definitions): Don't call end_tree. 1371169689Skan (begin_stmt_tree): Take a pointer to tree, not a function as input. 1372169689Skan (finish_stmt_tree): Likewise. 1373169689Skan * tree.c (search_tree): Don't handle VEC_INIT_EXPR. 1374169689Skan (mapcar): Likewise. 1375169689Skan 1376169689Skan * parse.y (simple_stmt): Don't call finish_stmt unnecessarily. 1377169689Skan * parse.c: Regenerated. 1378169689Skan 1379169689Skan * dump.c (dqueue_and_dump): Dump bitfieldness. 1380169689Skan 1381169689Skan * tree.c (lvalue_p_1): Use DECL_C_BIT_FIELD to check for 1382169689Skan bitfields, rather than DECL_BIT_FIELD. 1383169689Skan * ir.texi: Document how to tell whether or not a field is a 1384169689Skan bitfield. 1385169689Skan 1386169689Skan * lex.c (make_lang_type): Fix typo in comment. 1387169689Skan 1388169689Skan1999-10-01 Jason Merrill <jason@yorick.cygnus.com> 1389169689Skan 1390169689Skan * typeck.c (decay_conversion): Strip cv-quals from non-class rvalues. 1391169689Skan 1392169689Skan1999-10-01 Mark Mitchell <mark@codesourcery.com> 1393169689Skan 1394169689Skan * pt.c (tsubst_decl): If the type of a template instantiation is 1395169689Skan bogus, so is the whole instantiation. 1396169689Skan 1397169689Skan1999-09-30 Mark Mitchell <mark@codesourcery.com> 1398169689Skan 1399169689Skan * decl.c (initialize_local_var): Handle static variables here. 1400169689Skan (cp_finish_decl): Tweak handling of function-scope static 1401169689Skan variables. 1402169689Skan * semantics.c (expand_stmt): Handle DECL_STMTs for static 1403169689Skan variables. 1404169689Skan 1405169689Skan * method.c (emit_thunk): Don't crash when -fsyntax-only. 1406169689Skan 1407169689Skan * cp-tree.h (lang_decl_flags): Add global_ctor_p and 1408169689Skan global_dtor_p. Add init_priority. 1409169689Skan (DECL_ACCESS): Adjust accordingly. 1410169689Skan (DECL_GLOBAL_CTOR_P, DECL_GLOBAL_DTOR_P): New macros. 1411169689Skan (GLOBAL_INIT_PRIORITY): Likewise. 1412169689Skan * decl.c (lang_mark_tree): Adjust accordingly. 1413169689Skan (start_objects): Set DECL_GLOBAL_CTOR_P, DECL_GLOBAL_DTOR_P, 1414169689Skan and GLOBAL_INIT_PRIORITY. 1415169689Skan * dump.c (dequeue_and_dump): Print them. 1416169689Skan * ir.texi: Document them. 1417169689Skan 1418169689Skan * decl2.c (struct priority_info_s): Remove initialization_sequence 1419169689Skan and destruction_sequence. 1420169689Skan (start_static_storage_duration_function): Return the body of the 1421169689Skan function. Convert for function-at-a-time mode. 1422169689Skan (generate_inits_for_priority): Remove. 1423169689Skan (finish_static_storage_duration_function): Change prototype. 1424169689Skan Adjust for function-at-a-time mode. 1425169689Skan (do_static_initialization): Likewise. 1426169689Skan (do_static_destruction): Likewise. 1427169689Skan (do_static_initialization_and_destruction): Remove. 1428169689Skan (start_static_initialization_or_destruction): New function. 1429169689Skan (finish_static_initialization_or_destruction): Likewise. 1430169689Skan (get_priority_info): Don't manipulation initialization_sequence or 1431169689Skan destruction_sequence. 1432169689Skan (prune_vars_needing_no_initialization): New function. 1433169689Skan (write_out_vars): Likewise. 1434169689Skan (finish_file): Use the various new functions instead of the old. 1435169689Skan 1436169689SkanThu Sep 30 00:13:27 1999 Dirk Zoller <duz@rtsffm.com> 1437169689Skan 1438169689Skan * cp-tree.h (warn_float_equal): Declare. 1439169689Skan * decl2.c (warn_float_equal): Define. 1440169689Skan (lang_decode_option): Recognize -W[no-]float-equal. 1441169689Skan * typeck.c (build_binary_op_nodefault): Conditionally warn 1442169689Skan about equality tests of floating point types. 1443169689Skan 1444169689Skan1999-09-29 Jason Merrill <jason@yorick.cygnus.com> 1445169689Skan 1446169689Skan Support normal type_info-based EH mechanisms with -fno-rtti. 1447169689Skan * except.c (build_eh_type_type): Remove special -fno-rtti handling. 1448169689Skan (build_eh_type_type_ref): Likewise. 1449169689Skan (build_eh_type): Remove. 1450169689Skan (expand_throw): Call build_eh_type_type, not build_eh_type. 1451169689Skan * decl2.c (import_export_decl): Don't associate the tinfo fn with 1452169689Skan the vtable if -fno-rtti. 1453169689Skan * decl.c (init_decl_processing): Always init_rtti_processing. 1454169689Skan 1455169689Skan * rtti.c (get_typeid): Don't complain about -fno-rtti. 1456169689Skan 1457169689Skan * class.c (class_cache_obstack, class_obstack): Remove. 1458169689Skan (init_class_processing): Don't initialize class_obstack. 1459169689Skan (push_cache_obstack): Remove. 1460169689Skan (pushclass): Don't call it. 1461169689Skan * cp-tree.h: Remove prototype for push_cache_obstack. 1462169689Skan * decl.c (decl_obstack, decl_stack, push_decl_level): Remove. 1463169689Skan (pushlevel_class): Don't push_decl_level. 1464169689Skan (poplevel_class): Don't pop_stack_level. 1465169689Skan (push_class_level_binding): Don't push_cache_obstack. 1466169689Skan (init_decl_processing): Don't initialize decl_obstack. 1467169689Skan * search.c (push_class_decls): Don't push_cache_obstack. 1468169689Skan * tree.c (list_hash_add): Put hash node on permanent_obstack. 1469169689Skan (hash_tree_cons): Don't mess with obstacks. 1470169689Skan (print_lang_statistics): Don't print stats for class_obstack and 1471169689Skan decl_obstack. 1472169689Skan 1473169689Skan1999-09-29 Mark Mitchell <mark@codesourcery.com> 1474169689Skan 1475169689Skan * dump.c (dequeue_and_dump): Dump DECL_EXTERNAL. 1476169689Skan * ir.texi: Document DECL_EXTERNAL. 1477169689Skan 1478169689Skan * dump.c (dequeue_and_dump): Improve support for dumping THUNK_DECLs. 1479169689Skan * ir.texi: Document THUNK_DECLs. 1480169689Skan 1481169689Skan * cp-tree.h (TMPL_ARGS_HAVE_MULTIPLE_LEVELS): Move here from pt.c. 1482169689Skan (TMPL_ARGS_DEPTH, TMPL_ARGS_LEVEL, SET_TMPL_ARGS_LEVEL): Likewise. 1483169689Skan (TMPL_ARG, SET_TMPL_ARG, NUM_TMPL_ARGS, TMPL_PARMS_DEPTH): Likewise. 1484169689Skan * error.c (dump_template_bindings): Remove unused parameter. 1485169689Skan Handle multiple levels of template parameters. 1486169689Skan (dump_template_decl): Use `parms', not `args', for template 1487169689Skan parameters. Fix thinko. 1488169689Skan (dump_function_decl): Use DECL_TEMPLATE_INSTANTIATION. Don't pass 1489169689Skan flags to dump_template_bindings. 1490169689Skan * pt.c (TMPL_ARGS_HAVE_MULTIPLE_LEVELS): Move to cp-tree.h. 1491169689Skan (TMPL_ARGS_DEPTH, TMPL_ARGS_LEVEL, SET_TMPL_ARGS_LEVEL): Likewise. 1492169689Skan (TMPL_ARG, SET_TMPL_ARG, NUM_TMPL_ARGS, TMPL_PARMS_DEPTH): Likewise. 1493169689Skan (tsubst_copy): Clarify variable name. 1494169689Skan (most_general_template): Robustify. 1495169689Skan 1496169689Skan1999-09-29 Nathan Sidwell <nathan@acm.org> 1497169689Skan 1498169689Skan * error.c (dump_template_parms): Don't use TS_PEDANTIC_NAME 1499169689Skan to change primary template rendering. 1500169689Skan 1501169689Skan1999-09-29 Mark Mitchell <mark@codesourcery.com> 1502169689Skan 1503169689Skan * cp-tree.h (UPT_TEMPLATE): Remove. 1504169689Skan (UPT_PARMS): Likewise. 1505169689Skan (DECL_NEEDED_P): New macro. 1506169689Skan * decl2.c (finish_vtable_vardecl): Use it. 1507169689Skan (finish_objects): Don't crash with -fsyntax-only. 1508169689Skan (finish_file): Use DECL_NEEDED_P. Don't prune vtables when 1509169689Skan -fsyntax-only. 1510169689Skan * pt.c (tsubst_friend_function): Remove FIXME that talks about 1511169689Skan obstacks. 1512169689Skan (tsubst_expr): Correct handling of function try-blocks. 1513169689Skan * semantics.c: Include flags.h. 1514169689Skan (expand_body): Don't do RTL generation if -fsyntax-only. 1515169689Skan * Makefile.in (semantics.o): Depends on flags.h. 1516169689Skan 1517169689Skan1999-09-28 Gabriel Dos Reis <gdr@codesourcery.com> 1518169689Skan 1519169689Skan * pt.c (most_general_template): Adjust declaration. 1520169689Skan 1521169689Skan * cp-tree.h: (most_general_template): Declare. 1522169689Skan 1523169689Skan * error.c (dump_template_value): Rename to ... 1524169689Skan (dump_template_argument): This. 1525169689Skan (dump_template_argument_list): New function. 1526169689Skan (dump_type): Use it. 1527169689Skan (dump_template_parameter): New function. 1528169689Skan (dump_template_decl): Use it. 1529169689Skan (dump_template_bindings): New function. 1530169689Skan (dump_function_decl): Use it. Pretty print function template 1531169689Skan instantiations. 1532169689Skan 1533169689Skan1999-09-28 Nathan Sidwell <nathan@acm.org> 1534169689Skan 1535169689Skan * decl.c (grokdeclarator): Distinguish parameter context for 1536169689Skan diagnostics. Tidy up missing type diagnostic. 1537169689Skan Diagnose `explicit' in one place. Diagnose `mutable' in one place. 1538169689Skan 1539169689Skan1999-09-28 Mark Mitchell <mark@codesourcery.com> 1540169689Skan 1541169689Skan * ir.texi: Improve documentation for TARGET_EXPR. 1542169689Skan 1543169689Skan1999-09-27 Nathan Sidwell <nathan@acm.org> 1544169689Skan 1545169689Skan Augment stringification of trees. 1546169689Skan * cp-tree.h (tree_string_flags): New error stringifying enumeration. 1547169689Skan (fndecl_as_string, type_as_string_real, args_as_string, 1548169689Skan code_as_string, language_as_string, parm_as_string, 1549169689Skan op_as_string, assop_as_string, cv_as_string): Remove. 1550169689Skan (type_as_string, decl_as_string, expr_as_string): Adjust prototype. 1551169689Skan (context_as_string): Declare new function. 1552169689Skan * error.c (cp_printers): Move definition. 1553169689Skan (OB_UNPUT): Remove. 1554169689Skan (OB_END_TEMPLATE_ID): Adjust. 1555169689Skan (interesting_scope_p): Remove. 1556169689Skan (dump_scope): New static function. 1557169689Skan (dump_qualifiers): Adjust prototype, reimplement. 1558169689Skan (dump_template_value): Use tree_string_flags. 1559169689Skan (dump_type_real): Move back to dump_type. 1560169689Skan (dump_type): Adjust prototype. Use tree_string_flags. 1561169689Skan (dump_aggr_type): Likewise. Use dump_template_parms. 1562169689Skan (dump_type_prefix): Adjust prototype. Use tree_string_flags. 1563169689Skan Return pad flag. 1564169689Skan (dump_type_suffix): Adjust prototype. Use tree_string_flags. 1565169689Skan (dump_simple_decl): Likewise. 1566169689Skan (dump_decl): Likewise. Use dump_template_decl. 1567169689Skan (dump_template_decl): New static function broken out of dump_decl. 1568169689Skan (dump_function_decl): Adjust prototype. Use tree_string_flags. 1569169689Skan (dump_parameters): Likewise. Prefix space. 1570169689Skan (dump_exception_spec): Adjust prototype. Use tree_string_flags. 1571169689Skan (dump_function_name): Likewise. Use dump_template_parms. 1572169689Skan (dump_template_parms): New static function broken out of 1573169689Skan dump_function_name. 1574169689Skan (dump_expr_list): Adjust prototype. Use tree_string_flags. 1575169689Skan (dump_expr): Likewise. 1576169689Skan (fndecl_as_string): Removed 1577169689Skan (type_as_string_real): Removed 1578169689Skan (dump_binary_op): Adjust prototype. Use tree_string_flags. 1579169689Skan (dump_unary_op): Likewise. 1580169689Skan (type_as_string): Likewise. 1581169689Skan (expr_as_string): Likewise. 1582169689Skan (decl_as_string): Likewise. 1583169689Skan (context_as_string): New function. 1584169689Skan (lang_decl_name): Adjust. 1585169689Skan (decl_to_string): New static print callback. 1586169689Skan (expr_to_string): Likewise. 1587169689Skan (fndecl_to_string): Likewise. 1588169689Skan (code_as_string): Renamed to ... 1589169689Skan (code_to_string): ... here. Adjust. 1590169689Skan (language_as_string): Renamed to ... 1591169689Skan (language_to_string): ... here. Adjust. 1592169689Skan (parm_as_string): Renamed to ... 1593169689Skan (parm_to_string): ... here. 1594169689Skan (op_as_string): Renamed to ... 1595169689Skan (op_to_string): ... here. 1596169689Skan (assop_as_string): Renamed to ... 1597169689Skan (assop_to_string): ... here. 1598169689Skan (type_to_string): New static print callback. 1599169689Skan (args_as_string): Renamed to ... 1600169689Skan (args_to_string): ... here. Adjust. 1601169689Skan (cv_as_string): Renamed to ... 1602169689Skan (cv_to_string): ... here. Adjust. 1603169689Skan * pt.c (mangle_class_name_for_template): Use tree_string_flags. 1604169689Skan (print_template_context): Likewise. 1605169689Skan 1606169689Skan1999-09-26 Mark Mitchell <mark@codesourcery.com> 1607169689Skan 1608169689Skan * cp-tree.h (expand_throw): Remove prototype. 1609169689Skan * except.c (expand_throw): Make it static. Use tree-generation 1610169689Skan functions, rather than RTL-generation functions. 1611169689Skan (build_throw): Use it. 1612169689Skan * expr.c: Include except.h. 1613169689Skan (cplus_expand_expr): Don't call expand_throw here. 1614169689Skan * Makefile.in (expr.o): Depend on except.h. 1615169689Skan * ir.texi: Update documentation for THROW_EXPR. 1616169689Skan 1617169689Skan * decl.c (start_function): Set x_dont_save_pending_sizes rather 1618169689Skan than calling get_pending_sizes. 1619169689Skan * init.c (build_new): Don't save and restore 1620169689Skan immediate_size_expand; instead, assert that it has the expected 1621169689Skan value already. 1622169689Skan 1623169689Skan1999-09-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1624169689Skan 1625169689Skan * lex.c (compiler_error): Add missing call to va_end(). 1626169689Skan 1627169689Skan1999-09-25 Mark Mitchell <mark@codesourcery.com> 1628169689Skan 1629169689Skan * dump.c (dequeue_and_dump): Handle RESULT_DECL. 1630169689Skan * ir.texi: Document RESULT_DECL and DECL_RESULT. 1631169689Skan 1632169689Skan * cp-tree.h (check_return_expr): New function. 1633169689Skan * decl.c (finish_constructor_body): New function. 1634169689Skan (pushdecl): Put global friend functions in namespace binding 1635169689Skan level, not the class binding level. 1636169689Skan (finish_destructor_body): Make sure the dtor_label is always 1637169689Skan defined. Fix typo in comment. 1638169689Skan (finish_function): Move generation of constructor-termination code 1639169689Skan to semantic-analysis time. Move generation of implicit `main' 1640169689Skan return value to semantic-analysis time. 1641169689Skan * semantics.c (finish_return_stmt): Generate goto's to 1642169689Skan ctor_label/dtor_label here. Use check_return_expr to do semantic 1643169689Skan analysis on the returned expression. 1644169689Skan * typeck.c (maybe_warn_about_returning_address_of_local): New 1645169689Skan function split out from c_expand_return. 1646169689Skan (check_return_expr): Likewise. 1647169689Skan (c_expand_return): Just generate the RTL for the return. 1648169689Skan 1649169689Skan1999-09-24 Mark Mitchell <mark@codesourcery.com> 1650169689Skan 1651169689Skan * cp-tree.h (CPTI_CLEANUP_TYPE): New macro. 1652169689Skan (cleanup_type): Likewise. 1653169689Skan (search_tree): Change prototype. 1654169689Skan * decl.c (local_variable_p): Adjust for new interface to 1655169689Skan search_tree. 1656169689Skan (check_default_argument): Likewise. 1657169689Skan * error.c (dump_expr): Handle INIT_EXPR. 1658169689Skan * except.c (expand_throw): Don't make cleanup_type a local static. 1659169689Skan * expr.c (cplus_expand_expr): Don't handle NEW_EXPR. 1660169689Skan * init.c (build_new): Call build_new_1 directly, rather than 1661169689Skan building a NEW_EXPR. 1662169689Skan (build_new_1): Tidy. Don't build a VEC_INIT_EXPR except when 1663169689Skan processing file-scope initializers. 1664169689Skan * lex.c (init_parse): Add an opname_tab entry for INIT_EXPR. 1665169689Skan * tree.c: Include splay-tree.h 1666169689Skan (no_linkage_helper): Adjust for new interface to search_tree. 1667169689Skan (search_tree): Pass around pointers to tree nodes, rather than the 1668169689Skan nodes themselves. Handle VEC_INIT_EXPR. 1669169689Skan (no_linkage_check): Adjust for new interface to search_tree. 1670169689Skan (mapcar): Handle VEC_INIT_EXPR. 1671169689Skan (target_remap): New variable. 1672169689Skan (bot_manip): Use it. 1673169689Skan (bot_replace): New function. 1674169689Skan (break_out_target_exprs): Use it to remap all variables used in a 1675169689Skan default argument expression. 1676169689Skan * typeck.c (build_modify_expr): Don't crash when outside a 1677169689Skan function and presented with an INIT_EXPR assignment 1678169689Skan * Makefile.in (tree.o): Depend on splay-tree.h. 1679169689Skan 1680169689SkanFri Sep 24 10:48:10 1999 Bernd Schmidt <bernds@cygnus.co.uk> 1681169689Skan 1682169689Skan * decl.c (duplicate_decls): Use DECL_BUILT_IN_CLASS rather than 1683169689Skan DECL_BUILT_IN. 1684169689Skan (builtin_function): New arg CLASS. Arg CODE now of type int. All 1685169689Skan callers changed. 1686169689Skan Set the builtin's DECL_BUILT_IN_CLASS. 1687169689Skan 1688169689Skan1999-09-24 Mark Mitchell <mark@codesourcery.com> 1689169689Skan 1690169689Skan * decl.c (pushdecl): Don't make local declarations of extern 1691169689Skan variables give the variable a DECL_CONTEXT for the function. 1692169689Skan (make_rtl_for_nonlocal_decl): Don't fuss with obstacks. Simplify. 1693169689Skan Don't accidentally make RTL for local declarations. 1694169689Skan (emit_local_var): Handle declarations with asm-specifiers here. 1695169689Skan 1696169689Skan1999-09-23 Mark Mitchell <mark@codesourcery.com> 1697169689Skan 1698169689Skan * ir.texi: Improve documentation for TARGET_EXPRs. Discuss 1699169689Skan STMT_IS_FULL_EXPR_P. 1700169689Skan 1701169689Skan * cp-tree.h (language_function): Add cannot_inline. 1702169689Skan * decl.c (start_function): Restore current_function_cannot_inline 1703169689Skan from the saved value. 1704169689Skan (save_function_data): Save current_function_cannot_inline. 1705169689Skan * decl2.c (start_objects): Change prototype. Build the function 1706169689Skan in function-at-a-time mode. 1707169689Skan (finish_objects): Likewise. 1708169689Skan (generate_ctor_or_dtor_function): Adjust accordingly. 1709169689Skan 1710169689Skan * cp-tree.h (DECL_ANON_UNION_ELEMS): New macro. 1711169689Skan * decl2.c (finish_anon_union): Set DECL_ANON_UNION_ELEMS. 1712169689Skan Don't call expand_anon_union_decl here 1713169689Skan * semantics.c (exapnd_stmt): Call it here, instead. 1714169689Skan * typeck.c (mark_addressable): Addressed variables are implicitly 1715169689Skan used. 1716169689Skan 1717169689Skan1999-09-23 Martin v. L�wis <loewis@informatik.hu-berlin.de> 1718169689Skan 1719169689Skan * cp-tree.h (VAR_OR_FUNCTION_DECL_CHECK): New macro. 1720169689Skan (RECORD_OR_UNION_TYPE_CHECK, LANG_IDENTIFIER_CAST): Likewise. 1721169689Skan (DEFARG_NODE_CHECK): Remove; replace with DEFAULT_ARG_CHECK. 1722169689Skan * cp-tree.h: Add tree checking macros to various tree access 1723169689Skan macros. 1724169689Skan * ptree.c (print_lang_decl): Test for function or variable 1725169689Skan before accessing template info. 1726169689Skan 1727169689Skan1999-09-23 Jason Merrill <jason@yorick.cygnus.com> 1728169689Skan 1729169689Skan * lex.c: Get WCHAR_TYPE_SIZE from wchar_type_node. 1730169689Skan * lang-specs.h: If -fshort-wchar, override __WCHAR_TYPE__. 1731169689Skan * decl2.c (lang_f_options): Add -fshort-wchar. 1732169689Skan * cp-tree.h: Declare flag_short_wchar. 1733169689Skan * decl.c (init_decl_processing): If -fshort-wchar, use 'short unsigned 1734169689Skan int' for wchar_t. 1735169689Skan 1736169689Skan1999-09-23 Martin v. L�wis <loewis@informatik.hu-berlin.de> 1737169689Skan 1738169689Skan * ir.texi: Fix formatting errors and typos. 1739169689Skan 1740169689Skan1999-09-22 Mark Mitchell <mark@codesourcery.com> 1741169689Skan 1742169689Skan * ir.texi: Document CLEANUP_STMT, SCOPE_STMT, and START_CATCH_STMT. 1743169689Skan 1744169689Skan * decl.c (pushdecl): Do create a binding for extern "C" functions, 1745169689Skan but not for their DECL_ASSEMBLER_NAMEs. 1746169689Skan (lookup_name_current_level): Fix formatting. 1747169689Skan (xref_tag): Likewise. 1748169689Skan * decl2.c (start_objects): Mark static constructors and 1749169689Skan destructors as used. 1750169689Skan 1751169689Skan1999-09-22 Jason Merrill <jason@yorick.cygnus.com> 1752169689Skan 1753169689Skan * decl.c (define_case_label): Don't crash if we're not in a switch. 1754169689Skan 1755169689Skan * decl2.c (lang_decode_option): Don't bother explicitly ignoring flags. 1756169689Skan * lang-options.h: Restore -fthis-is-variable. Remove help strings 1757169689Skan for unsupported flags. 1758169689Skan 1759169689Skan1999-09-21 Jason Merrill <jason@yorick.cygnus.com> 1760169689Skan 1761169689Skan * decl2.c (lang_decode_option): Accept and ignore -finit-priority. 1762169689Skan Accept and warn about -fthis-is-variable. 1763169689Skan 1764169689Skan1999-09-21 Mark Mitchell <mark@codesourcery.com> 1765169689Skan 1766169689Skan * dump.c (dequeue_and_dump): Handle START_CATCH_STMT, 1767169689Skan CLEANUP_STMT, and SCOPE_STMT. 1768169689Skan 1769169689Skan * decl2.c (lang_decode_option): Adjust, in the wake of recent 1770169689Skan changes to option processing. 1771169689Skan 1772169689Skan1999-09-21 Martin v. L�wis <loewis@informatik.hu-berlin.de> 1773169689Skan 1774169689Skan * typeck.c (get_member_function_from_ptrfunc): Allow extraction of 1775169689Skan function pointer from pmfs with no object given. 1776169689Skan (convert_for_assignment): Do not return error when converting 1777169689Skan pmfs. 1778169689Skan 1779169689Skan1999-09-21 Alex Samuel <samuel@codesourcery.com> 1780169689Skan 1781169689Skan * lex.c (internal_filename): New variable. 1782169689Skan (INTERNAL_FILENAME): New macro. 1783169689Skan (init_parse): Allocate internal_filename and mark as root. Use it 1784169689Skan instead of a string constant. 1785169689Skan 1786169689Skan1999-09-21 Nathan Sidwell <nathan@acm.org> 1787169689Skan 1788169689Skan Reimplement dynamic cast and catch matching. 1789169689Skan * cp-tree.h (get_dynamic_cast_base_type): Prototype new function 1790169689Skan * search.c (dynamic_cast_base_recurse): New function. 1791169689Skan (get_dynamic_cast_base_type): New function for dynamic cast. 1792169689Skan * rtti.c (build_dynamic_cast_1): Determine source and target 1793169689Skan class relationship. Call __dynamic_cast_2. 1794169689Skan * tinfo.h (__user_type_info::upcast): New catch dispatcher. 1795169689Skan (__user_type_info::dyncast): New dynamic cast dispatcher. 1796169689Skan (__user_type_info::sub_kind): New nested enumeration. 1797169689Skan (__user_type_info::contained_p): sub_kind predicate. 1798169689Skan (__user_type_info::contained_public_p): Likewise. 1799169689Skan (__user_type_info::contained_nonpublic_p): Likewise. 1800169689Skan (__user_type_info::contained_nonvirtual_p: Likewise. 1801169689Skan (__user_type_info::upcast_result): New nested struct. 1802169689Skan (__user_type_info::dyncast_result): New nested struct. 1803169689Skan (*::do_upcast): New catch function. 1804169689Skan (*::do_dyncast): New dynamic cast function. 1805169689Skan (__user_type_info::find_public_subobj): New dynamic cast 1806169689Skan helper dispatcher. 1807169689Skan (*::do_find_public_subobj): New dynamic cast helper function. 1808169689Skan * tinfo.cc (__user_type_info::upcast): Define catch dispatcher. 1809169689Skan (__user_type_info::dyncast): Define dynamic cast dispatcher. 1810169689Skan (*::do_upcast): Define catch function. 1811169689Skan (*::do_dyncast): Define dynamic cast function. 1812169689Skan (*::do_find_public_subobj): Define dynamic cast helper function. 1813169689Skan * tinfo2.cc (__throw_type_match_rtti_2): Use upcast. 1814169689Skan (__dynamic_cast): Backwards compatibility wrapper. Use dyncast. 1815169689Skan (__dynamic_cast_2): New dynamic cast runtime. 1816169689Skan 1817169689Skan1999-09-20 Mark Mitchell <mark@codesourcery.com> 1818169689Skan 1819169689Skan * cp-tree.h (finish_stmt_expr): Change prototype. 1820169689Skan * expr.c (cplus_expand_expr): Adjust call accordingly. 1821169689Skan * init.c (finish_init_stmts): Likewise. 1822169689Skan * parse.y (primary): Likewise. 1823169689Skan * pt.c (tsubst_copy): Likewise. 1824169689Skan * semantics.c (finish_stmt_expr): Don't take two parameters. 1825169689Skan Don't remove generated BLOCKs from the block-tree. 1826169689Skan 1827169689Skan Remove support for assigning to `this'. 1828169689Skan * NEWS: Note that fact. 1829169689Skan * class.c (build_vbase_path): Don't check flag_this_is_variable. 1830169689Skan * cp-tree.h (EXPR_STMT_ASSIGNS_THIS): Remove. 1831169689Skan (language_function): Remove assigns_this, just_assigned_this, and 1832169689Skan x_base_init_expr. Add x_vcalls_possible_p. Add vtbls_set_up_p. 1833169689Skan (base_init_expr): Remove. 1834169689Skan (current_vcalls_possible_p): New macro. 1835169689Skan (vtbls_set_up_p): Likewise. 1836169689Skan (emit_base_init): Change prototype. 1837169689Skan * decl.c (finish_destructor_body): New function, split out from 1838169689Skan finish_function. 1839169689Skan (current_function_assigns_this): Remove. 1840169689Skan (current_function_just_assigned_this): Likewise. 1841169689Skan (start_function): Don't set them. 1842169689Skan (finish_function): Don't check them. Don't emit 1843169689Skan base-initialization code here. Generate code for destructors when 1844169689Skan doing semantic analysis. 1845169689Skan (finish_stmt): Don't check current_function_just_assigned_this. 1846169689Skan * decl2.c (lang_f_options): Remove this-is-variable. 1847169689Skan (lang_decode_option): Likewise. 1848169689Skan (grokclassfn): Don't check flag_this_is_variable. 1849169689Skan * init.c (emit_base_init): Return the expression generated. 1850169689Skan (construct_virtual_bases): Don't push/pop obstacks. Fix 1851169689Skan typo. 1852169689Skan (build_new_1): Don't check flag_this_is_variable. 1853169689Skan (get_temp_regvar): Don't set DECL_REGISTER. 1854169689Skan (build_vec_init): Don't call use_variable. 1855169689Skan * lang-options.h: Remove "-fthis-is-variable" and 1856169689Skan "-fno-this-is-variable". 1857169689Skan * pt.c (tsubst_expr): Don't check EXPR_STMT_ASSIGNS_THIS. 1858169689Skan * search.c (expand_upcast_fixups): Use finish_expr_stmt, not 1859169689Skan expand_expr_stmt. 1860169689Skan * semantics.c (finish_expr_stmt_real): Rename to ... 1861169689Skan (finish_expr_stmt): This. Remove assigned_this parameter. 1862169689Skan (begin_if_stmt): Call do_pushlevel before starting the statement. 1863169689Skan (begin_compound_stmt): Don't declare __FUNCTION__ in scope-less 1864169689Skan blocks. 1865169689Skan (setup_vtbl_ptr): Emit initialization code for bases and members 1866169689Skan at semantic-analysis time. Emit code to initialize vtables in 1867169689Skan destructors here. 1868169689Skan (expand_stmt): Use finish_expr_stmt, not finish_expr_stmt_real. 1869169689Skan Don't handle CTOR_INITIALIZER any more. 1870169689Skan * typeck.c (build_modify_expr): Don't check for assignments to 1871169689Skan this. 1872169689Skan (c_expand_return): Don't suggest assigning to `this'. 1873169689Skan 1874169689Skan * Makefile.in (decl.o): Depend on RTL_H. 1875169689Skan (decl2.o): Likewise. 1876169689Skan (class.o): Likewise. 1877169689Skan (call.o): Likewise. 1878169689Skan (method.o): Likewise. 1879169689Skan (search.o): Likewise. 1880169689Skan (tree.o): Likewise. 1881169689Skan (pt.o): Likewise. 1882169689Skan 1883169689Skan * decl.c (duplicate_decls): When a builtin function is redeclared 1884169689Skan as static, make sure it is mangled correctly. 1885169689Skan 1886169689Skan * ir.texi (CTOR_INITIALIZER): Remove mention. Fix typo. Add 1887169689Skan detail about the statement-tree. 1888169689Skan 1889169689Skan1999-09-20 Nathan Sidwell <nathan@acm.org> 1890169689Skan 1891169689Skan * parse.y (primary): Use build_functional_cast for CV_QUALIFIER. 1892169689Skan 1893169689Skan1999-09-20 Nick Clifton <nickc@cygnus.com> 1894169689Skan 1895169689Skan * decl2.c (lang_decode_option): Extend comment. 1896169689Skan 1897169689SkanMon Sep 20 10:49:05 1999 Bernd Schmidt <bernds@cygnus.co.uk> 1898169689Skan 1899169689Skan * typeck.c: Include "tm_p.h". 1900169689Skan 1901169689Skan1999-09-19 Mark Mitchell <mark@codesourcery.com> 1902169689Skan 1903169689Skan * ir.texi: New file. 1904169689Skan 1905169689Skan1999-09-19 Paul Burchard <burchard@pobox.com> 1906169689Skan 1907169689Skan * semantics.c (expand_stmt): Initialize return value. 1908169689Skan 1909169689Skan1999-09-18 Paul Burchard <burchard@pobox.com> 1910169689Skan 1911169689Skan * gxxint.texi: G++ now implements namespaces. 1912169689Skan 1913169689Skan1999-09-18 Mark Mitchell <mark@codesourcery.com> 1914169689Skan 1915169689Skan * decl.c (pop_label): Don't warn about unused labels more than 1916169689Skan once. 1917169689Skan * semantics.c (finish_goto_stmt): Always marked used labels as 1918169689Skan used. 1919169689Skan 1920169689Skan * decl.c (layout_var_decl): Change prototype. Call layout_decl 1921169689Skan even when the declaration is external. 1922169689Skan (cp_finish_decl): Adjust call to layout_var_decl. 1923169689Skan * pt.c (tsubst_expr): Make sure to initialize stmt before using it. 1924169689Skan 1925169689Skan1999-09-18 Martin von Loewis <loewis@informatik.hu-berlin.de> 1926169689Skan 1927169689Skan * typeck.c (get_member_function_from_ptrfunc): Always consider 1928169689Skan virtuality inside member pointer. 1929169689Skan 1930169689Skan1999-09-17 Mark Mitchell <mark@codesourcery.com> 1931169689Skan 1932169689Skan Turn on function-at-a-time processing. 1933169689Skan * cp-tree.h (doing_semantic_analysis_p): New macro. 1934169689Skan (SF_DEFAULT): Define to zero, not SF_EXPAND. 1935169689Skan (start_handler_parms): Change prototype. 1936169689Skan (expand_start_catch_block): Likewise. 1937169689Skan (expand_end_catch_block): Likewise. 1938169689Skan (expand_start_eh_spec): Likewise. 1939169689Skan (expand_end_eh_spec): Declare. 1940169689Skan (finish_handler_parms): Change prototype. 1941169689Skan (begin_catch_block): Declare. 1942169689Skan (finish_handler): Change prototype. 1943169689Skan (do_pushlevel): Declare. 1944169689Skan (do_poplevel): Likewise. 1945169689Skan * decl.c (pushlevel): Don't create 1946169689Skan binding levels when not doing semantic analysis. 1947169689Skan (poplevel): Don't pop them. 1948169689Skan (pushdecl): Assert that we are never called when not doing 1949169689Skan semantic analysis. 1950169689Skan (pushdecl_top_level): Use push_to_top_level. 1951169689Skan (make_label_decl): Don't fiddle with obstacks. Make RTL For the 1952169689Skan label when expanding. 1953169689Skan (cp_finish_decl): Only inject for-scope variables when doing 1954169689Skan semantic analysis. Add comments. 1955169689Skan (start_handler_parms): Return the handler parm. 1956169689Skan (start_function): Reorganize. Don't clear DECL_INITIAL if it is 1957169689Skan already set. Reinitialize from saved function data if available. 1958169689Skan Don't pushlevel when not doing semantic analysis. 1959169689Skan (store_parm_decls): Only generate RTL when expanding. Only 1960169689Skan pushdecl when doing semantic analysis. Set 1961169689Skan current_eh_spec_try_block if appropriate. 1962169689Skan (finish_function): Simplify. Use do_pushlevel and do_poplevel. 1963169689Skan Combine common code. Don't poplevel when not doing semantic 1964169689Skan analysis. 1965169689Skan (push_cp_function_context): Don't expand functions without an 1966169689Skan explicit call to expand_body. 1967169689Skan (mark_lang_function): Make eh_spec_try_block and 1968169689Skan x_scope_stmt_stack. 1969169689Skan * except.c (expand_end_eh_spec): Don't 1970169689Skan declare. 1971169689Skan (process_start_catch_block): Likewise. 1972169689Skan (push_eh_cleanup): Use finish_decl_cleanup. 1973169689Skan (initialize_handler_parm): New function. 1974169689Skan (expand_start_catch_block): Use it. 1975169689Skan (expand_end_catch_block): Use tree-generation functions, not 1976169689Skan RTL-generation functions. 1977169689Skan (expand_start_eh_spec): Likewise. 1978169689Skan (expand_end_eh_spec): Likewise. 1979169689Skan (expand_exception_blocks): Simplify. 1980169689Skan (start_anon_func): Use do_pushlevel. 1981169689Skan (end_anon_func): Use do_poplvel. Call expand_body for the 1982169689Skan function. 1983169689Skan * expr.c (do_case): Don't call define_case_label. 1984169689Skan * init.c (create_temporary_var): Set DECL_CONTEXT for local 1985169689Skan variables. 1986169689Skan * method.c (emit_thunk): Call expand_body for the 1987169689Skan thunk. 1988169689Skan (sythesize_method): Likewise. 1989169689Skan * parse.y (handler_args): Give it ttype. 1990169689Skan (eat_saved_input): Call expand_body. 1991169689Skan (base_init): Use do_pushlevel. 1992169689Skan (pending_inline): Call expand_body. 1993169689Skan (handler): Adjust calls to finish_handler_parms and 1994169689Skan finish_handler. 1995169689Skan (handler_args): Don't call expand_start_catch_block. Return the 1996169689Skan catch parameter. * pt.c (tsubst_expr): Adjust HANDLER handling. 1997169689Skan * parse.c: Regenerated. 1998169689Skan * rtti.c (synthesize_tinfo_fn): Call finish_function. 1999169689Skan * semantics.c (do_pushlevel): Give it external linkage. Build 2000169689Skan SCOPE_STMTs. 2001169689Skan (do_poplevel): Likewise. 2002169689Skan (finish_case_label): Call define_case_label when doing semantic 2003169689Skan analysis. 2004169689Skan (finish_goto_stmt): Create RTL for labels. 2005169689Skan (finish_function_try_block): Set in_function_try_handler 2006169689Skan unconditionally. 2007169689Skan (finish_function_handler_sequence): Unset it. 2008169689Skan (finish_handler_parms): Use expand_start_catch_block even when 2009169689Skan building a statement-tree. 2010169689Skan (begin_catch_block): New function. 2011169689Skan (finish_handler): Move a little RTL-generation logic here. 2012169689Skan (finish_decl_cleanup): Allow cleanups for empty declarations. 2013169689Skan (finish_named_return_value): Don't pushdecl when not doing 2014169689Skan semantic analysis. 2015169689Skan (expand_stmt): Don't do semantic analysis for variable 2016169689Skan declarations. Handle START_CATCH_STMT. Call expand_label 2017169689Skan directly for a LABEL_STMT. Tweak handling of GOTO_STMT. Adjust 2018169689Skan HANDLERs. Handle SCOPE_STMT, CTOR_INITIALIZER, and RETURN_INIT. 2019169689Skan (expand_body): Let expand_stmt handle CTOR_INITIALIZER, 2020169689Skan RETURN_INIT and function try blocks. 2021169689Skan 2022169689Skan * cp-tree.h (language_function): Add x_eh_spec_try_block. Add 2023169689Skan x_scope_stmt_stack. Add x_in_charge_parm. 2024169689Skan (current_eh_spec_try_block): New macro. 2025169689Skan (current_scope_stmt_stack): Likewise. 2026169689Skan (current_in_charge_parm): Likewise. 2027169689Skan * decl.c (start_function): Initialize current_in_charge_parm. 2028169689Skan (finish_function): Use current_in_charge_parm rather than looking 2029169689Skan up __in_chrg. 2030169689Skan * search.c (expand_indirect_vtbls_init): Likewise. 2031169689Skan 2032169689Skan * cp-tree.def (CLEANUP_STMT): Fix spelling in dumps. 2033169689Skan (TRY_BLOCK): Likewise. 2034169689Skan (HANDLER): Likewise. 2035169689Skan (START_CATCH_STMT): New tree node. 2036169689Skan (SCOPE_STMT): Likewise. 2037169689Skan * cp-tree.h (SCOPE_BEGIN_P): New macro. 2038169689Skan (SCOPE_NULLIFIED_P): Likewise. 2039169689Skan (struct lang_decl_flags): Add pending_inline_p. Adjust dummy. 2040169689Skan (struct lang_decl): Add saved_language_function. 2041169689Skan (DECL_PENDING_INLINE_INFO): Adjust documentation. 2042169689Skan (DECL_PENDING_INLINE_P): New macro. 2043169689Skan (TYPE_TI_ARGS): Fix typo in comment. 2044169689Skan (DECL_SAVED_TREE): Add to documentation. 2045169689Skan (DECL_SAVED_FUNCTION_DATA): New macro. 2046169689Skan (START_CATCH_TYPE): Likewise. 2047169689Skan (SCOPE_END_P): New macro. 2048169689Skan (declare_parm_level): Don't declare. 2049169689Skan * decl.c (mark_lang_function): New function, split out from 2050169689Skan mark_cp_function_context. 2051169689Skan (save_function_data): New function. 2052169689Skan (declare_parm_level): Remove. 2053169689Skan (finish_function): Use save_function_data to squirrel away 2054169689Skan important stuff for later use. 2055169689Skan (mark_cp_function_context): Use mark_function_data. 2056169689Skan (lang_mark_tree): Likewise. 2057169689Skan * lex.c (begin_definition_of_inclass_inline): Set 2058169689Skan DECL_PENDING_INLINE_P. 2059169689Skan (store_pending_inline): Clear it. 2060169689Skan * pt.c (tsubst_decl): Likewise. 2061169689Skan 2062169689Skan1999-09-17 Nathan Sidwell <nathan@acm.org> 2063169689Skan 2064169689Skan * call.c (perform_implicit_conversion): Deal with error_mark_node. 2065169689Skan 2066169689Skan1999-09-17 Mark Mitchell <mark@codesourcery.com> 2067169689Skan 2068169689Skan * decl.c (warn_extern_redeclared_static): Don't get confused by 2069169689Skan static member functions. 2070169689Skan (duplicate_decls): Merge DECL_THIS_STATIC. 2071169689Skan 2072169689Skan * decl.c (expand_static_init): Make sure assignments to local 2073169689Skan statics actually occur. 2074169689Skan 2075169689Skan1999-09-17 Mark Mitchell <mark@codesourcery.com> 2076169689Skan 2077169689Skan * cp-tree.h (poplevel_class): Declare. 2078169689Skan * class.c (popclass): Use poplevel_class, not poplevel. 2079169689Skan * decl.c (poplevel_class): Don't make it static. Don't return a 2080169689Skan value. 2081169689Skan (poplevel): Don't call poplevel_class; abort in a class 2082169689Skan binding level is seen. 2083169689Skan * semantics.c (finish_translation_unit): Use pop_everything. 2084169689Skan * parse.y (member_init): Allow errors. 2085169689Skan (pending_inline): Call finish_function. 2086169689Skan * parse.c: Regenerated. 2087169689Skan * Makefile.in (CONFLICTS): Adjust. 2088169689Skan 2089169689Skan1999-09-17 Gabriel Dos Reis <gdr@codesourcery.com> 2090169689Skan 2091169689Skan * error.c: Reduce code duplication. 2092169689Skan (dump_template_value): New function. 2093169689Skan (dump_type_real): Use it. 2094169689Skan (dump_decl): Likewise. 2095169689Skan (dump_function_name): Likewise. 2096169689Skan (dump_function_decl): Don't be too talkative about function return 2097169689Skan type variety. 2098169689Skan 2099169689Skan1999-09-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2100169689Skan 2101169689Skan * lex.c (init_cpp_parse): Call xcalloc, not malloc/bzero. 2102169689Skan 2103169689Skan * xref.c (SALLOC): Call xstrdup, not xmalloc/strcpy. 2104169689Skan 2105169689Skan1999-09-16 Jason Merrill <jason@yorick.cygnus.com> 2106169689Skan 2107169689Skan * decl2.c (finish_file): Also call check_global_declarations for 2108169689Skan the pending_statics list. 2109169689Skan 2110169689Skan1999-09-15 Jason Merrill <jason@yorick.cygnus.com> 2111169689Skan 2112169689Skan * lex.c (cp_pragma_implementation): Allow #pragma implementation 2113169689Skan in header files. 2114169689Skan 2115169689Skan1999-09-15 Richard Henderson <rth@cygnus.com> 2116169689Skan 2117169689Skan * lex.c (mark_impl_file_chain): Follow the next chain. 2118169689Skan 2119169689Skan1999-09-15 Mark Mitchell <mark@codesourcery.com> 2120169689Skan 2121169689Skan * decl.c (warn_extern_redeclared_static): Simplify. Catch 2122169689Skan problems with extern "C" functions redeclared as static. 2123169689Skan (duplicate_decls): When a builtin is redeclared static, make the 2124169689Skan new function have internal linkage. 2125169689Skan 2126169689Skan1999-09-15 Mark Mitchell <mark@codesourcery.com> 2127169689Skan 2128169689Skan * decl2.c (build_expr_from_tree): Handle VA_ARG_EXPR. 2129169689Skan * pt.c (tsubst_copy): Likewise. 2130169689Skan * tree.c (search_tree): Likewise. 2131169689Skan (mapcar): Likewise. 2132169689Skan 2133169689Skan1999-09-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2134169689Skan 2135169689Skan * typeck2.c (ack): Don't declare progname. 2136169689Skan 2137169689Skan1999-09-14 Alexandre Oliva <oliva@lsd.ic.unicamp.br> 2138169689Skan 2139169689Skan * lex.c (cp_pragma_interface, cp_pragma_implementation): Copy 2140169689Skan filenames with ggc_alloc_string. 2141169689Skan 2142169689Skan1999-09-14 Mark Mitchell <mark@codesourcery.com> 2143169689Skan 2144169689Skan * decl.c (build_target_expr): Set TREE_SIDE_EFFECTS on the 2145169689Skan TARGET_EXPR. 2146169689Skan * call.c (build_over_call): Don't set TREE_SIDE_EFFECTS on 2147169689Skan the TARGET_EXPR. 2148169689Skan * cvt.c (build_up_reference): Likewise. 2149169689Skan * tree.c (build_cplus_new): Likewise. 2150169689Skan (get_target_expr): Likewise. 2151169689Skan 2152169689SkanTue Sep 14 01:45:10 1999 Marc Espie <espie@cvs.openbsd.org> 2153169689Skan 2154169689Skan * Makefile.in: Prepend $(SHELL) to move-if-change calls. 2155169689Skan 2156169689Skan1999-09-13 Mark Mitchell <mark@codesourcery.com> 2157169689Skan 2158169689Skan * cp-tree.h (build_target_expr): New function. 2159169689Skan * call.c (build_conditional_expr): Use build_target_expr. 2160169689Skan (convert_like): Likewise. 2161169689Skan (build_over_call): Likewise. 2162169689Skan * cvt.c (build_up_reference): Likewise. 2163169689Skan * decl.c (build_cleanup_on_safe_obstack): Fold into ... 2164169689Skan (destroy_local_var): Here. 2165169689Skan (build_target_expr): New function. 2166169689Skan * tree.c (build_cplus_new): Use it. 2167169689Skan (get_target_expr): Likewise. 2168169689Skan 2169169689Skan1999-09-13 Nathan Sidwell <nathan@acm.org> 2170169689Skan 2171169689Skan * typeck.c (expr_sizeof): Don't decay arrays and functions. 2172169689Skan Remove misleading comment. 2173169689Skan (build_compound_expr): Don't decay arrays. 2174169689Skan 2175169689Skan1999-09-13 Jason Merrill <jason@yorick.cygnus.com> 2176169689Skan 2177169689Skan * call.c (build_conditional_expr): Always use a TARGET_EXPR for 2178169689Skan class rvalues again. 2179169689Skan 2180169689SkanSun Sep 12 23:29:07 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2181169689Skan 2182169689Skan * Make-lang.in (g++spec.o): Depend on system.h and gcc.h. 2183169689Skan 2184169689Skan * g++spec.c: Include gcc.h. 2185169689Skan (lang_specific_driver): Constify a char*. Call xcalloc, not 2186169689Skan xmalloc/bzero. All calls to the function pointer parameter now 2187169689Skan explicitly call `fatal'. 2188169689Skan 2189169689Skan1999-09-12 Mark Mitchell <mark@codesourcery.com> 2190169689Skan 2191169689Skan * call.c (implicit_conversion): Robustify. Handle OFFSET_REFs. 2192169689Skan * cvt.c (ocp_convert): Complete the from and destination types. 2193169689Skan Adjust warning about functions always being `true' in conditionals. 2194169689Skan * decl.c (duplicate_decls): Don't play funny games with abort. 2195169689Skan * error.c (dump_expr): Handle OVERLOADs. 2196169689Skan * spew.c (probe_obstack): Remove. 2197169689Skan * typeck.c (condition_conversion): Use perform_implicit_conversion. 2198169689Skan 2199169689Skan1999-09-12 Bernd Schmidt <bernds@cygnus.co.uk> 2200169689Skan 2201169689Skan * cp-tree.h (auto_function, define_function): Adjust prototypes. 2202169689Skan * decl.c (define_function): Lose FUNCTION_CODE arg. All callers 2203169689Skan changed. 2204169689Skan (auto_function): Likewise, for CODE arg. 2205169689Skan Move code to set DECL_BUILT_IN and DECL_FUNCTION_CODE to... 2206169689Skan (builtin_function): ... here. 2207169689Skan 2208169689Skan1999-09-11 Mark Mitchell <mark@codesourcery.com> 2209169689Skan 2210169689Skan * decl.c (add_decl_to_level): Remove TREE_PERMANENT assertion. 2211169689Skan (init_decl_processing): Don't set TREE_PERMANENT for the 2212169689Skan error_mark_node. 2213169689Skan (start_decl): Don't rebuild non-permanent ARRAY_TYPEs. 2214169689Skan (grokdeclarator): Likewise. 2215169689Skan (grokparms): Don't check TREE_PERMANENT when building up lists. 2216169689Skan * decl2.c (grokfield): Don't assert TREE_PERMANENT. 2217169689Skan (mark_inline_for_output): Likewise. 2218169689Skan * expr.c (cplus_expand_expr): Don't check TREE_PERMANENT. 2219169689Skan * init.c (build_offset_ref): Don't check TREE_PERMANENT. 2220169689Skan * lex.c (check_newline): Don't check ggc_p; it is always one. 2221169689Skan * pt.c (process_template_parm): Don't check TREE_PERMANENT. 2222169689Skan * spew.c (yylex): Don't copy_node or probe_obstacks for 2223169689Skan non-permanent CONSTANTs and STRINGs. 2224169689Skan * tree.c (build_cplus_array_type_1): Don't fuss with 2225169689Skan TREE_PERMANENT on ARRAY_TYPEs. 2226169689Skan 2227169689Skan * cp-tree.def (CLEANUP_STMT): New node. 2228169689Skan * cp-tree.h (language_function): Add name_declared. 2229169689Skan (current_function_name_declared): New macro. 2230169689Skan (CLEANUP_DECL): New macro. 2231169689Skan (CLEANUP_EXPR): Likewise. 2232169689Skan (emit_local_var): Likewise. 2233169689Skan (finish_decl_cleanup): New function. 2234169689Skan * cvt.c (build_up_reference): Simplify. 2235169689Skan (ocp_convert): Remove dead code. 2236169689Skan * decl.c (start_decl): Remove call to add_decl_stmt. 2237169689Skan (grok_reference_init): Adjust, to handle bindings temporaries to 2238169689Skan references. Remove dead code. 2239169689Skan (initialize_local_var): Don't generate RTL for 2240169689Skan declarations here, or build cleanups here. Don't fuss with 2241169689Skan obstacks. Replace expand_start_target_temps calls with explicit 2242169689Skan setting of stms_are_full_exprs_p. 2243169689Skan (destroy_local_var): New function. 2244169689Skan (emit_local_var): Likewise. 2245169689Skan (cp_finish_decl): Use them, as appropriate. 2246169689Skan (start_function): Announce template functions. 2247169689Skan (store_parm_decls): Don't call declare_function_name here. 2248169689Skan (finish_stmt): Don't start emit base-initialization code when just 2249169689Skan building the statement-tree. 2250169689Skan * init.c (create_temporary_var): Move add_decl_stmt call ... 2251169689Skan (get_temp_regvar): Here. 2252169689Skan * pt.c (tsubst_expr): Make DECL_INITIAL look like what 2253169689Skan cp_finish_decl would expect. Don't call add_decl_stmt. 2254169689Skan * semantics.c (begin_compound_stmt): Call declare_function_name, 2255169689Skan if appropriate. 2256169689Skan (finish_decl_cleanup): New function. 2257169689Skan (expand_stmt): Use emit_local_var to output variables. 2258169689Skan (expand_body): Set current_function_name_declared. 2259169689Skan 2260169689Skan1999-09-10 Mark Mitchell <mark@codesourcery.com> 2261169689Skan 2262169689Skan * cp-tree.h (finish_cleanup_try_block): New function. 2263169689Skan * semantics.c (finish_cleanup_try_block): Add comment. 2264169689Skan 2265169689SkanFri Sep 10 10:32:32 1999 Bernd Schmidt <bernds@cygnus.co.uk> 2266169689Skan 2267169689Skan * cp-tree.h: Delete declarations for all tree nodes now moved to 2268169689Skan global_trees. 2269169689Skan * decl.c: Delete their definitions. 2270169689Skan (SHORT_TYPE_SIZE, INT_TYPE_SIZE, LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, 2271169689Skan FLOAT_TYPE_SIZE, DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Don't 2272169689Skan provide defaults. 2273169689Skan (init_decl_processing): Call build_common_tree_nodes and 2274169689Skan build_common_tree_nodes_2 instead of building their nodes here. 2275169689Skan Don't add gc roots for them. 2276169689Skan 2277169689Skan1999-09-10 Mark Mitchell <mark@codesourcery.com> 2278169689Skan 2279169689Skan * cp-tree.h (language_function): Rename expanding_p to 2280169689Skan x_expanding_p. Rename named_label_uses to x_named_label_uses. 2281169689Skan (expanding_p): Adjust accordingly. 2282169689Skan (TREE_VIA_PRIVATE): Fix typo in comment. 2283169689Skan (DECL_REFERENCE_SLOT): Remove. 2284169689Skan (SET_DECL_REFERENCE_SLOT): Likewise. 2285169689Skan * decl.c (named_label_uses): Adjust. Remove chicken comment. 2286169689Skan (push_overloaded_decl): Don't truncate the chain of bindings when 2287169689Skan adding an overloaded function. 2288169689Skan (grok_reference_init): Don't use DECL_REFERENCE_SLOT. 2289169689Skan (initialize_local_var): Fix typo in comment. 2290169689Skan (store_parm_decls): Don't set DECL_REFERENCE_SLOT. Tidy up. 2291169689Skan * decl2.c (start_objects): Make the fact that we are expanding 2292169689Skan the generated function right away explicit. 2293169689Skan (start_static_storage_duration_function): Likewise. 2294169689Skan (finish_file): Fix typo in comment. 2295169689Skan * init.c (build_vec_init): Correct bugs in handling cleanups. 2296169689Skan * semantics.c (maybe_convert_cond): New function. 2297169689Skan (FINISH_COND): Always store the condition, even if there's 2298169689Skan a declaration. 2299169689Skan (finish_if_stmt_cond): Use maybe_convert_cond. 2300169689Skan (finish_while_stmt_cond): Likewise. 2301169689Skan (finish_do_stmt): Likewise. 2302169689Skan (finish_for_cond): Likewise. 2303169689Skan (expand_cond): Adjust. 2304169689Skan 2305169689Skan * cp-tree.h (FN_TRY_BLOCK_P): New macro. 2306169689Skan * init.c (perform_member_init): Remove obstack machinations. 2307169689Skan (expand_cleanup_for_base): Likewise. 2308169689Skan (finish_init_stmts): Mark the statement-expression as used. 2309169689Skan * method.c (emit_thunk): Use tree-generating functions, not 2310169689Skan RTL. 2311169689Skan (do_build_copy_constructor): Likewise. 2312169689Skan (do_build_assign_ref): Likewise. 2313169689Skan (synthesize_method): Likewise. Keep track of line numbers. 2314169689Skan * pt.c (tsubst_expr): Handle various kinds of try blocks. 2315169689Skan * semantics.c (expand_stmts): Remove. 2316169689Skan (begin_function_try_block): Set FN_TRY_BLOCK_P. 2317169689Skan (finish_function_try_block): Be careful rechaining 2318169689Skan function try blocks. 2319169689Skan (expand_stmt): Loop through all the statements at a given level. 2320169689Skan (exapnd_body): Be careful with line-numbers here too. Prepare for 2321169689Skan being called directly from the parser. 2322169689Skan 2323169689Skan * cp-tree.h (finish_function): Adjust prototype. 2324169689Skan * decl.c (finish_function): Return the function compiled. 2325169689Skan * pt.c (instantiate_decl): Don't play games with obstacks. 2326169689Skan * tree.c (mapcar): Handle OFFSET_REF and BIT_FIELD_REF. 2327169689Skan (search_tree): Likewise. 2328169689Skan * typeck.c: Fix typo in comment. 2329169689Skan * typeck2.c (store_init_value): Add comment. 2330169689Skan 2331169689Skan * cp-tree.h (CPTI_ATEXIT): New macro. 2332169689Skan (atexit_node): Likewise. 2333169689Skan * decl.c (destroy_local_static): New function, broken out from ... 2334169689Skan (expand_static_init): Here. 2335169689Skan 2336169689Skan * rtti.c (get_tinfo_var): These should always be global 2337169689Skan (expand_si_desc): Use tree, not RTL, functions to generate code. 2338169689Skan (expand_class_desc): Likewise. 2339169689Skan (expand_ptr_desc): Likewise. 2340169689Skan (expand_attr_desc): Likewise. 2341169689Skan (expand_generic_desc): Likewise. 2342169689Skan (synthesize_tinfo_fn): Likewise. 2343169689Skan 2344169689Skan1999-09-09 Mark Mitchell <mark@codesourcery.com> 2345169689Skan 2346169689Skan * semantics.c (RECHAIN_STMTS): Remove `last' parameter. 2347169689Skan (RECHAIN_STMTS_FROM_LAST): Remove. Replace all uses with 2348169689Skan RECHAIN_STMTS. 2349169689Skan (RECHAIN_STMST_FROM_CHAIN): Likewise. 2350169689Skan 2351169689Skan * parse.y (simple_stmt): Fix typo in last change. 2352169689Skan 2353169689Skan * cp-tree.h (EXPR_STMT_ASSIGNS_THIS): New macro. 2354169689Skan (STMT_IS_FULL_EXPR_P): Likewise. 2355169689Skan (STMT_LINENO_FOR_FN_P): Likewise. 2356169689Skan (prep_stmt): New function. 2357169689Skan (building_stmt_tree): Tweak for safety. 2358169689Skan * pt.c (tsubst_expr): Use prep_stmt throughout. 2359169689Skan (add_tree): Move it to semantics.c 2360169689Skan * semantics.c (add_tree): Move it here. 2361169689Skan (finish_expr_stmt_real): New function. 2362169689Skan (finish_expr_stmt): Use it. 2363169689Skan (finish_if_stmt_cond): Use FINISH_COND. 2364169689Skan (finish_while_stmt_cond): Likewise. 2365169689Skan (finish_for_cond): Likewise. 2366169689Skan (finish_stmt_tree): Tweak line-number handling. 2367169689Skan (prep_stmt): New function. 2368169689Skan (expand_stmt): Use it. 2369169689Skan 2370169689Skan * cp-tree.h (begin_switch_stmt): Adjust prototype. 2371169689Skan (finish_switch_cond): Likewise. 2372169689Skan * parse.y (simple_stmt): Adjust accordingly. 2373169689Skan * parse.c: Regenerated. 2374169689Skan * pt.c (tsubst_expr): Adjust accordingly. 2375169689Skan * semantics.c (expand_cond): New function. 2376169689Skan (FINISH_COND): New macro. 2377169689Skan (begin_switch_stmt): Build the SWITCH_STMT here. 2378169689Skan (finish_switch_stmt_cond): Not here. 2379169689Skan (expand_stmt): Adjust calls to begin_switch_stmt and 2380169689Skan finish_switch_cond. Use expand_cond throughout. 2381169689Skan 2382169689Skan * dump.c (dequeue_and_dump): Dump types for constants. 2383169689Skan Describe DECL_ARG_TYPE more intuitively. 2384169689Skan Handle ARRAY_REF. 2385169689Skan 2386169689Skan * decl.c (lang_mark_tree): Mark TYPE_LANG_SPECIFIC. 2387169689Skan (lang_cleanup_tree): Remove. 2388169689Skan * lex.c (make_lang_type): Use ggc_alloc to allocate 2389169689Skan TYPE_LANG_SPECIFIC. 2390169689Skan 2391169689Skan Reorganize per-function data. 2392169689Skan * cp-tree.h (saved_scope): Add function_decl, bindings. 2393169689Skan (language_function): Rename binding_level to bindings. 2394169689Skan (cp_function_chain): Use the current_function, not the 2395169689Skan outer_function_chain. 2396169689Skan (current_class_ptr): Make it work, even when there's no 2397169689Skan current function. 2398169689Skan (current_class_ref): Likewise. 2399169689Skan (SF_DEFAULT, SF_PRE_PARSED, SF_INCLASS_INLINE, SF_EXPAND): New 2400169689Skan macros. 2401169689Skan (clear_temp_name): Remove. 2402169689Skan * decl.c (check_function_type): New function, broken out from 2403169689Skan start_function. 2404169689Skan (current_binding_level): Adjust definition. 2405169689Skan (pushlevel): Simplify. 2406169689Skan (poplevel): Don't use named_label_uses when we're outside 2407169689Skan a function scope. 2408169689Skan (mark_saved_scope): Mark function_decl and bindings. 2409169689Skan (maybe_push_to_top_level): Don't unconditionally push a new 2410169689Skan function context. Save bindings and the current_function_decl. 2411169689Skan Don't clear named_labels. 2412169689Skan (pop_from_top_level): Pop function context if appropriate. 2413169689Skan (init_decl_processing): Set init_lang_status and free_lang_status, 2414169689Skan rather than save_lang_status and restore_lang_status. 2415169689Skan (start_function): Take SF_* flags. Don't clear per-function data. 2416169689Skan Reorder and simplify to use new per-function data code. Add 2417169689Skan asserts. 2418169689Skan (store_parm_decls): Don't call init_function_start here. 2419169689Skan (finish_function): Adjust for new handling of per-function data. 2420169689Skan (push_cp_function_context): Simplify. 2421169689Skan (mark_cp_function_context): Change binding_level to bindings. 2422169689Skan * decl2.c (clear_temp_name): Remove. 2423169689Skan (start_objects): Use SF flags to start_function. 2424169689Skan (start_static_storage_duration_function): Likewise. 2425169689Skan * except.c (start_anon_func): Remove redundant calls to 2426169689Skan push_function_context_to. Use SF flags to start function. 2427169689Skan (end_anon_func): Remove redundant call to pop_function_context 2428169689Skan from. 2429169689Skan * lex.c (reinit_parse_for_function): Don't initialize per-function 2430169689Skan data. 2431169689Skan * method.c (emit_thunk): Clear current_function after calling 2432169689Skan assemble_end_function. Use SF flags for start_function. 2433169689Skan (synthesize_method): Use SF flags for start_function. 2434169689Skan * parse.c: Regenerated. 2435169689Skan * parse.y (fn.defpen): Likewise. 2436169689Skan (pending_inline): Clear current_function, even if something goes 2437169689Skan wrong. 2438169689Skan * pt.c (instantiate_decl): Use SF flags to start_function. 2439169689Skan Don't save and restore expanding_p. 2440169689Skan (add_tree): Handle the case where we are outside any function. 2441169689Skan (end_tree): Likewise. 2442169689Skan * rtti.c (sythesize_tinfo_fn): Use SF flags to start_function. 2443169689Skan * semantics.c (begin_function_definition): Likewise. 2444169689Skan (expand_body): Likewise. 2445169689Skan 2446169689Skan1999-09-09 Nathan Sidwell <nathan@acm.org> 2447169689Skan 2448169689Skan * cp-tree.h (convert_to_void): Prototype new function. 2449169689Skan (require_complete_type_in_void): Remove prototype. 2450169689Skan * cvt.c (convert_to_void): New function. 2451169689Skan (ocp_convert): Use convert_to_void. 2452169689Skan * decl.c (cplus_expand_expr_stmt): Likewise, for complete 2453169689Skan expressions. 2454169689Skan * typeck.c (require_complete_type_in_void): Remove function. 2455169689Skan (build_compound_expr): Use convert_to_void. 2456169689Skan (build_static_cast): Likewise. 2457169689Skan (build_c_cast): Likewise. 2458169689Skan * semantics.c (finish_expr_stmt): Do not decay full expressions. 2459169689Skan 2460169689Skan * typeck.c (build_x_compound_expr): Add FIXME. 2461169689Skan 2462169689Skan1999-09-08 Mark Mitchell <mark@codesourcery.com> 2463169689Skan 2464169689Skan * cp-tree.h (scratch_tree_cons): Remove. 2465169689Skan * call.c: Replace all uses of expr_tree_cons, saveable_tree_cons, 2466169689Skan and perm_tree_cons with plain tree_cons. 2467169689Skan * class.c: Likewise. 2468169689Skan * decl.c: Likewise. 2469169689Skan * decl2.c: Likewise. 2470169689Skan * except.c: Likewise. 2471169689Skan * expr.c: Likewise. 2472169689Skan * init.c: Likewise. 2473169689Skan * lex.c: Likewise. 2474169689Skan * method.c: Likewise. 2475169689Skan * parse.y: Likewise. 2476169689Skan * pt.c: Likewise. 2477169689Skan * repo.c: Likewise. 2478169689Skan * rtti.c: Likewise. 2479169689Skan * search.c: Likewise. 2480169689Skan * typeck.c: Likewise. 2481169689Skan * parse.c: Regenerated. 2482169689Skan * tree.c (build_srcloc): Simplify. 2483169689Skan 2484169689Skan1999-09-08 Bruce Korb autogen@linuxbox.com 2485169689Skan 2486169689Skan * Makefile.in: Give the gperf user a hint about why "gperf -F" fails. 2487169689Skan 2488169689Skan1999-09-08 Mark Mitchell <mark@codesourcery.com> 2489169689Skan 2490169689Skan * cp-tree.h (lang_decl_flags): Remove permanent_attr. 2491169689Skan Remove next. 2492169689Skan (LANG_DECL_PERMANENT): Remove. 2493169689Skan * decl.c (duplicate_decls): Don't mess about with obstacks trying 2494169689Skan to free memory. 2495169689Skan (lang_mark_tree): Mark DECL_LANG_SPECIFIC. 2496169689Skan * lex.c (free_lang_decl_chain): Remove. 2497169689Skan (build_lang_decl): Don't use obstacks. 2498169689Skan (retrofit_lang_decl): Likewise. 2499169689Skan (copy_lang_decl): Likewise. 2500169689Skan 2501169689Skan * cp-tree.h (saved_scope): Remove old_binding_level and 2502169689Skan function_decl. Tidy up. 2503169689Skan * decl.c (mark_saved_scope): Don't set them. 2504169689Skan (maybe_push_to_top_level): Clear memory. 2505169689Skan 2506169689Skan * decl.c (layout_var_decl): Change prototype. Don't complete 2507169689Skan types for external objects. 2508169689Skan (check_initializer): Likewise. Tidy. 2509169689Skan (initialize_local_var): Complete types here. 2510169689Skan (cp_finish_decl): Not here. Reorganize a little. 2511169689Skan (grokvardecl): Don't complete types here. 2512169689Skan 2513169689Skan * decl.c (start_function): Clear last_dtor_insn and 2514169689Skan last_parm_cleanup_insn. 2515169689Skan (push_cp_function_context): Just copy over a little of 2516169689Skan the old context, not all of it. 2517169689Skan 2518169689Skan * cp-tree.h (copy_to_permanent): Remove. 2519169689Skan (permanent_p): Likewise. 2520169689Skan * decl.c (building_typename_type): Don't use copy_to_permanent. 2521169689Skan (start_decl): Likewise. 2522169689Skan (grok_reference_init): Likewise. 2523169689Skan (cp_finish_decl): Likewise. 2524169689Skan * init.c (build_new_1): Don't use mapcar. 2525169689Skan (build_vec_delete_1): Don't use copy_to_permanent. 2526169689Skan (build_vec_init): Likewise. 2527169689Skan * parse.y (primary): Likewise. 2528169689Skan * parse.c: Regenerated. 2529169689Skan * pt.c (push_template_decl_real): Don't use copy_to_permanent. 2530169689Skan (lookup_template_class): Likewise. 2531169689Skan (tsubst_friend_function): Likewise. 2532169689Skan (instantiate_class_template): Likewise. 2533169689Skan (tsubst_decl): Likewise. 2534169689Skan (tsubst): Likewise. 2535169689Skan (instantiate_template): Likewise. 2536169689Skan (unify): Likewise. 2537169689Skan * rtti.c (get_tinfo_fn): Likewise. 2538169689Skan (build_dynamic_cast): Likewise. 2539169689Skan * semantics.c (finish_if_stmt_cond): Likewise. 2540169689Skan (finish_while_stmt_cond): Likewise. 2541169689Skan (finish_do_stmt): Likewise. 2542169689Skan (finish_for_cond): Likewise. 2543169689Skan (finish_for_expr): Likewise. 2544169689Skan (finish_cleanup): Likewise. 2545169689Skan (add_decl_stmt): Likewise. 2546169689Skan (finish_named_return_value): Likewise. 2547169689Skan (finish_qualified_call_expr): Likewise. 2548169689Skan * tree.c (perm_manip): Remove. 2549169689Skan (build_exception_variant): Don't use copy_to_permanent. 2550169689Skan (permanent_p): Remove. 2551169689Skan (copy_to_permament): Remove. 2552169689Skan (build_min_nt): Don't use copy_to_permanent. 2553169689Skan (build_min): Likewise. 2554169689Skan (min_tree_cons): Likewise. 2555169689Skan * typeckc.c (build_static_cast): Likewise. 2556169689Skan (build_reinterpret_cast): Likewise. 2557169689Skan (build_const_cast): Likewise. 2558169689Skan 2559169689Skan1999-09-07 Mark Mitchell <mark@codesourcery.com> 2560169689Skan 2561169689Skan * decl.c (ggc_p): Set it to 1. 2562169689Skan (mark_saved_scope): Add prototype. 2563169689Skan 2564169689Skan1999-09-07 Richard Henderson <rth@cygnus.com> 2565169689Skan 2566169689Skan * cp-tree.h (C_PROMOTING_INTEGER_TYPE_P): Delete. 2567169689Skan * typeck.c (self_promoting_args_p): Delete. 2568169689Skan 2569169689Skan1999-09-07 Jason Merrill <jason@yorick.cygnus.com> 2570169689Skan 2571169689Skan * search.c (binfo_for_vtable): Use CLASSTYPE_VFIELD_PARENT. 2572169689Skan (dfs_bfv_queue_p, dfs_bfv_helper, struct bfv_info): Remove. 2573169689Skan 2574169689Skan1999-09-07 Mark Mitchell <mark@codesourcery.com> 2575169689Skan 2576169689Skan * Makefile.in (tree.o): Depend on ggc.h. 2577169689Skan * class.c (make_method_vec): Remove. 2578169689Skan (free_method_vec): Likewise. 2579169689Skan (free_method_vecs): Remove. 2580169689Skan (add_method): Don't use them. 2581169689Skan * cp-tree.def (PTRMEM_CST): Make it longer. 2582169689Skan (TEMPLATE_PARM_INDEX): Make it shorter. 2583169689Skan * cp-tree.h (BINDING_HAS_LEVEL_P): New macro. 2584169689Skan (template_parm_index): Remove RTL field. 2585169689Skan (ptrmem_cst): Add RTL field. 2586169689Skan (finish_function): Removed parameter. 2587169689Skan (process_next_inline): Change prototype. 2588169689Skan (init_cplus_unsave): Rename to init_tree. 2589169689Skan (binding_init): Remove. 2590169689Skan * decl.c (free_binding_nodes): Remove. 2591169689Skan (push_binding): Don't use them. Set BINDING_HAS_LEVEL_P. 2592169689Skan (pop_binding): Don't use free_binding_nodes. 2593169689Skan (free_binding_vecs): Remove. 2594169689Skan (store_bindings): Don't use them. 2595169689Skan (pop_from_top_level): Likewise. 2596169689Skan (lookup_namespace_name): Simplify. 2597169689Skan (build_typename_type): Don't use obstack_free. 2598169689Skan (unqualified_namespace_lookup): Simplify. 2599169689Skan (lookup_name_real): Simplify. 2600169689Skan (start_function): Remove comment about leaks. 2601169689Skan (finish_function): Removed nested parameter. Call 2602169689Skan expand_end_bindings even when building_stmt_tree. 2603169689Skan Call ggc_push_context and ggc_pop_context around 2604169689Skan rest_of_compilation, if necessary. 2605169689Skan (mark_cp_function_context): Handle a NULL language-context. 2606169689Skan (lang_mark_false_label_stack): Fix typo. 2607169689Skan (lang_mark_tree): Handle CPLUS_BINDING, OVERLOAD, 2608169689Skan TEMPLATE_PARM_INDEX. Handle the funny TYPE_LANG_SPECIFIC on 2609169689Skan pointer to method types. 2610169689Skan (lang_cleanup_tree): Use free to free TYPE_LANG_SPECIFIC. 2611169689Skan * decl2.c (finish_objects): Adjust call to finish_function. 2612169689Skan (finish_static_store_duration_function): Likewise. 2613169689Skan (do_nonmember_using_decl): Remove call to binding_init. 2614169689Skan * except.c (end_anon_func): Adjust call to finish_function. 2615169689Skan * lex.c (mark_impl_file_chain): New function. 2616169689Skan (init_parse): Call init_tree, not init_cplus_unsave. 2617169689Skan Add GC roots. 2618169689Skan (cp_pramga_interface): Use xmalloc, not permalloc. 2619169689Skan (cp_pragma_implementation): Likewise. 2620169689Skan (begin_definition_of_inclass_inline): Simplify. 2621169689Skan (process_next_inline): Adjust prototype. 2622169689Skan (do_scoped_id): Don't call binding_init. 2623169689Skan (make_lang_type): Allocate TYPE_LANG_SPECIFIC with xmalloc. 2624169689Skan * method.c (emit_thunk): Adjust call to finish_function. 2625169689Skan (synthesize_method): Likewise. 2626169689Skan * parse.y (%union): Add a new `pi' variant. 2627169689Skan (PRE_PARSED_FUNCTION_DECL): Use it. 2628169689Skan (fn.defpen): Likewise. 2629169689Skan (fndef): Adjust call to finish_function. 2630169689Skan * pt.c (instantiate_decl): Likewise. 2631169689Skan * rtti.c (syntheisze_tinfo_fn): Likewise. 2632169689Skan * semantics.c (expand_body): Likewise. 2633169689Skan * tree.c: Include ggc.h. 2634169689Skan (mark_list_hash): New function. 2635169689Skan (binding_init): Remove. 2636169689Skan (init_cplus_unsave): Rename to ... 2637169689Skan (init_tree): This. Add GC roots. 2638169689Skan 2639169689Skan1999-09-05 Mark Mitchell <mark@codesourcery.com> 2640169689Skan 2641169689Skan Get ready for garbage collection. 2642169689Skan * Makefile.in (CXX_TREE_H): Add varray.h 2643169689Skan (lex.o): Depend on ggc.h. 2644169689Skan (decl.o): Likewise. 2645169689Skan (decl2.o): Likewise. 2646169689Skan (method.o): Likewise. 2647169689Skan (search.o): Likewise. 2648169689Skan (pt.o): Likewise. 2649169689Skan (repo.o): Likewise. 2650169689Skan * class.c: Include ggc.h. 2651169689Skan (current_class_name): Remove. 2652169689Skan (current_class_type): Likewise. 2653169689Skan (current_access_specifier): Likewise. 2654169689Skan (previous_class_type): Likewise. 2655169689Skan (previous_class_values): Likewise. 2656169689Skan (class_cache_firstobj): Likewise. 2657169689Skan (current_lang_base): Likewise. 2658169689Skan (current_lang_stack): Likewise. 2659169689Skan (current_lang_stacksize): Likewise. 2660169689Skan (lang_name_c): Likewise. 2661169689Skan (lang_name_cplusplus): Likewise. 2662169689Skan (lang_name_java): Likewise. 2663169689Skan (current_lang_name): Likewise. 2664169689Skan (base_layout_decl): Likewise. 2665169689Skan (access_default_node): Likewise. 2666169689Skan (access_public_node): Likewise. 2667169689Skan (access_protected_node): Likewise. 2668169689Skan (access_private_node): Likewise. 2669169689Skan (access_default_virtual_node): Likewise. 2670169689Skan (access_public_virtual_node): Likewise. 2671169689Skan (access_protected_virtual_node): Likewise. 2672169689Skan (access_private_virtual_node): Likewise. 2673169689Skan (signed_zero_node): Likewise. 2674169689Skan (init_class_processing): Don't build base_layout_decl. 2675169689Skan (push_lang_context): Adjust now that current_lang_base is a varray. 2676169689Skan (pop_lang_context): Likewise. 2677169689Skan * cp-tree.h: Include varray.h. 2678169689Skan (cp_global_trees): Add access_default, access_public, 2679169689Skan access_protected, access_private, access_default_virtual, 2680169689Skan access_public_virtual, access_protected_virtual, 2681169689Skan access_private_virtual, ctor_identifier, delta2_identifier, 2682169689Skan delta_identifier, dtor_identifier, in_charge_identifier, 2683169689Skan index_identifier, nelts_identifier, this_identifier, 2684169689Skan pfn_identifier, pfn_or_delta2_identifier, vptr_identifier, 2685169689Skan lang_name_c, lang_name_cplusplus, lang_name_java, 2686169689Skan empty_except_spec, null, jclass, minus_one, terminate. 2687169689Skan (saved_scope): Move here from decl.c. Define globals in terms of 2688169689Skan saved_scope: current_namespace, current_class_name, 2689169689Skan current_class_type, current_access_specifier, current_lang_stack, 2690169689Skan current_lang_base, current_lang_name, current_function_parms, 2691169689Skan current_template_parms, processing_template_decl, 2692169689Skan processing_specialization, processing_explicit_instantiation, 2693169689Skan previous_class_type, previous_class_values, class_cache_firstobj. 2694169689Skan (scope_chain): New variable. 2695169689Skan (init_pt): New function. 2696169689Skan * decl.c (current_namespace): Remove. 2697169689Skan (this_identifier, in_charge_identifier, ctor_identifier): Likewise. 2698169689Skan (dtor_identifier, pfn_identifier, index_identifier): Likewise. 2699169689Skan (delta_identifier, delta2_identifier): Likewise. 2700169689Skan (pfn_or_delta2_identifier, tag_identifier): Likewise 2701169689Skan (vt_off_identifier, empty_except_spec, null_node): Likewise. 2702169689Skan (current_function_parms, current_lang_base): Remove. 2703169689Skan (current_lang_stack, previous_class_values): Remove. 2704169689Skan (class_binding_level): Macroize. 2705169689Skan (saved_scope): Remove. 2706169689Skan (current_saved_scope): Rename to scope_chain. 2707169689Skan (mark_saved_scope): Adjust for new scope structure. 2708169689Skan (maybe_push_to_top_level): Likewise. 2709169689Skan (pop_from_top_level): Likewise. 2710169689Skan (duplicate_decls): Adjust now that current_lang_base is a varray. 2711169689Skan (build_typename_type): Call ggc_add_tree_hash_table_root. 2712169689Skan (init_decl_processing): Call init_pt. Call push_to_top_level to 2713169689Skan set up globals. Add GC roots. 2714169689Skan (xref_basetypes): Adjust now that current_lang_base is a varray. 2715169689Skan * decl.h (this_identifier): Remove. 2716169689Skan (in_charge_identifier): Likewise. 2717169689Skan * decl2.c: Don't include varray.h. 2718169689Skan (current_namespace): Remove. 2719169689Skan (init_decl2): Add GC roots. 2720169689Skan * except.c (Terminate): Remove. 2721169689Skan (init_exception_processing): Use terminate_node instead. 2722169689Skan (build_terminate_handler): Likewise. 2723169689Skan * init.c (nc_nelts_field_id): Remove. 2724169689Skan (minus_one): Likewise. 2725169689Skan (init_init_processing): Use minus_one_node and nelts_identifier 2726169689Skan instead. Add GC roots. 2727169689Skan (jclass_node): Remove. 2728169689Skan (build_new_1): Use nelts_identifier. 2729169689Skan (build_vec_init): Likewise. 2730169689Skan (build_vec_delete): Likewise. 2731169689Skan * lex.c: Include ggc.h. 2732169689Skan (defarg_fn): Move declaration early. 2733169689Skan (defarg_parms): Likewise. 2734169689Skan (init_parse): Add GC roots. 2735169689Skan (handle_cp_pragma): Remove redundant declaration of 2736169689Skan pending_vtables. 2737169689Skan * method.c: Include ggc.h. 2738169689Skan (btypelist): Make it a varray. All uses changed. 2739169689Skan (ktypelist): Likewise. 2740169689Skan (init_method): Add GC roots. 2741169689Skan * pt.c: Don't include varray.h. Include ggc.h. 2742169689Skan (current_template_parms): Remove. 2743169689Skan (processing_template_decl): Likewise. 2744169689Skan (processing_specialization): Likewise. 2745169689Skan (processing_explicit_instantiation): Likewise. 2746169689Skan (init_pt): New function. 2747169689Skan * repo.c: Include ggc.h. 2748169689Skan (init_repo): Add GC roots. 2749169689Skan * search.c: Don't include varray.h. 2750169689Skan (_vptr_name): Remove. 2751169689Skan (lookup_field_1): Use vtpr_identifier instead. 2752169689Skan (expand_indirect_vtbls_init): Remove redundant declaration of 2753169689Skan in_charge_identifier. 2754169689Skan (init_search_processing): Use vptr_identifier. 2755169689Skan 2756169689Skan1999-09-05 Richard Henderson <rth@cygnus.com> 2757169689Skan Bernd Schmidt <bernds@cygnus.co.uk> 2758169689Skan Mark Mitchell <mark@codesourcery.com> 2759169689Skan 2760169689Skan * Makefile.in (parse.o): Depend on ggc.h. 2761169689Skan (decl2.o): Depend on ggc.h. 2762169689Skan (init.o): Depend on ggc.h. 2763169689Skan * cp-tree.h (init_decl2): Declare. 2764169689Skan (cp_parse_init): Likewise. 2765169689Skan * decl.c (ggc_p): Define to zero. 2766169689Skan (mark_saved_scope): New function. 2767169689Skan (init_decl_processing): Call cp_parse_init, and cp_decl2. 2768169689Skan Register GC roots. 2769169689Skan (expand_static_init): Add GC roots. 2770169689Skan * decl2.c: Include ggc.h. 2771169689Skan (init_decl2): New function. 2772169689Skan * init.c: Include ggc.h. 2773169689Skan (init_init_processing): Add GC roots. 2774169689Skan * parse.y: Include ggc.h. 2775169689Skan (cp_parse_init): New function. 2776169689Skan 2777169689Skan1999-09-04 Mark Mitchell <mark@codesourcery.com> 2778169689Skan 2779169689Skan * decl.c (init_decl_processing): Set mark_lang_status. 2780169689Skan (lang_mark_false_label_stack): Adjust prototype. 2781169689Skan * decl2.c (grok_function_init): Remove extraneous declaration of 2782169689Skan abort_fndecl. 2783169689Skan 2784169689Skan * Make-lang.in (cc1plus): Remove dependency on GGC. 2785169689Skan * Makefile.in (OBJS): Don't mention ggc-simple.o. 2786169689Skan (OBJDEPS): Don't mention ggc-simple.o. 2787169689Skan 2788169689Skan * Make-lang.in (cc1plus): Depend on $(GGC). 2789169689Skan * Makefile.in (OBJS): Add ggc-simple.o. 2790169689Skan (OBJDEPS): Likewise. 2791169689Skan * cp-tree.h (language_function): Rename members to `x_' versions; 2792169689Skan we now have x_named_labels, x_ctor_label, x_dtor_label, 2793169689Skan x_base_init_list, x_member_init_list, x_base_init_expr, 2794169689Skan x_current_class_ptr, x_current_class_ref, x_last_tree, 2795169689Skan x_last_expr_type, x_last_dtor_insn, x_last_parm_cleanup_insn, and 2796169689Skan x_result_rtx. 2797169689Skan (dtor_label, ctor_label, current_base_init_list, 2798169689Skan current_member_init_list, base_init_expr, current_class_ptr, 2799169689Skan current_class_ref, last_tree, last_expr_type): Adjust accordingly. 2800169689Skan * decl.c: Include ggc.h. 2801169689Skan (last_dtor_insn): Adjust to use x_ names. 2802169689Skan (last_parm_cleanup_insn): Likewise. 2803169689Skan (original_result_rtx): Likewise. 2804169689Skan (named_labels): Likewise. 2805169689Skan (mark_binding_level): New function. 2806169689Skan (mark_cp_function_context): Likewise. 2807169689Skan (mark_false_label_stack): Likewise. 2808169689Skan (lang_mark_tree): Likewise. 2809169689Skan (lang_cleanup_tree): Likewise. 2810169689Skan 2811169689Skan1999-09-03 Mark Mitchell <mark@codesourcery.com> 2812169689Skan 2813169689Skan * Makefile.in (CXX_TREE_H): Include function.h. 2814169689Skan (decl.o): Don't depend on function.h. 2815169689Skan (decl2.o): Likewise. 2816169689Skan (typeck.o): Likewise. 2817169689Skan (init.o): Likewise. 2818169689Skan (method.o): Likewise. 2819169689Skan * cp-tree.h: Include function.h. 2820169689Skan (cp_function): Rename to language_function. Remove next. 2821169689Skan (cp_function_chain): Make it a macro, not a variable. 2822169689Skan (push_cp_function_context): Don't declare. 2823169689Skan (pop_cp_function_context): Likewise. 2824169689Skan * decl.c: Don't include function.h. 2825169689Skan (push_cp_function_context): Make it static. Make it suitable for 2826169689Skan a save_lang_status callback. 2827169689Skan (pop_cp_function_context): Likewise. 2828169689Skan (maybe_push_to_top_level): Call push_function_context_to, not 2829169689Skan push_cp_function_context. 2830169689Skan (pop_from_top_level): Call pop_function_context_from, not 2831169689Skan pop_cp_function_context. 2832169689Skan (init_decl_processing): Set save_lang_status and 2833169689Skan restore_lang_status. Call push_function_context_to, not 2834169689Skan push_cp_function_context. 2835169689Skan (cp_function_chain): Remove. 2836169689Skan * decl2.c: Don't include function.h. 2837169689Skan * except.c: Don't include function.h. 2838169689Skan (start_anon_func): Call push_function_context_to, not 2839169689Skan push_cp_function_context. 2840169689Skan (end_anon_func): Call pop_function_context_from, not 2841169689Skan pop_cp_function_context. 2842169689Skan * init.c: Don't include function.h. 2843169689Skan * lex.c (begin_definition_of_inclass_inline): Call 2844169689Skan push_function_context_to, not push_cp_function_context. 2845169689Skan (process_next_inline): Call pop_function_context_from, not 2846169689Skan pop_cp_function_context. 2847169689Skan * method.c: Don't include function.h. 2848169689Skan (synthesize_method): Call push_function_context_to, not 2849169689Skan push_cp_function_context. Call pop_function_context_from, not 2850169689Skan pop_cp_function_context. 2851169689Skan * typeck.c: Don't include function.h. 2852169689Skan 2853169689Skan * decl.c (expand_static_init): Tweak handling of static 2854169689Skan initializations for objects without constructors. 2855169689Skan 2856169689Skan1999-09-03 Nathan Sidwell <nathan@acm.org> 2857169689Skan 2858169689Skan * typeck.c (build_indirect_ref): Reject dereference of pointer to 2859169689Skan void. 2860169689Skan 2861169689Skan1999-09-02 Mark Mitchell <mark@codesourcery.com> 2862169689Skan 2863169689Skan * cp-tree.h (cp_function): Move here, from decl.c. 2864169689Skan (cp_function_chain): Declare. 2865169689Skan (dtor_label): New macro, instead of variable. 2866169689Skan (ctor_label): Likewise. 2867169689Skan (current_base_init_list): Likewise. 2868169689Skan (current_member_init_list): Likewise. 2869169689Skan (base_init_expr): Likewise. 2870169689Skan (current_class_ptr): Likewise. 2871169689Skan (current_class_ref): Likewise. 2872169689Skan (last_tree): Likewise. 2873169689Skan (last_expr_type): Likewise. 2874169689Skan (current_function_returns_value): Likewise. 2875169689Skan (current_function_returns_null): Likewise. 2876169689Skan (current_function_just_assigned_this): Likewise. 2877169689Skan (current_function_parms_stored): Likewise. 2878169689Skan (temp_name_counter): Likewise. 2879169689Skan (static_labelno): Likewise. 2880169689Skan (expanding_p): Likewise. 2881169689Skan (stmts_are_full_exprs_p): Likewise. 2882169689Skan (in_function_try_handler): Likewise. 2883169689Skan (lang_type): Remove nested type_flags. All uses changed. 2884169689Skan * call.c (ctor_label): Remove. 2885169689Skan (dtor_label): Likewise. 2886169689Skan * class.c (current_class_ptr): Remove. 2887169689Skan (current_class_ref): Likewise. 2888169689Skan * decl.c (static_labelno): Remove. 2889169689Skan (dtor_label): Likewise. 2890169689Skan (last_dtor_insn): New macro, instead of variable. 2891169689Skan (last_parm_cleanup_insn): Likewise. 2892169689Skan (original_result_rtx): Likewise. 2893169689Skan (in_function_try_handler): Remove. 2894169689Skan (named_label_uses): New macro, instead of variable. 2895169689Skan (named_labels): Likewise. 2896169689Skan (current_function_returns_value): Remove. 2897169689Skan (current_function_returns_null): Likewise. 2898169689Skan (current_function_assigns_this): New macro, instead of variable. 2899169689Skan (current_function_just_assigned_this): Likewise. 2900169689Skan (current_binding_level): Likewise. 2901169689Skan (init_decl_processing): Call push_cp_function_context. 2902169689Skan (cp_function): Move to cp-tree.h 2903169689Skan (cp_function_chain): Make it global. 2904169689Skan (temp_name_counter): Remove. 2905169689Skan (push_cp_function_context): Simplify. 2906169689Skan (pop_cp_function_context): Likewise. 2907169689Skan * decl2.c (temp_name_counter): Remove. 2908169689Skan * init_c (current_base_init_list): Likewise. 2909169689Skan (current_member_init_list): Likewise. 2910169689Skan (base_init_expr): Likewise. 2911169689Skan * method.c (static_labelno): Likewise. 2912169689Skan * pt.c (last_tree): Likewise. 2913169689Skan * semantics.c (expanding_p): Likewise. 2914169689Skan (stmts_are_full_exprs_p): Likewise. 2915169689Skan (last_expr_type): Likewise. 2916169689Skan * typeck.c (dtor_label): Likewise. 2917169689Skan (ctor_label): Likewise. 2918169689Skan 2919169689Skan1999-09-01 Alex Samuel <samuel@codesourcery.com> 2920169689Skan 2921169689Skan * decl2.c (arg_assoc_template_arg): New prototype. New function. 2922169689Skan (arg_assoc_class): Use arg_assoc_template_arg for template 2923169689Skan arguments. 2924169689Skan (arg_assoc): Likewise. 2925169689Skan * pt.c (mangle_class_name_for_template): Allow member template 2926169689Skan template arguments. 2927169689Skan 2928169689Skan1999-09-02 Nathan Sidwell <nathan@acm.org> 2929169689Skan 2930169689Skan * call.c (build_conditional_expr): Warn on enum mismatches. 2931169689Skan (convert_arg_to_ellipsis): Move non-pod check to after 2932169689Skan conversion. 2933169689Skan 2934169689Skan1999-09-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2935169689Skan 2936169689Skan * gxx.gperf (hash, is_reserved_word): Add prototypes. 2937169689Skan 2938169689Skan * init.c (build_vec_init): Initialize variable `try_block'. 2939169689Skan 2940169689Skan * lex.c (init_parse): Call memcpy, not bcopy, to avoid casts. 2941169689Skan Likewise for bzero/memset. 2942169689Skan (token_getch, token_put_back): Add static prototypes. Remove 2943169689Skan `inline' from the definitions. 2944169689Skan (retrofit_lang_decl): Call memset, not bzero, to avoid casts. 2945169689Skan 2946169689Skan1999-09-01 Mark Mitchell <mark@codesourcery.com> 2947169689Skan 2948169689Skan * cp-tree.h (lang_type): Move align into type_flags. 2949169689Skan (CLASSTYPE_ALIGN): Adjust accordingly. 2950169689Skan * call.c (direct_reference_binding): Remove misleading comment. 2951169689Skan 2952169689Skan1999-08-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2953169689Skan 2954169689Skan * parse.y (language_string): Constify. 2955169689Skan 2956169689Skan1999-08-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2957169689Skan 2958169689Skan * repo.c (getpwd): Don't prototype. 2959169689Skan * xref.c (getpwd): Likewise 2960169689Skan 2961169689Skan1999-08-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2962169689Skan 2963169689Skan * Makefile.in (LIBS, LIBDEPS): Link with & depend on libiberty.a. 2964169689Skan Remove hacks for stuff which now comes from libiberty. 2965169689Skan 2966169689Skan1999-08-30 Jason Merrill <jason@yorick.cygnus.com> 2967169689Skan 2968169689Skan * cp-tree.h (IS_AGGR_TYPE_2): Fix typo. 2969169689Skan 2970169689Skan1999-08-30 Mark Mitchell <mark@codesourcery.com> 2971169689Skan 2972169689Skan * cp-tree.h (begin_init_stmts): Declare. 2973169689Skan (finish_init_stmts): Likewise. 2974169689Skan * cvt.c (build_up_reference): Wrap the declaration of a temporary 2975169689Skan in a statement-expression so that we will see it when expanding 2976169689Skan tree structure later. 2977169689Skan * init.c (begin_init_stmts): Don't make it static. 2978169689Skan (finish_init_stmts): Likewise. 2979169689Skan 2980169689Skan * cp-tree.h (start_handler_parms): New function. 2981169689Skan (expand_start_catch_block): Take only one parameter. 2982169689Skan (start_handler_parms): New function. 2983169689Skan * decl.c (start_handler_parms): Define it. 2984169689Skan * except.c (process_start_catch_block): Take only one parameter. 2985169689Skan Don't call grokdeclarator here. 2986169689Skan (expand_start_catch_block): Don't call grokdeclarator here, 2987169689Skan either. 2988169689Skan * parse.y (handler_args): Adjust call to 2989169689Skan expand_start_catch_block. Use start_handler_parms. 2990169689Skan * pt.c (push_template_decl_real): Make permanent lists have 2991169689Skan permanent elements. 2992169689Skan (tsubst_expr): Adjust calls to expand_start_catch_block 2993169689Skan appropriately. 2994169689Skan * semantics.c (expand_stmt): Likewise. 2995169689Skan 2996169689Skan1999-08-29 Alex Samuel <samuel@codesourcery.com> 2997169689Skan 2998169689Skan * pt.c (push_template_decl_real): Use template declaration from 2999169689Skan class type if it exists. 3000169689Skan 3001169689Skan1999-08-29 Mark Mitchell <mark@codesourcery.com> 3002169689Skan 3003169689Skan * cp-tree.h (TYPE_NEEDS_CONSTRUCTING): Remove #if 0'd definition. 3004169689Skan (maybe_inject_for_scope_var): Declare it. 3005169689Skan (initialize_local_var): Likewise. 3006169689Skan * decl.c (maybe_inject_for_scope_var): Make it global. 3007169689Skan (initialize_local_var): Likewise. Move cleanup handling here, 3008169689Skan from cp_finish_decl. 3009169689Skan (make_rtl_for_nonlocal_decl): Use 3010169689Skan push_obstacks_nochange/pop_obstacks, rather than 3011169689Skan end_temporary_allocation/resume_temporary_allocation. 3012169689Skan (cp_finish_decl): Try to complete the type of a variable when it 3013169689Skan is declared. Move cleanup-handling to initialize_local_var. 3014169689Skan (expand_static_init): Use tree-building code, rather than 3015169689Skan RTL-building code. 3016169689Skan * decl2.c (get_temp_name): Assert non-initializedness of 3017169689Skan temporaries. 3018169689Skan * init.c (create_temporary_var): Move RTL-assigning code to ... 3019169689Skan (get_temp_regvar): Here. 3020169689Skan * pt.c (tsbust_expr): Fix indentation. Call cp_finish_decl here. 3021169689Skan * semantics.c (expand_stmt): Don't call cp_finish_decl here. Just 3022169689Skan call initialize_local_var to generate initialization code. 3023169689Skan 3024169689Skan1999-08-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3025169689Skan 3026169689Skan * cp-tree.h (fndecl_as_string, type_as_string, 3027169689Skan type_as_string_real, args_as_string, decl_as_string, 3028169689Skan expr_as_string, code_as_string, language_as_string, 3029169689Skan parm_as_string, op_as_string, assop_as_string, cv_as_string, 3030169689Skan lang_decl_name, cp_file_of, lang_printable_name): Constify a char*. 3031169689Skan 3032169689Skan * errfn.c (cp_printer): Likewise. 3033169689Skan 3034169689Skan * error.c (cp_printer, fndecl_as_string, type_as_string_real, 3035169689Skan type_as_string, expr_as_string, decl_as_string, lang_decl_name, 3036169689Skan cp_file_of, code_as_string, language_as_string, parm_as_string, 3037169689Skan op_as_string, assop_as_string, args_as_string, cv_as_string): 3038169689Skan Likewise. 3039169689Skan 3040169689Skan * tree.c (lang_printable_name): Likewise. 3041169689Skan 3042169689Skan1999-08-28 Richard Henderson <rth@cygnus.com> 3043169689Skan 3044169689Skan * decl2.c (arg_assoc_class): Bail if the class is a builtin type. 3045169689Skan 3046169689Skan1999-08-28 Mark Mitchell <mark@codesourcery.com> 3047169689Skan 3048169689Skan * cp-tree.h (strip_array_types): New function. 3049169689Skan * decl.c (maybe_deduce_size_from_array_init): New function, split 3050169689Skan out from cp_finish_decl. 3051169689Skan (layout_var_decl): Likewise. 3052169689Skan (maybe_commonize_var): Likewise. 3053169689Skan (maybe_inject_for_scope_var): Likewise. 3054169689Skan (initialize_local_var): Likewise. 3055169689Skan (build_cleanup_on_safe_obstack): Likewise. 3056169689Skan (check_initializer): Likewise. 3057169689Skan (make_rtl_for_nonlocal_decl): Likewise. 3058169689Skan (cp_finish_decl): Use them. 3059169689Skan * typeck.c (strip_array_types): New function. 3060169689Skan 3061169689Skan * cp-tree.def (LABEL_STMT): New tree node. 3062169689Skan * cp-tree.h (LABEL_STMT_LABEL): New macro. 3063169689Skan (shadow_label): Remove. 3064169689Skan (declare_local_label): New function. 3065169689Skan (finish_label_decl): Likewise. 3066169689Skan * decl.c (make_label_decl): New function, split out from 3067169689Skan lookup_label. 3068169689Skan (shadowed_labels): Remove. 3069169689Skan (binding_level): Add shadowed_labels. 3070169689Skan (clear_binding_level): Remove. 3071169689Skan (push_binding_level): Just bzero the new binding level. 3072169689Skan (pushlevel): Fix indentation. 3073169689Skan (pop_label): New function. 3074169689Skan (pop_labels): Likewise, split out from poplevel. 3075169689Skan (poplevel): Pop local labels. Use pop_labels. 3076169689Skan (maybe_push_to_top_level): Don't clear shadowed_labels. 3077169689Skan (lookup_label): Use make_label_decl. 3078169689Skan (shadow_label): Remove. 3079169689Skan (declare_local_label): New function. 3080169689Skan (define_label): Simplify. 3081169689Skan (start_function): Don't clear shadowed_labels. 3082169689Skan (cp_function): Remove shadowed_labels. 3083169689Skan (push_cp_function_context): Don't save shadowed_labels. 3084169689Skan (pop_cp_function_context): Don't restore it. 3085169689Skan * dump.c (dequeue_and_dump): Handle LABEL_STMT. 3086169689Skan * parse.y (label_decl): Use finish_label_decl. 3087169689Skan * pt.c (tsubst_expr): Handle LABEL_STMTs, and local label 3088169689Skan declarations. 3089169689Skan * semantics.c (finish_label_stmt): Add a LABEL_STMT when 3090169689Skan building_stmt_tree. 3091169689Skan (finish_label_decl): New function. 3092169689Skan (expand_stmt): Handle LABEL_STMTs and local label declarations. 3093169689Skan 3094169689Skan1999-08-26 Mark Mitchell <mark@codesourcery.com> 3095169689Skan 3096169689Skan * decl.c (lookup_label): Build labels on the permanent obstack 3097169689Skan when building statement trees. Don't build RTL for labels when 3098169689Skan building statement trees. 3099169689Skan * semantics.c (finish_goto_stmt): Use LABEL_DECLs even when 3100169689Skan building statement trees. 3101169689Skan (finish_label_stmt): Likewise. 3102169689Skan (expand_stmt): Adjust accordingly. 3103169689Skan * pt.c (tsubst_expr); Likewise. 3104169689Skan (do_decl_instantiation): Robustify. 3105169689Skan 3106169689Skan * cp-tree.h (AGGR_INIT_VIA_CTOR_P): New macro. 3107169689Skan * tree.c (build_cplus_new): Set it. 3108169689Skan * expr.c (cplus_expand_expr): Use it. 3109169689Skan * dump.c (deque_and_dump): Handle AGGR_INIT_EXPR. 3110169689Skan 3111169689Skan * decl.c (store_parm_decls): Reset immediate_size_expand. 3112169689Skan (finish_function): Likewise. 3113169689Skan 3114169689Skan * tree.c (cplus_unsave_expr_now): Don't return a value. 3115169689Skan 3116169689Skan * semantics.c (do_poplevel): Always initialize the return value. 3117169689Skan 3118169689Skan1999-08-26 Gavin Romig-Koch <gavin@cygnus.com> 3119169689Skan 3120169689Skan * cp-tree.h (cplus_unsave_expr_now) : Correct return type. 3121169689Skan * tree.h (cplus_unsave_expr_now) : Same. 3122169689Skan 3123169689Skan1999-08-25 Mark Mitchell <mark@codesourcery.com> 3124169689Skan 3125169689Skan * decl.c (grokdeclarator): Amend comment. 3126169689Skan * except.c (expand_start_catch_block): Call push_template_decl for 3127169689Skan catch-block parameters. 3128169689Skan * method.c (synthesize_method): Build an empty compound statement 3129169689Skan for the body of a constructor. 3130169689Skan 3131169689Skan1999-08-25 Jason Merrill <jason@yorick.cygnus.com> 3132169689Skan 3133169689Skan * tree.c (cp_build_qualified_type_real): If we're asking for the 3134169689Skan same quals we already have, just return. 3135169689Skan 3136169689Skan1999-08-25 Mark Mitchell <mark@codesourcery.com> 3137169689Skan 3138169689Skan * cp-tree.def (SUBOBJECT): New tree node. 3139169689Skan * cp-tree.h (CLEANUP_P): New macro. 3140169689Skan (SUBOBJECT_CLEANUP): Likewise. 3141169689Skan (keep_next_level): Add parameter. 3142169689Skan (get_temp_regvar): Don't declare. 3143169689Skan (emit_base_init): Remove parameter. 3144169689Skan (expand_aggr_init): Rename to build_aggr_init. 3145169689Skan (expand_vec_init): Rename to build_vec_init. 3146169689Skan (do_pushlevel): Remove. 3147169689Skan (do_poplevel): Likewise. 3148169689Skan (finish_cleanup): New function. 3149169689Skan (finish_subobject): Likewise. 3150169689Skan (stmts_are_full_exprs_p): New variable. 3151169689Skan * decl.c (keep_next_level): Add parameter. 3152169689Skan (cp_finish_decl): Use build_aggr_init, not 3153169689Skan expand_aggr_init. Use finish_expr_stmt to expand the code. 3154169689Skan (expand_static_init): Use tree-generating, not RTL-generating, 3155169689Skan functions to handle the initialization. 3156169689Skan (start_function): Remove dead code. Always have a momentary 3157169689Skan obstack inside the function, even before hitting the first curly 3158169689Skan brace. 3159169689Skan (cplus_expand_expr_stmt): Move calls to 3160169689Skan expand_{start,end}_target_temps into semantics.c. 3161169689Skan (cp_function): Add stmts_are_full_exprs_p. 3162169689Skan (push_cp_function_context): Save it. 3163169689Skan (pop_cp_function_context): Restore it. 3164169689Skan * decl2.c (get_temp_regvar): Move to init.c. 3165169689Skan (do_static_initialization): Use build_{aggr,vec}_init. 3166169689Skan (do_static_destruction): Fix typo in comment. 3167169689Skan * dump.c (dequeue_and_dump): Handle INIT_EXPR. 3168169689Skan * except.c (expand_throw): Use create_temporary_var. 3169169689Skan * expr.c (cplus_expand_expr): Use build_{aggr,vec}_init. 3170169689Skan * init.c (expand_vec_init_try_block): Remove. 3171169689Skan (expand_vec_init_catch_clause): Likewise. 3172169689Skan (get_temp_regvar): New function. 3173169689Skan (begin_init_stmts): Likewise. 3174169689Skan (finish_init_stmts): Likewise. 3175169689Skan (perform_member_init): Use build_{aggr,vec}_init. Build up tree 3176169689Skan structure here. 3177169689Skan (emit_base_init): Likewise. Remove unused parameter. 3178169689Skan (expand_virtual_init): Likewise. 3179169689Skan (expand_cleanup_for_base): Use finish_subobject. 3180169689Skan (expand_aggr_vbase_init_1): Simplify. 3181169689Skan (construct_virtual_bases): Use tree-generating functions to build 3182169689Skan up initialization. 3183169689Skan (expand_aggr_init): Likewise. Rename to build_aggr_init. 3184169689Skan (expand_default_init): Likewise. 3185169689Skan (expand_aggr_init_1): Likewise. 3186169689Skan (expand_vec_init): Rename to build_vec_init. 3187169689Skan * method.c (do_build_copy_constructor): Use tree-generating 3188169689Skan functions. Don't call clear_last_expr. 3189169689Skan (do_build_assign_ref): Likewise. 3190169689Skan (synthesize_method): Call clear_last_expr here. 3191169689Skan * parse.y (base_init): Don't call clear_last_expr here. 3192169689Skan (nodecls): Likewise. 3193169689Skan * pt.c (tsubst_expr): Handle a TRY_BLOCK with CLEANUP_P set. 3194169689Skan * semantics.c (do_pushlevel): Move to here. 3195169689Skan (do_poplevel): Likewise. 3196169689Skan (stmts_are_full_exprs_p): New variable. 3197169689Skan (finish_expr_stmt): Handle logic for temoprary cleanup here. 3198169689Skan (finish_for_stmt): Use finish_expr_stmt. 3199169689Skan (finish_cleanup): New function. 3200169689Skan (finish_function_try_block): Fix indentation. 3201169689Skan (finish_subobject): New function. 3202169689Skan (setup_vtbl_ptr): Call keep_next_level here. 3203169689Skan (finish_stmt_expr): Handle a block with no scope inside the 3204169689Skan statement-expression. 3205169689Skan (expand_stmt): Handle a TRY_BLOCK with CLEANUP_P set. Handle 3206169689Skan SUBOBJECT. 3207169689Skan * tree.c (search_tree): Handle INIT_EXPR. 3208169689Skan (mapcar): Likewise. 3209169689Skan * typeck.c (build_modify_expr): Don't build an RTL_EXPR. 3210169689Skan * typeck2.c (store_init_value): Change expand_aggr_init to 3211169689Skan build_aggr_init in comment. 3212169689Skan 3213169689Skan1999-08-25 Mark Mitchell <mark@codesourcery.com> 3214169689Skan 3215169689Skan * dump.c (dequeue_and_dump): Dump TARGET_EXPRs. 3216169689Skan 3217169689Skan1999-08-25 Nathan Sidwell <nathan@acm.org> 3218169689Skan 3219169689Skan * decl2.c (handle_class_head): Be graceful about additional 3220169689Skan scope qualifiers. Adjust comments to reflect reality. 3221169689Skan 3222169689Skan1999-08-24 Jason Merrill <jason@yorick.cygnus.com> 3223169689Skan 3224169689Skan * call.c (build_conditional_expr): Fix typo. 3225169689Skan * typeck.c (build_modify_expr, COND_EXPR): Make sure we've got an 3226169689Skan lvalue before trying to mess with the sides. 3227169689Skan 3228169689Skan * error.c (dump_expr, CONVERT_EXPR): Handle (void) properly. 3229169689Skan 3230169689SkanMon Aug 23 22:17:20 1999 Mumit Khan <khan@xraylith.wisc.edu> 3231169689Skan 3232169689Skan * g++spec.c (lang_specific_driver): Add room for NULL in arglist. 3233169689Skan 3234169689Skan1999-08-23 Jason Merrill <jason@yorick.cygnus.com> 3235169689Skan 3236169689Skan * exception.cc (__cplus_type_matcher): Call __throw_type_match_rtti_2. 3237169689Skan Return arbitrary pointer or NULL. 3238169689Skan (check_eh_spec): Call __throw_type_match_rtti_2. 3239169689Skan * tinfo.h (*::dcast): Return int. Add valp parm. 3240169689Skan * tinfo.cc (*::dcast): Likewise. Adjust to allow for null pointers. 3241169689Skan * tinfo2.cc (__throw_type_match_rtti_2): Likewise. 3242169689Skan (__throw_type_match_rtti): Now just a wrapper. 3243169689Skan 3244169689Skan * except.c: Lose CatchMatch, FirstExceptionMatch, and Unwind. 3245169689Skan (init_exception_processing): Don't initialize them. 3246169689Skan 3247169689Skan1999-08-23 Paul Burchard <burchard@pobox.com> 3248169689Skan 3249169689Skan * decl.c (check_default_argument): Fix typo. 3250169689Skan 3251169689Skan1999-08-22 Mark Mitchell <mark@codesourcery.com> 3252169689Skan 3253169689Skan * cp-tree.def (STMT_EXPR): Fix typo in node name. 3254169689Skan 3255169689Skan * dump.c (dump_next_stmt): New function. 3256169689Skan (dequeue_and_dump): Use it. 3257169689Skan 3258169689Skan * pt.c (tsubst_copy): Make sure to initialize return value for a 3259169689Skan STMT_EXPR, even when processing_template_decl. 3260169689Skan * semantics.c (finish_stmt_expr): A statement-expression whose 3261169689Skan last statement is not an expression-statement has type `void'. 3262169689Skan 3263169689Skan1999-08-20 Mark Mitchell <mark@codesourcery.com> 3264169689Skan 3265169689Skan * semantics.c (finish_stmt_expr): Fix typo in comment. 3266169689Skan * tree.c (search_tree): Handle EXIT_EXPR, LOOP_EXPR. 3267169689Skan (mapcar): Likewise. 3268169689Skan * init.c (build_vec_delete_1): Make the children of a permanent 3269169689Skan BIND_EXPR permanent. 3270169689Skan * pt.c (register_specialization): Don't register a specialization 3271169689Skan more than once. 3272169689Skan 3273169689Skan1999-08-18 Andrew Haley <aph@cygnus.com> 3274169689Skan 3275169689Skan * method.c (process_overload_item): Call build_mangled_C9x_name () 3276169689Skan for all integer parameter types larger than long long. 3277169689Skan 3278169689Skan1999-08-19 Mark Mitchell <mark@codesourcery.com> 3279169689Skan 3280169689Skan * pt.c (redeclare_class_template): Merge default template 3281169689Skan arguments in both directions. 3282169689Skan 3283169689Skan * typeck.c (common_type): Undo 1999-08-18 change. Remove 3284169689Skan compiler_error message. 3285169689Skan 3286169689Skan1999-08-19 Jason Merrill <jason@yorick.cygnus.com> 3287169689Skan 3288169689Skan * cp-tree.h: Declare flag_use_repository. 3289169689Skan * pt.c (do_decl_instantiation): Don't complain about duplicate 3290169689Skan instantiation with -frepo. 3291169689Skan (do_type_instantiation): Likewise. 3292169689Skan 3293169689Skan * pt.c (push_template_decl_real): Complain about everything 3294169689Skan that isn't a valid template. 3295169689Skan 3296169689Skan * decl2.c (import_export_decl): If -fnew-abi, class linkage doesn't 3297169689Skan affect inlines. 3298169689Skan 3299169689Skan1999-08-19 Mark Mitchell <mark@codesourcery.com> 3300169689Skan 3301169689Skan * cp-tree.def (PSEUDO_DTOR_EXPR): New tree code. 3302169689Skan * decl2.c (build_expr_from_tree): Handle it. 3303169689Skan * error.c (dump_expr): Likewise. 3304169689Skan * pt.c (for_each_template_parm): Likewise. 3305169689Skan (tsubst_copy): Likewise. 3306169689Skan * tree.c (search_tree): Likewise. 3307169689Skan * semantics.c (finish_pseudo_destructor_call): Create it. 3308169689Skan 3309169689Skan1999-08-18 Mark Mitchell <mark@codesourcery.com> 3310169689Skan 3311169689Skan * search.c (setup_class_bindings): Robustify. 3312169689Skan * typeck.c (common_type): Use same_type_p, not pointer equality, 3313169689Skan to compare types. 3314169689Skan 3315169689Skan * cp-tree.h (build_lang_field_decl): Remove. 3316169689Skan * class.c (build_vtable): Replace calls to build_lang_field_decl 3317169689Skan with build_lang_decl. 3318169689Skan (prepare_fresh_vtable): Likewise. 3319169689Skan (finish_struct_1): Likewise. 3320169689Skan (init_class_processing): Likewise. 3321169689Skan * decl.c (push_using_decl): Likewise. 3322169689Skan (init_decl_processing): Likewise. 3323169689Skan (grokvardecl): Likewise. 3324169689Skan (build_ptrmemfunc_type): Likewise. 3325169689Skan (grokdeclarator): Likewise. 3326169689Skan (build_enumerator): Likewise. 3327169689Skan * decl2.c (grok_x_components): Likewise. 3328169689Skan (do_class_using_decl): Likewise. 3329169689Skan * except.c (call_eh_info): Likewise. 3330169689Skan * init.c (init_init_processing): Likewise. 3331169689Skan * rtti.c (expand_class_decl): Likewise. 3332169689Skan * tree.c (build_base_fields): Likewise. 3333169689Skan (build_vbase_pointer_fields): Likewise. 3334169689Skan * lex.c (build_lang_decl): Build declarations on the permanent 3335169689Skan obstack if we're building statmeent trees. 3336169689Skan (retrofit_lang_decl): Handle both the full lang_decl and also the 3337169689Skan smaller lang_decl_flags here. 3338169689Skan (build_lang_field_decl): Remove. 3339169689Skan * pt.c (push_template_decl_real): Issue errors for variable 3340169689Skan declarations that are not static members. 3341169689Skan 3342169689Skan1999-08-18 Richard Henderson <rth@cygnus.com> 3343169689Skan 3344169689Skan * tree.c (search_tree): Handle TRUTH_{AND,OR,XOR}_EXPR too. 3345169689Skan (mapcar): Likewise. 3346169689Skan 3347169689Skan1999-08-17 Mark Mitchell <mark@codesourcery.com> 3348169689Skan 3349169689Skan * cp-tree.h (back_end_hook): New variable. 3350169689Skan * decl2.c (back_end_hook): Define it. 3351169689Skan (finish_file): If it's non-NULL, call it. 3352169689Skan 3353169689Skan * decl.c (add_decl_to_level): New function. 3354169689Skan (push_local_binding): Use it. 3355169689Skan (find_binding): Fix typo in comment. 3356169689Skan (pushdecl): Use add_decl_to_level. Put templates on the 3357169689Skan corresponding namespace-scope binding levels. 3358169689Skan * dump.c (dequeue_and_dump): Print the specializations of a 3359169689Skan template. 3360169689Skan * pt.c (push_template_decl_real): Don't push a template multiple 3361169689Skan times. 3362169689Skan 3363169689Skan1999-08-17 Mark Mitchell <mark@codesourcery.com> 3364169689Skan 3365169689Skan * cp-tree.h (CALL_DECLARATOR_PARMS): New macro. 3366169689Skan (CALL_DECLARATOR_QUALS): Likewise. 3367169689Skan (CALL_DECARATOR_EXCEPTION_SPEC): Likewise. 3368169689Skan * decl.c (grokdeclarator): Adjust to use them. 3369169689Skan * decl2.c (grokfield): Likewise. 3370169689Skan (reparse_absdcl_as_casts): Likewise. 3371169689Skan * lex.c (make_call_declarator): Likewise. 3372169689Skan (set_quals_and_spec): Likewise. 3373169689Skan * pt.c (tsubst): Likewise. 3374169689Skan * tree.c (mapcar): Remove special hack to handle third operand of 3375169689Skan a CALL_EXPR. 3376169689Skan 3377169689Skan1999-08-16 Mark Mitchell <mark@codesourcery.com> 3378169689Skan 3379169689Skan * cp-tree.h (CAN_HAVE_FULL_LANG_DECL_P): New macro. 3380169689Skan * class.c (build_vtable): Use build_lang_field_decl to build the 3381169689Skan VAR_DECLs for vtables. 3382169689Skan (prepare_fresh_vtable): Likewise. 3383169689Skan * decl.c (duplicate_decls): Only copy DECL_SAVED_TREE if 3384169689Skan CAN_HAVE_FULL_LANG_DECL_P. 3385169689Skan (push_using_decl): Use build_lang_decl to build USING_DECLs. 3386169689Skan (grokdeclarator): Use build_lang_decl to build TYPE_DECLs. 3387169689Skan * lex.c (retrofit_lang_decl): Check CAN_HAVE_FULL_LANG_DECL_P. 3388169689Skan (build_lang_field_decl): Likewise. 3389169689Skan (copy_lang_decl): Use CAN_HAVE_FULLLANG_DECL_P to decide how much 3390169689Skan to copy. 3391169689Skan 3392169689Skan * cp-tree.def (STMT_EXPR): New tree node. 3393169689Skan * cp-tree.h (STMT_EXPR_STMT): New macro. 3394169689Skan (store_return_init): Change prototype. 3395169689Skan (finish_named_return_value): New function. 3396169689Skan (expand_stmt): Likewise. 3397169689Skan (expand_body): Likewise. 3398169689Skan (begin_stmt_tree): Likewise. 3399169689Skan (finish_stmt_tree): Likewise. 3400169689Skan (expanding_p): New variable. 3401169689Skan (last_expr_type): Likewise. 3402169689Skan (building_stmt_tree): New macro. 3403169689Skan * decl.c (start_function): Use building_stmt_tree, not 3404169689Skan processing_template_decl, where appropriate. 3405169689Skan (store_parm_decls): Likewise. 3406169689Skan (store_return_init): Move most of the body to semantics.c. 3407169689Skan (finish_function): Use building_stmt_tree. 3408169689Skan (finish_stmt): Clear last_expr_type here. 3409169689Skan (cp_function): Add expanding_p, last_tree, last_expr_type. 3410169689Skan (push_cp_function_context): Save them. 3411169689Skan (pop_cp_function_context): Restore them. 3412169689Skan * decl2.c (setup_vtbl_ptr): Move to semantics.c. 3413169689Skan * error.c (dump_expr): Handle STMT_EXPR. 3414169689Skan * except.c (expand_start_catch_block): Use building_stmt_tree. 3415169689Skan Use add_decl_stmt. 3416169689Skan * expr.c (cplus_expand_expr): Handle STMT_EXPR. 3417169689Skan (do_case): Move add_tree call to semantics.c. 3418169689Skan * parse.y (return_init): Use finish_named_return_value. 3419169689Skan (for.init.statement): Use finish_expr_stmt. 3420169689Skan * parse.c: Regenerated. 3421169689Skan * pt.c (do_pushlevel): Move to semantics.c. 3422169689Skan (do_poplevel): Likewise. 3423169689Skan (tsubst_copy): Handle STMT_EXPR instead of BIND_EXPR. 3424169689Skan (tsubst_expr): Don't expand all the way to RTL here. Handle 3425169689Skan RETURN_INIT and CTOR_INITIALIZER. 3426169689Skan (instantiate_decl): Call expand_body after tsubst'ing into 3427169689Skan DECL_SAVED_TREE. 3428169689Skan * semantics.c (expand_stmts): New function. 3429169689Skan (expanding_p): New variable. 3430169689Skan (last_expr_type): Likewise. 3431169689Skan (finish_expr_stmt): Use building_stmt_tree. 3432169689Skan (begin_if_stmt): Likewise. 3433169689Skan (finish_if_stmt_cond): Likewise. 3434169689Skan (finish_then_clause): Likewise. 3435169689Skan (begin_else_clause): Likewise. 3436169689Skan (finish_else_clause): Likewise. 3437169689Skan (begin_while_stmt): Likewise. 3438169689Skan (finish_while_stmt_cond): Likewise. 3439169689Skan (finish_while_stmt): Likewise. 3440169689Skan (finish_do_body): Likewise. 3441169689Skan (finish_do_stmt): Likewise. 3442169689Skan (finish_return_stmt): Likewise. 3443169689Skan (begin_for_stmt): Likewise. 3444169689Skan (fnish_for_init_stmt): Likewise. 3445169689Skan (finish_for_cond): Likewise. 3446169689Skan (finish_for_expr): Likewise. 3447169689Skan (finish_for_stmt): Likewise. 3448169689Skan (finish_break_stmt): Likewise. 3449169689Skan (finish_continue_stmt): Likewise. 3450169689Skan (finish_switch_cond): Likewise. 3451169689Skan (finish_switch_stmt): Likewise. 3452169689Skan (finish_case_label): Call add_tree here if necessary. 3453169689Skan (finish_goto_statement): Use building_stmt_tree. 3454169689Skan (begin_try_block): Likewise. 3455169689Skan (begin_function_try_block): Likewise. 3456169689Skan (finish_try_block): Likewise. 3457169689Skan (finish_function_try_block): Likewise. 3458169689Skan (finish_handler_sequence): Likewise. 3459169689Skan (finish_function_handler_sequence): Likewise. 3460169689Skan (begin_handler): Likewise. 3461169689Skan (finish_handler_parms): Likewise. 3462169689Skan (finish_handler): Likewise. 3463169689Skan (begin_compound_stmt): Likewise. 3464169689Skan (finish_compound_stmt): Likewise. 3465169689Skan (finish_asm_stmt): Likewise. 3466169689Skan (finish_label_stmt): Likewise. 3467169689Skan (finish_named_return_value): New function. 3468169689Skan (setup_vtbl_ptr): Moved here from decl2.c. 3469169689Skan (do_pushlevel): Moved here from pt.c. 3470169689Skan (do_poplevel): Likewise. 3471169689Skan (begin_stmt_expr): Use building_stmt_tree. 3472169689Skan (finish_stmt_expr): Likewise. Build a STMT_EXPR, not a BIND_EXPR, 3473169689Skan when building_stmt_tree. 3474169689Skan (begin_stmt_tree): New function. 3475169689Skan (finish_stmt_tree): Likewise. 3476169689Skan (expand_stmt): Likewise. 3477169689Skan (expand_body): Likewise. 3478169689Skan * tree.c (build_cplus_method_type): Make sure the argument types 3479169689Skan end up on the same obstack as the METHOD_TYPE. 3480169689Skan (search_tree): Handle COMPOUND_EXPR, MODIFY_EXPR, 3481169689Skan THROW_EXPR, STMT_EXPR. 3482169689Skan (mapcar): Break out common cases. Handle COMPOUND_EXPR, 3483169689Skan MODIFY_EXPR, THROW_EXPR, STMT_EXPR, RTL_EXPR. Abort, rather than 3484169689Skan sorry, if an unsupported node is encountered. 3485169689Skan * typeck.c (require_complete_type_in_void): Handle BIND_EXPR. 3486169689Skan (c_expand_return): Don't call add_tree here. 3487169689Skan 3488169689Skan1999-08-15 Mark Mitchell <mark@codesourcery.com> 3489169689Skan 3490169689Skan * pt.c (check_default_tmpl_args): Don't check in local scopes. 3491169689Skan (tsubst_decl): Make sure the declaration is on a saveable 3492169689Skan obstack. Clear DECL_DEAD_FOR_LOCAL when making a copy of a local 3493169689Skan variable. 3494169689Skan (tsubst_expr): Adjust now that DECL_STMTs really contain DECLs. 3495169689Skan 3496169689Skan1999-08-14 Jason Merrill <jason@yorick.cygnus.com> 3497169689Skan 3498169689Skan Speed up Koenig lookup. 3499169689Skan * decl.c (unqualified_namespace_lookup): Nonstatic. Add spacep parm 3500169689Skan to return namespaces we've looked at. 3501169689Skan * decl2.c (lookup_using_namespace): Likewise. 3502169689Skan (add_function): Don't call ovl_member. 3503169689Skan (lookup_arg_dependent): Initialize k.namespaces to the list of 3504169689Skan namespaces seen in unqualified lookup. 3505169689Skan * call.c (equal_functions): Move here from tree.c. 3506169689Skan (joust): Use it to handle duplicate candidates. 3507169689Skan * tree.c (ovl_member): Use ==. 3508169689Skan 3509169689Skan1999-08-13 Mark Mitchell <mark@codesourcery.com> 3510169689Skan 3511169689Skan * cp-tree.def (DECL_STMT): Make it smaller. 3512169689Skan * cp-tree.h (lang_decl_flags): Move saved_tree to ... 3513169689Skan (lang_decl): ... here. Add next. 3514169689Skan (DECL_SAVED_TREE): Adjust accordingly. 3515169689Skan (DECL_IMPLICIT_TYPEDEF_P): New macro. 3516169689Skan (SET_DECL_IMPLICIT_TYPEDEF_P): Likewise. 3517169689Skan (DECL_STMT_DECL): Likewise. 3518169689Skan (create_implicit_typedef): New function. 3519169689Skan (maybe_push_decl): Likewise. 3520169689Skan (tsubst_default_argument): New function. 3521169689Skan (at_function_scope_p): Likewise. 3522169689Skan (add_decl_stmt): Likewise. 3523169689Skan (push_permanent_obstack): Likewise. 3524169689Skan * call.c (convert_default_arg): Use tsubst_default_argument. 3525169689Skan * class.c (add_method): Use push_permanent_obstack. 3526169689Skan (build_self_reference): Create a TEMPLATE_DECL for the 3527169689Skan self-reference, if necessary. 3528169689Skan * decl.c (pseudo_global_level_p): Only look at the current binding 3529169689Skan level. 3530169689Skan (push_binding): Use push_permanent_obstack. 3531169689Skan (create_implicit_typedef): New function. 3532169689Skan (pushtag): Use it. 3533169689Skan (duplicate_decls): Use push_permanent_obstack. 3534169689Skan (maybe_push_decl): New function. 3535169689Skan (start_decl): Use it. Remove dead code. Use add_decl_stmt. 3536169689Skan (start_decl_1): Remove dead code. 3537169689Skan (cp_finish_decl): Remove DECL_STMT handling here. Don't use 3538169689Skan pseudo_global_level_p. 3539169689Skan (grokvardecl): Create DECL_LANG_SPECIFIC for a VAR_DECL in a 3540169689Skan template. 3541169689Skan (grokdeclarator): Likewise, for TYPE_DECLs. Don't use 3542169689Skan pseudo_global_level_p. 3543169689Skan * decl2.c (grokfield): Call push_template_decl for a TYPE_DECL in 3544169689Skan a template. 3545169689Skan (get_sentry): Use push_permanent_obstack. 3546169689Skan * dump.c (dequeue_and_dump): Enable DECL_STMT. 3547169689Skan * except.c (call_eh_info): Use push_permanent_obstack. 3548169689Skan (build_eh_type_ref): Likewise. 3549169689Skan (do_pop_exception): Likewise. 3550169689Skan (expand_eh_spec): Likewise. 3551169689Skan (alloc_eh_object): Likewise. 3552169689Skan (expand_throw): Likewise. 3553169689Skan * init.c (build_java_class_ref): Likewise. 3554169689Skan * lex.c (get_time_identifier): Likewise. 3555169689Skan (free_lang_decl_chain): Correct type. 3556169689Skan (retrofit_lang_decl): Adjust accordingly. 3557169689Skan (build_lang_field_decl): Likewise. 3558169689Skan * lex.h (free_lang_decl_chain): Likewise. 3559169689Skan * parse.y (lang_extdef): Don't use pseudo_global_level_p. 3560169689Skan * parse.c: Regenerated. 3561169689Skan * pt.c (tsubst_default_arguments): New function. 3562169689Skan (retrieve_local_specialization): Likewise. 3563169689Skan (register_local_specialization): Likewise. 3564169689Skan (push_template_decl_real): Use DECL_IMPLICIT_TYPEDEF_P. Just use 3565169689Skan pseudo_global_level_p to determine whether or not a template is 3566169689Skan primary. 3567169689Skan (lookup_template_class): Likewise. Use create_implicit_typedef. 3568169689Skan (instantiate_class_template): Call tsubst_default_arguments for 3569169689Skan member functions, if appropriate. 3570169689Skan (tsubst_default_argument): New function. 3571169689Skan (tsubst_decl): Use it. Change TYPE_DECL handling to match VAR_DECLs. 3572169689Skan * search.c (at_function_scope_p): New function. 3573169689Skan * semantics.c (finish_asm_stmt): Use push_permanent_obstack. 3574169689Skan (finish_label_stmt): Likewise. 3575169689Skan (add_decl_stmt): New function. 3576169689Skan (begin_class_definition): Likewise. 3577169689Skan (finish_typeof): Likewise. 3578169689Skan * tree.c (copy_template_template_parm): Likewise. 3579169689Skan (copy_to_permanent): Likewise. 3580169689Skan (push_permanent_obstack): Define. 3581169689Skan (mark_addressable): Use it. 3582169689Skan * typeck.c (mark_addressable): Likewise. 3583169689Skan 3584169689Skan1999-08-13 Gavin Romig-Koch <gavin@cygnus.com> 3585169689Skan 3586169689Skan * cp-tree.h (init_cplus_unsave): New. 3587169689Skan (cplus_unsave_expr_now): New. 3588169689Skan * lex.c (init_parse): Call init_cplus_unsave. 3589169689Skan * tree.c (init_cplus_unsave): New. 3590169689Skan (cplus_unsave_expr_now): New. 3591169689Skan 3592169689Skan1999-08-13 Mark Mitchell <mark@codesourcery.com> 3593169689Skan 3594169689Skan * pt.c (tsubst): Back out 1999-08-06 patch. Use fold and 3595169689Skan decl_constant_value to simplify array bounds. 3596169689Skan 3597169689Skan1999-08-11 Jason Merrill <jason@yorick.cygnus.com> 3598169689Skan 3599169689Skan * lang-options.h: Add -fms-extensions. 3600169689Skan * cp-tree.h: Declare flag_ms_extensions. 3601169689Skan * decl2.c: Define it. 3602169689Skan * class.c (instantiate_type): Don't complain about taking the address 3603169689Skan of a bound member function if -fms-extensions. 3604169689Skan * typeck.c (build_unary_op): Likewise. 3605169689Skan * decl.c (grokdeclarator): Or about implicit int. 3606169689Skan * init.c (resolve_offset_ref): Or about implicit '&'. 3607169689Skan 3608169689Skan1999-08-11 Mark Mitchell <mark@codesourcery.com> 3609169689Skan 3610169689Skan * cp-tree.h (minimal_parse_mode): Remove. 3611169689Skan (finish_label_stmt): New function. 3612169689Skan * decl.c (saved_scope): Remove minimal parse mode. 3613169689Skan (maybe_push_to_top_level): Don't save it. 3614169689Skan (pop_from_top_level): Don't restore it. 3615169689Skan (define_label): Split out template-handling code to semantics.c. 3616169689Skan (start_decl): Don't use minimal_parse_mode. 3617169689Skan (cp_finish_decl): Likewise. 3618169689Skan (start_function): Don't increment it. 3619169689Skan (store_return_init): Don't use it. 3620169689Skan (finish_function): Don't decrement it. 3621169689Skan * parse.y (label_colon): Use finish_label_stmt throughout. 3622169689Skan * parse.c: Regenerated. 3623169689Skan * pt.c (minimal_parse_mode): Don't define it. 3624169689Skan (tsubst_expr): Use finish_label_stmt. 3625169689Skan * semantics.c (finish_label_stmt): New function. 3626169689Skan 3627169689Skan * dump.c (queue): Be careful when computing bitmasks. 3628169689Skan (dequeue_and_dump): Describe binfos as binfos, not as 3629169689Skan vectors. 3630169689Skan 3631169689Skan * parse.y (pedantic): Give it itype. Adjust usage accordingly 3632169689Skan throughout. 3633169689Skan * parse.c: Regenerated. 3634169689Skan 3635169689Skan * Make-lang.in (CXX_SRCS): Remove sig.c. 3636169689Skan * Makefile.in (CXX_OBJS): Remove sig.o. 3637169689Skan (sig.o): Remove. 3638169689Skan * cp-tree.h (CPTI_OPAQUE_TYPE): Remove. 3639169689Skan (CPTI_SIGNATURE_TYPE): Likewise. 3640169689Skan (CPTI_SIGTABLE_ENTRY_TYPE): Likewise. 3641169689Skan (opaque_type_node): Likewise. 3642169689Skan (signature_type_node): Likewise. 3643169689Skan (sigtable_entry_type): Likewise. 3644169689Skan (flag_handle_signatures): Likewise. 3645169689Skan (lang_type): Remove is_signature, is_signature_pointer, 3646169689Skan is_signature_reference, has_opaque_typedecls, 3647169689Skan sigtables_has_been_generated. Adjust dummy. Remove signature, 3648169689Skan signature_pointer_to, signature_reference_to. 3649169689Skan (IS_SIGNATURE): Remove. 3650169689Skan (SET_SIGNATURE): Remove. 3651169689Skan (CLEAR_SIGNATURE): Remove. 3652169689Skan (IS_SIGNATURE_POINTER): Remove. 3653169689Skan (IS_SIGNATURE_REFERENCE): Remove. 3654169689Skan (SIGNATURE_HAS_OPAQUE_TYPEDECLS): Remove. 3655169689Skan (SIGTABLE_HAS_BEEN_GENERATED): Remove. 3656169689Skan (CLASSTYPE_SIGNATURE): Remove. 3657169689Skan (SIGNATURE_TYPE): Remove. 3658169689Skan (SIGNATURE_METHOD_VEC): Remove. 3659169689Skan (SIGNATURE_POINTER_TO): Remove. 3660169689Skan (SIGNATURE_REFERENCE_TO): Remove. 3661169689Skan (lang_decl_flags): Remove is_default_implementation. Rename 3662169689Skan memfunc_pointer_to to saved_tree. 3663169689Skan (IS_DEFAULT_IMPLEMENTATION): Remove. 3664169689Skan (DECL_MEMFUNC_POINTER_TO): Remove. 3665169689Skan (DECL_MEMFUNC_POINTING_TO): Remove. 3666169689Skan (DECL_SAVED_TREE): Adjust definition. 3667169689Skan (tag_types): Remove signature_type_node. 3668169689Skan (SIGNATURE_FIELD_NAME): Remove. 3669169689Skan (SIGNATURE_FIELD_NAME_FORMAT): Likewise. 3670169689Skan (SIGNATURE_OPTR_NAME): Likewise. 3671169689Skan (SIGNATURE_SPTR_NAME): Likewise. 3672169689Skan (SIGNATURE_POINTER_NAME): Likewise. 3673169689Skan (SIGNATURE_POINTER_NAME_FORMAT): Likewise. 3674169689Skan (SIGNATURE_REFERENCE_NAME): Likewise. 3675169689Skan (SIGNATURE_REFERNECE_NAME_FORMAT): Likewise. 3676169689Skan (SIGTABLE_PTR_TYPE): Likewise. 3677169689Skan (SIGTABLE_NAME_FORMAT): Likewise. 3678169689Skan (SIGTABLE_NAME_FORMAT_LONG): Likewise. 3679169689Skan (SIGTABLE_TAG_NAME): Likewise. 3680169689Skan (SIGTABLE_VB_OFF_NAME): Likewise. 3681169689Skan (SIGTABLE_VT_OFF_NAME): Likewise. 3682169689Skan (finish_base_specifiers): Change prototype. 3683169689Skan (build_signature_pointer_type): Remove. 3684169689Skan (build_signature_reference_type): Remove. 3685169689Skan (build_signature_pointer_constructor): Remove. 3686169689Skan (build_signature_method_call): Remove. 3687169689Skan (build_optr_ref): Likewise. 3688169689Skan (append_signature_fields): Likewise. 3689169689Skan (signature_error): Likewise. 3690169689Skan * call.c (build_this): Remove signature support. 3691169689Skan (build_over_call): Likewise. 3692169689Skan (build_new_method_call): Likewise. 3693169689Skan * class.c (add_implicitly_declared_members): Likewise. 3694169689Skan (finish_struct_1): Likewise. 3695169689Skan (finish_struct): Likewise. 3696169689Skan * cvt.c (cp_convert_to_pointer): Likewise. 3697169689Skan (convert_to_pointer_force): Likewise. 3698169689Skan (ocp_convert): Likewise. 3699169689Skan * decl.c (sigtable_decl_p): Remove. 3700169689Skan (init_decl_processing): Remove support for signatures. 3701169689Skan (cp_finish_decl): Likewise. 3702169689Skan (grokdeclarator): Likewise. 3703169689Skan (grokparms): Likewise. 3704169689Skan (xref_tag): Likewise. 3705169689Skan (start_function): Likewise. 3706169689Skan (start_method): Likewise. 3707169689Skan * decl2.c (finish_sigtable_vardecl): Remove. 3708169689Skan (flag_handle_signatures): Remove. 3709169689Skan (lang_f_options): Remove handle-signatures. 3710169689Skan (grokfield): Remove support for signatures. 3711169689Skan (grokbitfield): Likewise. 3712169689Skan (finish_file): Likewise. 3713169689Skan (reparse_absdcl_as_casts): Likewise. 3714169689Skan * error.c (dump_type_real): Likewise. 3715169689Skan (dump_function_decl): Likewise. 3716169689Skan * friend.c (make_friend_class): Likewise. 3717169689Skan * gxx.gperf: Remove __signature__, signature, __sigof__, sigof. 3718169689Skan * hash.h: Regenerated. 3719169689Skan * init.c (build_new_1): Remove support for signatures. 3720169689Skan * lang-options.h: Remove -fhandle-signatures, 3721169689Skan -fno-handle-signatures. 3722169689Skan * lex.c (init_parse): Remove support for signatures. 3723169689Skan (yyprint): Likewise. 3724169689Skan * lex.h (rid): Remove RID_SIGNATURE. 3725169689Skan * method.c (build_decl_overload_real): Remove support for 3726169689Skan signatures. 3727169689Skan (hack_identifier): Likewise. 3728169689Skan * parse.y (base_class): Likewise. 3729169689Skan (base_class.1): Likewise. 3730169689Skan (access_specifier): Likewise. 3731169689Skan * search.c (lookup_member): Likewise. 3732169689Skan * semantics.c (finish_qualified_object_call_expr): Likewise. 3733169689Skan (finish_template_type_parm): Likewise. 3734169689Skan (begin_class_definition): Likewise. 3735169689Skan (finish_base_specifier): Likewise. 3736169689Skan * sig.c: Remove. 3737169689Skan * tree.c (build_cplus_method_type): Remove support for signatures. 3738169689Skan * typeck.c (require_complete_type): Likewise. 3739169689Skan (c_sizeof): Likewise. 3740169689Skan (c_alignof): Likewise. 3741169689Skan (build_object_ref): Likewise. 3742169689Skan (build_component_ref): Likewise. 3743169689Skan (build_indirect_ref): Likewise. 3744169689Skan (build_c_cast): Likewise. 3745169689Skan (build_modify_expr): Likewise. 3746169689Skan (convert_for_initialization): Likewise. 3747169689Skan * typeck2.c (signature_error): Remove. 3748169689Skan (store_init_value): Remove support for signatures. 3749169689Skan (digest_init): Likewise. 3750169689Skan (build_x_arrow): Likewise. 3751169689Skan (build_functional_cast): Likewise. 3752169689Skan * xref.c (GNU_xref_decl): Likewise. 3753169689Skan 3754169689Skan1999-08-10 Martin v. Loewis <martin@mira.isdn.cs.tu-berlin.de> 3755169689Skan 3756169689Skan * lex.c (do_identifier): Remove unnecessary lookup of class field. 3757169689Skan 3758169689Skan1999-08-09 Martin v. Loewis <martin@mira.isdn.cs.tu-berlin.de> 3759169689Skan 3760169689Skan * decl2.c (set_decl_namespace): Do not complain about non-matching 3761169689Skan decls if processing a template. 3762169689Skan 3763169689Skan1999-08-09 Mark Mitchell <mark@codesourcery.com> 3764169689Skan 3765169689Skan * decl.c (build_ptrmemfunc_type): Handle qualified 3766169689Skan pointer-to-member types here. 3767169689Skan * tree.c (cp_build_qualified_type_real): Simplify handling here. 3768169689Skan 3769169689Skan1999-08-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3770169689Skan 3771169689Skan * lex.c (lang_identify): Likewise. 3772169689Skan 3773169689Skan1999-08-09 Bernd Schmidt <bernds@cygnus.co.uk> 3774169689Skan 3775169689Skan * Makefile.in: Update dependencies. 3776169689Skan * class.c (finish_struct_1): Don't initialize DECL_SAVED_INSNS with 3777169689Skan NULL_RTX. 3778169689Skan * decl.c: Include "function.h" 3779169689Skan (cleanup_label, return_label): Delete declarations. 3780169689Skan (store_parm_decls): Don't initialize DECL_SAVED_INSNS with NULL_RTX. 3781169689Skan (finish_function): Rename last_parm_insn variable to 3782169689Skan fn_last_parm_insn. Don't compare DECL_SAVED_INSNS to NULL_RTX. 3783169689Skan * decl2.c: Include "function.h". 3784169689Skan (rtl_expr_chain): Delete declaration. 3785169689Skan * method.c: Include "function.h" 3786169689Skan * tree.c (build_vbase_pointer_fields): Don't initialize 3787169689Skan DECL_SAVED_INSNS with NULL_RTX. 3788169689Skan * typeck.c: Include "function.h" 3789169689Skan 3790169689Skan1999-08-09 Jason Merrill <jason@yorick.cygnus.com> 3791169689Skan 3792169689Skan * semantics.c (begin_function_try_block, finish_function_try_block, 3793169689Skan finish_function_handler_sequence): New fns. 3794169689Skan * parse.y (function_try_block): Use them. 3795169689Skan * pt.c (instantiate_decl): Likewise. 3796169689Skan 3797169689Skan * cp-tree.h: Declare in_function_try_handler. 3798169689Skan * decl.c: Define it. 3799169689Skan (start_function): Clear it. 3800169689Skan (struct cp_function, push_cp_function_context): Save it. 3801169689Skan (pop_cp_function_context): Restore it. 3802169689Skan * parse.y (function_try_block): Set and clear it. 3803169689Skan * except.c (expand_end_catch_block): Rethrow if we reach the end 3804169689Skan of a function-try-block handler in a ctor or dtor. 3805169689Skan * typeck.c (c_expand_return): Complain about returning from a 3806169689Skan function-try-block handler of a ctor. 3807169689Skan 3808169689Skan * parse.y (function_try_block): Call end_protect_partials 3809169689Skan before expand_start_all_catch. 3810169689Skan 3811169689Skan1999-08-08 Jason Merrill <jason@yorick.cygnus.com> 3812169689Skan 3813169689Skan * decl.c (struct binding_level): Add eh_region field. 3814169689Skan (push_binding_level): Set it. 3815169689Skan (define_label): Complain about jumping into an EH block. 3816169689Skan 3817169689Skan * ptree.c (print_lang_type): Print the real type of a PMF. 3818169689Skan Print what exceptions a fn type throws. 3819169689Skan 3820169689Skan1999-08-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3821169689Skan 3822169689Skan * class.c (count_fields, add_fields_to_vec): Add static prototype. 3823169689Skan 3824169689Skan * cp-tree.h (opname_tab, assignop_tab, operator_name_string, 3825169689Skan get_id_2, composite_pointer_type, dump_node_to_file): Constify a 3826169689Skan char*. 3827169689Skan 3828169689Skan * decl.c (named_label_list, cp_finish_decl, grokdeclarator): 3829169689Skan Constify a char*. 3830169689Skan 3831169689Skan * decl2.c (finish_static_data_member_decl, grokfield): Constify a 3832169689Skan char*. 3833169689Skan 3834169689Skan * dump.c (queue_and_dump_index, dump_int, dump_string, 3835169689Skan dump_string_field, dequeue_and_dump, dump_node_to_file): Constify 3836169689Skan a char*. 3837169689Skan (dump_stmt): Add static prototype. 3838169689Skan 3839169689Skan * errfn.c (cp_thing): Constify a char*. 3840169689Skan 3841169689Skan * error.c (dump_unary_op, dump_binary_op, aggr_variety, 3842169689Skan dump_aggr_type, dump_global_iord, dump_decl, dump_function_name, 3843169689Skan dump_expr): Constify a char*. 3844169689Skan 3845169689Skan * lex.c (extend_token_buffer_to, pragma_getc, pragma_ungetc, 3846169689Skan read_line_number): Add static prototype. 3847169689Skan (opname_tab, assignop_tab, operator_name_string): Constify a char*. 3848169689Skan (real_yylex): Move label `letter' into the scope where it is used. 3849169689Skan 3850169689Skan * method.c (build_mangled_template_parm_index, build_overload_int, 3851169689Skan build_decl_overload_real, get_id_2): Constify a char*. 3852169689Skan 3853169689Skan * search.c (check_final_overrider): Make static. 3854169689Skan 3855169689Skan * typeck.c (composite_pointer_type): Constify a char*. 3856169689Skan 3857169689Skan1999-08-06 Jason Merrill <jason@yorick.cygnus.com> 3858169689Skan 3859169689Skan * pt.c (maybe_get_template_decl_from_type_decl): Make sure that 3860169689Skan we're looking at a class. 3861169689Skan 3862169689Skan * decl.c (lookup_name_real): Set the complain flag if we're 3863169689Skan looking for a namespace member. 3864169689Skan 3865169689Skan * lex.c (real_yylex): We can have a number with no digits. 3866169689Skan 3867169689Skan * cvt.c (cp_convert_to_pointer): Don't force pmf conversions. 3868169689Skan 3869169689Skan * search.c (binfo_from_vbase): New fn. 3870169689Skan * cp-tree.h: Declare it. 3871169689Skan * cvt.c (cp_convert_to_pointer): Use it to diagnose conversion 3872169689Skan from pointer to member of virtual base. 3873169689Skan * typeck.c (get_delta_difference): Likewise. 3874169689Skan 3875169689Skan1999-08-06 Alexandre Oliva <oliva@dcc.unicamp.br> 3876169689Skan 3877169689Skan * pt.c (tsubst): Use build_index_type to build in-template array 3878169689Skan index type. Fixes g++.oliva/dwarf1.C. 3879169689Skan * decl.c (grokdeclarator): Likewise, just for consistency, as it 3880169689Skan doesn't seem to trigger the bug without it. 3881169689Skan 3882169689Skan1999-08-06 Jason Merrill <jason@yorick.cygnus.com> 3883169689Skan 3884169689Skan * typeck2.c (add_exception_specifier): Use complete_type. 3885169689Skan 3886169689Skan1999-08-06 Mark Mitchell <mark@codesourcery.com> 3887169689Skan 3888169689Skan * error.c (dump_expr): Handle EXACT_DIV_EXPR. 3889169689Skan (dump_binary_op): Bulletproof. 3890169689Skan * lex.c (init_parse): Set opname_tab[EXACT_DIV_EXPR]. 3891169689Skan * tree.c (search_tree): Don't enumerate all the nodes of classes 3892169689Skan `1', `2', and `<'; handle them generically. Don't be sorry about 3893169689Skan "unrecognized tree codes"; just abort. 3894169689Skan (no_linkage_check): Don't do linkage checks for templates. 3895169689Skan 3896169689Skan * tree.c (cp_build_qualified_type_real): Handle 3897169689Skan pointer-to-member-function types correctly. 3898169689Skan 3899169689Skan1999-08-05 Jason Merrill <jason@yorick.cygnus.com> 3900169689Skan 3901169689Skan * decl.c (pushdecl): Only give an error for shadowing a parm 3902169689Skan from *this* function. 3903169689Skan 3904169689SkanThu Aug 5 02:40:42 1999 Jeffrey A Law (law@cygnus.com) 3905169689Skan 3906169689Skan * typeck2.c: Update URLs and mail addresses. 3907169689Skan 3908169689Skan1999-08-04 Nathan Sidwell <nathan@acm.org> 3909169689Skan 3910169689Skan * cp-tree.h (empty_except_spec): New global var. 3911169689Skan (compexcepttypes): Remove prototype. 3912169689Skan (comp_except_specs): Prototype new global function. 3913169689Skan (add_exception_specifier): Prototype new global function. 3914169689Skan * decl.c (empty_except_spec): Define new global var. 3915169689Skan (duplicate_decls): Use comp_except_specs, reword error message. 3916169689Skan (init_decl_processing): Initialize empty_except_spec. 3917169689Skan Adjust build_exception_variant calls. 3918169689Skan * parse.y (exception_specification_opt): Use empty_except_spec. 3919169689Skan (ansi_raise_identifier): Call check_for_new_type. 3920169689Skan (ansi_raise_identifiers): Use add_exception_specifier. 3921169689Skan * pt.c (tsubst): Use add_exception_specifier to build exception 3922169689Skan specifier. 3923169689Skan * search.c (check_final_overrider): New static function, broken 3924169689Skan out of get_matching_virtual. Check throw specifiers, reword 3925169689Skan diagnostics. 3926169689Skan (get_matching_virtual): Use check_final_overrider. 3927169689Skan * tree.c (build_exception_variant): Use comp_except_specs. 3928169689Skan * typeck.c (compexcepttypes): Remove. 3929169689Skan (comp_except_types): New static function, helper for 3930169689Skan comp_except_specs. Compare two types as exception specifiers. 3931169689Skan (comp_except_specs): New global function, compare two exception 3932169689Skan specifiers. 3933169689Skan (comptypes): Adjust for comp_except_specs. 3934169689Skan * typeck2.c (add_exception_specifier): New global function. 3935169689Skan 3936169689Skan * class.c (check_for_override): Reword error message. 3937169689Skan 3938169689Skan1999-08-03 Nathan Sidwell <nathan@acm.org> 3939169689Skan 3940169689Skan * call.c (convert_arg_to_ellipsis): Use pod_type_p. 3941169689Skan * cp-tree.h (struct lang_type): Added non_pod_class flag. 3942169689Skan (CLASSTYPE_NON_POD_P): New macro to access it. 3943169689Skan * class.c (finish_struct_1): Determine non-PODness. 3944169689Skan Check for arrays of pointers (-Weffc++). 3945169689Skan Remove array inspection duplicated code. 3946169689Skan * tree.c (pod_type_p): Detect non-pod non-aggregate types. 3947169689Skan Use CLASSTYPE_NON_POD_P. 3948169689Skan 3949169689Skan1999-08-03 Nathan Sidwell <nathan@acm.org> 3950169689Skan 3951169689Skan * class.c (duplicate_tag_error): Preserve template information. 3952169689Skan 3953169689Skan1999-08-03 Nathan Sidwell <nathan@acm.org> 3954169689Skan 3955169689Skan * decl.c (start_enum): Show location of previous definition. 3956169689Skan * parse.y (enumlist_opt): New reduction. 3957169689Skan (structsp): Simplify enum rules to use enumlist_opt. 3958169689Skan 3959169689Skan1999-08-03 Jason Merrill <jason@yorick.cygnus.com> 3960169689Skan 3961169689Skan * lex.c (yyprint): Handle PFUNCNAME. 3962169689Skan 3963169689Skan * decl2.c (build_expr_from_tree, case METHOD_CALL_EXPR): Only 3964169689Skan build_expr_from_tree on the args of a TEMPLATE_ID_EXPR. 3965169689Skan 3966169689Skan1999-08-03 Mumit Khan <khan@xraylith.wisc.edu> 3967169689Skan 3968169689Skan * decl.c (start_decl): Set attributes before duplicate_decls call. 3969169689Skan 3970169689Skan1999-08-02 Mark Mitchell <mark@codesourcery.com> 3971169689Skan 3972169689Skan * Make-lang.in (CXX_SRCS): Add dump.c. 3973169689Skan * Makefile.in (CXX_OBJS): Add dump.o. 3974169689Skan (dump.o): New target. 3975169689Skan * cp-tree.h (DECL_CONV_FN_P): Document. 3976169689Skan (DECL_OVERLOADED_OPERATOR_P): New function. 3977169689Skan (TYPE_PTRMEM_CLASS_TYPE): New macro. 3978169689Skan (TYPE_PTRMEM_POINTED_TO_TYPE): Likewise. 3979169689Skan (PTRMEM_CST_CLASS): Use TYPE_PTRMEM_CLASS_TYPE. 3980169689Skan (ASM_VOLATILE_P): New macro. 3981169689Skan (STMT_LINENO): Likewise. 3982169689Skan (cp_namespace_decls): New function. 3983169689Skan (dump_node_to_file): New function. 3984169689Skan * decl.c (cp_namespace_decls): New function. 3985169689Skan (walk_namespaces_r): Use it. 3986169689Skan (wrapup_globals_for_namespace): Likewise. 3987169689Skan * decl2.c (flag_dump_translation_unit): New variable. 3988169689Skan (lang_decode_option): Handle -fdump-translation-unit. 3989169689Skan (finish_file): If flag_dump_translation_unit is set, dump the 3990169689Skan translation unit. 3991169689Skan * dump.c: New file. 3992169689Skan * lang-options.h: Add -fdump-translation-unit. 3993169689Skan * pt.c (tsubst_template_parms): Robustify. 3994169689Skan (tsubst_decl): Use DECL_OVERLOADED_OPERATOR_P. 3995169689Skan (tsubst_expr): Use STMT_LINENO. 3996169689Skan * semantics.c (finish_asm_stmt): Eliminate duplicate code. Check 3997169689Skan for invalid cv-qualifiers even while building templates. 3998169689Skan 3999169689Skan1999-08-02 Richard Henderson <rth@cygnus.com> 4000169689Skan 4001169689Skan * call.c: Include defaults.h instead of expr.h. 4002169689Skan * decl.c: Likewise. 4003169689Skan * pt.c: Likewise. 4004169689Skan * typeck.c: Include defaults.h. 4005169689Skan 4006169689Skan1999-08-02 Mark Mitchell <mark@codesourcery.com> 4007169689Skan 4008169689Skan * lex.c (errorcount, sorrycount): Don't declare. 4009169689Skan * repo.c (errorcount, sorrycount): Likewise. 4010169689Skan * typeck2.c (errorcount, sorrycount): Likewise. 4011169689Skan 4012169689Skan1999-08-02 Jakub Jelinek <jj@ultra.linux.cz> 4013169689Skan 4014169689Skan * call.c (convert_default_arg, build_over_call): Change all uses of 4015169689Skan PROMOTE_PROTOTYPES, so that it tests it as a C expression. 4016169689Skan Ensure expr.h is included. 4017169689Skan * decl.c (grokparams): Ditto. 4018169689Skan * pt.c (tsubst_decl): Ditto. 4019169689Skan * typeck.c (convert_arguments): Ditto. 4020169689Skan 4021169689Skan1999-08-02 Jason Merrill <jason@yorick.cygnus.com> 4022169689Skan 4023169689Skan * class.c (mark_overriders): Fix order of args to overrides. 4024169689Skan (warn_hidden): Likewise. Fix for having virtual and non-virtual 4025169689Skan functions with the same name. 4026169689Skan 4027169689Skan1999-08-02 Richard Henderson <rth@cygnus.com> 4028169689Skan 4029169689Skan * cp-tree.h (TYPE_PTRMEMFUNC_P): Check TYPE_LANG_SPECIFIC non-null. 4030169689Skan 4031169689Skan1999-08-01 Mark Mitchell <mark@codesourcery.com> 4032169689Skan 4033169689Skan * call.c (build_conditional_expr): Fix typo in comment. 4034169689Skan 4035169689Skan1999-08-01 Bernd Schmidt <bernds@cygnus.co.uk> 4036169689Skan 4037169689Skan * decl.c (finish_stmt): Don't declare and test cond_stack, loop_stack, 4038169689Skan case_stack; use in_control_zone_p. 4039169689Skan * typeck.c (c_expand_return): Likewise. 4040169689Skan 4041169689Skan1999-07-31 Bernd Schmidt <bernds@cygnus.co.uk> 4042169689Skan 4043169689Skan * except.c (catch_clauses): Delete declaration. 4044169689Skan 4045169689Skan1999-07-30 Mark Mitchell <mark@codesourcery.com> 4046169689Skan 4047169689Skan * call.c (build_conditional_expr): Call convert_from_reference to 4048169689Skan avoid reference/non-reference type confusion. Fix typo. 4049169689Skan 4050169689Skan1999-07-30 Richard Henderson <rth@cygnus.com> 4051169689Skan 4052169689Skan * typeck2.c (initializer_constant_valid_p): Moved to c-common.c. 4053169689Skan * cp-tree.h (initializer_constant_valid_p): Remove. 4054169689Skan 4055169689Skan1999-07-28 Mark Mitchell <mark@codesourcery.com> 4056169689Skan 4057169689Skan * call.c (conditional_conversion): Don't build BASE_CONVs for 4058169689Skan conversions between things that have the same type. 4059169689Skan (build_conditional_expr): Tweak. 4060169689Skan (convert_like): Some BASE_CONVs really do require the generation 4061169689Skan of code. 4062169689Skan 4063169689Skan * init.c (perform_member_init): Don't go through build_modify_expr 4064169689Skan for simple initializations. 4065169689Skan 4066169689Skan1999-07-27 Jason Merrill <jason@yorick.cygnus.com> 4067169689Skan 4068169689Skan * cp-tree.h (DECL_VIRTUAL_CONTEXT): New macro. 4069169689Skan * typeck.c (expand_ptrmemfunc_cst): Calculate delta correctly for 4070169689Skan virtual functions and MI. Simplify. 4071169689Skan 4072169689Skan * method.c: Remove prototype for largest_union_member. 4073169689Skan * pt.c (determine_specialization): Fix uninitialized warning. 4074169689Skan * lex.c (real_yylex): Likewise. 4075169689Skan 4076169689Skan1999-07-27 Mark Mitchell <mark@codesourcery.com> 4077169689Skan 4078169689Skan * class.c (override_one_vtable): Adjust the use of BINFO_VIRTUALS 4079169689Skan here too. 4080169689Skan 4081169689Skan * cp-tree.h (BINFO_VIRTUALS): Document new format. 4082169689Skan * class.c (modify_one_vtable): Change prototype accordingly. 4083169689Skan (modify_all_vtables): Likewise. 4084169689Skan (modify_all_direct_vtables): Likewise. 4085169689Skan (modify_all_indirect_vtables): Likewise. 4086169689Skan (build_vtable_entry_for_fn): New function. 4087169689Skan (set_rtti_entry): Simplify for new BINFO_VIRTUALS format. 4088169689Skan (modify_vtable_entry): Likewise. 4089169689Skan (add_virtual_function): Likewise. 4090169689Skan (build_vtbl_initializer): New function. 4091169689Skan (finish_vtbls): Simplify for new BINFO_VIRTUALS format. 4092169689Skan (fixup_vtable_deltas1): Likewise. 4093169689Skan (fixup_vtable_deltas): Likewise. 4094169689Skan (override_one_vtable): Likewise. 4095169689Skan (finish_struct_1): Likewise. 4096169689Skan 4097169689Skan * error.c (dump_expr): Likewise. 4098169689Skan * search.c (get_abstract_virtuals_1): Likewise. 4099169689Skan (get_abstract_virtuals): Likewise. 4100169689Skan (expand_upcast_fixups): Likewise. 4101169689Skan * tree.c (debug_binfo): Likewise. 4102169689Skan * decl2.c (mark_vtable_entries): Don't bash abstract virtuals to 4103169689Skan __pure_virtual here. 4104169689Skan 4105169689Skan1999-07-26 Mark Mitchell <mark@codesourcery.com> 4106169689Skan 4107169689Skan * tree.c (build_cplus_new): Adjust call to abstract_virtuals_error 4108169689Skan as per 1999-07-26 change. 4109169689Skan 4110169689Skan * typeck.c (c_sizeof): Don't allow non-static data members. 4111169689Skan (expr_sizeof): Likewise. 4112169689Skan 4113169689Skan1999-07-26 Jason Merrill <jason@yorick.cygnus.com> 4114169689Skan 4115169689Skan * input.c (feed_input): Only touch lineno and input_filename 4116169689Skan if !USE_CPPLIB. Save the old values before setting the new ones. 4117169689Skan 4118169689Skan * input.c (feed_input): Add file, line parms. 4119169689Skan * lex.c (begin_definition_of_inclass_inline, feed_defarg): Adjust. 4120169689Skan (real_yylex): Check linemode before input_redirected(). 4121169689Skan 4122169689Skan * typeck.c (c_expand_return): Downgrade pedwarn about returning NULL 4123169689Skan from op new to warning. 4124169689Skan 4125169689Skan1999-07-26 Mark Mitchell <mark@codesourcery.com> 4126169689Skan 4127169689Skan * cp-tree.h (ncp_convert): Rename to perform_implicit_conversion. 4128169689Skan * call.c: All uses changed. 4129169689Skan * typeck.c: Likewise. 4130169689Skan 4131169689Skan1999-07-26 Nathan Sidwell <nathan@acm.org> 4132169689Skan 4133169689Skan * exception.cc (__cplus_type_matcher): Match __eh_matcher 4134169689Skan prototype. 4135169689Skan 4136169689Skan1999-07-26 Mark Mitchell <mark@codesourcery.com> 4137169689Skan 4138169689Skan * cp-tree.h (CP_INTEGRAL_TYPE_P): New macro. 4139169689Skan (ARITHMETIC_TYPE_P): Adjust definition for standard conformance. 4140169689Skan (strip_top_quals): Declare. 4141169689Skan (ncp_convert): Likewise. 4142169689Skan (type_after_usual_arithmetic_conversions): Likewise. 4143169689Skan (composite_pointer_type): Likewise. 4144169689Skan * call.c (strip_top_quals): Don't make it static. 4145169689Skan (promoted_arithmetic_type_p): New function. 4146169689Skan (conditional_conversion): Likewise. 4147169689Skan (null_ptr_cst_p): Allow `false' as a NULL pointer constant. 4148169689Skan (standard_conversion): Use same_type_p. Don't build BASE_CONVs 4149169689Skan for converting a type to itself. 4150169689Skan (reference_binding): Honor LOOKUP_NO_TEMP_BIND. 4151169689Skan (implicit_conversion): Make sure the from and to types are 4152169689Skan complete. 4153169689Skan (add_builtin_candidate): Correct handling of ?: operator. 4154169689Skan (add_builtin_candidates): Improve documentation. 4155169689Skan (build_conditional_expr): New function. 4156169689Skan (can_convert): Implement in terms of can_convert_arg. 4157169689Skan (ncp_convert): New function. 4158169689Skan * typeck.c (type_after_usual_arithmetic_conversions): New 4159169689Skan function, split out from common_type. 4160169689Skan (composite_pointer_type): New function, split out from 4161169689Skan build_conditional_expr. 4162169689Skan (common_type): Use type_after_usual_arithmetic_conversions. 4163169689Skan Remove redundant attribute merging. 4164169689Skan (comptypes): Tidy. Handle COMPLEX_TYPE. 4165169689Skan (build_binary_op_nodefault): Use null_ptr_cst_p. 4166169689Skan (build_conditional_expr): Remove. 4167169689Skan (convert_for_assignment): Use new conversion functions. 4168169689Skan 4169169689Skan * cp-tree.h (abstract_virtuals_error): Change declaration. 4170169689Skan * typeck2.c (abstract_virtuals_error): Check to see if an error 4171169689Skan occurred, and return a boolean value accordingly. 4172169689Skan (build_functional_cast): Adjust accordingly. 4173169689Skan * class.c (finish_struct_1): Likewise. 4174169689Skan * cvt.c (ocp_convert): Likewise. 4175169689Skan * decl.c (cp_finish_decl): Likewise. 4176169689Skan (grokparams): Likewise. 4177169689Skan (grok_op_properties): Likewise. 4178169689Skan (start_function): Likewise. 4179169689Skan * init.c (build_new_1): Likewise. 4180169689Skan 4181169689Skan * pt.c (unify): Don't get confused by pointers-to-member functions. 4182169689Skan 4183169689Skan * search.c (build_cplus_new): Robustify. 4184169689Skan 4185169689Skan1999-07-24 Richard Henderson <rth@cygnus.com> 4186169689Skan 4187169689Skan * gxx.gperf (__builtin_va_arg): New. 4188169689Skan * parse.y (VA_ARG): New token. 4189169689Skan (unary_expr): Recognize it. 4190169689Skan 4191169689SkanSun Jul 25 15:24:21 1999 Jeffrey A Law (law@cygnus.com) 4192169689Skan 4193169689Skan * g++FAQ.texi: Deleted per Joe Buck's request. 4194169689Skan * Makefile.in: Corresponding changes. 4195169689Skan 4196169689Skan1999-07-23 Jason Merrill <jason@yorick.cygnus.com> 4197169689Skan 4198169689Skan * lex.c: Sync with C frontend. 4199169689Skan (whitespace_cr): New fn. 4200169689Skan (skip_white_space): Use it. 4201169689Skan (init_parse): Reorder. 4202169689Skan (yyprint): Support CONSTANT. 4203169689Skan (pragma_getc, pragma_ungetc): Bring back. 4204169689Skan (read_line_number): Change in_system_header directly. 4205169689Skan (handle_generic_pragma, handle_cp_pragma, yyerror): Move up in file. 4206169689Skan (parse_float): Update to C version. 4207169689Skan (yylex): Handle '$' under the letter case. 4208169689Skan Remove looking_for_typename handling. 4209169689Skan Support hex floating point constants. 4210169689Skan Follow C's lead for choosing type of integer constants. 4211169689Skan Rearrange stuff to match C frontend. 4212169689Skan (yyungetc, reinit_parse_for_block, yylex): Support indent_level. 4213169689Skan * spew.c (yylex): Clear looking_for_typename if we see a TYPESPEC. 4214169689Skan 4215169689Skan1999-07-23 Mark Mitchell <mark@codesourcery.com> 4216169689Skan 4217169689Skan * call.c (reference_binding): Tweak. 4218169689Skan (mayble_handle_implicit_object): Use direct_reference_binding to 4219169689Skan create the right implicit conversion sequence. 4220169689Skan 4221169689Skan1999-07-22 Mark Mitchell <mark@codesourcery.com> 4222169689Skan 4223169689Skan * pt.c (convert_nontype_argument): Don't call decl_constant_value 4224169689Skan if we're converting to a reference type. 4225169689Skan 4226169689Skan * call.c (NEED_TEMPORARY_P): New macro. 4227169689Skan (standard_conversion): Set it, for derived-to-base conversions. 4228169689Skan (reference_related_p): New function. 4229169689Skan (reference_compatible_p): Likewise. 4230169689Skan (convert_class_to_reference): Likewise. 4231169689Skan (direct_reference_binding): Likewise. 4232169689Skan (reference_binding): Rework for standards-compliance. 4233169689Skan (convert_like): Adjust accordingly. 4234169689Skan (maybe_handle_ref_bind): Simplify; the right conversion sequences 4235169689Skan are now built up in reference_binding. 4236169689Skan (initialize_reference): New function. 4237169689Skan * cp-tree.h (ICS_USER_FLAG): Document. 4238169689Skan (ICS_THIS_FLAG): Likewise. 4239169689Skan (ICS_BAD_FLAG): Likewise. 4240169689Skan (NEED_TEMPORARY_P): Likewise. 4241169689Skan (cp_lvalue_kind): New type. 4242169689Skan (real_lvalue_p): Return it. 4243169689Skan * error.c (dump_expr): Provide more accurate representation for 4244169689Skan AGGR_INIT_EXPRs. 4245169689Skan * init.c (expand_default_init): Do not try to perform implicit 4246169689Skan conversions for a brace-enclosed initializer. 4247169689Skan * search.c (lookup_conversions): Document. 4248169689Skan * tree.c (lvalue_p_1): Return a cp_lvalue_kind. Calculate 4249169689Skan appropriately. 4250169689Skan (real_lvalue_p): Adjust accordingly. 4251169689Skan (lvalue_p): Likewise. 4252169689Skan (build_cplus_new): Don't allow the creation of an abstract class. 4253169689Skan * typeck.c (convert_for_initialization): Use initialize_reference. 4254169689Skan 4255169689Skan1999-07-21 Gavin Romig-Koch <gavin@cygnus.com> 4256169689Skan 4257169689Skan * lex.c (real_yylex) : Correct the test for overflow when lexing 4258169689Skan integer literals. 4259169689Skan 4260169689Skan1999-07-20 Jason Merrill <jason@yorick.cygnus.com> 4261169689Skan 4262169689Skan * decl.c (warn_extern_redeclared_static): Check DECL_ARTIFICIAL, 4263169689Skan not DECL_BUILT_IN, to determine if a function is internally declared. 4264169689Skan (duplicate_decls): Likewise. Improve handling of builtins. 4265169689Skan (push_overloaded_decl): Remove special handling of builtins. 4266169689Skan 4267169689Skan * cp-tree.h (ANON_AGGR_TYPE_P): Use CLASS_TYPE_P. 4268169689Skan 4269169689Skan * decl.c (grokdeclarator): Pull out decl_constant_value in 4270169689Skan templates, too. 4271169689Skan 4272169689Skan * class.c (finish_struct, finish_struct_1): Remove 'warn_anon' parm. 4273169689Skan * cp-tree.h, pt.c, semantics.c: Adjust. 4274169689Skan * method.c (largest_union_member): Remove. 4275169689Skan 4276169689Skan * lang-specs.h (c++-cpp-output): Pass -fpreprocessed. 4277169689Skan 4278169689Skan * lex.c (token_getch, token_put_back): New fns. 4279169689Skan (real_yylex): Use them. 4280169689Skan 4281169689Skan * lex.c (lang_init): Generalize. 4282169689Skan (lang_init_options): Tell cpplib this is C++. 4283169689Skan (nextchar): Remove. Replace uses with put_back. 4284169689Skan (skip_white_space): Handle linemode here. Optimize for cpplib. 4285169689Skan (extend_token_buffer_to): New fn. 4286169689Skan (extend_token_buffer): Use it. 4287169689Skan (read_line_number, check_newline): Just deal with tokens. 4288169689Skan (real_yylex): More cpplib optimizations. Simplify. Don't produce 4289169689Skan EXTERN_LANG_STRING, LEFT_RIGHT or PAREN_STAR_PAREN here. 4290169689Skan * spew.c (yylex): Produce LEFT_RIGHT and EXTERN_LANG_STRING. 4291169689Skan * parse.y (PAREN_STAR_PAREN): Remove. 4292169689Skan * input.c: Don't use the putback machinery with cpplib. 4293169689Skan (sub_getch): Fold back into getch. 4294169689Skan (getch): Don't handle linemode here. 4295169689Skan (feed_input): Unget any text in the token buffer. 4296169689Skan 4297169689Skan * lex.c (set_typedecl_interface_info, set_vardecl_interface_info, 4298169689Skan nextyychar, nextyylval): Remove. 4299169689Skan 4300169689Skan1999-07-20 Michael Tiemann <tiemann@holodeck.cygnus.com> 4301169689Skan Jason Merrill <jason@yorick.cygnus.com> 4302169689Skan 4303169689Skan * lex.c (indent_level): New variable. 4304169689Skan (init_parse): Set cpp_token to CPP_DIRECTIVE. 4305169689Skan (consume_string): Make this smart about USE_CPPLIB. 4306169689Skan (yyungetc): Use put_back function. 4307169689Skan (pragma_getc, pragma_ungetc): Functions deleted. 4308169689Skan (check_newline): Rewrite to be intelligent about USE_CPPLIB. 4309169689Skan Also, call HANDLE_PRAGMA with getch, yyungetc, not pragma_getc and 4310169689Skan pragma_ungetc. 4311169689Skan (real_yylex): Rewrite to be intelligent about USE_CPPLIB. 4312169689Skan Also, clean up cases where we redundantly set token_buffer[0]. 4313169689Skan (read_line_number): New fn. 4314169689Skan * input.c (feed_input): Use integrated cpplib if USE_CPPLIB. 4315169689Skan (end_input): Call cpp_pop_buffer if USE_CPPLIB. 4316169689Skan (sub_getch): Conditionalize out code that's not appropriate if 4317169689Skan USE_CPPLIB. 4318169689Skan (put_back): Rewrite in case USE_CPPLIB is defined. 4319169689Skan (input_redirected): Ditto. 4320169689Skan 4321169689SkanTue Jul 20 11:24:19 1999 Bernd Schmidt <bernds@cygnus.co.uk> 4322169689Skan 4323169689Skan * cp-tree.h: Delete lots of declarations of tree nodes; replaced by 4324169689Skan c_global_trees and accessor macros defined in c-common.h. 4325169689Skan (cp_tree_index): New enumeration. 4326169689Skan (cp_global_trees): Declare new array. Add accessor macros for it, and 4327169689Skan delete declarations of tree nodes replaced by it. 4328169689Skan (builtin_function): Delete macro, add declaration for new function. 4329169689Skan Include c-common.h. 4330169689Skan * decl.c: Delete definitions for tree nodes that were replaced by 4331169689Skan cp_global_trees and c_global_trees. 4332169689Skan (init_decl_processing): Call c_common_nodes_and_builtins; delete code 4333169689Skan to generate the common builtins here. 4334169689Skan (builtin_function): New function. 4335169689Skan * decl2.c (abort_fndecl): Delete declaration. 4336169689Skan * except.c (expand_builtin_return_address): Delete declaration. 4337169689Skan (builtin_return_address_fndecl): Delete variable. 4338169689Skan (const_ptr_type_node): Delete declaration. 4339169689Skan * lex.c (cons_up_default_function): Delete declaration of 4340169689Skan void_list_node. 4341169689Skan * parse.y (void_list_node): Delete declaration. 4342169689Skan * rtti.c (type_info_type_node, tinfo_fn_id, tinfo_fn_type): 4343169689Skan Delete variables. 4344169689Skan (const_string_type_node): Delete declaration. 4345169689Skan * search.c (abort_fndecl): Delete declaration. 4346169689Skan * Makefile.in: Update dependencies. 4347169689Skan 4348169689Skan1999-07-19 Mark Mitchell <mark@codesourcery.com> 4349169689Skan 4350169689Skan * pt.c (check_default_tmpl_args): Move test for missing default 4351169689Skan arguments here, from ... 4352169689Skan (end_template_parm_list): Here. 4353169689Skan 4354169689Skan1999-07-18 Mark Mitchell <mark@codesourcery.com> 4355169689Skan 4356169689Skan * decl.c (lookup_nested_type): Remove. 4357169689Skan (pushtag): Don't call it. 4358169689Skan 4359169689SkanSat Jul 17 23:51:30 1999 Jeffrey A Law (law@cygnus.com) 4360169689Skan 4361169689Skan * Makefile.in (INTERFACE): Bump to 2. 4362169689Skan 4363169689Skan1999-07-17 Alexandre Oliva <oliva@dcc.unicamp.br> 4364169689Skan 4365169689Skan * typeck2.c (my_friendly_abort): Updated URL with bug reporting 4366169689Skan instructions to gcc.gnu.org. Removed e-mail address. 4367169689Skan 4368169689Skan1999-07-17 Mark Mitchell <mark@codesourcery.com> 4369169689Skan 4370169689Skan * pt.c (determine_specialization): Tighten error-checking. 4371169689Skan (end_template_parm_list): Likewise. 4372169689Skan 4373169689Skan1999-07-14 Mark Mitchell <mark@codesourcery.com> 4374169689Skan 4375169689Skan * pt.c (check_default_tmpl_args): Handle friends defined in the 4376169689Skan class just like member functions defined in the class. 4377169689Skan 4378169689Skan1999-07-09 Michael Tiemann <tiemann@happy.cygnus.com> 4379169689Skan Jason Merrill <jason@yorick.cygnus.com> 4380169689Skan 4381169689Skan * cp-tree.h (struct lang_decl): Added field for storing sorted 4382169689Skan FIELD_DECLs (used in TYPE_DECLs). 4383169689Skan (DECL_PENDING_INLINE_INFO): Adjusted to use 'u' union. 4384169689Skan (DECL_SORTED_FIELDS): New macro. 4385169689Skan * class.c (method_name_cmp): New function. 4386169689Skan (finish_struct_methods): Modified to support sorting and searching 4387169689Skan methods. 4388169689Skan (finish_struct_anon): Changed code in inner loop to use ELT rather 4389169689Skan than UELT (which required an extra indirection for every reference). 4390169689Skan (field_decl_cmp): New function to support sorting FIELD_DECLs. 4391169689Skan (finish_struct_1): Sort fields. 4392169689Skan * search.c (lookup_field_1): Use DECL_SORTED_FIELDS if we have them. 4393169689Skan (lookup_fnfields_1): Search sorted methods in METHOD_VEC. 4394169689Skan Also, switch to using array indexing rather than a changing pointer. 4395169689Skan * ptree.c (print_lang_decl): Handle TYPE_DECLs that have 4396169689Skan DECL_SORTED_FIELDS. 4397169689Skan 4398169689Skan1999-07-09 Jason Merrill <jason@yorick.cygnus.com> 4399169689Skan 4400169689Skan * decl2.c (reparse_absdcl_as_casts): Don't warn about old-style 4401169689Skan casts in system headers or extern "C" blocks. 4402169689Skan 4403169689Skan * pt.c (do_decl_instantiation): Downgrade duplicate instantiation 4404169689Skan errors to pedwarn. 4405169689Skan 4406169689Skan1999-07-09 Michael Tiemann <tiemann@happy.cygnus.com> 4407169689Skan 4408169689Skan * decl2.c (write_virtuals): Deleted declaration. 4409169689Skan * cp-tree.h (write_virtuals): Deleted extern declaration. 4410169689Skan * class.c (finish_struct_1): Removed #if 0'd code that mentions 4411169689Skan write_virtuals. 4412169689Skan * semantics.c (begin_class_definition): Rewrite code to not depend 4413169689Skan on write_virtuals. 4414169689Skan 4415169689Skan * lex.c (cp_pragma_interface): New function. 4416169689Skan (cp_pragma_implementation): Likewise. 4417169689Skan (handle_cp_pragma): Call them. 4418169689Skan 4419169689Skan * typeck.c (comptypes): Simplify C code in look_hard. 4420169689Skan 4421169689Skan * xref.c (PALLOC): Use xcalloc, not calloc. 4422169689Skan (SALLOC): Use xmalloc, not malloc. 4423169689Skan 4424169689Skan * rtti.c (synthesize_tinfo_fn): Add missing call to pop_momentary. 4425169689Skan 4426169689Skan * search.c (note_debug_info_needed): Don't search if WRITE_SYMBOLS 4427169689Skan is NO_DEBUG. 4428169689Skan 4429169689Skan * decl.c (duplicate_decls): If a redeclaration doesn't match the 4430169689Skan initial declaration, then don't save the inline info and by all 4431169689Skan means don't mark the function as a builtin function. 4432169689Skan 4433169689Skan * decl.c (lookup_name_real): Set NONCLASS to 1 if 4434169689Skan CURRENT_CLASS_TYPE is 0. 4435169689Skan 4436169689Skan * class.c (duplicate_tag_error): Set TYPE_NONCOPIED_PARTS to 4437169689Skan NULL_TREE. 4438169689Skan 4439169689Skan * ptree.c (print_lang_type): Added vtable-needs-writing. 4440169689Skan 4441169689SkanWed Jul 7 01:26:47 1999 Alexandre Oliva <oliva@dcc.unicamp.br> 4442169689Skan 4443169689Skan * decl2.c (mark_vtable_entries): Fix check for rtti offset. 4444169689Skan 4445169689Skan1999-07-06 Gavin Romig-Koch <gavin@cygnus.com> 4446169689Skan 4447169689Skan * typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) : 4448169689Skan Merged into c-common. 4449169689Skan 4450169689Skan1999-07-05 Dave Brolley <brolley@cygnus.com> 4451169689Skan 4452169689Skan * lex.c (errorcount): Declare it. 4453169689Skan (finish_parse): Update errorcount for when using CPPLIB. 4454169689Skan 4455169689Skan1999-07-05 Mark Mitchell <mark@codesourcery.com> 4456169689Skan 4457169689Skan * cp-tree.h (IS_AGGR_TYPE): Include instantiated template template 4458169689Skan parameters. 4459169689Skan (IMPLICIT_TYPENAME_TYPE_DECL_P): New macro. 4460169689Skan * decl.c (push_class_binding): Use it. 4461169689Skan (lookup_name_real): Likewise. 4462169689Skan 4463169689Skan1999-07-02 Gavin Romig-Koch <gavin@cygnus.com> 4464169689Skan 4465169689Skan * cp-tree.h (widest_integer_literal_type_node, 4466169689Skan widest_unsigned_literal_type) : New. 4467169689Skan * decl.c (widest_integer_literal_type_node, 4468169689Skan widest_unsigned_literal_type) : New. 4469169689Skan (init_decl_processing): Handle/use the two new types. 4470169689Skan * lex.c (real_yylex): Same. 4471169689Skan * typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) : 4472169689Skan Same. 4473169689Skan 4474169689Skan1999-07-01 Mark Mitchell <mark@codesourcery.com> 4475169689Skan 4476169689Skan * decl.c (grokdeclarator): Don't give names "for linkage purposes" 4477169689Skan to anonymous cv-qualified types. 4478169689Skan 4479169689Skan1999-07-01 Gavin Romig-Koch <gavin@cygnus.com> 4480169689Skan 4481169689Skan * lex.c (real_yylex) : Change integer literal overflow handling to 4482169689Skan be like c-lex.c. 4483169689Skan 4484169689Skan * lex.c (real_yylex): Improve 'integer constant out of range' messages. 4485169689Skan 4486169689Skan1999-06-28 Richard Henderson <rth@cygnus.com> 4487169689Skan 4488169689Skan * decl.c (cp_finish_decl): Fix typo in cp_warning_at call. 4489169689Skan 4490169689Skan1999-06-28 Jason Merrill <jason@yorick.cygnus.com> 4491169689Skan 4492169689Skan * error.c (dump_type_real): Handle TREE_LIST again. 4493169689Skan 4494169689Skan * typeck.c (comp_target_parms): Don't complain about 4495169689Skan converting from () to (...) if !flag_strict_prototype. 4496169689Skan 4497169689Skan * decl.c (grokdeclarator): Update the names of all variants when 4498169689Skan de-anonymizing. 4499169689Skan 4500169689Skan1999-06-21 Mark Mitchell <mark@codesourcery.com> 4501169689Skan 4502169689Skan * init.c (expand_aggr_vbase_init): Rename to 4503169689Skan construct_virtual_bases. Conditionalize construction here, 4504169689Skan rather than ... 4505169689Skan (emit_base_init): Here. 4506169689Skan 4507169689Skan1999-06-19 Mark Mitchell <mark@codesourcery.com> 4508169689Skan 4509169689Skan * semantics.c (finish_asm_stmt): Apply decay conversions to 4510169689Skan input operands. 4511169689Skan 4512169689Skan * decl.c (expand_static_init): When building an anonymous function 4513169689Skan for use with atexit, compute its body before and after entering 4514169689Skan the function. 4515169689Skan 4516169689Skan * error.c (dump_expr): Handle BIND_EXPR, LOOP_EXPR, and 4517169689Skan EXIT_EXPR. 4518169689Skan 4519169689Skan1999-06-18 Mark Mitchell <mark@codesourcery.com> 4520169689Skan 4521169689Skan * init.c (expand_aggr_vbase_init): Add flag parameter. 4522169689Skan (build_partial_cleanup_for): Remove, inlining into .. 4523169689Skan (expand_cleanup_for_base): ... here. Take flag parameter. 4524169689Skan (emit_base_init): Pass the in_chrg parameter to 4525169689Skan emit_aggr_vbase_init. 4526169689Skan (emit_aggr_vbase_init): Pass it to expand_cleanup_for_base. 4527169689Skan 4528169689Skan1999-06-16 Mark Mitchell <mark@codesourcery.com> 4529169689Skan 4530169689Skan * decl2.c (import_export_decl): Use same_type_p, rather than 4531169689Skan relying on pointer-equality for types. 4532169689Skan 4533169689Skan * method.c (do_build_copy_constructor): Simplify. 4534169689Skan 4535169689Skan * call.c (build_method_call): Remove bogus code for two-argument 4536169689Skan delete. 4537169689Skan * init.c (build_new_1): Expand on comment, and remove dead code. 4538169689Skan 4539169689Skan * init.c (expand_cleanup_for_base): New function, split out 4540169689Skan from ... 4541169689Skan (emit_base_init): Here. 4542169689Skan (expand_aggr_vbase_init): Use it. 4543169689Skan 4544169689Skan1999-06-15 Mark Mitchell <mark@codesourcery.com> 4545169689Skan 4546169689Skan * cp-tree.h (class_cache_firstobj): Declare. 4547169689Skan (maybe_push_cache_obstack): Rename to push_cache_obstack. 4548169689Skan * class.c (permanent_obstack): Remove declaration. 4549169689Skan (class_cache_firstobj): Make it global. 4550169689Skan (add_method): Don't use permanent_obstack directly. 4551169689Skan (pushclass): Only free the class_cache_obstack if we know how far 4552169689Skan back to free it. 4553169689Skan (maybe_push_cache_obstack): Rename to push_cache_obstack. 4554169689Skan * decl.c: Remove dead comment. 4555169689Skan (saved_scope): Add class_cache_firstobj. 4556169689Skan (push_to_top_level): Save it. 4557169689Skan (pop_from_top_level): Restore it. 4558169689Skan (push_class_level_binding): Use push_cache_obstack, not 4559169689Skan maybe_push_cache_obstack. 4560169689Skan * search.c (push_class_decls): Likewise. 4561169689Skan 4562169689Skan1999-06-14 Martin von L�wis <loewis@informatik.hu-berlin.de> 4563169689Skan 4564169689Skan * pt.c (tsubst_friend_function): Push into namespace of friend 4565169689Skan function before pushdecl'ing it. 4566169689Skan 4567169689Skan1999-06-14 Nathan Sidwell <nathan@acm.org> 4568169689Skan 4569169689Skan * call.c (build_new_op): Remove REF_BIND from all operands. 4570169689Skan 4571169689Skan1999-06-13 Alexandre Oliva <oliva@dcc.unicamp.br> 4572169689Skan 4573169689Skan * init.c (build_new_1): Look up operator delete even if there was 4574169689Skan no explicit new placement. 4575169689Skan 4576169689Skan1999-06-08 Nathan Sidwell <nathan@acm.org> 4577169689Skan 4578169689Skan * except.c (complete_ptr_ref_or_void_ptr_p): New function, broken out 4579169689Skan of ... 4580169689Skan (build_throw): ... here. Call it. 4581169689Skan (process_start_catch_block): Call it. 4582169689Skan 4583169689Skan1999-06-07 Mark Mitchell <mark@codesourcery.com> 4584169689Skan 4585169689Skan * search.c (convert_pointer_to_single_level): Reimplement without 4586169689Skan using get_binfo. 4587169689Skan 4588169689Skan1999-06-06 Mark Mitchell <mark@codesourcery.com> 4589169689Skan 4590169689Skan * method.c (is_back_referenceable_type): Back-reference bools when 4591169689Skan not squangling. 4592169689Skan 4593169689Skan1999-06-07 Dave Brolley <brolley@cygnus.com> 4594169689Skan 4595169689Skan * lex.c (real_yylex): Replace unused bytes from bad multibyte char. 4596169689Skan * input.c (putback_buffer): New structure type. 4597169689Skan (putback): Replaces putback_char member. 4598169689Skan (putback): Replaces putback_char static variable. 4599169689Skan (feed_input): Use putback. 4600169689Skan (end_input): Use putback. 4601169689Skan (sub_getch): Use putback. 4602169689Skan (put_back): Use putback. 4603169689Skan 4604169689Skan1999-06-05 Mark Mitchell <mark@codesourcery.com> 4605169689Skan 4606169689Skan * decl.c (grokdeclarator): Fix typo in last change. 4607169689Skan 4608169689Skan1999-06-04 Jason Merrill <jason@yorick.cygnus.com> 4609169689Skan 4610169689Skan * semantics.c (finish_if_stmt_cond): Copy cond to permanent_obstack. 4611169689Skan (finish_while_stmt_cond, finish_do_stmt, finish_for_cond): Likewise. 4612169689Skan 4613169689Skan1999-06-04 Nathan Sidwell <nathan@acm.org> 4614169689Skan 4615169689Skan * except.c (build_throw): Check throw expression validity. 4616169689Skan 4617169689Skan1999-06-03 Mark Mitchell <mark@codesourcery.com> 4618169689Skan 4619169689Skan * decl.c (grokdeclarator): Don't treat arbitrary types as unsigned 4620169689Skan just because flag_signed_bitfields is false. 4621169689Skan 4622169689Skan1999-06-03 Nathan Sidwell <nathan@acm.org> 4623169689Skan 4624169689Skan * semantics.c (begin_class_definition): Update the struct's 4625169689Skan location here ... 4626169689Skan * class.c (finish_struct): ... rather than here. 4627169689Skan 4628169689Skan * decl.c (make_typename_type): Don't rely on uninitialized 4629169689Skan variable. 4630169689Skan 4631169689Skan1999-05-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 4632169689Skan 4633169689Skan * Makefile.in (ALL_CFLAGS): Add '-W -Wall'. 4634169689Skan 4635169689Skan1999-05-31 Mark Mitchell <mark@codesourcery.com> 4636169689Skan 4637169689Skan * tree.c (build_cplus_array_type_1): Use push_obstacks_nochange 4638169689Skan and friends rather than messing with current_obstack directly. 4639169689Skan (cp_build_qualified_type_real): Rework ARRAY_TYPE 4640169689Skan allocation to match practice throughout the rest of the 4641169689Skan compiler. 4642169689Skan 4643169689Skan1999-05-30 Mark Mitchell <mark@codesourcery.com> 4644169689Skan 4645169689Skan * lex.c (make_lang_type): Create TYPE_BINFO for 4646169689Skan TEMPLATE_TYPE_PARMs just like for non-template types. 4647169689Skan 4648169689Skan * decl.c (start_decl): Move checks on initialization to ... 4649169689Skan (cp_finish_decl): Here. Tidy formatting slightly. 4650169689Skan 4651169689Skan1999-05-28 Mark Mitchell <mark@codesourcery.com> 4652169689Skan 4653169689Skan * decl.c (add_binding): Don't complain about a redeclaration of a 4654169689Skan semantically identical typedef in a local scope. 4655169689Skan 4656169689Skan1999-05-28 Nathan Sidwell <nathan@acm.org> 4657169689Skan 4658169689Skan * decl.c (complete_array_type): Allocate off same obstack. Fix 4659169689Skan DO_DEFAULT comment to match reality. 4660169689Skan 4661169689Skan * friend.c (make_friend_class): Fix diagnostic typo. 4662169689Skan 4663169689Skan1999-05-28 Mark Mitchell <mark@codesourcery.com> 4664169689Skan 4665169689Skan * decl.c (lookup_namespace_name): Handle getting a 4666169689Skan TEMPLATE_ID_EXPR. 4667169689Skan (expand_static_init): Don't call pushdecl for implicitly declared 4668169689Skan `atexit' used to register destructors. 4669169689Skan 4670169689Skan1999-05-25 Mark Mitchell <mark@codesourcery.com> 4671169689Skan 4672169689Skan * class.c (finish_vtbls): Copy BINFO_VIRTUALs before using it to 4673169689Skan initialize a vtable. 4674169689Skan 4675169689Skan * cp-tree.h (NAMESPACE_LEVEL): Reformat. 4676169689Skan (lang_decl_flags): Document MEMFUNC_POINTER_TO. Save four bytes 4677169689Skan by combining TEMPLATE_INFO and LEVEL into a single union. 4678169689Skan (DECL_TEMPLATE_INFO): Reformat. 4679169689Skan (DECL_SAVED_TREE): Document. 4680169689Skan (DECL_TEMPLATE_INJECT): Remove. 4681169689Skan * class.c (finish_struct): Remove code to deal with 4682169689Skan DECL_TEMPLATE_INJECT. 4683169689Skan 4684169689Skan * decl.c (maybe_process_template_type_declaration): Handle all new 4685169689Skan types in templates uniformly. 4686169689Skan * method.c (bulid_overload_identifier): Use CP_DECL_CONTEXT, not 4687169689Skan DECL_CONTEXT. 4688169689Skan * pt.c (lookup_template_class): Inject template instantiations of 4689169689Skan forward-declarations. 4690169689Skan (instantiate_class_template): Remove code processing 4691169689Skan DECL_TEMPLATE_INJECT. 4692169689Skan 4693169689Skan * pt.c (lookup_template_class): Tweak lookup to find member 4694169689Skan templates. 4695169689Skan 4696169689Skan * pt.c (tsubst_expr, case ASM_STMT): Don't tsubst into 4697169689Skan ASM_CV_QUAL. 4698169689Skan * semantics.c (finish_asm_stmt): Make strings permanent if they're 4699169689Skan used in a template. 4700169689Skan 4701169689Skan1999-05-25 Jason Merrill <jason@yorick.cygnus.com> 4702169689Skan 4703169689Skan * typeck.c (casts_away_constness, casts_away_constness_r): Strip both 4704169689Skan parts of pointer to data member types. 4705169689Skan 4706169689Skan1999-05-24 Mark Mitchell <mark@codesourcery.com> 4707169689Skan 4708169689Skan * decl2.c (mark_vtable_entries): Don't make a copy of a function, 4709169689Skan and then make it look like `abort'. Just use `abort' instead. 4710169689Skan 4711169689Skan * typeck.c (build_static_cast): Don't allow static_casts that cast 4712169689Skan away constness. 4713169689Skan (casts_away_constness_r): New function. 4714169689Skan (casts_away_constness): Likewise. 4715169689Skan 4716169689Skan * decl.c (lookup_tag): Remove code no longer needed after 4717169689Skan name-lookup improvements. 4718169689Skan * decl2.c (handle_class_head): Make error-recovery more robust. 4719169689Skan * friend.c (make_friend_class): Reject templated typename types. 4720169689Skan * lex.c (is_global): A template parameter isn't global. 4721169689Skan * parse.y (class_head): Robustify. 4722169689Skan * parse.c: Regenerated. 4723169689Skan 4724169689Skan1999-05-22 Mark Mitchell <mark@codesourcery.com> 4725169689Skan 4726169689Skan * pt.c (for_each_template_parm): Walk into TYPENAME_TYPEs, 4727169689Skan INDIRECT_REFs, and COMPONENT_REFs. Handle FIELD_DECLs. 4728169689Skan 4729169689Skan * cp-tree.h (push_nested_namespace): Declare. 4730169689Skan (pop_nested_namespace): Likewise. 4731169689Skan * decl.c (push_nested_namespace): New function. 4732169689Skan (pop_nested_namespace): Likewise. 4733169689Skan * pt.c (instantiate_class_template): Use them. 4734169689Skan 4735169689Skan * tree.c (mapcar): Handle NON_LVALUE_EXPR. 4736169689Skan 4737169689Skan * cp-tree.h (cplus_expand_constant): Declare. 4738169689Skan * cvt.c (convert_to_pointer): Expand PTRMEM_CSTs when they're 4739169689Skan converted from one pointer-to-object type to another. 4740169689Skan * expr.c (cplus_expand_constant): Don't make it static. 4741169689Skan * typeck.c (build_component_ref): Don't crash when presented with 4742169689Skan a component which is a TEMPLATE_DECL. 4743169689Skan (build_ptrmemfunc): Tidy. Clarify comment. Make sure that even a 4744169689Skan cast from a pointer-to-member constant to its own type does not 4745169689Skan result in a valid non-type template argument. 4746169689Skan 4747169689Skan1999-05-21 Mark Mitchell <mark@codesourcery.com> 4748169689Skan Nathan Sidwell <nathan@acm.org> 4749169689Skan 4750169689Skan * Make-lang.in (cc1plus): Make it depend on gxx.gperf. 4751169689Skan * cp-tree.h: Fix typo in documentation on pointers-to-members. 4752169689Skan (cp_build_qualified_type): Make it a macro. 4753169689Skan (cp_build_qualified_type_real): Declare. 4754169689Skan * decl.c (grokdeclarator): Remove misleading comment. Avoid 4755169689Skan problem with template parameters and restrict-qualification. 4756169689Skan * gxx.gperf: Replace NORID with RID_UNUSED throughout. 4757169689Skan * hash.h: Regenerated. 4758169689Skan * lex.h (rid): Move RID_FIRST_MODIFIER and RID_LAST_MODIFIER into 4759169689Skan the enumeration. 4760169689Skan (NORID): Remove definition. 4761169689Skan * pt.c (tsubst_aggr_type): Use cp_build_qualified_type_real. 4762169689Skan (tsubst): Likewise. Remove special handling for FUNCTION_TYPEs. 4763169689Skan (fn_type_unification): Check that the function type resulting from 4764169689Skan the deduction is legal. 4765169689Skan (check_cv_quals_for_unify): Don't handle FUNCTION_TYPEs specially. 4766169689Skan (unify): Use cp_build_qualified_type_real. 4767169689Skan * tree.c (build_cplus_array_type_1): Handle error_marks as inputs. 4768169689Skan (cp_build_qualified_type): Rename to ... 4769169689Skan (cp_build_qualified_type_real): Add additional COMPLAIN parameter 4770169689Skan and modify appropriately. 4771169689Skan 4772169689Skan * typeck.c (build_ptrmemfunc): Handle PTRMEM_CSTs carefully to 4773169689Skan reveal optimization opportunities. 4774169689Skan 4775169689Skan * pt.c (tsubst): Don't issue error messages when we're not 4776169689Skan complaining, even if we see a qualified function type. 4777169689Skan (check_cv_quals_for_unify): Don't allow a qualified function 4778169689Skan type. 4779169689Skan 4780169689Skan1999-05-20 Jason Merrill <jason@yorick.cygnus.com> 4781169689Skan 4782169689Skan * class.c (instantiate_type): Downgrade errors for object-dependent 4783169689Skan memfn refs to pedwarn. 4784169689Skan 4785169689Skan1999-05-20 Mark Mitchell <mark@codesourcery.com> 4786169689Skan 4787169689Skan * decl.c (grokdeclarator): Don't treat [] as indicating a 4788169689Skan zero-sized array in a typedef. 4789169689Skan 4790169689Skan * call.c (build_object_call): Don't look at DECL_NAME for a type. 4791169689Skan (pt.c): Or CP_TYPE_QUALS for an ERROR_MARK. 4792169689Skan (typeck.c): Or TYPE_MAIN_VARIANT for a type. 4793169689Skan 4794169689Skan * pt.c (for_each_template_parm): Rework to match documentation. 4795169689Skan Don't be fooled by a COMPONENT_REF with no TREE_TYPE. 4796169689Skan 4797169689Skan1999-05-20 Jason Merrill <jason@yorick.cygnus.com> 4798169689Skan 4799169689Skan * class.c (finish_struct_1): Still check for ANON_AGGR_TYPE_P. 4800169689Skan 4801169689Skan * class.c (finish_base_struct): Allow non-COM bases for COM classes 4802169689Skan except at the leftmost position. 4803169689Skan (modify_one_vtable, fixup_vtable_deltas1, override_one_vtable): 4804169689Skan Pass the binfo's class, not the most derived, to skip_rtti_stuff. 4805169689Skan * search.c (get_abstract_virtuals, expand_upcast_fixups): Likewise. 4806169689Skan 4807169689Skan * tree.c (lvalue_p_1): A NOP_EXPR can be an lvalue. 4808169689Skan (build_cplus_new): Make sure that what we return is of the right type. 4809169689Skan 4810169689Skan1999-05-20 Mark Mitchell <mark@codesourcery.com> 4811169689Skan 4812169689Skan * cp-tree.h (make_ptrmem_cst): New function. 4813169689Skan * expr.c (cplus_expand_constant): Split out from ... 4814169689Skan (cplus_expand_expr): Here. Use cplus_expand_constant. 4815169689Skan (init_cplus_expand): Set lang_expand_constant. 4816169689Skan * pt.c (convert_nontype_argument): Use make_ptrmem_cst. 4817169689Skan 4818169689Skan * tree.c (make_ptrmem_cst): Define. 4819169689Skan * typeck.c (unary_complex_lvalue): Use make_ptrmem_cst. 4820169689Skan * typeck2.c (initializer_constant_valid_p): Use make_ptrmem_cst. 4821169689Skan 4822169689Skan1999-05-19 Mark Mitchell <mark@codesourcery.com> 4823169689Skan 4824169689Skan * pt.c (build_template_decl): Copy DECL_NONCONVERTING_P. 4825169689Skan 4826169689Skan * decl2.c (start_static_storage_duration_function): Fix comment. 4827169689Skan (finish_file): Create static storage duration functions lazily. 4828169689Skan 4829169689Skan1999-05-19 Jason Merrill <jason@yorick.cygnus.com> 4830169689Skan 4831169689Skan Implement anonymous structs. 4832169689Skan * cp-tree.h (ANON_AGGR_TYPE_P): Rename from ANON_UNION_TYPE_P. 4833169689Skan * class.c, decl.c, decl2.c, init.c, pt.c, search.c, typeck.c: Adjust. 4834169689Skan * class.c (finish_struct_1): Remove redundant check for anon struct. 4835169689Skan * decl.c (fixup_anonymous_aggr): Renamed from fixup_anonymous_union. 4836169689Skan (check_tag_decl): Check for anonymous struct here. 4837169689Skan * decl2.c (build_anon_union_vars): Catch anon struct at file scope. 4838169689Skan * init.c (sort_member_init, emit_base_init): Handle getting fields 4839169689Skan as well as names in current_member_init_list. 4840169689Skan (perform_member_init): Handle getting an anon aggr. 4841169689Skan * method.c (do_build_assign_ref): Don't descend into anon aggrs. 4842169689Skan (do_build_copy_constructor): Likewise. 4843169689Skan 4844169689Skan1999-05-19 Mark Mitchell <mark@codesourcery.com> 4845169689Skan 4846169689Skan * tree.c (cp_build_qualified_type): Don't allow qualified function 4847169689Skan types. 4848169689Skan 4849169689SkanWed May 19 02:50:53 1999 Arvind Sankar <arvinds@mit.edu> 4850169689Skan 4851169689Skan * gxxint.texi: Fix typo. 4852169689Skan 4853169689Skan1999-05-19 Jason Merrill <jason@yorick.cygnus.com> 4854169689Skan 4855169689Skan * call.c (find_scoped_type, resolve_scope_to_name): Lose. 4856169689Skan * class.c (finish_struct_1): Use CLASS_TYPE_P. 4857169689Skan * ptree.c (print_lang_type): Likewise. 4858169689Skan * typeck.c (build_modify_expr, c_expand_asm_operands): Use 4859169689Skan IS_AGGR_TYPE_CODE. 4860169689Skan * typeck2.c (digest_init): Likewise. 4861169689Skan 4862169689Skan1999-05-18 Jason Merrill <jason@yorick.cygnus.com> 4863169689Skan 4864169689Skan * call.c (joust): Compare the types of the conv ops, not the 4865169689Skan target types of the conversions. 4866169689Skan 4867169689SkanTue May 18 00:21:34 1999 Zack Weinberg <zack@rabi.phys.columbia.edu> 4868169689Skan 4869169689Skan * lang-specs.h: Define __GNUC__ and __GNUC_MINOR__ only if -no-gcc 4870169689Skan was not given. 4871169689Skan 4872169689Skan1999-05-17 Mark Mitchell <mark@codesourcery.com> 4873169689Skan 4874169689Skan * cp-tree.def (TEMPLATE_ID_EXPR): Update documentation. 4875169689Skan * decl.c (grokfndecl): Don't allow inline declarations of friend 4876169689Skan template specializations, or friend template specializations with 4877169689Skan default arguments. 4878169689Skan * pt.c (tsubst): Handle substitution into array types that does 4879169689Skan not yield a fixed upper bound, even when not processing a 4880169689Skan template. 4881169689Skan (tsubst_copy): Deal with the fact that the second operand to a 4882169689Skan TEMPLATE_ID_EXPR may be NULL_TREE, a TREE_LIST, or a TREE_VEC. 4883169689Skan * search.c (marked_pushdecls_p): Don't descend into 4884169689Skan TEMPLATE_TYPE_PARMs and the like. 4885169689Skan (unmarked_pushdecls_p): Likewise. 4886169689Skan 4887169689Skan * call.c (build_over_call): Don't throw away 4888169689Skan initializations/copies of empty classes; use MODIFY_EXPR and 4889169689Skan INIT_EXPR as for non-empty classes. 4890169689Skan * class.c (finish_struct_1): Put the padding byte for an empty 4891169689Skan class on the TYPE_NONCOPIED_PARTS list for the class. 4892169689Skan 4893169689Skan1999-05-16 Mark Mitchell <mark@codesourcery.com> 4894169689Skan 4895169689Skan * decl2.c (build_expr_from_tree): Handle COMPONENT_REFs that 4896169689Skan indicate a reference to a field that is a qualified name. 4897169689Skan 4898169689Skan1999-05-16 Jason Merrill <jason@yorick.cygnus.com> 4899169689Skan 4900169689Skan * decl2.c (finish_objects): Don't use .?tors.* if we don't have 4901169689Skan ASM_OUTPUT_CONSTRUCTOR. 4902169689Skan 4903169689Skan * friend.c (do_friend): Add attrlist arg. Remove support for 4904169689Skan getting a non-decl as 'decl'. 4905169689Skan * decl.c (grokfndecl): Remove attrlist arg. Don't set attrs or 4906169689Skan rtl. 4907169689Skan (grokdeclarator): Adjust. 4908169689Skan * cp-tree.h: Adjust. 4909169689Skan 4910169689Skan1999-05-16 Mark Mitchell <mark@codesourcery.com> 4911169689Skan 4912169689Skan * cp-tree.h (permanent_p): New function. 4913169689Skan * init.c (build_new_1): Use mapcar, not copy_node, to copy a 4914169689Skan possibly complex tree node. 4915169689Skan * tree.c (mapcar): Adjust comments, and follow coding standards in 4916169689Skan conditional. 4917169689Skan (permanent_p): New function. 4918169689Skan 4919169689Skan1999-05-13 Per Bothner <bothner@cygnus.com> 4920169689Skan 4921169689Skan * class.c (push_lang_context): Turn off DECL_IGNORED_P for 4922169689Skan primitive Java types, if we actually see `extern "Java"'. 4923169689Skan 4924169689Skan1999-05-10 18:21 -0400 Zack Weinberg <zack@rabi.phys.columbia.edu> 4925169689Skan 4926169689Skan * lang-specs.h: Pass -$ to the preprocessor. 4927169689Skan 4928169689Skan1999-05-10 Jason Merrill <jason@yorick.cygnus.com> 4929169689Skan 4930169689Skan * init.c (build_offset_ref): Wrap baselinks in OFFSET_REF, too. 4931169689Skan Don't bother wrapping an OFFSET_TYPE around unknown_type_node. 4932169689Skan (resolve_offset_ref): Don't handle a raw baselink. 4933169689Skan * cvt.c (build_expr_type_conversion): Likewise. 4934169689Skan * typeck.c (decay_conversion, build_c_cast, convert_for_assignment, 4935169689Skan convert_for_initialization): Likewise. 4936169689Skan * class.c (instantiate_type): Handle seeing a baselink under an 4937169689Skan OFFSET_REF. 4938169689Skan * error.c (dump_expr): Likewise. 4939169689Skan * pt.c (for_each_template_parm): Likewise. 4940169689Skan (resolve_overloaded_unification): Likewise. 4941169689Skan * tree.c (is_overloaded_fn, really_overloaded_fn): Likewise. 4942169689Skan * typeck.c (expr_sizeof): Also complain about other permutations 4943169689Skan of overloaded functions. 4944169689Skan 4945169689Skan1999-05-07 Jason Merrill <jason@yorick.cygnus.com> 4946169689Skan 4947169689Skan * init.c (resolve_offset_ref): Don't return a raw method. 4948169689Skan Use BASELINK_P. 4949169689Skan * typeck.c (decay_conversion): Don't handle a raw method. 4950169689Skan Resolve all OFFSET_REFs. 4951169689Skan (get_member_function_from_ptrfunc): 0 is a valid vtable index. 4952169689Skan (build_binary_op_nodefault): Handle resolving overloaded fns. Use 4953169689Skan same_type_p for pmf bits. Don't use build_binary_op to compare 4954169689Skan raw pointers to methods. 4955169689Skan (convert_for_assignment): Check for OFFSET_REF, not OFFSET_TYPE, 4956169689Skan to decide when to call resolve_offset_ref. 4957169689Skan (build_c_cast, convert_for_initialization): Likewise. 4958169689Skan * cvt.c (build_expr_type_conversion): Likewise. 4959169689Skan 4960169689Skan1999-05-06 Nathan Sidwell <nathan@acm.org> 4961169689Skan 4962169689Skan * call.c (build_new_method_call): Use TYPE_MAIN_VARIANT of class. 4963169689Skan 4964169689Skan1999-05-05 Mark Mitchell <mark@codesourcery.com> 4965169689Skan 4966169689Skan * decl2.c (start_objects): Don't let static constructors and 4967169689Skan destructors get inlined. 4968169689Skan 4969169689Skan * parse.y (nested_name_specifier): Make sure ordinary types are 4970169689Skan complete, just like template types. 4971169689Skan * parse.c: Regenerated. 4972169689Skan 4973169689Skan * pt.c (check_explicit_specialization): Improve error messages. 4974169689Skan 4975169689Skan1999-05-04 Martin von L�wis <loewis@informatik.hu-berlin.de> 4976169689Skan 4977169689Skan * typeck.c (string_conv_p): Use same_type_p to check whether we 4978169689Skan try to convert between char and wchar_t. 4979169689Skan 4980169689Skan1999-05-03 Mark Mitchell <mark@codesourcery.com> 4981169689Skan 4982169689Skan * search.c (lookup_field_r): Set the TREE_TYPE of an ambiguous 4983169689Skan lookup to error_mark_node here. 4984169689Skan (lookup_member): Revise documentation. Add comments. Don't set 4985169689Skan the TREE_TYPE to error_mark_node here, and don't build up an extra 4986169689Skan TREE_LIST for ambiguous lookups. 4987169689Skan (setup_class_bindings): Adjust accordingly. 4988169689Skan (push_class_decls): Revise out-of-date comments. 4989169689Skan 4990169689Skan * typeck.c (build_const_cast): Tighten checks for legality. 4991169689Skan 4992169689Skan1999-05-02 Martin von L�wis <loewis@informatik.hu-berlin.de> 4993169689Skan 4994169689Skan * init.c (build_member_call): Lookup names coming from 4995169689Skan namespace-scoped LOOKUP_EXPR. 4996169689Skan 4997169689Skan1999-05-03 Jim Blandy <jimb@zwingli.cygnus.com> 4998169689Skan 4999169689Skan * gxxint.texi: Add documentation for 'I'. 5000169689Skan 5001169689Skan1999-05-02 Martin von L�wis <loewis@informatik.hu-berlin.de> 5002169689Skan 5003169689Skan * tinfo.cc (operator==): Qualify type_info with std::. 5004169689Skan 5005169689Skan1999-05-02 Mark Mitchell <mark@codesourcery.com> 5006169689Skan 5007169689Skan * cp-tree.h (lang_decl_flags): Remove comdat. Updated dummy. 5008169689Skan (DECL_COMDAT): Remove definition. 5009169689Skan 5010169689Skan1999-05-01 Mark Mitchell <mark@codesourcery.com> 5011169689Skan 5012169689Skan * decl.c (wrapup_globals_for_namespace): Fix thinko in previous 5013169689Skan change. 5014169689Skan 5015169689Skan1999-04-30 Mark Mitchell <mark@codesourcery.com> 5016169689Skan 5017169689Skan * class.c (build_vtable): Use build_lang_decl when building 5018169689Skan vtables, not just build_decl. 5019169689Skan (prepare_fresh_vtable): Likewise. 5020169689Skan * decl.c (wrapup_globals_for_namespace): Mark vtables as 5021169689Skan DECL_EXTERNAL when calling wrapup_global_declarations. 5022169689Skan * decl2.c (priority_info_s): Add initializations_p and 5023169689Skan destructions_p members. 5024169689Skan (finish_vtable_vardecl): Use TREE_SYMBOL_REFERENCED, not TREE_USED, 5025169689Skan when deciding what vtables to write out. 5026169689Skan (ssdf_decls): New variable. 5027169689Skan (ssdf_decls_used): Likewise. 5028169689Skan (start_static_storage_duration_function): Deal with being called 5029169689Skan multiple times. Avoid inlining this function. 5030169689Skan (generate_inits_for_priority): Deal with reuse of priority map. 5031169689Skan (get_priority_info): Clear initializations_p and destructions_p. 5032169689Skan (do_static_initialization): Tweak comment. 5033169689Skan (do_static_destruction): Likewise. Fix condition on sentries for 5034169689Skan destruction. 5035169689Skan (generate_ctor_or_dtor_function): Call all of the static storage 5036169689Skan duration functions. 5037169689Skan (generate_ctor_or_dtor_function_for_priority): Check 5038169689Skan initializations_p and destructions_p to see what priorities need 5039169689Skan initialization functions. 5040169689Skan (finish_file): Rework to generate multiple static storage duration 5041169689Skan functions, rather than just one. 5042169689Skan 5043169689Skan * typeck.c (build_const_cast): Tweak last change to handle 5044169689Skan templates correctly. 5045169689Skan 5046169689Skan * typeck.c (build_const_cast): Disallow use of const_cast to 5047169689Skan anything but a pointer or reference type. 5048169689Skan 5049169689Skan1999-04-30 Nathan Sidwell <nathan@acm.org> 5050169689Skan 5051169689Skan * decl.c (cp_finish_decl): Don't permit arrays of abstract or 5052169689Skan signature type. 5053169689Skan 5054169689Skan1999-04-29 Mark Mitchell <mark@codesourcery.com> 5055169689Skan 5056169689Skan * decl2.c (do_static_destruction): Remove obsolete FIXME comment. 5057169689Skan (finish_file): Indent comments properly. 5058169689Skan 5059169689Skan1999-04-29 Richard Henderson <rth@cygnus.com> 5060169689Skan 5061169689Skan * decl2.c (do_static_initialization): Call do_pending_stack_adjust. 5062169689Skan (do_static_destruction): Likewise. 5063169689Skan 5064169689Skan1999-04-29 Nathan Sidwell <nathan@acm.org> 5065169689Skan 5066169689Skan * cp-tree.h (TYPE_NOTHROW_P): New macro. 5067169689Skan * decl2.c (delete_sanity): Warn on deleting void *. 5068169689Skan * init.c (build_new_1): Use TYPE_NOTHROW_P. 5069169689Skan * typeck.c (c_expand_return): cp_pedwarn on returning NULL from 5070169689Skan throwing operator new. 5071169689Skan 5072169689Skan1999-04-28 Nathan Sidwell <nathan@acm.org> 5073169689Skan 5074169689Skan * cp-tree.h (build_component_addr): Remove prototype. 5075169689Skan * typeck.c (build_component_addr): Make static. Remove MSG 5076169689Skan argument. 5077169689Skan (build_component_addr): Remove MSG parameter, clean up 5078169689Skan comment. 5079169689Skan (build_x_function_call): Use cp_error. 5080169689Skan (build_unary_op): Adjust call of build_component_addr. 5081169689Skan 5082169689Skan1999-04-28 Mark Mitchell <mark@codesourcery.com> 5083169689Skan 5084169689Skan * pt.c (tsubst_friend_class): Check for NULL. 5085169689Skan 5086169689SkanWed Apr 28 11:42:22 1999 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> 5087169689Skan 5088169689Skan * search.c (binfo_for_vtable): Initialize bfvi.var. 5089169689Skan 5090169689Skan1999-04-27 Nathan Sidwell <nathan@acm.org> 5091169689Skan 5092169689Skan * rtti.c (build_x_typeid): Check rtti is enabled. 5093169689Skan 5094169689Skan1999-04-26 Mark Mitchell <mark@codesourcery.com> 5095169689Skan 5096169689Skan * search.c (is_subobject_of_p): Make sure we're looking at the 5097169689Skan right baseclasses. 5098169689Skan 5099169689Skan1999-04-26 Marc Espie <espie@cvs.openbsd.org> 5100169689Skan 5101169689Skan * Make-lang.in (cplib2.ready): Don't depend on phony targets. 5102169689Skan 5103169689Skan1999-04-23 Mark Mitchell <mark@codesourcery.com> 5104169689Skan 5105169689Skan * decl2.c (finish_file): Tweak handling of extern inlines so that 5106169689Skan they are not unnecessarily put out. 5107169689Skan 5108169689Skan * search.c (is_subobject_of_p): Handle TEMPLATE_TYPE_PARMs and 5109169689Skan such as base classes. 5110169689Skan 5111169689Skan1999-04-22 Brendan Kehoe <brendan@cygnus.com> 5112169689Skan 5113169689Skan * tree.c (build_exception_variant): Fix typo: use the chain of U, 5114169689Skan not trying V, while cycling through U. 5115169689Skan 5116169689Skan1999-04-22 Mark Mitchell <mark@codesourcery.com> 5117169689Skan 5118169689Skan * cp-tree.h (lang_decl_flags): Remove returns_first_arg and 5119169689Skan preserves_first_arg. Enlarge dummy accordingly. 5120169689Skan (DECL_TINFO_FN_P): New macro. 5121169689Skan (SET_DECL_TINFO_FN_P): Likeiwse. 5122169689Skan (DECL_RETURNS_FIRST_ARG): Remove. 5123169689Skan (DECL_PRESERVES_THIS): Likewise. 5124169689Skan (DECL_INIT_PRIORITY): New macro. 5125169689Skan (finish_struct_1): Change prototype. 5126169689Skan (cat_namespace_levels): Remove prototype. 5127169689Skan (vtable_decl_p): New prototype. 5128169689Skan (vtype_decl_p): Likewise. 5129169689Skan (sigtable_decl_p): Likewise. 5130169689Skan (walk_globals_pred): New typedef. 5131169689Skan (walk_globals_fn): Likewise. 5132169689Skan (walk_globals): New prototype. 5133169689Skan (walk_namespaces_fn): New typedef. 5134169689Skan (walk_namespaces): New prototype. 5135169689Skan (wrapup_globals_for_namespace): Likewise. 5136169689Skan (walk_vtables): Remove prototype. 5137169689Skan (walk_sigtables): Likewise. 5138169689Skan (instantiate_pending_templates): New prototype. 5139169689Skan * class.c (finish_struct_1): Don't return a value. 5140169689Skan * decl.h (pending_statics): Remove declaration. 5141169689Skan * decl.c (walk_namespaces_r): New function. 5142169689Skan (walk_globals_r): Likewise. 5143169689Skan (vtable_decl_p): Likewise. 5144169689Skan (vtype_decl_p): Likewise. 5145169689Skan (sigtable_decl_p): Likewise. 5146169689Skan (walk_namespaces): Likewise. 5147169689Skan (walk_globals_data): New type. 5148169689Skan (walk_globals): New function. 5149169689Skan (wrapup_globals_for_namespace): Likewise. 5150169689Skan (expand_static_init): Remove assertion. Remove redundancy in 5151169689Skan conditional. Don't put static data members in static_aggregates 5152169689Skan Tidy. 5153169689Skan (finish_function): Remove redundancy in conditional. Don't set 5154169689Skan DECL_RETURNS_FIRST_ARG. 5155169689Skan (cat_namespace_levels): Remove. 5156169689Skan * decl2.c: Include splay-tree.h and varray.h. 5157169689Skan (priority_info_s): New structure. 5158169689Skan (finish_vtable_vardecl): Change prototype. Adjust for new calling 5159169689Skan conventions. 5160169689Skan (prune_vtable_vardecl): Likewise. 5161169689Skan (finish_sigtable_vardecl): Likewise. 5162169689Skan (setup_initp): Remove. 5163169689Skan (do_dtors): Remove. 5164169689Skan (do_ctors): Remove. 5165169689Skan (start_static_storage_duration_function): New function. 5166169689Skan (generate_inits_for_priority): Likewise. 5167169689Skan (finish_static_storage_duration_function): Likewise. 5168169689Skan (get_priority_info): Likewise. 5169169689Skan (do_static_initialization): Likewise. 5170169689Skan (do_static_destruction): Likewise. 5171169689Skan (do_static_initialization_and_destruction): Likewise. 5172169689Skan (generate_ctor_or_dtor_function): Likewise. 5173169689Skan (generate_ctor_and_dtor_functions_for_priority): Likewise. 5174169689Skan (pending_statics): Make it a varray. 5175169689Skan (pending_statics_used): New variable. 5176169689Skan (saved_inlines): Make it a varray. 5177169689Skan (saved_inlines_used): New variable. 5178169689Skan (finish_static_data_member): Change method of updating 5179169689Skan pending_statics. 5180169689Skan (mark_inline_for_output): Remove #if 0'd code. Change method of 5181169689Skan updating saved_inlines. 5182169689Skan (walk_vtables): Remove. 5183169689Skan (walk_sigtables): Likewise. 5184169689Skan (import_export_decl): Use DECL_TINFO_FN_P. 5185169689Skan (pending_templates): Remove declaration. 5186169689Skan (maybe_templates): Likewise. 5187169689Skan (static_aggregates_initp): Likewise. 5188169689Skan (setup_initp): Likewise. 5189169689Skan (finish_objects): Simplify. 5190169689Skan (INITIALIZE_P_IDENTIFIER): New macro. 5191169689Skan (PRIORITY_IDENTIFIER): New macro. 5192169689Skan (SSDF_IDENTIFIER): New macro. 5193169689Skan (initialize_p_decl): New variable. 5194169689Skan (priority_decl): Likewise. 5195169689Skan (ssdf_decl): Likewise. 5196169689Skan (priority_info_map): Likewise. 5197169689Skan (finish_file): Recode output of static intializers and other 5198169689Skan file-scope finalization tasks. 5199169689Skan * error.c (OB_END_TEMPLATE_ID): New macro. 5200169689Skan (dump_type_real): Use it. 5201169689Skan (dump_decl): Likewise. 5202169689Skan (dump_function_name): Likewise. 5203169689Skan * lex.c (set_typedecl_interface_info): Adjust for new walk_globals 5204169689Skan interface. 5205169689Skan (check_newline): Use walk_globals, not walk_vtables. 5206169689Skan * pt.c (pending_tempalte_expansions): Remove. 5207169689Skan (set_vardecl_interface_info): Likewise. 5208169689Skan (pending_templates): Make static. 5209169689Skan (maybe_templates): Likewise. 5210169689Skan (instantiate_class_template): Adjust call to finish_struct_1. 5211169689Skan (instantiate_pending_templates): New function. 5212169689Skan * rtti.c (get_tinfo_fn): Use SET_DECL_TINFO_FN_P. 5213169689Skan * tree.c (static_aggregates_initp): Remove. 5214169689Skan (cp_valid_lang_attribute): Don't use it; use DECL_INIT_PRIORITY 5215169689Skan instead. 5216169689Skan * Makefile.in (decl2.o): Depend on varray.h and splay-tree.h. 5217169689Skan 5218169689Skan * gxx.gperf (RETURN): Rename to RETURN_KEYWORD to avoid clashes 5219169689Skan with the RTL code RETURN. 5220169689Skan * hash.h: Regenerated. 5221169689Skan * lex.c (reinit_parse_for_block): Use RETURN_KEYWORD. 5222169689Skan * parse.y: Replace RETURN with RETURN_KEYWORD throughout. 5223169689Skan * parse.c: Regenerated. 5224169689Skan * pt.c: Include varray.h. Include rtl.h since varray.h requires 5225169689Skan it. 5226169689Skan (inline_parm_levels): New variable. 5227169689Skan (inline_parm_levels_used): Likewise. 5228169689Skan (maybe_begin_member_template_processing): Update them. 5229169689Skan (maybe_end_member_template_processing): Use them, rather than 5230169689Skan guessing how many levels to pop. 5231169689Skan 5232169689Skan * decl.c (make_typename_type): Tighten error-checking. 5233169689Skan 5234169689Skan1999-04-20 Mark Mitchell <mark@codesourcery.com> 5235169689Skan 5236169689Skan * cp-tree.h (build_binary_op): Remove unneeded parameter. 5237169689Skan * class.c (build_vrable_entry_ref): Adjust call to 5238169689Skan build_binary_op. 5239169689Skan * decl.c (expand_static_init): Likewise. 5240169689Skan (grokdeclarator): Likewise. 5241169689Skan (finish_function): Likewise. 5242169689Skan * decl2.c (delete_sanity): Likewise. 5243169689Skan (do_dtors): Likewise. 5244169689Skan (do_ctors): Likewise. 5245169689Skan * error.c (dump_type_suffix): Likewise. 5246169689Skan * expr.c (cplus_expand_expr): Likewise. 5247169689Skan * init.c (resolve_offset_ref): Likewise. 5248169689Skan (build_new): Likewise. 5249169689Skan (build_new_1): Likewise. 5250169689Skan (build_vec_delete_1): Likewise. 5251169689Skan (expand_vec_init_catch_clause): Likewise. 5252169689Skan (build_delete): Likewise. 5253169689Skan * pt.c (tsubst): Likewise. 5254169689Skan * rtti.c (synthesize_tinfo_fn): Likewise. 5255169689Skan * search.c (expand_upcast_fixups): Likewise. 5256169689Skan (expand_direct_vtbls_init): Likewise. 5257169689Skan * typeck.c (get_member_function_from_ptrfunc): Likewise. 5258169689Skan (build_binary_op_nodefault): Likewise. 5259169689Skan (point_int_sum): Likewise. 5260169689Skan (pointer_diff): Likewise. 5261169689Skan (build_unary_op): Likewise. 5262169689Skan (build_modify_expr): Likewise. 5263169689Skan (get_delta_difference): Likewise. 5264169689Skan (build_ptrmemfunc): Likewise. 5265169689Skan (expand_ptrmemfunc_cst): Likewise. 5266169689Skan 5267169689Skan1999-04-20 Jason Merrill <jason@yorick.cygnus.com> 5268169689Skan 5269169689Skan * decl.c (grokfndecl): Always call cplus_decl_attributes. 5270169689Skan * decl2.c (grokfield): Pass attrlist to grokdeclarator. 5271169689Skan 5272169689Skan1999-04-19 Mark Mitchell <mark@codesourcery.com> 5273169689Skan 5274169689Skan * cp-tree.h (finish_static_data_member_decl): New function. 5275169689Skan * decl2.c (finish_static_data_member_decl): Split out from ... 5276169689Skan (grokfield): Here. 5277169689Skan * pt.c (instantiate_class_template): Use it here instead of 5278169689Skan trying to fake it. 5279169689Skan (tsubst_decl): Don't set DECL_ASSEMBLER_NAME; 5280169689Skan finish_static_data_member_decl will do that. Explicit set 5281169689Skan DECL_EXTERNAL to match non-template processing. 5282169689Skan 5283169689Skan1999-04-18 Mark Mitchell <mark@codesourcery.com> 5284169689Skan 5285169689Skan * cp-tree.h (finish_class_definition): Add parameter. 5286169689Skan * parse.y (structsp): Use it. Don't call pop_scope here. 5287169689Skan * parse.c: Regenerated. 5288169689Skan * semantics.c (finish_class_definition): Pop it here. 5289169689Skan 5290169689Skan1999-04-17 Mark Mitchell <mark@codesourcery.com> 5291169689Skan 5292169689Skan * decl.c (xref_tag): Revise handling of nested template 5293169689Skan declarations. 5294169689Skan * pt.c (check_explicit_specialization): Tweak handling of friend 5295169689Skan templates in template classes. 5296169689Skan (tsubst_friend_class): Handle friend declarations for nested 5297169689Skan member template classes. 5298169689Skan 5299169689Skan1999-04-16 Mark Mitchell <mark@codesourcery.com> 5300169689Skan 5301169689Skan * class.c (finish_struct): Remove unused variable. 5302169689Skan (pushclass): Likewise. 5303169689Skan (invalidate_class_lookup_cache): Likewise. 5304169689Skan * cp-tree.def (TYPENAME_TYPE): Improve documentation. 5305169689Skan * decl.c (build_typename_type): Make sure TYPENAME_TYPE_FULLNAME 5306169689Skan doesn't get obliterated. 5307169689Skan (make_typename_type): Handle template classes correctly. 5308169689Skan 5309169689Skan * cp-tree.h (TREE_NONLOCAL_FLAG): Remove. 5310169689Skan (storetags): Declare. 5311169689Skan * class.c (finish_struct): Don't use TREE_NONLOCAL_FLAG. 5312169689Skan (pushclass): Likewise. Use storetags to install tag declarations, 5313169689Skan not pushtag. 5314169689Skan (invalidate_class_lookup_cache): Don't use TREE_NONLOCAL_FLAG. 5315169689Skan * decl.c (storetags): Make it global. 5316169689Skan (push_class_binding): Set INHERITED_VALUE_BINDING_P for an 5317169689Skan implicit typename declaration. 5318169689Skan (pushtag): Tidy. Don't use TREE_NONLOCAL_FLAG. 5319169689Skan * method.c (hack_identifier): Likewise. 5320169689Skan * search.c (lookup_member): Likewise. 5321169689Skan 5322169689Skan * decl.c (warn_about_implicit_typename_lookup): New function. 5323169689Skan (lookup_name_real): Use it. Rework handling of implicit typename 5324169689Skan extension. 5325169689Skan 5326169689Skan1999-04-15 Mark Mitchell <mark@codesourcery.com> 5327169689Skan 5328169689Skan * cp-tree.h (lookup_nested_field): Remove. 5329169689Skan * class.c (push_nested_class): Handle UNION_TYPEs. 5330169689Skan (pop_nested_class): Likewise. 5331169689Skan * decl.c (lookup_name_real): Don't call lookup_nested_field. 5332169689Skan (start_decl): Use push_nested_class, not just pushclass. 5333169689Skan (cp_finish_decl): Use pop_nested_class, not just popclass. 5334169689Skan * search.c (lookup_nested_field): Remove. 5335169689Skan 5336169689Skan * cp-tree.h (lang_type): Add documentation. 5337169689Skan * decl2.c (handle_class_head): Create template declarations here, 5338169689Skan as appropriate. 5339169689Skan * parse.y (class_head): Return whether or not we entered a new 5340169689Skan scope, as well as the type named. 5341169689Skan (named_class_head): Likewise. 5342169689Skan (named_complex_class_head_sans_basetype): Likewise. 5343169689Skan (structsp): Adjust accordingly. Pop scope when required. 5344169689Skan * parse.c: Regenerated. 5345169689Skan * pt.c (check_default_tmpl_args): Robustify. 5346169689Skan (redeclare_class_template): Likewise. 5347169689Skan (instantiate_class_template): An instantiation of an 5348169689Skan anonymous union is itself an anonymous union. 5349169689Skan * semantics.c (begin_class_definition): Don't create template 5350169689Skan declarations here. 5351169689Skan 5352169689Skan1999-04-15 Jason Merrill <jason@yorick.cygnus.com> 5353169689Skan 5354169689Skan * parse.y (after_type_declarator_intern): New nonterminal. 5355169689Skan (after_type_declarator): Use it. 5356169689Skan (direct_after_type_declarator): Likewise. Move above 5357169689Skan nonnested_type to fix reduce/reduce conflict resolution. 5358169689Skan (declmods): Reducing from just 'attributes' has EMPTY precedence. 5359169689Skan * Makefile.in (CONFLICTS): Update. 5360169689Skan 5361169689Skan * decl.c (define_label): Downgrade error for jumping over a 5362169689Skan non-POD decl to pedwarn. 5363169689Skan 5364169689Skan1999-04-14 Mark Mitchell <mark@codesourcery.com> 5365169689Skan 5366169689Skan * cp-tree.h (popclass): Change declaration. 5367169689Skan (pop_nested_class): Likewise. 5368169689Skan (poplevel_class): Remove declaration. 5369169689Skan * call.c (convert_default_argument): Pass no arguments to 5370169689Skan popclass. 5371169689Skan * class.c (finish_struct_1): Likewise. 5372169689Skan (finish_struct): Likewise. 5373169689Skan (popclass): Remove argument. Simplify code accordingly. 5374169689Skan (pop_nested_class): Likewise. 5375169689Skan * decl.c (poplevel_class): Declare it here, and make it static. 5376169689Skan (poplevel): Handle class scopes. 5377169689Skan (poplevel_class): Don't take an rgument. Simplify. 5378169689Skan (pop_everything): Pass no arguments to pop_nested_class. 5379169689Skan (cp_finish_decl): Pass no arguments to popclass. 5380169689Skan (grokdeclarator): Pass no arguments to pop_nested_class. 5381169689Skan (finish_function): Likewise. 5382169689Skan * decl2.c (grokfield): Likewise. 5383169689Skan (pop_scope): Pass no arguments to popclass. 5384169689Skan * lex.c (do_pending_defargs): Pass no arguments to pop_nested_class. 5385169689Skan * pt.c (instantiate_class_template): Move call to pushclass, and 5386169689Skan document. Pass no arguments to popclass. 5387169689Skan (regenerate_decl_from_template): Likewise. 5388169689Skan 5389169689Skan1999-04-14 Jason Merrill <jason@yorick.cygnus.com> 5390169689Skan 5391169689Skan * typeck.c (build_unary_op): Handle taking the address of a unique 5392169689Skan bound non-static member function. 5393169689Skan 5394169689Skan1999-04-13 Martin von Loewis <loewis@informatik.hu-berlin.de> 5395169689Skan 5396169689Skan * lang-options.h (-Wdeprecated): New flag. 5397169689Skan * decl2.c (warn_deprecated): New flag. 5398169689Skan (lang_decode_option): Deprecated this-is-variable, 5399169689Skan external-templates, alt-external-templates. 5400169689Skan Support -Wdeprecated. 5401169689Skan * errfn.c (cp_deprecated): New function. 5402169689Skan 5403169689Skan1999-04-13 Jason Merrill <jason@yorick.cygnus.com> 5404169689Skan 5405169689Skan * decl2.c (setup_initp): Compare DECL_ASSEMBLER_NAME instead 5406169689Skan of the decls themselves. 5407169689Skan 5408169689Skan * pt.c (tsubst_function_type): Copy attributes over. 5409169689Skan 5410169689Skan * tree.c (cp_valid_lang_attribute): New fn. Handle init_priority 5411169689Skan and com_interface. 5412169689Skan * cp-tree.h: Add prototype. 5413169689Skan * decl.c (init_decl_processing): Set valid_lang_attribute. 5414169689Skan 5415169689Skan1999-04-13 Mark Mitchell <mark@codesourcery.com> 5416169689Skan 5417169689Skan * class.c (finish_struct_1): Look at the const-ness of the field's 5418169689Skan type, not the TREE_READONLY-ness of the declaration. 5419169689Skan * method.c (synthesize_method): Likewise. 5420169689Skan * pt.c (tsubst_decl): Call c_apply_type_quals_to_decl when 5421169689Skan creating new declarations. 5422169689Skan 5423169689Skan1999-04-13 Mike Stump <mrs@wrs.com> 5424169689Skan 5425169689Skan * decl2.c (import_export_decl): Because vtables always reference 5426169689Skan virtual functions, even if they are inlined, don't allow 5427169689Skan -fno-implement-inlines to not emit them, instead, emit them with 5428169689Skan the vtable. 5429169689Skan * decl.c (start_function): Likewise. 5430169689Skan 5431169689Skan1999-04-12 Jason Merrill <jason@yorick.cygnus.com> 5432169689Skan 5433169689Skan * cp-tree.h (struct lang_type): Add com_interface. 5434169689Skan (CLASSTYPE_COM_INTERFACE): New macro. 5435169689Skan * class.c (set_rtti_entry): COM interface classes have no RTTI 5436169689Skan entries in their vtables; adjust. 5437169689Skan (add_virtual_function, finish_base_struct, skip_rtti_stuff, 5438169689Skan modify_one_vtable, fixup_vtable_deltas1, override_one_vtable, 5439169689Skan finish_struct_1): Likewise. 5440169689Skan * decl2.c (mark_vtable_entries): Likewise. 5441169689Skan * rtti.c (build_headof, get_tinfo_fn_dynamic): Likewise. 5442169689Skan * search.c (get_abstract_virtuals_1, get_abstract_virtuals, 5443169689Skan expand_upcast_fixups): Likewise. 5444169689Skan * tree.c (debug_binfo): Likewise. 5445169689Skan 5446169689Skan * cp-tree.h (COMPARE_NO_ATTRIBUTES): New macro. 5447169689Skan * typeck.c (comptypes): If we get it, ignore attributes. 5448169689Skan * class.c (instantiate_type): Use BASELINK_P. Change complain 5449169689Skan parameter to flags; 2 means ignore attributes. 5450169689Skan * call.c (build_op_delete_call): Pass it. 5451169689Skan 5452169689Skan * decl.c (xref_tag): Only complain once about using a typedef-name 5453169689Skan with 'struct'. Downgrade to pedwarn. 5454169689Skan 5455169689Skan * decl.c (grokdeclarator): Allow [] syntax for zero-length array. 5456169689Skan 5457169689Skan * parse.y (absdcl_intern): New nonterminal. 5458169689Skan (absdcl, direct_abstract_declarator): Use it. 5459169689Skan 5460169689Skan * pt.c (lookup_template_class): Look through implict typename. 5461169689Skan 5462169689Skan1999-04-11 Mark Mitchell <mark@codesourcery.com> 5463169689Skan 5464169689Skan * friend.c (add_friend): Deal gracefully with error_mark_node. 5465169689Skan * method.c (build_overload_value): Handle pointers-to-members as 5466169689Skan template parameters. 5467169689Skan 5468169689Skan * decl.c (push_binding): Fix typo in comment. 5469169689Skan 5470169689Skan1999-04-10 Mark Mitchell <mark@codesourcery.com> 5471169689Skan 5472169689Skan * error.c (dump_type_real): If a typename is a template-id, put 5473169689Skan out the template arguments. 5474169689Skan (dump_expr): Handle TEMPLATE_ID_EXPR. 5475169689Skan * pt.c (lookup_template_class): Now that full arguments are 5476169689Skan available everywhere, remove code that tried to guess them. 5477169689Skan 5478169689Skan1999-04-09 Mark Mitchell <mark@codesourcery.com> 5479169689Skan 5480169689Skan * decl.c (make_typename_type): Complain if we don't find a type 5481169689Skan when trying to make a typename type for a non-template type. 5482169689Skan 5483169689Skan1999-04-09 Jason Merrill <jason@yorick.cygnus.com> 5484169689Skan 5485169689Skan * decl.c (start_decl): Pass attributes to grokdeclarator. 5486169689Skan (grokdeclarator): Handle attributes on constructor-syntax 5487169689Skan initializers. 5488169689Skan 5489169689Skan1999-04-08 Mark Mitchell <mark@codesourcery.com> 5490169689Skan 5491169689Skan * error.c (dump_expr): Don't crash on INDIRECT_REFs whose operands 5492169689Skan don't have types. 5493169689Skan 5494169689Skan * search.c (template_self_reference_p): Tweak. 5495169689Skan 5496169689Skan1999-04-07 Mark Mitchell <mark@codesourcery.com> 5497169689Skan 5498169689Skan * init.c (build_offset_ref): Don't build yet another weird data 5499169689Skan structure to describe overloaded functions. 5500169689Skan 5501169689Skan1999-04-06 Mark Mitchell <mark@codesourcery.com> 5502169689Skan 5503169689Skan * cp-tree.h (BASELINK_P): New macro. 5504169689Skan (SET_BASELINK_P): Likewise. 5505169689Skan * init.c (build_member_call): Remove needless assignment in if 5506169689Skan statement. 5507169689Skan * search.c (lookup_field_r): Fix handling when we are looking 5508169689Skan specifically for a type; these are not hidden by functions and 5509169689Skan variables. 5510169689Skan (lookup_member): Use SET_BASELINK_P. 5511169689Skan * tree.c (is_overloaded_fn): Use BASELINK_P. 5512169689Skan (really_overloaed_fn): Likewise. 5513169689Skan (get_first_fn): Likewise. 5514169689Skan 5515169689Skan1999-04-05 Mark Mitchell <mark@codesourcery.com> 5516169689Skan 5517169689Skan * decl.c (lookup_name_current_level): Tweak, and improve 5518169689Skan documentation. 5519169689Skan 5520169689Skan * class.c (maybe_fixup_vptrs): Remove declaration. 5521169689Skan (build_class_init_list): Likewise. 5522169689Skan * decl.c (pushdecl_class_level): Call check_template_shadow here 5523169689Skan ... 5524169689Skan (push_class_level_binding): ... not here. 5525169689Skan * search.c (dfs_push_type_decls): Only avoid 5526169689Skan template-self-reference TYPE_DECLs if they are from base classes. 5527169689Skan 5528169689Skan1999-04-04 Mark Mitchell <mark@codesourcery.com> 5529169689Skan 5530169689Skan * pt.c (check_template_shadow): Don't treat OVERLOADs as _DECL 5531169689Skan nodes. Tidy. 5532169689Skan 5533169689Skan1999-04-03 Jason Merrill <jason@yorick.cygnus.com> 5534169689Skan 5535169689Skan * class.c (maybe_fixup_vptrs, build_class_init_list): Lose. 5536169689Skan (finish_struct_1): Don't call build_class_init_list. 5537169689Skan 5538169689Skan1999-04-02 Mark Mitchell <mark@codesourcery.com> 5539169689Skan 5540169689Skan * tinfo.h (__class_type_info): Fix illegal declaration. 5541169689Skan 5542169689Skan * cp-tree.def (TEMPLATE_ID_EXPR): Update comment. 5543169689Skan * cp-tree.h (INHERITED_VALUE_BINDING_P): New macro. 5544169689Skan (IDENTIFIER_CLASS_VALUE): Improve documentation. 5545169689Skan (is_properly_derived_from): Declare. 5546169689Skan (invalidate_class_lookup_cache): Likewise. 5547169689Skan (maybe_maybe_note_name_used_in_class): Likewise. 5548169689Skan (note_name_declared_in_class): Likewise. 5549169689Skan (push_using_decl): Remove duplicate declaration. 5550169689Skan (id_in_current_class): Remove declaration. 5551169689Skan (push_class_binding): Change prototype. 5552169689Skan (clear_identitifer_class_values): Declare. 5553169689Skan * call.c (is_properly_derived_from): Make it global. 5554169689Skan (build_new_function_call): Be careful about updating candidates. 5555169689Skan (build_new_method_call): Handle COMPONENT_REFs. Don't crash when 5556169689Skan asked to make illegal calls. 5557169689Skan * class.c: Include splay-tree.h. 5558169689Skan (class_stack_node): Add names_used slot. 5559169689Skan (check_member_decl_is_same_in_complete_scope): Remove. 5560169689Skan (add_method): Fix comment. Push the declaration into class 5561169689Skan scope. 5562169689Skan (finish_struct_1): When popping the class, pop the bindings too. 5563169689Skan Remove check for data member/function member conflict. 5564169689Skan (finish_struct): Remove calls to 5565169689Skan check_member_decl_is_same_in_complete_scope. Change calls to 5566169689Skan popclass. 5567169689Skan (pushclass): Clear names_used in the class stack entry. 5568169689Skan Use invalidate_class_lookup_cache to remove cached entries, rather 5569169689Skan than magic values with popclass. Clear IDENTIFIER_CLASS_VALUE 5570169689Skan before entering a new class. Remove dead code. Don't mess with 5571169689Skan current_function_decl when pushing declarations. 5572169689Skan (invalidate_class_lookup_cache): New function, split out from ... 5573169689Skan (popclass): Here. Clean up names_used on our way out. 5574169689Skan (instantiate_type): Adjust. 5575169689Skan (build_self_reference): Don't push the declaration here. 5576169689Skan (maybe_note_name_used_in_class): New function. 5577169689Skan (note_name_declared_in_class): Likewise. 5578169689Skan * decl.c (add_binding): Change prototype. 5579169689Skan (find_class_binding_level): New function. 5580169689Skan (innermost_nonclass_level): Likewise. 5581169689Skan (current_binding_level): Update documentation. 5582169689Skan (inner_binding_level): Remove. Replace with current_binding_level 5583169689Skan throughout. 5584169689Skan (push_binding_level): Remove special handling of 5585169689Skan class_binding_level. 5586169689Skan (pop_binding_level): Likewise. Use find_class_binding_level. 5587169689Skan (suspend_binding_level): Likewise. 5588169689Skan (global_bindings_p): Use innermost_nonclass_level. 5589169689Skan (toplevel_bindings_p): Likewise. 5590169689Skan (namespace_bindings_p): Likewise. 5591169689Skan (pseudo_global_level_p): Likewise. 5592169689Skan (push_binding): Clear INHERITED_VALUE_BINDING_P. 5593169689Skan (add_binding): Check for illegal multiple declarations. Return a 5594169689Skan value indicating whether or not the new binding was legal. 5595169689Skan (push_local_binding): Skip over class binding levels. Check 5596169689Skan return value from add_binding. 5597169689Skan (push_class_binding): Set INHERITED_VALUE_BINDING_P. Call 5598169689Skan note_name_declared_in_class. 5599169689Skan (pushlevel_class): Remove "fake out the rest of the compiler" 5600169689Skan code. 5601169689Skan (poplevel_class): Reset IDENTIFIER_CLASS_VALUEs. 5602169689Skan (clear_identifier_class_values): New function. 5603169689Skan (pop_from_top_level): Use it. 5604169689Skan (pop_everything): Tweak. 5605169689Skan (maybe_process_template_type_declaration): Don't push the 5606169689Skan declaration for the template here. 5607169689Skan (pushtag): Don't push tag declarations into class scope here. 5608169689Skan (pushdecl): Apply DeMorgan's law for readability. 5609169689Skan (pushdecl_class_level): Remove special-case code for 5610169689Skan TYPE_BEING_DEFINED. Handle OVERLOADs and anonymous unions. 5611169689Skan (push_class_level_bindng): Deal with inherited bindings. 5612169689Skan (lookup_name_real): Remove special-case code for 5613169689Skan TYPE_BEING_DEFINED, and some implicit typename magic. 5614169689Skan (grokdeclarator): Handle COMPONENT_REF for a template function. 5615169689Skan (build_enumerator): Don't call pushdecl_class_level here. 5616169689Skan (id_in_current_class): Remove. 5617169689Skan * decl2.c (grokfield): Don't call pushdecl_class_level or 5618169689Skan check_template_shadow. 5619169689Skan * errfn.c (cp_file_of): Don't declare. 5620169689Skan (cp_line_of): Likewise. 5621169689Skan * error.c (dump_decl): Handle an OVERLOAD. 5622169689Skan (cp_file_of): Likewise. 5623169689Skan (cp_line_of): Likewise. 5624169689Skan * init.c (build_member_call): Handle a COMPONENT_REF. 5625169689Skan * lex.c (do_identifier): Call maybe_note_name_used_in_class, not 5626169689Skan pushdecl_class_level. 5627169689Skan * method.c (hack_identifier): Build COMPONENT_REFs for references 5628169689Skan to member templates as well as member functions. Remove dead 5629169689Skan code. 5630169689Skan * parse.y (left_curly): Remove. 5631169689Skan (nonnested_type): Call maybe_note_name_used_in_class, not 5632169689Skan pushdecl_class_level. 5633169689Skan * parse.c: Regenerated. 5634169689Skan (nested_name_specifier_1): Likewise. 5635169689Skan * pt.c (check_explicit_specialization): Adjust, for robustness. 5636169689Skan (check_template_shadow): Handle OVERLOADs. 5637169689Skan (build_template_decl): Set DECL_CONSTRUCTOR_P on the 5638169689Skan TEMPLATE_DECL, if appropriate. 5639169689Skan * search.c (envelope_add_decl): Remove. 5640169689Skan (dfs_pushdecls): Likewise. 5641169689Skan (dfs_compress_decls): Likewise. 5642169689Skan (dfs_push_decls): New function. 5643169689Skan (dfs_push_type_decls): Likewise. 5644169689Skan (setup_class_bindings): Likewise. 5645169689Skan (template_self_reference_p): Likewise. 5646169689Skan (lookup_field_r): Use it. 5647169689Skan (looup_member): Remove old comment. Deal with ambiguity. 5648169689Skan (push_class_decls): Use dfs_push_decls and dfs_push_type_decls, 5649169689Skan and remove envelope processing. 5650169689Skan * semantics.c (begin_class_definition): Let pushclass push 5651169689Skan declarations for base classes. 5652169689Skan (finish_member_declaration): Push declarations into class scope. 5653169689Skan * typeck.c (build_component_ref): Just put an OVERLOAD into the 5654169689Skan COMPONENT_REF, not a TREE_LIST of an OVERLOAD. 5655169689Skan (build_x_function_call): Deal with OVERLOAD. Handle template-ids. 5656169689Skan * Makefile.in (class.o): Depend on splay-tree.h. 5657169689Skan 5658169689SkanWed Mar 31 11:30:43 1999 Nathan Sidwell <nathan@acm.org> 5659169689Skan 5660169689Skan * cvt.c (convert_pointer_to_real): Use same_type_p. 5661169689Skan * typeck.c (comp_target_types): Use same_type_p. 5662169689Skan 5663169689Skan1999-03-31 Jason Merrill <jason@yorick.cygnus.com> 5664169689Skan 5665169689Skan * semantics.c (begin_inline_definitions, 5666169689Skan finish_inline_definitions): Rename from finish_default_args and 5667169689Skan begin_inline_definitions, respectively, to something that isn't a 5668169689Skan total lie. :) 5669169689Skan * parse.y (structsp): Adjust. 5670169689Skan 5671169689Skan * tree.c (hash_tree_cons): Remove obsolete via_* parms. 5672169689Skan (list_hash_lookup): Likewise. 5673169689Skan (hash_tree_chain): Adjust. 5674169689Skan * pt.c (tsubst): Adjust. 5675169689Skan (tsubst_arg_types): Use plain hash_tree_cons. 5676169689Skan * cp-tree.h (hash_tree_cons_simple): Lose. 5677169689Skan * parse.y (declmods, nonempty_cv_qualifiers): Use hash_tree_cons. 5678169689Skan 5679169689SkanWed Mar 31 10:48:29 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 5680169689Skan 5681169689Skan * Makefile.in (hash.h): Generate using gperf language 'C', not 5682169689Skan 'KR-C', so gperf uses the `const' keyword on strings. 5683169689Skan 5684169689Skan * gxx.gperf (resword): Const-ify a char*. 5685169689Skan 5686169689Skan1999-03-30 Jason Merrill <jason@yorick.cygnus.com> 5687169689Skan 5688169689Skan * cp-tree.h (IDENTIFIER_AS_DESC, IDENTIFIER_AS_LIST, 5689169689Skan CLASSTYPE_BASELINK_VEC, CLASSTYPE_N_SUPERCLASSES, 5690169689Skan CLASSTYPE_N_BASECLASSES, CLASSTYPE_MAX_DEPTH, 5691169689Skan CLASSTYPE_BASE_INIT_LIST, CLASSTYPE_AS_LIST, CLASSTYPE_ID_AS_LIST, 5692169689Skan CLASSTYPE_BINFO_AS_LIST): Remove cruft. 5693169689Skan * class.c, lex.c, parse.y, ptree.c, search.c, semantics.c, 5694169689Skan tree.c: Adjust. 5695169689Skan 5696169689Skan1999-03-29 Jason Merrill <jason@yorick.cygnus.com> 5697169689Skan 5698169689Skan * decl2.c (lang_decode_option): Remove -Wsign-promo from -Wall. 5699169689Skan 5700169689Skan1999-03-28 Jason Merrill <jason@yorick.cygnus.com> 5701169689Skan 5702169689Skan * pt.c (fn_type_unification): Ignore 'this' parm from conversion ops. 5703169689Skan 5704169689Skan1999-03-27 Mark Mitchell <mark@codesourcery.com> 5705169689Skan 5706169689Skan * cp-tree.h (add_friend): Declare. 5707169689Skan (add_friends): Likewise. 5708169689Skan * friend.c (add_friend): Make it global. Don't add to 5709169689Skan DECL_BEFRIENDING_CLASSES if the befriending class is a template. 5710169689Skan (add_friends): Make it global. 5711169689Skan (make_friend_class): Don't add to DECL_BEFRIENDING_CLASSES if the 5712169689Skan befriending class is a template. 5713169689Skan * parse.y (component_decl_1): Fix typo in comment. 5714169689Skan * parse.c: Regenerated. 5715169689Skan * pt.c (instantiate_class_template): Use add_friend and 5716169689Skan add_friends rather that duplicating some of their functionality 5717169689Skan here. 5718169689Skan 5719169689Skan1999-03-27 Jason Merrill <jason@yorick.cygnus.com> 5720169689Skan 5721169689Skan * call.c (build_field_call): Unify 'this' and non-'this' cases. 5722169689Skan 5723169689Skan * typeck.c (build_indirect_ref): Check for 'this' sooner. 5724169689Skan 5725169689SkanFri Mar 26 10:20:34 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 5726169689Skan 5727169689Skan * call.c (op_error): Const-ify a char*. 5728169689Skan (add_candidate, source_type, add_warning): Add static prototype. 5729169689Skan (print_z_candidates): Const-ify a char*. 5730169689Skan 5731169689Skan * class.c (resolve_address_of_overloaded_function, 5732169689Skan fixed_type_or_null, build_vtable_entry_ref): Add static prototype. 5733169689Skan (get_vtable_name, finish_struct_1): Const-ify a char*. 5734169689Skan 5735169689Skan * cvt.c (convert_to_reference): Likewise. 5736169689Skan 5737169689Skan * decl.c (redeclaration_error_message, record_builtin_type, 5738169689Skan record_unknown_type, member_function_or_else, bad_specifiers): 5739169689Skan Likewise. 5740169689Skan (find_binding, select_decl, unqualified_namespace_lookup, 5741169689Skan lookup_flags, qualify_lookup, record_builtin_java_type, tag_name): 5742169689Skan Add static prototype. 5743169689Skan (warn_extern_redeclared_static, duplicate_decls, pushdecl, 5744169689Skan implicitly_declare, record_builtin_java_type, define_function, 5745169689Skan grok_op_properties, tag_name): Const-ify a char*. 5746169689Skan 5747169689Skan * cp-tree.h (FORMAT_VBASE_NAME): Allow parameter `BUF' to be const. 5748169689Skan (define_function, finish_builtin_type): Const-ify a char*. 5749169689Skan (cp_error, cp_error_at, cp_warning, cp_warning_at, cp_pedwarn, 5750169689Skan cp_pedwarn_at, cp_compiler_error, cp_sprintf): Add prototype args. 5751169689Skan (file_name_nondirectory): Const-ify a char*. 5752169689Skan (init_filename_times): Don't prototype. 5753169689Skan (compiler_error): Prototype. 5754169689Skan (yyerror, init_repo): Const-ify a char*. 5755169689Skan (build_srcloc): Don't prototype. 5756169689Skan (build_x_indirect_ref, build_indirect_ref, build_component_addr): 5757169689Skan Const-ify a char*. 5758169689Skan (warn_for_assignment): Don't prototype. 5759169689Skan (convert_for_initialization, readonly_error, check_for_new_type, 5760169689Skan GNU_xref_begin, GNU_xref_file, GNU_xref_ref, GNU_xref_call): 5761169689Skan Const-ify a char*. 5762169689Skan 5763169689Skan * decl2.c (acceptable_java_type, output_vtable_inherit, 5764169689Skan setup_initp, start_objects, finish_objects, do_dtors, do_ctors, 5765169689Skan merge_functions, decl_namespace, validate_nonmember_using_decl, 5766169689Skan do_nonmember_using_decl): Add static prototype. 5767169689Skan (lang_f_options): Const-ify a char*. 5768169689Skan (finish_builtin_type): Likewise. 5769169689Skan (add_function, arg_assoc_namespace, arg_assoc_class): Add static 5770169689Skan prototype. 5771169689Skan 5772169689Skan * errfn.c: Include cp-tree.h. 5773169689Skan (cp_thing): Add static prototype. 5774169689Skan (compiler_error): Don't protoptype. 5775169689Skan (cp_compiler_error): Cast `compiler_error' to `errorfn' before 5776169689Skan passing it to `cp_thing'. 5777169689Skan 5778169689Skan * error.c (interesting_scope_p): Add static prototype. 5779169689Skan 5780169689Skan * except.c (build_eh_type_type, build_eh_type_type_ref): Const-ify 5781169689Skan a char*. 5782169689Skan 5783169689Skan * init.c (compiler_error): Don't prototype. 5784169689Skan (member_init_ok_or_else): Const-ify a char*. 5785169689Skan (build_java_class_ref): Add static prototype. 5786169689Skan 5787169689Skan * lex.c (compiler_error): Don't prototype. 5788169689Skan (get_time_identifier, interface_strcmp, extend_token_buffer, 5789169689Skan handle_cp_pragma): Const-ify a char*. 5790169689Skan (is_global, init_filename_times): Add static prototype. 5791169689Skan (file_name_nondirectory, cplus_tree_code_name): Const-ify a char*. 5792169689Skan (compiler_error): Change from fixed args to variable args. 5793169689Skan (yyerror): Const-ify a char*. 5794169689Skan 5795169689Skan * parse.y (cond_stmt_keyword): Const-ify a char*. 5796169689Skan (parse_decl): Add static prototype. 5797169689Skan 5798169689Skan * pt.c (template_args_equal, print_template_context): Likewise. 5799169689Skan (print_candidates, check_default_tmpl_args): Const-ify a char*. 5800169689Skan (instantiate_class_template): Likewise. 5801169689Skan 5802169689Skan * repo.c (get_base_filename, open_repo_file, init_repo): Likewise. 5803169689Skan 5804169689Skan * rtti.c (call_void_fn, expand_generic_desc, expand_si_desc, 5805169689Skan expand_class_desc, expand_ptr_desc, expand_attr_desc): Likewise. 5806169689Skan 5807169689Skan * search.c (lookup_field_info, lookup_member): Likewise. 5808169689Skan (lookup_member): Cast the first argument of `bzero' to a PTR. 5809169689Skan 5810169689Skan * sig.c (compiler_error): Don't prototype. 5811169689Skan (build_signature_pointer_or_reference_nam): Const-ify a char*. 5812169689Skan (get_sigtable_name, build_member_function_pointer): Likewise. 5813169689Skan 5814169689Skan * tree.c (compiler_error): Don't prototype. 5815169689Skan (no_linkage_helper, build_srcloc): Add static prototype. 5816169689Skan (build_vbase_pointer_fields): Const-ify a char*. 5817169689Skan (__eprintf): Don't unnecessarily handle `const' when !__STDC__. 5818169689Skan 5819169689Skan * typeck.c (compiler_error): Don't prototype. 5820169689Skan (convert_for_assignment): Const-ify a char*. 5821169689Skan (comp_cv_target_types): Add static prototype. 5822169689Skan (build_x_indirect_ref, build_indirect_ref, convert_arguments, 5823169689Skan build_component_addr, build_unary_op, convert_for_initialization): 5824169689Skan Const-ify a char*. 5825169689Skan 5826169689Skan * typeck2.c (ack): Add static prototype and change from fixed args 5827169689Skan to variable args. 5828169689Skan (readonly_error, check_for_new_type): Const-ify a char*. 5829169689Skan 5830169689Skan * xref.c (_XREF_FILE, find_file, filename, fctname, declname, 5831169689Skan fixname, open_xref_file, classname, GNU_xref_begin): Likewise. 5832169689Skan (GNU_xref_file): Likewise. Also use `xmalloc' instead of `malloc'. 5833169689Skan (GNU_xref_end_scope, GNU_xref_ref, GNU_xref_decl, GNU_xref_call, 5834169689Skan gen_assign, GNU_xref_member): Const-ify a char*. 5835169689Skan 5836169689Skan1999-03-25 Martin von L�wis <loewis@informatik.hu-berlin.de> 5837169689Skan 5838169689Skan * gxxint.texi: Remove old discussion on copying virtual bases. 5839169689Skan 5840169689Skan1999-03-25 Zack Weinberg <zack@rabi.columbia.edu> 5841169689Skan 5842169689Skan * Make-lang.in: Remove all references to g++.o/g++.c. 5843169689Skan Link g++ from gcc.o. 5844169689Skan 5845169689Skan1999-03-25 Jason Merrill <jason@yorick.cygnus.com> 5846169689Skan 5847169689Skan * decl2.c (comdat_linkage): Treat vtables like functions. 5848169689Skan 5849169689Skan1999-03-25 Mark Mitchell <mark@codesourcery.com> 5850169689Skan 5851169689Skan * pt.c (tsubst_decl): tsubst into DECL_BEFRIENDING_CLASSES. 5852169689Skan 5853169689Skan1999-03-25 Nathan Sidwell <nathan@acm.org> 5854169689Skan 5855169689Skan * decl.c (init_decl_processing): Add `signed' type as a synonym 5856169689Skan for `int'. 5857169689Skan 5858169689Skan1999-03-25 Jason Merrill <jason@yorick.cygnus.com> 5859169689Skan 5860169689Skan * typeck.c (common_type): Handle cv-qual unification for pointers 5861169689Skan to members. 5862169689Skan 5863169689Skan * decl.c (unqualified_namespace_lookup): Return error_mark_node 5864169689Skan on error. 5865169689Skan (lookup_name_real): Set LOOKUP_COMPLAIN when *not* parsing. 5866169689Skan * lex.c (do_identifier): If we got error_mark_node, call 5867169689Skan lookup_name again. 5868169689Skan 5869169689Skan1999-03-24 Martin von L�wis <loewis@informatik.hu-berlin.de> 5870169689Skan 5871169689Skan * class.c (finish_struct_1): Always reset TYPE_FIELDS for empty 5872169689Skan classes. 5873169689Skan 5874169689Skan1999-03-24 Jason Merrill <jason@yorick.cygnus.com> 5875169689Skan 5876169689Skan * decl.c (lookup_name_real): Do nested field lookup regardless of 5877169689Skan TYPE_BEING_DEFINED. 5878169689Skan 5879169689Skan1999-03-24 Mark Mitchell <mark@codesourcery.com> 5880169689Skan 5881169689Skan * cp-tree.h (lang_type): Remove has_assignment and 5882169689Skan has_real_assignment. Add befriending_classes. 5883169689Skan (TYPE_HAS_ASSIGNMENT): Remove. 5884169689Skan (TYPE_HAS_REAL_ASSIGNMENT): Likewise. 5885169689Skan (CLASSTYPE_BEFRIENDING_CLASSES): New macro. 5886169689Skan (lang_decl): Document. 5887169689Skan (DECL_BEFRIENDING_CLASSES): New macro. 5888169689Skan (FRIEND_NAME): Move declaration to more obvious location. 5889169689Skan (FRIEND_DECLS): Likewise. 5890169689Skan * class.c (finish_struct_1): Don't use TYPE_HAS_REAL_ASSIGNMENT. 5891169689Skan * decl.c (duplicate_decls): Copy DECL_BEFRIENDING_CLASSES. 5892169689Skan (fixup_anonymous_union): Don't use TYPE_HAS_ASSIGNMENT. 5893169689Skan (grok_op_properties): Likewise. 5894169689Skan * friend.c (is_friend): Use FRIEND_NAME and FRIEND_DECLS. 5895169689Skan (add_friend): Likewise. Don't do weird things with assignment 5896169689Skan operators. Update DECL_BEFRIENDING_CLASSES. 5897169689Skan (add_friends): Don't do weird things with assignment operators. 5898169689Skan (make_friend_class): Likewise. Update 5899169689Skan CLASSTYPE_BEFRIENDING_CLASSES. 5900169689Skan * pt.c (instantiate_class_template): Don't set 5901169689Skan TYPE_HAS_ASSIGNMENT. 5902169689Skan (tsubst_copy): Substitute the TREE_TYPE for more unary 5903169689Skan expressions. 5904169689Skan * ptree.c (print_lang_type): Don't look at TYPE_HAS_ASSIGNMENT. 5905169689Skan * search.c (protected_accessible_p): New function. 5906169689Skan (friend_accessible_p): Likewise. 5907169689Skan (accessible_p): Use them. 5908169689Skan 5909169689Skan1999-03-23 Mark Mitchell <mark@codesourcery.com> 5910169689Skan 5911169689Skan * pt.c (convert_nontype_argument): Don't create things that aren't 5912169689Skan PTRMEM_CSTs when applying a qualification conversion to a 5913169689Skan PTRMEM_CST. 5914169689Skan 5915169689Skan1999-03-23 Mark Mitchell <mark@codesourcery.com> 5916169689Skan 5917169689Skan * Makefile.in (OBJS): Don't mention hash.o. 5918169689Skan (OBJDEPS): Likewise. 5919169689Skan 5920169689Skan1999-03-23 Jason Merrill <jason@yorick.cygnus.com> 5921169689Skan 5922169689Skan * decl2.c (finish_file): Set at_eof to 2 after expanding ctors. 5923169689Skan * decl.c (expand_static_init): Make sure we don't add any after 5924169689Skan then. 5925169689Skan 5926169689Skan * decl.c (cp_finish_decl): Move intelligence about handling 5927169689Skan DECL_COMDAT for variables from here... 5928169689Skan * decl2.c (comdat_linkage): ...to here. 5929169689Skan (maybe_make_one_only): Tweak. 5930169689Skan (import_export_decl): Call comdat_linkage for variables, too. 5931169689Skan (finish_file): Handle template statics properly. 5932169689Skan 5933169689Skan1999-03-22 Mark Mitchell <mark@codesourcery.com> 5934169689Skan 5935169689Skan * cp-tree.h (TYPE_PTRMEMFUNC_P): Use TYPE_PTRMEMFUNC_FLAG. 5936169689Skan Document internals of pointer-to-member-functions. 5937169689Skan (DELTA2_FROM_PTRMEMFUNC): Make it call delta2_from_ptrmemfunc. 5938169689Skan (PFN_FROM_PTRMEMFUNC): Likewise. 5939169689Skan (build_type_conversion): Remove unused parameter. 5940169689Skan (build_ptrmemfunc1): Declare. 5941169689Skan (expand_ptrmemfunc_cst): New function. 5942169689Skan (delta2_from_ptrmemfunc): Likewise. 5943169689Skan (pfn_from_ptrmemfunc): Likewise. 5944169689Skan * cvt.c (cp_convert_to_pointer): Remove unused parameter to 5945169689Skan build_type_conversion. Use TYPE_PTRMEM_P for readability. 5946169689Skan (convert_to_reference): Remove unused parameter to 5947169689Skan build_type_conversion. 5948169689Skan (ocp_convert): Likewise. 5949169689Skan (build_user_type_conversion): Likewise. 5950169689Skan * error.c (dump_expr): Handle NULL pointer-to-member functions. 5951169689Skan * expr.c (cplus_expand_expr): Handle PTRMEM_CSTs for functions. 5952169689Skan * method.c (build_overload_value): Don't go splitting CONSTRUCTORs 5953169689Skan open when handling pointer-to-member functions. 5954169689Skan * pt.c (convert_nontype_argument): Clean up error messages. Be 5955169689Skan more stringent with pointers-to-members. 5956169689Skan * typeck.c (build_ptrmemfunc1): Don't declare. Make it global. 5957169689Skan (build_unary_op): Tidy ever-so-slightly. 5958169689Skan (build_conditional_expr): Remove extra parameter to 5959169689Skan build_type_conversion. 5960169689Skan (build_ptrmemfunc): Build PTRMEM_CSTs if we know what function 5961169689Skan we're using. 5962169689Skan (expand_ptrmemfunc_cst): Define. 5963169689Skan (delta2_from_ptrmemfunc): Likewise. 5964169689Skan (pfn_from_ptrmemfunc): Likewise. 5965169689Skan 5966169689Skan1999-03-19 Mark Mitchell <mark@codesourcery.com> 5967169689Skan 5968169689Skan * init.c (build_member_call): Handle template-id expressions 5969169689Skan correctly. 5970169689Skan * typeck.c (build_x_function_call): Likewise. 5971169689Skan 5972169689Skan1999-03-19 Chip Salzenberg <chip@perlsupport.com> 5973169689Skan 5974169689Skan * friend.c (make_friend_class): Avoid core dump when 5975169689Skan not-yet-defined friend type lacks TYPE_LANG_SPECIFIC(). 5976169689Skan 5977169689Skan1999-03-18 Jason Merrill <jason@yorick.cygnus.com> 5978169689Skan 5979169689Skan * decl.c (start_function): Suppress normal linkage heuristics 5980169689Skan for #pragma interface under MULTIPLE_SYMBOL_SPACES. 5981169689Skan 5982169689Skan1999-03-19 Alexandre Oliva <oliva@dcc.unicamp.br> 5983169689Skan 5984169689Skan * Make-lang.in: ($(INTL_TARGETS)): Depend on cp/parse.c. 5985169689Skan ($(srcdir)/cp/parse.c): Moved from ../Makefile.in. 5986169689Skan 5987169689Skan1999-03-17 Martin von L�wis <loewis@informatik.hu-berlin.de> 5988169689Skan 5989169689Skan * parse.y (named_complex_class_head_sans_basetype): 5990169689Skan Do not push a scope for error_mark_node. 5991169689Skan (maybe_base_class_list): Likewise. 5992169689Skan 5993169689Skan * decl.c (start_decl): Check for error_mark_node as a type. 5994169689Skan Detected by g++.brendan/array-refs.C. 5995169689Skan (start_decl_1): Likewise. Detected by g++.bugs/900322_01.C. 5996169689Skan (maybe_build_cleanup_1): Likewise. Detected by 5997169689Skan g++.jason/incomplete1.C. 5998169689Skan 5999169689Skan * tree.c (build_dummy_object): Use void_zero_node instead of the 6000169689Skan error_mark_node. 6001169689Skan (is_dummy_object): Check for such a node. 6002169689Skan Detected by g++.bob/inherit1.C 6003169689Skan 6004169689Skan1999-03-16 Jason Merrill <jason@yorick.cygnus.com> 6005169689Skan 6006169689Skan * method.c (old_backref_index): Split out... 6007169689Skan (flush_repeats): From here. Rename back from try_old_backref. 6008169689Skan (build_mangled_name): Put back some old-style repeat handling. 6009169689Skan 6010169689SkanMon Mar 15 21:57:16 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 6011169689Skan 6012169689Skan * lex.c: Don't include setjmp.h. 6013169689Skan (parse_float): New static function. 6014169689Skan (pf_args): New struct. 6015169689Skan (real_yylex): Use them in call to `do_float_handler'. 6016169689Skan 6017169689Skan1999-03-15 Mark Mitchell <mark@markmitchell.com> 6018169689Skan 6019169689Skan * decl.c (xref_basetypes): Set CLASSTYPE_VBASECLASSES here. 6020169689Skan * tree.c (layout_basetypes): Not here. 6021169689Skan * search.c (dfs_search): Remove; no longer used. 6022169689Skan 6023169689Skan1999-03-12 Mark Mitchell <mark@markmitchell.com> 6024169689Skan 6025169689Skan * decl2.c (validate_nonmember_using_decl): Issue sensible 6026169689Skan error-messages on bogus qualifiers. 6027169689Skan 6028169689Skan1999-03-14 Jason Merrill <jason@yorick.cygnus.com> 6029169689Skan 6030169689Skan * call.c (add_function_candidate): Fix uninitialized variable. 6031169689Skan 6032169689Skan * Makefile.in (search.o): Add dependency on varray.h. 6033169689Skan 6034169689Skan1999-03-13 Jason Merrill <jason@yorick.cygnus.com> 6035169689Skan 6036169689Skan * decl.c (duplicate_decls): Use same_type_p. 6037169689Skan * method.c (try_old_backref): Renamed from flush_repeats. Use 6038169689Skan same_type_p. Don't try to handle repeats. Return success. 6039169689Skan (is_back_referenceable_type): Return 0 if TYPE_FOR_JAVA. Support 6040169689Skan calls from old-style code, too. 6041169689Skan (check_ktype): Use same_type_p. 6042169689Skan (check_btype): Use same_type_p. Don't pull out TYPE_MAIN_VARIANT. 6043169689Skan (build_qualified_name): Simplify logic. 6044169689Skan (process_overload_item): Strip typedefs and quals at the top. 6045169689Skan (build_mangled_name_for_type_with_Gcode): Remove call to 6046169689Skan type_canonical_variant. 6047169689Skan (build_mangled_name): Likewise. Remove support for old-style 6048169689Skan repeats, which have been disabled since 2.7.2. Don't mess with 6049169689Skan TREE_USED. 6050169689Skan (build_decl_overload_real): Don't mess with TREE_USED. 6051169689Skan 6052169689Skan1999-03-13 Nathan Sidwell <nathan@acm.org> 6053169689Skan 6054169689Skan * error.c (cp_printers): Add 'F' escape character. 6055169689Skan (dump_type_real): Remove TREE_LIST (fnargs) printing. 6056169689Skan Functionality moved to dump_parameters. 6057169689Skan (dump_type_suffix): Use dump_parameters and dump_exception_spec. 6058169689Skan (dump_function_decl): Extend meaning of V parameter. Use 6059169689Skan dump_parameters and dump_exception_spec. 6060169689Skan (dump_parameters): New static function. 6061169689Skan (dump_exception_spec): New static function. 6062169689Skan (fndecl_as_string): Change argument semantics. Use 6063169689Skan dump_function_decl directly. 6064169689Skan 6065169689Skan * sig.c (build_signature_table_constructor): Use cp_error. 6066169689Skan 6067169689Skan1999-03-13 Martin von L�wis <loewis@informatik.hu-berlin.de> 6068169689Skan 6069169689Skan * semantics.c (finish_switch_cond): Handle error cases gracefully. 6070169689Skan Detected by g++.law/enum5.C. 6071169689Skan 6072169689Skan * typeck.c (build_modify_expr): Check for errors after resolving 6073169689Skan offsets. Detected by g++.brendan/static1.C. 6074169689Skan 6075169689Skan * decl.c (complete_array_type): Ignore initial_value if it is an 6076169689Skan error. Detected by g++.benjamin/17930.C. 6077169689Skan 6078169689Skan * typeck2.c (process_init_constructor): Return error if one argument 6079169689Skan is in error. Detected by g++.benjamin/13478.C. 6080169689Skan 6081169689Skan1999-03-12 Martin von L�wis <loewis@informatik.hu-berlin.de> 6082169689Skan 6083169689Skan * decl.c (select_decl): Allow class templates when we need types. 6084169689Skan * decl2.c (ambiguous_decl): Likewise. 6085169689Skan 6086169689Skan1999-03-12 Mark Mitchell <mark@markmitchell.com> 6087169689Skan 6088169689Skan * lex.c (do_identifier): Correct call to enforce_access. 6089169689Skan * search.c (accessible_p): Tweak comment. 6090169689Skan 6091169689Skan1999-03-10 Mark Mitchell <mark@markmitchell.com> 6092169689Skan 6093169689Skan * semantics.c (begin_class_definition): Call build_self_reference. 6094169689Skan (finish_member_declaration): Set DECL_CONTEXT for TYPE_DECLs. 6095169689Skan 6096169689Skan * search.c (assert_canonical_unmarked): Fix typo in prototype. 6097169689Skan 6098169689Skan * search.c (dfs_canonical_queue): New function. 6099169689Skan (dfs_assert_unmarked_p): Likewise. 6100169689Skan (assert_canonical_unmarked): Likewise. 6101169689Skan (access_in_type): Use it. 6102169689Skan (accessible_p): Likewise. Walk the whole tree when umarking. 6103169689Skan 6104169689Skan * sig.c (build_signature_table_constructor): Use accessible_p 6105169689Skan instead of compute_access. 6106169689Skan 6107169689Skan1999-03-09 Jason Merrill <jason@yorick.cygnus.com> 6108169689Skan 6109169689Skan * call.c (add_builtin_candidates): Handle overloaded conversion ops. 6110169689Skan 6111169689Skan1999-03-09 Mark Mitchell <mark@markmitchell.com> 6112169689Skan 6113169689Skan * cp-tree.h (flag_access_control): Declare. 6114169689Skan (TREE_VIA_PPUBLIC): Document. 6115169689Skan (DECL_NONSTATIC_MEMBER_P): New macro. 6116169689Skan (enforce_access): Return an indication of whether or not access 6117169689Skan was permitted. 6118169689Skan (build_self_reference): Change prototype. 6119169689Skan (compute_access): Replace with ... 6120169689Skan (accessible_p): New function. 6121169689Skan (dfs_walk): Change prototype. 6122169689Skan (dfs_unmark): Likewise. 6123169689Skan (markedp): Likewise. 6124169689Skan * call.c (enforce_access): Use accessible_p. 6125169689Skan * class.c (build_self_reference): Insert the declaration into the 6126169689Skan list of members for this type, and make it public. 6127169689Skan * decl.c (xref_basetypes): Avoid ill-timed recursion. 6128169689Skan * init.c (build_offset_ref): Use lookup_member, not three separate 6129169689Skan name-lookups. Call enforce_access rather than checking for 6130169689Skan illegal accesses here. 6131169689Skan (resolve_offset_ref): Likewise. 6132169689Skan * lex.c (do_identifier): Likewise. 6133169689Skan * method.c (hack_identifier): Likewise. 6134169689Skan * parse.y (self_reference): Remove. 6135169689Skan (opt_component_decl_list): Don't use it. 6136169689Skan * parse.c: Regenerated. 6137169689Skan * pt.c (print_candidates): Generalize to handle lists of 6138169689Skan overloaded functions. 6139169689Skan (instantiate_class_template): Don't rely on TREE_VIA_PRIVATE; it's 6140169689Skan not set. 6141169689Skan (get_template_base): Use new calling convention for dfs_walk. 6142169689Skan * search.c: Include varray.h. Add prototypes. 6143169689Skan (dfs_walk): Accept a data pointer to pass to the work functions. 6144169689Skan All callers changed. All work functions changed. 6145169689Skan (breadth_first_search): Rename to bfs_walk, and make consistent 6146169689Skan with dfs_walk. 6147169689Skan (dfs_walk_real): New function. 6148169689Skan (canonical_binfo): New function. 6149169689Skan (context_for_name_lookup): Likewise. 6150169689Skan (shared_marked_p): Likewise. 6151169689Skan (shared_unmarked_p): Likewise. 6152169689Skan (lokup_field_queue_p): Likewise. 6153169689Skan (lookup_field_r): Generalize to handle both functions and fields. 6154169689Skan (lookup_field): Just call lookup_member. 6155169689Skan (lookup_fnfields): Likewise. 6156169689Skan (lookup_member): Move body of lookup_field here and generalize. 6157169689Skan (dfs_accessible_queue_p): Likewise. 6158169689Skan (dfs_accessible_p): Likewise. 6159169689Skan (dfs_access_in_type): Likewise. 6160169689Skan (access_in_type): Likewise. 6161169689Skan (compute_access): Remove, and replace with ... 6162169689Skan (accessible_p): New function. 6163169689Skan (vbase_types): Remove. 6164169689Skan (vbase_decl_ptr_intermediate): Likewise. 6165169689Skan (vbase_decl_ptr): Likewise. 6166169689Skan (vbase_init_result): Likewise. 6167169689Skan (closed_envelopes): Likewise. 6168169689Skan (bvtable): Likewise. 6169169689Skan 6170169689Skan1999-03-09 Jason Merrill <jason@yorick.cygnus.com> 6171169689Skan 6172169689Skan * call.c (add_function_candidate): Check for proper number of args 6173169689Skan before checking the validity of those args. 6174169689Skan 6175169689Skan1999-03-06 Jason Merrill <jason@yorick.cygnus.com> 6176169689Skan 6177169689Skan * cp-tree.h (struct lang_type): Add anon_union field. 6178169689Skan (ANON_UNION_TYPE_P): Use it instead of examining type. 6179169689Skan (SET_ANON_UNION_TYPE_P): New macro. 6180169689Skan * decl.c (check_tag_decl): Use it. 6181169689Skan 6182169689Skan * search.c (compute_access): Handle non-type contexts earlier, and 6183169689Skan handle NULL_TREE. 6184169689Skan 6185169689Skan * tree.c (build_exception_variant): Use copy_to_permanent. 6186169689Skan 6187169689Skan * decl2.c (setup_initp): Give statics with no priority the default 6188169689Skan priority here. 6189169689Skan (do_dtors, do_ctors, finish_file): Remove special handling of 6190169689Skan non-prioritized statics. 6191169689Skan 6192169689Skan1999-03-05 Mark Mitchell <mark@markmitchell.com> 6193169689Skan 6194169689Skan * cp-tree.h (ANON_UNION_TYPE_P): Robustify. 6195169689Skan * decl.c (make_typename_type): Don't issue an error if an 6196169689Skan immediate lookup fails; it migt be resolved later. 6197169689Skan * friend.c (is_friend): Add comment. 6198169689Skan * search.c (breadth_first_search): Add POSTFN and DATA 6199169689Skan parameters. Tidy. All callers changed. 6200169689Skan (lookup_field_queue_p): New function. 6201169689Skan (lookup_field_r): Likewise. 6202169689Skan (lookup_field_post): Likewise. 6203169689Skan (lookup_field): Use them, via breadth_first_search, instead of 6204169689Skan duplicating logic. 6205169689Skan (compute_access): Robustify. 6206169689Skan (lookup_fnfield_info): New structure. 6207169689Skan 6208169689Skan1999-03-05 Jason Merrill <jason@yorick.cygnus.com> 6209169689Skan 6210169689Skan * pt.c (tsubst, case ARRAY_REF): Use tsubst_expr again. 6211169689Skan 6212169689Skan1999-03-03 Jason Merrill <jason@yorick.cygnus.com> 6213169689Skan 6214169689Skan * class.c, decl2.c, method.c, pt.c: Add 'static' to make SunOS 4 6215169689Skan cc happy. 6216169689Skan 6217169689Skan * decl2.c (import_export_class): Also return if 6218169689Skan CLASSTYPE_INTERFACE_ONLY is set. 6219169689Skan 6220169689Skan1999-03-03 Martin von L�wis <loewis@informatik.hu-berlin.de> 6221169689Skan 6222169689Skan * decl.c (push_overloaded_decl): Only overwrite the old binding if 6223169689Skan there was one. 6224169689Skan * decl2.c (do_local_using_decl): Fix loop termination. 6225169689Skan 6226169689Skan1999-03-02 Mark Mitchell <mark@markmitchell.com> 6227169689Skan 6228169689Skan * cp-tree.h (determine_specialization): Don't declare. 6229169689Skan * pt.c (determine_specialization): Make it static. Eliminate 6230169689Skan complain parameter. Note that decl is always non-NULL now, and 6231169689Skan simplify accordingly. 6232169689Skan 6233169689Skan * decl.c (maybe_push_to_top_level): Always call 6234169689Skan push_cp_function_context. 6235169689Skan (pop_from_top_level): Always call pop_cp_function_context. 6236169689Skan 6237169689Skan1999-02-26 Nathan Sidwell <nathan@acm.org> 6238169689Skan 6239169689Skan * typeck.c (complete_type_or_else): Add VALUE arg, for helpful 6240169689Skan diagnostics. 6241169689Skan * cp-tree.h (complete_type_or_else): Added VALUE parameter. 6242169689Skan * init.c (build_new_1): Extra arg to complete_type_or_else. 6243169689Skan (build_delete): Likewise. 6244169689Skan * typeck.c (require_complete_type): Likewise. 6245169689Skan (pointer_int_sum): Likewise. 6246169689Skan (pointer_diff): Likewise. 6247169689Skan (build_component_ref): Likewise. 6248169689Skan 6249169689Skan * typeck2.c (incomplete_type_error): Always use cp_error. 6250169689Skan Show declaration of undefined type, if appropriate. 6251169689Skan Deal with UNKNOWN_TYPE nodes. 6252169689Skan 6253169689Skan * typeck.c (require_complete_type): Use TYPE_SIZE as 6254169689Skan size_zero_node to mean incomplete type. 6255169689Skan (require_complete_type_in_void): New function. 6256169689Skan (build_compound_expr): Call complete_type_in_void for LHS. 6257169689Skan (build_c_cast): Call complete_type_in_void for void cast. 6258169689Skan * cvt.c (ocp_convert): Call complete_type_in_void for void cast. 6259169689Skan * decl.c (cplus_expand_expr_stmt): Void expression checks moved to 6260169689Skan require_complete_type_in_void. Call it. 6261169689Skan * cp-tree.h (require_complete_type_in_void): Prototype new function. 6262169689Skan 6263169689Skan * typeck.c (convert_arguments): Use alternative format for 6264169689Skan function decls. Don't require_complete_type here. Simplify 6265169689Skan diagnostic printing. 6266169689Skan (convert_for_initialization): Don't require_complete_type on RHS yet. 6267169689Skan * call.c (convert_arg_to_ellipsis): Call require_complete_type. 6268169689Skan 6269169689Skan * call.c (build_over_call): Cope with qualified void return type. 6270169689Skan * semantics.c (finish_call_expr): Likewise. 6271169689Skan * typeck.c (build_function_call_real): Likewise. 6272169689Skan (c_expand_return): Likewise. 6273169689Skan * decl2.c (reparse_absdcl_as_expr): Cope with qualified void type. 6274169689Skan 6275169689Skan * call.c (print_z_candidates): Use alternate print format, to be 6276169689Skan consistent with (pt.c) print_candidates. 6277169689Skan * method.c (hack_identifier): List candidate members. 6278169689Skan * search.c (lookup_field): Build ambiguous list, and show it, if 6279169689Skan ambiguous. 6280169689Skan 6281169689Skan1999-02-26 Mark Mitchell <mark@markmitchell.com> 6282169689Skan 6283169689Skan * typeck.c (decay_conversion): Don't confuse constant array 6284169689Skan variables with their initializers. 6285169689Skan 6286169689Skan * decl.c (duplicate_decls): Copy DECL_TEMPLATE_INSTANTIATED when 6287169689Skan merging decls. 6288169689Skan * pt.c (regenerate_decl_from_template): Tweak for clarity. 6289169689Skan (instantiate_decl): Mark a decl instantiated before regenerating 6290169689Skan it to avoid recursion. 6291169689Skan * tree.c (mapcar): Don't call decl_constant_value unless we know 6292169689Skan something is TREE_READONLY_DECL_P. 6293169689Skan 6294169689Skan * class.c (check_for_override): Don't stop checking when we find 6295169689Skan the first overridden function. Delete #if 0'd code. 6296169689Skan * search.c (get_matching_virtual): Likewise. 6297169689Skan 6298169689Skan1999-02-25 Richard Henderson <rth@cygnus.com> 6299169689Skan 6300169689Skan * lang-specs.h: Define __FAST_MATH__ when appropriate. 6301169689Skan 6302169689Skan1999-02-24 Mike Stump <mrs@wrs.com> 6303169689Skan 6304169689Skan * typeck.c (convert_for_assignment): Allow boolean integral constant 6305169689Skan expressions to convert to null pointer. 6306169689Skan 6307169689Skan1999-02-24 Martin von Loewis <loewis@informatik.hu-berlin.de> 6308169689Skan 6309169689Skan * decl.c (lookup_namespace_name): Resolve namespace aliases. 6310169689Skan 6311169689Skan * class.c (push_nested_class): Allow namespaces. 6312169689Skan 6313169689Skan * decl2.c (set_decl_namespace): Add friendp parameter. 6314169689Skan * decl.c (grokfndecl): Pass it. 6315169689Skan (grokvardecl): Likewise. 6316169689Skan * cp-tree.h: Change declaration. 6317169689Skan 6318169689Skan1999-02-24 Jason Merrill <jason@yorick.cygnus.com> 6319169689Skan 6320169689Skan * pt.c (tsubst): Allow an array of explicit size zero. 6321169689Skan 6322169689Skan1999-02-23 Jason Merrill <jason@yorick.cygnus.com> 6323169689Skan 6324169689Skan * errfn.c: Change varargs code to look like toplev.c. 6325169689Skan 6326169689Skan * method.c (process_modifiers): Don't prepend 'U' for char or 6327169689Skan wchar_t. 6328169689Skan 6329169689Skan1999-02-20 Craig Burley <craig@jcb-sc.com> 6330169689Skan 6331169689Skan * Make-lang.in (cplib2.ready): Don't consider updating 6332169689Skan cplib2 stuff if the current directory isn't writable, as 6333169689Skan it won't work (such as during a `make install'). 6334169689Skan 6335169689SkanSun Feb 21 20:38:00 1999 H.J. Lu (hjl@gnu.org) 6336169689Skan 6337169689Skan * decl2.c (start_objects): Make file scope constructors and 6338169689Skan destructors local to the file if ASM_OUTPUT_CONSTRUCTOR and 6339169689Skan ASM_OUTPUT_DESTRUCTOR are defined. 6340169689Skan 6341169689Skan1999-02-19 Mark Mitchell <mark@markmitchell.com> 6342169689Skan 6343169689Skan * cp-tree.h (CLASSTYPE_METHOD_VEC): Adjust comment. 6344169689Skan (fn_type_unification): Adjust prototype. 6345169689Skan (lookup_fnfields_1): Declare. 6346169689Skan * call.c (add_template_candidate_real): Adjust call to 6347169689Skan fn_type_unification. 6348169689Skan * class.c (add_method): Don't allow duplicate declarations of 6349169689Skan constructors or destructors. 6350169689Skan (resolve_address_of_overloaded_function): Remove unused variable. 6351169689Skan Adjust call to fn_type_unification. 6352169689Skan * decl.c (grokfndecl): Be more robust in the face of illegal 6353169689Skan specializations. 6354169689Skan * decl2.c (check_classfn): Remove hokey handling of member 6355169689Skan templates. 6356169689Skan * pt.c (determine_specialization): Improve comments. Adjust to 6357169689Skan handle template argument deduction as per the standard. 6358169689Skan (check_explicit_specialization): Fix comment spacing. Handle 6359169689Skan type-conversion operators correctly. Improve error-recovery. 6360169689Skan (fn_type_unification): Remove EXTRA_FN_ARG parameter. 6361169689Skan (get_bindings_real): Simplify handling of static members. 6362169689Skan * search.c (lookup_fnfields_1): Make it have external linkage. 6363169689Skan * typeck.c (compparms): Fix comment. 6364169689Skan (build_unary_op): Don't try to figure out which template 6365169689Skan specialization is being referred to when when the address-of 6366169689Skan operator is used with a template function. 6367169689Skan 6368169689SkanThu Feb 18 23:40:01 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 6369169689Skan 6370169689Skan * cp-tree.h (lvalue_or_else): Qualify a char* with the `const' 6371169689Skan keyword to match an analogous change at the top level. 6372169689Skan 6373169689Skan * tree.c (lvalue_or_else): Likewise. 6374169689Skan 6375169689Skan1999-02-17 Mark Mitchell <mark@markmitchell.com> 6376169689Skan 6377169689Skan * decl.c (xref_basetypes): Comment. 6378169689Skan * pt.c (instantiate_class_template): Use xref_basetypes. 6379169689Skan 6380169689Skan1999-02-16 Mark Mitchell <mark@markmitchell.com> 6381169689Skan 6382169689Skan * cp-tree.h (tsubst): Change prototype. 6383169689Skan (tsubst_expr): Likewise. 6384169689Skan (tsubst_copy): Likewise. 6385169689Skan (type_unification): Remove prototype. 6386169689Skan * call.c (convert_default_arg): Adjust call to tsubst_expr. 6387169689Skan * class.c (resolve_address_of_overloaded_function): Just use 6388169689Skan fn_type_unification. 6389169689Skan * decl.c (grokdeclarator): Adjust call to tsubst. 6390169689Skan * method.c (build_template_parm_names): Likewise. 6391169689Skan * pt.c (GTB_VIA_VIRTUAL): New macro. 6392169689Skan (GTB_IGNORE_TYPE): Likewise. 6393169689Skan (resolve_overloaded_unification): Add `complain' parameter. 6394169689Skan (try_one_overload): Likewise. 6395169689Skan (tsubst_template_arg_vector): Likewise. 6396169689Skan (tsubst_template_parms): Likewise. 6397169689Skan (tsubst_aggr_type): Likewise. 6398169689Skan (tsubst_arg_types): Likewise. 6399169689Skan (tsubst_call_declarator_parms): Likewise. 6400169689Skan (unify): Remove explicit_mask. 6401169689Skan (type_unification_real): Likewise. 6402169689Skan (get_template_base_recursive): Likewise. 6403169689Skan (coerce_template_template_parms): Provide prototype. 6404169689Skan (tsubst_function_type): Likewise. 6405169689Skan (try_class_unification): New function. 6406169689Skan All callers changed to use new complain parameter. 6407169689Skan (get_template_base): Use try_class_unification. 6408169689Skan (unify): Adjust handling of classes derived from template types. 6409169689Skan (fn_type_unification): Substitute explicit arguments before 6410169689Skan unification. 6411169689Skan 6412169689Skan1999-02-16 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu> 6413169689Skan 6414169689Skan * decl.c (pushdecl): Remove dead code. 6415169689Skan 6416169689Skan1999-02-16 Jason Merrill <jason@yorick.cygnus.com> 6417169689Skan 6418169689Skan * decl2.c (finish_objects): Fix code I missed in previous change. 6419169689Skan 6420169689Skan1999-02-13 Jason Merrill <jason@yorick.cygnus.com> 6421169689Skan 6422169689Skan * decl.c (grokfndecl): Return NULL_TREE instead of error_mark_node. 6423169689Skan (grokdeclarator): Don't expect error_mark_node from grokfndecl. 6424169689Skan 6425169689Skan * pt.c (maybe_process_partial_specialization): Complain about 6426169689Skan 'template <>' on non-specialization. 6427169689Skan 6428169689Skan1999-02-10 Jason Merrill <jason@yorick.cygnus.com> 6429169689Skan 6430169689Skan * decl.c (grokdeclarator): Catch weird declarators. 6431169689Skan * decl2.c (finish_file): Don't abort because of namespace parsing 6432169689Skan failure. 6433169689Skan (check_decl_namespace): Remove. 6434169689Skan 6435169689Skan1999-02-09 Mark Mitchell <mark@markmitchell.com> 6436169689Skan 6437169689Skan * cp-tree.h (get_template_base): Don't declare. 6438169689Skan (dfs_walk): Declare. 6439169689Skan (dfs_unmark): Likewise. 6440169689Skan (markedp): Likewise. 6441169689Skan * pt.c (unify): Remove duplicate declaration. Pass tparms and 6442169689Skan targs to get_template_base. 6443169689Skan (get_template_base_recursive): Move here from search.c. Check to 6444169689Skan see that the base found can be instantiated to form the desired 6445169689Skan type. 6446169689Skan (get_template_base): Likewise. 6447169689Skan (get_class_bindings): Simplify. 6448169689Skan * search.c (get_template_base_recursive): Move to pt.c. 6449169689Skan (get_template_base): Likewise. 6450169689Skan (markedp): Make it global. 6451169689Skan (dfs_walk): Likewise. 6452169689Skan (dfs_unmark): Likewise. 6453169689Skan 6454169689Skan1999-02-07 Jason Merrill <jason@yorick.cygnus.com> 6455169689Skan 6456169689Skan * pt.c (maybe_process_partial_specialization): Complain about 6457169689Skan specialization in wrong namespace. 6458169689Skan * tree.c (decl_namespace_context): New fn. 6459169689Skan 6460169689Skan1999-02-06 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu> 6461169689Skan 6462169689Skan * decl2.c (arg_assoc_type): Handle TEMPLATE_TEMPLATE_PARM. 6463169689Skan * pt.c (coerce_template_template_parms): Handle nested 6464169689Skan template template parameters. 6465169689Skan 6466169689SkanSat Feb 6 18:08:40 1999 Jeffrey A Law (law@cygnus.com) 6467169689Skan 6468169689Skan * typeck2.c: Update email addresses. 6469169689Skan 6470169689Skan1999-02-04 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu> 6471169689Skan 6472169689Skan * pt.c (unify): Call coerce_template_parms with the COMPLAIN flag 6473169689Skan turned off. 6474169689Skan 6475169689Skan1999-02-04 Jason Merrill <jason@yorick.cygnus.com> 6476169689Skan 6477169689Skan * lex.c (retrofit_lang_decl): Split out... 6478169689Skan (build_lang_decl): From here. 6479169689Skan * decl.c (pushdecl): Call it for functions generated by the middle 6480169689Skan end that don't have DECL_LANG_SPECIFIC. 6481169689Skan * cp-tree.h: Declare it. 6482169689Skan 6483169689Skan * decl2.c: Remove flag_init_priority. Always enable initp stuff. 6484169689Skan (start_objects, finish_objects): Only use special 6485169689Skan init_priority code if the user specified a priority. 6486169689Skan (do_ctors, do_dtors): Use DEFAULT_INIT_PRIORITY for the non-initp 6487169689Skan objects. 6488169689Skan 6489169689SkanWed Feb 3 22:50:17 1999 Marc Espie <Marc.Espie@liafa.jussieu.fr> 6490169689Skan 6491169689Skan * Make-lang.in (GXX_OBJS): Remove choose-temp.o, pexecute.o and 6492169689Skan mkstemp.o. Get them from libiberty now. 6493169689Skan (DEMANGLER_PROG): Simlarly, remove getopt.o getopt1.o. 6494169689Skan 6495169689SkanTue Feb 2 22:38:48 1999 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> 6496169689Skan 6497169689Skan * decl2.c (lang_decode_option): Use read_integral_parameter. 6498169689Skan 6499169689Skan1999-02-01 Mark Mitchell <mark@markmitchell.com> 6500169689Skan 6501169689Skan * pt.c (tsubst, case TYPENAME_TYPE): Check TYPE_BEING_DEFINED 6502169689Skan before calling complete_type_or_else. 6503169689Skan 6504169689SkanMon Feb 1 09:49:52 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 6505169689Skan 6506169689Skan * input.c (inline): Don't define, its handled by system.h. 6507169689Skan 6508169689SkanSun Jan 31 20:34:29 1999 Zack Weinberg <zack@rabi.columbia.edu> 6509169689Skan 6510169689Skan * decl2.c: Don't define flag_no_ident here. Don't process 6511169689Skan -f(no-)ident here. 6512169689Skan * cp-tree.h: Don't declare flag_no_ident here. 6513169689Skan * lang-specs.h: Map -Qn to -fno-ident. 6514169689Skan 6515169689Skan1999-01-28 Jason Merrill <jason@yorick.cygnus.com> 6516169689Skan 6517169689Skan * cp-tree.h (struct tree_binding): Replace scope field with a union. 6518169689Skan (BINDING_SCOPE): Adjust. 6519169689Skan * decl.c (BINDING_LEVEL): Adjust. 6520169689Skan 6521169689Skan1999-01-26 Jason Merrill <jason@yorick.cygnus.com> 6522169689Skan 6523169689Skan * pt.c (instantiate_class_template): Set up the DECL_INITIAL of 6524169689Skan member constants. 6525169689Skan 6526169689Skan * init.c (expand_member_init): Pull out TYPE_MAIN_VARIANT in 6527169689Skan a ctor initializer. 6528169689Skan 6529169689Skan * tree.c (equal_functions): Fix name in prototype. 6530169689Skan 6531169689Skan * decl.c (push_local_binding): Add FLAGS argument. 6532169689Skan (pushdecl, push_overloaded_decl): Pass it. 6533169689Skan * decl2.c (do_local_using_decl): Likewise. 6534169689Skan * cp-tree.h: Adjust prototype. 6535169689Skan * decl.c (poplevel): Fix logic. 6536169689Skan 6537169689Skan * decl.c (push_local_binding): Also wrap used decls in a TREE_LIST. 6538169689Skan (poplevel): Handle that. Fix logic for removing TREE_LISTs. 6539169689Skan (cat_namespace_levels): Don't loop forever. 6540169689Skan 6541169689Skan1999-01-25 Richard Henderson <rth@cygnus.com> 6542169689Skan 6543169689Skan * typeck.c (build_reinterpret_cast): Fix typo in duplicated test. 6544169689Skan 6545169689Skan1999-01-25 Jason Merrill <jason@yorick.cygnus.com> 6546169689Skan 6547169689Skan * class.c (resolve_address_of_overloaded_function): Mark the 6548169689Skan chosen function used. 6549169689Skan 6550169689Skan * call.c (build_call): Make sure that a function coming in has 6551169689Skan been marked used already. 6552169689Skan * decl.c (expand_static_init): Call mark_used instead of 6553169689Skan assemble_external. 6554169689Skan * except.c (call_eh_info, do_pop_exception, expand_end_eh_spec, 6555169689Skan alloc_eh_object, expand_throw): Likewise. 6556169689Skan * init.c (build_builtin_delete_call): Likewise. 6557169689Skan * rtti.c (call_void_fn, get_tinfo_fn, build_dynamic_cast_1, 6558169689Skan expand_si_desc, expand_class_desc, expand_ptr_desc, expand_attr_desc, 6559169689Skan expand_generic_desc): Likewise. 6560169689Skan 6561169689Skan1999-01-25 Martin von L�wis <loewis@informatik.hu-berlin.de> 6562169689Skan 6563169689Skan * tree.c (equal_functions): New function. 6564169689Skan (ovl_member): Call it. 6565169689Skan 6566169689Skan1999-01-24 Jason Merrill <jason@yorick.cygnus.com> 6567169689Skan 6568169689Skan * cvt.c (cp_convert_to_pointer): Fix conversion of 0 to pmf. 6569169689Skan 6570169689Skan1999-01-25 Martin von Loewis <loewis@informatik.hu-berlin.de> 6571169689Skan 6572169689Skan * decl.c (decls_match): Return 1 if old and new are identical. 6573169689Skan (push_overloaded_decl): Set OVL_USED when PUSH_USING. 6574169689Skan 6575169689Skan1999-01-24 Jason Merrill <jason@yorick.cygnus.com> 6576169689Skan 6577169689Skan * decl.c (start_function): Make member functions one_only on windows. 6578169689Skan * decl2.c (import_export_decl): Likewise. 6579169689Skan 6580169689Skan * decl.c (grokdeclarator): Don't complain about implicit int in 6581169689Skan a system header. Change same-name field check to not complain in 6582169689Skan a system header instead of within extern "C". 6583169689Skan 6584169689Skan1999-01-21 Mark Mitchell <mark@markmitchell.com> 6585169689Skan 6586169689Skan * cp-tree.h (PUSH_GLOBAL): New macro. 6587169689Skan (PUSH_LOCAL): Likewise. 6588169689Skan (PUSH_USING): Likewise. 6589169689Skan (namespace_bindings_p): Declare. 6590169689Skan (push_overloaded_decl): Likewise. 6591169689Skan * decl.c (push_overloaded_decl): Don't make it static. Check for 6592169689Skan illegal declarations after using declarations here. 6593169689Skan (namespace_bindings_p): Likewise. 6594169689Skan (duplicate_decls): Don't consider declarations from different 6595169689Skan namespaces to be the same. 6596169689Skan (pushdecl): Use symbolic PUSH_ constants in calls to 6597169689Skan push_overloaded_decl. 6598169689Skan (push_overloaded_decl_1): Likewise. 6599169689Skan * decl2.c (validate_nonmember_using_decl): Tweak `std' handling. 6600169689Skan (do_nonmember_using_decl): Check for illegal using declarations 6601169689Skan after ordinary declarations here. 6602169689Skan (do_local_using_decl): Call pushdecl to insert declarations. 6603169689Skan 6604169689Skan1999-01-21 Jason Merrill <jason@yorick.cygnus.com> 6605169689Skan 6606169689Skan * decl.c (grokdeclarator): Fix lang_c -> lang_name_c typo. 6607169689Skan 6608169689Skan1999-01-21 Mark Mitchell <mark@markmitchell.com> 6609169689Skan 6610169689Skan * tree.c (build_cplus_array_type_1): Don't call build_array_type 6611169689Skan for types involving template parameters. 6612169689Skan 6613169689Skan * cp-tree.h (PARM_DECL_EXPR): Delete. 6614169689Skan (convert_default_arg): Change prototype. 6615169689Skan (check_default_argument): Declare. 6616169689Skan (search_tree): Likewise. 6617169689Skan * call.c (convert_default_arg): Take the function to which the 6618169689Skan default argument belongs as a parameter, and do any necessary 6619169689Skan instantiation here, instead of ... 6620169689Skan (build_over_call): Here. 6621169689Skan * decl.c (local_variable_p): New function. 6622169689Skan (check_default_argument): Likewise, split out and tidied from ... 6623169689Skan (grokparms): Here. 6624169689Skan * error.c (dump_expr): Don't set PARM_DECL_EXPR. 6625169689Skan * pt.c (tsubst_call_declarator_parms): New function. 6626169689Skan (for_each_template_parm): Handle ARRAY_REFs. Do the obvious thing 6627169689Skan with CALL_EXPRs, rather than trying to be clever. 6628169689Skan (tsubst): Use tsubst_call_declarator_parms. 6629169689Skan * tree.c (search_tree): Don't make it static. 6630169689Skan * typeck.c (convert_arguments): Use new interface to 6631169689Skan convert_default_arg. 6632169689Skan 6633169689Skan1999-01-20 Mark Mitchell <mark@markmitchell.com> 6634169689Skan 6635169689Skan * error.c (dump_function_decl): Don't print the argument types for 6636169689Skan a function when the verbosity level is negative. 6637169689Skan 6638169689Skan * call.c (build_over_call): Check format attributes at call-time. 6639169689Skan 6640169689Skan * pt.c (tsubst_copy): Fix comment. 6641169689Skan (unify): Don't allow unification with variable-sized arrays. 6642169689Skan 6643169689Skan * semantics.c (finish_stmt_expr): When processing a template make 6644169689Skan the BIND_EXPR long-lived. 6645169689Skan 6646169689Skan1999-01-19 Jason Merrill <jason@yorick.cygnus.com> 6647169689Skan 6648169689Skan * decl2.c (finish_vtable_vardecl): Make vtables comdat here. 6649169689Skan (import_export_vtable): Not here. 6650169689Skan 6651169689Skan1999-01-18 Jason Merrill <jason@yorick.cygnus.com> 6652169689Skan 6653169689Skan * typeck.c (build_component_ref): Wrap an OVERLOAD around a unique 6654169689Skan non-static member function. 6655169689Skan 6656169689Skan1999-01-18 Nathan Sidwell <nathan@acm.org> 6657169689Skan 6658169689Skan * class.c (instantiate_type): Only diagnose illegal address of member 6659169689Skan function if complaining. 6660169689Skan 6661169689Skan * decl.c (lookup_name_real): Remove duplicate code. 6662169689Skan 6663169689Skan1999-01-18 Jason Merrill <jason@yorick.cygnus.com> 6664169689Skan 6665169689Skan * tree.c (copy_template_template_parm): Use permanent_obstack. 6666169689Skan 6667169689Skan1999-01-18 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu> 6668169689Skan 6669169689Skan * pt.c (unify): Remove restrictions on deduction of argument 6670169689Skan of template template parameters. 6671169689Skan 6672169689Skan1999-01-18 Nathan Sidwell <nathan@acm.org> 6673169689Skan 6674169689Skan * rtti.c (build_dynamic_cast_1): Resolve OFFSET_REF exprs. 6675169689Skan 6676169689Skan * class.c (resolve_address_of_overloaded_function): Show list of 6677169689Skan all candidates, when none of them match. 6678169689Skan 6679169689Skan1999-01-18 Chip Salzenberg <chip@perlsupport.com> 6680169689Skan 6681169689Skan * typeck.c (comp_ptr_ttypes_reinterpret): Per ANSI, tighten up 6682169689Skan definition of 'casting away const' in reinterpret_cast<>. 6683169689Skan 6684169689Skan1999-01-18 Graham <grahams@rcp.co.uk> 6685169689Skan 6686169689Skan * cvt.c: Add include for decl.h, remove extern for 6687169689Skan static_aggregates which is now provided by decl.h. 6688169689Skan 6689169689Skan * Makefile.in (cvt.o): Add dependency for decl.h and missing 6690169689Skan dependencies for convert.h and flags.h. 6691169689Skan 6692169689Skan1999-01-18 Nathan Sidwell <nathan@acm.org> 6693169689Skan 6694169689Skan * decl2.c (do_dtors): Set current location to that of the 6695169689Skan decl, for sensible diagnostics and debugging. 6696169689Skan (check_classfn): Issue `incomplete type' error, if 6697169689Skan class is not defined. 6698169689Skan 6699169689Skan1999-01-16 Jason Merrill <jason@yorick.cygnus.com> 6700169689Skan 6701169689Skan * cp-tree.h: Add prototype for bound_pmf_p. 6702169689Skan 6703169689Skan1999-01-16 Jason Merrill <jason@yorick.cygnus.com> 6704169689Skan Manfred Hollstein <manfred@s-direktnet.de> 6705169689Skan 6706169689Skan * decl.c (grokdeclarator): Don't make 'main(){}' an error with only 6707169689Skan -Wreturn-type. 6708169689Skan 6709169689Skan1999-01-16 Nathan Sidwell <nathan@acm.org> 6710169689Skan 6711169689Skan * cp-tree.h (struct lang_type): Added has_mutable flag. 6712169689Skan (CLASSTYPE_HAS_MUTABLE): New macro to access it. 6713169689Skan (TYPE_HAS_MUTABLE_P): New macro to read it. 6714169689Skan (cp_has_mutable_p): Prototype for new function. 6715169689Skan * class.c (finish_struct_1): Set has_mutable from members. 6716169689Skan * decl.c (cp_finish_decl): Clear decl's TREE_READONLY flag, if 6717169689Skan it contains a mutable. 6718169689Skan * typeck.c (cp_has_mutable_p): New function. 6719169689Skan 6720169689Skan1999-01-15 Mark Mitchell <mark@markmitchell.com> 6721169689Skan 6722169689Skan * pt.c (process_template_parm): Ignore top-level qualifiers on 6723169689Skan non-type parameters. 6724169689Skan 6725169689Skan * decl.c (start_function): Use current_function_parms in the call 6726169689Skan to require_complete_type_for_parms, not the probably empty 6727169689Skan DECL_ARGUMENTS. 6728169689Skan 6729169689Skan1999-01-14 Jason Merrill <jason@yorick.cygnus.com> 6730169689Skan 6731169689Skan * semantics.c (finish_asm_stmt): Don't warn about redundant volatile. 6732169689Skan 6733169689Skan * decl2.c (import_export_class): MULTIPLE_SYMBOL_SPACES only means 6734169689Skan that we don't suppress the other copies. 6735169689Skan * lex.c (handle_cp_pragma): Likewise. 6736169689Skan 6737169689Skan1999-01-13 Mark Mitchell <mark@markmitchell.com> 6738169689Skan 6739169689Skan * decl.c (grokdeclarator): Undo 1998-12-14 change. 6740169689Skan * tree.c (build_cplus_array_type_1): Likewise. 6741169689Skan * pt.c (instantiate_class_template): Remove misleading comment. 6742169689Skan (tsubst_aggr_type): Substitute if there are template parameters, 6743169689Skan regardless of whether or not they use template arguments. 6744169689Skan (unify): Likewise, but for unification. 6745169689Skan 6746169689Skan1999-01-12 Richard Henderson <rth@cygnus.com> 6747169689Skan 6748169689Skan * cp-tree.h (flag_permissive): Declare extern. 6749169689Skan 6750169689Skan1999-01-06 Mark Mitchell <mark@markmitchell.com> 6751169689Skan 6752169689Skan * cp-tree.h (IDENTIFIER_TYPENAME_P): Use OPERATOR_TYPENAME_FORMAT 6753169689Skan here. 6754169689Skan (lang_type): Add is_partial_instantiation. Decrease width of 6755169689Skan dummy. 6756169689Skan (PARTIAL_INSTANTIATION_P): New macro. 6757169689Skan (OPERATOR_TYPENAME_P): Remove. 6758169689Skan * decl.c (unary_op_p): Use IDENTIFIER_TYPENAME_P, not 6759169689Skan OPERATOR_TYPENAME_P. 6760169689Skan (grok_op_properties): Likewise. 6761169689Skan * friend.c (do_friend): Handle friends that are member functions 6762169689Skan correctly. 6763169689Skan * lex.c (init_parse): Use OPERATOR_TYPENAME_FORMAT. 6764169689Skan * pt.c (instantiate_class_template): Rework for clarity. Avoid 6765169689Skan leaving TYPE_BEING_DEFINED set in obscure cases. Don't do 6766169689Skan any more partial instantiation than is absolutely necessary for 6767169689Skan implicit typename. Set PARTIAL_INSTANTIATION_P. 6768169689Skan (tsubst_decl): Use IDENTIFIER_TYPENAME_P. 6769169689Skan * semantics.c (begin_class_definition): Handle partial 6770169689Skan specializations of a type that was previously partially 6771169689Skan instantiated. 6772169689Skan 6773169689SkanWed Jan 6 03:18:53 1999 Mark Elbrecht <snowball3@usa.net. 6774169689Skan 6775169689Skan * g++spec.c (LIBSTDCXX): Provide default definition. 6776169689Skan (lang_specific_driver): Use LIBSTDCXX instead of "-lstdc++". 6777169689Skan 6778169689SkanTue Jan 5 22:11:25 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 6779169689Skan 6780169689Skan * Make-lang.in (g++.o): Depend on prefix.h. 6781169689Skan 6782169689Skan1999-01-04 Jason Merrill <jason@yorick.cygnus.com> 6783169689Skan 6784169689Skan * tree.c (bound_pmf_p): New fn. 6785169689Skan * typeck.c (build_c_cast): Use it. 6786169689Skan 6787169689Skan * decl.c (grok_op_properties): Use same_type_p. 6788