ChangeLog revision 117395
1117395Skan2003-07-09 Mark Mitchell <mark@codesourcery.com> 2110611Skan 3117395Skan PR c++/10032 4117395Skan * decl.c (cxx_init_decl_processing): With -pedantic, pedwarns are 5117395Skan still errors. 6110611Skan 7117395Skan PR c++/10527 8117395Skan * error.c (decl_to_string): Do not print default argument 9117395Skan expressions. 10117395Skan 11117395Skan2003-07-10 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 12117395Skan 13117395Skan PR c++/10849 14117395Skan * decl2.c (handle_class_head_apparent_template): New function. 15117395Skan * cp-tree.h (handle_class_head_apparent_template): Add declaration. 16117395Skan * parse.y (class_head_defn): Use it. 17117395Skan * search.c (type_access_control): Revert my 2003-05-25 change. 18117395Skan 19117395Skan2003-07-06 Mark Mitchell <mark@codesourcery.com> 20117395Skan 21117395Skan PR c++/11236 22117395Skan * cvt.c (convert_to_void): Treat an overloaded function like 23117395Skan "((void) 0)" after issuing a diagnostic. 24117395Skan 25117395Skan PR c++/11345 26117395Skan * search.c (lookup_base_r): Remove is_non_public and 27117395Skan within_current_scope parameters. Remove other dead code. 28117395Skan (lookup_base): Adjust call to lookup_base_r. 29117395Skan (adjust_result_of_qualified_name_lookup): Improve comment. 30117395Skan * semantics.c (finish_call_expr): Use maybe_dummy_object. 31117395Skan 32117395Skan2003-07-05 Mark Mitchell <mark@codesourcery.com> 33117395Skan 34117395Skan PR c++/11431 35117395Skan * typeck.c (build_static_cast): Check for reference conversions 36117395Skan earlier. 37117395Skan 38117395Skan2003-07-01 Mark Mitchell <mark@codesourcery.com> 39117395Skan 40117395Skan PR c++/6949 41117395Skan * decl2.c (grokfield): Create TEMPLATE_DECLs for methods in local 42117395Skan classes. 43117395Skan 44117395Skan2003-07-01 Mark Mitchell <mark@codesourcery.com> 45117395Skan 46117395Skan * call.c (resolve_scoped_fn_name): Return error_mark_node for 47117395Skan erroneous cases. 48117395Skan 49117395Skan PR c++/11137 50117395Skan * decl2.c (generate_ctor_or_dtor_function): Tolerate a 51117395Skan non-existant ssdf_decls array. 52117395Skan (finish_file): Call generator_ctor_or_dtor_function when there are 53117395Skan static constructors or destructors and no other static 54117395Skan initializations. 55117395Skan 56117395Skan PR c++/11149 57117395Skan * call.c (resolve_scoped_fn_name): Check that the qualifying scope 58117395Skan is a class type. 59117395Skan 60117395Skan2003-07-01 Mark Mitchell <mark@codesourcery.com> 61117395Skan 62117395Skan PR c++/9559 63117395Skan * decl2.c (grokfield): Do not build NOP_EXPRs around the 64117395Skan error_mark_node. 65117395Skan 66117395Skan2003-06-30 Giovanni Bajo <giovannibajo@libero.it> 67117395Skan 68117395Skan * mangle.c (write_expression): Exit gracefully when trying to 69117395Skan mangle a CALL_EXPR. 70117395Skan 71117395Skan2003-06-30 Giovanni Bajo <giovannibajo@libero.it> 72117395Skan 73117395Skan PR c++/11106 74117395Skan * error.c (dump_decl): Call dump_decl to dump the DECL_NAME for a 75117395Skan USING_DECL, instead of print_tree_identifier. 76117395Skan 77117395Skan2003-06-27 Mark Mitchell <mark@codesourcery.com> 78117395Skan 79117395Skan PR c++/10468 80117395Skan * pt.c (tsubst): Handle qualified TYPEOF_TYPEs correctly. 81117395Skan 82117395Skan PR c++/10796 83117395Skan * decl.c (finish_enum): Implement DR377. 84117395Skan 85117395Skan * decl.c (cp_finish_decl): Don't make variables with reference 86117395Skan type readonly while they are being initialized. 87117395Skan 88117395Skan2003-06-26 Mark Mitchell <mark@codesourcery.com> 89117395Skan 90117395Skan PR c++/11332 91117395Skan * typeck.c (build_static_cast): Avoid returning expressions with 92117395Skan reference type. 93117395Skan 94117395Skan2003-06-25 Mark Mitchell <mark@codesourcery.com> 95117395Skan 96117395Skan PR c++/10990 97117395Skan * search.c (lookup_base_r): Rely on accessible_p, rather than 98117395Skan trying to emulate that logic here. 99117395Skan 100117395Skan PR c++/10931 101117395Skan * call.c (convert_like): Pass issue_conversion_warnings. 102117395Skan (convert_like_with_context): Likewise. 103117395Skan (convert_like_real): Add issue_conversion_warnings parameter. 104117395Skan (perform_direct_initialization_if_possible): New function. 105117395Skan * cp-tree.h (perform_direct_initialization_if_possible): Declare it. 106117395Skan * typeck.c (check_for_casting_away_constness): New function. 107117395Skan (build_static_cast): Rewrite. 108110611Skan 109117395Skan2003-06-23 Mark Mitchell <mark@codesourcery.com> 110117395Skan 111117395Skan PR c++/5754 112117395Skan * parse.y (structsp): Improve error handling of invalid nested 113117395Skan template classes. 114117395Skan 115117395Skan2003-06-23 Jakub Jelinek <jakub@redhat.com> 116117395Skan 117117395Skan * mangle.c: Include ggc.h, gt-cp-mangle.h. 118117395Skan (mangle_conv_op_name_for_type): Use htab_create_ggc instead of 119117395Skan htab_create. 120117395Skan * config-lang.in (gtfiles): Add cp/mangle.c. 121117395Skan * Make-lang.in (gt-cp-mangle.h): Depend on s-gtype. 122117395Skan (cp/mangle.o): Depend on gt-cp-mangle.h. 123117395Skan 124117395Skan2003-06-23 Jakub Jelinek <jakub@redhat.com> 125117395Skan 126117395Skan * mangle.c (hash_type): val is the TREE_LIST itself, not a pointer 127117395Skan to it. 128117395Skan 129117395Skan2003-06-21 Gabriel Dos Reis <gdr@integrable-solutions.net> 130117395Skan 131117395Skan PR c++/10784 132117395Skan * call.c (joust): Warn about choosing conversion sequence only if 133117395Skan -Wconversion. 134110611Skan 135117395Skan2003-06-21 Gabriel Dos Reis <gdr@integrable-solutions.net> 136110611Skan 137117395Skan PR c++/10864 138117395Skan * call.c (op_error): Tidy. 139117395Skan * error.c (dump_expr): Properly format 'T()' when T is an 140117395Skan aggregate type. 141117395Skan 142117395Skan2003-06-21 Gabriel Dos Reis <gdr@integrable-solutions.net> 143117395Skan 144117395Skan PR c++/10915 145117395Skan * decl.c (grok_op_properties): Warn possible confusing conversion 146117395Skan only if -Wconversion. 147117395Skan 148117395Skan2003-06-20 Mark Mitchell <mark@codesourcery.com> 149117395Skan 150117395Skan PR c++/10845 151117395Skan * pt.c (try_class_unification): Correct handling of member class 152117395Skan templates. 153117395Skan 154117395Skan2003-06-19 Mark Mitchell <mark@codesourcery.com> 155117395Skan 156117395Skan PR c++/10939 157117395Skan * Make-lang.in (decl.o): Depend on input.h. 158117395Skan * decl.c (input.h): Include it. 159117395Skan (cp_finish_decl): Revert previous change: 160117395Skan 2003-06-19 Mark Mitchell <mark@codesourcery.com> 161117395Skan * decl.c (cp_finish_decl): Remove support for RESULT_DECLs. 162117395Skan Don't check building_stmt_tree. 163117395Skan * pt.c (tsubst_decl): Do not try to substitute into non-dependent 164117395Skan functions. 165117395Skan 166117395Skan PR c++/9649 167117395Skan * cp-tree.h (pushdecl_class_level): Change prototype. 168117395Skan (push_class_level_binding): Likewise. 169117395Skan * decl.c (add_binding): Reject duplicate static data members. 170117395Skan (pushdecl_class_level): Return a value indicating whether or not 171117395Skan the binding was valid. 172117395Skan (push_class_level_binding): Likewise. 173117395Skan * semantics.c (finish_member_declaration): Don't keep invalid 174117395Skan declarations. 175117395Skan 176117395Skan2003-06-19 Mark Mitchell <mark@codesourcery.com> 177117395Skan 178117395Skan PR c++/11041 179117395Skan * call.c (initialize_reference): Do not use cp_finish_decl to emit 180117395Skan temporary variables. 181117395Skan * cp-tree.h (static_aggregates): Declare. 182117395Skan (pushdecl_top_level_and_finish): Likewise. 183117395Skan * decl.c (pushdecl_top_level_1): New function. 184117395Skan (pushdecl_top_level): Use it. 185117395Skan (pushdecl_top_level_and_finish): New function. 186117395Skan (initialize_local_var): Remove redundant code. 187117395Skan (cp_finish_decl): Remove support for RESULT_DECLs. Don't check 188117395Skan building_stmt_tree. 189117395Skan * decl.h (static_aggregates): Remove. 190117395Skan * decl2.c (get_guard): Use pushdecl_top_level_and_finish. 191117395Skan * rtti.c (get_tinfo_decl): Use pushdecl_top_level_and_finish. 192117395Skan (tinfo_base_init): Likewise. 193117395Skan 194117395Skan2003-06-19 Matt Austern <austern@apple.com> 195117395Skan 196117395Skan PR c++/11228 197117395Skan * init.c (build_zero_init): Assert that number of array elements 198117395Skan is an integer constant. 199117395Skan (build_default_init) Don't use build_zero_init for arrays with 200117395Skan variable number of elements. 201117395Skan 202117395Skan2003-06-17 Mark Mitchell <mark@codesourcery.com> 203117395Skan 204117395Skan * mangle.c (mangle_conv_op_name_for_type): Correct sprintf format 205117395Skan string again. 206117395Skan 207117395Skan2003-06-17 Mark Mitchell <mark@codesourcery.com> 208117395Skan 209117395Skan * mangle.c (mangle_conv_op_name_for_type): Correct sprintf format 210117395Skan string. 211117395Skan 212117395Skan2003-06-17 Jason Merrill <jason@redhat.com> 213117395Skan 214117395Skan PR c++/10929 215117395Skan * decl.c (grokfndecl): Don't mark a function inline for 216117395Skan -finline-functions if it isn't defined. 217117395Skan 218117395Skan2003-06-17 Mark Mitchell <mark@codesourcery.com> 219117395Skan 220117395Skan PR c++/10712 221117395Skan * class.c (handle_using_decl): Robustify. 222117395Skan 223117395Skan PR c++/11105 224117395Skan * cp-tree.h (DECL_CONV_FN_TYPE): New method. 225117395Skan * decl.c (lookup_name_real): Backport conversion operator code 226117395Skan from mainline. 227117395Skan * mangle.c (struct globals): Remove internal_mangling_p. 228117395Skan (write_unqualified_name): Use DECL_CONV_FN_TYPE. 229117395Skan (write_template_parm): Don't write out the level number. 230117395Skan (conv_type_names): New variable. 231117395Skan (hash_type): New function. 232117395Skan (compare_type): Likewise. 233117395Skan (mangle_conv_op_name_for_type): Don't try to mangle conversion 234117395Skan operator names. 235117395Skan * search.c (lookup_conversion_operator): New function. 236117395Skan (lookup_fnfields_1): Use it. 237117395Skan 238117395Skan2003-06-12 Mark Mitchell <mark@codesourcery.com> 239117395Skan 240117395Skan PR c++/10635 241117395Skan * typeck.c (build_c_cast): Check that the destination type is 242117395Skan complete. 243117395Skan 244117395Skan2003-06-10 Jason Merrill <jason@redhat.com> 245117395Skan 246117395Skan PR c++/10968 247117395Skan * pt.c (mark_decl_instantiated): Clear DECL_COMDAT. 248117395Skan 249117395Skan2003-06-09 Zack Weinberg <zack@codesourcery.com> 250117395Skan 251117395Skan PR 8861 252117395Skan * mangle.c (write_real_cst): New function. Implement 253117395Skan ABI-compliant mangling of floating-point literals when 254117395Skan -fabi-version>=2; provide backward compatibility with 3.3 when 255117395Skan -fabi-version=1 (with warning). Clarify commentary. 256117395Skan (write_template_arg_literal): Use write_real_cst. 257117395Skan 258117395Skan2003-06-08 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 259117395Skan 260117395Skan PR c++/11039 261117395Skan * decl2.c (handle_class_head): Remove implicitness in typename 262117395Skan appeared as elaborated type specifier in declaration. 263117395Skan 264117395Skan2003-06-03 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 265117395Skan 266117395Skan PR c++/10940 267117395Skan * pt.c (check_explicit_specialization): Check for 'static' 268117395Skan earlier. 269117395Skan 270117395Skan2003-05-31 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 271117395Skan 272117395Skan PR c++/10956 273117395Skan * pt.c (instantiate_decl): Don't use full template arguments if 274117395Skan we are dealing with specializations. 275117395Skan 276117395Skan2003-05-29 Gabriel Dos Reis <gdr@integrable-solutions.net> 277117395Skan 278117395Skan * decl.c (ENABLE_CHECKING_SCOPES): New macro. 279117395Skan (binding_depth): Unconditionally define. 280117395Skan (is_class_level): Likewise. 281117395Skan (indent): Likewise. Take an indenting parameter. 282117395Skan (push_binding_level): Remove conditional definittion. 283117395Skan (pop_binding_level): Likewise. 284117395Skan (suspend_binding_level): Likewise. 285117395Skan (resume_binding_level): Likewise. 286117395Skan (pushlevel): Likewise. 287117395Skan (pushlevel_class): Likewise. 288117395Skan (poplevel_class): Likewise. 289117395Skan (pop_everything): Likewise. 290117395Skan 291117395Skan2003-05-27 Gabriel Dos Reis <gdr@integrable-solutions.net> 292117395Skan 293117395Skan * decl.c (global_scope_p): New macro. 294117395Skan (pop_binding_level): Use it. 295117395Skan (suspend_binding_level): Likewise. 296117395Skan (global_bindings_p): Likewise. 297117395Skan (print_other_binding_stack): Likewise. 298117395Skan (print_binding_stack): Likewise. 299117395Skan (maybe_push_to_top_level): Likewise. 300117395Skan (pushdecl_namespace_level): Likewise. 301117395Skan (start_decl): Likewise. 302117395Skan (cp_finish_decl): Likewise. 303117395Skan (start_function): Likewise. 304117395Skan (cxx_init_decl_processing): Don't refer to global_binding_level. 305117395Skan (global_binding_level): Remove. 306117395Skan 307117395Skan2003-05-25 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 308117395Skan 309117395Skan PR c++/10849 310117395Skan * search.c (type_access_control): Don't check access when 311117395Skan processing_specialization. 312117395Skan 313117395Skan2003-05-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 314117395Skan 315117395Skan PR c++/10682 316117395Skan * pt.c (instantiate_class_template): Use DECL_ARTIFICIAL to 317117395Skan check for implicitly created typedef to an enum. 318117395Skan 319117395Skan2003-05-20 Gabriel Dos Reis <gdr@integrable-solutions.net> 320117395Skan 321117395Skan * decl.c (free_binding_entry): Fix thinko. 322117395Skan 323117395Skan2003-05-19 Gabriel Dos Reis <gdr@integrable-solutions.net> 324117395Skan 325117395Skan * cp-tree.h (struct binding_entry_s): New datatype. 326117395Skan (binding_table): Declare. 327117395Skan (binding_entry): Likewise. 328117395Skan (bt_foreach_proc): Likewise. 329117395Skan (binding_table_foreach): Likewise. 330117395Skan (binding_table_find): Likewise. 331117395Skan (cxx_remember_type_decls): Likewise. 332117395Skan (CLASSTYPE_TAGS): Remove. 333117395Skan (CLASSTYPE_NESTED_UDTS): New macro. 334117395Skan (struct lang_type_class): Remove tags field. Add nested_types. 335117395Skan * decl.c (ENTRY_INDEX): New macro. 336117395Skan (free_binding_entry): New free list. 337117395Skan (binding_entry_make): New function. 338117395Skan (binding_entry_free): Likewise. 339117395Skan (struct binding_table_s): New datatype. 340117395Skan (SCOPE_DEFAULT_HT_SIZE): New macro. 341117395Skan (CLASS_SCOPE_HT_SIZE): Likewise. 342117395Skan (NAMESPACE_ORDINARY_HT_SIZE): Likewise. 343117395Skan (NAMESPACE_STD_HT_SIZE): Likewise. 344117395Skan (GLOBAL_SCOPE_HT_SIZE): Likewise. 345117395Skan (binding_table_construct): New function. 346117395Skan (binding_table_free): Likewise. 347117395Skan (binding_table_new): Likewise. 348117395Skan (binding_table_expand): Likewise. 349117395Skan (binding_table_insert): Likewise. 350117395Skan (binding_table_find): Likewise. 351117395Skan (binding_table_find_anon_type): Likewise. 352117395Skan (binding_table_reverse_maybe_remap): Likewise. 353117395Skan (binding_table_remove_anonymous_types): Likewise. 354117395Skan (binding_table_foreach): Likewise. 355117395Skan (struct cp_binding_level): Remove tags field. Add type_decls. 356117395Skan (pop_binding_level): Free binding_entries if possible. 357117395Skan (kept_level_p): Tidy. 358117395Skan (poplevel): Remove unused variable tags. 359117395Skan (bt_print_entry): New function. 360117395Skan (print_binding_level): Use it. 361117395Skan (push_namespace): Construct binding table. 362117395Skan (maybe_process_template_type_declaration): Tidy. 363117395Skan (pushtag): Likewise. 364117395Skan (clear_anon_tags): Likewise. 365117395Skan (cxx_remember_type_decls): New function. 366117395Skan (lookup_tag): Tidy. 367117395Skan (lookup_tag_reverse): Likewise. 368117395Skan (cxx_init_decl_processing): Construct binding_table for the global 369117395Skan scope. 370117395Skan (store_parm_decls): Remove pointless code. 371117395Skan (gettags): Remove. 372117395Skan (storetags): Likewise. 373117395Skan * class.c (unreverse_member_declarations): Don't touch 374117395Skan CLASSTYPE_TAGS. 375117395Skan (pushclass): Remember CLASSTYPE_NESTED_UTDS. 376117395Skan * pt.c (instantiate_class_template): Remove reference to 377117395Skan CLASSTYPE_TAGS. Remeber CLASSTYPE_NESTED_UTDS. 378117395Skan (bt_instantiate_type_proc): New function. 379117395Skan (do_type_instantiation): Use it. 380117395Skan * search.c (lookup_field_r): Use binding_table_find. 381117395Skan * semantics.c (begin_class_definition): Remove reference to 382117395Skan CLASSTYPE_TAGS. Nullify CLASSTYPE_NESTED_UTDS. 383117395Skan 384117395Skan2003-05-15 Jason Merrill <jason@redhat.com> 385117395Skan 386117395Skan PR c++/5388 387117395Skan * call.c (conditional_conversion): Don't consider implicit 388117395Skan conversions if T2 is a base of T1. 389117395Skan * cp-tree.h (DERIVED_FROM_P, UNIQUELY_DERIVED_FROM_P): Make boolean. 390117395Skan (ACCESSIBLY_UNIQUELY_DERIVED_P, PUBLICLY_UNIQUELY_DERIVED_P): Likewise. 391117395Skan 392117395Skan PR c++/10661 393117395Skan * pt.c (instantiate_class_template): Also instantiate our 394117395Skan enclosing class. 395117395Skan 396117395Skan2003-05-13 Release Manager 397117395Skan 398117395Skan * GCC 3.3 Released. 399117395Skan 400117395Skan2003-05-02 Richard Henderson <rth@redhat.com> 401117395Skan 402117395Skan PR c++/10570 403117395Skan * cfns.gperf: Comment out POSIX thread cancellation points, 404117395Skan plus abort and raise. 405117395Skan * cfns.h: Regenerate. 406117395Skan 407117395Skan2003-05-01 Mark Mitchell <mark@codesourcery.com> 408117395Skan 409117395Skan * decl2.c (comdat_linkage): Don't externalize explicit 410117395Skan instantiations. 411117395Skan 412117395Skan2003-04-29 Mark Mitchell <mark@codesourcery.com> 413117395Skan 414117395Skan PR c++/10551 415117395Skan * pt.c (mark_decl_instantiated): Defer all explicit instantiations 416117395Skan that have not yet been written out. 417117395Skan 418117395Skan PR c++/10549 419117395Skan * class.c (layout_class_type): Mark overlong bitfields as having 420117395Skan the maximum size permitted by their type, after layout. 421117395Skan 422117395Skan2003-04-29 Mark Mitchell <mark@codesourcery.com> 423117395Skan 424117395Skan PR c++/10527 425117395Skan * error.c (dump_expr): Correctly handling of NEW_EXPR.4 426117395Skan 427117395Skan2003-04-29 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 428117395Skan 429117395Skan * lang-options.h: Fix typo. 430117395Skan 431117395Skan2003-04-29 Mark Mitchell <mark@codesourcery.com> 432117395Skan 433117395Skan PR c++/10515 434117395Skan * cp-tree.h (lookup_field_1): Declare it. 435117395Skan * search.c (lookup_field_1): Make it public. 436117395Skan * decl.c (reshape_init): Handle designated initializers. 437117395Skan 438117395Skan2003-04-29 Mark Mitchell <mark@codesourcery.com> 439117395Skan 440117395Skan * decl.c (maybe_commonize_var): Further tweak support for systems 441117395Skan without weak symbols. 442117395Skan 443117395Skan2003-04-27 Mark Mitchell <mark@codesourcery.com> 444117395Skan 445117395Skan * decl.c (maybe_commonize_var): Fix thinko in last patch. 446117395Skan 447117395Skan PR c++/10506 448117395Skan * method.c (use_thunk): Decrement immediate_size_expand. 449117395Skan 450117395Skan PR c++/10503 451117395Skan * cp-tree.h (DECL_VAR_MARKED_P): New macro. 452117395Skan (DECL_MAYBE_TEMPLATE): Remove. 453117395Skan * class.c (fixed_type_or_null): Avoid infinite recursion. 454117395Skan 455117395Skan2003-04-27 Mark Mitchell <mark@codesourcery.com> 456117395Skan 457117395Skan * decl.c (maybe_commonize_var): Make the code match the comments. 458117395Skan * pt.c (instantiate_decl): Move call to import_export_decl. 459117395Skan 460117395Skan2003-04-25 Mark Mitchell <mark@codesourcery.com> 461117395Skan 462117395Skan * decl2.c (finish_file): Don't call import_export_decl for 463117395Skan functions that are not defined. 464117395Skan (handle_class_head): Robustify. 465117395Skan * pt.c (instantiate_decl): Do not call cp_finish_decl for 466117395Skan variables that are not defined. 467117395Skan 468117395Skan2003-04-23 Mark Mitchell <mark@codesourcery.com> 469117395Skan 470117395Skan PR c++/10471 471117395Skan * call.c (build_cxx_call): Robustify. 472117395Skan 473117395Skan2003-04-23 Mark Mitchell <mark@codesourcery.com> 474117395Skan 475117395Skan PR c++/10451 476117395Skan * decl.c (grokdeclarator): Correct logic for "mutable" errors. 477117395Skan 478117395Skan2003-04-22 Mark Mitchell <mark@codesourcery.com> 479117395Skan 480117395Skan PR c++/10446 481117395Skan * search.c (lookup_fnfields_1): Handle empty slots in the method 482117395Skan vector. 483117395Skan 484117395Skan2003-04-22 Mark Mitchell <mark@codesourcery.com> 485117395Skan 486117395Skan PR c++/10428 487117395Skan * decl.c (check_elaborated_type_specifier): New function, split 488117395Skan out from ... 489117395Skan (xref_tag): ... here. Use the new function in more places. 490117395Skan 491117395Skan2003-04-21 Mark Mitchell <mark@codesourcery.com> 492117395Skan 493117395Skan * call.c (build_over_call): Use build_cxx_call. 494117395Skan (build_cxx_call): New method, split out of build_over_call. 495117395Skan * cp-tree.h (language_function): Add can_throw. 496117395Skan (build_cxx_call): Declare it. 497117395Skan * decl.c (finish_function): If a function does not contain any 498117395Skan calls to functions that can throw an exception, indicate that 499117395Skan fact. 500117395Skan * decl2.c (mark_used): Do not defer the instantiation of 501117395Skan functions, if the current function does not throw. 502117395Skan * optimize.c (maybe_clone_body): Copy TREE_NOTHROW to the clones. 503117395Skan * pt.c (instantiate_decl): Make sure import_export_decl is called 504117395Skan before emitting things. 505117395Skan * rtti.c (throw_bad_cast): Use build_cxx_call. 506117395Skan (build_dynamic_cast_1): Likewise. 507117395Skan * typeck.c (build_function_call): Likewise. 508117395Skan 509117395Skan2003-04-21 Nathan Sidwell <nathan@codesourcery.com> 510117395Skan 511117395Skan PR c++/9881 512117395Skan * typeck.c (build_unary_op): Fold all COMPONENT_REF addr 513117395Skan expressions. Reverts my 2002-08-08 patch. 514117395Skan 515117395Skan2003-04-20 Nathan Sidwell <nathan@codesourcery.com> 516117395Skan 517117395Skan PR c++/10405 518117395Skan * search.c (lookup_field_1): Final scan goes backwards for 519117395Skan types, forwards for non-types. 520117395Skan 521117395Skan2003-04-15 Jason Merrill <jason@redhat.com> 522117395Skan 523117395Skan * decl2.c (mark_used): Don't instantiate anything if 524117395Skan skip_evaluation. 525117395Skan 526117395Skan2003-04-15 Mark Mitchell <mark@codesourcery.com> 527117395Skan 528117395Skan * init.c (build_new_1): Use nullexp instead of null_node to avoid 529117395Skan unwanted macro expansion. 530117395Skan 531117395Skan2003-04-14 Ziemowit Laski <zlaski@apple.com> 532117395Skan 533117395Skan * tree.c (build_cplus_array_type_1): Do not call 534117395Skan uses_template_parms() on a NULL index_type. 535117395Skan 536117395Skan2003-04-14 Andreas Schwab <schwab@suse.de> 537117395Skan 538117395Skan * init.c (build_new_1): Test use_cookie instead of cookie_size to 539117395Skan avoid code-gen bug on ia64. 540117395Skan 541117395Skan2003-04-13 Mark Mitchell <mark@codesourcery.com> 542117395Skan 543117395Skan PR c++/10300 544117395Skan * init.c (build_new_1): Correct logic for checking whether the 545117395Skan return value from the allocation function was zero. 546117395Skan 547117395Skan2003-03-31 Mark Mitchell <mark@codesourcery.com> 548117395Skan 549117395Skan PR c++/10278 550117395Skan * spew.c (yyerror): Avoid crashing at all costs. 551117395Skan 552117395Skan2003-03-31 Jason Merrill <jason@redhat.com> 553117395Skan 554117395Skan PR java/10145 555117395Skan * class.c (check_field_decl): Don't set DECL_ALIGN. 556117395Skan 557117395Skan2003-03-30 Mark Mitchell <mark@codesourcery.com> 558117395Skan 559117395Skan PR c++/7647 560117395Skan * search.c (lookup_field_1): Add want_type parameter. 561117395Skan (lookup_field_r): Adjust call to lookup_field_1. 562117395Skan 563117395Skan2003-03-28 Jason Merrill <jason@redhat.com> 564117395Skan 565117395Skan PR c++/10245 566117395Skan * cvt.c (force_rvalue): New fn. 567117395Skan * call.c (build_conditional_expr): Use it. 568117395Skan * cp-tree.h: Declare it. 569117395Skan 570117395Skan2003-03-28 Nathan Sidwell <nathan@codesourcery.com> 571117395Skan 572117395Skan PR c++/10047 573117395Skan * decl2.c (finish_file): Don't warn about explicitly instantiated 574117395Skan inline decls. 575117395Skan 576117395Skan2003-03-27 Nathan Sidwell <nathan@codesourcery.com> 577117395Skan 578117395Skan PR c++/10158 579117395Skan * spew.c (snarf_method):Set DECL_INITIALIZED_IN_CLASS for 580117395Skan members. 581117395Skan * pt.c (instantiate_decl): Only reduce the template args for 582117395Skan friends that are not defined in class. 583117395Skan 584117395Skan2003-03-24 Nathan Sidwell <nathan@codesourcery.com> 585117395Skan 586117395Skan PR c++/9898, PR c++/383, DR 322 587117395Skan * pt.c (maybe_adjust_types_for_deduction) [DEDUCE_CONV]: Look 588117395Skan through reference types on both PARM and ARG. 589117395Skan 590117395Skan PR c++/10199 591117395Skan * call.c (build_method_call): Deal with LOOKUP_EXPR. 592117395Skan * semantics.c (finish_object_call_expr): Use build_method_call 593117395Skan when in a template decl. 594117395Skan 595117395Skan2003-03-23 Mark Mitchell <mark@codesourcery.com> 596117395Skan 597117395Skan PR c++/7086 598117395Skan * semantics.c (genrtl_named_return_value): Adjust calls to 599117395Skan put_var_into_stack. 600117395Skan * typeck.c (cxx_mark_addressable): Likewise. 601117395Skan 602117395Skan2003-03-20 Mark Mitchell <mark@codesourcery.com> 603117395Skan 604117395Skan PR c++/6412 605117395Skan * cp/decl2.c (arg_assoc_class): Correct check for namespace-scope 606117395Skan friends. 607117395Skan * cp/pt.c (instantiate_class_template): Fix formatting. 608117395Skan 609117395Skan2003-03-19 Jason Merrill <jason@redhat.com> 610117395Skan 611117395Skan PR c++/8316, c++/9315, c++/10136 612117395Skan * call.c (joust): Improve wording. 613117395Skan 614117395Skan2003-03-18 Roger Sayle <roger@eyesopen.com> 615117395Skan 616117395Skan PR c++/10031 617117395Skan * decl.c (duplicate_decls): Use the new type when prototyping 618117395Skan anticipated decls, even when the types match. This defines the 619117395Skan exception list for the built-in function. 620117395Skan 621117395Skan2003-03-17 Jason Merrill <jason@redhat.com> 622117395Skan 623117395Skan PR c++/10091 624117395Skan * typeck.c (build_class_member_access_expr): Compare 625117395Skan TYPE_MAIN_VARIANTs. 626117395Skan 627117395Skan * decl.c (finish_function): Don't skip a block. 628117395Skan 629117395Skan PR c++/9993 630117395Skan * decl.c (finish_function): Only allow the NRVO to use variables 631117395Skan declared at function scope. 632117395Skan 633117395Skan2003-03-17 Nathan Sidwell <nathan@codesourcery.com> 634117395Skan 635117395Skan PR c++/9629 636117395Skan * cp-tree.h (struct language_function): Add in_base_initializer. 637117395Skan (in_base_initializer): define it. 638117395Skan (expand_member_init): Remove INIT param. 639117395Skan * init.c (expand_member_init): Remove INIT param, return the member. 640117395Skan (emit_mem_initializers): Set in_base_initializer. 641117395Skan * class.c (build_base_path): Check in_base_initializer. 642117395Skan * parse.y (begin_member_init): New reduction. 643117395Skan (member_init): Use it. 644117395Skan * pt.c (tsubst_initializer_list): Set in_base_initializer. 645117395Skan 646117395Skan2003-03-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 647117395Skan 648117395Skan PR c++/6440 649117395Skan * pt.c (maybe_process_partial_specialization): Handle 650117395Skan member class template when enclosing class template is 651117395Skan explicit specialized. 652117395Skan (most_general_template): Stop looking when DECL is already 653117395Skan specialized. 654117395Skan 655117395Skan2003-03-13 Jason Merrill <jason@redhat.com> 656117395Skan 657117395Skan PR c++/9420 658117395Skan * search.c (lookup_conversions): Call complete_type here. 659117395Skan * call.c (implicit_conversion): Not here. 660117395Skan 661117395Skan2003-03-13 Jason Merrill <jason@redhat.com> 662117395Skan 663117395Skan PR c++/9336 664117395Skan * decl2.c (lookup_arg_dependent): Handle error_mark_node. 665117395Skan 666117395Skan2003-03-13 Mark Mitchell <mark@codesourcery.com> 667117395Skan 668117395Skan * decl2.c (do_nonmember_using_decl): Correct handling of 669117395Skan simultaneous type/non-type bindings. 670117395Skan 671117395Skan2003-03-13 Mark Mitchell <mark@codesourcery.com> 672117395Skan 673117395Skan * call.c (initialize_reference): Remove bogus assertion. 674117395Skan * decl.c (build_ptrmemfunc_type): Revert change of 2003-03-09. 675117395Skan 676117395Skan2003-03-12 Andrew Lewycky <andrew@mxc.ca> 677117395Skan 678117395Skan PR c++/7050 679117395Skan * expr.c (cxx_expand_expr): Return const0_rtx for throw 680117395Skan expressions. 681117395Skan 682117395Skan2003-03-11 Mark Mitchell <mark@codesourcery.com> 683117395Skan 684117395Skan PR c++/9474 685117395Skan * decl2.c (do_nonmember_using_decl): Do not call duplicate decls 686117395Skan to merge old and new declarations. 687117395Skan 688117395Skan2003-03-11 Mark Mitchell <mark@codesourcery.com> 689117395Skan 690117395Skan PR c++/9924 691117395Skan * decl2.c (do_nonmember_using_decl): Ignore anticipated builtins. 692117395Skan 693117395Skan2003-03-11 Jason Merrill <jason@redhat.com> 694117395Skan 695117395Skan PR c++/9820 696117395Skan * search.c (lookup_member): Fix handling of functions in a class 697117395Skan being defined. 698117395Skan 699117395Skan2003-03-11 Mark Mitchell <mark@codesourcery.com> 700117395Skan 701117395Skan PR c++/8700 702117395Skan * call.c (print_z_candidates): Avoid printing duplicates. 703117395Skan 704117395Skan2003-03-11 Jason Merrill <jason@redhat.com> 705117395Skan 706117395Skan PR c++/8660 707117395Skan * decl2.c (check_classfn): A member template only matches a 708117395Skan member template. 709117395Skan 710117395Skan2003-03-10 Devang Patel <dpatel@apple.com> 711117395Skan 712117395Skan PR c++/9394 713117395Skan * g++spec.c (lang_specific_driver): Use DEFAULT_WORD_SWITCH_TAKES_ARG. 714117395Skan 715117395Skan2003-03-10 Jason Merrill <jason@redhat.com> 716117395Skan 717117395Skan PR c++/9798 718117395Skan * decl.c (push_using_directive): Push before recursing. 719117395Skan 720117395Skan PR c++/9868 721117395Skan * call.c (resolve_scoped_fn_name): Handle the case of a function 722117395Skan pointer member. 723117395Skan * init.c (build_offset_ref): Handle getting a FIELD_DECL for NAME. 724117395Skan 725117395Skan * decl2.c (build_offset_ref_call_from_tree): Only mess with 'this' 726117395Skan argument in the pointer-to-member case. 727117395Skan 728117395Skan2003-03-09 Mark Mitchell <mark@codesourcery.com> 729117395Skan 730117395Skan PR c++/9373 731117395Skan * cp-lang.c (cxx_get_alias_set): Use alias set zero for 732117395Skan pointers to member functions. 733117395Skan 734117395Skan PR c++/8534 735117395Skan * decl.c (build_ptrmemfunc_type): Do not allow default arugments 736117395Skan in pointer-to-member-function types. 737117395Skan 738117395Skan2003-03-09 Mark Mitchell <mark@codesourcery.com> 739117395Skan 740117395Skan PR c++/9912 741117395Skan * cp-tree.h (is_ancestor): New function. 742117395Skan * decl2.c (is_namespace_ancestor): Rename to ... 743117395Skan (is_ancestor): ... this. 744117395Skan (namespace_ancestor): Use it. 745117395Skan (set_decl_namespace): Likewise. 746117395Skan (handle_class_head): Check for invalid class definitions. 747117395Skan 748117395Skan2003-03-10 Gabriel Dos Reis <gdr@integrable-solutions.net> 749117395Skan 750117395Skan Compile-time improvement: 2/n. 751117395Skan * cp-tree.h (struct cxx_binding): New datatype; 752117395Skan (struct lang_identifier): Use it. 753117395Skan (LOCAL_BINDING_P): Adjust definition. 754117395Skan (INHERITED_VALUE_BINDING_P): Likewise. 755117395Skan (BINDING_SCOPE): Likewise. 756117395Skan (BINDING_HAS_LEVEL_P): Likewise. 757117395Skan (BINDING_VALUE): Likewise. 758117395Skan (BINDING_TYPE): Likewise. 759117395Skan (IDENTIFIER_VALUE): Likewise. 760117395Skan (struct tree_binding): Remove. 761117395Skan (TS_CP_BINDING): Likewise. 762117395Skan ((union lang_tree_node): Remove field "binding". 763117395Skan (cxx_binding_clear): New macro. 764117395Skan (binding_for_name): Adjust return type. 765117395Skan (qualified_lookup_using_namespace): Adjust prototype. 766117395Skan (lookup_using_namespace): Adjust prototype. 767117395Skan (cxx_scope_find_binding_for_name): Declare. 768117395Skan * cp-tree.def: Remove CPLUS_BINDING definition. 769117395Skan * parse.y (parse_scoped_id): Don't type-abuse of 'id'. Allocate 770117395Skan temporary cxx_binding on stack. Simplify. 771117395Skan * decl.c (push_binding): Adjust local variable type. 772117395Skan (add_binding): Likewise. 773117395Skan (push_class_binding): Likewise. 774117395Skan (pop_binding): Likewise. 775117395Skan (poplevel): Likewise. 776117395Skan (poplevel_class): Likewise. 777117395Skan (free_bindings): Adjust type. 778117395Skan (find_binding): Adjust return type, add a third parameter. Remove 779117395Skan non-useful assertion now that we use static typing. 780117395Skan (cxx_scope_find_binding_for_name): New function. 781117395Skan (binding_for_name): Use it. Adjust local variable type. Simplify. 782117395Skan (namespace_binding): Simplify. 783117395Skan (set_namespace_binding): Likewise. 784117395Skan (set_identifier_type_value_with_scope): Adjust local variable type. 785117395Skan (lookup_tag): Don't type-abuse of local variable 'old'. 786117395Skan (lookup_namespace_name): Likewise. Allocate binding on stack. 787117395Skan (select_decl): Adjust prototype. 788117395Skan (unqualified_namespace_lookup): Allocate binding on stack. 789117395Skan Don't type-abuse of local variable 'val'. 790117395Skan (lookup_name_real): Likewise. 791117395Skan (maybe_inject_for_scope_var): Adjust local variable type. 792117395Skan (cp_tree_node_structure): Remove CPLUS_BINDING case label. 793117395Skan (namespace_binding): Adjust logic, simplify. 794117395Skan (BINDING_LEVEL): Adjust definition. 795117395Skan (push_class_level_binding): Adjust local variable type. 796117395Skan (struct cxx_saved_binding): Adjust field 'binding' type. 797117395Skan * decl2.c (ambiguous_decl): Adjust prototype. 798117395Skan (lookup_using_namespace): Adjust local variable type. 799117395Skan (qualified_lookup_using_namespace): Catch type error and correct 800117395Skan ensueing logic error. 801117395Skan (do_nonmember_using_decl): Adjust local variable type. Allocate 802117395Skan temporary cxx_binding on stack. 803117395Skan (do_toplevel_using_decl): Adjust local variable type. 804117395Skan * ptree.c (cxx_print_cxx_binding): New function. 805117395Skan (cxx_print_identifier): Use it. 806117395Skan (cxx_print_xnode): Delete CPLUS_BINDING case label. 807117395Skan 808117395Skan2003-03-09 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 809117395Skan 810117395Skan PR c++/9970 811117395Skan * decl.c (duplicate_decls): Only copy DECL_THUNKS for virtual 812117395Skan functions. 813117395Skan 814117395Skan2003-03-07 Matt Austern <austern@apple.com> 815117395Skan 816117395Skan * cp-tree.h (struct lang_type_class): add field for key method 817117395Skan (cp_global_trees): rename dynamic_classes to keyed_classes 818117395Skan (key_method): add definition 819117395Skan * class.c (finish_struct_1): compute class's key method, and add 820117395Skan the class to keyed_classes list if there is no key method. 821117395Skan * decl.c (finish_function): add class to keyed_classes list if we 822117395Skan see a definition of the class's key method. 823117395Skan * pt.c (instantiate_class_template): add template specialization 824117395Skan of a dynamic class to keyed_classes list. 825117395Skan * decl2.c (key_method): remove 826117395Skan (finish_file): iterate only through keyed_classes list when 827117395Skan deciding whether to emit vtables, remove class from its list after 828117395Skan we do the emission. 829117395Skan 830117395Skan2003-03-08 Mark Mitchell <mark@codesourcery.com> 831117395Skan 832117395Skan PR c++/9809 833117395Skan * call.c (add_function_candidate): Skip builtin fuctions that have 834117395Skan not yet been declared. 835117395Skan 836117395Skan2003-03-07 Mark Mitchell <mark@codesourcery.com> 837117395Skan 838117395Skan * call.c (reference_binding): Remove REF_IS_VAR parameter. 839117395Skan (implicit_conversion): Adjust call to reference_binding. 840117395Skan (make_temporary_var_for_ref_to_type): Add TYPE parameter. 841117395Skan (initialize_reference): Adjust handling for references bound to 842117395Skan rvalues. 843117395Skan * cp-tree.h (make_temporary_var_for_ref_to_temp): Change 844117395Skan prototype. 845117395Skan (real_non_cast_lvalue_p): New method. 846117395Skan * cvt.c (build_up_reference): Adjust use of 847117395Skan make_temporary_var_for_ref_to_temp. 848117395Skan * tree.c (real_non_cast_lvalue_p): New method. 849117395Skan 850117395Skan2003-03-06 Mark Mitchell <mark@codesourcery.com> 851117395Skan 852117395Skan * call.c (merge_conversion_sequences): New function. 853117395Skan (build_conv): Set ICS_USER_FLAG for USER_CONVs. 854117395Skan (convert_class_to_reference): Correct handling of second 855117395Skan standard conversion sequence in a user-defined conversion 856117395Skan sequence. 857117395Skan (build_user_type_conversion_1): Use merge_conversion_sequences. 858117395Skan * cp-tree.def: Add comments for CONV nodes. 859117395Skan 860117395Skan2003-03-06 Mark Mitchell <mark@codesourcery.com> 861117395Skan 862117395Skan PR c++/9965 863117395Skan * call.c (reference_binding): Add ref_is_var parameter. 864117395Skan (implicit_conversion): Adjust call to reference_binding. 865117395Skan (initialize_reference): Likewise. 866117395Skan 867117395Skan PR c++/9400 868117395Skan * decl.c (pushdecl): Don't check for shadowing of DECL_ARTIFICIAL 869117395Skan PARM_DECLs. 870117395Skan 871117395Skan2003-03-06 Mark Mitchell <mark@codesourcery.com> 872117395Skan 873117395Skan PR c++/9791 874117395Skan * class.c (get_basefndecls): Use lookup_fnfields_1. 875117395Skan 876117395Skan2003-03-02 Matt Austern <austern@apple.com> 877117395Skan 878117395Skan * decl.c (cp_binding_level): Add static_decls varray member. 879117395Skan (add_decl_to_level): Add static/inline namespace scope 880117395Skan declarations to static_decls array. 881117395Skan (wrapup_global_for_namespace): Pass static_decls only, instead of 882117395Skan all decls, to wrapup_global_declarations/check_global_declarations. 883117395Skan (push_namespace): Initialize static_decls for ordinary namespaces. 884117395Skan (cxx_init_decl_processing): Initialize static_decls for global 885117395Skan namespace. 886117395Skan 887117395Skan2003-03-05 Mark Mitchell <mark@codesourcery.com> 888117395Skan 889117395Skan * class.c (end_of_class): Correct thinko. 890117395Skan 891117395Skan2003-03-04 Gabriel Dos Reis <gdr@integrable-solutions.net> 892117395Skan 893117395Skan * cp-tree.h (cxx_saved_binding): Declare. 894117395Skan (struct saved_scope): Adjust type of field 'old_binding'. 895117395Skan * decl.c (cxx_saved_binding_make): New macro. 896117395Skan (struct cxx_saved_binding): Define. 897117395Skan (store_bindings): Adjust prototype. Use cxx_saved_binding to save 898117395Skan C++ bindings. 899117395Skan (maybe_push_to_top_level): Adjust local variable type. 900117395Skan (pop_from_top_level): Likewise. 901117395Skan 902117395Skan2003-03-03 Jason Merrill <jason@redhat.com> 903117395Skan 904117395Skan * decl.c (finish_enum): Do set the type in a template. Simplify. 905117395Skan * pt.c (tsubst_enum, tsubst_copy): Revert last patch. 906117395Skan 907117395Skan2003-03-03 Mark Mitchell <mark@codesourcery.com> 908117395Skan 909117395Skan PR c++/9878 910117395Skan * call.c (convert_class_to_reference): Correct conversion 911117395Skan sequences. 912117395Skan (reference_binding): Add ref_bound_directly_to_rvalue_p parameter. 913117395Skan (implicit_conversion): Adjust call to reference_binding. 914117395Skan (add_candidate): Change type of candidates parameter. 915117395Skan (add_function_candidate): Likewise. 916117395Skan (add_conv_candidate): Likewise. 917117395Skan (build_builtin_candidate): Likewise. 918117395Skan (add_builtin_candidate): Likewise. 919117395Skan (add_builtin_candidates): Likewise. 920117395Skan (add_template_candidate_real): Likewise. 921117395Skan (add_template_candidate): Likewise. 922117395Skan (add_template_conv_candidate): Likewise. 923117395Skan (build_user_type_conversion_1): Adjust accordingly. 924117395Skan (build_object_call): Likewise. 925117395Skan (build_conditional_expr): Likewise. 926117395Skan (add_candidates): Likewise. 927117395Skan (build_new_op): Likewise. 928117395Skan (convert_like_real): Use USER_CONV_CAND. Use build_nop. 929117395Skan (build_new_method_call): Adjust calls to add_function_candidate. 930117395Skan (make_temporary_var_for_ref_to_temp): New function. 931117395Skan (initialize_reference): Add decl parameter. 932117395Skan * class.c (build_rtti_vtbl_entries): Use build_address and 933117395Skan build_nop. 934117395Skan * cp-tree.h (initialize_reference): Change prototype. 935117395Skan (make_temporary_var_for_ref_to_temp): New function. 936117395Skan (build_type_conversion): Change prototype. 937117395Skan (build_address): New function. 938117395Skan (build_nop): Likewise. 939117395Skan * cvt.c (cp_convert_to_pointer): Adjust call to 940117395Skan build_type_conversion. Avoid indicating redundant NOP_EXPRs. 941117395Skan Use build_nop. 942117395Skan (convert_to_pointer_force): Use build_nop. 943117395Skan (build_up_reference): Use make_temporary_var_for_ref_to_temp. 944117395Skan (convert_to_reference): Adjust call to build_type_conversion. 945117395Skan (ocp_convert): Likewise. 946117395Skan (build_type_conversion): Remove for_sure parameter. 947117395Skan * decl.c (grok_reference_init): Use initialize_reference. 948117395Skan * typeck.c (build_address): New function. 949117395Skan (build_nop): Likewise. 950117395Skan (build_unary_op): Use them. 951117395Skan (build_ptrmemfunc): Tidy slightly. 952117395Skan (convert_for_initialization): Adjust call to 953117395Skan initialize_reference. 954117395Skan * typeck2.c (store_init_value): Remove #if 0'd code. 955117395Skan 956117395Skan2003-03-02 Ashif Harji <asharji@uwaterloo.ca> 957117395Skan 958117395Skan * lang-specs.h (default_compilers): Add -no-integrated-cpp flag to 959117395Skan invoke an external cpp during compilation. 960117395Skan 961117395Skan2003-02-28 Mark Mitchell <mark@codesourcery.com> 962117395Skan 963117395Skan PR c++/9892 964117395Skan * pt.c (instantiate_decl): Clear DECL_RTL for a VAR_DECL when 965117395Skan instantiating it. 966117395Skan 967117395Skan2003-02-28 Mark Mitchell <mark@codesourcery.com> 968117395Skan 969117395Skan PR c++/9879 970117395Skan * cp-tree.h (build_zero_init): Add parameter. 971117395Skan * decl.c (cp_finish_decl): Adjust call. 972117395Skan * init.c (build_zero_init): Add nelts parameter. Adjust recursive 973117395Skan calls. 974117395Skan (build_default_init): Add nelts parameter. Adjust calls to 975117395Skan build_zero_init. 976117395Skan (build_new_1): Adjust call to build_default_init. 977117395Skan * typeck2.c (process_init_constructor): Adjust call to build_zero_init. 978117395Skan 979117395Skan2003-02-27 Devang Patel <dpatel@apple.com> 980117395Skan 981117395Skan * decl.c (finish_enum): Merge two 'for' loops. Copy value node if required. 982117395Skan Postpone enum setting for template decls. 983117395Skan (build_enumerator): Delay copying value node until finish_enum (). Remove 984117395Skan #if 0'ed code. 985117395Skan * pt.c (tsubst_enum): Set TREE_TYPE and copy value node. 986117395Skan (tsubst_copy): Add check for enum type. 987117395Skan 988117395Skan 989117395Skan2003-02-25 Mark Mitchell <mark@codesourcery.com> 990117395Skan 991117395Skan PR c++/9829 992117395Skan * decl.c (grokdeclarator): Handle SCOPE_REFs whose second argument 993117395Skan is a NAMESPACE_DECL. 994117395Skan 995117395Skan2003-02-24 Gabriel Dos Reis <gdr@integrable-solutions.net> 996117395Skan 997117395Skan * decl.c (add_binding): Time TV_NAME_LOOKUP. 998117395Skan (push_class_binding): Likewise. 999117395Skan (set_namespace_binding): Likewise. 1000117395Skan 1001117395Skan2003-02-24 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1002117395Skan 1003117395Skan PR c++/9602 1004117395Skan * typeck2.c (abstract_virtuals_error): Don't check when we 1005117395Skan are processing a template. 1006117395Skan 1007117395Skan2003-02-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1008117395Skan 1009117395Skan PR c++/7982 1010117395Skan * decl.c (warn_about_implicit_typename_lookup): Handle TYPEOF_TYPE. 1011117395Skan 1012117395Skan2003-02-21 Mark Mitchell <mark@codesourcery.com> 1013117395Skan 1014117395Skan PR c++/9749 1015117395Skan * decl.c (grokdeclarator): Do not allow parameters with variably 1016117395Skan modified types. 1017117395Skan 1018117395Skan PR c++/9727 1019117395Skan * decl2.c (push_scope): Don't pushclass for non-class types. 1020117395Skan (pop_scope): Don't popclass either. 1021117395Skan 1022117395Skan PR c++/8906 1023117395Skan * decl.c (lookup_name_real): Use IMPLICIT_TYPENAME_P. 1024117395Skan * decl2.c (handle_class_head): Check it. 1025117395Skan 1026117395Skan PR c++/8724 1027117395Skan * call.c (build_method_call): Make sure that the type destroyed in 1028117395Skan an explicit destructor call is complete. 1029117395Skan 1030117395Skan2003-02-20 Mark Mitchell <mark@codesourcery.com> 1031117395Skan 1032117395Skan PR c++/9729 1033117395Skan * mangle.c (mangle_conv_op_name_for_type): Issue an error message 1034117395Skan when the G++ 3.2 ABI prevents correct compilation. 1035117395Skan 1036117395Skan2003-02-18 Mark Mitchell <mark@codesourcery.com> 1037117395Skan 1038117395Skan PR c++/9704 1039117395Skan * class.c (layout_class_type): In the 3.2 ABI, take into account 1040117395Skan trailing bit fields when computing CLASSTYPE_SIZE_UNIT. 1041117395Skan 1042117395Skan2003-02-18 Matt Austern <austern@apple.com> 1043117395Skan 1044117395Skan * cp/cp-lang.c: Change lang hooks so that final_write_globals does 1045117395Skan nothing for C++. 1046117395Skan * cp/decl.c (wrapup_globals_for_namespace): Remove special 1047117395Skan handling of global namespace. 1048117395Skan 1049117395Skan2003-02-18 Jason Merrill <jason@redhat.com> 1050117395Skan 1051117395Skan PR c++/9623 1052117395Skan * decl.c (reshape_init): Don't mess with initializer labels. 1053117395Skan 1054117395Skan2003-02-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1055117395Skan 1056117395Skan PR c++/9459 1057117395Skan * error.c (dump_type_prefix): Handle TYPEOF_TYPE. 1058117395Skan (dump_type_suffix): Likewise. 1059117395Skan 1060117395Skan2003-02-17 Michael Elizabeth Chastain <mec@shout.net> 1061117395Skan 1062117395Skan PR debug/9717 1063117395Skan * class.c (build_base_field): Mark fields for base classes with 1064117395Skan DECL_IGNORED_P. 1065117395Skan 1066117395Skan2003-02-13 Andrew Pinski <pinskia@physics.uc.edu> 1067117395Skan 1068117395Skan * decl.c: (define_label): Fix warning for return 0 instead of NULL. 1069117395Skan 1070117395Skan2003-02-13 Gabriel Dos Reis <gdr@integrable-solutions.net> 1071117395Skan 1072117395Skan * Make-lang.in (cp/decl2.o): Add dependency on timevar.h 1073117395Skan * decl2.c: Include "timevar.h". 1074117395Skan (namespace_ancestor): Time name lookup. 1075117395Skan (add_using_namespace): Likewise. 1076117395Skan (lookup_using_namespace): Likewise. 1077117395Skan (qualified_lookup_using_namespace): Likewise. 1078117395Skan (decl_namespace): Likewise. 1079117395Skan (lookup_arg_dependent): Likewise. 1080117395Skan * lex.c (do_identifier): Likewise. 1081117395Skan (do_scoped_id): Likewise. 1082117395Skan * pt.c (lookup_template_class): Likewise. 1083117395Skan 1084117395Skan2003-02-12 Gabriel Dos Reis <gdr@integrable-solutions.net> 1085117395Skan 1086117395Skan * decl.c (define_label): Don't forget to pop TV_NAME_LOOKUP. 1087117395Skan 1088117395Skan2003-02-11 Gabriel Dos Reis <gdr@integrable-solutions.net> 1089117395Skan 1090117395Skan * decl.c: Include "timevar.h". 1091117395Skan (poplevel): Time name lookup. 1092117395Skan (find_binding): Likewise. 1093117395Skan (push_namespace): Likewise. 1094117395Skan (pop_nested_namespace): Likewise. 1095117395Skan (store_bindings): Likewise. 1096117395Skan (maybe_push_to_top_level): Likewise. 1097117395Skan (pop_from_top_level): Likewise. 1098117395Skan (push_local_name): Likewise. 1099117395Skan (pushtag): Likewise. 1100117395Skan (pushdecl): Likewise. 1101117395Skan (pushdecl_with_scope): Likewise. 1102117395Skan (pushdecl_namespace_level): Likewise. 1103117395Skan (pushdecl_top_level): Likewise. 1104117395Skan (pushdecl_class_level): Likewise. 1105117395Skan (push_class_level_binding): Likewise. 1106117395Skan (push_using_decl): Likewise. 1107117395Skan (push_using_directive): Likewise. 1108117395Skan (push_overloaded_decl): Likewise. 1109117395Skan (lookup_label): Likewise. 1110117395Skan (define_label): Likewise. 1111117395Skan (lookup_tag): Likewise. 1112117395Skan (lookup_tag_reverse): Likewise. 1113117395Skan (lookup_namespace_name): Likewise. 1114117395Skan (select_decl): Likewise. 1115117395Skan (unqualified_namespace_lookup): Likewise. 1116117395Skan (lookup_name_real): Likewise. 1117117395Skan (lookup_name_current_level): Likewise. 1118117395Skan (lookup_type_current_level): Likewise. 1119117395Skan (maybe_inject_for_scope_var): Likewise. 1120117395Skan (xref_tag): Likewise. 1121117395Skan 1122117395Skan * Make-lang.in (cp/decl.o): Add dependency on timevar.h 1123117395Skan 1124117395Skan2003-02-03 Mark Mitchell <mark@codesourcery.com> 1125117395Skan 1126117395Skan PR c++/7129 1127117395Skan * operators.def: Add <?= and >?=. 1128117395Skan 1129117395Skan2003-01-31 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1130117395Skan 1131117395Skan PR c++/8849 1132117395Skan * error.c (dump_expr): Handle BASELINK. 1133117395Skan * pt.c (resolve_overloaded_unification): Handle FUNCTION_DECL. 1134117395Skan 1135117395Skan2003-01-31 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1136117395Skan 1137117395Skan PR c++/9453 1138117395Skan * friend.c (is_friend): Always accept when SUPPLICANT is still 1139117395Skan a TEMPLATE_DECL. 1140117395Skan * pt.c (push_access_scope_real): Call push_to_top_level for 1141117395Skan function in namespace scope. 1142117395Skan (push_access_scope): Remove ARGS argument, all caller adjusted. 1143117395Skan (pop_access_scope): Call pop_from_top_level for function in 1144117395Skan namespace scope. 1145117395Skan (regenerate_decl_from_template): Use push_access_scope_real. 1146117395Skan 1147117395Skan2003-01-29 Nathan Sidwell <nathan@codesourcery.com> 1148117395Skan 1149117395Skan PR c++/9437 1150117395Skan * pt.c (unify): Don't unify '*T' with 'U C::*'. 1151117395Skan 1152117395Skan2003-01-27 Jeffrey D. Oldham <oldham@codesourcery.com> 1153117395Skan 1154117395Skan PR c++/47 1155117395Skan * cp-tree.h (lookup_nested_field): Add declaration. 1156117395Skan * decl.c (lookup_name_real): Call lookup_nested_field. 1157117395Skan * search.c (lookup_nested_field): Add function. 1158117395Skan 1159117395Skan2003-01-26 Christian Cornelssen <ccorn@cs.tu-berlin.de> 1160117395Skan 1161110611Skan * Make-lang.in (c++.install-common, c++.install-man) 1162117395Skan (c++.uninstall): Prepend $(DESTDIR) to destination paths in 1163117395Skan all (un)installation commands. 1164110611Skan (c++.install-common): Rewrite $(LN) commands to support 1165110611Skan DESTDIR with "ln" as well as with "ln -s". 1166110611Skan 1167117395Skan2003-01-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1168117395Skan 1169117395Skan * decl2.c (check_classfn): Fix uninitialized warning. 1170117395Skan 1171110611Skan2003-01-22 Mark Mitchell <mark@codesourcery.com> 1172110611Skan 1173110611Skan PR c++/9328 1174110611Skan * error.c (dump_decl): For an OVERLOAD, just print the name of the 1175110611Skan function; it doesn't make sense to try to print its type. 1176110611Skan * semantics.c (finish_typeof): Issue errors about invalid uses. 1177110611Skan 1178117395Skan2003-01-22 Josef Zlomek <zlomekj@suse.cz> 1179110611Skan 1180117395Skan PR/9386, PR/8801 1181117395Skan 2002-12-27 Mark Mitchell <mark@codesourcery.com> 1182117395Skan * typeck.c (build_class_member_access_expr): Fix anonymous union 1183117395Skan handling. 1184110611Skan 1185117395Skan2003-01-17 Jason Merrill <jason@redhat.com> 1186117395Skan 1187117395Skan PR c++/9167, c++/9358 1188117395Skan * decl.c (require_complete_types_for_parms): Also update DECL_ARG_TYPE. 1189117395Skan 1190117395Skan2003-01-17 Jason Merrill <jason@redhat.com> 1191117395Skan 1192117395Skan PR c++/9342 1193117395Skan * call.c (build_conditional_expr): Always do lvalue-rvalue 1194117395Skan conversion. 1195117395Skan 1196117395Skan2003-01-16 Jason Merrill <jason@redhat.com> 1197117395Skan 1198117395Skan PR c++/8564 1199117395Skan * init.c (build_vec_init): Re-add maxindex parm. 1200117395Skan (perform_member_init, build_aggr_init): Pass it. 1201117395Skan (build_new_1): Pass it. Use an incomplete array type for full_type. 1202117395Skan * typeck.c (build_modify_expr): Pass it. 1203117395Skan * cp-tree.h: Adjust. 1204117395Skan 1205117395Skan2003-01-13 Jason Merrill <jason@redhat.com> 1206117395Skan 1207117395Skan PR c++/8748 1208117395Skan * class.c (build_base_path): Take the address before calling save_expr. 1209117395Skan 1210117395Skan * call.c (build_user_type_conversion_1): Do set ICS_BAD_FLAG if 1211117395Skan all the ambiguous conversions are bad. 1212117395Skan 1213117395Skan * class.c (maybe_warn_about_overly_private_class): Don't stop 1214117395Skan searching when we find a nonprivate method. 1215117395Skan 1216117395Skan2003-01-09 Jakub Jelinek <jakub@redhat.com> 1217117395Skan 1218117395Skan * decl.c (start_decl): Only check DECL_THREAD_LOCAL for VAR_DECLs. 1219117395Skan 1220117395Skan2003-01-09 Jakub Jelinek <jakub@redhat.com> 1221117395Skan 1222117395Skan * decl.c (start_decl): Don't set DECL_COMMON for __thread variables. 1223117395Skan 1224117395Skan2003-01-07 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1225117395Skan 1226117395Skan PR c++/9030 1227117395Skan * decl.c (make_typename_type): Check access only when tf_error. 1228117395Skan (make_unbound_class_template): Likewise. 1229117395Skan * pt.c (saved_access_scope): New variable. 1230117395Skan (push_access_scope_real): New function. 1231117395Skan (push_access_scope): Likewise. 1232117395Skan (pop_access_scope): Likewise. 1233117395Skan (tsubst_default_argument): Use them. 1234117395Skan (instantiate_template): Likewise. 1235117395Skan (regenerate_decl_from_template): Likewise. 1236117395Skan (instantiate_decl): Likewise. 1237117395Skan (get_mostly_instantiated_function_type): Likewise. 1238117395Skan 1239117395Skan2003-01-06 Mark Mitchell <mark@codesourcery.com> 1240117395Skan 1241117395Skan PR c++/9165 1242117395Skan * decl2.c (build_cleanup): Mark the object as used. 1243117395Skan 1244117395Skan2003-01-03 Nathan Sidwell <nathan@codesourcery.com> 1245117395Skan 1246117395Skan PR c++/45, c++/3784 1247117395Skan * tree.c (cp_tree_equal, TEMPLATE_PARM_INDEX): The types must be 1248117395Skan the same too. 1249117395Skan 1250117395Skan2002-12-30 Nathan Sidwell <nathan@codesourcery.com> 1251117395Skan 1252117395Skan PR c++/9054 1253117395Skan * class.c (layout_class_type): Set DECL_CONTEXT of type for base. 1254117395Skan * dump.c (cp_dump_tree, RECORD_TYPE): Deal with type for base types. 1255117395Skan 1256110611Skan2002-12-26 Nathan Sidwell <nathan@codesourcery.com> 1257110611Skan 1258117395Skan PR c++/4803 1259117395Skan * decl2.c (mark_used): Defer inline functions. 1260117395Skan (finish_file): Merge deferred_fns loops. Check all used 1261117395Skan inline functions have a definition. 1262117395Skan * method.c (make_thunk): Thunks are not inline. 1263110611Skan 1264117395Skan PR c++/5116, c++/764 1265117395Skan * call.c (build_new_op): Make sure template class operands are 1266117395Skan instantiated. 1267117395Skan 1268117395Skan2002-12-24 Nathan Sidwell <nathan@codesourcery.com> 1269117395Skan 1270117395Skan PR C++/7964 1271117395Skan * cp-tree.h (resolve_scoped_fn_name): Prototype. 1272117395Skan * call.c (resolve_scoped_fn_name): New function. Deal with 1273117395Skan more template expansion. Broken out of ... 1274117395Skan * parse.y (parse_finish_call_expr): ... here. Call it. 1275117395Skan * decl2.c (build_expr_from_tree, CALL_EXPR): Use 1276117395Skan resolve_scoped_fn_name and build_call_from_tree. 1277117395Skan 1278117395Skan PR c++/9053 1279117395Skan * decl.c (duplicate_decls): Templates may be disambiguated by 1280117395Skan return type. 1281117395Skan 1282117395Skan PR c++/8702 1283117395Skan * decl2.c (check_classfn): Use lookup_fnfield_1. List all 1284117395Skan conversion operators on failure. 1285117395Skan 1286117395Skan2002-12-22 Nathan Sidwell <nathan@codesourcery.com> 1287117395Skan 1288117395Skan PR c++/8572 1289117395Skan * cp-tree.h (grokoptypename): Add SCOPE parameter. 1290117395Skan * decl2.c (grokoptypename): Add SCOPE parameter. tsubst the type 1291117395Skan if in a template scope. 1292117395Skan * parse.y (unoperator): Return the scope. 1293117395Skan (operator_name): Adjust grokoptypename call. 1294117395Skan 1295117395Skan2002-12-22 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1296117395Skan 1297117395Skan * cp-tree.h (make_unbound_class_template): Use tsubst_flags_t. 1298117395Skan * decl.c (make_unbound_class_template): Adjust. Check for tf_error. 1299117395Skan * pt.c (tsubst) [OFFSET_TYPE]: Check for tf_error. 1300117395Skan 1301110611Skan2002-12-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1302110611Skan 1303117395Skan PR c++/8099 1304117395Skan * friend.c (make_friend_class): Allow partial specialization 1305117395Skan when declaration is not a template friend. 1306117395Skan 1307117395Skan2002-12-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1308117395Skan 1309117395Skan PR c++/3663 1310117395Skan * pt.c (lookup_template_class): Copy TREE_PRIVATE and 1311117395Skan TREE_PROTECTED to created decl nodes. 1312117395Skan 1313117395Skan2002-12-18 Mark Mitchell <mark@codesourcery.com> 1314117395Skan 1315117395Skan * class.c (build_base_field): Do not set DECL_PACKED on the 1316117395Skan FIELD_DECL. 1317117395Skan 1318117395Skan2002-12-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1319117395Skan 1320110611Skan * parse.y (bad_parm): Add missing argument to error function call. 1321110611Skan 1322110611Skan2002-12-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1323110611Skan 1324110611Skan PR c++/8442 1325110611Skan * decl2.c (handle_class_head): Verify if the looked up name is a 1326110611Skan type or template. 1327110611Skan * pt.c (convert_template_argument): Fix type or template template 1328110611Skan parameter decision logic. 1329110611Skan 1330117395Skan2002-12-13 Gabriel Dos Reis <gdr@integrable-solutions.net> 1331110611Skan 1332117395Skan PR C++/8031 1333110611Skan * cvt.c (convert_to_pointer_force): Don't try comparing against 1334110611Skan erronous type. 1335110611Skan 1336117395Skan2002-12-13 Geoffrey Keating <geoffk@apple.com> 1337117395Skan 1338117395Skan * cp-tree.h: Have the multiple-include guards around 1339117395Skan the entire file. 1340117395Skan 1341110611Skan2002-12-10 Mark Mitchell <mark@codesourcery.com> 1342110611Skan 1343110611Skan PR c++/8372 1344110611Skan * pt.c (tsubst_copy): Handle destructor names more correctly. 1345110611Skan 1346117395Skan2002-12-10 Matt Austern <austern@apple.com> 1347117395Skan 1348117395Skan * cp-tree.h: get rid of needs_virtual_reinit bit. 1349117395Skan 1350117395Skan2002-12-09 Mark Mitchell <mark@codesourcery.com> 1351117395Skan 1352117395Skan * NEWS: Document removal of in-class initialization extension for 1353117395Skan static data members of non-arithmetic, non-enumeration type. 1354117395Skan * decl.c (check_static_variable_definition): Do not allow that 1355117395Skan extension. 1356117395Skan * decl2.c (grokfield): Do not call digest_init when processing 1357117395Skan templates. 1358117395Skan 1359110611Skan2002-12-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1360110611Skan 1361110611Skan * error.c (dump_expr): Fix format specifier warning. 1362110611Skan 1363117395Skan2002-12-04 Geoffrey Keating <geoffk@apple.com> 1364117395Skan 1365117395Skan * class.c (finish_struct_1): Correct comment. 1366117395Skan * cp-tree.c (DECL_SORTED_FIELDS): Likewise. 1367117395Skan 1368110611Skan2002-12-04 Gabriel Dos Reis <gdr@integrable-solutions.net> 1369110611Skan 1370110611Skan PR C++/8799 1371110611Skan * error.c (dump_expr): Don't ever try to dump a non-existent 1372117395Skan expression. 1373110611Skan 1374117395Skan2002-12-03 Jason Merrill <jason@redhat.com> 1375117395Skan 1376117395Skan PR c++/8674 1377117395Skan * call.c (build_over_call): Check specifically for TARGET_EXPR 1378117395Skan when eliding. 1379117395Skan 1380117395Skan PR c++/8461, c++/8625 1381117395Skan * call.c (convert_for_arg_passing): Don't mess with error_mark_node. 1382117395Skan (cp_convert_parm_for_inlining): Remove. 1383117395Skan * cp-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING): 1384117395Skan Remove. 1385117395Skan * cp-tree.h (ADDR_IS_INVISIREF): Remove. 1386117395Skan * except.c (stabilize_throw_expr): Remove ADDR_IS_INVISIREF code. 1387117395Skan 1388117395Skan * call.c (build_user_type_conversion_1): Don't set ICS_BAD_FLAG on 1389117395Skan an ambiguous conversion. 1390117395Skan 1391117395Skan2002-12-03 Mark Mitchell <mark@codesourcery.com> 1392117395Skan 1393117395Skan PR c++/8688 1394117395Skan * decl.c (reshape_init): Handle erroneous initializers. 1395117395Skan 1396110611Skan2002-12-02 Mark Mitchell <mark@codesourcery.com> 1397110611Skan 1398117395Skan PR c++/8720 1399117395Skan * spew.c (remove_last_token): Make sure that last_chunk is set 1400117395Skan correctly. 1401117395Skan 1402110611Skan PR c++/8615 1403110611Skan * error.c (dump_expr): Handle character constants with 1404110611Skan TREE_OVERFLOW set. 1405110611Skan 1406117395Skan2002-12-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1407117395Skan 1408117395Skan DR 180 1409117395Skan * decl.c (grokdeclarator): Require class-key for all friend class. 1410117395Skan Output the correct type and context in the error message. 1411117395Skan 1412110611Skan2002-12-01 Mark Mitchell <mark@codesourcery.com> 1413110611Skan 1414110611Skan PR c++/5919 1415110611Skan * pt.c (unify): Use variably_modified_type_p to test validity of 1416110611Skan template argument types. 1417110611Skan 1418110611Skan PR c++/8727 1419110611Skan * cp-tree.h (lang_type_class): Add typeinfo_var. 1420110611Skan (CLASSTYPE_TYPEINFO_VAR): New macro. 1421110611Skan * rtti.c (get_tinfo_decl): Use it. 1422110611Skan 1423110611Skan PR c++/8663 1424110611Skan * init.c (expand_member_init): Always get the main variant of a 1425110611Skan base class. 1426110611Skan 1427110611Skan2002-12-01 Mark Mitchell <mark@codesourcery.com> 1428110611Skan 1429110611Skan PR c++/8332 1430110611Skan PR c++/8493 1431110611Skan * decl.c (cxx_init_decl_processing): Use size_type_node, not 1432110611Skan c_size_type_node. 1433110611Skan * decl2.c (coerce_new_type): Likewise. 1434110611Skan * except.c (do_allocate_exception): Likewise. 1435110611Skan 1436110611Skan2002-11-30 Mark Mitchell <mark@codesourcery.com> 1437110611Skan 1438117395Skan PR c++/8227 1439117395Skan * decl.c (layout_var_decl): Deal gracefully with erroneous types. 1440117395Skan (check_initializer): Validate the type of the initialized 1441117395Skan variable, even if the initializer is absent. 1442117395Skan * typeck.c (cp_type_quals): Deal gracefully with erroneous types. 1443117395Skan 1444110611Skan PR c++/8214 1445110611Skan * typeck.c (convert_for_assignment): Do not use 1446110611Skan decl_constant_value on the operand. 1447110611Skan 1448117395Skan PR c++/8511 1449117395Skan * pt.c (instantiate_decl): Handle template friends defined outside 1450117395Skan of the class correctly. 1451107590Sobrien 1452117395Skan2002-11-29 Joe Buck <jbuck@synopsys.com> 1453107590Sobrien 1454117395Skan * parse.y (class_head_defn): Set CLASSTYPE_DECLARED_CLASS for 1455117395Skan anonymous structs. 1456107590Sobrien 1457117395Skan2002-11-29 Mark Mitchell <mark@codesourcery.com> 1458107590Sobrien 1459117395Skan * class.c (walk_subobject_offsets): Recur on binfos as well as on 1460117395Skan types. 1461117395Skan (layout_nonempty_base_or_field): Pass it a binfo when processing a 1462117395Skan base class. 1463117395Skan (layout_empty_base): Likewise. 1464117395Skan (build_base_field): Likewise. 1465107590Sobrien 1466117395Skan2002-11-27 Mark Mitchell <mark@codesourcery.com> 1467107590Sobrien 1468117395Skan * class.c (build_base_field): Make sure we get the canonical base 1469117395Skan when descending through primary bases. 1470107590Sobrien 1471117395Skan2002-11-26 Geoffrey Keating <geoffk@apple.com> 1472107590Sobrien 1473117395Skan * decl.c (check_initializer): Don't error on initialisation of 1474117395Skan a scalar with a brace-enclosed expression. 1475107590Sobrien 1476117395Skan2002-11-26 Nathan Sidwell <nathan@codesourcery.com> 1477117395Skan 1478117395Skan * cp-tree.h (DECL_LANG_FLAG_4): Document more uses. 1479117395Skan (template_parms_equal): Remove prototype. 1480117395Skan * typeck.c (buuld_indirect_ref): Reformat. 1481117395Skan 1482117395Skan2002-11-25 Mark Mitchell <mark@codesourcery.com> 1483117395Skan 1484117395Skan * tree.c (cp_build_qualified_type_real): Correct handling of 1485117395Skan array types. 1486117395Skan * class.c (walk_subobject_offsets): Fix thinko. 1487117395Skan (build_base_field): Record offsets of empty bases in primary 1488117395Skan virtual bases. 1489117395Skan (layout_class_type): Record offsets of empty bases in fields. 1490117395Skan 1491117395Skan * search.c (is_subobject_of_p_1): Fix thinko. 1492117395Skan (lookup_field_queue_p): Likewise. 1493117395Skan 1494117395Skan2002-11-24 Mark Mitchell <mark@codesourcery.com> 1495117395Skan 1496117395Skan * class.c (layout_class_type): Reuse tail padding when laying out 1497117395Skan virtual bases. 1498117395Skan 1499117395Skan2002-11-22 Mark Mitchell <mark@codesourcery.com> 1500117395Skan 1501117395Skan * rtti.c (qualifier_flags): Fix thinko. 1502117395Skan 1503117395Skan2002-11-21 Glen Nakamura <glen@imodulo.com> 1504117395Skan 1505117395Skan PR c++/8342 1506117395Skan * typeck.c (get_member_function_from_ptrfunc): Make sure that a 1507117395Skan SAVE_EXPR for instance_ptr doesn't get evaluated first inside one 1508117395Skan of the branches of a COND_EXPR. 1509117395Skan 1510117395Skan2002-11-19 Mark Mitchell <mark@codesourcery.com> 1511117395Skan 1512117395Skan * pt.c (for_each_template_parm): Free allocated memory. 1513117395Skan * search.c (is_subobject_of_p_1): New function. 1514117395Skan (is_subobject_of_p): Avoid walking virtual bases multiple times. 1515117395Skan 1516117395Skan2002-11-19 Jason Thorpe <thorpej@wasabisystems.com> 1517117395Skan 1518117395Skan * g++spec.c (lang_specific_spec_functions): New. 1519117395Skan 1520117395Skan2002-11-15 Kazu Hirata <kazu@cs.umass.edu> 1521117395Skan 1522117395Skan * ChangeLog: Follow spelling conventions. 1523117395Skan * class.c: Likewise. 1524117395Skan * decl2.c: Likewise. 1525117395Skan 1526117395Skan2002-11-14 Zack Weinberg <zack@codesourcery.com> 1527117395Skan 1528117395Skan * search.c (dfs_push_decls): Do not try to reorder elements 1529117395Skan 3..n of method_vec if method_vec has only two elements. 1530117395Skan Reverse order of two tests to avoid accessing unallocated 1531117395Skan memory. 1532117395Skan 1533117395Skan2002-11-14 Mark Mitchell <mark@codesourcery.com> 1534117395Skan 1535117395Skan * class.c (dfs_find_final_overrider): Adjust so that the most 1536117395Skan derived object is a binfo, rather than a class type. 1537117395Skan (find_final_overrider): Likewise. 1538117395Skan (add_vcall_offset_vtbl_entries_1): Simplify accordingly. 1539117395Skan (add_vcall_offset): Likewise. 1540117395Skan 1541117395Skan2002-11-09 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1542117395Skan 1543117395Skan PR c++/8389 1544117395Skan * pt.c (instantiate_template): Push class scope for member 1545117395Skan functions. 1546117395Skan (get_mostly_instantiated_function_type): Likewise. Don't call 1547117395Skan tsubst on context. Remove CONTEXTP and TPARMSP parameters. 1548117395Skan * cp-tree.h (get_mostly_instantiated_function_type): Adjust. 1549117395Skan * mangle.c (write_encoding, write_unqualified_name): Adjust. 1550117395Skan 1551117395Skan2002-11-07 Mark Mitchell <mark@codesourcery.com> 1552117395Skan 1553117395Skan * class.c (add_vcall_offset_vtbl_entries_1): Correct ordering of 1554117395Skan vcall offfsets. Split out ... 1555117395Skan (add_vcall_offset): ... new function. 1556117395Skan 1557117395Skan PR c++/8338 1558117395Skan * pt.c (for_each_template_parm): Add htab parameter. 1559117395Skan (process_partial_specialization): Adjust call. 1560117395Skan (push_template_decl_real): Likewise. 1561117395Skan (pair_fn_data): Add visited. 1562117395Skan (for_each_template_parm_r): Avoid walking duplicates more than 1563117395Skan once. 1564117395Skan (uses_template_parms): Adjust call to for_each_template_parm. 1565117395Skan 1566117395Skan2002-11-07 Mark Mitchell <mark@codesourcery.com> 1567117395Skan 1568117395Skan * class.c (add_implicitly_declared_members): Put implicitly 1569117395Skan declared functions at the end of TYPE_METHODs when -fabi-version 1570117395Skan is at least 2. 1571117395Skan 1572117395Skan2002-11-05 Geoffrey Keating <geoffk@apple.com> 1573117395Skan 1574117395Skan * decl2.c (finish_file): Correct spelling. 1575117395Skan 1576117395Skan2002-11-03 Mark Mitchell <mark@codesourcery.com> 1577117395Skan 1578117395Skan * call.c (build_special_member_call): Do not try to lookup VTTs by 1579117395Skan name. 1580117395Skan * class.c (vtbl_init_data): Add generate_vcall_entries. 1581117395Skan (get_vtable_decl): Do not look up virtual tables by name. 1582117395Skan (copy_virtuals): Do not use BV_USE_VCALL_INDEX_P. 1583117395Skan (set_primary_base): Do not set CLASSTYPE_RTTI. 1584117395Skan (determine_primary_base): Likewise. 1585117395Skan (get_matching_virtual): Remove. 1586117395Skan (get_vcall_index): New function. 1587117395Skan (update_vtable_entry_for_fn): Do not try to use virtual thunks 1588117395Skan when they are not required. Assign vcall indices at this point. 1589117395Skan (finish_struct_1): Do not set CLASSTYPE_NEEDS_VIRTUAL_REINIT. 1590117395Skan Do update dynamic_classes. 1591117395Skan (build_vtt): Do not add VTTs to the symbol table. 1592117395Skan (build_ctor_vtbl_group): Likewise. 1593117395Skan (build_vtbl_initializer): Simplify handling of vcall indices. 1594117395Skan (build_vcall_offset_vtbl_entries): Pretend to build vcall offsets 1595117395Skan for the most derived class. 1596117395Skan (add_vcall_offset_vtbl_entries_1): But do not actually add them to 1597117395Skan the vtable. 1598117395Skan * cp-tree.h (dynamic_classes): New macro. 1599117395Skan (lang_type_class): Remove rtti. Add vtables. Add vcall_indices. 1600117395Skan (CLASSTYPE_RTTI): Remove. 1601117395Skan (CLASSTYPE_NEEDS_VIRTUAL_REINIT): Remove. 1602117395Skan (CLASSTYPE_VCALL_INDICES): New macro. 1603117395Skan (CLASSTYPE_VTABLES): Likewise. 1604117395Skan (BV_USE_VCALL_INDEX_P): Remove. 1605117395Skan (build_vtable_path): Remove. 1606117395Skan * decl2.c (finish_vtable_vardecl): Remove. 1607117395Skan (key_method): Remove #if 0'd code. 1608117395Skan (finish_vtable_vardecl): Rename to ... 1609117395Skan (maybe_emit_vtables): ... this. 1610117395Skan (finish_file): Use it. 1611117395Skan * search.c (look_for_overrides_here): Update comment. 1612117395Skan 1613117395Skan2002-11-01 Zack Weinberg <zack@codesourcery.com> 1614117395Skan 1615107590Sobrien PR c/7353 redux 1616107590Sobrien * decl2.c (grokfield): Reject TYPE_DECLs with initializers. 1617107590Sobrien 1618117395Skan2002-10-30 Jason Merrill <jason@redhat.com> 1619107590Sobrien 1620117395Skan PR c++/8186 1621117395Skan * cp-tree.h (ADDR_IS_INVISIREF): New macro. 1622117395Skan * call.c (convert_for_arg_passing): Set it. 1623117395Skan * except.c (stabilize_throw_expr): Recurse for such an arg. 1624107590Sobrien 1625117395Skan2002-10-31 Mark Mitchell <mark@codesourcery.com> 1626117395Skan 1627117395Skan * cp-tree.h (lang_decl_flags): Remove init_priority. 1628117395Skan (lang_decl): Add delta. 1629117395Skan (GLOBAL_INIT_PRIORITY): Remove. 1630117395Skan (THUNK_DELTA): Revise definition. 1631117395Skan * decl2.c (start_objects): Don't set GLOBAL_INIT_PRIORITY. 1632117395Skan * dump.c (cp_dump_tree): Don't dump it. 1633117395Skan 1634107590Sobrien2002-10-30 Mark Mitchell <mark@codesourcery.com> 1635107590Sobrien 1636107590Sobrien PR c++/8160 1637107590Sobrien * typeck2.c (process_init_constructor): Call complete_array_type. 1638107590Sobrien 1639107590Sobrien PR c++/8149 1640107590Sobrien * decl.c (make_typename_type): Issue errors about invalid results. 1641107590Sobrien 1642117395Skan2002-10-30 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1643117395Skan 1644117395Skan Core issue 287, PR c++/7639 1645117395Skan * cp-tree.h (lang_type_class): Add decl_list field. 1646117395Skan (CLASSTYPE_DECL_LIST): New macro. 1647117395Skan (maybe_add_class_template_decl_list): Add declaration. 1648117395Skan * class.c (duplicate_tag_error): Initialize CLASSTYPE_DECL_LIST. 1649117395Skan (unreverse_member_declarations): Reverse CLASSTYPE_DECL_LIST. 1650117395Skan (maybe_add_class_template_decl_list): New function. 1651117395Skan (add_implicitly_declared_members): Use it. 1652117395Skan * decl.c (maybe_process_template_type_declaration): Likewise. 1653117395Skan (pushtag): Likewise. 1654117395Skan * friend.c (add_friend): Likewise. 1655117395Skan (make_friend_class): Likewise. 1656117395Skan * semantics.c (finish_member_declaration): Likewise. 1657117395Skan (begin_class_definition): Initialize CLASSTYPE_DECL_LIST. 1658117395Skan * pt.c (instantiate_class_template): Use CLASSTYPE_DECL_LIST 1659117395Skan to process members and friends in the order of declaration. 1660117395Skan 1661107590Sobrien2002-10-29 Mark Mitchell <mark@codesourcery.com> 1662107590Sobrien 1663107590Sobrien PR c++/8287 1664107590Sobrien * decl.c (finish_destructor_body): Create the label to jump to 1665107590Sobrien when returning from a destructor here. 1666107590Sobrien (finish_function_body): Rather than here. 1667107590Sobrien 1668107590Sobrien2002-10-25 Zack Weinberg <zack@codesourcery.com> 1669107590Sobrien 1670107590Sobrien PR c++/7266 1671107590Sobrien * decl.c (grokdeclarator): Check that TREE_OPERAND 0 of a 1672107590Sobrien SCOPE_REF is not null before dereferencing it. 1673107590Sobrien 1674117395Skan2002-10-25 Mark Mitchell <mark@codesourcery.com> 1675117395Skan 1676117395Skan * call.c (build_over_call): Use DECL_CONTEXT, not 1677117395Skan DECL_VIRTUAL_CONTEXT. 1678117395Skan * class.c (modify_vtable_entry): Don't mess with 1679117395Skan DECL_VIRTUAL_CONTEXT. 1680117395Skan (set_vindex): Remove. 1681117395Skan (set_primary_base): Remove vfuns_p parameter. 1682117395Skan (determine_primary_base): Likewise. 1683117395Skan (modify_all_vtables): Likewise. 1684117395Skan (layout_class_type): Likewise. Adjust calls to other functions 1685117395Skan accordingly. 1686117395Skan (finish_struct_1): Adjust calls to modified functions. Set 1687117395Skan DECL_VINDEX here. 1688117395Skan * cp-tree.h (lang_type_class): Remove vsize. 1689117395Skan (CLASSTYPE_VSIZE): Remove. 1690117395Skan (lang_decl): Remove thunks. 1691117395Skan (DECL_THUNKS): Adjust. 1692117395Skan (DECL_VIRTUAL_CONTEXT): Remove. 1693117395Skan (duplicate_decls): Don't copy it. 1694117395Skan * pt.c (build_template_decl): Don't set it. 1695117395Skan (tsubst_decl): Likewise. 1696117395Skan * typeck.c (expand_ptrmemfunc_cst): Don't use it. 1697117395Skan 1698117395Skan * class.c (build_vtbl_initializer): Don't use build_vtable_entry. 1699117395Skan (build_vtable_entry): Remove. 1700117395Skan * cp-tree.h (BINFO_VIRTUALS): Expand documentation. 1701117395Skan (lang_decl): Add thunks. 1702117395Skan (DECL_THUNKS): New macro. 1703117395Skan * decl.c (duplicate_decls): Copy it. 1704117395Skan * method.c (make_thunk): Simplify, and add thunks to DECL_THUNKS. 1705117395Skan * semantics.c (emit_associated_thunks): Simplify. 1706117395Skan 1707107590Sobrien2002-10-24 David Edelsohn <edelsohn@gnu.org> 1708107590Sobrien 1709107590Sobrien PR c++/7228 1710107590Sobrien * cp-tree.h (CLASSTYPE_READONLY_FIELDS_NEED_INIT): Check that 1711107590Sobrien lang_type structure exists before accessing field. 1712107590Sobrien (SET_CLASSTYPE_READONLY_FIELDS_NEED_INIT): New macro. 1713107590Sobrien (CLASSTYPE_REF_FIELDS_NEED_INIT): Similar. 1714107590Sobrien (SET_CLASSTYPE_REF_FIELDS_NEED_INIT): New macro. 1715107590Sobrien * class.c (check_field_decls): Use new macros. 1716107590Sobrien * typeck2.c (process_init_constructor): Remove redundant check for 1717107590Sobrien existence of lang_type structure. 1718107590Sobrien 1719117395Skan2002-10-24 Mark Mitchell <mark@codesourcery.com> 1720117395Skan 1721117395Skan * class.c (end_of_base): New method. 1722117395Skan (end_of_class): Use it. Check indirect virtual bases. 1723117395Skan 1724117395Skan * class.c (check_field_decls): Fix typo. 1725117395Skan 1726107590Sobrien2002-10-23 Mark Mitchell <mark@codesourcery.com> 1727107590Sobrien 1728107590Sobrien PR c++/8067 1729107590Sobrien * decl.c (maybe_inject_for_scope_var): Ignore __FUNCTION__ and 1730107590Sobrien related variables. 1731107590Sobrien 1732107590Sobrien PR c++/7679 1733107590Sobrien * spew.c (next_token): Do not return an endless stream of 1734107590Sobrien END_OF_SAVED_INPUT tokens. 1735107590Sobrien (snarf_method): Add three END_OF_SAVED_INPUT tokens to the end of 1736107590Sobrien the cached token stream. 1737107590Sobrien (snarf_defarg): Likewise. 1738107590Sobrien 1739117395Skan2002-10-23 Zack Weinberg <zack@codesourcery.com> 1740117395Skan 1741117395Skan * cp-lang.c (cp_var_mod_type_p): New: C++ hook for 1742117395Skan variably_modified_type_p. 1743117395Skan * cp-tree.h: Remove prototype of variably_modified_type_p. 1744117395Skan * tree.c (variably_modified_type_p): Remove; now implemented 1745117395Skan in language-independent code. 1746117395Skan 1747107590Sobrien2002-10-22 Mark Mitchell <mark@codesourcery.com> 1748107590Sobrien 1749107590Sobrien PR c++/6579 1750107590Sobrien * spew.c (snarf_parenthesized_expression): New function. 1751107590Sobrien (snarf_block): Use it. 1752107590Sobrien 1753117395Skan2002-10-22 Richard Henderson <rth@redhat.com> 1754107590Sobrien 1755117395Skan * method.c (use_thunk): Always compute vcall_value; assert that 1756117395Skan it is not zero. Use can_output_mi_thunk; use output_mi_thunk 1757117395Skan for vcall thunks as well. 1758107590Sobrien 1759107590Sobrien2002-10-21 Mark Mitchell <mark@codesourcery.com> 1760107590Sobrien 1761117395Skan * class.c (empty_base_at_nonzero_offset_p): New function. 1762117395Skan (layout_nonempty_base_or_field): Do not check for conflicts when 1763117395Skan laying out a virtual base using the GCC 3.2 ABI. 1764117395Skan (build_base_field): Correct checking for presence of empty classes 1765117395Skan at nonzero offsets when clearing CLASSTYPE_NEARLY_EMPTY_P. 1766117395Skan 1767117395Skan * class.c (include_empty_classes): Use normalize_rli. 1768117395Skan (layout_class_type): Likewise. 1769117395Skan 1770117395Skan * decl.c (reshape_init): Tweak handling of character arrays. 1771117395Skan 1772107590Sobrien PR c++/8218 1773107590Sobrien * cp-tree.h (lang_type_class): Add contains_empty_class_p. 1774107590Sobrien (CLASSTYPE_CONTAINS_EMPTY_CLASS_P): New macro. 1775107590Sobrien * class.c (check_bases): Update CLASSTYPE_CONTAINS_EMPTY_CLASS_P. 1776107590Sobrien (check_field_decls): Likewise. 1777107590Sobrien (layout_class_type): Likewise. 1778107590Sobrien (finish_struct_1): Initialize it. 1779107590Sobrien (walk_subobject_offsets): Use it to prune searches. 1780107590Sobrien 1781117395Skan2002-10-20 Mark Mitchell <mark@codesourcery.com> 1782117395Skan 1783117395Skan * method.c (use_thunk): Compute the vcall index as a HOST_WIDE_INT. 1784117395Skan * optimize.c (optimize_function): Replace ASM_OUTPUT_MI_THUNK with 1785117395Skan TARGET_ASM_OUTPUT_MI_THUNK in comments. 1786117395Skan 1787107590Sobrien2002-10-18 Zack Weinberg <zack@codesourcery.com> 1788107590Sobrien 1789107590Sobrien * decl.c (start_decl): Point users of the old initialized- 1790107590Sobrien typedef extension at __typeof__. 1791107590Sobrien 1792117395Skan2002-10-18 Mark Mitchell <mark@codesourcery.com> 1793107590Sobrien 1794117395Skan * Make-lang.in (method.o): Depend on TARGET_H. 1795117395Skan * method.c (target.h): Include it. 1796117395Skan (use_thunk): Use target hooks. Use vcall thunks, if available. 1797117395Skan 1798117395Skan2002-10-18 Mark Mitchell <mark@codesourcery.com> 1799117395Skan 1800117395Skan * class.c (base_derived_from): Make sure return value is a bool. 1801117395Skan 1802117395Skan2002-10-18 Mark Mitchell <mark@codesourcery.com> 1803117395Skan 1804117395Skan * class.c (find_final_overrider_data_s): Remove overriding_fn and 1805117395Skan overriding_base. 1806117395Skan (dfs_base_derived_from): New function. 1807117395Skan (base_derived_from): Likewise. 1808117395Skan (dfs_find_final_overrider): Use base_derived_from. 1809117395Skan (find_final_overrider): Adjust. 1810117395Skan 1811117395Skan2002-10-18 Jason Merrill <jason@redhat.com> 1812117395Skan 1813117395Skan PR c++/8080 1814117395Skan * semantics.c (finish_for_cond, finish_while_cond): Don't mess 1815117395Skan with condition decls in a template. 1816117395Skan 1817117395Skan2002-10-17 Nathan Sidwell <nathan@codesourcery.com> 1818117395Skan 1819107590Sobrien * class.c (add_method): Compare template parms too. 1820107590Sobrien 1821107590Sobrien2002-10-17 Mark Mitchell <mark@codesourcery.com> 1822107590Sobrien 1823107590Sobrien PR c++/7584 1824107590Sobrien * class.c (handle_using_decl): Allow the declaration used to be 1825107590Sobrien from an ambiguous base. 1826107590Sobrien 1827117395Skan * pt.c (convert_template_argument): Revert this change: 1828117395Skan 2002-10-16 Mark Mitchell <mark@codesourcery.com> 1829117395Skan * pt.c (convert_template_argument): Do not fold non-type 1830117395Skan template rguments when inside a template. 1831117395Skan 1832117395Skan * init.c (expand_default_init): Handle brace-enclosed initializers 1833117395Skan correctly. 1834117395Skan 1835107590Sobrien2002-10-16 Mark Mitchell <mark@codesourcery.com> 1836107590Sobrien 1837117395Skan * mangle.c (write_expression): Correct handling of enumeration 1838117395Skan constants. 1839117395Skan (write_template_arg): Likewise. 1840117395Skan * pt.c (convert_template_argument): Do not fold non-type template 1841117395Skan arguments when inside a template. 1842117395Skan 1843107590Sobrien PR c++/7478 1844107590Sobrien * cvt.c (convert_to_reference): Allow references as the incoming 1845107590Sobrien type. 1846107590Sobrien 1847117395Skan2002-10-16 Mark Mitchell <mark@codesourcery.com> 1848107590Sobrien 1849107590Sobrien PR c++/7524 1850107590Sobrien * method.c (do_build_assign_ref): Use cp_build_qualified_type, not 1851107590Sobrien build_qualified_type. 1852107590Sobrien 1853117395Skan2002-10-15 Richard Henderson <rth@redhat.com> 1854117395Skan 1855117395Skan * error.c (dump_expr): Use real_to_decimal directly, and with 1856117395Skan the new arguments. 1857117395Skan 1858117395Skan2002-10-15 Mark Mitchell <mark@codesourcery.com> 1859117395Skan 1860117395Skan * decl.c (reshape_init): Fix typo. 1861117395Skan 1862117395Skan * cp-tree.h (operator_name_info_t): Add arity. 1863117395Skan * lex.c (init_operators): Initialize it. 1864117395Skan * mangle.c (write_conversion_operator_name): New function. 1865117395Skan (write_unqualified_name): Use it. 1866117395Skan (write_template_args): Accept template arguments as a TREE_LIST. 1867117395Skan (write_expression): Adjust handling of qualified names to match 1868117395Skan specification. 1869117395Skan 1870117395Skan2002-10-15 Jason Merrill <jason@redhat.com> 1871117395Skan 1872117395Skan * call.c (call_builtin_trap): New fn. 1873117395Skan (convert_arg_to_ellipsis): Use it. Downgrade error to warning. 1874117395Skan (build_call): Don't set current_function_returns_abnormally outside 1875117395Skan a function. 1876117395Skan 1877107590Sobrien2002-10-14 Mark Mitchell <mark@codesourcery.com> 1878107590Sobrien 1879117395Skan * class.c (check_field_decls): Remove empty_p parameter. Instead, 1880117395Skan clear CLASSTYPE_EMPTY_P. 1881117395Skan (build_base_field): Likewise. 1882117395Skan (build_base_fields): Likewise. 1883117395Skan (check_bases_and_members): Likewise. 1884117395Skan (create_vtbl_ptr): Likewise. 1885117395Skan (layout_class_type): Likewise. Ensure that empty classes have 1886117395Skan size zero when used as base classes in the 3.2 ABI. 1887117395Skan (finish_struct_1): Initialize CLASSTYPE_EMPTY_P and 1888117395Skan CLASSTYPE_NEARLY_EMPTY_P. Adjust calls to avoid passing empty_p 1889117395Skan parameter. 1890117395Skan (is_empty_class): Correct definition when using post-3.2 ABI. 1891117395Skan * cp-tree.h (lang_type_class): Add empty_p. 1892117395Skan (CLASSTYPE_EMPTY_P): New macro. 1893117395Skan 1894117395Skan2002-10-12 Nathan Sidwell <nathan@codesourcery.com> 1895117395Skan 1896117395Skan * init.c (build_delete): Do not apply save_expr for arrays. 1897117395Skan (build_vec_delete): Likewise. 1898117395Skan 1899117395Skan2002-10-14 Mark Mitchell <mark@codesourcery.com> 1900117395Skan 1901117395Skan * decl.c (layout_var_decl): Call layout_decl even for variables 1902117395Skan whose type is an array with unspecified bounds. 1903117395Skan 1904107590Sobrien PR c++/7176 1905107590Sobrien * lex.c (do_identifier): Add another option for the parsing 1906107590Sobrien parameter. 1907107590Sobrien * parse.y (do_id): Use it. 1908107590Sobrien 1909117395Skan2002-10-11 Gabriel Dos Reis <gdr@integrable-solutions.net> 1910117395Skan 1911117395Skan PRs C++/6803, C++/7721 and C++/7803 1912117395Skan * decl.c (grokdeclarator): Gracefully handle template-name as 1913117395Skan decl-specifier. 1914117395Skan 1915117395Skan2002-10-11 Jason Molenda <jmolenda@apple.com> 1916117395Skan 1917117395Skan * init.c (build_field_list): Provide uses_unions_p with a default 1918117395Skan value. 1919117395Skan 1920107590Sobrien2002-10-11 Mark Mitchell <mark@codesourcery.com> 1921107590Sobrien 1922107590Sobrien PR c++/5661 1923107590Sobrien * cp-tree.h (variably_modified_type_p): New function. 1924107590Sobrien (grokdeclarator) Tighten check for variably modified types as 1925107590Sobrien fields. 1926107590Sobrien * pt.c (convert_template_argument): Do not allow variably modified 1927107590Sobrien types as template arguments. 1928107590Sobrien * tree.c (variably_modified_type_p): New function. 1929107590Sobrien 1930117395Skan * NEWS: Document removal of "new X = ..." extension. 1931117395Skan * class.c (initialize_array): Set TREE_HAS_CONSTRUCTOR on 1932117395Skan brace-enclosed initializers. 1933117395Skan * cp-tree.h (CP_AGGREGATE_TYPE_P): New macro. 1934117395Skan (initialize_local_var): Remove declaration. 1935117395Skan (expand_static_init): Likewise. 1936117395Skan * decl.c (next_initializable_field): New function. 1937117395Skan (reshape_init): Likewise. 1938117395Skan (check_initializer): Use them. Build dynamic initializer for 1939117395Skan aggregates here too. 1940117395Skan (initialize_local_var): Simplify, and incorporate cleanup 1941117395Skan insertion code as well. 1942117395Skan (destroy_local_var): Remove. 1943117395Skan (cp_finish_decl): Tidy. 1944117395Skan (expand_static_init): Fold checks for whether or not a variable 1945117395Skan needs initialization into this function. Simplify. 1946117395Skan * decl2.c (do_static_initialization): Simplify. 1947117395Skan * init.c (build_init): Do not set TREE_SIDE_EFFECTS when it will 1948117395Skan be done for us automatically. 1949117395Skan (expand_default_init): Handle brace-enclosed initializers 1950117395Skan correctly. 1951117395Skan (expand_aggr_init_1): Remove RTL-generation code. 1952117395Skan (build_vec_init): Remove "new X = ..." support. 1953117395Skan * parse.y (new_initializer): Likewise. 1954117395Skan * rtti.c (get_pseudo_ti_init): Set TREE_HAS_CONSTRUCTOR on 1955117395Skan brace-enclosed initializer. 1956117395Skan (create_pseudo_type_info): Likewise. 1957117395Skan * typeck2.c (store_init_value): Don't try to handle digest_init 1958117395Skan being called more than once. 1959117395Skan (digest_init): Tidy handling of brace-enclosed initializers. 1960107590Sobrien 1961117395Skan2002-10-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1962107590Sobrien 1963117395Skan * decl.c (typename_hash): Use htab_hash_pointer. 1964107590Sobrien 1965117395Skan2002-10-10 Jim Wilson <wilson@redhat.com> 1966107590Sobrien 1967117395Skan * decl.c (duplicate_decls): Don't call decl_attributes. 1968117395Skan 1969104752Skan2002-10-09 Zack Weinberg <zack@codesourcery.com> 1970104752Skan 1971104752Skan PR c/7353 1972104752Skan * decl.c (start_decl): Unconditionally issue error for 1973104752Skan 'typedef foo = bar'. 1974104752Skan (cp_finish_decl): Remove special case for TYPE_DECL with initializer. 1975104752Skan (grokdeclarator): Remove redundant error for 'typedef foo = bar'. 1976104752Skan 1977117395Skan2002-10-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1978117395Skan 1979117395Skan * decl2.c (prune_vtable_vardecl): Delete unused function. 1980117395Skan 1981104752Skan2002-10-03 Mark Mitchell <mark@codesourcery.com> 1982104752Skan 1983104752Skan PR c++/7754 1984104752Skan * decl2.c (finish_anon_union): Do not expand anonymous unions when 1985104752Skan procesing template functions. 1986104752Skan * pt.c (tsubst_decl, case VAR_DECL): Try to complete the variable 1987104752Skan type. Call layout_decl. 1988104752Skan (tsubst_expr, case DECL_STMT): Handle anonymous unions. 1989104752Skan 1990104752Skan2002-10-07 Richard Henderson <rth@redhat.com> 1991104752Skan 1992117395Skan * decl2.c, pt.c: Revert c++/7754 fix. 1993104752Skan 1994117395Skan2002-10-05 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1995104752Skan 1996117395Skan PR c++/7804 1997117395Skan * error.c (dump_expr) [REAL_CST]: Output in decimal format. 1998104752Skan 1999117395Skan2002-10-03 Mark Mitchell <mark@codesourcery.com> 2000104752Skan 2001117395Skan PR c++/7931 2002117395Skan * pt.c (for_each_template_parm_r): Handle BASELINKs. 2003104752Skan 2004104752Skan PR c++/7754 2005104752Skan * decl2.c (finish_anon_union): Do not expand anonymous unions when 2006104752Skan procesing template functions. 2007104752Skan * pt.c (tsubst_decl, case VAR_DECL): Try to complete the variable 2008104752Skan type. Call layout_decl. 2009104752Skan (tsubst_expr, case DECL_STMT): Handle anonymous unions. 2010104752Skan 2011117395Skan2002-10-03 Mark Mitchell <mark@codesourcery.com> 2012117395Skan 2013117395Skan PR c++/8006 2014117395Skan * mangle.c (CLASSTYPE_TEMPLATE_ID_P): Handle instances of template 2015117395Skan template parameters. 2016117395Skan (globals): Add entity and need_abi_warning. 2017117395Skan (decl_is_template_id): Use TYPE_TEMPLATE_INFO, not 2018117395Skan CLASSTYPE_TEMPLATE_INFO. 2019117395Skan (is_std_substitution): Use CLASSTYPE_TI_TEMPLATE, not 2020117395Skan TYPE_TI_TEMPLATE. 2021117395Skan (write_prefix): Handle typename types correctly. 2022117395Skan (write_template_prefix): Handle template template parameters 2023117395Skan correctly. 2024117395Skan (start_mangling): Add entity parameter. 2025117395Skan (finish_mangling): Warn about names whose mangling will change. 2026117395Skan (mangle_decl_string): Adjust. 2027117395Skan (mangle_type_string): Likewise. 2028117395Skan (mangle_special_for_type): Likewise. 2029117395Skan (mangle_ctor_vtbl_for_type): Likewise. 2030117395Skan (mangle_thunk): Likewise. 2031117395Skan (mangle_guard_variable): Likewise. 2032117395Skan (mangle_ref_init_variable): Likewise. 2033117395Skan 2034104752Skan2002-10-02 Mark Mitchell <mark@codesourcery.com> 2035104752Skan 2036104752Skan PR c++/7188. 2037117395Skan * cp-tree.def (CTOR_INITIALIZER): Use one slot, not two. 2038117395Skan * cp-tree.h (emit_base_init): Rename to .... 2039117395Skan (emit_mem_initializers): ... this. 2040117395Skan (expand_member_init): Change prototype. 2041117395Skan * init.c (perform_member_init): Compute explicit, rather than 2042117395Skan requiring it as a parameter. 2043117395Skan (sort_member_init): Rename to ... 2044117395Skan (sort_mem_initializers): ... this. Process bases and data members 2045117395Skan together. 2046117395Skan (sort_base_init): Remove. 2047117395Skan (emit_base_init): Rename to ... 2048117395Skan (emit_mem_initializers): ... this. 2049117395Skan (expand_aggr_vbase_init_1): Remove. 2050117395Skan (construct_virtual_bases): Rename to ... 2051117395Skan (construct_virtual_base): ... this. 2052117395Skan (expand_member_init): Rework handling of base initializers. 2053117395Skan * method.c (do_build_copy_constructor): Use 2054117395Skan finish_mem_initializers. 2055117395Skan * parse.y (member_init): Adjust calls to expand_member_init. 2056117395Skan * pt.c (tsubst_expr): Simplify CTOR_INITIALIZER case. 2057117395Skan (tsubst_initializer_list): Use expand_member_init. 2058117395Skan * semantics.c (finish_mem_intiailizers): Simplify. 2059104752Skan 2060117395Skan2002-10-02 Matt Austern <austern@apple.com> 2061117395Skan * decl.c (walk_vtables_r): Fixed typo that caused result to 2062117395Skan never get a nonzero value. 2063117395Skan 2064117395Skan2002-10-02 Roger Sayle <roger@eyesopen.com> 2065117395Skan 2066117395Skan PR optimization/6627 2067117395Skan * cp-tree.h (enum ptrmemfunc_vbit_where_t): Delete definition 2068117395Skan from here, and move it to tree.h. 2069117395Skan * decl.c (cxx_init_decl_processing): If storing the vbit 2070117395Skan in function pointers, ensure that force_align_functions_log 2071117395Skan is atleast one. 2072117395Skan 2073117395Skan2002-10-02 Matt Austern <austern@apple.com> 2074117395Skan 2075117395Skan * class.c (check_field_decls): Changed warning about const member 2076117395Skan variables so that it doesn't get issued for a class aggregate. 2077117395Skan 2078117395Skan2002-10-01 Mark Mitchell <mark@codesourcery.com> 2079117395Skan 2080117395Skan * decl.c (cp_finish_decl): Make sure array types are laid out, 2081117395Skan even if the array bounds are unknown. 2082117395Skan 2083117395Skan2002-10-01 Steve Ellcey <sje@cup.hp.com> 2084117395Skan 2085117395Skan * class.c (build_vtbl_initializer): Change build_c_cast 2086117395Skan to build1. 2087117395Skan 2088117395Skan2002-10-01 Mark Mitchell <mark@codesourcery.com> 2089117395Skan 2090117395Skan * decl.c (cp_finish_decl): Make sure array types are laid out, 2091117395Skan even if the array bounds are unknown. 2092117395Skan 2093117395Skan * decl.c (cp_finish_decl): Correct check for dynamic 2094117395Skan initialization of thread-local storage. 2095117395Skan 2096117395Skan2002-09-30 Nathan Sidwell <nathan@codesourcery.com> 2097117395Skan 2098117395Skan * tree.c (really_overloaded_fn): TEMPLATE_ID_EXPRs are also 2099117395Skan overloaded. 2100117395Skan 2101117395Skan2002-09-30 Steve Ellcey <sje@cup.hp.com> 2102117395Skan 2103117395Skan * class.c (build_vtbl_initializer): Add cast. 2104117395Skan (add_vcall_offset_vtbl_entries_1): 2105117395Skan Use TARGET_VTABLE_DATA_ENTRY_DISTANCE for offset. 2106117395Skan 2107117395Skan2002-09-30 Mark Mitchell <mark@codesourcery.com> 2108117395Skan 2109117395Skan * class.c (walk_subobject_offsets): Correct the calculation of 2110117395Skan offsets for virtual bases. Correct the counting of array 2111117395Skan elements. 2112117395Skan (layout_nonempty_base_or_field): Simplify. Correct the 2113117395Skan calculation of offsets to be propagated through the binfo 2114117395Skan hierarchy. 2115117395Skan (build_base_field): Avoid creating a FIELD_DECL for empty bases. 2116117395Skan Add the FIELD_DECL to TYPE_FIELDS. 2117117395Skan (build_base_fields): Adjust accordingly. 2118117395Skan (layout_virtual_bases): Use build_base_field. 2119117395Skan (end_of_class): Return a tree, not an integer. 2120117395Skan (warn_about_ambiguous_direct_bases): Rename to ... 2121117395Skan (warn_about_ambiguous_bases): ... this. 2122117395Skan (include_empty_classes): New function. 2123117395Skan (layout_class_type): Create an alternative version of the type to 2124117395Skan be used when as a base class type. Do not call 2125117395Skan finish_record_layout until we are done laying out the class. 2126117395Skan * cp-tree.h (lang_type_class): Remove size, size_unit. Add 2127117395Skan as_base. 2128117395Skan (CLASSTYPE_SIZE): Reimplement. 2129117395Skan (CLASSTYPE_SIZE_UNIT): Likewise. 2130117395Skan (CLASSTYPE_ALIGN): Likweise. 2131117395Skan (CLASSTYPE_USER_ALIGN): Likewise. 2132117395Skan (CLASSTYPE_AS_BASE): New macro. 2133117395Skan (DECL_INITIALIZED_P): Likewise. 2134117395Skan (extract_init): Remove prototype. 2135117395Skan (build_forced_zero_init): Rename to ... 2136117395Skan (build_zero_init): ... this. 2137117395Skan (force_store_init_value): Remove. 2138117395Skan * decl.c (obscure_complex_init): Remove. 2139117395Skan (duplicate_decls): Copy DECL_INITIALIZED_P. 2140117395Skan (check_initializer): Do not leave junk in DECL_INITIAL. 2141117395Skan (cp_finish_decl): Handle zero-initialization of entities with 2142117395Skan static storage duration. 2143117395Skan * expr.c (extract_init): Remove. 2144117395Skan * init.c (build_forced_zero_init): Remove. 2145117395Skan (build_zero_init): New function. 2146117395Skan (build_default_init): Use it. 2147117395Skan (build_field_list): Skip FIELD_DECLs for base subobjects. 2148117395Skan (push_base_cleanups): Likewise. 2149117395Skan * method.c (do_build_assign_ref): Likewise. 2150117395Skan (synthesize_exception_spec): Likewise. 2151117395Skan * pt.c (tsubst_decl): Clear DECL_INITIALIZED_P. 2152117395Skan (regenerate_decl_from_template): To not set DECL_INITIAL for a 2153117395Skan static data member whose initialization took place in its class. 2154117395Skan (instantiate_decl): Do not pass an initializer to cp_finish_decl 2155117395Skan in that situation. 2156117395Skan * search.c (dfs_push_decls): Skip FIELD_DECLs for base subobjects. 2157117395Skan (dfs_unuse_fields): Likewise. 2158117395Skan * tree.c (pod_type_p): Handle error_mark_node. 2159117395Skan (zero_init_p): Likewise. 2160117395Skan * typeck.c (lookup_anon_field): Skip FIELD_DECLs for base 2161117395Skan subobjects. 2162117395Skan * typeck2.c (store_init_value): Remove #if 0'd code. 2163117395Skan (force_store_init_value): Remove. 2164117395Skan (process_init_constructor): Use build_zero_init. 2165117395Skan 2166117395Skan2002-09-29 Nathan Sidwell <nathan@codesourcery.com> 2167117395Skan 2168117395Skan PR c++/7788 2169117395Skan * rtti.c (unemitted_tinfo_decl_p): Check it has a field. 2170117395Skan 2171117395Skan2002-09-29 Kazu Hirata <kazu@cs.umass.edu> 2172117395Skan 2173117395Skan * cp-tree.h: Fix comment typos. 2174117395Skan * decl.c: Likewise. 2175117395Skan * pt.c: Likewise. 2176117395Skan 2177117395Skan2002-09-25 Mark Mitchell <mark@codesourcery.com> 2178117395Skan 2179117395Skan * cp/class.c (contains_empty_class_p): New method. 2180117395Skan (walk_subobject_offsets): Correct computation of field offset. 2181117395Skan (layout_empty_base): Correct placement of emtpy base classes. 2182117395Skan (layout_class_type): Warn about ABI changes. 2183117395Skan 2184117395Skan2002-09-23 Mark Mitchell <mark@codesourcery.com> 2185117395Skan 2186117395Skan * cp/class.c (layout_virtual_bases): Do not round the size of the 2187117395Skan type to a multiple of the alignment before laying out virtual bases. 2188117395Skan (layout_class_type): Correct handling of bit-fields that are wider 2189117395Skan than their type inside unions. Round the size of the type to a 2190117395Skan even number of bytes when computing the size without virtual 2191117395Skan bases. 2192117395Skan * cp/cp-tree.h (abi_version_at_least): New macro. 2193117395Skan 2194117395Skan2002-09-21 Kazu Hirata <kazu@cs.umass.edu> 2195117395Skan 2196117395Skan * ChangeLog: Follow spelling conventions. 2197117395Skan * ChangeLog.2: Likewise. 2198117395Skan * call.c: Likewise. 2199117395Skan * class.c: Likewise. 2200117395Skan * cp-tree.h: Likewise. 2201117395Skan * cvt.c: Likewise. 2202117395Skan * decl.c: Likewise. 2203117395Skan * decl2.c: Likewise. 2204117395Skan * except.c: Likewise. 2205117395Skan * friend.c: Likewise. 2206117395Skan * g++spec.c: Likewise. 2207117395Skan * init.c: Likewise. 2208117395Skan * lex.c: Likewise. 2209117395Skan * mangle.c: Likewise. 2210117395Skan * method.c: Likewise. 2211117395Skan * operators.def: Likewise. 2212117395Skan * optimize.c: Likewise. 2213117395Skan * pt.c: Likewise. 2214117395Skan * rtti.c: Likewise. 2215117395Skan * search.c: Likewise. 2216117395Skan * semantics.c: Likewise. 2217117395Skan * spew.c: Likewise. 2218117395Skan * tree.c: Likewise. 2219117395Skan * typeck.c: Likewise. 2220117395Skan 2221117395Skan2002-09-18 Devang Patel <dpatel@apple.com> 2222117395Skan 2223117395Skan * cp/cp-tree.h: New prototype for walk_vtabls(). 2224117395Skan * cp/decl.c (walk_vtables_r): New function. 2225117395Skan (struct cp_binding_level): Add new members, namespaces, 2226117395Skan names_size and vtables. 2227117395Skan (add_decl_to_level): Add decl in namespaces or vtables 2228117395Skan chain, if conditions match. 2229117395Skan (walk_vtables): New function. 2230117395Skan (walk_namespaces_r): Travers separate namespace chain 2231117395Skan for namespace decls. 2232117395Skan (wrapup_globals_for_namespace): Use names_size instead 2233117395Skan of list_length(). 2234117395Skan * cp/decl2.c (finish_file): Use walk_vtables() instead of 2235117395Skan walk_globals() to walk vtable decls. 2236117395Skan 2237117395Skan2002-09-18 Nathan Sidwell <nathan@codesourcery.com> 2238117395Skan 2239117395Skan * decl.c (grokdeclarator): Use assert, not internal_error. Don't 2240117395Skan ICE with invalid pointers & references. 2241117395Skan 2242117395Skan2002-09-17 Zack Weinberg <zack@codesourcery.com> 2243117395Skan 2244117395Skan * Make-lang.in: Remove all references to the demangler. 2245117395Skan * cxxfilt.c: Moved to binutils. 2246117395Skan 2247117395Skan2002-09-16 Nathan Sidwell <nathan@codesourcery.com> 2248117395Skan 2249117395Skan PR c++/7718 2250117395Skan * pt.c (tsubst_decl): Remove assert. 2251117395Skan 2252117395Skan Remove DR 295 implementation. 2253117395Skan * pt.c (check_cv_quals_for_unify): Disable function & method cases. 2254117395Skan * tree.c (cp_build_qualified_type_real): Likewise. Don't warn 2255117395Skan about ignoring volatile qualifiers. 2256117395Skan 2257117395Skan * search.c (lookup_member): Correct documentation. 2258117395Skan 2259117395Skan2002-09-16 Geoffrey Keating <geoffk@apple.com> 2260117395Skan 2261117395Skan * cp-tree.h (union lang_tree_node): Add chain_next option. 2262117395Skan 2263117395Skan2002-09-16 Nathan Sidwell <nathan@codesourcery.com> 2264117395Skan 2265117395Skan * parse.y (parse_finish_call_expr): Check lookup_member result. 2266117395Skan 2267117395Skan PR c++/7015 2268117395Skan * semantic.c (finish_asm_stmt): Fix operand/output_operands 2269117395Skan thinko. 2270117395Skan * typeck.c (c_expand_asm_operands): Protect from error_mark_node. 2271117395Skan 2272117395Skan2002-09-15 Nathan Sidwell <nathan@codesourcery.com> 2273117395Skan 2274117395Skan PR c++/7919 2275117395Skan * call.c (build_over_call): Convert this pointer for fns found by 2276117395Skan using decls. 2277117395Skan 2278117395Skan2002-09-15 Kazu Hirata <kazu@cs.umass.edu> 2279117395Skan 2280117395Skan * ChangeLog: Follow spelling conventions. 2281117395Skan * ChangeLog.1: Likewise. 2282117395Skan 2283117395Skan2002-09-14 Nathan Sidwell <nathan@codesourcery.com> 2284117395Skan 2285117395Skan PR c++/7768 2286117395Skan * pt.c (build_template_decl): Copy DECL_DESTRUCTOR_P. 2287117395Skan 2288117395Skan2002-09-14 Kazu Hirata <kazu@cs.umass.edu> 2289117395Skan 2290117395Skan * error.c: Fix comment formatting. 2291117395Skan * except.c: Likewise. 2292117395Skan * expr.c: Likewise. 2293117395Skan * friend.c: Likewise. 2294117395Skan * g++spec.c: Likewise. 2295117395Skan * init.c: Likewise. 2296117395Skan * lex.c: Likewise. 2297117395Skan * mangle.c: Likewise. 2298117395Skan * method.c: Likewise. 2299117395Skan * optimize.c: Likewise. 2300117395Skan * pt.c: Likewise. 2301117395Skan * rtti.c: Likewise. 2302117395Skan * search.c: Likewise. 2303117395Skan * semantics.c: Likewise. 2304117395Skan * spew.c: Likewise. 2305117395Skan * tree.c: Likewise. 2306117395Skan * typeck.c: Likewise. 2307117395Skan * typeck2.c: Likewise. 2308117395Skan 2309117395Skan2002-09-13 Matt Austern <austern@apple.com> 2310117395Skan 2311117395Skan PR C++/7828 2312117395Skan * cp/cp-tree.h, cp/tree.c: New function non_cast_lvalue_p. 2313117395Skan * cp/call.c: Change call-by-const-reference mechanism to use 2314117395Skan non_cast_lvalue_p when deciding whether the create a temporary. 2315117395Skan We need a temporary when passing, e.g. (long) x by const ref. 2316117395Skan 2317117395Skan2002-09-13 Nathan Sidwell <nathan@codesourcery.com> 2318117395Skan 2319117395Skan * pt.c (unify, ARRAY_TYPE): Element type can be more qualified. 2320117395Skan 2321117395Skan2002-09-13 Kazu Hirata <kazu@cs.umass.edu> 2322117395Skan 2323117395Skan * decl.c: Fix comment formatting. 2324117395Skan * decl2.c: Likewise. 2325117395Skan 2326117395Skan2002-09-12 Kazu Hirata <kazu@cs.umass.edu> 2327117395Skan 2328117395Skan * call.c: Fix comment formatting. 2329117395Skan * class.c: Likewise. 2330117395Skan * cp-lang.c: Likewise. 2331117395Skan * cp-tree.h: Likewise. 2332117395Skan * cvt.c: Likewise. 2333117395Skan 2334117395Skan2002-09-11 Zack Weinberg <zack@codesourcery.com> 2335117395Skan 2336117395Skan * Make-lang.in: Build cp/cxxfilt.o from $(srcdir)/cp/cxxfilt.c, 2337117395Skan and c++filt from cxxfilt.o + version.o + $(LIBDEPS). 2338117395Skan * cxxfilt.c: New file: split from libiberty/cplus-dem.c, with 2339117395Skan minor adjustments (use version_string, eliminate yet another 2340117395Skan duplicate of xmalloc) 2341117395Skan 2342117395Skan2002-09-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2343117395Skan 2344117395Skan * cp-tree.h (require_complete_eh_spec_types): Add prototype. 2345117395Skan 2346117395Skan2002-09-05 Jason Merrill <jason@redhat.com> 2347117395Skan 2348117395Skan * typeck2.c (add_exception_specifier): Only pedwarn for an 2349117395Skan incomplete type. 2350117395Skan (require_complete_eh_spec_types): New fn. 2351117395Skan (cxx_incomplete_type_diagnostic): Also support pedwarning. 2352117395Skan * typeck.c (complete_type_or_diagnostic): Likewise. 2353117395Skan * call.c (build_call): Call require_complete_eh_spec_types. 2354117395Skan * rtti.c (get_pseudo_ti_desc): Give an error rather than aborting 2355117395Skan on an incomplete type. 2356117395Skan 2357103445Skan2002-09-04 Jakub Jelinek <jakub@redhat.com> 2358103445Skan 2359103445Skan * decl.c (start_cleanup_fn): Clear interface_only before 2360103445Skan start_function, restore it afterwards. 2361103445Skan 2362117395Skan2002-08-31 Jason Merrill <jason@redhat.com> 2363103445Skan 2364117395Skan * cp-lang.c (cp_expr_size): Allow initialization from a 2365117395Skan CONSTRUCTOR. 2366103445Skan 2367117395Skan2002-08-30 Richard Henderson <rth@redhat.com> 2368103445Skan 2369117395Skan PR opt/7515 2370117395Skan * tree.c: Include target.h. 2371117395Skan (cp_cannot_inline_tree_fn): Don't auto-inline functions that 2372117395Skan don't bind locally. 2373117395Skan * Makefile.in (tree.o): Update. 2374103445Skan 2375102780Skan2002-08-27 Mark Mitchell <mark@codesourcery.com> 2376102780Skan 2377102780Skan * class.c (layout_virtual_bases): Warn about bugs in G++ that 2378102780Skan result in incorrect object layouts. 2379102780Skan (layout_class_type): Likewise. 2380102780Skan 2381117395Skan2002-08-24 Matt Austern <austern@apple.com> 2382117395Skan 2383117395Skan * tree.c (lvalue_p_1): Add argument for whether casts of lvalues 2384117395Skan are allowable. 2385117395Skan (real_lvalue_p): Update caller. 2386117395Skan (lvalue_p): Ditto. 2387117395Skan (non_cast_lvalue_or_else): New. 2388117395Skan * tree.h: Declare it. 2389117395Skan * typeck.c (build_unary_op): Use non_cast_lvalue_or_else. 2390117395Skan 2391117395Skan2002-08-22 Mark Mitchell <mark@codesourcery.com> 2392117395Skan 2393117395Skan * typeck.c (build_class_member_access_expr): Handle COMPOUND_EXPR 2394117395Skan and COND_EXPR specially; fix error message output. 2395117395Skan 2396102780Skan2002-08-22 Jason Merrill <jason@redhat.com> 2397102780Skan 2398117395Skan * pt.c (tsubst_expr): RETURN_EXPR is now RETURN_STMT_EXPR. 2399117395Skan * semantics.c (nullify_returns_r): Likewise. 2400102780Skan 2401117395Skan2002-08-17 Gabriel Dos Reis <gdr@integrable-solutions.net> 2402102780Skan 2403117395Skan Fix PR/7621 2404117395Skan * typeck.c (finish_class_member_access_expr): Diagnose cases where 2405117395Skan name lookup finds nothing. 2406102780Skan 2407117395Skan2002-08-15 Jason Merrill <jason@redhat.com> 2408102780Skan 2409117395Skan * semantics.c (finish_then_clause): Remove redundant assignment. 2410117395Skan (finish_if_stmt, begin_switch_stmt, finish_switch_stmt): Move the 2411117395Skan extra binding level outside the if/switch statement. 2412117395Skan (finish_while_cond, finish_for_cond): Rewrite complex condition 2413117395Skan into the loop body. 2414117395Skan 2415117395Skan2002-08-15 Alexandre Oliva <aoliva@redhat.com> 2416117395Skan 2417117395Skan * parse.y (sizeof, alignof, typeof): New non-terminals to 2418117395Skan increment skip_evaluation. Replace terminals with them and 2419117395Skan decrement skip_evaluation at the end of rules using them. 2420117395Skan * decl2.c (mark_used): Don't assemble_external if 2421117395Skan skipping evaluation. 2422117395Skan 2423117395Skan2002-08-15 Gabriel Dos Reis <gdr@nerim.net> 2424117395Skan 2425117395Skan Fix PR/7504 2426117395Skan * parse.y (parse_finish_call_expr): Handle incomplete 2427117395Skan type used to name a scope. 2428117395Skan 2429117395Skan2002-08-15 Nathan Sidwell <nathan@codesourcery.com> 2430117395Skan 2431117395Skan PR c++/7598 2432117395Skan * typeck.c (build_unary_op): Fold offsetof idiom. Fixes 2433117395Skan regression caused by my 2002-08-08 patch. 2434117395Skan 2435117395Skan2002-08-13 Mark Mitchell <mark@codesourcery.com> 2436117395Skan 2437117395Skan * decl.c (pushdecl_class_level): Honor requests to bind names to 2438117395Skan OVERLOADs. 2439117395Skan 2440117395Skan2002-08-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2441117395Skan 2442117395Skan * decl2.c (build_call_from_tree): Fix uninitialized variable. 2443117395Skan * parse.y (parse_finish_call_expr): Likewise. 2444117395Skan * repo.c (old_args, old_dir, old_main): Const-ify. 2445117395Skan 2446117395Skan2002-08-11 Gabriel Dos Reis <gdr@nerim.net> 2447117395Skan 2448117395Skan * decl.c (duplicate_decls): Replace DECL_SOURCE_FILE + 2449117395Skan DECL_SOURCE_LINE with DECL_SOURCE_LOCATION. 2450117395Skan * optimize.c (maybe_clone_body): Likewise. 2451117395Skan * pt.c (tsubst_enum): Likewise. 2452117395Skan (lookup_template_class): Likewise. 2453117395Skan * tree.c (cp_copy_res_decl_for_inlining): Likewise. 2454117395Skan 2455117395Skan2002-08-10 Neil Booth <neil@daikokuya.co.uk> 2456117395Skan 2457117395Skan * lang-specs.h: Remove -ansi. 2458117395Skan 2459117395Skan2002-08-10 Nathan Sidwell <nathan@codesourcery.com> 2460117395Skan 2461117395Skan * tree.c (maybe_dummy_object): Replace // with /* */ 2462117395Skan 2463117395Skan2002-08-09 Mark Mitchell <mark@codesourcery.com> 2464117395Skan 2465117395Skan * call.c (standard_conversion): Use build_ptrmem_type. 2466117395Skan * cp-tree.h (build_ptrmem_type): New function. 2467117395Skan (adjust_result_of_qualified_name_lookup): Likewise. 2468117395Skan * decl.c (grokvardecl): Do not look for OFFSET_TYPEs to indicate 2469117395Skan static data members. 2470117395Skan (build_ptrmem_type): New function. 2471117395Skan (grokdeclarator): Do not use build_offset_type when encountering a 2472117395Skan qualified name. 2473117395Skan * parse.y (parse_finish_call_expr): Use 2474117395Skan adjust_result_of_qualified_name_lookup. 2475117395Skan * search.c (adjust_result_of_qualified_name_lookup): New function. 2476117395Skan * typeck.c (qualify_type_recursive): Use TYPE_PTRMEM_* rather than 2477117395Skan accessing OFFSET_TYPEs directly. 2478117395Skan 2479117395Skan2002-08-08 Mike Stump <mrs@apple.com> 2480117395Skan 2481117395Skan * call.c (add_builtin_candidate): legal -> valid, illegal -> invalid. 2482117395Skan (type_decays_to): Likewise. 2483117395Skan * class.c (find_final_overrider): Likewise. 2484117395Skan (maybe_note_name_used_in_class): Likewise. 2485117395Skan * decl.c (current_tmpl_spec_kind): Likewise. 2486117395Skan (add_binding): Likewise. 2487117395Skan (push_class_binding): Likewise. 2488117395Skan (duplicate_decls): Likewise. 2489117395Skan (layout_var_decl): Likewise. 2490117395Skan (grokfndecl): Likewise. 2491117395Skan (grokdeclarator): Likewise. 2492117395Skan (check_default_argument): Likewise. 2493117395Skan * decl2.c (handle_class_head): Likewise. 2494117395Skan * error.c (dump_template_decl): Likewise. 2495117395Skan * init.c (build_offset_ref): Likewise. 2496117395Skan * pt.c (check_specialization_scope): Likewise. 2497117395Skan (determine_specialization): Likewise. 2498117395Skan (check_explicit_specialization): Likewise. 2499117395Skan (maybe_check_template_type): Likewise. 2500117395Skan (process_partial_specialization): Likewise. 2501117395Skan (check_default_tmpl_args): Likewise. 2502117395Skan (push_template_decl_real): Likewise. 2503117395Skan (convert_template_argument): Likewise. 2504117395Skan (try_class_unification): Likewise. 2505117395Skan (get_bindings_real): Likewise. 2506117395Skan (do_decl_instantiation): Likewise. 2507117395Skan * semantics.c (begin_function_definition): Likewise. 2508117395Skan (finish_member_declaration): Likewise. 2509117395Skan (check_multiple_declarators): Likewise. 2510117395Skan * typeck.c (comp_array_types): Likewise. 2511117395Skan (comptypes): Likewise. 2512117395Skan (expr_sizeof): Likewise. 2513117395Skan (build_binary_op): Likewise. 2514117395Skan (dubious_conversion_warnings): Likewise. 2515117395Skan (check_return_expr): Likewise. 2516117395Skan 2517117395Skan2002-08-08 Mark Mitchell <mark@codesourcery.com> 2518117395Skan 2519117395Skan * typeck.c (build_class_member_access_expr): Do not return 2520117395Skan error_mark_node when no error has occurred. 2521117395Skan 2522117395Skan2002-08-08 Nathan Sidwell <nathan@codesourcery.com> 2523117395Skan 2524117395Skan * typeck.c (build_component_addr): Remove. 2525117395Skan (build_unary_op): Just check it's not a bitfield, and then build 2526117395Skan an ADDR_EXPR. 2527117395Skan 2528117395Skan2002-08-08 Nathan Sidwell <nathan@codesourcery.com> 2529117395Skan 2530117395Skan * class.c (convert_to_base): Correct check for error_mark_node. 2531117395Skan (create_vtable_ptr): Remove unused VFUNS_P parm. 2532117395Skan 2533117395Skan2002-08-08 Nathan Sidwell <nathan@codesourcery.com> 2534117395Skan 2535117395Skan * cp/Make-lang.in (c++.mostlyclean): Remove coverage files. 2536117395Skan 2537117395Skan2002-08-07 Mark Mitchell <mark@codesourcery.com> 2538117395Skan 2539117395Skan Rework build_component_ref. 2540117395Skan * call.c (build_vfield_ref): Do not go through build_component_ref. 2541117395Skan (build_field_call): Use build_class_member_access_expr. 2542117395Skan (build_user_type_conversion_1): Use BASELINK_FUNCTIONS. 2543117395Skan (build_object_call): Likewise. 2544117395Skan * class.c (convert_to_base): New function. 2545117395Skan (type_requires_array_cookie): Use BASELINK_FUNCTIONS. 2546117395Skan (instantiate_type): Handle BASELINKs. 2547117395Skan * cp-tree.def (BASELINK): New tree code. 2548117395Skan * cp-tree.h (BASELINK_P): Reimplement. 2549117395Skan (SET_BASELINK_P): Remove. 2550117395Skan (BASELINK_BINFO): Reimplement. 2551117395Skan (BASELINK_FUNCTIONS): Likewise. 2552117395Skan (BASELINK_ACCESS_BINFO): Likewise. 2553117395Skan (BASELINK_OPTYPE): Likewise. 2554117395Skan (convert_to_base): New function. 2555117395Skan (name_p): Likewise. 2556117395Skan (build_object_ref): Remove. 2557117395Skan (build_component_ref_1): Likewise. 2558117395Skan (build_component_ref): Likewise. 2559117395Skan (build_x_component_ref): Likewise. 2560117395Skan (build_class_member_access_expr): New function. 2561117395Skan (finish_class_member_access_expr): Likewise. 2562117395Skan (build_ptrmemfunc_access_expr): Likewise. 2563117395Skan * decl.c (grokdeclarator): Handle BASELINKs. 2564117395Skan * decl2. (build_expr_from_tree): Handle COMPONENT_REFs by using 2565117395Skan finish_class_member_access_expr. 2566117395Skan (arg_assoc): Handle BASELINKs. 2567117395Skan (do_class_using_decl): Likewise. 2568117395Skan * error.c (dump_decl): Likewise. 2569117395Skan (dump_expr): Use build_ptrmemfunc_access_expr. 2570117395Skan * except.c (dtor_nothrow): Use CLASSTYPE_DESTRUCTORS to find 2571117395Skan destructors. 2572117395Skan (build_throw): Use BASELINK_FUNCTIONS. 2573117395Skan * init.c (perform_member_init): Use 2574117395Skan build_class_member_access_expr. 2575117395Skan (build_offset_ref): Handle BASELINKs. Use 2576117395Skan build_class_member_access_expr. 2577117395Skan * method.c (hack_identifier): Likewise. 2578117395Skan * parse.y (do_id): Use BASELINK, not TREE_LIST. 2579117395Skan (primary): Remove uses of build_object_ref. 2580117395Skan * pt.c (lookup_template_function): Handle BASELINKs. 2581117395Skan (resolve_overloaded_unification): Likewise. 2582117395Skan * search.c (build_baselink): Build a BASELINK, not a TREE_LIST. 2583117395Skan (lookup_field): Use BASELINK, not TREE_LIST. 2584117395Skan (lookup_fnfiels): Likewise. 2585117395Skan (setup_class_bindings): Likewise. 2586117395Skan * semantics.c (finish_object_call_expr): Do not use 2587117395Skan build_method_call when we already know what function is being 2588117395Skan called. 2589117395Skan * spew.c (identifier_type): Use BASELINK, not TREE_LIST. 2590117395Skan * tree.c (really_overloaded_fn): Use OVL_CHAIN for OVERLOADs, not 2591117395Skan TREE_CHAIN. 2592117395Skan (name_p): New function. 2593117395Skan * typeck.c (build_object_ref): Remove. 2594117395Skan (build_component_ref_1): Likewise. 2595117395Skan (build_x_component_ref): Likewise. 2596117395Skan (build_class_member_access_expr): New function. 2597117395Skan (finish_class_member_access_expr): Likewise. 2598117395Skan (build_ptrmemfunc_access_expr): Likewise. 2599117395Skan (get_member_function_from_ptrfunc): Use 2600117395Skan build_ptrmemfunc_access_expr. 2601117395Skan (build_binary_op): Likewise. 2602117395Skan (build_unary_op): Likewise. 2603117395Skan (build_ptrmemfunc): Likewise. 2604117395Skan (pfn_from_ptrmemfunc): Likewise. 2605117395Skan * typeck2.c (build_m_component_ref): Adjust comment. 2606117395Skan 2607117395Skan2002-08-07 Neil Booth <neil@daikokuya.co.uk> 2608117395Skan 2609117395Skan * Make-lang.in (CXX_C_OBJS): Update. 2610117395Skan * cp-lang.c (LANG_HOOKS_DECODE_OPTION): Use c_common_decode_option. 2611117395Skan * cp-tree.h (cxx_decode_option): Remove. 2612117395Skan * decl2.c (compare_options, lang_f_options, unsupported_options, 2613117395Skan cxx_decode_option): Remove. 2614117395Skan 2615117395Skan2002-08-06 Gabriel Dos Reis <gdr@nerim.net> 2616117395Skan 2617117395Skan * typeck.c (build_x_unary_op): Handle pointer-to-member. 2618117395Skan 2619117395Skan2002-08-05 Geoffrey Keating <geoffk@redhat.com> 2620117395Skan 2621117395Skan * class.c: Don't include obstack.h. 2622117395Skan (popclass): 2623117395Skan * decl2.c: Delete bogus comment. 2624117395Skan * error.c: Don't include obstack.h. 2625117395Skan * except.c: Likewise. 2626117395Skan (dump_type): Correct comment. 2627117395Skan * method.c: Don't include obstack.h. 2628117395Skan * tree.c: Likewise. 2629117395Skan 2630117395Skan2002-08-04 Gabriel Dos Reis <gdr@nerim.net> 2631117395Skan 2632117395Skan Fix PR/2213 2633117395Skan * cvt.c (cp_convert_to_pointer): Reject conversions from integral 2634117395Skan expressions to pointer-to-data-member of pointer-to-member-functions. 2635117395Skan 2636117395Skan2002-08-04 Geoffrey Keating <geoffk@redhat.com> 2637117395Skan 2638117395Skan * cvt.c (ocp_convert): Delete obsolete code. 2639117395Skan * parse.y (permanent_obstack): Delete declaration. 2640117395Skan * pt.c (permanent_obstack): Delete declaration. 2641117395Skan * repo.c (permanent_obstack): Delete declaration. 2642117395Skan (open_repo_file): Use xmalloc instead of permanent_obstack. 2643117395Skan (init_repo): Use xstrdup instead of permanent_obstack. 2644117395Skan 2645117395Skan2002-08-04 Nathan Sidwell <nathan@codesourcery.com> 2646117395Skan 2647117395Skan * cp-tree.h (VF_DERIVED_VALUE): Remove. 2648117395Skan * class.c (finish_struct_1): Use VF_BINFO_VALUE not VF_DERIVED_VALUE. 2649117395Skan 2650102780Skan2002-08-03 Nathan Sidwell <nathan@codesourcery.com> 2651102780Skan 2652102780Skan PR 7470. 2653102780Skan C++ ABI change - vfunc ordering. 2654102780Skan * class.c (add_virtual_function): Remove. 2655102780Skan (dfs_modify_all_vtables): Take list of all declared 2656102780Skan virtuals. Assign all that are not in primary base. 2657102780Skan (check_for_override): Adjust comments. 2658102780Skan (create_vtable_ptr): Take single list of virtuals. Build chain 2659102780Skan of declared virtuals here. 2660102780Skan (layout_class_type): Take single list of virtuals. Adjust. 2661102780Skan (finish_struct_1): Keep virtuals on single list. Adjust. 2662102780Skan 2663117395Skan2002-08-02 Mark Mitchell <mark@codesourcery.com> 2664117395Skan 2665117395Skan * init.c (build_member_call): Use build_new_method_call, not 2666117395Skan build_method_call. 2667117395Skan 2668117395Skan2002-08-02 Krister Walfridsson <cato@df.lth.se> 2669117395Skan 2670117395Skan * Make-lang.in (spew.o, lex.o, pt.o): Add path to parse.h dependencies. 2671117395Skan 2672117395Skan2002-08-02 Mark Mitchell <mark@codesourcery.com> 2673117395Skan 2674117395Skan * call.c (build_method_call): Issue a more helpful error message 2675117395Skan about ambiguous method names. 2676117395Skan 2677117395Skan2002-08-02 Nathan Sidwell <nathan@codesourcery.com> 2678117395Skan 2679117395Skan * tree.c (build_shared_int_cst): Make cache file scope, and 2680117395Skan GTY it. 2681117395Skan 2682117395Skan2002-08-02 Jason Merrill <jason@redhat.com> 2683117395Skan 2684117395Skan * cp-lang.c (LANG_HOOKS_EXPR_SIZE): Define. 2685117395Skan (cp_expr_size): New fn. 2686117395Skan * call.c (build_over_call): Lose empty class hackery. 2687117395Skan (convert_arg_to_ellipsis): Promote non-POD warning to error. 2688117395Skan * typeck.c (build_modify_expr): Don't use save_expr on an lvalue. 2689117395Skan 2690117395Skan * semantics.c (expand_body): Do tree optimization in the function 2691117395Skan context, too. 2692117395Skan 2693117395Skan2002-08-01 Neil Booth <neil@daikokuya.co.uk> 2694117395Skan 2695117395Skan * cp-tree.h: Move all warning and flag declarations to c-common.h. 2696117395Skan * decl.c: Move all warning and flag variables to c-common.c. 2697117395Skan * decl2.c: Move all warning and flag variables to c-common.c. 2698117395Skan * lex.c (flag_digraphs): Remove. 2699117395Skan (warn_traditional): Now in c-common.c. 2700117395Skan 2701117395Skan2002-07-31 Mark Mitchell <mark@codesourcery.com> 2702117395Skan 2703117395Skan * call.c (build_field_call): Do not look up the field by name. 2704117395Skan (build_method_call): Simplify. 2705117395Skan (struct z_candidate): Add access_path and conversion_path. Remove 2706117395Skan basetype_path. 2707117395Skan (convert_class_to_reference): Adjust use of 2708117395Skan add_function_candidate. 2709117395Skan (add_candidate): Add conversion_path argument. 2710117395Skan (add_function_candidate): Use it. 2711117395Skan (add_conv_dndidate): Likewise. 2712117395Skan (build_builtin_candidate): Likewise. 2713117395Skan (add_template_candidate_real): Add conversion_path argument. 2714117395Skan (add_template_conv_candidate): Likewise. 2715117395Skan (add_template_candidate): Likewise. 2716117395Skan (build_user_type_conversion_1): Use it. 2717117395Skan (build_new_function_call): Remove name lookup code. Adjust use of 2718117395Skan add_template_candidate and add_function_candidate. 2719117395Skan (build_new_op): Likewise. 2720117395Skan (convert_like_real): Use build_special_member_call. 2721117395Skan (build_over_call): Use cand->conversion_path. 2722117395Skan (build_special_member_call): New method. 2723117395Skan (build_new_method_call): Remove name lookup code. 2724117395Skan * cp-tree.def (OFFSET_REF): Update documentation. 2725117395Skan (TEMPLATE_ID_EXPR): Likewise. 2726117395Skan * cp-tree.h (BASELINK_ACCESS_BINFO): New macro. 2727117395Skan (BASELINK_OPTYPE): Likewise. 2728117395Skan (build_new_method_call): Adjust prototype. 2729117395Skan (build_special_member_call): New method. 2730117395Skan (build_baselink): New method. 2731117395Skan (build_offset_ref_call_from_tree): Likewise. 2732117395Skan (build_call_from_tree): Likewise. 2733117395Skan (finish_qualified_call_expr): Remove. 2734117395Skan (finish_call_expr): Adjust prototype. 2735117395Skan (build_x_function_call): Remove. 2736117395Skan * cvt.c (ocp_convert): Use build_special_member_call. 2737117395Skan * decl2.c (reparse_absdcl_as_expr): Use finish_call_expr. 2738117395Skan (build_expr_from_tree): Adjust handling for TEMPLATE_ID_EXPR and 2739117395Skan CALL_EXPR. 2740117395Skan (build_offset_ref_call_from_tree): New function. 2741117395Skan (build_call_from_tree): Likewise. 2742117395Skan * init.c (expand_cleanup): Use build_special_member_call. 2743117395Skan (expand_default_init): Likewise. 2744117395Skan (build_member_call): Use finish_call_expr. 2745117395Skan (build_new_1): Use build_special_member_call. 2746117395Skan (push_base_cleanups): Likewise. 2747117395Skan * method.c (do_build_assign_ref): Likewise. 2748117395Skan * parse.y (template_id): Do not pass a COMPONENT_REF to 2749117395Skan lookup_template_function. 2750117395Skan (primary): Use parse_finish_call_epxr, not finish_call_expr. 2751117395Skan (parse_finish_call_expr): New function. 2752117395Skan * pt.c (lookup_template_function): Add assertions. 2753117395Skan * search.c (lookup_base): Allow T to be a binfo. 2754117395Skan (build_baselink): New function. 2755117395Skan (lookup_member): Use it. 2756117395Skan * semantics.c (finish_call_expr): Do not do name lookup. 2757117395Skan (finish_object_call_expr): Remove #if 0'd code. 2758117395Skan (finish_qualified_call_expr): Remove. 2759117395Skan * typeck.c (build_x_function_call): Remove. 2760117395Skan (build_static_case): Use build_special_member_call. 2761117395Skan * typeck2.c (build_functional_cast): Likewise. 2762117395Skan 2763102780Skan2002-07-30 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> 2764102780Skan 2765102780Skan * lang-specs.h: Remove __GXX_ABI_VERSION, moved to gcc.c. 2766102780Skan 2767117395Skan2002-07-30 Gabriel Dos Reis <gdr@nerim.net> 2768102780Skan 2769117395Skan * cp-tree.h (VF_DERIVED_VALUE): Restore from previous deletion. 2770102780Skan 2771117395Skan2002-07-30 Nathan Sidwell <nathan@codesourcery.com> 2772102780Skan 2773117395Skan * cp-tree.h (CLASSTYPE_VFIELDS, VF_*, BV_*): Add more 2774117395Skan documentation. 2775102780Skan 2776117395Skan2002-07-29 Alan Modra <amodra@bigpond.net.au> 2777102780Skan 2778117395Skan * cp-tree.h: Comment typo fix. 2779102780Skan 2780117395Skan2002-07-29 Richard Earnshaw <rearnsha@arm.com> 2781102780Skan 2782117395Skan * spew.c (space_for_token): Allocate zeroed memory for a new token 2783117395Skan chunk. 2784102780Skan 2785117395Skan2002-07-27 Roger Sayle <roger@eyesopen.com> 2786102780Skan 2787117395Skan * decl.c (builtin_function_1): No need to explicitly mark 2788117395Skan BUILT_IN_RETURN and BUILT_IN_EH_RETURN as noreturn. 2789102780Skan 2790117395Skan2002-07-27 Roger Sayle <roger@eyesopen.com> 2791102780Skan 2792117395Skan * decl2.c (cxx_decode_option): Support -fno-builtin-foo. 2793102780Skan 2794117395Skan2002-07-26 Jason Merrill <jason@redhat.com> 2795102780Skan 2796117395Skan * call.c (build_over_call): Likewise. 2797117395Skan (cp_convert_parm_for_inlining): New fn. 2798117395Skan (convert_for_arg_passing): New fn. 2799117395Skan (convert_default_arg, build_over_call): Use it. 2800117395Skan (type_passed_as): New fn. 2801117395Skan * pt.c (tsubst_decl): Use it. 2802117395Skan * decl2.c (cp_build_parm_decl): New fn. 2803117395Skan (build_artificial_parm): Use it. 2804117395Skan (start_static_storage_duration_function): Likewise. 2805117395Skan * decl.c (start_cleanup_fn, grokdeclarater): Likewise. 2806117395Skan (grokparms): Don't mess with DECL_ARG_TYPE. 2807117395Skan * typeck.c (convert_arguments): Use convert_for_arg_passing. 2808117395Skan * cp-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING): 2809117395Skan Define. 2810117395Skan * cp-tree.h: Declare new fns. 2811102780Skan 2812117395Skan2002-07-26 Neil Booth <neil@daikokuya.co.uk> 2813117395Skan 2814117395Skan * cp-tree.h (flag_operator_names): Remove. 2815117395Skan * decl2.c (flag_operator_names): Remove. 2816117395Skan (lang_f_options): Remove operator-names. 2817117395Skan * lex.c (D_OPNAME): Remove. 2818117395Skan (reswords): Remove operator names. 2819117395Skan (rid_to_yy): Remove operator names. 2820117395Skan (init_reswords): No need to handle D_OPNAME. 2821117395Skan * spew.c (read_process_identifier): There are no operator 2822117395Skan names. 2823117395Skan 2824117395Skan2002-07-26 Jason Merrill <jason@redhat.com> 2825117395Skan 2826117395Skan * dump.c (cp_dump_tree): Call c_dump_tree. 2827117395Skan * Make-lang.in (CXX_C_OBJS): Add c-dump.o. 2828117395Skan 2829117395Skan2002-07-25 Neil Booth <neil@daikokuya.co.uk> 2830117395Skan 2831117395Skan * error.c (print_whitespace): Remove. 2832117395Skan * g++spec.c (LIBUNWIND): Move. 2833117395Skan * mangle.c (mangled_position, write_signed_number): Remove. 2834117395Skan 2835117395Skan2002-07-25 Neil Booth <neil@daikokuya.co.uk> 2836117395Skan 2837117395Skan * decl2.c (cxx_decode_option): Similarly. 2838117395Skan 2839117395Skan2002-07-25 Gabriel Dos Reis <gdr@nerim.net> 2840117395Skan 2841117395Skan * cp-tree.h (cxx_sizeof_nowarn): Now a macro. 2842117395Skan (cxx_sizeof_or_alignof_type): Take a third argument. 2843117395Skan (cxx_sizeof): Adjust definition. 2844117395Skan (cxx_alignof): Likewise. 2845117395Skan * init.c (build_delete): Use cxx_sizeof_nowarn to reflect reality. 2846117395Skan * typeck.c (cxx_sizeof_or_alignof_type): Take a third argument for 2847117395Skan complaining. 2848117395Skan (c_sizeof_nowarn): Remove definition. 2849117395Skan (build_unary_op): Use cxx_sizeof_nowarn. 2850117395Skan 2851117395Skan2002-07-24 Geoffrey Keating <geoffk@redhat.com> 2852117395Skan 2853117395Skan * tree.c (cp_build_qualified_type_real): When copying 2854117395Skan pointer-to-method types, unshare the record that holds 2855117395Skan the cached pointer-to-member-function type. 2856117395Skan 2857117395Skan2002-07-23 Neil Booth <neil@daikokuya.co.uk> 2858117395Skan 2859117395Skan * cp-tree.h (FILE_FUNCTION_PREFIX_LEN): Remove. 2860117395Skan 2861117395Skan2002-07-23 Gabriel Dos Reis <gdr@nerim.net> 2862117395Skan 2863117395Skan Fix PR/7363: 2864117395Skan * typeck.c (cxx_sizeof_or_alignof_type): New function. 2865117395Skan (c_sizeof): Remove definition. 2866117395Skan (expr_sizeof): Use cxx_sizeof. 2867117395Skan * decl2.c (build_expr_from_tree): Use cxx_sizeof_or_alignof_type. 2868117395Skan * decl.c (finish_destructor_body): Use cxx_sizeof. 2869117395Skan * semantics.c (finish_alignof): Likewise. 2870117395Skan (finish_alignof): Use cxx_alignof. 2871117395Skan * cp-tree.h (cxx_sizeof, cxx_alignof): New macros. 2872117395Skan (cxx_sizeof_or_alignof_type): Declare. 2873117395Skan (my_friendly_assert): Move to ../c-common.h. 2874117395Skan 2875117395Skan2002-07-23 Neil Booth <neil@daikokuya.co.uk> 2876117395Skan 2877117395Skan * class.c, method.c, pt.c, search.c: Don't define obstack macros. 2878117395Skan 2879117395Skan2002-07-22 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2880117395Skan 2881117395Skan PR c++/7347, c++/7348 2882117395Skan * cp-tree.h (tsubst_flags_t): Add tf_parsing. 2883117395Skan * decl.c (make_typename_type): Use it. 2884117395Skan (make_unbound_class_template): Likewise. 2885117395Skan (lookup_name_real): Don't call type_access_control if scope is 2886117395Skan template parameter dependent. 2887117395Skan * parse.y (template_arg): Call make_unbound_class_template with 2888117395Skan tf_parsing set. 2889117395Skan (nest_name_specifier): Call make_typename_type with tf_parsing set. 2890117395Skan (typename_sub0): Likewise. 2891117395Skan (typename_sub1): Likewise. 2892117395Skan (instantiate_decl): Push class scope. 2893117395Skan * pt.c (regenerate_decl_from_template): Call pushclass and popclass 2894117395Skan for both static variable and member function template. 2895117395Skan (instantiate_decl) Call pushclass and popclass when tsubst'ing type 2896117395Skan and arguments. 2897117395Skan * search.c (type_access_control): Do type access for TEMPLATE_DECL 2898117395Skan too. 2899117395Skan 2900117395Skan2002-07-20 Roger Sayle <roger@eyesopen.com> 2901117395Skan 2902117395Skan * decl2.c (cxx_decode_option): Simplify -fhandle-exceptions 2903117395Skan test by using positive_option. Make whitespace consistent. 2904117395Skan 2905117395Skan2002-07-20 Gabriel Dos Reis <gdr@nerim.net> 2906117395Skan 2907117395Skan * spew.c (struct unparsed_test): Replace 'filename' and 'lineno' 2908117395Skan members with 'locus'. Adjust use throughout. 2909117395Skan (struct feed): Likewise. 2910117395Skan (alloc_unparsed_test): Change prototype, take a 'const location_t *'. 2911117395Skan Adjust use. 2912117395Skan (snarf_defarg): Use error(), not error_with_file_and_line(). 2913117395Skan 2914117395Skan2002-07-19 Chris Demetriou <cgd@broadcom.com> 2915117395Skan 2916117395Skan * lang-specs.h (@c++): Include "%2" (cc1plus_spec) wherever 2917117395Skan cpp_options is included. 2918117395Skan 2919117395Skan2002-07-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2920117395Skan 2921117395Skan PR c++/2862, c++/2863 2922117395Skan * pt.c (determine_specialization): Compare the length of 2923117395Skan TYPE_ARG_TYPES. Tidy. 2924117395Skan 2925117395Skan2002-07-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2926117395Skan 2927117395Skan PR c++/3797 2928117395Skan * decl.c (duplicate_decls): Don't propagate inlining parameters from 2929117395Skan olddecl to newdecl when newdecl is a specialization of the 2930117395Skan instantiation olddecl. 2931117395Skan 2932117395Skan2002-07-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2933117395Skan 2934117395Skan PR c++/4802, c++/5387 2935117395Skan * decl.c (make_typename_type): Use enforce_access. 2936117395Skan 2937117395Skan2002-07-17 Scott Snyder <snyder@fnal.gov> 2938117395Skan 2939117395Skan PR c++/7320 2940117395Skan * rtti.c (get_tinfo_decl): Set DECL_COMDAT. 2941117395Skan 2942102780Skan2002-07-12 Mark Mitchell <mark@codesourcery.com> 2943102780Skan 2944102780Skan * class.c (add_method): Correct handling of conversion operators. 2945102780Skan 2946102780Skan2002-07-11 Mark Mitchell <mark@codesourcery.com> 2947102780Skan 2948102780Skan PR c++/7224 2949102780Skan * class.c (add_method): Simplify. 2950102780Skan 2951102780Skan2002-07-11 Jason Merrill <jason@redhat.com> 2952102780Skan 2953102780Skan PR c++/7279 2954102780Skan * tree.c (cp_copy_res_decl_for_inlining): Also copy 2955102780Skan TREE_ADDRESSABLE. 2956102780Skan 2957117395Skan2002-07-10 Graham Stott <graham.stott@btinternet.com> 2958117395Skan 2959117395Skan * pt.c (template_parm_this_level_p, push_template_decl_real): 2960117395Skan Pass depth as int pointer. 2961117395Skan 2962117395Skan2002-07-11 Tim Josling <tej@melbpc.org.au> 2963117395Skan 2964117395Skan Remove front end hard coding from gengtype.c. 2965117395Skan 2966117395Skan * config-lang.in (gtfiles): Add files needed for this front end. 2967117395Skan 2968117395Skan2002-07-10 Mark Mitchell <mark@codesourcery.com> 2969117395Skan 2970117395Skan * cp-tree.h (unqualified_name_lookup_error): Declare it. 2971117395Skan (begin_function_definition): Adjust prototype. 2972117395Skan * lex.c (unqualified_name_lookup_error): New function, split out 2973117395Skan from ... 2974117395Skan (do_identifier): ... here. 2975117395Skan * parse.y (parse_begin_function_definition): New function. 2976117395Skan (fn.def1): Use it. 2977117395Skan * semantics.c (begin_function_definition): Accept decl-specifiers 2978117395Skan and attributes as separate parameters. 2979117395Skan 2980102780Skan2002-07-10 Jason Merrill <jason@redhat.com> 2981102780Skan 2982102780Skan PR c++/6255 2983102780Skan * decl.c (lookup_name_real): Build a new TYPENAME_TYPE rather than 2984102780Skan modifying the old one. 2985102780Skan 2986117395Skan2002-07-09 Mark Mitchell <mark@codesourcery.com> 2987117395Skan 2988117395Skan * cp-tree.h (constructor_name_p): Declare it. 2989117395Skan (check_template_template_default_arg): Likewise. 2990117395Skan * class.c (handle_using_decl): Use constructor_name_p. 2991117395Skan * decl.c (grokdeclarator): Likewise. 2992117395Skan * decl2.c (constructor_name_p): Define it. 2993117395Skan * init.c (build_member_call): Use constructor_name_p. 2994117395Skan * parse.y (template_parm): Use check_template_template_default_arg. 2995117395Skan * pt.c (check_explicit_specialization): Use constructor_name_p. 2996117395Skan * semantics.c (check_template_template_default_arg): New function. 2997117395Skan 2998102780Skan2002-07-08 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2999102780Skan 3000102780Skan * pt.c (can_complete_type_without_circularity): Add static to 3001102780Skan function definition. 3002102780Skan 3003117395Skan2002-07-08 Mark Mitchell <mark@codesourcery.com> 3004102780Skan 3005117395Skan * cp-tree.h (have_extern_spec): Declare it 3006117395Skan * decl.c (have_extern_spec): Define it. 3007117395Skan (start_decl): Eliminate use of used_extern_spec. 3008117395Skan (start_function): Likewise. 3009117395Skan * parse.y (have_extern_spec): Remove declaration. 3010117395Skan (used_extern_spec): Likewise. 3011117395Skan (frob_specs): Eliminate use of used_extern_spec. 3012117395Skan (.hush_warning): Likewise. 3013102780Skan 3014117395Skan2002-07-07 Mark Mitchell <mark@codesourcery.com> 3015117395Skan 3016117395Skan * Make-lang.in (cp/parse.o): Depend on decl.h. 3017117395Skan * cp-tree.h (do_decl_instantiation): Change prototype. 3018117395Skan * parse.y: Include decl.h. 3019117395Skan (parse_decl_instantiation): New function. 3020117395Skan (explicit_instantiation): Use it. 3021117395Skan * pt.c (do_decl_instantiation): Accept a DECL, not a DECLARATOR 3022117395Skan and DECLSPECS. 3023117395Skan 3024117395Skan2002-07-07 Roger Sayle <roger@eyesopen.com> 3025117395Skan 3026117395Skan * error.c (dump_function_name): Use DECL_TEMPLATE_RESULT for 3027117395Skan constructor and destructor tests when passed a TEMPLATE_DECL. 3028117395Skan 3029102780Skan2002-07-05 Jason Merrill <jason@redhat.com> 3030102780Skan 3031102780Skan * cvt.c (cp_convert_to_pointer): Call force_fit_type for null 3032102780Skan pointers. 3033102780Skan 3034102780Skan PR optimization/7145 3035102780Skan * tree.c (cp_copy_res_decl_for_inlining): Also copy DECL_INITIAL. 3036102780Skan 3037117395Skan2002-07-05 Nathan Sidwell <nathan@codesourcery.com> 3038102780Skan 3039117395Skan Repair damage on weak-impared targets caused by my previous patch. 3040117395Skan * cp-tree.h (import_export_tinfo): Add parameter. 3041117395Skan * decl2.c (import_export_tinfo): Add parameter, post adjust 3042117395Skan DECL_COMDAT. 3043117395Skan * rtti.c (emit_tinfo_decl): DECL_COMDAT is (nearly) always setup by 3044117395Skan import_export_tinfo. 3045102780Skan 3046102780Skan2002-07-03 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 3047102780Skan 3048102780Skan PR c++/6944 3049102780Skan * init.c (build_aggr_init): Remove qualifiers of init before calling 3050102780Skan build_vec_init. 3051102780Skan (build_vec_init): Flatten multi-dimensional array during cleanup. 3052102780Skan (build_vec_delete_1): Abort if the type of each element is array. 3053102780Skan 3054117395Skan2002-07-03 Graham Stott <graham.stott@btinternet.com> 3055117395Skan 3056117395Skan * pt.c (instantiate_class_template): Fix typo. 3057117395Skan 3058102780Skan2002-07-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 3059102780Skan 3060117395Skan * typeck2.c (cxx_incomplete_type_diagnostic): Fix typo caused 3061117395Skan by CVS conflict in my last patch. 3062117395Skan 3063117395Skan2002-07-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 3064117395Skan 3065102780Skan PR c++/6716 3066102780Skan * pt.c (can_complete_type_without_circularity): New function. 3067102780Skan (instantiate_class_template): Use it. 3068117395Skan * typeck2.c (cxx_incomplete_type_diagnostic): Improve error 3069117395Skan message due to incomplete fields. 3070102780Skan 3071102780Skan2002-07-01 Mark Mitchell <mark@codesourcery.com> 3072102780Skan 3073102780Skan PR c++/7112 3074102780Skan * mangle.c (write_expression): Add mangling for sizeof when 3075102780Skan applied to a type. 3076102780Skan * operators.def: Remove stale comment. 3077102780Skan 3078117395Skan2002-06-30 Nathan Sidwell <nathan@codesourcery.com> 3079117395Skan 3080117395Skan * cp-tree.h (CPTI_TINFO_DECL_TYPE): Replace with ... 3081117395Skan (CPTI_TYPE_INFO_PTR_TYPE): ... this. 3082117395Skan (tinfo_decl_type): Replace with ... 3083117395Skan (type_info_ptr_type): ... this. 3084117395Skan (import_export_tinfo): Declare. 3085117395Skan (tinfo_decl_p): Rename to ... 3086117395Skan (unemitted_tinfo_decl_p): ... this. 3087117395Skan * decl2.c (import_export_decl): Break out tinfo handling into ... 3088117395Skan (import_export_tinfo): ... here. New function. 3089117395Skan (finish_file): Adjust. 3090117395Skan * rtti.c (TINFO_REAL_NAME): New macro. 3091117395Skan (init_rtti_processing): Create the tinfo types. 3092117395Skan (get_tinfo_decl_dynamic): Use type_info_ptr_type, get_tinfo_ptr. 3093117395Skan (get_tinfo_decl): Adjust. 3094117395Skan (get_tinfo_ptr): New function. 3095117395Skan (get_type_id): Use it. 3096117395Skan (tinfo_base_init): Create vtable decl here, if it doesn't exist. 3097117395Skan (ptr_initializer): Use get_tinfo_ptr. 3098117395Skan (ptm_initializer): Likewise. 3099117395Skan (synthesize_tinfo_var): Break into ... 3100117395Skan (get_pseudo_ti_init): ... this. Just create the initializer. 3101117395Skan (get_pseudo_ti_desc): .. and this. 3102117395Skan (create_real_tinfo_var): Remove. 3103117395Skan (create_pseudo_type_info): Don't create the vtable decl here. 3104117395Skan (get_vmi_pseudo_type_info): Remove. 3105117395Skan (create_tinfo_types): Adjust. 3106117395Skan (tinfo_decl_p): Rename to ... 3107117395Skan (unemitted_tinfo_decl_p): ... here. Adjust. 3108117395Skan (emit_tinfo_decl): Adjust. Create the initializer. 3109117395Skan 3110102780Skan2002-06-27 Mark Mitchell <mark@codesourcery.com> 3111102780Skan 3112102780Skan PR c++/6695 3113102780Skan * pt.c (tsubst_friend_class): Substitute into the context of the 3114102780Skan friend before using it. 3115102780Skan 3116117395Skan2002-06-26 Mark Mitchell <mark@codesourcery.com> 3117117395Skan 3118117395Skan * cp-tree.h (xref_tag): Change prototype. 3119117395Skan (handle_class_head): Likewise. 3120117395Skan (build_x_component_ref): Likewise. 3121117395Skan * decl.c (cxx_init_decl_processing): Adjust call to xref_tag. 3122117395Skan (xref_tag): Take attributes as a separate parameter. 3123117395Skan (xref_tag_from_type): Adjust call to xref_tag. 3124117395Skan * decl2.c (build_expr_from_tree): Adjust call to 3125117395Skan build_x_component_ref. 3126117395Skan (handle_class_head): Take attributes as a separate parameter. 3127117395Skan * parse.y (parse_xref_tag): New function. 3128117395Skan (parse_handle_class_head): Likewise. 3129117395Skan (primary): Use parse_xref_tag. 3130117395Skan (class_head_decl): Use parse_handle_class_head. 3131117395Skan (class_head_defn): Likewise. 3132117395Skan * rtti.c (init_rtti_processing): Adjust call to xref_tag. 3133117395Skan (build_dynamic_cast_1): Likewise. 3134117395Skan (create_pseudo_type_info): Likewise. 3135117395Skan (emit_support_tinfos): Likewise. 3136117395Skan * typeck.c (build_object_ref): Adjust call to 3137117395Skan build_x_component_ref. 3138117395Skan (build_x_component_ref): Remove protect parameter. 3139117395Skan 3140117395Skan2002-06-25 Mark Mitchell <mark@codesourcery.com> 3141117395Skan 3142117395Skan * call.c (build_op_delete_call): Use BASELINK_FUNCTIONS. 3143117395Skan * class.c (handle_using_decl): Likewise. 3144117395Skan (instantiate_type): Likewise. 3145117395Skan * cp-tree.h (BASELINK_FUNCTIONS): New macro. 3146117395Skan (xref_basetypes): Change prototype. 3147117395Skan (begin_mem_initializers): New function. 3148117395Skan (get_overloaded_fn): Likewise. 3149117395Skan * decl.c (xref_basetypes): Simplify. 3150117395Skan * error.c (dump_expr): Use BASELINK_FUNCTIONS. 3151117395Skan * init.c (build_offset_ref): Likewise. 3152117395Skan * parse.y (base_init): Use begin_mem_initializers(). 3153117395Skan (structsp): Adjust call to xref_basetypes. 3154117395Skan * pt.c (determine_specialization): Use BASELINK_FUNCTIONS. 3155117395Skan (instantiate_class_template): Adjust call to xref_basetypes. 3156117395Skan * semantics.c (begin_mem_initializers): New function. 3157117395Skan * tree.c (is_overloaded_fn): Use BASELINK_FUNCTIONS. 3158117395Skan (really_overlaoded_fn): Likewise. 3159117395Skan (get_overloaded_fn): New function.' 3160117395Skan (get_first_fn): USe BASELINK_FUNCTIONS. 3161117395Skan 3162117395Skan2002-06-24 Mark Mitchell <mark@codesourcery.com> 3163117395Skan 3164117395Skan * cp-tree.h (SCALAR_TYPE_P): New macro. 3165117395Skan (check_for_out_of_scope_variable): New function. 3166117395Skan (at_class_scope_p): Likewise. 3167117395Skan (finish_fname): Likewise. 3168117395Skan * class.c (finish_struct): Use at_function_scope_p. 3169117395Skan * decl.c (check_for_out_of_scope_variable): New function, split 3170117395Skan out from do_identifier. 3171117395Skan (finish_enum): Use at_function_scope_p. 3172117395Skan * lex.c (do_identifier): Use check_for_out_of_scope_variable. 3173117395Skan * parse.y (VAR_FUNC_NAME): Give it <ttype>. Use finish_fname. 3174117395Skan (primary): Use at_function_scope_p. 3175117395Skan * search.c (at_class_scope_p): New function. 3176117395Skan * semantics.c (finish_fname): Likewise. 3177117395Skan (check_multiple_declarators): Use at_function_scope_p. 3178117395Skan 3179117395Skan2002-06-23 Mark Mitchell <mark@codesourcery.com> 3180117395Skan 3181117395Skan * parse.y (parse_scoped_id): New function. 3182117395Skan (primary): Use it. 3183117395Skan * cp-tree.h (do_scoped_id): Adjust declaration. 3184117395Skan * lex.c (do_scoped_id): Remove call to yylex. 3185117395Skan * decl2.c (build_expr_from_tree): Adjust use of do_scoped_id. 3186117395Skan * typeck2.c (add_exception_specifier): Use tree_cons, rather than 3187117395Skan expanding it inline. 3188117395Skan 3189102780Skan2002-06-23 Matt Thomas <matt@3am-software.com> 3190102780Skan 3191102780Skan * decl.c (finish_function): Change "#ifdef VMS_TARGET" to 3192102780Skan "#if VMS_TARGET". 3193102780Skan 3194117395Skan2002-06-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3195117395Skan 3196117395Skan * mangle.c (integer_type_codes): Const-ify. 3197117395Skan 3198102780Skan2002-06-20 Richard Henderson <rth@redhat.com> 3199102780Skan 3200102780Skan PR c++/6747 3201102780Skan * typeck.c (mark_addressable): Don't test TREE_ADDRESSABLE early. 3202102780Skan Call put_var_into_stack. 3203102780Skan 3204117395Skan2002-06-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3205117395Skan 3206117395Skan * spew.c (remove_last_token): Use ARRAY_SIZE in lieu of explicit 3207117395Skan array size calculation. 3208117395Skan 3209102780Skan2002-06-20 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 3210102780Skan 3211102780Skan PR c++/6892 3212102780Skan * pt.c (tsubst_expr): Handle FILE_STMT. 3213102780Skan 3214102780Skan2002-06-20 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 3215102780Skan 3216102780Skan PR c++/6723 3217102780Skan * pt.c (lookup_template_class): Don't build complete argument of 3218102780Skan BOUND_TEMPLATE_TEMPLATE_PARM if appeared as a default template 3219102780Skan argument. 3220102780Skan 3221117395Skan2002-06-19 Akim Demaille <akim@epita.fr> 3222117395Skan 3223117395Skan * parse.y (TYPENAME): Rename as tTYPENAME to avoid the clash with 3224117395Skan decl.h's TYPENAME. 3225117395Skan * spew.c, lex.c: Adjust. 3226117395Skan * parse.y (explicit_instantiation): Add empty action to override 3227117395Skan the default $$ = $1 where it introduces a type clash. 3228117395Skan 3229117395Skan2002-06-14 Jason Merrill <jason@redhat.com> 3230117395Skan 3231117395Skan * semantics.c (begin_for_stmt): Push the 'for' scope before 3232117395Skan adding the FOR_STMT. 3233117395Skan 3234117395Skan C++ ABI changes. 3235117395Skan * class.c (build_base_field): Set DECL_PACKED. 3236117395Skan (layout_class_type): Don't use tail padding of PODs. 3237117395Skan * mangle.c (write_unqualified_name): Fix template conversion op 3238117395Skan mangling. 3239117395Skan 3240102780Skan2002-06-16 Richard Henderson <rth@redhat.com> 3241102780Skan 3242102780Skan PR opt/6793 3243102780Skan * tree.c (cp_cannot_inline_tree_fn): Don't short-circuit test 3244102780Skan after template instantiation. 3245102780Skan 3246117395Skan2002-06-16 Richard Henderson <rth@redhat.com> 3247117395Skan 3248117395Skan * cp-tree.h, decl2.c (flag_ms_extensions): Move to c-common. 3249117395Skan 3250117395Skan2002-06-15 Gabriel Dos Reis <gdr@codesourcery.com> 3251117395Skan 3252117395Skan * cp-tree.h (compiler_error): Remove declaration. 3253117395Skan * lex.c (compiler_error): Remove definition. 3254117395Skan 3255117395Skan2002-06-14 Steve Ellcey <sje@cup.hp.com> 3256117395Skan 3257117395Skan * g++spec.c (LIBUNWIND): New. 3258117395Skan (lang_specific_driver): Add it if USE_UNWIND_EXCEPTIONS is set. 3259117395Skan 3260117395Skan2002-06-13 Jessica Han <jessica@cup.hp.com> 3261117395Skan 3262117395Skan * class.c (build_vtable): Use TARGET_VTABLE_ENTRY_ALIGN. 3263117395Skan (build_vtbl_initializer): Honor TARGET_VTABLE_DATA_ENTRY_DISTANCE. 3264117395Skan (build_vbase_offset_vtbl_entries): Likewise. 3265117395Skan * rtti.c (build_headof): Likewise. 3266117395Skan (get_tinfo_decl_dynamic): Likewise. 3267117395Skan (create_pseudo_type_info): Likewise. 3268117395Skan 3269117395Skan2002-06-12 Stan Shebs <shebs@apple.com> 3270117395Skan 3271117395Skan * mpw-config.in: Remove file, no longer used. 3272117395Skan * mpw-make.sed: Ditto. 3273117395Skan 3274117395Skan2002-06-07 Zack Weinberg <zack@codesourcery.com> 3275117395Skan 3276117395Skan * decl2.c: Update call to cpp_handle_option. 3277117395Skan 3278102780Skan2002-06-07 H.J. Lu (hjl@gnu.org) 3279102780Skan 3280102780Skan * decl2.c (flag_use_cxa_atexit): Set to DEFAULT_USE_CXA_ATEXIT. 3281102780Skan 3282117395Skan2002-06-06 Gabriel Dos Reis <gdr@codesourcery.com> 3283117395Skan 3284117395Skan * error.c (cp_error_at): Fix typo. 3285117395Skan 3286117395Skan2002-06-04 Gabriel Dos Reis <gdr@codesourcery.com> 3287117395Skan 3288117395Skan * error.c (cp_diagnostic_starter): Adjust call. 3289117395Skan (maybe_print_instantiation_context): Change prototype to take a 3290117395Skan 'diagnostic_info *'. 3291117395Skan (print_instantiation_full_context): Likewise. 3292117395Skan (print_instantiation_partial_context): Likewise. 3293117395Skan (cp_diagnostic_starter): Likewise. 3294117395Skan (cp_diagnostic_finalizer): Likewise. 3295117395Skan (cp_print_error_function): Likewise. 3296117395Skan (cp_printer): Take a secondary parameter as a 'text_info *'. 3297117395Skan Remove output_state savings. Adjust calls. 3298117395Skan 3299117395Skan2002-06-03 Geoffrey Keating <geoffk@redhat.com> 3300117395Skan 3301117395Skan * pt.c (inline_parm_levels): Mark for GC. 3302117395Skan 3303117395Skan * mangle.c (start_mangling): Allocate G.substitutions here... 3304117395Skan (init_mangle): ... rather than here. 3305117395Skan (finish_mangling): Clear the varray pointer when done with it. 3306117395Skan * spew.c (yylexstring): Don't use VARRAY_FREE. 3307117395Skan * search.c (bfs_walk): Don't use VARRAY_FREE. 3308117395Skan * decl2.c (pending_statics): Use gengtype to mark. 3309117395Skan (deferred_fns): Likewise. 3310117395Skan (ssdf_decls): Likewise. 3311117395Skan (init_decl2): Delete. 3312117395Skan * decl.c (pop_from_top_level): Don't use VARRAY_FREE. 3313117395Skan (cxx_init_decl_processing): Don't call init_decl2. 3314117395Skan (cxx_pop_function_context): Don't use VARRAY_FREE. 3315117395Skan * cp-tree.h (struct saved_scope): No need for special marking 3316117395Skan of varrays. 3317117395Skan (struct language_function): Likewise. 3318117395Skan (local_classes): Use gengtype to mark. 3319117395Skan (init_decl2): Delete prototype. 3320117395Skan * class.c (init_class_processing): Don't use 3321117395Skan ggc_add_tree_varray_root. 3322117395Skan (build_vtbl_initializer): Don't use VARRAY_FREE. 3323117395Skan 3324117395Skan * decl.c (typename_compare): Don't use same_type_p. 3325117395Skan 3326117395Skan * decl.c: Include hashtab.h instead of hash.h. 3327117395Skan (typename_hash): Update to use htab_h. 3328117395Skan (typename_compare): Likewise. 3329117395Skan (typename_htab): Use gengtype to mark. 3330117395Skan (build_typename_type): Update to use htab_h. 3331117395Skan * Make-lang.in (cp/decl.o): Use HASHTAB_H instead of hash.h. 3332117395Skan 3333117395Skan * Make-lang.in (gt-cp-tree.h): New rule. 3334117395Skan (cp/tree.o): Depend on gt-cp-tree.h. 3335117395Skan * config-lang.in (gtfiles): Add cp/tree.c. 3336117395Skan * tree.c: Include gt-cp-tree.h. 3337117395Skan (list_hash_table): Use gengtype to mark. 3338117395Skan (init_tree): Use gengtype to mark trees. 3339117395Skan 3340117395Skan * Make-lang.in (cp/decl.o): Add debug.h dependency. 3341117395Skan * call.c (struct z_candidate): Use gengtype. 3342117395Skan (USER_CONV_CAND): Use WRAPPER_ZC. 3343117395Skan (convert_class_to_reference): Use build_zc_wrapper. 3344117395Skan (build_type_conversion_1): Likewise. 3345117395Skan (build_over_call): Use WRAPPER_ZC. 3346117395Skan (add_warning): Use build_zc_wrapper. 3347117395Skan * cp-lang.c (LANG_HOOKS_MARK_TREE): Delete. 3348117395Skan * cp-tree.h (struct lang_identifier): Use gengtype. 3349117395Skan (struct template_parm_index_s): Likewise. 3350117395Skan (struct ptrmem_cst): Likewise. 3351117395Skan (struct tree_binding): Likewise. 3352117395Skan (struct tree_overload): Likewise. 3353117395Skan (struct tree_srcloc): Likewise. 3354117395Skan (struct tree_wrapper): Likewise. Also modify to have a pointer 3355117395Skan to struct z_candidate rather than void. 3356117395Skan (enum cp_tree_node_structure_enum): New. 3357117395Skan (union lang_tree_node): New. 3358117395Skan (cxx_mark_tree): Delete prototype. 3359117395Skan (cp_tree_node_structure): New prototype. 3360117395Skan (build_ptr_wrapper): Delete prototype. 3361117395Skan (build_int_wrapper): Delete prototype. 3362117395Skan (build_zc_wrapper): New prototype. 3363117395Skan * decl.c: Include debug.h 3364117395Skan (cxx_mark_tree): Delete. 3365117395Skan (cp_tree_node_structure): New. 3366117395Skan * tree.c (build_ptr_wrapper): Delete. 3367117395Skan (build_int_wrapper): Delete. 3368117395Skan (build_zc_wrapper): New. 3369117395Skan 3370117395Skan * cp-tree.h [! ENABLE_TREE_CHECKING] (LANG_TYPE_PTRMEM_CHECK): 3371117395Skan Correct typo. Patch from k_fukui@highway.ne.jp. 3372117395Skan 3373117395Skan * semantics.c (current_stmt_tree): Update for change to 3374117395Skan struct language_function. 3375117395Skan (finish_mem_initializers): Likewise. 3376117395Skan * decl.c (cxx_init_decl_processing): Don't set mark_lang_status. 3377117395Skan * cp-tree.h (struct language_function): Rename from 3378117395Skan cp_language_function. Change all uses. 3379117395Skan (cp_function_chain): Don't need to cast. 3380117395Skan 3381117395Skan * class.c (duplicate_tag_error): Reset discriminator. 3382117395Skan (check_bases_and_members): Update for data structure changes. 3383117395Skan * cp-tree.h (struct lang_id2): Use gengtype. 3384117395Skan (flagged_type_tree): Likewise. 3385117395Skan (SET_LANG_ID): Use GGC on struct lang_id2. 3386117395Skan (struct cp_language_function): Use gengtype. Remove field 3387117395Skan 'x_vcalls_possible_p'. 3388117395Skan (current_vcalls_possible_p): Delete. 3389117395Skan (struct lang_type_header): New. 3390117395Skan (struct lang_type_class): Rename from struct lang_type. Include 3391117395Skan struct lang_type_header. 3392117395Skan (struct lang_type_ptrmem): New. 3393117395Skan (struct lang_type): New. 3394117395Skan (LANG_TYPE_CLASS_CHECK): New. Use it in all the appropriate macros. 3395117395Skan (LANG_TYPE_PTRMEM_CHECK): New. Use it in all the appropriate macros. 3396117395Skan (TYPE_SET_PTRMEMFUNC_TYPE): Set discriminator, update for changes. 3397117395Skan (struct lang_decl_flags): Use gengtype. Add discriminators. 3398117395Skan (struct lang_decl): Use gengtype. Add and use discriminators. 3399117395Skan Update the macros that reference moved fields. 3400117395Skan (LANG_DECL_U2_CHECK): New function. Use it when appropriate. 3401117395Skan (SET_DECL_THUNK_P): Set discriminator too. 3402117395Skan (clear_inline_text_obstack): Delete prototype. 3403117395Skan (finish_inline_definitions): Delete prototype. 3404117395Skan (mark_pending_inlines): Delete prototype. 3405117395Skan (lang_check_failed): New prototype. 3406117395Skan * decl.c (struct named_label_use_list): Use gengtype. 3407117395Skan (struct named_label_list): Likewise. 3408117395Skan (mark_binding_level): Delete. 3409117395Skan (mark_named_label_lists): Delete. 3410117395Skan (push_local_name): Set discriminator on DECL_LANG_SPECIFIC. 3411117395Skan (cxx_init_decl_processing): Use generated marker routine. 3412117395Skan (begin_destructor_body): Delete dead set to 3413117395Skan current_vcalls_possible_p. 3414117395Skan (mark_lang_function): Delete. 3415117395Skan (mark_cp_function_context): Delete. 3416117395Skan (lang_mark_tree): Use generated marker routines. 3417117395Skan * decl2.c (start_objects): Set discriminator when setting 3418117395Skan GLOBAL_INIT_PRIORITY. 3419117395Skan * lex.c (retrofit_lang_decl): Set discriminators. 3420117395Skan (copy_lang_type): Update for changes to lang_type structure. 3421117395Skan (cp_make_lang_type): Set discriminator. 3422117395Skan * parse.y: Use gengtype on YYLVAL. Don't use dots in identifiers. 3423117395Skan * search.c: Include ggc.h. 3424117395Skan * semantics.c (anon_aggr_type_p): Use the macro, don't hand-code it. 3425117395Skan (finish_inline_definitions): Delete. 3426117395Skan * spew.c (struct token): Use gengtype. 3427117395Skan (struct token_chunk): New. 3428117395Skan (struct unparsed_text): Use gengtype. Store tokens in chunks. 3429117395Skan (struct feed): Use gengtype. 3430117395Skan (feed_obstack): Delete. 3431117395Skan (feed): Mark as GC root. 3432117395Skan (pending_inlines): Mark as GC root. 3433117395Skan (pending_inlines_tail): Likewise. 3434117395Skan (processing_these_inlines): Likewise. 3435117395Skan (token_obstack): Make static. 3436117395Skan (first_token): Likewise. 3437117395Skan (init_spew): Don't initialize deleted things; use gengtype for roots. 3438117395Skan (clear_inline_text_obstack): Delete. 3439117395Skan (feed_input): Use GC for struct feed. Update for changes to 3440117395Skan struct unparsed_text. 3441117395Skan (mark_pending_inlines): Delete. 3442117395Skan (next_token): Rename from add_token. Change all callers. Update 3443117395Skan for changes to struct unparsed_text. 3444117395Skan (space_for_token): New. 3445117395Skan (remove_last_token): New. 3446117395Skan (alloc_unparsed_text): New. 3447117395Skan (snarf_block): Take an unparsed_text. Update for changes to struct 3448117395Skan unparsed_text. 3449117395Skan (snarf_method): Update for changes to struct unparsed_text. 3450117395Skan (snarf_defarg): Update for changes to struct unparsed_text. 3451117395Skan * tree.c (lang_check_failed): New. 3452117395Skan 3453117395Skan * Make-lang.in (gt-cp-call.h gt-cp-decl2.h gt-cp-parse.h 3454117395Skan gt-cp-pt.h gt-cp-repo.h gt-cp-spew.h): New rules. 3455117395Skan (cp/spew.o): Add dependency on gt-<filename>.h. 3456117395Skan (cp/decl2.o): Add dependency on gt-<filename>.h. 3457117395Skan (cp/call.o): Add dependency on gt-<filename>.h. 3458117395Skan (cp/pt.o): Add dependency on gt-<filename>.h. 3459117395Skan (cp/repo.o): Add dependency on gt-<filename>.h. 3460117395Skan (cp/parse.o): Add dependency on gt-<filename>.h. 3461117395Skan * call.c: Use gengtype for roots. 3462117395Skan * config-lang.in (gtfiles): Add cp-tree.h decl.h lex.h call.c 3463117395Skan decl2.c parse.y pt.c repo.c spew.c. 3464117395Skan * cp-tree.h: Use gengtype for roots. 3465117395Skan (struct saved_scope): Use GGC, gengtype. 3466117395Skan (cp_parse_init): Delete prototype. 3467117395Skan (init_pt): Delete prototype. 3468117395Skan * decl.c: Use gengtype for roots. 3469117395Skan (mark_saved_scope): Delete. 3470117395Skan (cxx_init_decl_processing): Don't call deleted initilisation 3471117395Skan routines. 3472117395Skan (signed_size_zero_node): Delete, unused. 3473117395Skan * decl.h: Use gengtype for roots. 3474117395Skan * decl2.c: Use gengtype for roots. 3475117395Skan * lex.h: Use gengtype for roots. 3476117395Skan * parse.y: Use gengtype for roots. 3477117395Skan (cp_parse_init): Delete. 3478117395Skan * pt.c: Use gengtype for roots. 3479117395Skan (init_pt): Delete. 3480117395Skan * repo.c: Use gengtype for roots. 3481117395Skan * spew.c: Use gengtype for roots. 3482117395Skan 3483117395Skan * Make-lang.in: Allow for filename changes. Add gtype-cp.h. 3484117395Skan (cp/decl.o): Add dependency on gtype-cp.h. 3485117395Skan * decl.c: Remove use of add_deletable_root, use GTY marker instead. 3486117395Skan Include gtype-cp.h. Allow for filename changes. 3487117395Skan 3488117395Skan * Make-lang.in (cp/gt-decl.h): Generate using gengtype. 3489117395Skan (cp/decl.o): Add cp/gt-decl.h dependency. 3490117395Skan * config-lang.in (gtfiles): New. 3491117395Skan * tree.h: Rename struct binding_level to struct cp_binding_level. 3492117395Skan * decl.c: Rename struct binding_level to struct cp_binding_level. 3493117395Skan Include cp/gt-decl.h. 3494117395Skan (struct cp_binding_level): Use gengtype. 3495117395Skan (make_binding_level): Use GGC on struct cp_binding_level. 3496117395Skan (mark_binding_level): Use gt_ggc_m_cp_binding_level. 3497117395Skan (cxx_init_decl_processing): Mark free_binding_level as 3498117395Skan deletable. 3499117395Skan 3500117395Skan * decl.c (mark_cp_function_context): Update calling sequence. 3501117395Skan 3502117395Skan * decl.c (start_function): Don't free 'struct 3503117395Skan cp_language_function'. 3504117395Skan (pop_cp_function_context): Likewise. 3505117395Skan (save_function_data): Allocate it using GC. 3506117395Skan * semantics.c (genrtl_start_function): Don't free 'struct 3507117395Skan cp_language_function'. 3508117395Skan 3509117395Skan2002-05-31 Matthew Woodcraft <mattheww@chiark.greenend.org.uk> 3510117395Skan 3511117395Skan * lang-specs.h: Use cpp_debug_options. 3512117395Skan 3513117395Skan2002-05-28 Zack Weinberg <zack@codesourcery.com> 3514117395Skan 3515117395Skan * mangle.c, tree.c: Include real.h. 3516117395Skan * Make-lang.in: Update dependency lists. 3517117395Skan 3518117395Skan2002-05-25 Neil Booth <neil@daikokuya.demon.co.uk> 3519117395Skan 3520117395Skan * lex.c: Don't include c-lex.h. 3521117395Skan * parse.y, spew.c: Don't include c-lex.h; include c-pragma.h. 3522117395Skan 3523102780Skan2002-05-23 Neil Booth <neil@daikokuya.demon.co.uk> 3524102780Skan 3525117395Skan * spew.c (yyungetc, snarf_block): Remove indent_level handling. 3526117395Skan 3527117395Skan2002-05-22 Richard Henderson <rth@redhat.com> 3528117395Skan 3529117395Skan * decl.c (obscure_complex_init): Check for VAR_DECL 3530117395Skan before using DECL_THREAD_LOCAL. 3531117395Skan 3532117395Skan2002-05-22 Richard Henderson <rth@redhat.com> 3533117395Skan 3534117395Skan * decl.c (check_tag_decl): Handle RID_THREAD. 3535117395Skan (obscure_complex_init): Reject run-time init of tls. 3536117395Skan (grokvardecl, grokdeclarator): Handle RID_THREAD. 3537117395Skan * lex.c (reswords): Add __thread. 3538117395Skan (rid_to_yy): Map RID_THREAD to SCSPEC. 3539117395Skan 3540117395Skan2002-05-22 Neil Booth <neil@daikokuya.demon.co.uk> 3541117395Skan 3542102780Skan * cp-lang.c (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options. 3543102780Skan * cp-tree.h (cxx_post_options): Kill. 3544102780Skan * cp-lex.c (cxx_post_options): Kill. 3545102780Skan 3546117395Skan2002-05-21 Richard Henderson <rth@redhat.com> 3547117395Skan 3548117395Skan * lex.c (rid_to_yy): Add RID_THREAD. 3549117395Skan 3550117395Skan2002-05-21 Alexandre Oliva <aoliva@redhat.com> 3551117395Skan 3552117395Skan * init.c (build_vec_init): Test for trivial copy-assignment when 3553117395Skan copy-assigning arrays. 3554117395Skan 3555117395Skan2002-05-20 Andreas Jaeger <aj@suse.de> 3556117395Skan 3557117395Skan * init.c (build_default_init): Remove unused variable. 3558117395Skan 3559117395Skan2002-05-20 Alexandre Oliva <aoliva@redhat.com> 3560117395Skan 3561117395Skan * call.c (any_strictly_viable): New. 3562117395Skan (build_new_op): Use it for COMPOUND_EXPR and ADDR_EXPRs. 3563117395Skan 3564102780Skan2002-05-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 3565102780Skan 3566102780Skan * error.c (dump_type) [TYPEOF_TYPE]: Fix parenthesis printing. 3567102780Skan 3568102780Skan2002-05-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 3569102780Skan 3570102780Skan PR c++/186, DR 259 3571102780Skan * pt.c (do_decl_instantiation): Don't complain explicit 3572102780Skan instantiation after explicit specialization. 3573102780Skan (do_type_instantiation): Likewise. 3574102780Skan 3575117395Skan2002-05-19 Alexandre Oliva <aoliva@redhat.com> 3576102780Skan 3577117395Skan * cp-tree.h (complete_type_or_diagnostic): Changed prototype, 3578117395Skan renamed from... 3579117395Skan (complete_type_or_else): ... this. Redefined as macro. 3580117395Skan (cxx_incomplete_type_diagnostic): Declare. 3581117395Skan (cxx_incomplete_type_error): Define as macro. 3582117395Skan * init.c (build_delete): Warn about incomplete types other than 3583117395Skan void, and use the built-in operator delete for them. 3584117395Skan * typeck.c (complete_type_or_diagnostic): Renamed from 3585117395Skan complete_type_or_else. Added warn_only argument, passed to... 3586117395Skan * typeck2.c (cxx_incomplete_type_diagnostic): ... this. Print 3587117395Skan warnings or errors depending on new warn_only argument. Renamed 3588117395Skan from... 3589117395Skan (cxx_incomplete_type_error): ... this. New implementation in 3590117395Skan terms of cxx_incomplete_type_diagnostic. 3591102780Skan 3592117395Skan2002-05-18 Jason Merrill <jason@redhat.com> 3593102780Skan 3594117395Skan PR c++/6611 3595117395Skan * decl2.c (import_export_decl): If we clear 3596117395Skan DECL_NOT_REALLY_EXTERN, make sure DECL_EXTERNAL is set. 3597117395Skan 3598117395Skan2002-05-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 3599117395Skan 3600117395Skan PR c++/6620 3601117395Skan * pt.c (verify_class_unification): Don't check if PARM is template 3602117395Skan parameter dependent. Simplify. 3603117395Skan (unify) [TEMPLATE_PARM_INDEX]: Handle when ARG is a template 3604117395Skan parameter dependent expression. 3605117395Skan 3606117395Skan2002-05-14 Jason Merrill <jason@redhat.com> 3607117395Skan 3608117395Skan * rtti.c (get_tinfo_decl): Don't call comdat_linkage. 3609117395Skan Do set DECL_COMDAT. 3610117395Skan (synthesize_tinfo_var): Take the public decl. 3611117395Skan (create_real_tinfo_var): Likewise. Check DECL_COMDAT. 3612117395Skan (emit_tinfo_decl): Adjust. Call import_export_decl. 3613117395Skan * decl2.c (import_export_decl): Simplify tinfo decl handling. 3614117395Skan 3615117395Skan2002-05-14 Alexandre Oliva <aoliva@redhat.com> 3616117395Skan 3617102780Skan * cp-tree.h (struct lang_type): Added non_zero_init. 3618102780Skan (CLASSTYPE_NON_ZERO_INIT_P): New macro. 3619102780Skan (zero_init_p, force_store_init_value, build_forced_zero_init): Declare. 3620102780Skan * class.c (check_field_decls): Test non_zero_init. 3621102780Skan * cvt.c (convert_to_pointer_force): Use cp_convert_to_pointer for 3622102780Skan zero-to-NULL conversions. 3623102780Skan * decl.c (obscure_complex_init): Don't reset DECL_INITIAL of a 3624102780Skan type that needs zero-initialization without zeros. 3625102780Skan (check_initializer_decl): Compute zero-initializer for types 3626102780Skan that require a non-trivial one. 3627102780Skan * init.c (build_forced_zero_init): New function. 3628102780Skan (build_default_init): Use it. 3629102780Skan * tree.c (zero_init_p): New function. 3630102780Skan * typeck2.c (force_store_init_value): New function. 3631102780Skan (process_init_constructor): Create non-trivial zero-initializers 3632102780Skan for array members and class fields. 3633102780Skan 3634117395Skan2002-05-14 Neil Booth <neil@daikokuya.demon.co.uk> 3635102780Skan 3636117395Skan * lang-specs.h: Remove redundant -lang-c++. 3637102780Skan 3638117395Skan2002-05-13 Jason Merrill <jason@redhat.com> 363996263Sobrien 3640117395Skan * class.c (build_vtbl_ref_1): Use fixed_type_or_null. 3641117395Skan (fixed_type_or_null): See through reference vars. 3642117395Skan (build_base_path): Vtable contents are constant. 3643117395Skan * typeck.c (get_member_function_from_ptrfunc): Likewise. 364496263Sobrien 3645117395Skan2002-05-12 Jason Merrill <jason@redhat.com> 364696263Sobrien 3647117395Skan * cp-lang.c (ok_to_generate_alias_set_for_type): Backend-created 3648117395Skan structs are safe. 364996263Sobrien 3650117395Skan2002-05-09 Neil Booth <neil@daikokuya.demon.co.uk> 365196263Sobrien 3652117395Skan * cp-tree.h (flag_ansi): Remove. 3653117395Skan * decl2.c (flag_ansi): Remove. 3654117395Skan (cxx_decode_option): Set flag_iso and flag_undef. 365596263Sobrien 3656117395Skan2002-05-09 Jason Merrill <jason@redhat.com> 365796263Sobrien 3658117395Skan * typeck.c (get_member_function_from_ptrfunc): Reorganize. 3659117395Skan Use subtraction rather than a bitmask to get the index. 3660117395Skan * cvt.c (cp_convert_to_pointer): Bail on an error_mark_node. 366196263Sobrien 3662117395Skan * pt.c (tsubst_expr) [ASM_STMT]: Copy ASM_INPUT_P. 3663117395Skan 3664117395Skan2002-05-07 Neil Booth <neil@daikokuya.demon.co.uk> 3665117395Skan 3666117395Skan * Make-lang.in (decl2.o): Update. 3667117395Skan * cp-tree.h (warn_multichar): Remove. 3668117395Skan * decl2.c: Include c-common.h. 3669117395Skan (warn_multichar): Remove. 3670117395Skan 3671117395Skan2002-05-03 Jason Merrill <jason@redhat.com> 3672117395Skan 3673117395Skan * tree.c (build_cplus_array_type): Only const and volatile get 3674117395Skan special handling. 3675117395Skan 3676117395Skan * decl.c (BOOL_TYPE_SIZE): Move default to defaults.h. 3677117395Skan 367896263Sobrien2002-04-30 Mark Mitchell <mark@codesourcery.com> 367996263Sobrien 368096263Sobrien ABI change, returning simple classes from functions. 368196263Sobrien * class.c (finish_struct_bits): Only mark TREE_ADDRESSABLE if 368296263Sobrien TYPE_HAS_TRIVIAL_INIT_REF is false or 368396263Sobrien TYPE_HAS_NONTRIVIAL_DESTRUCTOR is true. 368496263Sobrien 368596263Sobrien2002-04-30 Jason Merrill <jason@redhat.com> 368696263Sobrien 3687102780Skan PR debug/6436 368896263Sobrien * decl.c (grokdeclarator): Don't override TYPE_NAME of an 368996263Sobrien anonymous class with a typedef if there are attributes. 369096263Sobrien 369196263Sobrien2002-04-29 Paul Eggert <eggert@twinsun.com> 369296263Sobrien 369396263Sobrien * parse.y (nomods_initdcl0): Replace $<ttype>3 with $<ttype>$. 369496263Sobrien 369596263Sobrien2002-04-29 Jakub Jelinek <jakub@redhat.com> 369696263Sobrien 369796263Sobrien PR c++/6477 369896263Sobrien * decl.c (follow_tag_typedef): Check if TYPE_NAME (original) is 369996263Sobrien non-NULL first. 370096263Sobrien 370196263Sobrien2002-04-29 Mark Mitchell <mark@codesourcery.com> 370296263Sobrien 370396263Sobrien PR c++/6492 370496263Sobrien * pt.c (tsubst_friend_class): If the friend has an explicit scope, 370596263Sobrien enter that scope before name lookup. 370696263Sobrien 370796263Sobrien PR c++/6486 370896263Sobrien * method.c (do_build_copy_constructor): Avoid building 370996263Sobrien cv-qualified reference types. 371096263Sobrien 371196263Sobrien2002-04-29 Nathan Sidwell <nathan@codesourcery.com> 371296263Sobrien 371396263Sobrien PR c++/5719 3714104752Skan * decl.c (grok_op_properties): Assignment ops don't have to return 371596263Sobrien by value. operator% should. 371696263Sobrien 371796263Sobrien2002-04-28 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> 371896263Sobrien 371996263Sobrien PR c/6343 372096263Sobrien * decl.c (duplicate_decls): Call merge_weak. 372196263Sobrien 3722117395Skan2002-04-26 Richard Henderson <rth@redhat.com> 3723117395Skan 3724117395Skan * parse.y (malloced_yyss, malloced_yyvs): New. 3725117395Skan (yyoverflow): Re-add. Set them. 3726117395Skan (free_parser_stacks): New. 3727117395Skan 372896263Sobrien2002-04-26 Mark Mitchell <mark@codesourcery.com> 372996263Sobrien 3730117395Skan PR c++/6497 373196263Sobrien * method.c (do_build_assign_ref): Pass a derivation to 373296263Sobrien build_method_call when calling base class assignment operators. 373396263Sobrien 3734117395Skan2002-04-26 Richard Henderson <rth@redhat.com> 3735117395Skan 3736117395Skan * parse.y (yyoverflow): Revert. 3737117395Skan 3738117395Skan2002-04-26 Richard Henderson <rth@redhat.com> 3739117395Skan 3740117395Skan PR c/3581 3741117395Skan * parse.y (string): Remove. Update all uses to use STRING 3742117395Skan instead, and not call combine_strings. 3743117395Skan * rtti.c (tinfo_name): Use fix_string_type. 3744117395Skan * semantics.c (finish_asm_stmt): Don't call combine_strings. 3745117395Skan * spew.c (yylexstring): New. 3746117395Skan (read_token): Use it. 3747117395Skan 3748117395Skan2002-04-25 Richard Henderson <rth@redhat.com> 3749117395Skan 3750117395Skan PR c/2161 3751117395Skan * parse.y (yyoverflow): New. 3752117395Skan 3753117395Skan2002-04-25 Jason Merrill <jason@redhat.com> 3754117395Skan 3755117395Skan PR c++/5607 3756117395Skan * search.c (check_final_overrider): No longer static. 3757117395Skan * class.c (update_vtable_entry_for_fn): Call it. 3758117395Skan * cp-tree.h: Adjust. 3759117395Skan 3760117395Skan2002-04-25 Neil Booth <neil@daikokuya.demon.co.uk> 3761117395Skan 3762117395Skan * cp-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove. 3763117395Skan * cp-tree.h (cxx_set_yydebug): Die. 3764117395Skan * lex.c (YYDEBUG): Get from c-lex.h. 3765117395Skan (cxx_set_yydebug): Remove. 3766117395Skan * parse.y: Include c-lex.h. 3767117395Skan (YYDEBUG): Get from c-lex.h. 3768117395Skan 376996263Sobrien2002-04-24 Mark Mitchell <mark@codesourcery.com> 377096263Sobrien 3771117395Skan PR c++/6438. 377296263Sobrien * cvt.c (convert_to_void): Don't unconditionally make COND_EXPRs 377396263Sobrien void. 377496263Sobrien 3775117395Skan2002-04-24 Neil Booth <neil@daikokuya.demon.co.uk> 3776117395Skan 3777117395Skan * cp-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, 3778117395Skan LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE, LANG_HOOKS_ATTRIBUTE_TABLE): 3779117395Skan Redefine. 3780117395Skan * cp-tree.h (cp_attribute_table): Rename. 3781117395Skan * decl.c (lang_attribute_table): Remove declaration. 3782117395Skan (cxx_init_decl_processing): Don't set it. 3783117395Skan * tree.c (cp_attribute_table): Rename. 3784117395Skan 378596263Sobrien2002-04-24 Jason Merrill <jason@redhat.com> 378696263Sobrien 378796263Sobrien PR c++/6331 378896263Sobrien * method.c (do_build_copy_constructor): Use cp_build_qualified_type. 378996263Sobrien * typeck.c (build_modify_expr): Allow arrays to differ in cv-quals. 379096263Sobrien The pedwarn for array assignment is now unconditional. 379196263Sobrien * tree.c (build_cplus_array_type_1): Still process simple array types 379296263Sobrien normally in templates. 379396263Sobrien 379496263Sobrien PR c++/6395 379596263Sobrien * decl.c (make_rtl_for_nonlocal_decl): Don't mess with #pragma i/i 379696263Sobrien stuff for comdats. 379796263Sobrien 379896263Sobrien2002-04-23 Jakub Jelinek <jakub@redhat.com> 379996263Sobrien 380096263Sobrien * parse.y (check_class_key): Allow KEY to be union/enum/struct/class 380196263Sobrien node with attributes. 380296263Sobrien 380396263Sobrien2002-2-23 David O'Brien <obrien@FreeBSD.org> 380496263Sobrien 380596263Sobrien * g++spec.c (MATH_LIBRARY_PROFILE, LIBSTDCXX_PROFILE): Add. 380696263Sobrien Use MATH_LIBRARY_PROFILE and LIBSTDCXX_PROFILE if profile flag given. 380796263Sobrien 380896263Sobrien2002-04-23 Mark Mitchell <mark@codesourcery.com> 380996263Sobrien 381096263Sobrien PR c++/6256: 381196263Sobrien * pt.c (tsubst_friend_class): Handle templates with explicit 381296263Sobrien nested names. 381396263Sobrien 381496263Sobrien PR c++/6331: 381596263Sobrien * typeck.c (merge_types): Remember the cv-qualification of pointer 381696263Sobrien types when merging them. 381796263Sobrien 3818117395Skan2002-04-20 Neil Booth <neil@daikokuya.demon.co.uk> 3819117395Skan 3820117395Skan * cp-lang.c (LANG_HOOKS_FUNCTION_INIT, 3821117395Skan LANG_HOOKS_FUNCTION_FREE, LANG_HOOKS_FUNCTION_MARK): Redefine. 3822117395Skan * cp-tree.h (cxx_push_function_context, cxx_pop_function_context, 3823117395Skan cxx_mark_function_context): New. 3824117395Skan * decl.c (push_cp_function_context, pop_cp_function_context, 3825117395Skan mark_cp_function_context): Rename for consistency. 3826117395Skan (cxx_init_decl_processing): Don't set old hooks. 3827117395Skan 3828117395Skan2002-04-19 Neil Booth <neil@daikokuya.demon.co.uk> 3829117395Skan 3830117395Skan * call.c (convert_type_from_ellipsis): Rename, update. 3831117395Skan * cp-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine. 3832117395Skan * cp-tree.h (convert_type_from_ellipsis): Rename. 3833117395Skan * decl.c (cxx_init_decl_processing): Don't set hook. 3834117395Skan 3835117395Skan2002-04-18 Neil Booth <neil@daikokuya.demon.co.uk> 3836117395Skan 3837117395Skan * call.c (build_new_method_call): Update. 3838117395Skan * cp-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine. 3839117395Skan * cp-tree.h (cxx_incomplete_type_error): New. 3840117395Skan * decl.c (grokdeclarator, grokparms): Update. 3841117395Skan * decl2.c (check_classfn): Update. 3842117395Skan * pt.c (tsubst): Update. 3843117395Skan * typeck.c (complete_type_or_else, expr_sizeof, 3844117395Skan decay_conversion): Update. 3845117395Skan * typeck2.c (incomplete_type_error): Rename. 3846117395Skan (add_exception_specifier): Update. 3847117395Skan 384896263Sobrien2002-04-18 Jason Merrill <jason@redhat.com> 384996263Sobrien 385096263Sobrien PR c++/5658 385196263Sobrien * search.c (setup_class_bindings): A class template qualifies as a 385296263Sobrien type binding. 385396263Sobrien 385496263Sobrien2002-04-17 Jakub Jelinek <jakub@redhat.com> 385596263Sobrien 385696263Sobrien PR c++/6316 385796263Sobrien * decl2.c (finish_file): Clear DECL_EXTERNAL in a separate loop 385896263Sobrien before expanding. 385996263Sobrien 386096263Sobrien2002-04-16 Mark Mitchell <mark@codesourcery.com> 386196263Sobrien 386296263Sobrien * init.c (begin_init_stmts): Remove commented out code. 386396263Sobrien (finish_init_stmts): Set STMT_EXPR_NO_SCOPE. 386496263Sobrien * semantics.c (begin_gobal_stmt_expr): Adjust call to 386596263Sobrien expand_start_stmt_expr. 3866104752Skan 386796263Sobrien2002-04-15 Mark Mitchell <mark@codesourcery.com> 386896263Sobrien 386996263Sobrien * decl.c (register_dtor_fn): Pass the address of dso_handle, not 387096263Sobrien dso_handle itself, to __cxa_atexit. 387196263Sobrien 3872117395Skan2002-04-15 Gabriel Dos Reis <gdr@merlin.codesourcery.com> 3873117395Skan 3874117395Skan * error.c (cxx_print_error_function): Adjust call to macros. 3875117395Skan 387696263Sobrien2002-04-14 Jakub Jelinek <jakub@redhat.com> 387796263Sobrien 387896263Sobrien * class.c (layout_virtual_bases): Do all dsize computation on trees. 387996263Sobrien 3880117395Skan2002-04-14 Jason Merrill <jason@redhat.com> 3881117395Skan 3882117395Skan * typeck.c (get_member_function_from_ptrfunc): Don't do 3883117395Skan gratuitious division and multiplication on 3884117395Skan ptrmemfunc_vbit_in_delta targets. 3885117395Skan 388696263Sobrien2002-04-12 Mark Mitchell <mark@codesourcery.com> 388796263Sobrien 388896263Sobrien PR c++/5373. 388996263Sobrien * semantics.c (finish_expr_stmt): Remember the type of the 389096263Sobrien expression before any conversions are performed. 389196263Sobrien 3892117395Skan2002-04-12 Mark Mitchell <mark@codesourcery.com> 3893117395Skan 389496263Sobrien PR c++/5189. 389596263Sobrien * call.c (add_template_candidate_real): Do not treat member 389696263Sobrien templates as copy constructors. 389796263Sobrien 3898117395Skan2002-04-12 Mark Mitchell <mark@codesourcery.com> 3899117395Skan 390096263Sobrien * decl.c (duplicate_decls): Do not copy the RTL for a variable 390196263Sobrien declaration if the old variable had an incomplete type and the new 390296263Sobrien variable does not. 390396263Sobrien (complete_vars): Do not call layout_decl for completed variables. 390496263Sobrien 3905117395Skan2002-04-12 Richard Sandiford <rsandifo@redhat.com> 3906117395Skan 3907117395Skan * decl.c (duplicate_decls): Don't try to unify an implicit typedef 3908117395Skan with an explicit one. 3909117395Skan (follow_tag_typedef): New. 3910117395Skan (lookup_tag): Use it to extract the tag of an explicit typedef. 3911117395Skan (xref_tag): Likewise. 3912117395Skan 391396263Sobrien2002-04-11 Andrew Haley <aph@redhat.com> 391496263Sobrien 3915102780Skan * typeck.c (type_after_usual_arithmetic_conversions): 3916102780Skan If two types have the same variant, return immediately. 3917104752Skan When two floating-point operands are the same precision: 3918102780Skan convert to float if one of the operands is float; 3919102780Skan if neither operand is one of the standard types, return the type 3920102780Skan of the first operand. 3921104752Skan 392296263Sobrien2002-04-10 Nathan Sidwell <nathan@codesourcery.com> 392396263Sobrien 392496263Sobrien PR c++/5507 392596263Sobrien * decl.c (make_typename_type): Remove implicit typenameness. 392696263Sobrien 392796263Sobrien2002-04-09 Jason Merrill <jason@redhat.com> 392896263Sobrien 392996263Sobrien PR optimization/6189 393096263Sobrien * semantics.c (genrtl_start_function): Don't free 393196263Sobrien DECL_SAVED_FUNCTION_DATA for inline functions. 393296263Sobrien 3933117395Skan * init.c (build_member_call): For now, don't convert to 3934117395Skan intermediate base if it would cause an error. 3935117395Skan 393696263Sobrien2002-04-08 Paolo Carlini <pcarlini@unitus.it> 393796263Sobrien 393896263Sobrien * parse.y (namespace_qualifier, maybe_identifier, 393996263Sobrien begin_explicit_instantiation, end_explicit_instantiation, 394096263Sobrien apparent_template_type, .finish_template_type, 394196263Sobrien do_id, maybe_init, defarg_again, component_decl_1): 394296263Sobrien Add ending ';', in accordance with POSIX. 394396263Sobrien 394496263Sobrien2002-04-06 Mark Mitchell <mark@codesourcery.com> 394596263Sobrien 394696263Sobrien PR c++/5571 394796263Sobrien * class.c (layout_class_type): Remember incomplete static 394896263Sobrien variables. 394996263Sobrien (finish_struct_1): Call complete_vars, not 395096263Sobrien hack_incomplete_structures. 395196263Sobrien * cp-tree.h (hack_incomplete_structures): Rename to ... 395296263Sobrien (complete_vars): ... this. 395396263Sobrien (struct saved_scope): Remove incomplete. 395496263Sobrien (namespace_scope_incomplete): Remove. 395596263Sobrien * decl.c (struct binding_level): Remove incomplete. 395696263Sobrien (incomplete_vars): New variable. 395796263Sobrien (mark_binding_level): Don't mark incomplete. 395896263Sobrien (print_binding_level): Don't print it. 395996263Sobrien (mark_saved_scope): Don't mark incomplete. 396096263Sobrien (pushdecl): Use maybe_register_incopmlete_var. 396196263Sobrien (cxx_init_decl_processing): Register incomplete_vars for GC. 396296263Sobrien (start_decl_1): Clarify error message. 396396263Sobrien (hack_incomplete_vars): Remove. 396496263Sobrien (maybe_register_incomplete_var): New function. 396596263Sobrien (complete_vars): Likewise. 396696263Sobrien 396796263Sobrien2002-04-06 Jason Merrill <jason@redhat.com> 396896263Sobrien 396996263Sobrien PR c++/4934 397096263Sobrien * error.c (dump_expr) [CONVERT_EXPR]: Make sure TREE_TYPE (t) is 397196263Sobrien set before checking it. 397296263Sobrien 3973117395Skan PR c++/525 3974117395Skan * init.c (build_member_call): Use build_scoped_ref. 3975117395Skan (resolve_offset_ref): Likewise. 3976117395Skan * call.c (build_scoped_method_call): Likewise. 3977117395Skan * tree.c (maybe_dummy_object): Kludge around current_class_type being 3978117395Skan wrong. 3979117395Skan * typeck2.c (build_scoped_ref): Return the binfo via binfo_p parm. 3980117395Skan * cp-tree.h: Adjust. 3981117395Skan 3982117395Skan * init.c (push_base_cleanups): Just use build_scoped_method_call. 3983117395Skan 398496263Sobrien PR c++/6179 3985104752Skan * method.c (implicitly_declare_fn): Pass unqualified type to 398696263Sobrien synthesize_exception_spec. 398796263Sobrien 3988117395Skan2002-04-04 Neil Booth <neil@daikokuya.demon.co.uk> 398996263Sobrien 3990117395Skan * cp-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine. 3991117395Skan * cvt.c: Update comment. 3992117395Skan * init.c (expand_cleanup_for_base): Update. 3993117395Skan * semantics.c (finish_parenthesized_expr): Update. 3994117395Skan * typeck.c (cp_truthvalue_conversion): Update. 399596263Sobrien 3996117395Skan2002-04-04 Jason Merrill <jason@redhat.com> 3997117395Skan 3998117395Skan * semantics.c (finish_eh_cleanup): New fn. 3999117395Skan * cp-tree.h: Add prototype. 4000117395Skan * init.c (perform_member_init, expand_cleanup_for_base): Use 4001117395Skan finish_eh_cleanup. 4002117395Skan * cp-tree.def (SUBOBJECT, CTOR_STMT): Remove. 4003117395Skan * cp-tree.h: Remove references. 4004117395Skan * decl.c (begin_constructor_body, end_constructor_body): Likewise. 4005117395Skan * dump.c (cp_dump_tree): Likewise. 4006117395Skan * pt.c (tsubst_expr): Likewise. 4007117395Skan * semantics.c (genrtl_ctor_stmt, genrtl_subobject): Remove. 4008117395Skan (cp_expand_stmt): Remove handling of CTOR_STMT and SUBOBJECT. 4009117395Skan * tree.c (cp_statement_code_p): Likewise. 4010117395Skan 4011117395Skan * init.c (build_new_1): Set CLEANUP_EH_ONLY on deleting cleanup. 4012117395Skan 401396263Sobrien PR c++/5636 401496263Sobrien * semantics.c (nullify_returns_r): Just set CLEANUP_EH_ONLY on 401596263Sobrien cleanup for nrv. 401696263Sobrien 401796263Sobrien PR c++/5104 401896263Sobrien * typeck.c (comptypes) [FUNCTION_TYPE]: Don't compare exception 401996263Sobrien specifiers. 402096263Sobrien [METHOD_TYPE]: Use same code as FUNCTION_TYPE. 402196263Sobrien 4022117395Skan2002-04-03 Richard Henderson <rth@redhat.com> 4023117395Skan 4024117395Skan * cp-lang.c (cxx_warn_unused_global_decl): New. 4025117395Skan (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New. 4026117395Skan 4027117395Skan2002-04-03 Neil Booth <neil@daikokuya.demon.co.uk> 4028117395Skan 4029117395Skan * cp-lang.c (LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): Redefine. 4030117395Skan * tree.c (init_tree): Don't set hook. 4031117395Skan 403296263Sobrien2002-04-03 Roger Sayle <roger@eyesopen.com> 403396263Sobrien 403496263Sobrien PR c++/5998: 403596263Sobrien * decl.c (duplicate_decls): Don't mess with assembler names when 403696263Sobrien redeclaring builtin functions as static. 403796263Sobrien 4038117395Skan2002-04-01 Neil Booth <neil@daikokuya.demon.co.uk> 4039117395Skan 4040117395Skan * call.c (build_addr_func): Update. 4041117395Skan * class.c (resolve_address_of_overloaded_function): Update. 4042117395Skan * cp-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine. 4043117395Skan * cp-tree.h (cxx_mark_addressable): New. 4044117395Skan * decl.c (register_dtor_fn, cxx_maybe_build_cleanup): Update. 4045117395Skan * decl2.c (build_cleanup): Update. 4046117395Skan * except.c (build_throw): Update. 4047117395Skan * init.c (resolve_offset_ref): Update. 4048117395Skan * pt.c (convert_nontype_argument): Update. 4049117395Skan * semantics.c (finish_asm_stmt, simplify_affr_init_exprs_r): Update. 4050117395Skan * typeck.c (decay_conversion, build_array_ref, build_unary_op, 4051117395Skan unary_complex_lvalue): Update. 4052117395Skan (mark_addressable): Rename. 4053117395Skan 405496263Sobrien2002-04-01 Roger Sayle <roger@eyesopen.com> 405596263Sobrien 405696263Sobrien PR c++/5998: 405796263Sobrien * decl.c (duplicate_decls): Overwrite the RTL when (and only 405896263Sobrien when) overwriting a built-in function. Don't use COPY_DECL_RTL, 405996263Sobrien but follow the SET_DECL_RTL idiom used elsewhere in the function. 406096263Sobrien 4061117395Skan2002-04-01 Neil Booth <neil@daikokuya.demon.co.uk> 4062117395Skan 4063117395Skan * cp-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE, 4064117395Skan LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New. 4065117395Skan * decl.c (grokdeclarator): Update. 4066117395Skan * mangle.c (write_integer_cst): Update. 4067117395Skan * typeck.c (build_binary_op): Update. 4068117395Skan 4069117395Skan2002-03-31 Neil Booth <neil@daikokuya.demon.co.uk> 4070117395Skan 4071117395Skan * cp-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine. 4072117395Skan * lex.c (cxx_init): Don't set hook. 4073117395Skan 4074117395Skan2002-03-31 Neil Booth <neil@daikokuya.demon.co.uk> 4075117395Skan 4076117395Skan * Make-lang.in (error.o): Update. 4077117395Skan * cp-lang.c (LANG_HOOKS_PRINT_ERROR_FUNCTION): Redefine. 4078117395Skan * cp-tree.h (struct diagnostic_context): Predeclare. 4079117395Skan (cxx_print_error_function): New. 4080117395Skan * error.c: Include langhooks-def.h. 4081117395Skan (lang_print_error_function): Rename. Update. 4082117395Skan (init_error): Don't set hook. 4083117395Skan 4084117395Skan2002-03-29 Neil Booth <neil@daikokuya.demon.co.uk> 4085117395Skan 4086117395Skan * cp-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE): 4087117395Skan Redefine. 4088117395Skan * cvt.c (cp_convert_to_pointer, type_promotes_to): Use new hooks. 4089117395Skan * decl.c (finish_enum): Similarly. 4090117395Skan * error.c (dump_type): Similarly. 4091117395Skan * lex.c (cxx_init): Similarly. 4092117395Skan * mangle.c (write_builtin_type): Similarly. 4093117395Skan * typeck.c (comptypes): Similarly. 4094117395Skan 409596263Sobrien2002-03-28 Roger Sayle <roger@eyesopen.com> 409696263Sobrien 409796263Sobrien PR c++/5998: 409896263Sobrien * decl.c (cxx_init_decl_processing): Re-enable built-in functions 409996263Sobrien in the g++ front-end. 410096263Sobrien (duplicate_decl): Allow redefinition of anticipated built-ins. 410196263Sobrien Fix inlining problem by over-writing the old DECL_RTL. 410296263Sobrien (lookup_namespace_name): Fail to find an identifier in the 410396263Sobrien specified namespace if its still anticipated. 410496263Sobrien (builtin_function_1): New function split out from builtin_function 410596263Sobrien to create a builtin in the current namespace with given context. 410696263Sobrien (builtin_function): Call builtin_function_1 to define the 410796263Sobrien appropriate builtins in both the std and global namespaces. 410896263Sobrien (select_decl): Don't test for anticipated decls here. 410996263Sobrien (unqualified_namespace_lookup): Instead ignore them whilst 411096263Sobrien searching through scopes and namespaces. 411196263Sobrien * decl2.c (do_nonmember_using_decl): If a using declaration 411296263Sobrien specifies an anticipated built-in function, mark it as no longer 411396263Sobrien anticipated in that scope. 411496263Sobrien (ambiguous_decl): Avoid resolving to an anticipated decl. 411596263Sobrien * lex.c (do_scoped_id): Fail to find an identifier in the global 411696263Sobrien namespace if its still anticipated. 411796263Sobrien 4118117395Skan2002-03-29 Neil Booth <neil@daikokuya.demon.co.uk> 4119117395Skan 4120117395Skan * cp-lang.c (LANG_HOOKS_MAKE_TYPE): Redefine. 4121117395Skan * cp-tree.h (cp_make_lang_type): Rename. 4122117395Skan * lex.c (cp_make_lang_type): Rename. 4123117395Skan (make_aggr_type): Update. 4124117395Skan * tree.c (init_tree): Don't set make_lang_type_fn. 4125117395Skan 412696263Sobrien2002-03-29 Jakub Jelinek <jakub@redhat.com> 412796263Sobrien 412896263Sobrien PR c++/6073 412996263Sobrien * class.c (finish_struct_1): Update static field's DECL_MODE even 413096263Sobrien if its type is a variant of t. 413196263Sobrien 4132117395Skan2002-03-27 Neil Booth <neil@daikokuya.demon.co.uk> 4133117395Skan 4134117395Skan * cp-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine. 4135117395Skan * cp-tree.h (cxx_insert_default_attributes): New. 4136117395Skan * decl.c (insert_default_attributes): Rename. 4137117395Skan 413896263Sobrien2002-03-27 Mark Mitchell <mark@codesourcery.com> 413996263Sobrien 414096263Sobrien PR c++/4884 414196263Sobrien * call.c (build_op_delete_call): Allow for the fact the placement 414296263Sobrien may be a COMPOUND_EXPR. 4143104752Skan 4144117395Skan2002-03-27 Neil Booth <neil@daikokuya.demon.co.uk> 4145117395Skan 4146117395Skan * cp-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine. 4147117395Skan * cp-tree.h (init_cplus_expand): Remove. 4148117395Skan (cxx_expand_expr): New. 4149117395Skan * expr.c (cplus_expand_expr): Rename cxx_expand_expr, 4150117395Skan fix prototype. 4151117395Skan (init_cplus_expand): Remove. 4152117395Skan * lex.c (cxx_init): Don't call init_cplus_expand. 4153117395Skan 4154117395Skan2002-03-26 Mark Mitchell <mark@codesourcery.com> 4155117395Skan 4156117395Skan PR c++/4884. 4157117395Skan * init.c (build_new_1): Allow for the fact the result of 4158117395Skan build_function_call may be a COMPOUND_EXPR. 4159117395Skan 416096263Sobrien2002-03-26 Nathan Sidwell <nathan@codesourcery.com> 416196263Sobrien 416296263Sobrien PR c++/5682 416396263Sobrien * cp-tree.h (BINFO_PRIMARY_P): Explain meaning better. 416496263Sobrien (dfs_skip_nonprimary_vbases_unmarkedp): Remove. 416596263Sobrien (dfs_skip_nonprimary_vbases_markedp): Remove. 416696263Sobrien * search.c (get_shared_vbase_if_not_primary): Remove. 416796263Sobrien (dfs_skip_nonprimary_vbases_unmarkedp): Remove. 416896263Sobrien (dfs_skip_nonprimary_vbases_markedp): Remove. 416996263Sobrien (dfs_unmarked_real_bases_queue_p): Just get the canonical binfo. 417096263Sobrien (dfs_marked_real_bases_queue_p): Likewise. 417196263Sobrien 4172117395Skan2002-03-26 Neil Booth <neil@daikokuya.demon.co.uk> 417396263Sobrien 4174117395Skan * cp-lang.c (LANG_HOOKS_MARK_TREE): Redefine. 4175117395Skan * cp-tree.h (cxx_mark_tree): New. 4176117395Skan * decl.c (lang_mark_tree): Rename cxx_mark_tree. 417796263Sobrien 4178117395Skan2002-03-25 Neil Booth <neil@daikokuya.demon.co.uk> 417996263Sobrien 4180117395Skan * cp-tree.h (cxx_maybe_build_cleanup): New. 4181117395Skan * decl.c (destroy_local_var, hack_incomplete_structures): Update. 4182117395Skan (maybe_build_cleanup): Rename cxx_maybe_build_cleanup. 4183117395Skan * tree.c (build_target_expr): Update. 4184117395Skan * cp-lang.c (LANG_HOOKS_MAYBE_BUILD_CLEANUP): Redefine. 4185117395Skan 4186117395Skan2002-03-24 Neil Booth <neil@daikokuya.demon.co.uk> 4187117395Skan 4188117395Skan * decl2.c (cxx_decode_option): Handle -E. 4189117395Skan * lang-specs.h (default_compilers): Preprocess with cc1plus. 4190117395Skan * lex.c (cxx_init): Exit quickly if c_common_init returns NULL. 4191117395Skan 4192117395Skan2002-03-23 Jakub Jelinek <jakub@redhat.com> 4193117395Skan 419496263Sobrien PR c++/6037 419596263Sobrien * decl.c (start_enum): Don't set TREE_ADDRESSABLE on TREE_LIST node. 419696263Sobrien 4197117395Skan2002-03-23 Gabriel Dos Reis <gdr@merlin.codesourcery.com> 4198117395Skan 4199117395Skan * error.c (dump_type): Be careful about implicit typenames. 4200117395Skan 4201117395Skan2002-03-21 Gabriel Dos Reis <gdr@merlin.codesourcery.com> 4202117395Skan 4203117395Skan PR C++/3656 4204117395Skan * semantics.c (finish_base_specifier): Handle erronous base 4205117395Skan classes. 4206117395Skan 4207117395Skan2002-03-22 Zack Weinberg <zack@codesourcery.com> 4208117395Skan 4209117395Skan * error.c: Always use REAL_VALUE_TO_DECIMAL; don't test 4210117395Skan REAL_IS_NOT_DOUBLE. 4211117395Skan 421296263Sobrien2002-03-22 Jeff Knaggs <jknaggs@redhat.com> 421396263Sobrien 4214117395Skan * typeck.c (get_member_function_from_ptrfunc): Scale idx down to 4215117395Skan an index into the vtable_entry array regardless of 421696263Sobrien TARGET_PTRMEMFUNC_VBIT_LOCATION. 421796263Sobrien 421896263Sobrien2002-03-21 Aldy Hernandez <aldyh@redhat.com> 421996263Sobrien 422096263Sobrien * tree.c (cp_cannot_inline_tree_fn): Same. 422196263Sobrien 4222117395Skan2002-03-21 Neil Booth <neil@daikokuya.demon.co.uk> 4223117395Skan 4224117395Skan * cp-tree.h (pushdecl, pushlevel, poplevel, set_block, 4225117395Skan insert_block, getdecls, global_bindings_p): New. 4226117395Skan 4227117395Skan2002-03-20 Nathan Sidwell <nathan@codesourcery.com> 4228117395Skan 4229117395Skan PR c++/4361 4230117395Skan * mangle.c (struct globals) Add internal_mangling_p member. 4231117395Skan (write_template_param): Do internal mangling, if needed. 4232117395Skan (mangle_conv_op_name_for_type): Request internal mangling. 4233117395Skan 423496263Sobrien2002-03-20 Jason Merrill <jason@redhat.com> 423596263Sobrien 423696263Sobrien PR c++/2136 423796263Sobrien * init.c (build_delete): Check access for a member op delete here. 423896263Sobrien * decl2.c (delete_sanity): Not here. 423996263Sobrien 424096263Sobrien2002-03-19 Jason Merrill <jason@redhat.com> 424196263Sobrien 424296263Sobrien PR c++/5118 424396263Sobrien * class.c (get_vfield_name): Use the constructor_name. 424496263Sobrien 4245117395Skan2002-03-20 Neil Booth <neil@daikokuya.demon.co.uk> 4246117395Skan 4247117395Skan * cp-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine. 4248117395Skan * cp-tree.h (lang_printable_name): Rename. 4249117395Skan * error.c (lang_decl_name): Use new hook. 4250117395Skan * lex.c (cxx_init): Remove old hook. 4251117395Skan * pt.c (tsubst_decl): Use new hook. 4252117395Skan * tree.c (lang_printable_name): Rename. 4253117395Skan 425496263Sobrien2002-03-18 Eric Botcazou <ebotcazou@multimania.com> 425596263Sobrien 425696263Sobrien PR c++/3882 425796263Sobrien * pt.c (tsubst_decl): Move __PRETTY_FUNCTION__ handling... 425896263Sobrien (tsubst_expr) [DECL_STMT]: ...here. And substitute the initializer 425996263Sobrien only after recording the declaration. 426096263Sobrien 426196263Sobrien2002-03-18 Jason Merrill <jason@redhat.com> 426296263Sobrien 426396263Sobrien PR c++/2039 426496263Sobrien * init.c (resolve_offset_ref): Hand off to build_component_ref. 426596263Sobrien 426696263Sobrien PR c++/4222, c++/5995 426796263Sobrien * call.c (build_over_call): Fix empty class logic. 426896263Sobrien 426996263Sobrien PR c++/3870 427096263Sobrien * cp-tree.h (struct saved_scope): Add last_parms field. 427196263Sobrien * decl.c (maybe_push_to_top_level): Save last_function_parms. 427296263Sobrien (pop_from_top_level): Restore it. 427396263Sobrien 427496263Sobrien PR c++/4377 427596263Sobrien * mangle.c (write_expression): Strip NOP_EXPRs sooner. Also strip 427696263Sobrien NON_LVALUE_EXPRs. 427796263Sobrien 427896263Sobrien PR c++/4003 427996263Sobrien * pt.c (tsubst_friend_function): Use decl_namespace_context. 428096263Sobrien 428196263Sobrien PR c++/3948 -- C++ ABI change, followup to 2001-12-18 patch. 428296263Sobrien * class.c (finish_struct_bits): Also set TREE_ADDRESSABLE for a 428396263Sobrien type with a nontrivial destructor. 428496263Sobrien 428596263Sobrien2002-03-17 Jason Merrill <jason@redhat.com> 428696263Sobrien 428796263Sobrien PR c++/4460 428896263Sobrien * class.c (build_base_path): Virtual base layout is fixed in 428996263Sobrien in-charge [cd]tors. 429096263Sobrien 4291117395Skan2002-03-17 Neil Booth <neil@daikokuya.demon.co.uk> 4292117395Skan 4293117395Skan * cp-lang.c (LANG_HOOKS_PARSE_FILE): Redefine. 4294117395Skan * parse.y (yyparse): Remove macro. 4295117395Skan 4296117395Skan2002-03-17 Jason Merrill <jason@redhat.com> 4297117395Skan 429896263Sobrien PR c++/5757 429996263Sobrien * init.c (build_new_1): Pass the right pointer to op delete. 430096263Sobrien 4301117395Skan2002-03-16 Nathan Sidwell <nathan@codesourcery.com> 430296263Sobrien 4303117395Skan PR c++/4361 4304117395Skan * cp-tree.h (CLASSTYPE_METHOD_VEC): Document where templated 4305117395Skan conversion operators go. 4306117395Skan (struct lang_decl_flags): Add template_conv_p and unused 4307117395Skan bitfields. 4308117395Skan (DECL_TEMPLATE_CONV_FN_P): New macro. 4309117395Skan * call.c (build_user_type_conversion_1): Don't check second type 4310117395Skan conversion of overload set first. 4311117395Skan * class.c (add_method): Make sure templated conversion operators 4312117395Skan all end up on slot 2. 4313117395Skan * lex.c (do_identifier): A conversion operator token might be 4314117395Skan satisfied by a templated conversion operator. 4315117395Skan * pt.c (check_explicit_specialization): Use 4316117395Skan CLASSTYPE_FIRST_CONVERSION_SLOT. 4317117395Skan (template_parm_this_level_p): New function. 4318117395Skan (push_template_decl_real): Determine DECL_TEMPLATE_CONV_FN_P. 4319117395Skan * search.c (lookup_fnfields_1): Template conversions will be on 4320117395Skan the first slot. 4321117395Skan * typeck.c (build_component_ref): Preserve the type of an 4322117395Skan conversion operator name on the overload type. 4323117395Skan (build_x_function_call): Retrieve the conversion operator name. 432496263Sobrien 432596263Sobrien2002-03-15 Richard Henderson <rth@redhat.com> 432696263Sobrien 4327117395Skan * init.c (build_new_1): Use size_binop instead of cp_build_binary_op. 432896263Sobrien 432996263Sobrien2002-03-15 Mark Mitchell <mark@codesourcery.com> 433096263Sobrien 433196263Sobrien * cp-tree.h (CLEANUP_DECL): Remove. 433296263Sobrien (CLEANUP_EXPR): Likewise. 433396263Sobrien * decl.c (destroy_local_var): Simplify. 433496263Sobrien (maybe_build_cleanup): Tidy. 433596263Sobrien * dump.c (cp_dump_tree): Remove handling of CLEANUP_STMT. 433696263Sobrien * semantics.c (cp_expand_stmt): Likewise. 433796263Sobrien * cp/tree.c (cp_statement_code_p): Likewise. 433896263Sobrien 433996263Sobrien2002-03-15 Jason Merrill <jason@redhat.com> 434096263Sobrien 434196263Sobrien PR c++/5857 434296263Sobrien * decl.c (duplicate_decls): Use merge_types instead of common_type. 434396263Sobrien * typeck.c (common_type): Just hand off to 434496263Sobrien type_after_usual_arithmetic_conversions and 434596263Sobrien composite_pointer_type. 434696263Sobrien (merge_types): New fn. 434796263Sobrien (commonparms): Use it instead of common_type. 434896263Sobrien (type_after_usual_arithmetic_conversions): Also handle COMPLEX_TYPE. 434996263Sobrien (composite_pointer_type): Also handle attributes. 435096263Sobrien * cp-tree.h: Declare merge_types. 435196263Sobrien 435296263Sobrien * decl.c (make_rtl_for_nonlocal_decl): Also defer COMDAT 435396263Sobrien variables. 435496263Sobrien * decl2.c (maybe_make_one_only): Also mark the decl as needed. 435596263Sobrien 4356117395Skan2002-03-14 Richard Henderson <rth@redhat.com> 4357117395Skan 4358117395Skan * decl.c: Include c-pragma.h. 4359117395Skan (start_decl, start_function): Invoke maybe_apply_pragma_weak. 4360117395Skan * Make-lang.in: Update dependencies. 4361117395Skan 436296263Sobrien2002-03-14 Jakub Jelinek <jakub@redhat.com> 436396263Sobrien 436496263Sobrien PR c++/5908 436596263Sobrien * call.c (build_over_call): Set TREE_NO_UNUSED_WARNING too. 436696263Sobrien * cvt.c (convert_to_void): Preserve TREE_NO_UNUSED_WARNING. 436796263Sobrien 436896263Sobrien2002-03-12 Richard Sandiford <rsandifo@redhat.com> 436996263Sobrien 437096263Sobrien * mangle.c (write_builtin_type): Handle 128-bit integers even if 437196263Sobrien they are not a standard integer type. 437296263Sobrien 4373117395Skan2002-03-12 Richard Sandiford <rsandifo@redhat.com> 4374117395Skan 4375117395Skan * cp-tree.h (init_init_processing): Remove declaration. 4376117395Skan * init.c (BI_header_type, init_init_processing): Remove old ABI stuff. 4377117395Skan * decl.c (cxx_init_decl_processing): Don't call init_init_processing. 4378117395Skan 4379117395Skan2002-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 4380117395Skan 4381117395Skan * cp-lang.c (tree_code_type, tree_code_length, tree_code_name): 4382117395Skan Define. 4383117395Skan * decl.c (duplicate_decls): Use TREE_CODE_LENGTH, not 4384117395Skan tree_code_length. 4385117395Skan * lex.c (cplus_tree_code_type, cplus_tree_code_length, 4386117395Skan cplus_tree_code_name): Delete. 4387117395Skan (cxx_init): Don't call add_c_tree_codes, instead set 4388117395Skan lang_unsafe_for_reeval. Don't try to copy into the various 4389117395Skan tree_code arrays. 4390117395Skan 439196263Sobrien2002-03-12 Nathan Sidwell <nathan@codesourcery.com> 439296263Sobrien 439396263Sobrien PR c++/5659 439496263Sobrien * decl.c (xref_tag): Don't set CLASSTYPE_DECLARED_CLASS here. 439596263Sobrien * decl2.c (handle_class_head): Set CLASSTYPE_DECLARED_CLASS for 439696263Sobrien definitions. 439796263Sobrien 439896263Sobrien2002-03-11 Nathan Sidwell <nathan@codesourcery.com> 439996263Sobrien 440096263Sobrien Revert 2001-03-26 Nathan Sidwell <nathan@codesourcery.com>, 440196263Sobrien DR209 is now not a defect. 440296263Sobrien * cp-tree.h (skip_type_access_control): Remove. 440396263Sobrien * decl.c (grokdeclarator): Do type access control for friend 440496263Sobrien declarations. 440596263Sobrien * semantics.c (decl_type_access_control): Don't reset 440696263Sobrien current_type_lookups. 440796263Sobrien (save_type_access_control): Always save the lookups. 440896263Sobrien (skip_type_access_control): Remove. 440996263Sobrien (finish_class_definition): Don't change type_lookups. 441096263Sobrien 441196263Sobrien2002-03-11 Nathan Sidwell <nathan@codesourcery.com> 441296263Sobrien 441396263Sobrien Revert 2000-12-01 Nathan Sidwell <nathan@codesourcery.com>, 441496263Sobrien It is incorrect. 441596263Sobrien * typeck.c (build_static_cast): Compare non-qualified types 441696263Sobrien with pointer to member conversions. 441796263Sobrien 4418117395Skan2002-03-11 Dan Nicolaescu <dann@ics.uci.edu> 4419117395Skan Daniel Berlin <dan@dberlin.org> 4420117395Skan 4421117395Skan * cp-lang.c (ok_to_generate_alias_set_for_type): New function. 4422117395Skan (cxx_get_alias_set): Use it. 4423117395Skan 4424117395Skan2002-03-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 4425117395Skan 4426117395Skan * cp-tree.h (stabilize_expr): Prototype. 4427117395Skan 442896263Sobrien2002-03-08 Craig Rodrigues <rodrigc@gcc.gnu.org> 4429104752Skan 443096263Sobrien * cp-tree.h (CLEAR_BINFO_MARKED): Make both parts of 443196263Sobrien conditional return void. 443296263Sobrien 4433117395Skan2002-03-08 Neil Booth <neil@daikokuya.demon.co.uk> 4434117395Skan 4435117395Skan * cp-lang.c (LANG_HOOKS_UNSAVE): Redefine. 4436117395Skan * cp-tree.h (cxx_unsave): New. 4437117395Skan * tree.c (cp_unsave): Rename cxx_unsave, update prototype. 4438117395Skan (init_tree): Update. 4439117395Skan 4440117395Skan2002-03-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 4441117395Skan 4442117395Skan * decl.c (cxx_init_decl_processing): Use ARRAY_SIZE in lieu of 4443117395Skan explicit sizeof/sizeof. 4444117395Skan * decl2.c (cxx_decode_option): Likewise. 4445117395Skan * lex.c (init_reswords, REDUCE_LENGTH, TOKEN_LENGTH): Likewise. 4446117395Skan 444796263Sobrien2002-03-02 Nathan Sidwell <nathan@codesourcery.com> 444896263Sobrien 444996263Sobrien PR c++/775 445096263Sobrien * decl.c (lookup_tag): Only reject enum/class mismatch, not 445196263Sobrien class/union mismatch. 445296263Sobrien * parse.y (check_class_key): New function. 445396263Sobrien (structsp): Call it. 445496263Sobrien 445596263Sobrien2002-03-01 Michael Matz <matz@suse.de> 445696263Sobrien 445796263Sobrien * typeck.c (cp_pointer_int_sum): Complete inner type which is 445896263Sobrien used later by size_in_bytes(). 445996263Sobrien 446096263Sobrien2002-03-01 Phil Edwards <pme@gcc.gnu.org> 446196263Sobrien 446296263Sobrien * cp-tree.h: Require __GNUC__ to be #defined. 446396263Sobrien (build_init): Add missing prototype. 446496263Sobrien 4465117395Skan2002-03-01 Jason Merrill <jason@redhat.com> 4466117395Skan 4467117395Skan * except.c: Don't include decl.h or obstack.h. Do include 4468117395Skan tree-inline.h. 4469117395Skan (build_throw): Destroy temporaries from the thrown 4470117395Skan expression before calling __cxa_throw. Construct a thrown 4471117395Skan temporary directly into the exception object. 4472117395Skan (stabilize_throw_expr): New function. 4473117395Skan (wrap_cleanups_r): New function. 4474117395Skan * tree.c (stabilize_expr): New function. 4475117395Skan * init.c (build_init): New function. 4476117395Skan * Make-lang.in (cp/except.o): Adjust .h deps. 4477117395Skan 447896263Sobrien2002-02-28 Jason Merrill <jason@redhat.com> 447996263Sobrien 448096263Sobrien * search.c (lookup_base_r): Don't clear is_non_public just because 448196263Sobrien we found a friendly scope. 448296263Sobrien 448396263Sobrien * decl.c (finish_function): Only warn about missing return 448496263Sobrien statement with -Wreturn-type. 448596263Sobrien 4486117395Skan2002-02-28 Neil Booth <neil@daikokuya.demon.co.uk> 4487117395Skan 4488117395Skan * class.c (build_clone): Update. 4489117395Skan * cp-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine. 4490117395Skan * cp-tree.h (cxx_dup_lang_specific_decl): New. 4491117395Skan * lex.c (copy_lang_decl): Rename cxx_dup_lang_specific_decl. 4492117395Skan (copy_decl): Update. 4493117395Skan * method.c (make_thunk): Update. 4494117395Skan 4495117395Skan2002-02-27 Zack Weinberg <zack@codesourcery.com> 4496117395Skan 4497117395Skan * decl2.c: Delete traditional-mode-related code copied from 4498117395Skan the C front end but not used, or used only to permit the 4499117395Skan compiler to link. 4500117395Skan 4501104752Skan2002-02-24 Craig Rodrigues <rodrigc@gcc.gnu.org> 450296263Sobrien 450396263Sobrien PR c++/4093 450496263Sobrien * cp-tree.h (SET_BINFO_MARKED): Cast false part of condition 450596263Sobrien to void. 450696263Sobrien 450796263Sobrien2002-02-22 Jakub Jelinek <jakub@redhat.com> 450896263Sobrien 450996263Sobrien PR other/5746 451096263Sobrien * semantics.c (finish_switch_cond): Don't call get_unwidened 451196263Sobrien if error_mark_node. 451296263Sobrien 451396263Sobrien2002-02-22 Nathan Sidwell <nathan@codesourcery.com> 451496263Sobrien 451596263Sobrien PR c++/2645, DR 295 451696263Sobrien * cp-tree.h (tsubst_flags_t): Add tf_ignore_bad_quals, 451796263Sobrien tf_keep_type_decl. 451896263Sobrien (make_typename_type): Use tsubst_flags_t. 451996263Sobrien * decl.c (make_typename_type): Adjust. Return non-artificial 452096263Sobrien TYPE_DECLs, if required. 452196263Sobrien (grokdeclarator): Simplify CVR qualification handling. Allow bad 452296263Sobrien qualifiers on typedef types. 452396263Sobrien * decl2.c (handle_class_head): Adjust make_typename_type call. 452496263Sobrien * parse.y (nested_name_specifier): Likewise. 452596263Sobrien (typename_sub0): Likewise. 452696263Sobrien (typename_sub1): Likewise. 452796263Sobrien * pt.c (convert_template_argument): Adjust make_typename_type 452896263Sobrien return value. 452996263Sobrien (tsubst): Adjust cp_build_qualified_type_real calls. 4530117395Skan (check_cv_quals_for_unify): Cope with allowing bad qualifications 453196263Sobrien on template type parms. 453296263Sobrien (instantiate_decl): Recheck substitutions to give warnings on bad 453396263Sobrien qualifications. 453496263Sobrien * tree.c (cp_build_qualified_type_real): Use tf_allow_bad_quals. 453596263Sobrien 453696263Sobrien2002-02-21 Aldy Hernandez <aldyh@redhat.com> 453796263Sobrien 453896263Sobrien * cp/decl.c (duplicate_decls): Merge always_inline attribute. 453996263Sobrien 454096263Sobrien * cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0 454196263Sobrien unless DECL_ALWAYS_INLINE. 454296263Sobrien 454396263Sobrien2002-02-20 Jakub Jelinek <jakub@redhat.com> 454496263Sobrien 454596263Sobrien * typeck.c (cp_pointer_int_sum): Renamed from 454696263Sobrien pointer_int_sum, call pointer_int_sum. 454796263Sobrien 454896263Sobrien2002-02-20 Jakub Jelinek <jakub@redhat.com> 454996263Sobrien 455096263Sobrien * decl.c (duplicate_decls): Return 0 if issued error about 455196263Sobrien redeclaration. 455296263Sobrien 455396263Sobrien2002-02-19 Jason Merrill <jason@redhat.com> 455496263Sobrien 4555104752Skan ABI change: Mangle `void (A::*)() const' as 455696263Sobrien M1AKFvvE, not MK1AFvvE. 455796263Sobrien * mangle.c (write_function_type): Write cv-quals for member 455896263Sobrien function type here. 455996263Sobrien (write_pointer_to_member_type): Not here. 456096263Sobrien 456196263Sobrien2002-02-18 Jason Merrill <jason@redhat.com> 456296263Sobrien 456396263Sobrien * pt.c (do_type_instantiation): Don't pedwarn if in_system_header. 456496263Sobrien (do_decl_instantiation): Likewise. 456596263Sobrien 456696263Sobrien2002-02-17 Craig Rodrigues <rodrigc@gcc.gnu.org> 456796263Sobrien 456896263Sobrien PR c++/5685 456996263Sobrien * decl.c (duplicate_decls): Make warning unconditional 457096263Sobrien if duplicate default argument declarations are present. 457196263Sobrien 457296263Sobrien2002-02-17 Jakub Jelinek <jakub@redhat.com> 457396263Sobrien 457496263Sobrien * typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit 457596263Sobrien shortening. 457696263Sobrien 457796263Sobrien2002-02-15 Nathan Sidwell <nathan@codesourcery.com> 457896263Sobrien 457996263Sobrien * decl.c (grokdeclarator): Set typedef_decl for all TYPE_DECLs, 458096263Sobrien remove incorrect comment. Move #if 0'd code to common path. Use 458196263Sobrien IMPLICIT_TYPENAME_P. Simplify & reformat ARRAY_TYPE duplication. 458296263Sobrien 458396263Sobrien2002-02-13 Jason Merrill <jason@redhat.com> 458496263Sobrien 458596263Sobrien * decl.c (builtin_function): Set TREE_THIS_VOLATILE on return fns. 458696263Sobrien (finish_function): Don't warn if current_function_returns_null. 458796263Sobrien 458896263Sobrien * typeck2.c (digest_init): Do handle values of vector type. 458996263Sobrien 459096263Sobrien * typeck2.c (digest_init, process_init_constructor): Treat vectors 459196263Sobrien like arrays. 459296263Sobrien 459396263Sobrien2002-02-11 Jason Merrill <jason@redhat.com> 459496263Sobrien 459596263Sobrien * parse.y (reserved_declspecs): Don't handle attributes. 459696263Sobrien (reserved_typespecquals): Handle them here. 459796263Sobrien * Make-lang.in (parse.c): Adjust expected conflicts. 459896263Sobrien 459996263Sobrien2002-02-08 Jakub Jelinek <jakub@redhat.com> 460096263Sobrien 460196263Sobrien * parse.y (primary, primary_no_id): Use compstmt_or_stmtexpr 460296263Sobrien instead of compstmt. 460396263Sobrien (compstmt_or_stmtexpr): Renamed from compstmt. 460496263Sobrien (compstmt): In addition to compstmt_or_stmtexpr clear last_expr_type. 460596263Sobrien 460696263Sobrien2002-02-07 Nathan Sidwell <nathan@codesourcery.com> 460796263Sobrien 460896263Sobrien Rename instantiate_type_flags to tsubst_flags_t & expand use. 460996263Sobrien * cp-tree.h (instantiate_type_flags): Rename to ... 461096263Sobrien (tsubst_flags_t): ... here. Rename itf_complain to tf_error, 461196263Sobrien add tf_warning flag. 461296263Sobrien (instantiate_type): Adjust prototype. 461396263Sobrien (tsubst, tsubst_expr, tsubst_copy, lookup_template_class, 461496263Sobrien do_type_instantiation, cp_build_qualified_type_real): Likewise. 461596263Sobrien cp_build_qualified_type: Adjust. 461696263Sobrien * class.c (instantiate_type): Adjust parameter. Rename itf_* to 461796263Sobrien tf_*. 461896263Sobrien * call.c (standard_conversion): Rename itf_* to tf_*. 461996263Sobrien (reference_binding): Likewise. 462096263Sobrien (convert_like_real): Likewise. 462196263Sobrien * cvt.c (cp_convert_to_pointer): Likewise. 462296263Sobrien (convert_to_reference): Likewise. 462396263Sobrien * decl.c (lookup_namespace_name): Use tf_* flags. 462496263Sobrien (make_typename_type): Likewise. 462596263Sobrien (grokdeclarator): Likewise. 462696263Sobrien * pt.c (convert_nontype_argument): Adjust COMPLAIN usage. 462796263Sobrien (coerce_template_template_parms, convert_template_argument, 462896263Sobrien coerce_template_parms, maybe_get_template_decl_from_type_decl, 462996263Sobrien lookup_template_class, tsubst_friend_function, tsubst_friend_class, 4630104752Skan instantiate_class_template, tsubst_template_arg_vector, 4631104752Skan tsubst_template_parms, tsubst_aggr_type, tsubst_default_argument, 463296263Sobrien tsubst_decl, tsubst_arg_types, tsubst_function_type, 4633104752Skan tsubst_call_declarator_parms, tsubst, tsubst_copy, tsubst_expr, 463496263Sobrien instantiate_template, fn_type_unification, 4635104752Skan resolve_overloaded_unification, verify_class_unification, 4636104752Skan unify, get_bindings_real, do_type_instantiation, 4637104752Skan regenerate_decl_from_template, instantiate_decl, 463896263Sobrien tsubst_initializer_list, tsubst_enum, 463996263Sobrien get_mostly_instantiated_function_type, 464096263Sobrien invalid_nontype_parm_type_p): Likewise. 464196263Sobrien * tree.c (cp_build_qualified_type_real): Likewise. 464296263Sobrien * typeck.c (build_binary_op): Rename itf_* to tf_*. 464396263Sobrien (build_ptrmemfunc): Likewise. 464496263Sobrien (convert_for_assignment): Likewise. 464596263Sobrien 464696263Sobrien2002-02-07 Nathan Sidwell <nathan@codesourcery.com> 464796263Sobrien 464896263Sobrien PR c++/109 464996263Sobrien * decl.c (grokdeclarator): Allow friend declarations from 465096263Sobrien dependent types. 465196263Sobrien * decl2.c (handle_class_head): Don't push into template parm contexts. 465296263Sobrien * pt.c (push_template_decl_real): Template parm contexts are never 465396263Sobrien being defined. 465496263Sobrien 465596263Sobrien2002-02-05 Alexandre Oliva <aoliva@redhat.com> 465696263Sobrien 465796263Sobrien * class.c: Include target.h. 465896263Sobrien (check_bitfield_decl): Disregard EMPTY_FIELD_BOUNDARY, 465996263Sobrien BITFIELDS_NBYTES_LIMITED and PCC_BITFIELD_TYPE_MATTERS for MS 466096263Sobrien bit-field layout. 466196263Sobrien * Make-lang.in: Adjust deps. 466296263Sobrien 466396263Sobrien2002-02-05 Jason Merrill <jason@redhat.com> 466496263Sobrien 466596263Sobrien * error.c (dump_type): Be more helpful about VECTOR_TYPE. 466696263Sobrien 466796263Sobrien2002-02-04 Jakub Jelinek <jakub@redhat.com> 466896263Sobrien 466996263Sobrien * semantics.c (begin_switch_stmt): Clear SWITCH_TYPE. 467096263Sobrien (finish_switch_cond): Set SWITCH_TYPE. 467196263Sobrien 467296263Sobrien2002-02-04 Richard Henderson <rth@redhat.com> 467396263Sobrien 467496263Sobrien * method.c (use_thunk): Always initialize the block tree. Reindent. 467596263Sobrien * semantics.c (expand_body): Emit thunks after function, not before. 467696263Sobrien 467796263Sobrien2002-02-04 Jason Merrill <jason@redhat.com> 467896263Sobrien 467996263Sobrien * decl.c (start_function): Call cplus_decl_attributes immediately 468096263Sobrien after grokdeclarator. 468196263Sobrien 468296263Sobrien * decl.c (start_function): Combine DECL_RESULT handling code. 468396263Sobrien 468496263Sobrien2002-02-03 Jason Merrill <jason@redhat.com> 468596263Sobrien 468696263Sobrien * xref.c: Remove. 468796263Sobrien * Make-lang.in (CXX_OBJS): Remove cp/xref.o 468896263Sobrien (cp/xref.o): Remove dependencies. 468996263Sobrien * class.c (finish_struct_1, check_methods): Don't call xref fns. 469096263Sobrien (finish_struct_1): Likewise. 469196263Sobrien * friend.c (make_friend_class): Likewise. 469296263Sobrien * lex.c (cxx_init, cxx_finish, extract_interface_info): Likewise. 469396263Sobrien * spew.c (read_process_identifier): Likewise. 469496263Sobrien 469590075Sobrien2002-02-01 Jason Merrill <jason@redhat.com> 469674473Sobrien 469796263Sobrien PR c++/4872 4698104752Skan * decl.c (finish_function): Warn about a non-void function with 469996263Sobrien no return statement and no abnormal exit. 470096263Sobrien * cp-tree.h (struct cp_language_function): Add returns_abnormally. 470196263Sobrien (current_function_returns_abnormally): New macro. 470296263Sobrien * call.c (build_call): Set it. 470396263Sobrien 470496263Sobrien * typeck.c (build_component_ref): Always complain about offsetof 470596263Sobrien constructs on non-PODs. Only make it an error for members of 470696263Sobrien virtual bases. 470796263Sobrien 470890075Sobrien * error.c (dump_scope): Don't add TFF_DECL_SPECIFIERS. 470990075Sobrien (dump_function_decl): Always dump parms. 471074473Sobrien 471190075Sobrien * decl2.c (finish_static_data_member_decl): Complain about a local 471290075Sobrien class with a static data member. 471370635Sobrien 471490075Sobrien PR c++/4286 471590075Sobrien * search.c (lookup_field_1): Don't xref a static data member 471690075Sobrien just because we looked it up. 471770635Sobrien 471890075Sobrien2002-01-31 Jason Merrill <jason@redhat.com> 471970635Sobrien 472090075Sobrien * Make-lang.in (parse.c): Handle .output file. 472160967Sobrien 472290075Sobrien PR c++/3395 472390075Sobrien * decl.c (xref_tag): Remember early attributes in TYPE_ATTRIBUTES, 472490075Sobrien not TREE_TYPE. 472590075Sobrien * semantics.c (finish_class_definition): Adjust. 472660967Sobrien 472790075Sobrien Allow attributes in parms and casts. 472890075Sobrien * parse.y (named_parm): Don't strip attrs. 472990075Sobrien (declmods): Remove 'attributes' production. 473090075Sobrien (nonempty_cv_qualifiers): Accept attributes. 473190075Sobrien (ATTRIBUTE): Give precedence. 473290075Sobrien * decl.c (groktypename): Handle attributes. 473390075Sobrien (grokparms): Likewise. 473460967Sobrien 473590075Sobrien2002-01-29 Jakub Jelinek <jakub@redhat.com> 473660967Sobrien 473790075Sobrien * decl2.c (cxx_decode_option): Pass 0 as last argument to 473890075Sobrien cpp_handle_option. 473990075Sobrien * lang-specs.h: Use cpp_unique_options instead of cpp_options 474090075Sobrien when used together with cc1_options. 474160967Sobrien 474290075Sobrien2002-01-29 Nathan Sidwell <nathan@codesourcery.com> 474360967Sobrien 474490075Sobrien PR c++/5132 474590075Sobrien * typeck2.c (digest_init): Make sure non-array core type is 474690075Sobrien instantiated. 474790075Sobrien * decl2.c (reparse_absdcl_as_casts): Just store the type in the 474890075Sobrien constructor, rather than build a new one. 474990075Sobrien (build_expr_from_tree, CONSTRUCTOR case): Be careful with the 475090075Sobrien PURPOSE of constructor elts. 475160967Sobrien 475290075Sobrien2002-01-23 Zack Weinberg <zack@codesourcery.com> 475360967Sobrien 475490075Sobrien * Make-lang.in (parse.c): Adjust expected number of 475590075Sobrien shift-reduce conflicts. 475690075Sobrien (decl.o): Depend on diagnostic.h. 475790075Sobrien * decl.c: Include diagnostic.h. 475890075Sobrien (grokdeclarator): Check for null pointer. 475990075Sobrien (finish_function): Don't abort when 476090075Sobrien current_binding_level->parm_flag != 1, if errors have 476190075Sobrien occurred; throw away the statement tree and extra binding 476290075Sobrien levels, and continue. 476390075Sobrien * lex.c (note_list_got_semicolon): Check for null pointer. 476490075Sobrien * method.c (hack_identifier): Just return error_mark_node if 476590075Sobrien value is error_mark_node. 476690075Sobrien * parse.y (primary: TYPEID(type_id)): No need to use 476790075Sobrien TYPE_MAIN_VARIANT here. 476890075Sobrien (handler_seq): Accept an empty list of catch clauses and 476990075Sobrien generate a fake handler block to avoid later crashes. 477090075Sobrien (ansi_raise_identifier): Accept the error token too. 477190075Sobrien * semantics.c (begin_class_definition, 477290075Sobrien finish_class_definition): Check for error_mark_node. 477360967Sobrien 477490075Sobrien2002-01-23 Zack Weinberg <zack@codesourcery.com> 477560967Sobrien 477690075Sobrien * typeck2.c (friendly_abort): Delete definition. 477790075Sobrien * cp-tree.h (friendly_abort): Don't prototype. 477890075Sobrien (my_friendly_assert): Use fancy_abort. 477957844Sobrien 478090075Sobrien2002-01-23 Craig Rodrigues <rodrigc@gcc.gnu.org> 478157844Sobrien 478290075Sobrien * cp-tree.h (my_friendly_abort): Remove. 478356385Sobrien 478490075Sobrien2002-01-23 Jakub Jelinek <jakub@redhat.com> 478556385Sobrien 478690075Sobrien * spew.c (pending_inlines, pending_inlines_tail, 478790075Sobrien processing_these_inlines): Make static. 478890075Sobrien (mark_pending_inlines): Remove static. 478990075Sobrien (begin_parsing_inclass_inline): If in function, save pi 479090075Sobrien for GC to cp_function_chain->unparsed_inlines instead. 479190075Sobrien (process_next_inline): Likewise. 479290075Sobrien * cp-tree.h (struct cp_language_function): Add unparsed_inlines. 479390075Sobrien (mark_pending_inlines): Add prototype. 479490075Sobrien * decl.c (spew_debug): Remove unused extern. 479590075Sobrien (mark_lang_function): Call mark_pending_inlines. 479652750Sobrien 479790075Sobrien2002-01-23 Craig Rodrigues <rodrigc@gcc.gnu.org> 479852750Sobrien 479990075Sobrien * call.c, class.c, decl.c, decl2.c, error.c, expr.c, friend.c, 480090075Sobrien init.c, lex.c, mangle.c, method.c, pt.c, repo.c, rtti.c, search.c, 480190075Sobrien semantics.c, spew.c, tree.c, typeck.c, typeck2.c, xref.c: 480290075Sobrien Change my_fancy_abort() to abort(). 480352750Sobrien 480490075Sobrien2002-01-23 Jason Merrill <jason@redhat.com> 480552750Sobrien 480690075Sobrien PR c++/5453 480790075Sobrien * class.c (fixed_type_or_null): Fix thinko. 480852750Sobrien 480990075Sobrien PR c++/3331 481090075Sobrien * init.c (resolve_offset_ref): Use build_indirect_ref. 481152750Sobrien 481290075Sobrien * decl2.c (grokclassfn): Don't set DECL_REGISTER on 'this'. 481352750Sobrien 481490075Sobrien2002-01-22 Jason Merrill <jason@redhat.com> 481552750Sobrien 481690075Sobrien * parse.y (function_body): Suppress the block for the outermost 481790075Sobrien curly braces. 481890075Sobrien * decl.c (pushdecl): Don't try to skip it. 481990075Sobrien (begin_function_body): Keep the block we create, not the next one. 482090075Sobrien * init.c (emit_base_init): Don't mess with keep_next_level. 482148743Sobrien 482290075Sobrien * class.c (build_base_path): Tweak formatting. 482348743Sobrien 482490075Sobrien2002-01-19 Nathan Sidwell <nathan@codesourcery.com> 482552284Sobrien 482690075Sobrien Fix regression introduced with patch for c++/775 482790075Sobrien * parse.y (class_head_defn): Check for template specializations 482890075Sobrien with a different class-key. 482952284Sobrien 483090075Sobrien2002-01-17 Jason Merrill <jason@redhat.com> 483152284Sobrien 483290075Sobrien * decl.c (begin_constructor_body, begin_destructor_body): New fns. 483390075Sobrien (begin_function_body): Call them and keep_next_level. 483490075Sobrien * init.c (emit_base_init): Call keep_next_level. 483590075Sobrien * semantics.c (setup_vtbl_ptr): Lose. 483690075Sobrien * cp-tree.h (struct cp_language_function): Remove vtbls_set_up_p. 483790075Sobrien (vtbls_set_up_p): Lose. 483890075Sobrien * pt.c (tsubst_expr, CTOR_INITIALIZER): Call emit_base_init. 483990075Sobrien * method.c (do_build_copy_constructor): Likewise. 484090075Sobrien (synthesize_method): Call finish_mem_initializers. 484190075Sobrien * parse.y (nodecls): Likewise. 484252284Sobrien 484390075Sobrien * error.c (dump_type_suffix): Print the exception specs before 484490075Sobrien recursing. 484590075Sobrien (dump_function_decl): Here, too. 484652284Sobrien 484790075Sobrien * cp-tree.h (TMPL_PARMS_DEPTH): Cast to signed HOST_WIDE_INT. 484852284Sobrien 484990075Sobrien2002-01-10 Ira Ruben <ira@apple.com> 485052284Sobrien 485190075Sobrien PR c++/907 485290075Sobrien * decl.c (start_method): Handle attrlist. 485352284Sobrien 485490075Sobrien2002-01-10 Jakub Jelinek <jakub@redhat.com> 485552284Sobrien 485690075Sobrien * decl2.c (max_tinst_depth): Increase default limit to 500. 485752284Sobrien 485890075Sobrien2002-01-10 Graham Stott <grahams@redhat.com> 485952284Sobrien 486090075Sobrien * spew.c (YYCHAR): Uppercase macro parameter and add 486190075Sobrien parenthesis. 486290075Sobrien (YYCODE): Likewise. 486390075Sobrien (NAME): Uppercase macro parameter. 486452284Sobrien 486590075Sobrien2002-01-09 Graham Stott <grahams@redhat.com> 486652284Sobrien 486790075Sobrien * decl.h (grokdeclarator): Wrap long line. 486852284Sobrien 486990075Sobrien * semantics.c (FINISH_COND): Uppercase macro paramaters and 487090075Sobrien add parenthesis. 487152284Sobrien 487290075Sobrien2002-01-08 Graham Stott <grahams@redhat.com> 487352284Sobrien 487490075Sobrien * xref.c (FILE_NAME_ABSOLUTE_P): Add parenthesis. 487590075Sobrien (PALLOC): Uppercase macro parameter and whitespace. 487690075Sobrien (SALLOC): Uppercase macro parameter. 487790075Sobrien (SFREE): Uppercase macros parameter, add parenthese and 487890075Sobrien whitespace. 487990075Sobrien (STREQL): Uppercase macro parameter and whitespace. 488090075Sobrien (STRNEQ): Likewise. 488190075Sobrien (STRLSS): Likewise. 488290075Sobrien (STRLEQ): Likewise. 488390075Sobrien (STRGTR): Likewise. 488490075Sobrien (STRGEQ): Likewise. 488552284Sobrien 488690075Sobrien * call.c (convert_like): Add parenthesis and wrap. 488790075Sobrien (convert_like_with_context): Likewise. 488890075Sobrien (ICS_RANK): Whitespace. 488990075Sobrien (NEED_TEMPORARY_P): Remove parenthesis. 489052284Sobrien 489190075Sobrien * class.c (VTT_TOP_LEVEL_P): Uppercase macro parameter and 489290075Sobrien whitespace. 489390075Sobrien (VTT_MARKED_BINFO_P): Likewise. 489452284Sobrien 489590075Sobrien * decl.c (BINDING_LEVEL): Add parenthesis. 489690075Sobrien (DEF_OPERATOR): Likewise. 489752284Sobrien 489890075Sobrien * mangle.c (MANGLE_TRACE): Add parenthesis. 489990075Sobrien (MANGLE_TRACE_TREE): Likewise. 490090075Sobrien (write_signed_number): Likewise. 490190075Sobrien (write_unsigned_number): Likewise. 490252284Sobrien 490390075Sobrien * pt.c (ccat): Uppercase macro parameter. 490490075Sobrien (cat): Likewise 490552284Sobrien 490690075Sobrien * search.c (SET_BINFO_ACCESS): Add parenthesis. 490752284Sobrien 490890075Sobrien2002-01-07 Jason Merrill <jason@redhat.com> 490952284Sobrien 491090075Sobrien * decl2.c (coerce_new_type): Downgrade error for size_t mismatch 491190075Sobrien to pedwarn. 491252284Sobrien 491390075Sobrien PR c++/3536 491490075Sobrien * method.c (make_thunk): If !flag_weak, give the thunk the 491590075Sobrien function's linkage. 491690075Sobrien (use_thunk): Here, too. 491752284Sobrien 491890075Sobrien2002-01-07 Graham Stott <grahams@redhat.com> 491952284Sobrien 492090075Sobrien * error.c: Update copyright date. 492190075Sobrien (print_scope_operator): Add parenthesis. 492290075Sobrien (print_left_paren): Likewise. 492390075Sobrien (print_right_paren): Likewise. 492490075Sobrien (print_left_bracket): Likewise. 492590075Sobrien (print_right_bracket): Likewise. 492690075Sobrien (print_template_argument_list_start): Likewise. 492790075Sobrien (print_template_argument_list_end): Likewise. 492890075Sobrien (print_non_consecutive_character): Likewise. 492990075Sobrien (print_tree_identifier): Likewise. 493090075Sobrien (print_identifier): Likewise. 493190075Sobrien (NEXT_CODE): Uppercase macro parameter. 493290075Sobrien (ident_fndecl): Delete unused. 493390075Sobrien (GLOBAL_THING): Likewise. 493452284Sobrien 493590075Sobrien2002-01-06 Graham Stott <grahams@redhat.com> 493652284Sobrien 493790075Sobrien * cp-tree.h (VAR_OR_FUNCTION_DECL_CHECK): Add parenthesis. 493890075Sobrien (VAR_FUNCTION_OR_PARM_DECL_CHECK): Likewise. 493990075Sobrien (VAR_TEMPL_TYPE_OR_FUNCTION_DECL_CHECK) Likewise. 494090075Sobrien (RECORD_OR_UNION_TYPE_CHECK): Likewise. 494190075Sobrien (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): Likewise. 494290075Sobrien (C_IS_RESERVED_WORD): Uppercase macro parameter. 494390075Sobrien (C_RID_YYCODE) Likewise. 494490075Sobrien (ptrmem_cst): Use rtx. 494590075Sobrien (LOCAL_BINDING_P): Add whitespace. 494690075Sobrien (INHERITED_VALUE_BINDING_P): Likewise. 494790075Sobrien (BINDING_SCOPE): Wrap long line. 494890075Sobrien (BINDING_HAS_LEVEL_P): Remove parenthesis. 494990075Sobrien (BINDING_VALUE): Wrap long line. 495090075Sobrien (BINDING_TYPE): Whitespace. 495190075Sobrien (IDENTIFIER_GLOBAL_VALUE): Add parenthesis. 495290075Sobrien (SET_IDENTIFIER_GLOBAL_VALUE): Likewise. 495390075Sobrien (IDENTIFIER_NAMESPACE_VALUE): Likewise. 495490075Sobrien (SET_IDENTIFIER_NAMESPACE_VALUE: Likewise. 495590075Sobrien (same_type_p): Uppercase macro parameters. 495690075Sobrien (same_type_ignoring_top_level_qualifiers_p): Likewise. 495790075Sobrien (OVL_FUNCTION): Wrap long line. 495890075Sobrien (OVL_CHAIN): Whitespace. 495990075Sobrien (OVL_CURRENT): Add parenthesis and whitespace. 496090075Sobrien (OVL_NEXT): Whitespace. 496190075Sobrien (OVL_USED): Likewise. 496290075Sobrien (IDENTIFIER_TYPE_VALUE): Likewise. 496390075Sobrien (REAL_IDENTIFIER_TYPE_VALUE): Remove parenthesis. 496490075Sobrien (SET_IDENTIFIER_TYPE_VALUE): Add parenthesis and whitespace. 496590075Sobrien (LANG_ID_FIELD): Whitespace. 496690075Sobrien (SET_LANG_ID(NODE,VALUE,NAME): Likewise. 496790075Sobrien (IDENTIFIER_LABEL_VALUE): Whitespace and wrap. 496890075Sobrien (SET_IDENTIFIER_LABEL_VALUE): Whitespace. 496990075Sobrien (IDENTIFIER_IMPLICIT_DECL): Whitespace and wrap. 497090075Sobrien (SET_IDENTIFIER_IMPLICIT_DECL); Whitespace. 497190075Sobrien (IDENTIFIER_ERROR_LOCUS): Whitespace and wrap. 497290075Sobrien (SET_IDENTIFIER_ERROR_LOCUS); Whitespace. 497390075Sobrien (IDENTIFIER_VIRTUAL_P): Likewise. 497490075Sobrien (IDENTIFIER_OPNAME_P): Likewise. 497590075Sobrien (IDENTIFIER_TYPENAME_P): Remove parenthesis. 497690075Sobrien (C_TYPE_FIELDS_READONLY): Uppercase macro parameters. 497790075Sobrien (C_SET_EXP_ORIGINAL_CODE): Likewise. 497890075Sobrien (TYPE_ASSEMBLER_NAME_STRING): Wrap long line. 497990075Sobrien (TYPE_ASSEMBLER_NAME_LENGTH): Likewise. 498090075Sobrien (IS_AGGR_TYPE): Uppercase macro parameter. 498190075Sobrien (CLASS_TYPE_P): Likewise. 498290075Sobrien (IS_AGGR_TYPE_CODE): Uppercase macro parameter and parenthesis. 498390075Sobrien (IS_AGGR_TYPE_2): Whitespace. 498490075Sobrien (TAGGED_TYPE_P): Uppercase macro parameter. 498590075Sobrien (TYPE_BUILT_IN): Whitespace. 498690075Sobrien (TYPE_FOR_JAVA): Likewise. 498790075Sobrien (FUNCTION_ARG_CHAIN): Remove parenthesis. 498890075Sobrien (FUNCTION_FIRST_USER_PARMTYPE): Add parenthesis. 498990075Sobrien (FUNCTION_FIRST_USER_PARAM): Likewise. 499090075Sobrien (PROMOTES_TO_AGGR_TYPE): Whitespace. 499190075Sobrien (DERIVED_FROM_P): Add parenthesis and wrap. 499290075Sobrien (UNIQUELY_DERIVED_FROM_P): Likewise. 499390075Sobrien (ACCESSIBLY_UNIQUELY_DERIVED_P): Likewise. 499490075Sobrien (PUBLICLY_UNIQUELY_DERIVED_P): Likewise. 499590075Sobrien (CLASSTYPE_USE_TEMPLATE): Whitespace. 499690075Sobrien (CLASSTYPE_INLINE_FRIENDS): Remove parenthesis. 499790075Sobrien (TYPE_GETS_DELETE): Add parenthesis. 499890075Sobrien (TYPE_HAS_CONVERSION): Add parenthesis and wrap. 499990075Sobrien (TYPE_HAS_ASSIGN_REF): Likewise, 500090075Sobrien (TYPE_HAS_CONST_ASSIGN_REF): Likewise. 500190075Sobrien (TYPE_HAS_INIT_REF): Likewise. 500290075Sobrien (TYPE_HAS_CONST_INIT_REF): Likewise. 500390075Sobrien (TYPE_BEING_DEFINED): Likewise. 500490075Sobrien (TYPE_LANG_SPECIFIC): Likewise. 500590075Sobrien (CLASSTYPE_RTTI): Likewise. 500690075Sobrien (TYPE_OVERLOADS_CALL_EXPR): Likewise. 500790075Sobrien (TYPE_OVERLOADS_ARRAY_REF): Likewise. 500890075Sobrien (TYPE_OVERLOADS_ARROW): Likewise. 500990075Sobrien (TYPE_USES_MULTIPLE_INHERITANCE): Likewise. 501090075Sobrien (TYPE_USES_VIRTUAL_BASECLASSES): Add parenthesis. 501190075Sobrien (CLASSTYPE_METHOD_VEC): Likewise. 501290075Sobrien (CLASSTYPE_MARKED_N): Likewise. 501390075Sobrien (CLASSTYPE_MARKED): Likewise. 501490075Sobrien (CLASSTYPE_MARKED2): Likewise. 501590075Sobrien (CLASSTYPE_MARKED3): Likewise. 501690075Sobrien (CLASSTYPE_MARKED4): Likewise. 501790075Sobrien (CLASSTYPE_MARKED5): Likewise. 501890075Sobrien (CLASSTYPE_MARKED6): Likewise. 501990075Sobrien (SET_CLASSTYPE_MARKED): Whitespace. 502090075Sobrien (CLEAR_CLASSTYPE_MARKED): Likewise. 502190075Sobrien (SET_CLASSTYPE_MARKED2): Likewise. 502290075Sobrien (CLEAR_CLASSTYPE_MARKED2): Likewise. 502390075Sobrien (SET_CLASSTYPE_MARKED3): Likewise. 502490075Sobrien (CLEAR_CLASSTYPE_MARKED3): Likewise. 502590075Sobrien (SET_CLASSTYPE_MARKED4): Likewise. 502690075Sobrien (CLEAR_CLASSTYPE_MARKED4): Likewise. 502790075Sobrien (SET_CLASSTYPE_MARKED5): Likewise. 502890075Sobrien (CLEAR_CLASSTYPE_MARKED5): Likewise. 502990075Sobrien (SET_CLASSTYPE_MARKED6): Likewise. 503090075Sobrien (CLEAR_CLASSTYPE_MARKED6): Likewise. 503190075Sobrien (CLASSTYPE_TAGS): Likewise. 503290075Sobrien (CLASSTYPE_VSIZE): Likewise. 503390075Sobrien (CLASSTYPE_VBASECLASSES): Likewise. 503490075Sobrien (CANONICAL_BINFO): Add parenthesis. 503590075Sobrien (CLASSTYPE_SIZE(NODE): Likewise. 503690075Sobrien (CLASSTYPE_SIZE_UNIT): Likewise. 503790075Sobrien (CLASSTYPE_ALIGN(NODE): Likewise. 503890075Sobrien (CLASSTYPE_USER_ALIGN): Likewise. 503990075Sobrien (TYPE_JAVA_INTERFACE): Likewise. 504090075Sobrien (CLASSTYPE_PURE_VIRTUALS): Likewise. 504190075Sobrien (CLASSTYPE_NEEDS_VIRTUAL_REINIT): Whitespace and wrap. 504290075Sobrien (TYPE_HAS_DEFAULT_CONSTRUCTOR): Likewise. 504390075Sobrien (CLASSTYPE_HAS_MUTABLE): Likewise. 504490075Sobrien (CLASSTYPE_FRIEND_CLASSES): Likewise. Likewise. 504590075Sobrien (CLASSTYPE_DECLARED_CLASS): Whitespace and wrap. 504690075Sobrien (CLASSTYPE_READONLY_FIELDS_NEED_INIT): Likewise. 504790075Sobrien (CLASSTYPE_REF_FIELDS_NEED_INIT): Likewise. 504890075Sobrien (CLASSTYPE_INTERFACE_ONLY): Likewise. 504990075Sobrien (CLASSTYPE_INTERFACE_KNOWN): Likewise. 505090075Sobrien (CLASSTYPE_INTERFACE_UNKNOWN): Likewise. 505190075Sobrien (SET_CLASSTYPE_INTERFACE_UNKNOWN_X): Likewise. 505290075Sobrien (SET_CLASSTYPE_INTERFACE_UNKNOWN): Likewise. 505390075Sobrien (SET_CLASSTYPE_INTERFACE_KNOWN): Likewise. 505490075Sobrien (CLASSTYPE_DEBUG_REQUESTED): Whitespace and wrap. 505590075Sobrien (BINFO_UNSHARED_MARKED): Whitespace. 505690075Sobrien (BINFO_MARKED): Whitespace and wrap. 505790075Sobrien (SET_BINFO_MARKED): Likewise. 505890075Sobrien (CLEAR_BINFO_MARKED): Likewise. 505990075Sobrien (BINFO_VTABLE_PATH_MARKED): Likewise. 506090075Sobrien (SET_BINFO_VTABLE_PATH_MARKED): Likewise. 506190075Sobrien (CLEAR_BINFO_VTABLE_PATH_MARKED): Likewise. 506290075Sobrien (BINFO_SUBVTT_INDEX): Remove parenthesis. 506390075Sobrien (BINFO_VPTR_INDEX): Likewise. 506490075Sobrien (BINFO_PRIMARY_BASE_OF): Likewise, 506590075Sobrien (CLASSTYPE_VFIELDS): Whitespace. 506690075Sobrien (VF_DERIVED_VALUE): Wrap long line. 506790075Sobrien (NAMESPACE_LEVEL): Whitespace. 506890075Sobrien (CAN_HAVE_FULL_LANG_DECL_P): Remove parenthesis. 506990075Sobrien (DEFARG_POINTER): Whitespace. 507090075Sobrien (DECL_NEEDED_P): Remove parenthesis. 507190075Sobrien (DECL_LANGUAGE): Whitespace. 507290075Sobrien (SET_DECL_LANGUAGE): Add parenthesis. 507390075Sobrien (DECL_CONSTRUCTOR_P): Whitespace and wrap. 507490075Sobrien (DECL_OVERLOADED_OPERATOR_P): Remove parenthesis. 507590075Sobrien (DECL_IN_AGGR_P): Whitespace. 507690075Sobrien (DECL_FRIEND_P): Likewise. 507790075Sobrien (DECL_BEFRIENDING_CLASSES): Likewise. 507890075Sobrien (DECL_STATIC_FUNCTION_P): Whitespace and wrap. 507990075Sobrien (DECL_NONCONVERTING_P): Whitespace. 508090075Sobrien (DECL_PURE_VIRTUAL_P): Likewise. 508190075Sobrien (DECL_NEEDS_FINAL_OVERRIDER_P): Likewise. 508290075Sobrien (DECL_PENDING_INLINE_INFO): Whitespace. 508390075Sobrien (DECL_SORTED_FIELDS): Likewise. 508490075Sobrien (DECL_DEFERRED_FN): Likewise. 508590075Sobrien (DECL_TEMPLATE_INFO): Likewise. 508690075Sobrien (CLASSTYPE_TEMPLATE_INFO): Whitespace and wrap. 508790075Sobrien (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO); Likewise. 508890075Sobrien (SET_TYPE_TEMPLATE_INFO): Add parenthesis. 508990075Sobrien (TMPL_ARGS_LEVEL): Likewise. 509090075Sobrien (SET_TMPL_ARGS_LEVEL): Likewise. 509190075Sobrien (INNERMOST_TEMPLATE_PARMS): Whitespace. 509290075Sobrien (C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter. 509390075Sobrien (INTEGRAL_CODE_P(CODE): Add parenthesis. 509490075Sobrien (CP_INTEGRAL_TYPE_P): Remove parenthesis. 509590075Sobrien (TYPE_HAS_CONSTRUCTOR): Whitespace. 509690075Sobrien (TREE_HAS_CONSTRUCTOR): Likewise. 509790075Sobrien (TYPE_HAS_DESTRUCTOR): Likewise. 509890075Sobrien (TYPE_HAS_REAL_ASSIGN_REF): Likewise. 509990075Sobrien (TYPE_HAS_COMPLEX_ASSIGN_REF): Likewise. 510090075Sobrien (TYPE_HAS_ABSTRACT_ASSIGN_REF): Likewise. 510190075Sobrien (TYPE_HAS_COMPLEX_INIT_REF): Likewise. 510290075Sobrien (TYPE_HAS_NONTRIVIAL_DESTRUCTOR): Likewise. 510390075Sobrien (TYPE_PTRMEMFUNC_P): Likewise. 510490075Sobrien (TYPE_PTRMEMFUNC_FLAG): Likewise. 510590075Sobrien (TYPE_GET_PTRMEMFUNC_TYPE): Likewise. 510690075Sobrien (TYPE_SET_PTRMEMFUNC_TYPE): Likewise. 510790075Sobrien (TYPE_PTRMEM_CLASS_TYPE): Remove parenthesis. 510890075Sobrien (TYPE_PTRMEM_POINTED_TO_TYPE): Likewise. 510990075Sobrien (DECL_ACCESS): Whitespace. 511090075Sobrien (DECL_GLOBAL_CTOR_P): Remove parenthesis. 511190075Sobrien (DECL_GLOBAL_DTOR_P): Likewise. 511290075Sobrien (GLOBAL_INIT_PRIORITY): Likewise. 511390075Sobrien (DECL_TEMPLATE_PARMS): Likewise. 511490075Sobrien (DECL_TEMPLATE_RESULT): Likewise. 511590075Sobrien (DECL_TEMPLATE_INSTANTIATIONS): Likewise. 511690075Sobrien (DECL_TEMPLATE_SPECIALIZATIONS): Likewise. 511790075Sobrien (DECL_IMPLICIT_TYPEDEF_P): Remove parenthesis. 511890075Sobrien (SET_DECL_IMPLICIT_TYPEDEF_P): Likewise. 511990075Sobrien (PRIMARY_TEMPLATE_P): Add parenthesis. 512090075Sobrien (DECL_USE_TEMPLATE): Whitespace. 512190075Sobrien (CLASSTYPE_IMPLICIT_INSTANTIATION): Likewise. 512290075Sobrien (SET_CLASSTYPE_IMPLICIT_INSTANTIATION): Likewise. 512390075Sobrien (CLASSTYPE_EXPLICIT_INSTANTIATION): Likewise. 512490075Sobrien (SET_CLASSTYPE_EXPLICIT_INSTANTIATION): Likewise. 512590075Sobrien (CALL_DECLARATOR_PARMS): Remove parenthesis. 512690075Sobrien (CALL_DECLARATOR_QUALS): Likewise. 512790075Sobrien (CALL_DECLARATOR_EXCEPTION_SPEC): Likewise. 512890075Sobrien (TEMP_NAME_P): Wrap. 512990075Sobrien (VFIELD_NAME_P): Likewise. 513090075Sobrien (B_SET): Uppercase macro parameters and add parenthesis. 513190075Sobrien (B_CLR): Likewise. 513290075Sobrien (B_TST): Likewise. 513390075Sobrien (LOOKUP_NAMESPACES_ONLY): Uppercase macro parameters. 513490075Sobrien (LOOKUP_TYPES_ONLY): Uppercase macro parameters. 513590075Sobrien (LOOKUP_QUALIFIERS_ONLY): Uppercase macro parameters. 513690075Sobrien (same_or_base_type_p): Likewise. 513790075Sobrien (cp_deprecated): Likewise. 513852284Sobrien 513990075Sobrien2002-01-05 Richard Henderson <rth@redhat.com> 514052284Sobrien 514190075Sobrien * semantics.c (expand_body): Revert last change. 514252284Sobrien 514390075Sobrien2002-01-04 Jason Merrill <jason@redhat.com> 514452284Sobrien 514590075Sobrien PR c++/4122 514690075Sobrien * class.c (update_vtable_entry_for_fn): Set delta to zero for a 514790075Sobrien lost primary. 514852284Sobrien 514990075Sobrien * class.c (build_vtbl_initializer): Check for a lost primary 515090075Sobrien before calculating the vtable entry to throw away. 515152284Sobrien 515290075Sobrien2002-01-02 Jason Merrill <jason@redhat.com> 515352284Sobrien 515490075Sobrien * semantics.c (expand_body): Call outlining_inline_function when 515590075Sobrien emitting an inline function out of line. 515652284Sobrien 515790075Sobrien2002-01-02 Nathan Sidwell <nathan@codesourcery.com> 515852284Sobrien 515990075Sobrien PR c++/5116, c++/764 reversion 516090075Sobrien * call.c (build_new_op): Revert the instantiations. They are 516190075Sobrien incorrect. 516252284Sobrien 516390075Sobrien2002-01-02 Nathan Sidwell <nathan@codesourcery.com> 516452284Sobrien 516590075Sobrien PR c++/5089 516690075Sobrien * decl2.c (reparse_absdcl_as_casts): Don't warn about casts to void. 516752284Sobrien 516890075Sobrien2002-01-02 Nathan Sidwell <nathan@codesourcery.com> 516952284Sobrien 517090075Sobrien PR c++/3716 517190075Sobrien * pt.c (tsubst_aggr_type): Move pmf handling into tsubst. 517290075Sobrien (tsubst, case POINTER_TYPE): Handle pmfs here. 517390075Sobrien (tsubst, case OFFSET_TYPE): Check it is not an offset to 517490075Sobrien reference. If it is offset to FUNCTION_TYPE, create a METHOD_TYPE. 517552284Sobrien 517690075Sobrien2002-01-02 Nathan Sidwell <nathan@codesourcery.com> 517752284Sobrien 517890075Sobrien PR c++/35 517990075Sobrien * cp-tree.h (DECL_LANG_FLAG_0): Used for PARM_DECL too. 518090075Sobrien (DECL_TEMPLATE_PARM_P): A PARM_DECL might be one too. 518190075Sobrien * pt.c (process_template_parm): SET_DECL_TEMPLATE_PARM_P on the 518290075Sobrien PARM_DECL. 518390075Sobrien (tsubst_template_parms): Break up loop statements. 518490075Sobrien (tsubst_decl, case PARM_DECL): Copy DECL_TEMPLATE_PARM_P. Template 518590075Sobrien parm PARM_DECLs don't get promoted. 518652284Sobrien 518790075Sobrien2002-01-02 Nathan Sidwell <nathan@codesourcery.com> 518852284Sobrien 518990075Sobrien PR c++/5123 519090075Sobrien * typeck.c (build_component_ref): Cope with a TEMPLATE_ID_EXPR. 519190075Sobrien (build_x_function_call): Cope with a COMPONENT_REF containing a 519290075Sobrien TEMPLATE_ID_EXPR. 519352284Sobrien 519490075Sobrien2002-01-02 Nathan Sidwell <nathan@codesourcery.com> 519552284Sobrien 519690075Sobrien PR c++/5213 519790075Sobrien * pt.c (convert_template_argument): Be more careful determining 519890075Sobrien when RECORD_TYPE templates are or are not templates. 519952284Sobrien 520090075Sobrien2002-01-02 Nathan Sidwell <nathan@codesourcery.com> 520152284Sobrien 520290075Sobrien PR c++/775 520390075Sobrien * cp-tree.h (handle_class_head): Adjust prototype. 520490075Sobrien * decl2.c (handle_class_head): Add DEFN_P and NEW_TYPE_P 520590075Sobrien parameters. Use for all class heads. 520690075Sobrien * parse.y (named_class_head_sans_basetype, named_class_head, 520790075Sobrien named_complex_class_head_sans_basetype, 520890075Sobrien named_class_head_sans_basetype_defn, 520990075Sobrien unnamed_class_head): Remove. 521090075Sobrien (class_head, class_head_apparent_template): Recognize class heads 521190075Sobrien (class_head_decl, class_head_defn): New reductions. Process class 521290075Sobrien heads. 521390075Sobrien (structsp): Adjust class definition and class declaration 521490075Sobrien reductions. 521590075Sobrien (maybe_base_class_list): Give diagnostic on empty list. 521652284Sobrien 521790075Sobrien2002-01-02 Nathan Sidwell <nathan@codesourcery.com> 521852284Sobrien 521990075Sobrien PR c++/4379 522090075Sobrien * typeck.c (build_x_unary_op): Don't destroy the OFFSET_REF on a 522190075Sobrien single non-static member. 522290075Sobrien (unary_complex_lvalue): If it cannot be a pointer to member, don't 522390075Sobrien make it so. Check it is not pointer to reference. 522452284Sobrien 522590075Sobrien2002-01-02 Nathan Sidwell <nathan@codesourcery.com> 522652284Sobrien 522790075Sobrien PR c++/5132 522890075Sobrien * decl2.c (reparse_absdcl_as_casts): Don't digest_init if we 522990075Sobrien are processing a template decl. 523052284Sobrien 523190075Sobrien2002-01-02 Nathan Sidwell <nathan@codesourcery.com> 523252284Sobrien 523390075Sobrien PR c++/5116, c++/764 523490075Sobrien * call.c (build_new_op): Make sure template class operands are 523590075Sobrien instantiated. Simplify arglist construction. 523652284Sobrien 523790075Sobrien2001-12-29 Nathan Sidwell <nathan@codesourcery.com> 523852284Sobrien 523990075Sobrien * call.c (build_user_type_conversion_1): Use my_friendly_assert 524090075Sobrien rather than if ... abort. 524190075Sobrien * cvt.c (convert_to_reference): Likewise. 524290075Sobrien * semantics.c (setup_vtbl_ptr): Likewise. 524390075Sobrien * pt.c (lookup_template_class): Comment typo. 524452284Sobrien 524590075Sobrien2001-12-29 Nathan Sidwell <nathan@codesourcery.com> 524652284Sobrien 524790075Sobrien PR c++/5125 524890075Sobrien * pt.c (push_template_decl_real): Make sure DECL has 524990075Sobrien DECL_LANG_SPECIFIC. 525052284Sobrien 525190075Sobrien2001-12-29 Nathan Sidwell <nathan@codesourcery.com> 525252284Sobrien 525390075Sobrien PR c++/335 525490075Sobrien * init.c (resolve_offset_ref): Copy cv qualifiers of this pointer 525590075Sobrien for non-reference fields. 525690075Sobrien * typeck.c (require_complete_type): Use resolve_offset_ref). 525752284Sobrien 525890075Sobrien2001-12-26 Nathan Sidwell <nathan@codesourcery.com> 525952284Sobrien 526090075Sobrien PR c++/196 526190075Sobrien * parse.y (bad_parm): Better diagnostic when given a SCOPE_REF. 526252284Sobrien 526390075Sobrien2001-12-24 Nathan Sidwell <nathan@codesourcery.com> 526452284Sobrien 526590075Sobrien PR c++/160 526690075Sobrien * typeck.c (build_modify_expr): Remove old unreachable code & tidy 526790075Sobrien up. Don't stabilize_references when initializing a reference. 526852284Sobrien 526990075Sobrien2001-12-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 527052284Sobrien 527190075Sobrien * decl2.c (lang_f_options): Const-ify. 527252284Sobrien 527390075Sobrien2001-12-20 Joseph S. Myers <jsm28@cam.ac.uk> 527452284Sobrien 527590075Sobrien * config-lang.in (diff_excludes): Remove. 527652284Sobrien 527790075Sobrien2001-12-19 Nathan Sidwell <nathan@codesourcery.com> 527852284Sobrien 527990075Sobrien PR c++/90 528090075Sobrien * typeck.c (build_function_call_real): Use original function 528190075Sobrien expression for errors. 528252284Sobrien 528390075Sobrien2001-12-18 Jason Merrill <jason@redhat.com> 528452284Sobrien 528590075Sobrien PR c++/3242 528690075Sobrien * class.c (add_method): Do compare 'this' quals when trying to match a 528790075Sobrien used function. Don't defer to another used function. 528852284Sobrien 528990075Sobrien2001-12-18 Nathan Sidwell <nathan@codesourcery.com> 529052284Sobrien 529190075Sobrien * pt.c (instantiate_clone): Remove, fold into ... 529290075Sobrien (instantiate_template): ... here. Simplify by removing mutual 529390075Sobrien recursion. 529490075Sobrien * typeck2.c (build_m_component_ref): Don't cv qualify the function 529590075Sobrien pointed to by a pointer to function. 529690075Sobrien * class.c (delete_duplicate_fields_1): Typo. 529752284Sobrien 529890075Sobrien2001-12-18 Jason Merrill <jason@redhat.com> 529952284Sobrien 530090075Sobrien C++ ABI change: destroy value arguments in caller. 530190075Sobrien * semantics.c (genrtl_start_function, genrtl_finish_function): Don't 530290075Sobrien create an extra binding level for the parameters. 530390075Sobrien * decl.c (store_parm_decls): Don't do parameter cleanups. 530452284Sobrien 530590075Sobrien2001-12-18 Nathan Sidwell <nathan@codesourcery.com> 530652284Sobrien 530790075Sobrien * call.c (build_new_method_call): Use '%#V'. 530890075Sobrien * error.c (cv_to_string): Use V parameter to determine padding. 530952284Sobrien 531090075Sobrien2001-12-18 Joseph S. Myers <jsm28@cam.ac.uk> 531152284Sobrien 531290075Sobrien * call.c, decl2.c, init.c: Use "built-in" and "bit-field" 531390075Sobrien spellings in messages. 531452284Sobrien 531590075Sobrien2001-12-17 Zack Weinberg <zack@codesourcery.com> 531652284Sobrien 531790075Sobrien * cp-tree.h: Delete #defines for cp_error, cp_warning, 531890075Sobrien cp_pedwarn, and cp_compiler_error. 531990075Sobrien * call.c, class.c, cp-tree.h, cvt.c, decl.c, decl2.c, error.c, 532090075Sobrien except.c, friend.c, init.c, lex.c, method.c, parse.y, pt.c, 532190075Sobrien rtti.c, search.c, semantics.c, spew.c, tree.c, typeck.c, 532290075Sobrien typeck2.c: Change calls to the above macros to use their 532390075Sobrien language-independent equivalents: error, warning, pedwarn, and 532490075Sobrien internal_error respectively. 532552284Sobrien 532690075Sobrien2001-12-16 Neil Booth <neil@daikokuya.demon.co.uk> 532752284Sobrien 532890075Sobrien * decl2.c (finish_file): Remove back_end_hook. 532952284Sobrien 533090075Sobrien2001-12-16 Joseph S. Myers <jsm28@cam.ac.uk> 533152284Sobrien 533290075Sobrien * ChangeLog.1, ChangeLog.2, ChangeLog, NEWS, call.c, class.c, 533390075Sobrien cp-tree.h, decl.c, decl2.c, except.c, operators.def, optimize.c, 533490075Sobrien pt.c, rtti.c, semantics.c, typeck.c: Fix spelling errors. 533552284Sobrien 533690075Sobrien2001-12-15 Joseph S. Myers <jsm28@cam.ac.uk> 533752284Sobrien 533890075Sobrien * lang-options.h: Use American spelling in messages. 533952284Sobrien 534090075Sobrien2001-12-13 Jason Merrill <jason@redhat.com> 534152284Sobrien 534290075Sobrien * Make-lang.in (parse.h): Separate rule, just depend on parse.c. 534352284Sobrien 534490075Sobrien Use cleanups to run base and member destructors. 534590075Sobrien * init.c (push_base_cleanups): New function, split out from... 534690075Sobrien (build_delete): ...here. Lose !TYPE_HAS_DESTRUCTOR code. 534790075Sobrien * decl.c (finish_destructor_body): Move vbase destruction code to 534890075Sobrien push_base_cleanups. 534990075Sobrien (begin_function_body, finish_function_body): New fns. 535090075Sobrien (finish_function): Move [cd]tor handling and call_poplevel to 535190075Sobrien finish_function_body. 535290075Sobrien (pushdecl): Skip the new level. 535390075Sobrien * semantics.c (genrtl_try_block): Don't call end_protect_partials. 535490075Sobrien (setup_vtbl_ptr): Call push_base_cleanups. 535590075Sobrien * method.c (synthesize_method): Call {begin,end}_function_body. 535690075Sobrien * pt.c (tsubst_expr): Handle COMPOUND_STMT_BODY_BLOCK. 535790075Sobrien * cp-tree.h: Declare new fns. 535890075Sobrien * parse.y (function_body, .begin_function_body): New nonterminals. 535990075Sobrien (fndef, pending_inline, function_try_block): Use function_body. 536090075Sobrien (ctor_initializer_opt, function_try_block): No longer has a value. 536190075Sobrien (base_init): Remove .set_base_init token. 536290075Sobrien (.set_base_init, compstmt_or_error): Remove. 536390075Sobrien * Make-lang.in (parse.c): Expect two fewer s/r conflicts. 536452284Sobrien 536590075Sobrien * optimize.c (maybe_clone_body): Fix parameter updating. 536652284Sobrien 536790075Sobrien2001-12-12 Jason Merrill <jason@redhat.com> 536852284Sobrien 536990075Sobrien * decl.c (store_parm_decls): Remove parms_have_cleanups cruft. 537090075Sobrien * semantics.c (genrtl_start_function): Don't pass 537190075Sobrien parms_have_cleanups or push an extra binding level. 537290075Sobrien (genrtl_finish_function): Lose cleanup_label cruft. 537352284Sobrien 537490075Sobrien * cp-tree.h (struct cp_language_function): Remove x_ctor_label. 537590075Sobrien (ctor_label): Remove. 537690075Sobrien * semantics.c (finish_return_stmt): Lose ctor_label support. 537790075Sobrien * decl.c (finish_constructor_body, mark_lang_function): Likewise. 537890075Sobrien * typeck.c (check_return_expr): Check DECL_DESTRUCTOR_P, not 537990075Sobrien dtor_label. 538052284Sobrien 538190075Sobrien * call.c (build_new_method_call): Let resolves_to_fixed_type_p 538290075Sobrien check for [cd]tors. 538390075Sobrien * class.c (fixed_type_or_null, case INDIRECT_REF): Fix. 538452284Sobrien 538590075Sobrien * decl.c (finish_function): Check VMS_TARGET, not VMS. 538652284Sobrien 538790075Sobrien * decl.c (start_cleanup_fn): Remove redundant pushlevel. 538890075Sobrien (end_cleanup_fn): And poplevel. 538952284Sobrien 539090075Sobrien * semantics.c (setup_vtbl_ptr): Always build a CTOR_INITIALIZER 539190075Sobrien if we're in a template. 539252284Sobrien 539390075Sobrien2001-12-12 Jakub Jelinek <jakub@redhat.com> 539452284Sobrien 539590075Sobrien * cp-tree.h (DESTRUCTOR_DECL_PREFIX, DESTRUCTOR_NAME_P, 539690075Sobrien ANON_PARMNAME_FORMAT, ANON_PARMNAME_P, DESTRUCTOR_NAME_FORMAT, 539790075Sobrien THIS_NAME_P): Delete. 539890075Sobrien * spew.c (read_process_identifier): Remove DESTRUCTOR_NAME_P, 539990075Sobrien THIS_NAME_P and ANON_PARMNAME_P tests from warning about clash 540090075Sobrien with internal naming scheme. 540190075Sobrien * error.c (dump_decl): Remove DESTRUCTOR_NAME_P use. 540252284Sobrien 540390075Sobrien2001-12-12 Nathan Sidwell <nathan@codesourcery.com> 540452284Sobrien 540590075Sobrien * decl.c (grokdeclarator): Deprecated implicit typename use. 540652284Sobrien 540790075Sobrien2001-12-11 Nathan Sidwell <nathan@codesourcery.com> 540852284Sobrien 540990075Sobrien PR g++/51 541090075Sobrien * parse.y (frob_specs): Indicate it is a language linkage which 541190075Sobrien contained the extern. 541290075Sobrien * decl.c (grokdeclarator): Allow extern language linkage with 541390075Sobrien other specifiers. 541452284Sobrien 541590075Sobrien2001-12-10 Nathan Sidwell <nathan@codesourcery.com> 541652284Sobrien 541790075Sobrien PR g++/72 541890075Sobrien * decl.c (add_binding): Don't reject duplicate typedefs involving 541990075Sobrien template parameters. 542052284Sobrien 542190075Sobrien2001-12-10 Neil Booth <neil@daikokuya.demon.co.uk> 542252284Sobrien 542390075Sobrien * parse.y, semantics.c: Similarly. 542452284Sobrien 542590075Sobrien2001-12-09 Nathan Sidwell <nathan@codesourcery.com> 542652284Sobrien 542790075Sobrien PR g++/87 542890075Sobrien * cp-tree.h (DECL_COPY_CONSTRUCTOR_P): Use copy_fn_p. 542990075Sobrien (copy_args_p): Rename to ... 543090075Sobrien (copy_fn_p): ... here. 543190075Sobrien (grok_special_member_properties): New function. 543290075Sobrien (grok_op_properties): Lose VIRTUALP parameter. 543390075Sobrien (copy_assignment_arg_p): Remove. 543490075Sobrien * call.c (build_over_call): Use copy_fn_p. 543590075Sobrien * decl.c (grokfndecl): Reformat. Adjust call to 543690075Sobrien grok_op_properties. 543790075Sobrien (copy_args_p): Rename to ... 543890075Sobrien (copy_fn_p): ... here. Reject template functions. Check for pass 543990075Sobrien by value. 544090075Sobrien (grok_special_member_properties): Remember special functions. 544190075Sobrien (grok_ctor_properties): Don't remember them here, just check. 544290075Sobrien (grok_op_properties): Likewise. 544390075Sobrien (start_method): Call grok_special_member_properties. 544490075Sobrien * decl2.c (grokfield): Likewise. 544590075Sobrien (copy_assignment_arg_p): Remove. 544690075Sobrien (grok_function_init): Don't remember abstract assignment here. 544790075Sobrien * pt.c (instantiate_class_template): Call 544890075Sobrien grok_special_member_properties. 544990075Sobrien (tsubst_decl): Adjust grok_op_properties call. 545052284Sobrien 545190075Sobrien2001-12-08 Aldy Hernandez <aldyh@redhat.com> 545252284Sobrien 545390075Sobrien * lex.c (rid_to_yy): Add RID_CHOOSE_EXPR and 545490075Sobrien RID_TYPES_COMPATIBLE_P. 545552284Sobrien 545690075Sobrien2001-12-08 John David Anglin <dave@hiauly1.hia.nrc.ca> 545752284Sobrien 545890075Sobrien * semantics.c (simplify_aggr_init_exprs_r): Add DIRECT_BIND flag in 545990075Sobrien call to build_aggr_init. 546090075Sobrien * cp-tree.h (DIRECT_BIND): Document new use of DIRECT_BIND. 546152284Sobrien 546290075Sobrien2001-12-08 Neil Booth <neil@daikokuya.demon.co.uk> 546352284Sobrien 546490075Sobrien * parse.y: Replace uses of the string non-terminal with STRING. 546590075Sobrien Don't perform string concatentaion here. 546690075Sobrien (string): Remove non-terminal. 546790075Sobrien * semantics.c (finish_asm_stmt): Don't concatenate strings here. 546852284Sobrien 546990075Sobrien2001-12-05 Jason Merrill <jason@redhat.com> 547052284Sobrien 547190075Sobrien * cp-lang.c (LANG_HOOKS_TREE_INLINING_START_INLINING): Define. 547290075Sobrien (LANG_HOOKS_TREE_INLINING_END_INLINING): Define. 547390075Sobrien * tree.c (cp_start_inlining, cp_end_inlining): New fns. 547490075Sobrien * pt.c (push_tinst_level): No longer static. 547590075Sobrien * cp-tree.h: Declare them. 547652284Sobrien 547790075Sobrien * init.c (resolve_offset_ref): Don't check access for the base 547890075Sobrien conversion to access a FIELD_DECL. 547952284Sobrien 548090075Sobrien * cp-tree.h (TYPE_REFFN_P): New macro. 548190075Sobrien * decl.c (bad_specifiers): Check it, too. 548252284Sobrien 548390075Sobrien * rtti.c (create_pseudo_type_info): Set CLASSTYPE_INTERFACE_ONLY 548490075Sobrien on the __*_type_info type if we haven't seen a definition. 548552284Sobrien 548690075Sobrien2001-12-05 Neil Booth <neil@daikokuya.demon.co.uk> 548752284Sobrien 548890075Sobrien * decl.c: Include c-common.h. 548990075Sobrien (shadow_warning): Move to c-common.c. 549052284Sobrien 549190075SobrienWed Dec 5 17:00:49 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 549252284Sobrien 549390075Sobrien * decl.c (duplicate_decls): Don't copy DECL_NO_CHECK_MEMORY_USAGE. 549452284Sobrien 549590075Sobrien2001-12-04 Nathan Sidwell <nathan@codesourcery.com> 549652284Sobrien 549790075Sobrien * pt.c (end_template_parm_list): Clear TREE_CHAIN of each parm. 549852284Sobrien 549990075Sobrien2001-12-04 Nathan Sidwell <nathan@codesourcery.com> 550052284Sobrien 550190075Sobrien PR g++/164 550290075Sobrien * init.c (sort_base_init): Allow binfos to be directly specified. 550390075Sobrien * method.c (do_build_copy_constructor): Explicitly convert to the 550490075Sobrien base instance. 550590075Sobrien (do_build_assign_ref): Likewise. 550652284Sobrien 550790075Sobrien2001-12-03 Hans-Peter Nilsson <hp@bitrange.com> 550852284Sobrien 550990075Sobrien * decl.c (xref_basetypes): Don't use C99 construct in tag_code 551090075Sobrien declaration and initialization. 551152284Sobrien 551290075Sobrien2001-12-03 Neil Booth <neil@daikokuya.demon.co.uk> 551352284Sobrien 551490075Sobrien * typeck2.c: Remove leading capital from diagnostic messages, as 551590075Sobrien per GNU coding standards. 551652284Sobrien 551790075Sobrien2001-12-03 Mumit Khan <khan@nanotech.wisc.edu> 551852284Sobrien 551990075Sobrien PR c++/3394 552090075Sobrien * decl.c (xref_basetypes): Handle attributes between 552190075Sobrien 'class' and name. 552252284Sobrien 552390075Sobrien2001-12-03 Nathan Sidwell <nathan@codesourcery.com> 552452284Sobrien 552590075Sobrien PR g++/3381 552690075Sobrien * parse.y (named_complex_class_head_sans_basetype): Add new 552790075Sobrien reduction. 552890075Sobrien * Make-lang.in (parse.c): Adjust expected conflict count. 552952284Sobrien 553090075Sobrien2001-12-03 Jason Merrill <jason@redhat.com> 553152284Sobrien 553290075Sobrien * class.c (finish_vtbls): Fill in BINFO_VPTR_FIELD in the 553390075Sobrien immediate binfos for our virtual bases. 553452284Sobrien 553590075Sobrien2001-12-02 Neil Booth <neil@daikokuya.demon.co.uk> 553652284Sobrien 553790075Sobrien * call.c (build_java_interface_fn_ref): Similarly. 553890075Sobrien * except.c (is_admissible_throw_operand): Similarly. 553990075Sobrien * init.c (build_java_class_ref): Similarly. 554090075Sobrien * xref.c (open_xref_file): Similarly. 554152284Sobrien 554290075Sobrien2001-12-01 Neil Booth <neil@daikokuya.demon.co.uk> 554352284Sobrien 554490075Sobrien * class.c (finish_struct): Remove trailing periods from messages. 554590075Sobrien * decl.c (check_tag_decl): Similarly. 554690075Sobrien * lex.c (cxx_set_yydebug): Similarly. 554790075Sobrien * typeck2.c (friendly_abort): Similarly. 554852284Sobrien 554990075Sobrien2001-11-29 Mark Mitchell <mark@codesourcery.com> 555052284Sobrien 555190075Sobrien PR c++/3048 555290075Sobrien * cp-tree.h (ovl_member): Remove. 555390075Sobrien * decl2.c (merge_functions): Handle extern "C" functions 555490075Sobrien specially. 555590075Sobrien * tree.c (ovl_member): Remove. 555652284Sobrien 555790075Sobrien2001-11-29 Mark Mitchell <mark@codesourcery.com> 555852284Sobrien 555990075Sobrien PR c++/4842 556090075Sobrien * class.c (get_basefndecls): Take an IDENTIFIER_NODE, not a 556190075Sobrien FUNCTION_DECL, as input. 556290075Sobrien (mark_overriders): Remove. 556390075Sobrien (warn_hidden): Rework for the new ABI. 556452284Sobrien 556590075Sobrien2001-11-29 Mark Mitchell <mark@codesourcery.com> 556652284Sobrien 556790075Sobrien PR c++/3471 556890075Sobrien * call.c (convert_like_real): Do not build additional temporaries 556990075Sobrien for rvalues of class type. 557052284Sobrien 557190075Sobrien2001-11-28 Nathan Sidwell <nathan@codesourcery.com> 557252284Sobrien 557390075Sobrien * cp-tree.h (UNIQUELY_DERIVED_FROM_P): Use lookup base. 557490075Sobrien (ACCESSIBLY_UNIQUELY_DERIVED_FROM_P): Likewise. 557590075Sobrien (PUBLICLY_UNIQUELY_DERIVED_FROM_P: Likewise. 557690075Sobrien (DERIVED_FROM_P): Likewise. 557790075Sobrien (enum base_access): Renumber, add ba_quiet bit mask. 557890075Sobrien (get_binfo): Remove. 557990075Sobrien (get_base_distance): Remove. 558090075Sobrien (binfo_value): Remove. 558190075Sobrien (ACCESSIBLY_DERIVED_FROM_P): Remove. 558290075Sobrien * call.c (standard_conversion): Use lookup_base. 558390075Sobrien * class.c (strictly_overrides): Likewise. 558490075Sobrien (layout_virtual_bases): Likewise. 558590075Sobrien (warn_about_ambiguous_direct_bases): Likewise. 558690075Sobrien (is_base_of_enclosing_class): Likewise. 558790075Sobrien (add_vcall_offset_vtbl_entries_1): Likewise. 558890075Sobrien * cvt.c (build_up_reference): Adjust comment. 558990075Sobrien * init.c (build_member_call): Reformat. 559090075Sobrien * search.c (get_binfo): Remove. 559190075Sobrien (get_base_distance_recursive): Remove. 559290075Sobrien (get_base_distance): Remove. 559390075Sobrien (lookup_base_r): Tweak. 559490075Sobrien (lookup_base): Add ba_quiet control. Complete the types here. 559590075Sobrien (covariant_return_p): Use lookup_base. 559690075Sobrien * tree.c (binfo_value): Remove. 559790075Sobrien (maybe_dummy_object): Use lookup_base. 559890075Sobrien * typeck.c (build_static_cast): Use lookup_base. 559952284Sobrien (get_delta_difference): Likewise. 560090075Sobrien * typeck2.c (binfo_or_else): Use lookup_base. 560190075Sobrien (build_scoped_ref): Add back error_mark_check. 560290075Sobrien (build_m_component_ref): Use lookup_base. 560352284Sobrien 560490075Sobrien2001-11-29 Joseph S. Myers <jsm28@cam.ac.uk> 560552284Sobrien 560690075Sobrien * Make-lang.in (c++.generated-manpages): New dummy target. 560752284Sobrien 560890075SobrienTue Nov 27 09:03:47 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 560952284Sobrien 561090075Sobrien * Make-lang.in (cp-lang.o): Depends on c-common.h. 561190075Sobrien * cp-lang.c (c-common.h): Include. 561290075Sobrien (LANG_HOOKS_EXPAND_CONSTANT, LANG_HOOKS_SAFE_FROM_P): New hooks. 561390075Sobrien * decl.c (cxx_init_decl_processing): Don't set lang_safe_from_p. 561490075Sobrien * expr.c (init_cplus_expand): Don't set lang_expand_constant. 561552284Sobrien 561690075Sobrien2001-11-26 Neil Booth <neil@daikokuya.demon.co.uk> 561752284Sobrien 561890075Sobrien * decl2.c (c_language): Move to c-common.c. 561990075Sobrien * lex.c (cxx_post_options, cxx_init_options): Use c-common.c 562090075Sobrien functions. 562190075Sobrien (cxx_init): Update. 562252284Sobrien 562390075Sobrien2001-11-26 Jason Merrill <jason@redhat.com> 562452284Sobrien 562590075Sobrien * call.c (joust): Remove COND_EXPR hack. 562652284Sobrien 562790075Sobrien2001-11-25 Aldy Hernandez <aldyh@redhat.com> 562852284Sobrien 562990075Sobrien * search.c (lookup_base_r): Declare bk in variable declaration 563090075Sobrien space. 563152284Sobrien 563290075Sobrien2001-11-25 Nathan Sidwell <nathan@codesourcery.com> 563352284Sobrien 563490075Sobrien PR g++/3145 563590075Sobrien * class.c (build_vbase_pointer): Remove. 563690075Sobrien (build_vbase_path): Remove. 563790075Sobrien (build_base_path): New function. 563890075Sobrien * cp-tree.h (base_access, base_kind): New enumerations. 563990075Sobrien (build_base_path): Declare. 564090075Sobrien (convert_pointer_to_real): Remove. 564190075Sobrien (convert_pointer_to): Remove. 564290075Sobrien (lookup_base): Declare. 564390075Sobrien (convert_pointer_to_vbase): Remove. 564490075Sobrien * call.c (build_scoped_method_call): Use lookup_base & 564590075Sobrien build_base_path instead of convert_pointer_to_real, 564690075Sobrien get_base_distance & get_binfo. 564790075Sobrien (build_over_call): Likewise. 564890075Sobrien * cvt.c (cp_convert_to_pointer): Likewise. 564990075Sobrien (convert_to_pointer_force): Likewise. 565090075Sobrien (build_up_reference): Likewise. 565190075Sobrien (convert_pointer_to_real): Remove. 565290075Sobrien (convert_pointer_to): Remove. 565390075Sobrien * init.c (dfs_initialize_vtbl_ptrs): Use build_base_path 565490075Sobrien instead of convert_pointer_to_vbase & build_vbase_path. 565590075Sobrien (emit_base_init): Use build_base_path instead of 565690075Sobrien convert_pointer_to_real. 565790075Sobrien (expand_virtual_init): Lose unrequired conversions. 565890075Sobrien (resolve_offset_ref): Use lookup_base and build_base_path 565990075Sobrien instead of convert_pointer_to. 566090075Sobrien * rtti.c (build_dynamic_cast_1): Use lookup_base & 566190075Sobrien build_base_path instead of get_base_distance & build_vbase_path. 566290075Sobrien * search.c (get_vbase_1): Remove. 566390075Sobrien (get_vbase): Remove. 566490075Sobrien (convert_pointer_to_vbase): Remove. 5665117395Skan (lookup_base_r): New function. 566690075Sobrien (lookup_base): New function. 566790075Sobrien * typeck.c (require_complete_type): Use lookup_base & 566890075Sobrien build_base_path instead of convert_pointer_to. 566990075Sobrien (build_component_ref): Likewise. 567090075Sobrien (build_x_function_call): Likewise. 567190075Sobrien (get_member_function_from_ptrfunc): Likewise. 567290075Sobrien (build_component_addr): Likewise. 567390075Sobrien * typeck2.c (build_scoped_ref): Likewise. 567452284Sobrien 567590075Sobrien2001-11-22 Bryce McKinlay <bryce@waitaki.otago.ac.nz> 567652284Sobrien 567790075Sobrien * cp-tree.h (CP_TYPE_QUALS): Removed. 567890075Sobrien * decl.c (cxx_init_decl_processing): Don't set lang_dump_tree. 567990075Sobrien * cp-lang.c: Set LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN and 568090075Sobrien LANG_HOOKS_TREE_DUMP_TYPE_QUALS_FN. 568190075Sobrien * dump.c (cp_dump_tree): Use void* dump_info argument to match 568290075Sobrien lang-hooks prototype. 568390075Sobrien * call.c, cp-tree.h, cvt.c, decl.c, init.c, mangle.c, method.c, pt.c, 568490075Sobrien rtti.c, semantics.c, tree.c, typeck.c, typeck2.c: All references to 568590075Sobrien CP_TYPE_QUALS changed to cp_type_quals. 568690075Sobrien * Make-lang.in: References to c-dump.h changed to tree-dump.h. 568790075Sobrien (CXX_C_OBJS): Remove c-dump.o. 568852284Sobrien 568990075Sobrien2001-11-21 Mark Mitchell <mark@codesourcery.com> 569052284Sobrien 569190075Sobrien PR c++/3637 569290075Sobrien * pt.c (lookup_template_class): Ensure that all specializations 569390075Sobrien are registered on the list corresponding to the most general 569490075Sobrien template. 569552284Sobrien 569690075Sobrien2001-11-20 Mark Mitchell <mark@codesourcery.com> 569752284Sobrien 569890075Sobrien * call.c (non_reference): Add documentation. 569990075Sobrien (convert_class_to_reference): Do not strip reference types 570090075Sobrien from conversion operators. 570190075Sobrien (maybe_handle_ref_bind): Simplify. 570290075Sobrien (compare_ics): Correct handling of references. 570352284Sobrien 570490075Sobrien2001-11-19 John Wilkinson <johnw@research.att.com> 570552284Sobrien 570690075Sobrien * dump.c (dump_op): New function. 570790075Sobrien (cp_dump_tree): Dump CLASSTYPE_TEMPLATE_SPECIALIZATION. Use 570890075Sobrien dump_op. Dump DECL_MUTABLE, access and staticness for VAR_DECLs. 570990075Sobrien DECL_PURE_VIRTUAL_P, DECL_VIRTUAL_P, 571052284Sobrien 571190075Sobrien2001-11-19 Mark Mitchell <mark@codesourcery.com> 571252284Sobrien 571390075Sobrien PR4629 571490075Sobrien * semantics.c (finish_sizeof): Make sure that expression created 571590075Sobrien while processing a template do not have a type. 571690075Sobrien (finish_alignof): Likewise. 571790075Sobrien * typeck.c (c_sizeof): Likewise. 571890075Sobrien (expr_sizeof): Likewise. 571952284Sobrien 572090075Sobrien2001-11-18 Neil Booth <neil@daikokuya.demon.co.uk> 572152284Sobrien 572290075Sobrien * lex.c (cxx_finish): Call c_common_finish. 572390075Sobrien (finish_parse): Remove. 572452284Sobrien 572590075Sobrien2001-11-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 572652284Sobrien 572790075Sobrien * decl.c (create_array_type_for_decl): Check if NAME is NULL_TREE 572890075Sobrien when displaying error message about missing array bounds. 572952284Sobrien 573090075Sobrien2001-11-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 573152284Sobrien 573290075Sobrien * mangle.c (write_expression): Handle CAST_EXPR, STATIC_CAST_EXPR, 573390075Sobrien CONST_CAST_EXPR. 573490075Sobrien * operators.def: Add CAST_EXPR, STATIC_CAST_EXPR, CONST_CAST_EXPR. 573552284Sobrien 573690075Sobrien2001-11-16 Neil Booth <neil@daikokuya.demon.co.uk> 573752284Sobrien 573890075Sobrien * cp-tree.h (print_class_statistics): Restore. 573952284Sobrien 574090075Sobrien2001-11-15 Jason Merrill <jason@redhat.com> 574152284Sobrien 574290075Sobrien * method.c (use_thunk): Don't emit debugging information for thunks. 574352284Sobrien 574490075Sobrien * parse.y: Add ... IDENTIFIER SCOPE and ... PTYPENAME SCOPE expansions. 574590075Sobrien * decl.c (make_typename_type): Handle getting a class template. 574690075Sobrien * search.c (lookup_field_r): A class template is good enough for 574790075Sobrien want_type. 574852284Sobrien 574990075Sobrien * call.c (convert_like_real): Only use cp_convert for the bad part. 575090075Sobrien (standard_conversion): Also allow bad int->enum. 575190075Sobrien * typeck.c (ptr_reasonably_similar): Also allow functions to 575290075Sobrien interconvert. Pointers to same-size integers are reasonably 575390075Sobrien similar. 575452284Sobrien 575590075Sobrien * cvt.c (convert_to_void): If we build a new COND_EXPR, always 575690075Sobrien give it void type. 575752284Sobrien 575890075Sobrien2001-11-15 Nathan Sidwell <nathan@codesourcery.com> 575952284Sobrien 576090075Sobrien PR g++/3154 576190075Sobrien * init.c (sort_base_init): Remove unreachable code. 576290075Sobrien (expand_member_init): Adjust comment to reflect reality. Simplify 576390075Sobrien and remove unreachable code. 576452284Sobrien 576590075Sobrien2001-11-15 Neil Booth <neil@daikokuya.demon.co.uk> 576652284Sobrien 576790075Sobrien * cp-tree.h (init_reswords, cxx_init_decl_processing): New. 576890075Sobrien (cxx_init): Update prototype. 576990075Sobrien * decl.c (init_decl_processing): Rename. Move null node init 577090075Sobrien to its creation time. 577190075Sobrien * lex.c (cxx_init_options): Update. 577290075Sobrien (cxx_init): Combine with old init_parse; also call 577390075Sobrien cxx_init_decl_processing. 577452284Sobrien 577590075Sobrien2001-11-14 Richard Sandiford <rsandifo@redhat.com> 577652284Sobrien 577790075Sobrien * decl.c (check_initializer): Try to complete the type of an 577890075Sobrien array element before checking whether it's complete. Don't 577990075Sobrien complain about arrays with complete element types but an 578090075Sobrien unknown size. 578190075Sobrien (cp_finish_decl): Build the hierarchical constructor before 578290075Sobrien calling maybe_deduce_size_from_array_init. 578352284Sobrien 578490075Sobrien2001-11-14 Joseph S. Myers <jsm28@cam.ac.uk> 578552284Sobrien 578690075Sobrien * Make-lang.in: Change all uses of $(manext) to $(man1ext). 578752284Sobrien 578890075Sobrien2001-11-13 Nathan Sidwell <nathan@codesourcery.com> 578952284Sobrien 579090075Sobrien PR g++/4206 579190075Sobrien * parse.y (already_scoped_stmt): Remove. 579290075Sobrien (simple_stmt, WHILE & FOR): Use implicitly_scoped_stmt. 579352284Sobrien 579490075Sobrien2001-11-12 H.J. Lu <hjl@gnu.org> 579552284Sobrien 579690075Sobrien * cvt.c (ocp_convert): Don't warn the address of a weak 579790075Sobrien function is always `true'. 579852284Sobrien 579990075Sobrien2001-11-09 Neil Booth <neil@daikokuya.demon.co.uk> 580052284Sobrien 580190075Sobrien * cp-lang.c (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE, 580290075Sobrien LANG_HOOKS_PRINT_STATISTICS, LANG_HOOKS_PRINT_XNODE, 580390075Sobrien LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_SET_YYDEBUG): Override. 580490075Sobrien * cp-tree.h (print_class_statistics): Remove. 580590075Sobrien (cxx_print_statistics, cxx_print_xnode, cxx_print_decl, cxx_print_type, 580690075Sobrien cxx_print_identifier, cxx_set_yydebug): New. 580790075Sobrien * lex.c (set_yydebug): Rename c_set_yydebug. 580890075Sobrien * ptree.c (print_lang_decl, print_lang_type, print_lang_identifier, 580990075Sobrien lang_print_xnode): Rename. 581090075Sobrien * tree.c (print_lang_statistics): Rename. 581152284Sobrien 581290075Sobrien2001-11-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 581352284Sobrien 581490075Sobrien * class.c (dump_array): Fix format specifier warning. 581552284Sobrien 581690075Sobrien2001-11-09 Neil Booth <neil@daikokuya.demon.co.uk> 581752284Sobrien 581890075Sobrien * cp-lang.c (LANG_HOOKS_NAME): Override. 581990075Sobrien (struct lang_hooks): Constify. 582090075Sobrien * lex.c (cxx_init_options): Update. 582190075Sobrien (lang_identify): Remove. 582290075Sobrien * parse.y (language_string): Remove. 582352284Sobrien 582490075Sobrien2001-11-08 Andreas Franck <afranck@gmx.de> 582552284Sobrien 582690075Sobrien * Make-lang.in (CXX_INSTALL_NAME, GXX_CROSS_NAME, 582790075Sobrien DEMANGLER_CROSS_NAME): Handle program_transform_name the way 582890075Sobrien suggested by autoconf. 582990075Sobrien (GXX_TARGET_INSTALL_NAME, CXX_TARGET_INSTALL_NAME): Define. 583090075Sobrien (c++.install-common): Use the transformed target alias names. 583152284Sobrien 583290075Sobrien2001-11-06 Neil Booth <neil@cat.daikokuya.demon.co.uk> 583352284Sobrien 583490075Sobrien * Make-lang.in: Update. 583590075Sobrien * cp-lang.c: Include langhooks-def.h. 583652284Sobrien 583790075Sobrien2001-11-04 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 583852284Sobrien 583990075Sobrien * pt.c (tsubst_copy): Call tsubst for TYPEOF_EXPR. 584052284Sobrien 584190075Sobrien2001-11-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 584252284Sobrien 584390075Sobrien * lex.c (copy_lang_type): Add static prototype. 584452284Sobrien 584590075Sobrien2001-11-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 584652284Sobrien 584790075Sobrien * pt.c (unify): Handle SCOPE_REF. 584852284Sobrien 584990075Sobrien2001-11-01 Jakub Jelinek <jakub@redhat.com> 585052284Sobrien 585190075Sobrien * tree.c (cp_copy_res_decl_for_inlining): Adjust 585290075Sobrien DECL_ABSTRACT_ORIGIN for the return variable. 585352284Sobrien 585490075Sobrien2001-10-31 Zack Weinberg <zack@codesourcery.com> 585552284Sobrien 585690075Sobrien * Make-lang.in: Replace $(INTL_TARGETS) with po-generated. 585752284Sobrien 585890075Sobrien2001-10-28 Joseph S. Myers <jsm28@cam.ac.uk> 585952284Sobrien 586090075Sobrien * ChangeLog.1, ChangeLog.2, ChangeLog, class.c, decl2.c, search.c, 586190075Sobrien semantics.c, spew.c: Fix spelling errors. 586252284Sobrien 586390075Sobrien2001-10-27 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 586452284Sobrien 586590075Sobrien * decl2.c (validate_nonmember_using_decl): Handle NAMESPACE_DECL. 586652284Sobrien 586790075Sobrien2001-10-25 Zack Weinberg <zack@codesourcery.com> 586852284Sobrien 586990075Sobrien * cp-lang.c: Redefine LANG_HOOKS_CLEAR_BINDING_STACK to 587090075Sobrien pop_everything. 587152284Sobrien 587290075SobrienTue Oct 23 14:00:20 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 587352284Sobrien 587490075Sobrien * cp-lang.c (cxx_get_alias_set): New function. 587590075Sobrien Point LANG_HOOKS_GET_ALIAS_SET to it. 587652284Sobrien 587790075Sobrien2001-10-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 587852284Sobrien 587990075Sobrien * cp-tree.def (UNBOUND_CLASS_TEMPLATE): New tree node. 588090075Sobrien * cp-tree.h (make_unbound_class_template): Prototype new function. 588190075Sobrien * decl.c (make_unbound_class_template): New function. 588290075Sobrien * decl2.c (arg_assoc_template_arg): Handle UNBOUND_CLASS_TEMPLATE. 588390075Sobrien * error.c (dump_type): Likewise. 588490075Sobrien * mangle.c (write_type): Likewise. 588590075Sobrien * parse.y (template_parm): Likewise. 588690075Sobrien (template_argument): Use make_unbound_class_template. 588790075Sobrien * pt.c (convert_template_argument): Handle UNBOUND_CLASS_TEMPLATE. 588890075Sobrien (tsubst): Likewise. 588990075Sobrien (tsubst_copy): Likewise. 589090075Sobrien (unify): Likewise. 589190075Sobrien * tree.c (walk_tree): Likewise. 589290075Sobrien * typeck.c (comptypes): Likewise. 589352284Sobrien 589490075Sobrien2001-10-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 589552284Sobrien 589690075Sobrien * xref.c (GNU_xref_member): Use safe-ctype macros and/or fold 589790075Sobrien extra calls into fewer ones. 589852284Sobrien 589990075Sobrien2001-10-18 Alexandre Oliva <aoliva@redhat.com> 590052284Sobrien 590190075Sobrien * decl.c (duplicate_decls): Propagate DECL_UNINLINABLE. 590290075Sobrien Warn when merging inline with attribute noinline. 590390075Sobrien (start_decl, start_function): Warn if inline and attribute 590490075Sobrien noinline appear in the same declaration. 590552284Sobrien 590690075Sobrien2001-10-16 H.J. Lu <hjl@gnu.org> 590752284Sobrien 590890075Sobrien * cp-tree.h (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): Defined 590990075Sobrien for tree checking disabled. 591052284Sobrien 591190075Sobrien2001-10-16 Hans-Peter Nilsson <hp@axis.com> 591252284Sobrien 591390075Sobrien * cp-tree.h (VFIELD_NAME_FORMAT) [NO_DOLLAR_IN_LABEL && 591490075Sobrien NO_DOT_IN_LABEL]: Adjust to match VFIELD_NAME. 591552284Sobrien 591690075Sobrien2001-10-15 Richard Sandiford <rsandifo@redhat.com> 591752284Sobrien 591890075Sobrien * pt.c (UNIFY_ALLOW_MAX_CORRECTION): Define. 591990075Sobrien (unify): Only handle MINUS_EXPR specially if the above flag is set 592090075Sobrien and the subtracted constant is 1. Clear the flag on recursive calls. 592190075Sobrien Set it when unifying the maximum value in an INTEGER_TYPE's range. 592252284Sobrien 592390075Sobrien2001-10-15 Richard Sandiford <rsandifo@redhat.com> 592452284Sobrien 592590075Sobrien * decl.c (bad_specifiers): Don't allow exception specifications 592690075Sobrien on any typedefs. 592752284Sobrien 592890075Sobrien2001-10-14 Neil Booth <neil@daikokuya.demon.co.uk> 592952284Sobrien 593090075Sobrien * cp/lex.c (init_cp_pragma): Similarly. 593152284Sobrien 593290075Sobrien2001-10-13 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 593352284Sobrien 593490075Sobrien * pt.c (lookup_template_class): Build complete template arguments 593590075Sobrien for BOUND_TEMPLATE_TEMPLATE_PARM. 593652284Sobrien 593790075Sobrien2001-10-12 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 593852284Sobrien 593990075Sobrien * cp-tree.h (TYPE_BINFO): Update comment. 594090075Sobrien (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): New macro. 594190075Sobrien (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Use template_info. 594290075Sobrien (TYPENAME_TYPE_FULLNAME): Use TYPE_FIELDS. 594390075Sobrien (copy_type): Prototype new function. 594490075Sobrien * lex.c (copy_lang_decl): Gather tree node statistics. 594590075Sobrien (copy_lang_type): New function. 594690075Sobrien (copy_type): Likewise. 594790075Sobrien (cp_make_lang_type): Create lang_type for 594890075Sobrien BOUND_TEMPLATE_TEMPLATE_PARM. Set TYPE_BINFO for TYPENAME_TYPE 594990075Sobrien and BOUND_TEMPLATE_TEMPLATE_PARM. 595090075Sobrien * pt.c (tsubst): Use copy_type instead of copy_node. 595190075Sobrien * search.c (lookup_field_1): Ignore TYPENAME_TYPE. 595252284Sobrien 595390075Sobrien2001-10-12 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 595452284Sobrien 595590075Sobrien * pt.c (determine_specialization): Ignore functions without 595690075Sobrien DECL_TEMPLATE_INFO. 595752284Sobrien 595890075Sobrien2001-10-12 Nathan Sidwell <nathan@codesourcery.com> 595952284Sobrien 596090075Sobrien PR g++/4476 596190075Sobrien * typeck2.c (abstract_virtuals_error): Ignore incomplete classes. 596252284Sobrien 596390075Sobrien2001-10-11 Jason Merrill <jason_merrill@redhat.com> 596452284Sobrien 596590075Sobrien * typeck2.c (store_init_value): Don't re-digest a bracketed 596690075Sobrien initializer. 596752284Sobrien 596890075Sobrien * class.c (finish_struct_anon): Use TYPE_ANONYMOUS_P instead of 596990075Sobrien ANON_AGGR_TYPE_P. 597052284Sobrien 597190075Sobrien2001-10-11 Richard Henderson <rth@redhat.com> 597252284Sobrien 597390075Sobrien * class.c (build_vtable_entry_ref): Create a VTABLE_REF instead 597490075Sobrien of an asm statement. 597590075Sobrien (build_vtbl_ref_1): Split out from build_vtbl_ref. 597690075Sobrien (build_vfn_ref): Use it to handle vtable descriptors before 597790075Sobrien calling build_vtable_entry_ref. 597890075Sobrien * decl2.c (output_vtable_inherit): Use assemble_vtable_inherit. 597952284Sobrien 598090075Sobrien2001-10-10 Richard Henderson <rth@redhat.com> 598152284Sobrien 598290075Sobrien * parse.y (asm_operand): Allow named operands. 598390075Sobrien * semantics.c (finish_asm_stmt): Tweek for changed location 598490075Sobrien of the operand constrant. 598552284Sobrien 598690075Sobrien2001-10-09 Jason Merrill <jason_merrill@redhat.com> 598752284Sobrien 598890075Sobrien * call.c (standard_conversion): Add bad conversion between 598990075Sobrien integers and pointers. 599090075Sobrien (convert_like_real): Don't use convert_for_initialization for bad 599190075Sobrien conversions; complain here and use cp_convert. 599290075Sobrien (build_over_call): Don't handle bad conversions specially. 599390075Sobrien (perform_implicit_conversion): Allow bad conversions. 599490075Sobrien (can_convert_arg_bad): New fn. 599590075Sobrien * cp-tree.h: Declare it. 599690075Sobrien * typeck.c (convert_for_assignment): Use it. 599790075Sobrien (ptr_reasonably_similar): Any target type is similar to void. 599852284Sobrien 599990075Sobrien2001-10-08 Alexandre Oliva <aoliva@redhat.com> 600052284Sobrien 600190075Sobrien * Make-lang.in (CXX_OBJS): Added cp-lang.o. 600290075Sobrien (cp/cp-lang.o): New rule. 600390075Sobrien * cp-tree.h: Declare hooks. 600490075Sobrien * tree.c: Make hooks non-static. 600590075Sobrien (init_tree): Don't initialize hooks here. 600690075Sobrien * lex.c: Likewise. Move definition of lang_hooks to... 600790075Sobrien * cp-lang.c: ... new file. 600852284Sobrien 600990075Sobrien2001-10-08 Richard Henderson <rth@redhat.com> 601052284Sobrien 601190075Sobrien * cp-tree.h (struct lang_decl_flags): Remove declared_inline. 601290075Sobrien (DECL_DECLARED_INLINE_P): Use the bit in struct c_lang_decl. 601352284Sobrien 601490075Sobrien2001-10-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 601552284Sobrien 601690075Sobrien * class.c (build_vtable_entry_ref): Const-ify. 601790075Sobrien * decl.c (predefined_identifier, 601890075Sobrien initialize_predefined_identifiers): Likewise. 601990075Sobrien * init.c (build_new_1): Likewise. 602090075Sobrien * lex.c (cplus_tree_code_type, cplus_tree_code_length, resword): 602190075Sobrien Likewise. 602252284Sobrien 602390075Sobrien2001-10-05 Alexandre Oliva <aoliva@redhat.com> 602452284Sobrien 602590075Sobrien * optimize.c (struct inline_data): Moved to ../tree-inline.c. 602690075Sobrien (INSNS_PER_STMT): Likewise. 602790075Sobrien (remap_decl, remap_block, copy_scopy_stmt, copy_body_r): Likewise. 602890075Sobrien (copy_body, initialize_inlined_parameters): Likewise. 602990075Sobrien (declare_return_variable, inlinable_function_p): Likewise. 603090075Sobrien (expand_call_inline, expand_calls_inline): Likewise. 603190075Sobrien (optimize_inline_calls, clone_body): Likewise. 603290075Sobrien * tree.c (walk_tree): Moved to ../tree-inline.c. 603390075Sobrien (walk_tree_without_duplicates): Likewise. 603490075Sobrien (copy_tree_r, remap_save_expr): Likewise. 603552284Sobrien 603690075Sobrien2001-10-04 Alexandre Oliva <aoliva@redhat.com> 603752284Sobrien 603890075Sobrien * Make-lang.in (cp/decl.o, cp/tree.o): Depend on tree-inline.h. 603990075Sobrien (cp/pt.o, cp/semantics.o, cp/optimize.o): Likewise. 604090075Sobrien * cp-tree.h (lang_decl): Moved inlined_fns to tree_decl. 604190075Sobrien (TREE_READONLY_DECL_P, DECL_INLINED_FNS): Moved to ../tree.h. 604290075Sobrien (flag_inline_trees): Moved declaration to ../tree-inline.h. 604390075Sobrien (walk_tree): Moved declaration to ../tree-inline.h. 604490075Sobrien (walk_tree_without_duplicates, copy_tree_r): Likewise. 604590075Sobrien (remap_save_expr): Likewise. 604690075Sobrien * decl.c: Include tree-inline.h. 604790075Sobrien (lang_mark_tree): Don't mark inlined_fns. 604890075Sobrien * decl2.c (flag_inline_trees): Moved defn to ../tree-inline.c. 604990075Sobrien * optimize.c: Include tree-inline.h. 605090075Sobrien (optimize_inline_calls): Move declaration to ../tree.h, as 605190075Sobrien non-static. 605290075Sobrien (remap_decl): Use language-independent constructs and hooks. 605390075Sobrien (remap_block, copy_body_r, declare_return_variable): Likewise. 605490075Sobrien (inlinable_function_p): Likewise. Don't test for 605590075Sobrien DECL_LANG_SPECIFIC before DECL_INLINED_FNS as inlined_fns is 605690075Sobrien no longer language-specific. 605790075Sobrien (optimize_inline_calls): Likewise. Make it non-static. Moved 605890075Sobrien call of dump_function to... 605990075Sobrien (optimize_function): Here... 606090075Sobrien (clone_body): New function, extracted from... 606190075Sobrien (maybe_clone_body): ... here. Build decl_map locally and pass 606290075Sobrien it on to clone_body. 606390075Sobrien * pt.c, semantics.c: Include tree-inline.h. 606490075Sobrien * tree.c: Likewise. 606590075Sobrien (cp_walk_subtrees): New language-specific hook for tree inlining. 606690075Sobrien (cp_cannot_inline_tree_fn, cp_add_pending_fn_decls, 606790075Sobrien cp_is_overload_p, cp_auto_var_in_fn_p, 606890075Sobrien cp_copy_res_decl_for_inlining): Likewise. 606990075Sobrien (walk_tree): Move language-specific constructs into... 607090075Sobrien (cp_walk_subtrees): this new function. 607190075Sobrien (copy_tree_r): Use language-independent constructs and hooks. 607290075Sobrien (init_tree): Initialize tree inlining hooks. 607390075Sobrien (remap_save_expr): Adjust prototype so that the declaration 607490075Sobrien does not require the definition of splay_tree. 607552284Sobrien 607690075Sobrien2001-10-03 John David Anglin <dave@hiauly1.hia.nrc.ca> 607752284Sobrien 607890075Sobrien * rtti.c (get_tinfo_decl): Call typeinfo_in_lib_p with the type used 607990075Sobrien to build the declaration instead of the declaration itself. 608052284Sobrien 608190075Sobrien2001-10-02 Jason Merrill <jason_merrill@redhat.com> 608252284Sobrien 608390075Sobrien * decl2.c (cxx_decode_option): Add 'else'. 608452284Sobrien 608590075Sobrien * spew.c (end_input): No longer static. 608690075Sobrien * cp-tree.h: Declare it. 608790075Sobrien * parse.y (datadef): Add "error END_OF_SAVED_INPUT" expansion. 608852284Sobrien 608990075Sobrien2001-10-02 Joseph S. Myers <jsm28@cam.ac.uk> 609052284Sobrien 609190075Sobrien * call.c (build_over_call), typeck.c (build_function_call_real): 609290075Sobrien Pass type attributes to check_function_format rather than name or 609390075Sobrien assembler name. Don't require there to be a name or assembler 609490075Sobrien name to check formats. 609552284Sobrien 609690075Sobrien2001-10-02 Joseph S. Myers <jsm28@cam.ac.uk> 609752284Sobrien 609890075Sobrien * decl.c (init_decl_processing): Don't call 609990075Sobrien init_function_format_info. Initialize lang_attribute_table 610090075Sobrien earlier. 610190075Sobrien (builtin_function): Call decl_attributes. 610290075Sobrien (insert_default_attributes): New. 610352284Sobrien 610490075Sobrien2001-10-01 Jason Merrill <jason_merrill@redhat.com> 610552284Sobrien 610690075Sobrien * decl.c (grokdeclarator): Copy array typedef handling from C 610790075Sobrien frontend. 610852284Sobrien 610990075Sobrien * decl.c (grokdeclarator): Copy too-large array handling from C 611090075Sobrien frontend. 611152284Sobrien 611290075Sobrien2001-09-29 Alexandre Oliva <aoliva@redhat.com> 611352284Sobrien 611490075Sobrien * config-lang.in (target_libs): Added target-gperf, so that we 611590075Sobrien don't try to build it if C++ is disabled. 611652284Sobrien 611790075Sobrien2001-09-23 Zack Weinberg <zack@codesourcery.com> 611852284Sobrien 611990075Sobrien * Make-lang.in (CXX_OBJS): Take out cp/errfn.o. 612090075Sobrien (cp/errfn.o): Delete rule. 612190075Sobrien (cp/error.o): Depend on flags.h. 612290075Sobrien * errfn.c: Delete file. 612390075Sobrien * cp-tree.h: Declare warn_deprecated. Remove definitions of 612490075Sobrien TFF_NAMESPACE_SCOPE, TFF_CLASS_SCOPE, TFF_CHASE_NAMESPACE_ALIAS, 612590075Sobrien and TFF_TEMPLATE_DEFAULT_ARGUMENTS. #define cp_error, cp_warning, 612690075Sobrien cp_pedwarn, and cp_compiler_error to error, warning, pedwarn, and 612790075Sobrien internal_error respectively. Make cp_deprecated into a macro. 612890075Sobrien Don't define cp_printer typedef or declare cp_printers. 612990075Sobrien * error.c: Include flags.h. 613090075Sobrien Delete: struct tree_formatting_info, print_function_argument_list, 613190075Sobrien print_declaration, print_expression, print_function_declaration, 613290075Sobrien print_function_parameter, print_type_id, print_cv_qualifier_seq, 613390075Sobrien print_type_specifier_seq, print_simple_type_specifier, 613490075Sobrien print_elaborated_type_specifier, print_rest_of_abstract_declarator, 613590075Sobrien print_parameter_declaration_clause, print_exception_specification, 613690075Sobrien print_nested_name_specifier, and definition of cp_printers. 613790075Sobrien (locate_error): New function. 613890075Sobrien (cp_error_at, cp_warning_at, cp_pedwarn_at): Moved here and 613990075Sobrien rewritten in terms of locate_error and diagnostic.c. 614090075Sobrien (cp_tree_printer): Rename cp_printer; wire up to *_to_string 614190075Sobrien instead of deleted print_* routines. Handle %C, %L, %O, %Q also. 614290075Sobrien (init_error): Adjust to match. 614352284Sobrien 614490075SobrienSat Sep 22 09:15:31 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 614552284Sobrien 614690075Sobrien * Make-lang.in (CXX_C_OBJS): Add attribs.o. 614752284Sobrien 614890075Sobrien2001-09-21 Richard Henderson <rth@redhat.com> 614952284Sobrien 615090075Sobrien * class.c (set_vindex): Mind TARGET_VTABLE_USES_DESCRIPTORS. 615190075Sobrien (build_vtbl_initializer): Likewise. 615290075Sobrien (build_vfn_ref): New. 615390075Sobrien * cp-tree.h: Declare it. 615490075Sobrien * call.c (build_over_call): Use it. 615590075Sobrien * decl2.c (mark_vtable_entries): Mark FDESC_EXPR. 615690075Sobrien * typeck.c (get_member_function_from_ptrfunc): Mind descriptors. 615752284Sobrien 615890075SobrienFri Sep 21 08:16:19 2001 J"orn Rennecke <amylaar@redhat.com> 615952284Sobrien 616090075Sobrien * decl.c (grokdeclarator): Use C syntax for attr_flags declaration. 616152284Sobrien 616290075Sobrien2001-09-21 Joseph S. Myers <jsm28@cam.ac.uk> 616352284Sobrien 616490075Sobrien Table-driven attributes. 616590075Sobrien * decl.c: Rename DECL_MACHINE_ATTRIBUTES to DECL_ATTRIBUTES. 616690075Sobrien * decl2.c (cplus_decl_attributes): Only take one attributes 616790075Sobrien parameter. 616890075Sobrien * cp-tree.c (cplus_decl_attributes): Update prototype. 616990075Sobrien * class.c (finish_struct), decl.c (start_decl, start_function), 617090075Sobrien decl2.c (grokfield), friend.c (do_friend), parse.y 617190075Sobrien (parse_bitfield): Update calls to cplus_decl_attributes. 617290075Sobrien * decl.c (grokdeclarator): Take a pointer to a single ordinary 617390075Sobrien attribute list. 617490075Sobrien * decl.h (grokdeclarator): Update prototype. 617590075Sobrien * decl2.c (grokfield): Take a single ordinary attribute list. 617690075Sobrien * friend.c (do_friend): Likewise. 617790075Sobrien * decl.c (shadow_tag, groktypename, start_decl, 617890075Sobrien start_handler_parms, grokdeclarator, grokparms, start_function, 617990075Sobrien start_method), decl2.c (grokfield, grokbitfield, grokoptypename), 618090075Sobrien parse.y (parse_field, parse_bitfield, component_decl_1), pt.c 618190075Sobrien (process_template_parm, do_decl_instantiation): Pass single 618290075Sobrien ordinary attribute lists around. 618390075Sobrien * decl.c (grokdeclarator): Correct handling of nested attributes. 618490075Sobrien Revert the patch 618590075Sobrien 1998-10-18 Jason Merrill <jason@yorick.cygnus.com> 618690075Sobrien * decl.c (grokdeclarator): Embedded attrs bind to the right, 618790075Sobrien not the left. 618890075Sobrien . 618990075Sobrien * cp-tree.h (cp_valid_lang_attribute): Remove declaration 619090075Sobrien (cp_attribute_table): Declare. 619190075Sobrien * decl.c (valid_lang_attribute): Don't define. 619290075Sobrien (lang_attribute_table): Define. 619390075Sobrien (init_decl_processing): Initialize lang_attribute_table instead of 619490075Sobrien valid_lang_attribute. 619590075Sobrien * tree.c (cp_valid_lang_attribute): Remove. 619690075Sobrien (handle_java_interface_attribute, handle_com_interface_attribute, 619790075Sobrien handle_init_priority_attribute): New functions. 619890075Sobrien (cp_attribute_table): New array. 619990075Sobrien * decl2.c (import_export_class): Don't use 620090075Sobrien targetm.valid_type_attribute. 620152284Sobrien 620290075Sobrien2001-09-15 Gabriel Dos Reis <gdr@merlin.codesourcery.com> 620352284Sobrien 620496263Sobrien * Make-lang.in (cp/error.o): Depend on real.h 620596263Sobrien * error.c: #include "real.h" 620652284Sobrien 620790075Sobrien2001-09-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 620852284Sobrien 620990075Sobrien * mangle.c (mangle_conv_op_name_for_type): Use concat in lieu of 621090075Sobrien xmalloc/strcpy/strcat. 621152284Sobrien 621290075Sobrien2001-09-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 621352284Sobrien 621490075Sobrien * decl.c (warn_extern_redeclared_static, cp_make_fname_decl): 621590075Sobrien Const-ification. 621690075Sobrien * pt.c (tsubst_decl): Likewise. 621752284Sobrien 621890075Sobrien2001-09-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 621952284Sobrien 622090075Sobrien * decl2.c (lang_f_options): Const-ification. 622190075Sobrien * lex.c (cplus_tree_code_name): Likewise. 622290075Sobrien * spew.c (yyerror): Likewise. 622352284Sobrien 622490075Sobrien2001-09-06 Nathan Sidwell <nathan@codesourcery.com> 622552284Sobrien 622690075Sobrien PR c++/3986 622790075Sobrien * class.c (force_canonical_binfo_r): Check & move an indirect 622890075Sobrien primary base first. 622990075Sobrien (force_canonical_binfo): Check that it's not already 623090075Sobrien canonical. 623190075Sobrien (mark_primary_virtual_base): Remove BINFO parameter. 623290075Sobrien (mark_primary_bases): Adjust, set BINFO_LOST_PRIMARY_P here. 623352284Sobrien 623490075Sobrien2001-09-06 Nathan Sidwell <nathan@codesourcery.com> 623552284Sobrien 623690075Sobrien Remove TYPE_NONCOPIED_PARTS. 623790075Sobrien * cp-tree.h (CLASSTYPE_INLINE_FRIENDS): Map onto 623890075Sobrien CLASSTYPE_PURE_VIRTUALS. 623990075Sobrien (TYPE_RAISES_EXCEPTIONS): Map onto TYPE_BINFO. 624090075Sobrien * class.c (duplicate_tag_error): Remove TYPE_NONCOPIED_PARTS. 624190075Sobrien (layout_class_type): Don't call fixup_inline_methods here ... 624290075Sobrien (finish_struct_1): ... call it here. 624352284Sobrien 624490075Sobrien2001-09-04 Mark Mitchell <mark@codesourcery.com> 624552284Sobrien 624690075Sobrien * decl.c (duplicate_decls): Remove code deadling with 624790075Sobrien DECL_SAVED_INSNS. 624890075Sobrien * decl2.c (finish_file): Likewise. 624990075Sobrien * pt.c (instantiate_decl): Likewise. 625090075Sobrien * semantics.c (expand_body): Don't defer local functions if 625190075Sobrien they wouldn't be deferred for some other reason. Don't 625290075Sobrien generate RTL for functions that will not be emitted. 625390075Sobrien (genrtl_start_function): Remove code deadling with 625490075Sobrien DECL_SAVED_INSNS. 625590075Sobrien (genrtl_finish_function): Likewise. 625652284Sobrien 625790075Sobrien2001-09-04 Nathan Sidwell <nathan@codesourcery.com> 625852284Sobrien 625990075Sobrien PR c++/4203 626090075Sobrien * call.c (build_over_call): Do not optimize any empty base 626190075Sobrien construction. 626252284Sobrien 626390075Sobrien2001-08-31 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 626452284Sobrien 626590075Sobrien * error.c (dump_template_decl): Output template parameters 626690075Sobrien together with their specifiers. 626790075Sobrien Output `class' prefix for template template parameter. 626890075Sobrien (dump_decl): Fix formatting. 626952284Sobrien 627090075Sobrien2001-08-30 Kurt Garloff <garloff@suse.de> 627152284Sobrien 627290075Sobrien * optimize.c (inlinable_function_p): Allow only smaller single 627390075Sobrien functions. Halve inline limit after reaching recursive limit. 627452284Sobrien 627590075Sobrien2001-08-30 Joern Rennecke <amylaar@redhat.com> 627690075Sobrien Jason Merrill <jason_merrill@redhat.com> 627752284Sobrien 627890075Sobrien * class.c (build_vtable_entry_ref): Subtract in char*, not 627990075Sobrien ptrdiff_t. 628052284Sobrien 628190075Sobrien2001-08-23 Jason Merrill <jason_merrill@redhat.com> 628252284Sobrien 628390075Sobrien * tree.c (cp_build_qualified_type_real): Use get_qualified_type. 628490075Sobrien (build_cplus_array_type): Use cp_build_qualified_type, not 628590075Sobrien TYPE_MAIN_VARIANT, to get an unqualified version. 628652284Sobrien 628790075Sobrien * decl2.c (grok_alignof): Lose. 628890075Sobrien (build_expr_from_tree): Use expr_sizeof and c_alignof_expr. 628990075Sobrien * typeck.c (c_alignof): Lose. 629090075Sobrien * semantics.c (finish_sizeof, finish_alignof): New. 629190075Sobrien * parse.y: Use them. 629290075Sobrien * cp-tree.h: Declare them. 629352284Sobrien 629490075Sobrien2001-08-22 Jason Merrill <jason_merrill@redhat.com> 629552284Sobrien 629690075Sobrien * pt.c (tsubst_expr): Hand off to the TREE_CHAIN of a statement. 629790075Sobrien Don't loop in COMPOUND_STMT, FOR_STMT or TRY_BLOCK. 629890075Sobrien * tree.c (cp_statement_code_p): A TAG_DEFN is a statement. 629952284Sobrien 630090075Sobrien2001-08-19 Jakub Jelinek <jakub@redhat.com> 630152284Sobrien 630290075Sobrien * typeck2.c (add_exception_specifier): Only require complete type if 630390075Sobrien not in processing template declaration. 630452284Sobrien 630590075Sobrien2001-08-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 630652284Sobrien 630790075Sobrien * decl.c: Cast argument to size_t, not HOST_WIDE_INT, in calls to 630890075Sobrien GNU_xref_start_scope and GNU_xref_end_scope. 630952284Sobrien 631090075Sobrien * tree.c (TYPE_HASH): Moved to ../tree.h. 631152284Sobrien 631290075Sobrien2001-08-16 Mark Mitchell <mark@codesourcery.com> 631352284Sobrien 631490075Sobrien * cvt.c (convert_to_void): Preserve TREE_SIDE_EFFECTS 631590075Sobrien on COMPOUND_EXPRs. 631652284Sobrien 631790075Sobrien2001-08-14 Richard Henderson <rth@redhat.com> 631852284Sobrien 631990075Sobrien * class.c, cp-tree.h (build_vfn_ref): Remove. 632090075Sobrien * call.c, rtti.c: Replace all refernces with build_vtbl_ref. 632152284Sobrien 632290075Sobrien2001-08-13 Mark Mitchell <mark@codesourcery.com> 632352284Sobrien 632490075Sobrien * call.c (build_over_call): Mark COMPOUND_EXPRs generated for 632590075Sobrien empty class assignment as having side-effects to avoid 632690075Sobrien spurious warnings. 632752284Sobrien 632890075Sobrien2001-08-13 Zack Weinberg <zackw@panix.com> 632952284Sobrien 633090075Sobrien * Make-lang.in (cp/except.o): Add libfuncs.h to dependencies. 633190075Sobrien * except.c: Include libfuncs.h. 633252284Sobrien 633390075Sobrien2001-08-11 Gabriel Dos Reis <gdr@merlin.codesourcery.com> 633452284Sobrien 633590075Sobrien * decl.c (grokdeclarator): Clarify diagnostic message. 633652284Sobrien 633790075Sobrien2001-08-13 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 633852284Sobrien 633990075Sobrien * decl2.c (do_nonmember_using_decl): Replace using directive 634090075Sobrien with using declaration in the error message. 634152284Sobrien 634290075Sobrien2001-08-11 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 634352284Sobrien 634490075Sobrien * pt.c (maybe_fold_nontype_arg): Use TREE_TYPE of ARG as the 634590075Sobrien criterion to avoid rebuilding expression tree instead of 634690075Sobrien processing_template_decl. 634752284Sobrien 634890075Sobrien2001-08-07 Jason Merrill <jason_merrill@redhat.com> 634952284Sobrien 635090075Sobrien Support named return value optimization for inlines, too. 635190075Sobrien * decl.c (finish_function): Nullify returns here. 635290075Sobrien * semantics.c (genrtl_start_function): Not here. 635390075Sobrien (cp_expand_stmt): Don't mess with CLEANUP_STMTs. 635490075Sobrien (nullify_returns_r): No longer static. Just clear RETURN_EXPR. 635590075Sobrien Also nullify the CLEANUP_STMT for the nrv. 635690075Sobrien * cp-tree.h: Declare it. 635790075Sobrien * optimize.c (declare_return_variable): Replace the nrv with the 635890075Sobrien return variable. 635990075Sobrien * typeck.c (check_return_expr): Be more flexible on alignment check. 636090075Sobrien Ignore cv-quals when checking for a matching type. 636152284Sobrien 636290075Sobrien2001-08-09 Richard Henderson <rth@redhat.com> 636352284Sobrien 636490075Sobrien * decl2.c (finish_objects): Use target hooks instead of 636590075Sobrien assemble_constructor and assemble_destructor. 636652284Sobrien 636790075Sobrien2001-08-08 John David Anglin <dave@hiauly1.hia.nrc.ca> 636852284Sobrien 636990075Sobrien * g++spec.c (lang_specific_driver): Quote argument after `-Xlinker'. 637052284Sobrien 637190075Sobrien2001-08-07 Nathan Sidwell <nathan@codesourcery.com> 637252284Sobrien 637390075Sobrien PR c++/3820 637490075Sobrien Stop using TYPE_NONCOPIED_PARTS. 637590075Sobrien * call.c (build_over_call): Be careful when copy constructing 637690075Sobrien or assigning to an empty class. 637790075Sobrien * class.c (check_bases_and_members): It has a 637890075Sobrien COMPLEX_ASSIGN_REF if it has a vptr. 637990075Sobrien (layout_class_type): Don't add empty class padding to 638090075Sobrien TYPE_NONCOPIED_PARTS. 638190075Sobrien (finish_struct_1): Don't add the VFIELD either. 638290075Sobrien * cp-tree.h (TYPE_HAS_TRIVIAL_INIT_REF): Mention _copy_ 638390075Sobrien initialization. 638452284Sobrien 638590075Sobrien2001-08-07 Jason Merrill <jason_merrill@redhat.com> 638652284Sobrien 638790075Sobrien * tree.c (walk_tree): Walk siblings even if !walk_subtrees. 638852284Sobrien 638990075Sobrien2001-08-06 Richard Henderson <rth@redhat.com> 639052284Sobrien 639190075Sobrien * decl2.c (finish_objects): Pass a symbol_ref and priority to 639290075Sobrien assemble_{constructor,destructor}. Remove priority handling. 639352284Sobrien 639490075Sobrien2001-08-05 Gabriel Dos Reis <gdr@merlin.codesourcery.com> 639552284Sobrien 639690075Sobrien Don't allow template-id in using-declaration. 639790075Sobrien * decl2.c (validate_nonmember_using_decl): Handle template-ids. 639890075Sobrien (do_class_using_decl): Likewise. 639952284Sobrien 640090075Sobrien2001-08-04 Neil Booth <neil@cat.daikokuya.demon.co.uk> 640152284Sobrien 640290075Sobrien * cp/spew.c (read_token): No need to pop buffers. 640352284Sobrien 640490075Sobrien2001-08-02 Stan Shebs <shebs@apple.com> 640552284Sobrien 640690075Sobrien * cp-tree.h (FNADDR_FROM_VTABLE_ENTRY): Remove, no longer used. 640790075Sobrien (fnaddr_from_vtable_entry): Remove decl. 640890075Sobrien * method.c (use_thunk): Update comment. 640952284Sobrien 641090075Sobrien2001-08-01 Andrew Cagney <ac131313@redhat.com> 641152284Sobrien 641290075Sobrien * repo.c (get_base_filename): Change return value to const char 641390075Sobrien pointer. 641452284Sobrien 641590075Sobrien2001-08-02 Nathan Sidwell <nathan@codesourcery.com> 641652284Sobrien 641790075Sobrien Kill -fhonor-std. 641890075Sobrien * NEWS: Document. 641990075Sobrien * cp-tree.h (flag_honor_std): Remove. 642090075Sobrien (CPTI_FAKE_STD): Remove. 642190075Sobrien (std_node): Remove comment about it being NULL. 642290075Sobrien (fake_std_node): Remove. 642390075Sobrien * decl.c (in_fake_std): Remove. 642490075Sobrien (walk_namespaces_r): Remove fake_std_node check. 642590075Sobrien (push_namespace): Remove in_fake_std code. 642690075Sobrien (pop_namespace): Likewise. 642790075Sobrien (lookup_name_real): Remove fake_std_node check. 642890075Sobrien (init_decl_processing): Always create std_node. Always add 642990075Sobrien std:: things there. 643090075Sobrien (builtin_function): Always put non '_' fns in std. 643190075Sobrien * decl2.c (flag_honor_std): Remove. 643290075Sobrien (lang_f_options): Remove honor-std. 643390075Sobrien (unsupported_options): Add honor-std. 643490075Sobrien (set_decl_namespace): Remove fake_std_node check. 643590075Sobrien (validate_nonmember_using_decl): Likewise. 643690075Sobrien (do_using_directive): Likewise. 643790075Sobrien (handle_class_head): Likewise. 643890075Sobrien * dump.c (cp_dump_tree): Likewise. 643990075Sobrien * except.c (init_exception_processing): Adjust. 644090075Sobrien * init.c (build_member_call): Remove fake_std_node check. 644190075Sobrien (build_offset_ref): Likewise. 644290075Sobrien * lang-options.h: Remove -fhonor-std, -fno-honor-std. 644390075Sobrien * rtti.c (init_rtti_processing): Adjust. 644452284Sobrien 644590075Sobrien2001-07-31 Alexandre Petit-Bianco <apbianco@redhat.com> 644652284Sobrien 644790075Sobrien * tree.c (cp_tree_equal): WITH_CLEANUP_EXPR node to use its second 644890075Sobrien operand while calling cp_tree_equal. 644952284Sobrien 645090075Sobrien2001-07-31 Nathan Sidwell <nathan@codesourcery.com> 645152284Sobrien 645290075Sobrien The 3.0 ABI no longer has vbase pointer fields. 645390075Sobrien * cp-tree.h (VBASE_NAME, VBASE_NAME_FORMAT, VBASE_NAME_P, 645490075Sobrien FORMAT_VBASE_NAME): Remove. 645590075Sobrien * method.c (do_build_copy_constructor): Adjust. 645690075Sobrien (do_build_assign_ref): Adjust. 645790075Sobrien * search.c (lookup_field_r): Adjust. 645890075Sobrien * typeck.c (build_component_ref): Adjust. 645952284Sobrien 646090075Sobrien The 3.0 ABI always has a vtable pointer at the start of every 646190075Sobrien polymorphic class. 646290075Sobrien * rtti.c (build_headof_sub): Remove. 646390075Sobrien (build_headof): Adjust. 646490075Sobrien (get_tinfo_decl_dynamic): No need to check flag_rtti 646590075Sobrien here. Adjust. 646690075Sobrien (create_real_tinfo_var): Explain why we need a hidden name. 646752284Sobrien 646890075Sobrien2001-07-31 Nathan Sidwell <nathan@codesourcery.com> 646952284Sobrien 647090075Sobrien PR c++/3631 647190075Sobrien * class.c (update_vtable_entry_for_fn): The fixed adjustment 647290075Sobrien of a virtual thunk should be from declaring base. 647352284Sobrien 647490075Sobrien2001-07-31 Nathan Sidwell <nathan@codesourcery.com> 647552284Sobrien 647690075Sobrien * class.c (dfs_ctor_vtable_bases_queue_p): Always walk into 647790075Sobrien the shared virtual base, so preserving inheritance graph order. 647848743Sobrien 647990075Sobrien2001-07-30 Andreas Jaeger <aj@suse.de> 648048743Sobrien 648190075Sobrien * decl2.c: Remove unused var global_temp_name_counter. 648248743Sobrien 648390075Sobrien2001-07-28 Richard Henderson <rth@redhat.com> 648452284Sobrien 648590075Sobrien * method.c (pending_inlines): Remove. 648652284Sobrien 648790075Sobrien2001-07-27 Nathan Sidwell <nathan@codesourcery.com> 648852284Sobrien 648990075Sobrien * class.c (mark_primary_virtual_base): Don't adjust base 649090075Sobrien offsets here. 649190075Sobrien (dfs_unshared_virtual_bases): Adjust them here. 649290075Sobrien (mark_primary_bases): Explain why we adjust at the end. 649352284Sobrien 649490075Sobrien2001-07-27 Nathan Sidwell <nathan@codesourcery.com> 649552284Sobrien 649690075Sobrien * class.c (finish_struct_1): When copying the primary base's 649790075Sobrien VFIELD, make sure we find it is at offset zero. 649852284Sobrien 649990075Sobrien2001-07-26 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 650052284Sobrien 650190075Sobrien * pt.c (tsubst_template_parms): Call maybe_fold_nontype_arg and 650290075Sobrien tsubst_expr for default template arguments. 650352284Sobrien 650490075Sobrien2001-07-26 Nathan Sidwell <nathan@codesourcery.com> 650552284Sobrien 650690075Sobrien PR c++/3621 650790075Sobrien * spew.c (yylex): Only copy the token's lineno, if it is 6508117395Skan nonzero. 650952284Sobrien 651090075Sobrien2001-07-26 Nathan Sidwell <nathan@codesourcery.com> 651152284Sobrien 651290075Sobrien PR c++/3624 651390075Sobrien * call.c (resolve_args): Simplify, call 651490075Sobrien convert_from_reference. 651590075Sobrien (build_new_op): Resolve and convert from reference ARG1 651690075Sobrien earlier. Adjust ARG2 & ARG3 resolve and conversion. 651752284Sobrien 651890075Sobrien2001-07-26 Nathan Sidwell <nathan@codesourcery.com> 651952284Sobrien 652090075Sobrien * decl.c (last_function_parm_tags): Remove. 652190075Sobrien (current_function_parm_tags): Remove. 652290075Sobrien (init_decl_processing): Adjust. 652390075Sobrien (start_function): Adjust. 652490075Sobrien (store_parm_decls): Adjust. 652552284Sobrien 652690075Sobrien PR c++/3152 652790075Sobrien * decl.c (grokdeclarator): Detect when a function typedef is 652890075Sobrien declaring a function, and create last_function_parms correctly. 652952284Sobrien 653090075Sobrien2001-07-25 Jason Merrill <jason_merrill@redhat.com> 653152284Sobrien 653290075Sobrien * call.c (joust): Only prefer a non-builtin candidate to a builtin 653390075Sobrien one if they have the same signature. 653452284Sobrien 653590075Sobrien * cvt.c (build_up_reference): Take DECL parm. Check TREE_STATIC on 653690075Sobrien it rather than toplevel_bindings_p. Give it a mangled name if static. 653790075Sobrien (convert_to_reference): Adjust. 653890075Sobrien * decl2.c (get_temp_name): Lose. 653990075Sobrien * mangle.c (mangle_ref_init_variable): New fn. 654090075Sobrien (mangle_guard_variable): Strip the ref-init header. 654190075Sobrien * cp-tree.h: Adjust. 654290075Sobrien * decl.c (cp_finish_decl): Add the DECL_STMT after processing the 654390075Sobrien initializer. 654490075Sobrien (grok_reference_init): Always use DECL_INITIAL. 654552284Sobrien 654690075Sobrien2001-07-25 Nathan Sidwell <nathan@codesourcery.com> 654752284Sobrien 654890075Sobrien PR c++/3416 654990075Sobrien * call.c (build_conditional_expr): Recheck args after 655090075Sobrien conversions. 655190075Sobrien * cp-tree.h (build_conditional_expr): Move to correct file. 655290075Sobrien * typeck.c (decay_conversion): Diagnose any unknown types 655390075Sobrien reaching here. 655490075Sobrien (build_binary_op): Don't do initial decay or default 655590075Sobrien conversions on overloaded functions. 655690075Sobrien (build_static_cast): Don't do a decay conversion here. 655752284Sobrien 655890075Sobrien2001-07-25 Nathan Sidwell <nathan@codesourcery.com> 655952284Sobrien 656090075Sobrien PR c++/3543 656190075Sobrien * typeck.c (condition_conversion): Resolve an OFFSET_REF. 656290075Sobrien * expr.c (cplus_expand_expr): An OFFSET_REF should never get here. 656352284Sobrien 656490075Sobrien2001-07-25 Nathan Sidwell <nathan@codesourcery.com> 656552284Sobrien 656690075Sobrien * class.c (build_vtbl_or_vbase_field): Remove, move into ... 656790075Sobrien (create_vtbl_ptr): ... here. 656852284Sobrien 656990075Sobrien2001-07-25 Nathan Sidwell <nathan@codesourcery.com> 657052284Sobrien 657190075Sobrien * class.c (build_vbase_offset_vbtl_entries): Look for 657290075Sobrien non-primary base of which we are a sub vtable. 657352284Sobrien 657490075Sobrien2001-07-24 Phil Edwards <pme@sources.redhat.com> 657552284Sobrien 657690075Sobrien * semantics.c (finish_this_expr): Remove unused code. 657752284Sobrien 657890075Sobrien2001-07-24 Nathan Sidwell <nathan@codesourcery.com> 657952284Sobrien 658090075Sobrien Simplify rtti, now we've only one ABI. 658190075Sobrien * cp-tree.h (cp_tree_index): Remove CPTI_TINFO_DECL_ID, 658290075Sobrien CPTI_TINFO_VAR_ID. 658390075Sobrien (tinfo_decl_id, tinfo_var_id): Remove. 658490075Sobrien (get_typeid_1): Remove. 658590075Sobrien * rtti.c 658690075Sobrien (init_rtti_processing): Remove tinfo_decl_id & tinfo_var_id. 658790075Sobrien (typeid_ok_p): New function. 658890075Sobrien (build_type_id): Call typeid_ok_p. Don't call tinfo_from_decl. 658990075Sobrien (get_tinfo_decl): Remove old abi documentation. 659090075Sobrien (tinfo_from_decl): Remove. 659190075Sobrien (get_type_id): Call typeid_ok_p. Absorb get_typeid_1. 659290075Sobrien (get_typeid_1): Remove. 659390075Sobrien (get_base_offset): Remove. 659490075Sobrien (synthesize_tinfo_var): Absorb get_base_offset. 659590075Sobrien (create_real_tinfo_var): Don't use tinfo_decl_id. 659652284Sobrien 659790075Sobrien2001-07-23 Graham Stott <grahams@redhat.com> 659852284Sobrien 6599117395Skan * cp/class.c (type_requires_array_cookie): Fix use of uninitialized 660090075Sobrien variable has_two_argument_delete_p. 660152284Sobrien 660290075Sobrien2001-07-21 Nathan Sidwell <nathan@codesourcery.com> 660352284Sobrien 660490075Sobrien Remove flag_vtable_thunk. It is always on for the 3.0 ABI. 660590075Sobrien * cp-tree.h (CPTI_DELTA2_IDENTIFIER): Remove. 660690075Sobrien (CPTI_INDEX_IDENTIFIER): Remove. 660790075Sobrien (CPT_PFN_OR_DELTA2_IDENTIFIER): Remove. 660890075Sobrien (delta2_identifier): Remove. 660990075Sobrien (index_identifier): Remove. 661090075Sobrien (pfn_or_delta2_identifier): Remove. 661190075Sobrien (flag_vtable_thunks): Remove. 661290075Sobrien (VTABLE_DELTA2_NAME): Remove. 661390075Sobrien (VTABLE_INDEX_NAME): Remove. 661490075Sobrien (FNADDR_FROM_VTABLE_ENTRY): Adjust. 661590075Sobrien (vfunc_ptr_type_node): Adjust. 661690075Sobrien (VTABLE_NAME_PREFIX): Adjust. 661790075Sobrien (build_vfn_ref): Lose first parameter. 661890075Sobrien (fixup_all_virtual_upcast_offsets): Remove. 661990075Sobrien * decl.c (initialize_predefined_identifiers): Remove 662090075Sobrien delta2_identifier, index_identifier, pfn_or_delta2_identifier. 662190075Sobrien (init_decl_processing): Remove no-vtable-thunk code. 662290075Sobrien * decl2.c (flag_vtable_thunks): Remove. 662390075Sobrien (mark_vtable_entries): Remove no-vtable-thunk code. 662490075Sobrien * error.c (dump_decl): Remove no-vtable-thunk code. 662590075Sobrien (dump_expr): Adjust ptr to member function code. 662690075Sobrien * init.c (initialize_vtable_ptrs): Remove no-vtable-thunk 662790075Sobrien code. 662890075Sobrien * rtti.c (build_headof): Remove no-vtable-thunk code. 662990075Sobrien (get_tinfo_decl_dynamic): Adjust build_vfn_ref call. 663090075Sobrien * search.c (get_base_distance): Remove expand_upcast_fixups case. 663190075Sobrien (virtual_context) Remove. 663290075Sobrien (expand_upcast_fixups): Remove. 663390075Sobrien (fixup_virtual_upcast_offsets): Remove. 663490075Sobrien (fixup_all_virtual_upcast_offsets): Remove. 663590075Sobrien * typeck.c (get_member_function_from_ptrfunc): Remove 663690075Sobrien no-vtable-thunk code. 663790075Sobrien * call.c (build_over_call): Adjust call to build_vfn_ref. 663890075Sobrien * class.c (build_vfn_ref): Lose first parameter. Remove 663990075Sobrien no-vtable-thunk code. 664090075Sobrien (build_rtti_vtbl_entries): Remove no-vtable-thunk code. 664190075Sobrien (build_vtable_entry): Remove no-vtable-thunk code. 664252284Sobrien 664390075Sobrien2001-07-20 Nathan Sidwell <nathan@codesourcery.com> 664452284Sobrien 664590075Sobrien Remove old-abi remnants. Remove comments about old abi 6646117395Skan behavior. Remove references to 'new-abi' in comments. 664790075Sobrien * cp-tree.h: Adjust comments. 664890075Sobrien (vbase_offsets_in_vtable_p): Delete. 664990075Sobrien (vcall_offsets_in_vtable_p): Delete. 665090075Sobrien (vptrs_present_everywhere_p): Delete. 665190075Sobrien (all_overridden_vfuns_in_vtables_p): Delete. 665290075Sobrien (merge_primary_and_secondary_vtables_p): Delete. 665390075Sobrien (TYPE_CONTAINS_VPTR_P): Adjust. 665490075Sobrien (VTT_NAME_PREFIX): Remove. 665590075Sobrien (CTOR_VTBL_NAME_PREFIX): Remove. 665690075Sobrien (init_vbase_pointers): Remove. 665790075Sobrien * class.c: Adjust coments. 665890075Sobrien (build_vbase_pointer_fields): Delete. 665990075Sobrien (build_vbase_pointer): Remove old-abi code. 666090075Sobrien (build_secondary_vtable): Likewise. 666190075Sobrien (modify_all_vtables): Likewise. 666290075Sobrien (create_vtable_ptr): Likewise. 666390075Sobrien (layout_class_type): Likewise. 666490075Sobrien (finish_struct_1): Likewise. 666590075Sobrien (finish_vtbls): Likewise. 666690075Sobrien (dfs_finish_vtbls): Delete. 666790075Sobrien (build_vbase_offset_vtbl_entries): Remove old-abi code. 666890075Sobrien * cvt.c: Adjust comments. 666990075Sobrien * decl.c: Adjust comments. 667090075Sobrien * decl2.c: Adjust comments. 667190075Sobrien * init.c: Adjust comments. 667290075Sobrien (construct_virtual_bases): Remove old-abi code. 667390075Sobrien * lang-specs.h: Remove -fno-new-abi. 667490075Sobrien * mangle.c: Adjust comments. 667590075Sobrien * rtti.c: Adjust comments. 667690075Sobrien (get_base_offset): Remove old-abi-code. 667790075Sobrien * search.c: Adjust comments. 667890075Sobrien (dfs_init_vbase_pointers): Remove. 667990075Sobrien (dfs_vtable_path_unmark): Remove. 668090075Sobrien (init_vbase_pointers): Remove. 668190075Sobrien * semantics.c: Adjust comments. 668290075Sobrien (emit_associated_thunks): Remove old-abi code. 668390075Sobrien * typeck.c: Adjust comments. 668452284Sobrien 668590075Sobrien2001-07-20 Daniel Berlin <dan@cgsoftware.com> 668652284Sobrien 668790075Sobrien * Make-lang.in (cp/optimize.o): Depend on $(PARAMS_H), not 668890075Sobrien params.h. 668952284Sobrien 669090075Sobrien2001-07-19 Mark Mitchell <mark@codesourcery.com> 669152284Sobrien 669290075Sobrien * class.c (finish_struct_anon): Forbid nested classes. 669352284Sobrien 669490075Sobrien2001-07-19 Neil Booth <neil@daikokuya.demon.co.uk> 669552284Sobrien 669690075Sobrien * decl2.c: Don't include dwarfout.h and dwarf2out.h. 669790075Sobrien * optimize.c: Include debug.h. 669890075Sobrien (maybe_clone_body): Use debug hook. 669990075Sobrien * semantics.c: Include debug.h. 670090075Sobrien (expand_body): Use debug hook. 670152284Sobrien 670290075Sobrien2001-07-19 Neil Booth <neil@daikokuya.demon.co.uk> 670352284Sobrien 670490075Sobrien * spew.c (read_token, yyerror): Remove CPP_INT, CPP_FLOAT cases. 670552284Sobrien 670690075Sobrien2001-07-18 Mark Mitchell <mark@codesourcery.com> 670752284Sobrien 670890075Sobrien * class.c (type_requires_array_cookie): New function. 670990075Sobrien (check_methods): Don't try to figure out whether the type needs a 671090075Sobrien cookie here. 671190075Sobrien (check_bases_and_members): Set TYPE_VEC_NEW_USES_COOKIE here. 671290075Sobrien * cp-tree.h (TYPE_VEC_DELETE_TAKES_SIZE): Remove. 671390075Sobrien (TYPE_VEC_NEW_USES_COOKIE): Reimplement. 671490075Sobrien * pt.c (instantiate_class_template): Don't set 671590075Sobrien TYPE_VEC_DELETE_TAKES_SIZE. 671690075Sobrien * NEWS: Document ABI changes from GCC 3.0. 671752284Sobrien 671890075Sobrien2001-07-18 Xavier Delacour <xavier@fmaudio.net>, 671990075Sobrien Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> 672052284Sobrien 672190075Sobrien * NEWS (Changes in GCC 3.0): Fix typo. 672252284Sobrien 672390075Sobrien2001-07-13 Joseph S. Myers <jsm28@cam.ac.uk> 672452284Sobrien 672590075Sobrien * decl2.c (cplus_decl_attributes): Take a pointer to the node to 672690075Sobrien which attributes are to be attached, and a flags argument. Update 672790075Sobrien call to decl_attributes. 672890075Sobrien (grokfield): Update call to decl_attributes. 672990075Sobrien * class.c (finish_struct): Update call to cplus_decl_attributes. 673090075Sobrien * cp-tree.h (cplus_decl_attributes): Update prototype. 673190075Sobrien * decl.c (start_decl, grokdeclarator, start_function): Update 673290075Sobrien calls to decl_attributes and cplus_decl_attributes. 673390075Sobrien * friend.c (do_friend): Update call to cplus_decl_attributes. 673490075Sobrien * parse.y (parse_bitfield): Update call to cplus_decl_attributes. 673552284Sobrien 673690075Sobrien2001-07-12 Mark Mitchell <mark@codesourcery.com> 673752284Sobrien 673890075Sobrien * decl.c (make_rtl_for_nonlocal_decl): Set DECL_C_HARD_REGISTER 673990075Sobrien for `register' variables with an asm-specification. 674052284Sobrien 674190075Sobrien2001-07-11 Mark Mitchell <mark@codesourcery.com> 674252284Sobrien 674390075Sobrien * semantics.c (finish_asm_stmt): Mark the output operands 674490075Sobrien to an asm addressable, if necessary. 674552284Sobrien 674690075Sobrien2001-07-11 Ben Elliston <bje@redhat.com> 674748743Sobrien 674890075Sobrien * Revert this change -- there is a subtle bug. 674918334Speter 675090075Sobrien PR c++/80 675190075Sobrien * decl.c (finish_enum): New "attributes" argument; pass it to 675290075Sobrien cplus_decl_attributes. Use a narrower type if the enum is packed. 675390075Sobrien * cp-tree.h (finish_enum): Adjust prototype. 675490075Sobrien * parse.y (enum_head): New non-terminal. 675590075Sobrien (structsp): Use it. Enums now may be preceded or followed by 675690075Sobrien optional attributes -- pass their chained tree to finish_enum(). 675790075Sobrien * pt.c (tsubst_enum): Pass NULL_TREE for the new argument. 675818334Speter 675990075Sobrien2001-07-10 Mark Mitchell <mark@codesourcery.com> 676052284Sobrien 676190075Sobrien * pt.c (tsubst_decl): Set DECL_CONTEXT for namespace-scope 676290075Sobrien variables. 676352284Sobrien 676490075Sobrien2001-07-10 Jason Merrill <jason_merrill@redhat.com> 676552284Sobrien 676690075Sobrien * semantics.c (cp_expand_stmt): Fix for null 676790075Sobrien current_function_return_value. 676852284Sobrien 676990075Sobrien2001-07-10 Jan van Male <jan.vanmale@fenk.wau.nl> 677052284Sobrien 677190075Sobrien * call.c (build_op_delete_call): Initialize fn. 677290075Sobrien (convert_like_real): Delete conditional. 677390075Sobrien (joust): Initialize *w and *l. 677490075Sobrien * class.c: Add prototype for binfo_ctor_vtable. 677590075Sobrien (get_primary_binfo): Initialize result. 677690075Sobrien * init.c (build_java_class_ref): Initialize name. 677752284Sobrien 677890075Sobrien2001-07-09 Erik Rozendaal <dlr@acm.org> 677952284Sobrien 678090075Sobrien * typeck.c (unary_complex_lvalue): Do not duplicate the 678190075Sobrien argument to modify, pre-, or post-increment when used as an 678290075Sobrien lvalue and when the argument has side-effects. 678352284Sobrien 678490075Sobrien2001-07-08 Joseph S. Myers <jsm28@cam.ac.uk> 678552284Sobrien 678690075Sobrien * decl.c (start_decl): Don't call SET_DEFAULT_DECL_ATTRIBUTES. 678790075Sobrien (start_function): Don't call SET_DEFAULT_DECL_ATTRIBUTES. Call 678890075Sobrien cplus_decl_attributes even if attrs is NULL. 678990075Sobrien * friend.c (do_friend): Don't call SET_DEFAULT_DECL_ATTRIBUTES. 679052284Sobrien 679190075Sobrien2001-07-08 Joseph S. Myers <jsm28@cam.ac.uk> 679252284Sobrien 679390075Sobrien * decl.c (grokdeclarator), decl2.c (cplus_decl_attributes): Update 679490075Sobrien calls to decl_attributes. 679552284Sobrien 679690075Sobrien2001-07-06 Ira Ruben <ira@apple.com> 679752284Sobrien 679890075Sobrien * cp-tree.def (TEMPLATE_DECL): Update comment. DECL_RESULT should 679990075Sobrien be DECL_TEMPLATE_RESULT. 680052284Sobrien 680190075Sobrien2001-07-05 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 680252284Sobrien 680390075Sobrien * cp-tree.h (copy_template_template_parm): Rename to ... 680490075Sobrien (bind_template_template_parm): ... here. 680590075Sobrien * tree.c (copy_template_template_parm): Rename to ... 680690075Sobrien (bind_template_template_parm): ... here. Remove the case when 680790075Sobrien NEWARGS is NULL_TREE. 680890075Sobrien (copy_tree_r): Don't copy TEMPLATE_TEMPLATE_PARM and 680990075Sobrien BOUND_TEMPLATE_TEMPLATE_PARM. 681090075Sobrien * pt.c (lookup_template_class): Adjust. 681152284Sobrien 681290075Sobrien2001-07-05 Jason Merrill <jason_merrill@redhat.com> 681352284Sobrien 681490075Sobrien * cvt.c (convert_lvalue): New fn. 681590075Sobrien * cp-tree.h: Declare it. 681690075Sobrien * method.c (do_build_assign_ref): Use it. 681790075Sobrien (do_build_copy_constructor): Convert parm to base types 681890075Sobrien before calling base constructors. 681952284Sobrien 682090075Sobrien * typeck.c (check_return_expr): Check DECL_ALIGN instead of 682190075Sobrien DECL_USER_ALIGN. Check flag_elide_constructors instead of 682290075Sobrien optimize. 682390075Sobrien * semantics.c (cp_expand_stmt): Don't destroy the named return value. 682452284Sobrien 682590075Sobrien2001-07-02 Nathan Sidwell <nathan@codesourcery.com> 682652284Sobrien 682790075Sobrien * optimize.c (optimize_inline_calls): New function, broken out 682890075Sobrien of ... 682990075Sobrien (optimize_function): ... here. Call it. Don't inline if it is 683090075Sobrien a thunk. 683190075Sobrien (dump_function): Print name of dump flag causing this dump. 683290075Sobrien * semantics.c (expand_body): Move thunk inline check to 683390075Sobrien optimize_function. 683452284Sobrien 683590075Sobrien2001-06-29 Joseph S. Myers <jsm28@cam.ac.uk> 683652284Sobrien 683790075Sobrien * typeck.c (COMP_TYPE_ATTRIBUTES): Don't define. 683890075Sobrien (comptypes): Use target.comp_type_attributes. 683952284Sobrien 684090075Sobrien2001-06-29 Nathan Sidwell <nathan@codesourcery.com> 684152284Sobrien 684290075Sobrien * cp-tree.h (flag_dump_class_layout): Remove unneeded declaration. 684352284Sobrien 684490075Sobrien2001-06-28 Gabriel Dos Reis <gdr@merlin.codesourcery.com> 684552284Sobrien 684690075Sobrien * error.c (lang_print_error_function): Add a `diagnostic_context *' 684790075Sobrien parameter. Tweak. 684852284Sobrien 684990075Sobrien2001-06-27 Neil Booth <neil@cat.daikokuya.demon.co.uk> 685052284Sobrien 685190075Sobrien * decl2.c (import_export_class): Update. 685252284Sobrien 685390075Sobrien2001-06-26 Gabriel Dos Reis <gdr@codesourcery.com> 685452284Sobrien 685590075Sobrien * error.c (init_error): Adjust settings. 685652284Sobrien 685790075Sobrien2001-06-26 Gabriel Dos Reis <gdr@codesourcery.com> 685852284Sobrien 685990075Sobrien * error.c (init_error): Adjust settings. 686052284Sobrien 686190075Sobrien2001-06-19 Richard Sandiford <rsandifo@redhat.com> 686252284Sobrien 686390075Sobrien * except.c (initialize_handler_parm): Expect __cxa_begin_catch to 686490075Sobrien return pointers to data members by reference rather than by value. 686552284Sobrien 686690075Sobrien2001-06-18 Jason Merrill <jason_merrill@redhat.com> 686752284Sobrien 686890075Sobrien Implement the Named Return Value optimization. 686990075Sobrien * cp-tree.h (struct cp_language_function): Add x_return_value. 687090075Sobrien (current_function_return_value): Now a macro. 687190075Sobrien * decl.c: Don't define it. 687290075Sobrien (define_label, finish_case_label): Don't clear it. 687390075Sobrien (init_decl_processing): Don't register it with GC. 687490075Sobrien * semantics.c (genrtl_finish_function): Don't check it for 687590075Sobrien no_return_label. Copy the RTL from the return value to 687690075Sobrien current_function_return_value and walk, calling... 687790075Sobrien (nullify_returns_r): ...this new fn. 687890075Sobrien * typeck.c (check_return_expr): Set current_function_return_value. 687952284Sobrien 688090075Sobrien2001-06-15 Jason Merrill <jason_merrill@redhat.com> 688152284Sobrien 688290075Sobrien * class.c (dfs_accumulate_vtbl_inits): Just point to the base we're 688390075Sobrien sharing a ctor vtable with. Merge code for cases 1 and 2. 688490075Sobrien (binfo_ctor_vtable): New fn. 688590075Sobrien (build_vtt_inits, dfs_build_secondary_vptr_vtt_inits): Use it. 688652284Sobrien 688790075Sobrien2001-06-14 Jason Merrill <jason_merrill@redhat.com> 688852284Sobrien 688990075Sobrien * class.c (dfs_find_final_overrider): Fix logic. 689052284Sobrien 689190075Sobrien * class.c (update_vtable_entry_for_fn): Uncomment optimization to use 689290075Sobrien virtual thunk instead of non-virtual. 689390075Sobrien (get_matching_virtual): Uncomment. 689452284Sobrien 689590075Sobrien * pt.c (unify): Don't recurse between the POINTER_TYPE and the 689690075Sobrien OFFSET_TYPE. If we're adding cv-quals, the extra ones would be on 689790075Sobrien PARM, not ARG. 689852284Sobrien 689990075Sobrien2001-06-14 Nathan Sidwell <nathan@codesourcery.com> 690052284Sobrien 690190075Sobrien * class.c (dfs_accumulate_vtbl_inits): For case 2 & 3, make sure 690290075Sobrien we've not emerged from the hierarchy of RTTI_BINFO on reaching 690390075Sobrien a non-virtual base. 690452284Sobrien 690590075Sobrien2001-06-13 Mark Mitchell <mark@codesourcery.com> 690652284Sobrien 690790075Sobrien * NEWS: Update release number. 690852284Sobrien 690990075Sobrien2001-06-12 Nathan Sidwell <nathan@codesourcery.com> 691052284Sobrien 691190075Sobrien PR c++/3130, c++/3131, c++/3132 691290075Sobrien * cp-tree.h (BINFO_UNSHARED_MARKED): New #define. 691390075Sobrien * class.c (force_canonical_binfo_r): Move 691490075Sobrien BINFO_UNSHARED_MARKED, BINFO_LOST_PRIMARY_P. Don't move 691590075Sobrien virtual bases unless they're primary and what they're primary 691690075Sobrien too has been moved. 691790075Sobrien (dfs_unshared_virtual_bases): Use BINFO_UNSHARED_MARKED. Cope 691890075Sobrien with morally virtual bases. Duplicate BINFO_LOST_PRIMARY_P and 691990075Sobrien BINFO_PRIMARY_BASE_OF. Clear BINFO_VTABLE for all but the most 692090075Sobrien derived binfo. 692190075Sobrien (mark_primary_bases): Use BINFO_UNSHARED_MARKED. 692290075Sobrien (layout_nonempty_base_or_field): Add most derived type 692390075Sobrien parameter. Adjust. 692490075Sobrien (layout_empty_base): Likewise. 692590075Sobrien (build_base_field): Likewise. 692690075Sobrien (build_base_fields): Likewise. 692790075Sobrien (propagate_binfo_offsets): Add most derived type 692890075Sobrien parameter. Skip non canonical virtual bases too. 692990075Sobrien (dfs_set_offset_for_unshared_vbases): Don't skip primary 693090075Sobrien bases. Do skip canonical bases. 693190075Sobrien (layout_virtual_bases): Adjust. 693290075Sobrien (layout_class_type): Adjust. 693390075Sobrien (dfs_get_primary_binfo): Build list of virtual primary base 693490075Sobrien candidates. 693590075Sobrien (get_primary_binfo): Check that the shared virtual primary 693690075Sobrien base candidate was found first. 693790075Sobrien (accumulate_vtbl_inits): Don't do anything for non-vptr 693890075Sobrien containing binfos. For case 1 primary virtual bases, keep 693990075Sobrien checking that we've not emerged from the hierarchy of RTTI_BINFO. 694052284Sobrien 694190075Sobrien2001-06-12 Nathan Sidwell <nathan@codesourcery.com> 694252284Sobrien 694390075Sobrien PR c++/3089 694490075Sobrien * class.c (dfs_accumulate_vtbl_inits): Always walk down the 694590075Sobrien hierarchy looking for primary bases for a ctor 694690075Sobrien vtable. Recursively call oneself, if we meet our primary via 694790075Sobrien this route and haven't met it yet via inheritance graph order. 694852284Sobrien 694990075Sobrien2001-06-11 Mark Mitchell <mark@codesourcery.com> 695052284Sobrien 695190075Sobrien * lang-options.h: Emit documentation for -fno-honor-std, not 695290075Sobrien -fhonor-std. 695352284Sobrien 695490075Sobrien2001-06-10 Alexandre Oliva <aoliva@redhat.com> 695552284Sobrien 695690075Sobrien * typeck.c (get_member_function_from_ptrfunc) [vbit_in_delta]: 695790075Sobrien Don't clobber delta. 695890075Sobrien (expand_ptrmemfunc_cst) [ptrmemfunc_vbit_in_delta]: Adjust pfn. 695952284Sobrien 696090075Sobrien2001-06-10 Mark Mitchell <mark@codesourcery.com> 696190075Sobrien Gabriel Dos Reis <gdr@codesourcery.com> 696252284Sobrien 696390075Sobrien * Make-lang.in (cp/call.o): Depend on diagnostic.h 696490075Sobrien (cp/typeck.o): Depend on diagnostic.h 696590075Sobrien (cp/typeck2.o): Depend on diagnostic.h 696690075Sobrien (cp/repo.o): Depend on dignostic.h 696790075Sobrien * typeck.c: #include diagnostic.h 696890075Sobrien (convert_for_initialization): Remove extern declaration for 696990075Sobrien warningcount and errorcount. 697052284Sobrien 697190075Sobrien * call.c: #include diagnostic.h 697290075Sobrien (convert_like_real): Remove extern declaration for warnincount and 697390075Sobrien errorcount. 697452284Sobrien 697590075Sobrien * repo.c: #include diagnostic.h 697690075Sobrien * typeck2.c: #include diagnostic.h 697752284Sobrien 697890075Sobrien2001-06-08 Nathan Sidwell <nathan@codesourcery.com> 697952284Sobrien 698090075Sobrien * decl.c (duplicate_decls): Fix DECL_TEMPLATE_RESULT thinko 698190075Sobrien in previous change. 698252284Sobrien 698390075Sobrien2001-06-08 Nathan Sidwell <nathan@codesourcery.com> 698452284Sobrien 698590075Sobrien PR c++/2929 698690075Sobrien * friend.c (do_friend): Use push_decl_namespace for classes at 698790075Sobrien namespace scope. 698852284Sobrien 698990075Sobrien2001-06-08 Nathan Sidwell <nathan@codesourcery.com> 699090075Sobrien Jason Merrill <jason_merrill@redhat.com> 699152284Sobrien 699290075Sobrien PR c++/3061 699390075Sobrien * class.c (build_secondary_vtable): Use assert, rather than an error 699490075Sobrien message. 699590075Sobrien (dfs_fixup_binfo_vtbls): BINFO_VTABLE might be NULL. 699690075Sobrien (dfs_accumulate_vtbl_inits): A lost primary virtual base may 699790075Sobrien be between ORIG_BINFO and RTTI_BINFO, but neither of them. 699890075Sobrien Don't set BINFO_VTABLE for a primary virtual base. 699952284Sobrien 700090075Sobrien2001-06-07 Mark Mitchell <mark@codesourcery.com> 700152284Sobrien 700290075Sobrien * decl.c (duplicate_decls): Update source position information 700390075Sobrien when a template function is defined. 700452284Sobrien 700590075Sobrien2001-06-07 Phil Edwards <pme@sources.redhat.com> 700652284Sobrien 700790075Sobrien * lang-specs.h: Move -D_GNU_SOURCE to config/linux.h. 700852284Sobrien 700990075Sobrien2001-06-07 Nathan Sidwell <nathan@codesourcery.com> 701052284Sobrien 701190075Sobrien PR c++/2914 701290075Sobrien * decl.c (pushtag): Don't push into a complete type's scope. 701352284Sobrien 701490075Sobrien2001-06-06 Jason Merrill <jason_merrill@redhat.com> 701552284Sobrien 701690075Sobrien * cp-tree.h (THUNK_GENERATE_WITH_VTABLE_P): Lose. 701790075Sobrien (struct lang_decl_flags): Lose generate_with_vtable_p. 701890075Sobrien (BV_GENERATE_THUNK_WITH_VTABLE_P): Lose. 701990075Sobrien * class.c (copy_virtuals): Adjust. 702090075Sobrien * decl2.c (mark_vtable_entries): Adjust. 702190075Sobrien * method.c (make_thunk, build_vtable_entry): Adjust. 702290075Sobrien * class.c (update_vtable_entry_for_fn): Only look as far as the 702390075Sobrien first defining class. 702490075Sobrien (build_vtbl_initializer): Put nothing in the slot for a function only 702590075Sobrien defined in a lost primary virtual base. 702690075Sobrien (add_vcall_offset_vtbl_entries_1): Use the same code for 702790075Sobrien the lost primary case and the normal case. 702890075Sobrien (dfs_unshared_virtual_bases): Don't lose a non-virtual primary base. 702990075Sobrien (get_vfield_offset, get_derived_offset): Lose. 703090075Sobrien (dfs_find_final_overrider): Use look_for_overrides_here. 703190075Sobrien (get_matching_virtual): New fn. 703290075Sobrien * semantics.c (emit_associated_thunks): Check BV_USE_VCALL_INDEX_P, 703390075Sobrien not BV_VCALL_INDEX. 703490075Sobrien * search.c (look_for_overrides_here): Split out from... 703590075Sobrien (look_for_overrides_r): Here. 703652284Sobrien 703790075Sobrien * class.c (find_final_overrider): Return error_mark_node on error. 703852284Sobrien 703990075Sobrien * decl2.c (key_method): #if 0 accidental change. 704052284Sobrien 704190075Sobrien2001-06-06 John David Anglin <dave@hiauly1.hia.nrc.ca> 704252284Sobrien 704390075Sobrien * call.c (convert_default_arg): Use INTEGRAL_TYPE_P. 704490075Sobrien (build_over_call): Likewise. 704590075Sobrien * decl.c (grokparms): Likewise. 704690075Sobrien * pt.c (tsubst_decl): Likewise. 704790075Sobrien * typeck.c (convert_arguments): Likewise. 704852284Sobrien 704990075Sobrien2001-06-05 Mark Mitchell <mark@codesourcery.com> 705052284Sobrien 705190075Sobrien * semantics.c (begin_class_definition): Robustify. 705252284Sobrien 705390075Sobrien * pt.c (instantiate_decl): Tell the repository code about the 705490075Sobrien clones, not the cloned functions. 705590075Sobrien * repo.c (repo_template_used): Explicitly instantiate the cloned 705690075Sobrien function, not the clones. 705752284Sobrien 705890075Sobrien2001-06-05 Nathan Sidwell <nathan@codesourcery.com> 705952284Sobrien 706090075Sobrien * call.c (build_user_type_conversion_1): Set ICS_USER_FLAG and 706190075Sobrien ICS_BAD_FLAG on created conversion. 706290075Sobrien (compare_ics): Break out rank. 706352284Sobrien 706490075Sobrien2001-06-05 Nathan Sidwell <nathan@codesourcery.com> 706552284Sobrien 706690075Sobrien * decl.c (xref_tag): Remove extraneous %s on dependent name 706790075Sobrien lookup warning. 706852284Sobrien 706990075Sobrien2001-06-05 Nathan Sidwell <nathan@codesourcery.com> 707052284Sobrien 707190075Sobrien * class.c (layout_vtable_decl): Fix off by one error on 707290075Sobrien build_index_type. 707390075Sobrien (build_vtt): Likewise. 707490075Sobrien (build_ctor_vtbl_group): Likewise. 707552284Sobrien 707690075Sobrien2001-06-05 Nathan Sidwell <nathan@codesourcery.com> 707752284Sobrien 707890075Sobrien * class.c (maybe_indent_hierarchy): New function. 707990075Sobrien (dump_class_hierarchy_r): Add flags. Dump extra binfo 708090075Sobrien information, if enabled. Use maybe_indent_hierarchy. Adjust 708190075Sobrien output format. 708290075Sobrien (dump_class_hierarchy): Adjust prototype. Adjust output format. 708390075Sobrien (dump_array, dump_vtable, dump_vtt): New functions. 708490075Sobrien (finish_struct_1): Adjust hierarchy dumping. 708590075Sobrien (initialize_vtable): Call dump_vtable. 708690075Sobrien (build_vtt): Call dump_vtt. 708790075Sobrien (build_ctor_vtbl_group): Call dump_vtable. 708890075Sobrien * decl2.c (flag_dump_class_layout): Remove. 708990075Sobrien (cxx_decode_option): Remove dump translation unit 709090075Sobrien and dump class hierarchy check. Call dump_switch_p. 709190075Sobrien (finish_file): Adjust dumping. 709290075Sobrien (dump.c): Only dump base classes if not TDF_SLIM. 709390075Sobrien Only dump namespace members if not TDF_SLIM. 709490075Sobrien * optimize.c (dump_function): New function. 709590075Sobrien (optimize_function): Call dump_function. 709690075Sobrien * semantics.c (expand_body): Use dump_enabled_p. 709752284Sobrien 709890075Sobrien2001-06-01 Nathan Sidwell <nathan@codesourcery.com> 709952284Sobrien 710090075Sobrien PR g++/2936 710190075Sobrien Part missed from first commit 710290075Sobrien * decl2.c (finish_anon_union): Copy context. 710352284Sobrien 710490075Sobrien2001-05-30 Nathan Sidwell <nathan@codesourcery.com> 710552284Sobrien 710690075Sobrien PR g++/2936 710790075Sobrien * optimize.c (remap_decl): Remap anonymous aggregate members too. 710852284Sobrien 710990075Sobrien2001-05-26 Nathan Sidwell <nathan@codesourcery.com> 711052284Sobrien 711190075Sobrien PR g++/2823 711290075Sobrien * semantics.c (expand_body): Don't optimize thunks. 711352284Sobrien 711490075Sobrien2001-05-25 Sam TH <sam@uchicago.edu> 711552284Sobrien 711690075Sobrien * cp-tree.h lex.h: Fix header include guards. 711752284Sobrien 711890075Sobrien2001-05-25 Mark Mitchell <mark@codesourcery.com> 711952284Sobrien 712090075Sobrien * decl.c (init_decl_processing): Tweak. 712152284Sobrien 712290075Sobrien2001-05-24 Mark Mitchell <mark@codesourcery.com> 712352284Sobrien 712490075Sobrien * decl.c (duplicate_decls): Tidy. 712590075Sobrien (init_decl_processing): Always set flag_no_builtin. 712652284Sobrien 712790075Sobrien2001-05-24 Nathan Sidwell <nathan@codesourcery.com> 712852284Sobrien 712990075Sobrien PR c++/2184 713090075Sobrien * decl2.c (do_local_using_decl): Push the decls, even in a 713190075Sobrien template. 713252284Sobrien 713390075Sobrien2001-05-22 Mark Mitchell <mark@codesourcery.com> 713452284Sobrien 713590075Sobrien * optimize.c (initialize_inlined_parameters): Don't set 713690075Sobrien TREE_READONLY for a VAR_DECL taking the place of an inlined 713790075Sobrien PARM_DECL. 713852284Sobrien 713990075Sobrien2001-05-22 Jason Merrill <jason_merrill@redhat.com> 714052284Sobrien 714190075Sobrien * class.c, cp-tree.h, rtti.c: Remove com_interface attribute support. 714290075Sobrien * tree.c (cp_valid_lang_attribute): Warn about use of com_interface 714390075Sobrien attribute. 714452284Sobrien 714590075Sobrien2001-05-22 Joseph S. Myers <jsm28@cam.ac.uk> 714652284Sobrien 714790075Sobrien * parse.y: Refer to compound literals as such, not as 714890075Sobrien constructor-expressions. 714952284Sobrien 715090075Sobrien2001-05-21 Mark Mitchell <mark@codesourcery.com> 715152284Sobrien 715290075Sobrien * call.c (build_op_delete_call): Ignore exception-specifications 715390075Sobrien when looking for matching delete operators. 715490075Sobrien * init.c (build_new_1): Compute whether or not the allocation 715590075Sobrien function used is a placement allocation function or not, and 715690075Sobrien communicate this information to build_op_delete_call. 715752284Sobrien 715890075Sobrien2001-05-21 Jason Merrill <jason_merrill@redhat.com> 715952284Sobrien 716090075Sobrien * class.c (build_vtable_entry_ref): Lose vtbl parm. Fix for new abi. 716190075Sobrien (build_vtbl_ref): Adjust. 716290075Sobrien (dfs_accumulate_vtbl_inits): Set TREE_CONSTANT on the vtable address. 716390075Sobrien * decl2.c (lang_f_options): Remove huge-objects, vtable-thunks. 716490075Sobrien Re-add vtable-gc. 716590075Sobrien (unsupported_options): Correspondingly. 716652284Sobrien 716790075Sobrien * decl2.c (maybe_make_one_only): Check flag_weak, not 716890075Sobrien supports_one_only(). 716952284Sobrien 717090075Sobrien * cp-tree.def (START_CATCH_STMT): Lose. 717190075Sobrien * dump.c (cp_dump_tree): Don't dump it. Do dump HANDLER_PARMS. 717290075Sobrien * tree.c (cp_statement_code_p): Don't case it. 717390075Sobrien * semantics.c (cp_expand_stmt): Likewise. 717490075Sobrien * cp-tree.h (START_CATCH_TYPE): Lose. 717590075Sobrien (HANDLER_TYPE): New. 717690075Sobrien * except.c (expand_start_catch_block): Don't start any blocks. 717790075Sobrien Return the type. 717890075Sobrien (expand_end_catch_block): Don't end any blocks. 717990075Sobrien * parse.y (handler): Don't pass anything from finish_handler_parms 718090075Sobrien to finish_handler. 718190075Sobrien * pt.c (tsubst_expr): Likewise. 718290075Sobrien * semantics.c (begin_handler): Call note_level_for_catch here. 718390075Sobrien (finish_handler_parms): Don't return anything. 718490075Sobrien (genrtl_catch_block, begin_catch_block): Lose. 718590075Sobrien (genrtl_handler): Call expand_start_catch here. 718652284Sobrien 718790075Sobrien2001-05-18 Jason Merrill <jason_merrill@redhat.com> 718852284Sobrien 718990075Sobrien * class.c (build_vtable): Set DECL_ASSEMBLER_NAME for vtables here. 719090075Sobrien (get_vtable_decl, build_vtt): Not here. 719152284Sobrien 719290075Sobrien2001-05-20 Nathan Sidwell <nathan@codesourcery.com> 719352284Sobrien 719490075Sobrien PR c++/2781 719590075Sobrien * optimize.c (update_cloned_parm): Copy addressability and other 719690075Sobrien flags. 719752284Sobrien 719890075Sobrien2001-05-20 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 719952284Sobrien 720090075Sobrien * pt.c (determine_specialization): Ignore artificial functions. 720152284Sobrien 720290075Sobrien2001-05-20 Neil Booth <neil@daikokuya.demon.co.uk> 720352284Sobrien 720490075Sobrien * cp-tree.h (struct lang_identifier, C_RID_YYCODE): Update. 720590075Sobrien (C_RID_CODE): Remove. 720690075Sobrien * lex.c (cxx_init_options): Call set_identifier_size. Update. 720790075Sobrien (init_parse): Don't do it here. 720852284Sobrien 720990075Sobrien2001-05-18 Diego Novillo <dnovillo@redhat.com> 721052284Sobrien 721190075Sobrien * decl2.c (finish_objects): Use the original SYMBOL_REF from the 721290075Sobrien function declaration to avoid stripping the symbol's attributes. 721352284Sobrien 721490075Sobrien2001-05-18 Nathan Sidwell <nathan@codesourcery.com> 721552284Sobrien 721690075Sobrien * decl.c (pushdecl): Adjust error string. 721790075Sobrien (xref_tag): Adjust friend class injection warning. Remove the 721890075Sobrien inherited name from the class shadowed scope. 721952284Sobrien 722090075Sobrien2001-05-17 Mark Mitchell <mark@codesourcery.com> 722152284Sobrien 722290075Sobrien * except.c (cp_protect_cleanup_actions): New function. 722390075Sobrien (init_exception_processing): Don't set protect_cleanup_actions 722490075Sobrien here. Do set lang_protect_cleanup_actions. 722552284Sobrien 722690075Sobrien2001-05-16 Nathan Sidwell <nathan@codesourcery.com> 722752284Sobrien 722890075Sobrien * spew.c (read_token): Call yyerror on all unexpected tokens. 722952284Sobrien 723090075Sobrien2001-05-16 Nathan Sidwell <nathan@codesourcery.com> 723152284Sobrien 723290075Sobrien * init.c (member_init_ok_or_else): Take a tree rather than 723390075Sobrien string for name. 723490075Sobrien (expand_member_init): Adjust. 723552284Sobrien 723690075Sobrien2001-05-14 Nick Clifton <nickc@cambridge.redhat.com> 723752284Sobrien 723890075Sobrien * decl.c (duplicate_decls): Suppress warning about duplicate 723990075Sobrien decls if the first decl is a friend. 724052284Sobrien 724190075Sobrien2001-05-12 Zack Weinberg <zackw@stanford.edu> 724252284Sobrien 724390075Sobrien * except.c (choose_personality_routine): Export. Add 724490075Sobrien explanatory comment. Take an enum languages, not a boolean. 724590075Sobrien (initialize_handler_parm): Adjust to match. 724690075Sobrien * cp-tree.h: Prototype choose_personality_routine. 724790075Sobrien * lex.c (handle_pragma_java_exceptions): New function. 724890075Sobrien (init_cp_pragma): Register #pragma GCC java_exceptions. 724952284Sobrien 725090075Sobrien2001-05-12 Neil Booth <neil@cat.daikokuya.demon.co.uk> 725152284Sobrien 725290075Sobrien * method.c (build_mangled_C99_name): Remove unused prototype. 725352284Sobrien 725490075Sobrien2001-05-12 Alexandre Oliva <aoliva@redhat.com> 725552284Sobrien 725690075Sobrien * cp-tree.h (ptrmemfunc_vbit_where_t): Declare type. 725790075Sobrien * typeck.c (get_member_function_from_ptrfunc, 725890075Sobrien build_ptrmemfunc, expand_ptrmemfunc_cst): Take 725990075Sobrien TARGET_PTRMEMFUNC_VBIT_LOCATION into account. 726052284Sobrien 726190075Sobrien Reverted Geoff Keating's 2001-05-03's patch. 726252284Sobrien 726390075Sobrien2001-05-11 Ira Ruben <ira@apple.com> 726452284Sobrien 726590075Sobrien * cp/cp-tree.h (C_EXP_ORIGINAL_CODE): Delete; declared in c-common.h. 726652284Sobrien 726790075Sobrien2001-05-11 Neil Booth <neil@daikokuya.demon.co.uk> 726852284Sobrien 726990075Sobrien * cp-tree.h (finish_label_expr, lookup_label): Delete. 727090075Sobrien * parse.y: Update for '&&'; don't issue warning here. 727190075Sobrien * semantics.c (finish_label_expr): Delete. 727252284Sobrien 727390075Sobrien2001-05-07 Mark Mitchell <mark@codesourcery.com> 727452284Sobrien 727590075Sobrien * splay-tree.h (splay_tree_max): New function. 727690075Sobrien (splay_tree_min): Likewise. 727752284Sobrien 727890075Sobrien2001-05-03 Geoffrey Keating <geoffk@redhat.com> 727952284Sobrien 728090075Sobrien * cp-tree.h (enum cp_tree_index): Add CPTI_PFN_VFLAG_IDENTIFIER. 728190075Sobrien (pfn_vflag_identifier): Define. 728290075Sobrien Update comment about layout of pointer functions. 728390075Sobrien (build_ptrmemfunc1): Update prototype. 728490075Sobrien (expand_ptrmemfunc_cst): Update prototype. 728590075Sobrien * decl.c (initialize_predefined_identifiers): Initialize 728690075Sobrien pfn_vflag_identifier. 728790075Sobrien (build_ptrmemfunc_type): When FUNCTION_BOUNDARY < 16, add 728890075Sobrien an extra field to the type. 728990075Sobrien * expr.c (cplus_expand_constant): Pass 'flag' between 729090075Sobrien expand_ptrmemfunc_cst and build_ptrmemfunc1. 729190075Sobrien * typeck.c (get_member_function_from_ptrfunc): When 729290075Sobrien FUNCTION_BOUNDARY < 16, look at additional field to determine 729390075Sobrien if a pointer-to-member is a real pointer or a vtable offset. 729490075Sobrien (build_ptrmemfunc1): Add new parameter to contain extra field. 729590075Sobrien (build_ptrmemfunc): Pass the extra field around. 729690075Sobrien (expand_ptrmemfunc_cst): Add new parameter to return extra field. 729790075Sobrien (pfn_from_ptrmemfunc): Ignore the extra field. 729852284Sobrien 729990075Sobrien2001-05-03 Mark Mitchell <mark@codesourcery.com> 730052284Sobrien 730190075Sobrien * cp-tree.h (flag_inline_trees): Update documentation. 730290075Sobrien * decl.c (init_decl_processing): Adjust handling of 730390075Sobrien flag_inline_functions and flag_inline_trees to support -O3. 730490075Sobrien (grokfndecl): Set DECL_INLINE on all functions if that's what 730590075Sobrien the user requested. 730690075Sobrien (save_function_data): Clear DECL_INLINE in 730790075Sobrien current_function_cannot_inline is non-NULL. 730890075Sobrien * decl2.c (flag_inline_trees): Update documentation. 730952284Sobrien 731090075Sobrien2001-05-03 Nathan Sidwell <nathan@codesourcery.com> 731152284Sobrien 731290075Sobrien * dump.c (cp_dump_tree, USING_STMT case): New case. 731390075Sobrien * tree.c (cp_statement_code_p): Add USING_STMT. 731490075Sobrien * decl2.c (do_using_directive): Add the using directive statement. 731552284Sobrien 731690075Sobrien * tree.c (walk_tree): Reformat an if block. 731752284Sobrien 731890075Sobrien2001-05-02 Mark Mitchell <mark@codesourcery.com> 731952284Sobrien 732090075Sobrien * decl.c (compute_array_index_type): Don't try to do anything with 732190075Sobrien the indices when processing a template. 732252284Sobrien 732390075Sobrien2001-05-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 732452284Sobrien 732590075Sobrien * call.c: NULL_PTR -> NULL. 732690075Sobrien * class.c: Likewise. 732790075Sobrien * cvt.c: Likewise. 732890075Sobrien * decl.c: Likewise. 732990075Sobrien * decl2.c: Likewise. 733090075Sobrien * except.c: Likewise. 733190075Sobrien * init.c: Likewise. 733290075Sobrien * rtti.c: Likewise. 733390075Sobrien * search.c: Likewise. 733490075Sobrien * tree.c: Likewise. 733590075Sobrien * typeck.c: Likewise. 733690075Sobrien * typeck2.c: Likewise. 733752284Sobrien 733890075Sobrien2001-05-02 Mark Mitchell <mark@codesourcery.com> 733952284Sobrien 734090075Sobrien * decl2.c (do_using_directive): Revert previous patch. 734152284Sobrien 734290075Sobrien2001-05-01 Nathan Sidwell <nathan@codesourcery.com> 734352284Sobrien 734490075Sobrien * cp-tree.def (USING_STMT): New statement node. 734590075Sobrien * cp-tree.h (USING_STMT_NAMESPACE): New macro. 734690075Sobrien * decl2.c (do_using_directive): Add USING_STMT to statement 734790075Sobrien tree. Don't emit errors when processing template decl. 734890075Sobrien * pt.c (tsubst_expr, USING_STMT case): New case. 734990075Sobrien * semantics.c (cp_expand_stmt, USING_STMT case): New case. 735052284Sobrien 735190075Sobrien2001-05-01 Nathan Sidwell <nathan@codesourcery.com> 735252284Sobrien 735390075Sobrien * call.c (build_new_op): Convert args from reference here. 735490075Sobrien (build_conditional_expr): Don't convert here. 735552284Sobrien 735690075Sobrien2001-05-01 Nathan Sidwell <nathan@codesourcery.com> 735752284Sobrien 735890075Sobrien * spew.c (last_token_id): New static variable. 735990075Sobrien (read_token): Set it here. 736090075Sobrien (yyerror): Use it here. 736152284Sobrien 736290075Sobrien2001-04-30 Richard Henderson <rth@redhat.com> 736352284Sobrien 736490075Sobrien * cvt.c: Downcase C_PROMOTING_INTEGER_TYPE_P invocations. 736590075Sobrien * decl.c: Likewise. 736652284Sobrien 736790075Sobrien2001-04-30 Mark Mitchell <mark@codesourcery.com> 736852284Sobrien 736990075Sobrien * gxxint.texi: Remove. 737090075Sobrien * Make-lang.in: Remove all traces of gxxint.texi. 737152284Sobrien 737290075SobrienMon Apr 30 16:14:10 2001 Mark P Mitchell <mark@codesourcery.com> 737352284Sobrien 737490075Sobrien * decl2.c (start_static_initialization_or_destruction): Correct 737590075Sobrien logic to handle the -fno-use-cxa-atexit case. 737652284Sobrien 737790075Sobrien2001-04-30 Mark Mitchell <mark@codesourcery.com> 737852284Sobrien 737990075Sobrien * optimize.c (update_cloned_parm): New function. 738090075Sobrien (maybe_clone_body): Use it. Update the `this' parameter too. 738152284Sobrien 738290075Sobrien2001-04-29 Joseph S. Myers <jsm28@cam.ac.uk> 738352284Sobrien 738490075Sobrien * decl2.c (unsupported_options): Add new-abi. 738590075Sobrien * lang-options.h: Remove no longer supported options. 738652284Sobrien 738790075Sobrien2001-04-27 Nathan Sidwell <nathan@codesourcery.com> 738852284Sobrien 738990075Sobrien * except.c (can_convert_eh): Don't check template parms, 739090075Sobrien typename types etc. 739152284Sobrien 739290075Sobrien2001-04-27 Nathan Sidwell <nathan@codesourcery.com> 739352284Sobrien 739490075Sobrien * optimize.c (maybe_clone_body): Copy parameter names and locations. 739552284Sobrien 739690075Sobrien2001-04-27 Nathan Sidwell <nathan@codesourcery.com> 739752284Sobrien 739890075Sobrien * cp-tree.h (adjust_clone_args): Prototype new function. 739990075Sobrien * class.c (adjust_clone_args): New function. 740090075Sobrien * decl.c (start_function): Call it for in charge ctors. 740152284Sobrien 740290075Sobrien2001-04-26 Mark Mitchell <mark@codesourcery.com> 740352284Sobrien 740490075Sobrien * method.c (use_thunk): Make sure that thunks really are emitted 740590075Sobrien when requested. 740652284Sobrien 740790075Sobrien2001-04-26 Nathan Sidwell <nathan@codesourcery.com> 740852284Sobrien 740990075Sobrien * mangle.c (write_chars): New macro. 741090075Sobrien (hwint_to_ascii): New function 741190075Sobrien (write_number): Use it. 741290075Sobrien (write_integer_cst): Deal with really big numbers. 741352284Sobrien 741490075Sobrien2001-04-25 Mark Mitchell <mark@codesourcery.com> 741552284Sobrien 741690075Sobrien * optimize.c (maybe_clone_body): Copy TREE_PUBLIC before emitting 741790075Sobrien the clone. 741852284Sobrien 741990075Sobrien2001-04-25 Nathan Sidwell <nathan@codesourcery.com> 742052284Sobrien 742190075Sobrien * decl.c (grokdeclarator): Set context of namespace scope 742290075Sobrien TYPE_DECLS. 742352284Sobrien 742490075Sobrien2001-04-24 Zack Weinberg <zackw@stanford.edu> 742552284Sobrien 742690075Sobrien * cp/optimize.c: Include hashtab.h. 742790075Sobrien (struct inline_data): Add tree_pruner. 742890075Sobrien (expand_call_inline, expand_calls_inline): Use it when calling 742990075Sobrien walk_tree. 743090075Sobrien (optimize_function): Initialize and free tree_pruner. 743152284Sobrien 743290075Sobrien2001-04-24 Nathan Sidwell <nathan@codesourcery.com> 743352284Sobrien 743490075Sobrien Lazy __FUNCTION__ generation. 743590075Sobrien * cp-tree.def (FUNCTION_NAME): Remove. 743690075Sobrien * cp-tree.h (function_name_declared_p): Remove. 743790075Sobrien (cp_fname_init): Prototype. 743890075Sobrien * decl.c (init_decl_processing): Don't generate __FUNCTION__ et al ids, 743990075Sobrien don't call declare_function_name. Call start_fname_decls. 744090075Sobrien (cp_make_fname_decl): Adjust parameters. Generate the name. Don't 744190075Sobrien clobber the line number. 744290075Sobrien (cp_fname_init): New function. 744390075Sobrien (start_function): Call start_fname_decls. 744490075Sobrien (finish_function): Call finish_fname_decls. 744590075Sobrien * lex.c (reswords): Add slots for __FUNCTION__ et al. 744690075Sobrien (rid_to_yy): Add mappings for __FUNCTION__ et al. 744790075Sobrien * optimize.c (maybe_clone_body): Remove function_name_declared_p. 744890075Sobrien * parse.y (VAR_FUNC_NAME): New token. 744990075Sobrien (primary): Add VAR_FUNC_NAME. 745090075Sobrien * pt.c (tsubst_decl): Adjust a DECL_PRETTY_FUNCTION_P's 745190075Sobrien generation. 745290075Sobrien (tsubst, FUNCTION_NAME case): Remove. 745390075Sobrien (tsubst_copy, FUNCTION_NAME case): Remove. 745490075Sobrien (tsubst_expr, DECL_STMT case): Be careful with a 745590075Sobrien DECL_PRETTY_FUNCTION_P. 745690075Sobrien (instantiate_decl): Remove function_name_declared_p. 745790075Sobrien * semantics.c (begin_compound_statement): Don't call 745890075Sobrien declare_function_name here. 745990075Sobrien (setup_vtbl_ptr). Don't save & restore function_name_declared_p. 746090075Sobrien (finish_translation_unit): Call finish_fname_decls. 746190075Sobrien (expand_body): Remove function_name_declared_p. 746290075Sobrien * typeck2.c (digest_init): Allow any ERROR_MARK. 746352284Sobrien 746490075Sobrien2001-04-24 Nathan Sidwell <nathan@codesourcery.com> 746552284Sobrien 746690075Sobrien * pt.c (tsubst_decl): Use VOID_TYPE_P. 746790075Sobrien * semantics.c: Fix some typos. 746852284Sobrien 746990075Sobrien2001-04-23 Phil Edwards <pme@sources.redhat.com> 747052284Sobrien 747190075Sobrien * cp/decl2.c (flag_honor_std): Always initialize to 1. 747252284Sobrien 747390075Sobrien2001-04-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 747452284Sobrien 747590075Sobrien * xref.c (GNU_xref_file): Use concat in lieu of xmalloc/sprintf. 747652284Sobrien 747790075Sobrien2001-04-23 Jason Merrill <jason_merrill@redhat.com> 747852284Sobrien 747990075Sobrien * except.c (build_throw): Wrap the initialization of the exception 748090075Sobrien object in a MUST_NOT_THROW_EXPR. 748190075Sobrien (do_free_exception): #if 0. 748252284Sobrien 748390075Sobrien2001-04-20 Mark Mitchell <mark@codesourcery.com> 748452284Sobrien 748590075Sobrien * cp-tree.h (finish_enum): Change prototype. 748690075Sobrien * decl.c (finish_enum): Reorganize. 748790075Sobrien * parse.y (structsp): Adjust calls to finish_enum. 748852284Sobrien 748990075Sobrien2001-04-20 Nathan Sidwell <nathan@codesourcery.com> 749052284Sobrien 749190075Sobrien * tree.c (cp_tree_equal): Adjust final switch formatting. Add 749290075Sobrien 't' case. 749352284Sobrien 749490075Sobrien2001-04-20 Nathan Sidwell <nathan@codesourcery.com> 749552284Sobrien 749690075Sobrien * class.c (dfs_unshared_virtual_bases): Add ATTRIBUTE_UNUSED. 749790075Sobrien (layout_empty_base): Return at end flag. 749890075Sobrien (build_base_field): Likewise. 749990075Sobrien (build_base_fields): Likewise. 750090075Sobrien (layout_virtual_bases): Don't add 1 to eoc value. 750190075Sobrien (end_of_class): Use full size for empty bases. 750290075Sobrien (layout_class_type): Clear CLASSNEARLY_EMPTY_P if we appended 750390075Sobrien empty bases. Don't add 1 to eoc value. Only add trailing padding 750490075Sobrien if we're an empty class with no empty bases. 750590075Sobrien (dump_class_hierarchy): Dump size and alignment. 750652284Sobrien 750790075Sobrien2001-04-20 Jakub Jelinek <jakub@redhat.com> 750852284Sobrien 750990075Sobrien * call.c (maybe_handle_ref_bind): Copy ICS_USER_FLAG and 751090075Sobrien ICS_BAD_FLAG. 751152284Sobrien 751290075Sobrien2001-04-20 Jakub Jelinek <jakub@redhat.com> 751352284Sobrien 751490075Sobrien * search.c (lookup_field_r): If looking for type and non-TYPE_DECL 751590075Sobrien is found, look first if name does not match the structure name. 751652284Sobrien 751790075Sobrien2001-04-19 Mark Mitchell <mark@codesourcery.com> 751852284Sobrien 751990075Sobrien * cp-tree.h (DECL_LANGUAGE): Don't assume DECL_LANG_SPECIFIC is 752090075Sobrien set. 752190075Sobrien (SET_DECL_LANGUAGE): New macro. 752290075Sobrien * decl.c (duplicate_decls): Use SET_DECL_LANGUAGE. 752390075Sobrien (pushdecl): Likewise. 752490075Sobrien (build_library_fn_1): Likewise. 752590075Sobrien (build_cp_library_fn): Likewise. 752690075Sobrien (grokfndecl): Likewise. 752790075Sobrien (grokvardecl): Mark `extern "C"' variables as having C linkage. 752890075Sobrien * decl2.c (grokclassfn): Use SET_DECL_LANGUAGE. 752990075Sobrien * lex.c (retrofit_lang_decl): Likewise. 753090075Sobrien * mangle.c (mangle_decl_string): Don't mangle the names of 753190075Sobrien variables declared with C language linkage. 753290075Sobrien * semantics.c (finish_member_declaration): Use SET_DECL_LANGUAGE. 753352284Sobrien 753490075Sobrien2001-04-18 John David Anglin <dave@hiauly1.hia.nrc.ca> 753552284Sobrien 753690075Sobrien * semantics.c (simplify_aggr_init_exprs_r): Don't restore 753790075Sobrien flag_access_control from uninitialized storage. 753852284Sobrien 753990075Sobrien2001-04-15 Mark Mitchell <mark@codesourcery.com> 754018334Speter 754190075Sobrien * cp-tree.h (TYPE_PTRMEM_CLASS_TYPE): Improve documentation. 754290075Sobrien * mangle.c (write_pointer_to_member_type): Fix mangling of 754390075Sobrien pointers to cv-qualified member function types. 754418334Speter 754590075Sobrien * init.c (build_delete): Create a SAVE_EXPR for the address if 754690075Sobrien we're going to use it more than once. 754752284Sobrien 754890075Sobrien2001-04-13 Mark Mitchell <mark@codesourcery.com> 754952284Sobrien 755090075Sobrien * cp-tree.h (DELTA2_FROM_PTRMEMFUNC): Remove. 755190075Sobrien (expand_ptremfunc_cst): Change prototype. 755290075Sobrien (delta2_from_ptrmemfunc): Remove. 755390075Sobrien * expr.c (cplus_expand_constant): Adjust call to 755490075Sobrien expand_ptrmemfunc_cst. 755590075Sobrien * typeck.c (build_ptrmemfunc1): Simplify. 755690075Sobrien (build_ptrmemfunc): Make sure that casting a PTRMEM_CST still 755790075Sobrien results in a constant. 755890075Sobrien (expand_ptrmemfunc_cst): Remove idx and delta2 parameters. 755990075Sobrien (delta2_from_ptrmemfunc): Remove. 756090075Sobrien (pfn_from_ptrmemfunc): Adjust call to expand_ptrmemfunc_cst. 756152284Sobrien 756290075Sobrien2001-04-12 Jason Merrill <jason_merrill@redhat.com> 756352284Sobrien 756490075Sobrien * cp-tree.h (decl_namespace_list): New macro. 756590075Sobrien (struct saved_scope): Add decl_ns_list. 756690075Sobrien * decl.c (mark_saved_scope): Mark it. 756790075Sobrien * decl2.c: Lose static decl_namespace_list. 756890075Sobrien (init_decl2): Don't save it. 756952284Sobrien 757090075Sobrien2001-04-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 757152284Sobrien 757290075Sobrien * cp-tree.h (warn_return_type, yylex): Delete redundant 757390075Sobrien declarations. 757452284Sobrien 757590075Sobrien * decl.c (current_class_depth, global_namespace): Likewise. 757652284Sobrien 757790075Sobrien * decl2.c (current_class_depth, flag_gnu_xref): Likewise 757852284Sobrien 757990075Sobrien * repo.c (flag_use_repository): Likewise. 758052284Sobrien 758190075Sobrien2001-04-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 758252284Sobrien 758390075Sobrien * cp-tree.h (pedantic, convert, global_bindings_p, insert_block, 758490075Sobrien set_block, pushdecl, getdecls, gettags, init_decl_processing, 758590075Sobrien maybe_build_cleanup, copy_lang_decl, prep_stmt, lvalue_p, 758690075Sobrien lvalue_or_else, print_lang_statistics, comp_target_types, 758790075Sobrien unsigned_type, signed_type, signed_or_unsigned_type, 758890075Sobrien build_function_call, mark_addressable, incomplete_type_error): 758990075Sobrien Delete redundant declarations. 759052284Sobrien 759190075Sobrien2001-04-11 Jason Merrill <jason_merrill@redhat.com> 759252284Sobrien 759390075Sobrien * cp-tree.h (TYPE_LINKAGE_IDENTIFIER): New macro. 759490075Sobrien (TYPE_ANONYMOUS_P): New macro. 759590075Sobrien (TAGGED_TYPE_P): New macro. 759690075Sobrien * decl.c (check_tag_decl): Use TYPE_ANONYMOUS_P. 759790075Sobrien (grokfndecl, grokvardecl, grokdeclarator): Likewise. 759890075Sobrien * tree.c (no_linkage_helper): Likewise. 759990075Sobrien * semantics.c (begin_class_definition): Likewise. 760090075Sobrien * pt.c (convert_template_argument): Likewise. 760190075Sobrien * lex.c (check_for_missing_semicolon): Likewise. 760252284Sobrien 760390075Sobrien2001-04-12 Nathan Sidwell <nathan@codesourcery.com> 760452284Sobrien 760590075Sobrien * class.c (dfs_unshared_virtual_bases): New function. 760690075Sobrien (mark_primary_bases): Call it. 760790075Sobrien (check_bases): Ignore virtual bases when determining 760890075Sobrien nearly-emptiness. 760952284Sobrien 761090075Sobrien2001-04-12 Nathan Sidwell <nathan@codesourcery.com> 761152284Sobrien 761290075Sobrien * method.c (make_thunk): Clear DECL_CLONED_FUNCTION. 761318334Speter 761490075Sobrien2001-04-11 Mark Mitchell <mark@codesourcery.com> 761518334Speter 761690075Sobrien * optimize.c (maybe_clone_body): Copy DECL_NUM_STMTS from the 761790075Sobrien cloned function to the clone. 761818334Speter 761990075Sobrien2001-04-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 762018334Speter 762190075Sobrien * Make-lang.in (cp/semantics.o): Depend on $(EXPR_H). 762252284Sobrien 762390075Sobrien * semantics.c: Include expr.h. 762452284Sobrien 762590075Sobrien2001-04-11 Nathan Sidwell <nathan@codesourcery.com> 762652284Sobrien 762790075Sobrien * method.c (implicitly_declare_fn): Commonize code for copy ctor 762890075Sobrien and assignment op. Set TREE_USED for parameter. 762952284Sobrien 763090075Sobrien2001-04-10 Mark Mitchell <mark@codesourcery.com> 763152284Sobrien 763290075Sobrien * class.c (find_final_overrider_data): Add `candidates'. 763390075Sobrien (dfs_find_final_overrider): Don't issue error messages 763490075Sobrien prematurely. 763590075Sobrien (find_final_overrider): Issue error messages here. 763690075Sobrien (build_base_field): Don't warn about amgibuous direct bases here. 763790075Sobrien (warn_about_ambiguous_direct_bases): New function. 763890075Sobrien (layout_class_type): Use it. 763918334Speter 764090075Sobrien2001-04-10 Richard Henderson <rth@redhat.com> 764118334Speter 764290075Sobrien * typeck.c (build_array_ref): Push the array reference inside 764390075Sobrien COMPOUND_EXPR and COND_EXPR. 764452284Sobrien 764590075Sobrien2001-04-05 Mark Mitchell <mark@codesourcery.com> 764652284Sobrien 764790075Sobrien * cp-tree.h (DECL_THIS_INLINE): Rename to DECL_DECLARED_INLINE_P. 764890075Sobrien * decl.c (duplicate_decls): Adjust accordingly. 764990075Sobrien (maybe_commonize_var): Likewise. 765090075Sobrien (grokfndecl): Likewise. 765190075Sobrien (start_function): Likewise. 765290075Sobrien (start_method): Likewise. 765390075Sobrien * decl2.c (key_method): Likewise. 765490075Sobrien (import_export_decl): Likewise. 765590075Sobrien * method.c (implicitly_declare_fn): Likewise. 765690075Sobrien * optimize.c (maybe_clone_body): Likewise. 765752284Sobrien 765890075Sobrien2001-04-05 Benjamin Kosnik <bkoz@redhat.com> 765952284Sobrien 766090075Sobrien * lang-specs.h: Add __DEPRECATED. 766152284Sobrien 766290075SobrienThu Apr 5 16:54:29 2001 J"orn Rennecke <amylaar@redhat.com> 766352284Sobrien 766490075Sobrien * search.c (get_dynamic_cast_base_type): When building a new 766590075Sobrien constant, set its type to ssizetype. 766652284Sobrien 766790075Sobrien2001-04-04 Jakub Jelinek <jakub@redhat.com> 766852284Sobrien 766990075Sobrien * optimize.c (expand_call_inline): Only add newly inlined statements 767090075Sobrien into inlined_stmts. 767152284Sobrien 767290075Sobrien2001-04-03 Mark Mitchell <mark@codesourcery.com> 767352284Sobrien 767490075Sobrien * cp-tree.h (OPERATOR_ASSIGN_FORMAT): Remove. 767590075Sobrien (OPERATOR_FORMAT): Likewise. 767690075Sobrien (OPERATOR_TYPENAME_FORMAT): Likewise. 767790075Sobrien * operators.def: Remove old name-mangling information. 767890075Sobrien * decl.c (grok_op_properties): Adjust accordingly. 767990075Sobrien * lex.c (init_operators): Likewise. 768090075Sobrien * rtti.c (get_tinfo_decl): Issue error messages about types that 768190075Sobrien have variable size. 768252284Sobrien 768390075Sobrien2001-04-03 Mark Mitchell <mark@codesourcery.com> 768452284Sobrien 768590075Sobrien * decl2.c (import_export_decl): Don't call import_export_class 768690075Sobrien when processing an inline member function. 768790075Sobrien * semantics.c (expand_body): Call import_export_decl before 768890075Sobrien emitting inline functions. 768952284Sobrien 769090075Sobrien2001-03-28 Richard Henderson <rth@redhat.com> 769152284Sobrien 769290075Sobrien IA-64 ABI Exception Handling: 769390075Sobrien * cp-tree.def (EH_SPEC_BLOCK): New. 769490075Sobrien (MUST_NOT_THROW_EXPR): New. 769590075Sobrien * cp-tree.h: Update changed function declarations. 769690075Sobrien (CPTI_PUSH_EXCEPTION_IDENTIFIER): Remove. 769790075Sobrien (CPTI_CALL_UNEXPECTED): New. 769890075Sobrien (struct cp_language_function): Rename x_eh_spec_try_block 769990075Sobrien to x_eh_spec_block. 770090075Sobrien (EH_SPEC_STMTS, EH_SPEC_RAISES): New. 770190075Sobrien * decl.c (current_binding_level): If no current function 770290075Sobrien bindings, revert to scope_chain. 770390075Sobrien (initialize_predefined_identifiers): Remove __cp_push_exception. 770490075Sobrien (store_parm_decls): Use begin_eh_spec_block. 770590075Sobrien (finish_function): Use finish_eh_spec_block. 770690075Sobrien (mark_lang_function): Update for name changes. 770790075Sobrien * decl2.c (finish_file): No mark_all_runtime_matches. 770890075Sobrien * dump.c (cp_dump_tree): Handle new tree codes. 770990075Sobrien * error.c (dump_expr) [BIND_EXPR]: Fix typo. 771090075Sobrien * except.c (catch_language_init, catch_language): Remove. 771190075Sobrien (init_exception_processing): Don't set language code. 771290075Sobrien Initialize call_unexpected_node, protect_cleanup_actions, 771390075Sobrien eh_personality_libfunc, lang_eh_runtime_type. 771490075Sobrien (call_eh_info, push_eh_info, get_eh_info, get_eh_value): Remove. 771590075Sobrien (get_eh_type, get_eh_caught, get_eh_handlers): Remove. 771690075Sobrien (prepare_eh_type): Split out type canonicalizations ... 771790075Sobrien (build_eh_type_type): ... from here. 771890075Sobrien (build_eh_type_type_ref): Remove. 771990075Sobrien (mark_all_runtime_matches): Remove. 772090075Sobrien (build_exc_ptr): New. 772190075Sobrien (do_begin_catch, do_end_catch): New. 772290075Sobrien (do_pop_exception): Remove. 772390075Sobrien (build_terminate_handler): Remove. 772490075Sobrien (choose_personality_routine): Split out language choice from ... 772590075Sobrien (initialize_handler_parm): ... here. 772690075Sobrien Use MUST_NOT_THROW_EXPR. 772790075Sobrien (expand_start_catch_block): Use do_begin_catch. Simplify Java 772890075Sobrien exception object handling. 772990075Sobrien (expand_start_eh_spec, expand_end_eh_spec): Remove. 773090075Sobrien (expand_exception_blocks, alloc_eh_object): Remove. 773190075Sobrien (begin_eh_spec_block, finish_eh_spec_block): New. 773290075Sobrien (do_allocate_exception, do_free_exception): New. 773390075Sobrien (expand_throw): Merge into ... 773490075Sobrien (build_throw): ... here. Update for abi. 773590075Sobrien * expr.c (cplus_expand_expr): No expand_internal_throw. 773690075Sobrien Handle MUST_NOT_THROW_EXPR. 773790075Sobrien * pt.c (tsubst_expr): Handle EH_SPEC_BLOCK. 773890075Sobrien * semantics.c (*) Update for except.h name changes. 773990075Sobrien (genrtl_try_block): No protect_with_terminate. 774090075Sobrien (genrtl_eh_spec_block): New. 774190075Sobrien (genrtl_handler): Don't emit the goto here. 774290075Sobrien (cp_expand_stmt): Handle EH_SPEC_BLOCK. 774390075Sobrien (genrtl_finish_function): Don't expand_exception_blocks. 774490075Sobrien * tree.c (cp_statement_code_p): Handle EH_SPEC_BLOCK. 774518334Speter 774690075Sobrien2001-03-28 Richard Henderson <rth@redhat.com> 774752284Sobrien 774890075Sobrien * decl.c (struct named_label_list): Rename eh_region to 774990075Sobrien in_try_scope, add in_catch_scope. 775090075Sobrien (struct binding_level): Rename eh_region to is_try_scope, 775190075Sobrien add is_catch_scope. 775290075Sobrien (note_level_for_try): Rename from note_level_for_eh. 775390075Sobrien (note_level_for_catch): New. 775490075Sobrien (poplevel): Copy both is_try_scope and is_catch_scope to 775590075Sobrien the named_label_list struct. 775690075Sobrien (check_previous_goto_1): Don't check for catch block via 775790075Sobrien DECL_ARTIFICIAL; use in_try_scope instead. 775890075Sobrien (check_goto): Likewise. 775990075Sobrien * cp-tree.h (note_level_for_try, note_level_for_catch): Declare. 776090075Sobrien * except.c (expand_start_catch_block): Call note_level_for_catch. 776190075Sobrien * semantics.c (begin_compound_stmt): Update for note_level_for_try. 776218334Speter 776390075Sobrien2001-03-27 Richard Henderson <rth@redhat.com> 776452284Sobrien 776590075Sobrien * except.c: Use USING_SJLJ_EXCEPTIONS instead of 776690075Sobrien exceptions_via_longjmp. 776752284Sobrien 776890075Sobrien2001-03-27 Phil Edwards <pme@sources.redhat.com> 776952284Sobrien 777090075Sobrien * pt.c (check_default_tmpl_args): Make error messages clearer. 777152284Sobrien 777290075Sobrien2001-03-26 Phil Edwards <pme@sources.redhat.com> 777352284Sobrien 777490075Sobrien * error.c: Also undefine 'A' macro used for cp_printers definition. 777552284Sobrien 777690075Sobrien2001-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 777752284Sobrien 777890075Sobrien * Make-lang.in: Depend on $(SYSTEM_H), not system.h. 777952284Sobrien 778090075Sobrien2001-03-26 Mike Yang <yang@research.att.com> 778190075Sobrien Mark Mitchell <mark@codesourcery.com> 778252284Sobrien 778390075Sobrien * dump.c (dump_access): New function. 778490075Sobrien (cp_dump_tree): Use it. Dump basetype information for class 778590075Sobrien types. 778652284Sobrien 778790075Sobrien2001-03-26 Mark Mitchell <mark@codesourcery.com> 778852284Sobrien 778990075Sobrien * Makefile.in (optimize.o): Depend on params.h. 779090075Sobrien (duplicate_decls): Copy DECL_NUM_STMTS, not DECL_FRAME_SIZE. 779190075Sobrien (init_decl_processing): Set flag_no_inline when doing 779290075Sobrien inlining-on-trees. 779390075Sobrien * optimize.c: Include params.h. 779490075Sobrien (struct inline_data): Improve documentation of FNS. Add 779590075Sobrien FIRST_INLINED_FN, INLINED_STMTS, and CLONING_P. 779690075Sobrien (INSNS_PER_STMT): New macro. 779790075Sobrien (remap_block): Use CLONING_P. 779890075Sobrien (inlinable_function_p): Don't inline big functions. 779990075Sobrien (expand_call_inline): Keep track of how much inlining we've done. 780090075Sobrien (optimize_function): Set FIRST_INLINED_FN. 780190075Sobrien (maybe_clone_body): Set CLONING_P. 780290075Sobrien * semantics.c (simplify_aggr_init_exprs_r): Fix typing problems in 780390075Sobrien tree nodes. 780490075Sobrien (genrtl_finish_function): Clear DECL_DEFER_OUTPUT before calling 780590075Sobrien rest_of_compilation. Clear DECL_RTL for local variables 780690075Sobrien afterwards. 780790075Sobrien (clear_decl_rtl): New function. 780852284Sobrien 780990075Sobrien2001-03-26 Nathan Sidwell <nathan@codesourcery.com> 781052284Sobrien 781190075Sobrien Implement DR 209 781290075Sobrien * cp-tree.h (skip_type_access_control, 781390075Sobrien reset_type_access_control): Prototype. 781490075Sobrien * decl.c (grokdeclarator): Access of friends is not checked. 781590075Sobrien * parse.y (component_decl_list): Reset type access control. 781690075Sobrien * semantics.c (decl_type_access_control): Clear 781790075Sobrien current_type_lookups. 781890075Sobrien (save_type_access_control): Don't save if not deferring. 781990075Sobrien (skip_type_access_control, reset_type_access_control): New 782090075Sobrien functions. 782190075Sobrien (begin_class_definition): Do type access control for basetypes. 782290075Sobrien Start deferred access control. 782390075Sobrien (finish_class_definition): Resume immediate access control if 782490075Sobrien this is a local class. 782552284Sobrien 782690075Sobrien2001-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 782752284Sobrien 782890075Sobrien * class.c (add_method): Use memcpy/memmove, not bcopy. 782952284Sobrien 783090075Sobrien * decl.c (duplicate_decls): Likewise. 783152284Sobrien 783290075Sobrien2001-03-23 Jakub Jelinek <jakub@redhat.com> 783352284Sobrien 783490075Sobrien * mangle.c (write_discriminator): Use `_0' for discriminator 1, 783590075Sobrien not `_'. 783652284Sobrien 783790075Sobrien2001-03-23 Jakub Jelinek <jakub@redhat.com> 783818334Speter 783990075Sobrien * decl.c (local_names): Define. 784090075Sobrien (push_local_name): New. 784190075Sobrien (grok_reference_init): Return init if initializing static reference 784290075Sobrien variable with non-constant instead of emitting it. 784390075Sobrien Move expand_static_init call to cp_finish_decl. 784490075Sobrien (layout_var_decl): Call push_local_name. 784590075Sobrien (maybe_commonize_var): Allow inlining functions even if they have 784690075Sobrien static local variables, use comdat_linkage for them if flag_weak. 784790075Sobrien (check_initializer): Call obscure_complex_init if 7848117395Skan grok_reference_init returned nonzero. 784990075Sobrien (save_function_data): Clear x_local_names. 785090075Sobrien (pop_cp_function_context): Free x_local_names. 785190075Sobrien (mark_inlined_fns): Remove. 785290075Sobrien (mark_lang_function): Mark x_local_names. 785390075Sobrien (lang_mark_tree): Don't mark DECL_ACCESS for DECL_DISCRIMINATOR_P. 785490075Sobrien Mark inlined_fns as tree, remove call to mark_inlined_fns. 785590075Sobrien * class.c (alter_access): Ensure DECL_ACCESS is never set if 785690075Sobrien DECL_DISCRIMINATOR_P. 785790075Sobrien * cp-tree.h (cp_language_function): Add x_local_names. 785890075Sobrien (lang_decl_flags): Add discriminator into u2. 785990075Sobrien (lang_decl_inlined_fns): Remove. 786090075Sobrien (lang_decl): inlined_fns is now a TREE_VEC. 786190075Sobrien (DECL_DISCRIMINATOR_P, DECL_DISCRIMINATOR): Define. 786290075Sobrien * optimize.c (inlinable_function_p): DECL_INLINED_FNS is now a 786390075Sobrien TREE_VEC, not a custom structure. 786490075Sobrien (optimize_function): Likewise. 786590075Sobrien * mangle.c (discriminator_for_local_entity): Discriminate among 786690075Sobrien VAR_DECL local entities. 786790075Sobrien * search.c (dfs_access_in_type): If DECL_DISCRIMINATOR_P, DECL_ACCESS 786890075Sobrien is not valid. 786952284Sobrien 787090075Sobrien2001-03-22 Bryce McKinlay <bryce@albatross.co.nz> 787118334Speter 787290075Sobrien Add support for Java interface method calls. 787390075Sobrien * cp-tree.h (struct lang_type): Add java_interface flag. 787490075Sobrien (TYPE_JAVA_INTERFACE): New macro. 787590075Sobrien * tree.c (cp_valid_lang_attribute): Handle "java_interface" attribute 787690075Sobrien by setting TYPE_JAVA_INTERFACE. 787790075Sobrien * call.c (java_iface_lookup_fn): New static. 787890075Sobrien (build_over_call): If calling a method declared in a 787990075Sobrien TYPE_JAVA_INTERFACE, call build_java_interface_fn_ref to generate the 788090075Sobrien expression which resolves the function address. 788190075Sobrien (build_java_interface_fn_ref): New function. 788218334Speter 788390075Sobrien2001-03-22 Richard Henderson <rth@redhat.com> 788452284Sobrien 788590075Sobrien * Make-lang.in (cp/except.o): Don't depend on insn-flags.h. 788690075Sobrien * except.c: Don't include it. 788752284Sobrien 788890075Sobrien2001-03-22 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> 788990075Sobrien based on an idea from Joe Buck <jbuck@synopsys.com> 789052284Sobrien 789190075Sobrien * parse.y (bad_decl, template_arg_list_ignore, arg_list_ignore): 789290075Sobrien New nonterminals. 789390075Sobrien (data_def, component_decl): Add reductions to bad_decl. 789452284Sobrien 789590075Sobrien2001-03-22 Jakub Jelinek <jakub@redhat.com> 789652284Sobrien 789790075Sobrien * method.c (do_build_assign_ref): Don't use build_modify_expr for 789890075Sobrien anonymous aggregates, since they don't have assignment operator 789990075Sobrien method. 790090075Sobrien * decl.c (fixup_anonymous_aggr): Disallow ctors, dtors and copy 790190075Sobrien assignment operators for anonymous structure fields. 790252284Sobrien 790390075Sobrien2001-03-21 Jason Merrill <jason@redhat.com> 790452284Sobrien 790590075Sobrien * pt.c (instantiate_decl): Abort if we see a member constant 790690075Sobrien instantiation that doesn't already have its initializer. 790790075Sobrien Downgrade explicit instantiation without definition to pedwarn. 790852284Sobrien 790990075Sobrien * cp-tree.h (DECL_TINFO_FN_P, SET_DECL_TINFO_FN_P): Remove. 791090075Sobrien * class.c (build_vtable_entry): Don't check DECL_TINFO_FN_P. 791190075Sobrien (import_export_decl): Check tinfo_decl_p, not DECL_TINFO_FN_P. 791252284Sobrien 791390075Sobrien * cp-tree.h (CLASSTYPE_VTABLE_NEEDS_WRITING): Remove. 791490075Sobrien (pending_vtables): Remove. 791590075Sobrien * decl2.c (pending_vtables): Remove. 791690075Sobrien (import_export_vtable): Use CLASSTYPE_INTERFACE_ONLY, not 791790075Sobrien CLASSTYPE_VTABLE_NEEDS_WRITING. 791890075Sobrien (import_export_class): Likewise. 791990075Sobrien (init_decl2): Don't mark pending_vtables. 792090075Sobrien * lex.c (handle_pragma_vtable): Just sorry. 792190075Sobrien * pt.c (instantiate_class_template): Don't mess with 792290075Sobrien CLASSTYPE_VTABLE_NEEDS_WRITING. 792390075Sobrien (mark_class_instantiated): Likewise. 792490075Sobrien * ptree.c (print_lang_type): Don't print it. 792590075Sobrien * semantics.c (begin_class_definition): Don't set it. 792652284Sobrien 792790075Sobrien * pt.c (template_tail): Replace with last_pending_template. 792890075Sobrien (maybe_templates, maybe_template_tail): Remove. 792990075Sobrien (add_pending_template): Adjust. 793090075Sobrien (instantiate_pending_templates): Adjust. 793152284Sobrien 793290075Sobrien * cp-tree.h (struct saved_scope): Remove lang_stack field. 793390075Sobrien (current_lang_stack): Remove. 793490075Sobrien * decl.c (maybe_push_to_top_level): Don't initialize it. 793590075Sobrien (duplicate_decls): Use current_lang_depth. 793690075Sobrien (xref_basetypes): Likewise. 793790075Sobrien * class.c (current_lang_depth): New fn. 793890075Sobrien (push_lang_context): Use more varray functionality. 793990075Sobrien (pop_lang_context): Likewise. 794052284Sobrien 794190075Sobrien * error.c (GLOBAL_THING): Always use '__'. 794252284Sobrien 794390075Sobrien2001-03-21 Mark Mitchell <mark@codesourcery.com> 794452284Sobrien 794590075Sobrien * class.c (build_clone): Clear DECL_ASSEMBLER_NAME. 794652284Sobrien 794790075Sobrien * mangle.c (mangle_decl_string): Mangle the names of overloaded 794890075Sobrien operators, even when they have `extern "C"' linkage. 794952284Sobrien 795090075Sobrien2001-03-19 Mark Mitchell <mark@codesourcery.com> 795152284Sobrien 795290075Sobrien * class.c (get_vtable_decl): Use SET_DECL_ASSEMBLER_NAME, 795390075Sobrien COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME 795490075Sobrien where it's not necessary. 795590075Sobrien (add_method): Remove optimization involving comparison of 795690075Sobrien DECL_ASSEMBLER_NAME. 795790075Sobrien (build_vtbl_or_vbase_field): Use SET_DECL_ASSEMBLER_NAME, 795890075Sobrien COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME 795990075Sobrien where it's not necessary. 796090075Sobrien (check_methods): Likewise. 796190075Sobrien (build_clone): Likewise. 796290075Sobrien (built_vtt): Likewise. 796390075Sobrien * cp-tree.h (DECL_NEEDED_P): Likewise. 796490075Sobrien * decl.c (pushtag): Likewise. 796590075Sobrien (duplicate_decls): Likewise. 796690075Sobrien (pushdecl): Likewise. 796790075Sobrien (builtin_function): Likewise. 796890075Sobrien (build_library_fn_1): Set DECL_LANGUAGE for library functions. 796990075Sobrien (build_cp_library_fn): Likewise. 797090075Sobrien (maybe_commonize_var): Use SET_DECL_ASSEMBLER_NAME, 797190075Sobrien COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME 797290075Sobrien where it's not necessary. 797390075Sobrien (make_rtl_for_nonlocal_decl): Likewise. 797490075Sobrien (cp_finish_decl): Likewise. 797590075Sobrien (grokfndecl): Likewise. 797690075Sobrien (grokvardecl): Likewise. 797790075Sobrien (grokdeclarator): Likewise. 797852284Sobrien (start_function): Likewise. 797990075Sobrien (cp_missing_return_ok_p): Likewise. 798090075Sobrien * decl2.c (grokclassfn): Likewise. 798190075Sobrien (check_classfn): Likewise. 798290075Sobrien (finish_static_data_member_decl): Likewise. 798352284Sobrien (grokfield): Likewise. 798490075Sobrien * error.c (GLOBAL_IORD_P): Remove. 798590075Sobrien (dump_global_iord): Improve output. 798690075Sobrien (dump_decl): Avoid using DECL_ASSEMBLER_NAME. 798790075Sobrien * except.c (nothrow_libfn_p): Summarily reject any function not in 798890075Sobrien namespace-scope. 798990075Sobrien * init.c (build_java_class_ref): Don't explicitly set 799090075Sobrien DECL_ASSEMBLER_NAME after calling mangle_decl. 799190075Sobrien * mangle.c (mangle_decl_string): Handle extern "C" functions. 799290075Sobrien (mangle_decl): Set the DECL_ASSEMBLER_NAME for the decl. 799390075Sobrien * method.c (set_mangled_name_for_decl): Don't explicitly set 799490075Sobrien DECL_ASSEMBLER_NAME after calling mangle_decl. 799590075Sobrien (make_thunk): Explicitly set the DECL_ASSEMBLER_NAME and 799690075Sobrien IDENTIFIER_GLOBAL_VALUE for the thunk. 799790075Sobrien * pt.c (set_mangled_name_for_template_decl): Remove. 799890075Sobrien (check_explicit_specialization): Don't use it. 799990075Sobrien (looup_template_class): Don't set DECL_ASSEMBLER_NAME. 800090075Sobrien (tsubst_friend_function): Likewise. 800190075Sobrien (tsubst_decl): Likewise. 800290075Sobrien (regenerate_decl_from_template): Use COPY_DECL_ASSEMBLER_NAME. 800390075Sobrien * rtti.c (get_tinfo_decl): Use SET_DECL_ASSEMBLER_NAME, 800490075Sobrien COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME 800590075Sobrien where it's not necessary. 800690075Sobrien (tinfo_base_init): Likewise. 800790075Sobrien (create_real_tinfo_var): Likewise. 800890075Sobrien * search.c (looup_field_1): Likewise. 800990075Sobrien * semantics.c (finish_named_return_value): Likewise. 801090075Sobrien * tree.c (init_tree): Set lang_set_decl_assembler_name. 801152284Sobrien 801290075Sobrien2001-03-15 Gabriel Dos Reis <gdr@codesourcery.com> 801352284Sobrien 801490075Sobrien Correct semantics restrictions checking in throw-expression. 801590075Sobrien * except.c (is_admissible_throw_operand): New function. 801690075Sobrien (build_throw): Use it. 801752284Sobrien 801890075Sobrien2001-03-14 Mark Mitchell <mark@codesourcery.com> 801952284Sobrien 802090075Sobrien * decl.c (cp_make_fnname_decl): Set DECL_IGNORED_P on __FUNCTION__ 802190075Sobrien and its ilk. 802252284Sobrien 802390075Sobrien2001-03-14 Mark Mitchell <mark@codesourcery.com> 802452284Sobrien 802590075Sobrien * class.c (build_clone): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc. 802690075Sobrien * cp-tree.h (DECL_IN_MEMORY_P): Likewise. 802790075Sobrien * decl.c (duplicate_decls): Likewise. 802890075Sobrien (builtin_function): Likewise. 802990075Sobrien (build_library_fn): Likewise. 803090075Sobrien (build_cp_library_fn): Likewise. 803190075Sobrien (check_initializer): Likewise. 803290075Sobrien (cp_finish_decl): Likewise. 803390075Sobrien * decl2.c (grokfield): Likewise. 803490075Sobrien (grok_function_init): Remove #if 0'd code. 803590075Sobrien (finish_anon_union): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc. 803690075Sobrien * friend.c (do_friend): Likewise. 803790075Sobrien * init.c (get_temp_regvar): Likewise. 803890075Sobrien * method.c (make_thunk): Likewise. 803990075Sobrien * pt.c (tsubst_friend_function): Likewise. 804090075Sobrien (tsubst_decl): Likewise. 804190075Sobrien (regenerate_decl_from_template): Likewise. 804290075Sobrien * semantics.c (genrtl_named_return_value): Likewise. 804390075Sobrien (expand_body): Likewise. 804490075Sobrien (genrtl_finish_function): Likewise. 804590075Sobrien * tree.c (cp_tree_equal): Likewise. 804652284Sobrien 804790075Sobrien2001-03-12 Nathan Sidwell <nathan@codesourcery.com> 804852284Sobrien 804990075Sobrien * call.c (convert_like_real): Add extra semantics to INNER 805090075Sobrien parameter. Don't convert to temporary if a user conversion 805190075Sobrien gives us an lvalue that we're about to bind to a reference. 805290075Sobrien Set INNER to indicate pending reference binding on recursive 805390075Sobrien calls. 805452284Sobrien 805590075Sobrien2001-03-10 Neil Booth <neil@daikokuya.demon.co.uk> 805652284Sobrien 805790075Sobrien * cp/lex.c: Delete duplicate pending_lang_change. 805852284Sobrien 805990075Sobrien2001-03-10 Neil Booth <neil@daikokuya.demon.co.uk> 806052284Sobrien 806190075Sobrien * cp/lex.c (handle_pragma_interface, handle_pragma_implementation): 806290075Sobrien Similarly. 806390075Sobrien * cp/repo.c (get_base_filename, open_repo_file): Similarly. 806490075Sobrien * cp/cp-tree.h: Remove file_name_nondirectory prototype. 806518334Speter 806690075Sobrien2001-03-09 Zack Weinberg <zackw@stanford.edu> 806718334Speter 806890075Sobrien * Make-lang.in: Add dependencies on $(TM_P_H) as appropriate. 806918334Speter 807090075Sobrien2001-03-08 Stan Shebs <shebs@apple.com> 807152284Sobrien 807290075Sobrien * cp-tree.h (set_identifier_local_value): Remove unused decl. 807352284Sobrien 807490075Sobrien2001-03-06 Zack Weinberg <zackw@stanford.edu> 807552284Sobrien 807690075Sobrien * spew.c: Remove references to CPP_OSTRING. 807752284Sobrien 807890075Sobrien2001-03-06 Andrew Haley <aph@redhat.com> 807952284Sobrien 808090075Sobrien * typeck.c (convert_arguments): Check that we have an fndecl. 808152284Sobrien 808290075Sobrien2001-03-05 Andrew Haley <aph@redhat.com> 808352284Sobrien 808490075Sobrien * typeck.c (convert_arguments): Don't do ellipsis conversion for 808590075Sobrien __built_in_constant_p. 808652284Sobrien 808790075Sobrien2001-03-02 Nathan Sidwell <nathan@codesourcery.com> 808852284Sobrien 808990075Sobrien * typeck.c (build_static_cast): Allow enum to enum conversions 809090075Sobrien as per DR 128. 809152284Sobrien 809290075Sobrien2001-03-02 Nathan Sidwell <nathan@codesourcery.com> 809352284Sobrien 809490075Sobrien * class.c (check_field_decls): Pointers to member do not a 809590075Sobrien non-pod struct make, as per DR 148. 809652284Sobrien 809790075Sobrien2001-03-02 Nathan Sidwell <nathan@codesourcery.com> 809852284Sobrien 809990075Sobrien * call.c (joust): cp_pedwarn when using gnu extension concerning 810090075Sobrien worst conversion sequences. 810152284Sobrien 810290075Sobrien2001-03-01 Zack Weinberg <zackw@stanford.edu> 810352284Sobrien 810490075Sobrien * decl.c: Replace all uses of 'boolean' with 'bool'. 810552284Sobrien 810690075Sobrien2001-03-01 Zack Weinberg <zackw@stanford.edu> 810752284Sobrien 810890075Sobrien * lang-specs.h: Add zero initializer for cpp_spec field to 810990075Sobrien all array elements that need one. Don't put an #ifdef inside 811090075Sobrien the initializer list; set a default for CPLUSPLUS_CPP_SPEC and 811190075Sobrien use it. 811252284Sobrien 811390075Sobrien2001-03-01 Nathan Sidwell <nathan@codesourcery.com> 811452284Sobrien 811590075Sobrien Implement using decls inside template functions. 811690075Sobrien * decl2.c (validate_nonmember_using_decl): Don't special case 811790075Sobrien fake_std_node in the global namespace. Don't reject early when 811890075Sobrien processing a template. 811990075Sobrien (do_local_using_decl): Add to statement tree. Don't do further 812090075Sobrien processing when building a template. 812190075Sobrien * pt.c (tsubst_expr, DECL_STMT case): Deal with USING_DECLs. 812252284Sobrien 812390075Sobrien2001-03-01 Nathan Sidwell <nathan@codesourcery.com> 812452284Sobrien 812590075Sobrien * decl2.c (do_nonmember_using_decl): Don't complain if we find 812690075Sobrien same function. Do complain about ambiguating extern "C" 812752284Sobrien declarations. 812852284Sobrien 812990075Sobrien2001-02-28 Nathan Sidwell <nathan@codesourcery.com> 813052284Sobrien 813190075Sobrien Remove floating point and complex type template constant parms. 813290075Sobrien * pt.c (convert_nontype_argument): Remove REAL_TYPE and 813390075Sobrien COMPLEX_TYPE extensions. 813490075Sobrien (invalid_nontype_parm_type_p): Likewise. 813552284Sobrien 813690075Sobrien2001-02-27 Jeffrey Oldham <oldham@codesourcery.com> 813718334Speter 813890075Sobrien * except.c (call_eh_info): Revert "match_function"'s type. 813918334Speter 814090075Sobrien2001-02-27 Nathan Sidwell <nathan@codesourcery.com> 814152284Sobrien 814290075Sobrien Fix ctor vtable vcall offsets. 814390075Sobrien * class.c (struct vtbl_init_data_s): Add rtti_binfo member. 814490075Sobrien (build_rtt_vtbl_entries): Lose RTTI_BINFO parameter. 814590075Sobrien (get_matching_base): Remove. 814690075Sobrien (get_original_base): New function. 814790075Sobrien (build_vtbl_initializer): Initialize vid.rtti_binfo. 814890075Sobrien Use a virtual thunk for a ctor vtable with an index 814990075Sobrien (add_vcall_offset_vtbl_entries_1): Check if binfo has lost a 815090075Sobrien primary base within a constructor vtable. Only set 815190075Sobrien BV_VCALL_INDEX when not a constructor vtable. Adjust vcall offset 815290075Sobrien when primary base has been lost. 815390075Sobrien * cp-tree.h (BINFO_VIRTUALS): Remove ambiguity from comment. 815452284Sobrien 815590075Sobrien2001-02-26 Jeffrey Oldham <oldham@codesourcery.com> 815618334Speter 815790075Sobrien * call.c (joust): Ensure more_specialized()'s argument length 815890075Sobrien parameter has correct value for constructors. 815918334Speter 816090075Sobrien2001-02-26 Nathan Sidwell <nathan@codesourcery.com> 816118334Speter 816290075Sobrien * except.c (call_eh_info): Cleanup generation of cp_eh_info struct. 816352284Sobrien 816490075Sobrien * decl.c (mark_inlined_fns): Prototype. 816552284Sobrien 816690075Sobrien2001-02-22 Mark Mitchell <mark@codesourcery.com> 816752284Sobrien 816890075Sobrien * spew.c (yylex): Correct handling of friends. 816952284Sobrien 817090075Sobrien2001-02-22 Mark Mitchell <mark@codesourcery.com> 817152284Sobrien 817290075Sobrien * mangle.c (write_encoding): Pass write_function_type the 817390075Sobrien FUNCTION_DECL for the function being encoded. 817490075Sobrien (write_function_type): Pass it along to write_bare_function_type. 817590075Sobrien (write_bare_function_type): Pass it along to write_method_parms. 817690075Sobrien (write_method_parms): Don't mangle the compiler-generated 817790075Sobrien parameters to a constructor or destructor. 817852284Sobrien 817990075Sobrien2001-02-22 Andreas Jaeger <aj@suse.de> 818052284Sobrien 818190075Sobrien * optimize.c: Include toplev.h for 818290075Sobrien note_deferral_of_defined_inline_function prototype. 818352284Sobrien 818490075Sobrien2001-02-22 Jakub Jelinek <jakub@redhat.com> 818552284Sobrien 818690075Sobrien * cp-tree.h (struct lang_decl_inlined_fns): New. 818790075Sobrien (struct lang_decls): Add inlined_fns. 818890075Sobrien (DECL_INLINED_FNS): New macro. 818990075Sobrien * optimize.c (struct inline_data): Add inlined_fns. 819090075Sobrien (declare_return_variable): Use VARRAY_ACTIVE_SIZE macro. 819190075Sobrien (inlinable_function_p): Likewise, fix typo in comment, 819290075Sobrien function is not inlinable if it already inlined function currently 819390075Sobrien being optimized. 819490075Sobrien (expand_call_inline): Add fn to inlined_fns if necessary. 819590075Sobrien (optimize_function): Initialize inlined_fns. 819690075Sobrien Save inlined_fns into DECL_INLINED_FNS after expanding inlines. 819790075Sobrien * decl.c (mark_inlined_fns): New function. 819890075Sobrien (lang_mark_tree): Call it. 819952284Sobrien 820090075Sobrien2001-02-21 Jason Merrill <jason@redhat.com> 820152284Sobrien 820290075Sobrien * cp-tree.h (struct lang_decl_flags): Remove uninlinable flag. 820390075Sobrien (DECL_UNINLINABLE): Move to middle-end. 820452284Sobrien 820590075Sobrien * class.c (clone_function_decl): Set DECL_ABSTRACT on original fn. 820690075Sobrien * decl.c (duplicate_decls): Preserve DECL_ABSTRACT. 820790075Sobrien * class.c (build_clone): Set DECL_ABSTRACT_ORIGIN for the clone. 820890075Sobrien * optimize.c (maybe_clone_body): Set DECL_ABSTRACT_ORIGIN for the 820990075Sobrien parms and outer BLOCK. note_deferral_of_defined_inline_function. 821052284Sobrien 821190075Sobrien * method.c (implicitly_declare_fn): Don't set DECL_ARTIFICIAL on 821290075Sobrien second parm of op=. 821352284Sobrien 821490075Sobrien2001-02-19 Mark Mitchell <mark@codesourcery.com> 821552284Sobrien 821690075Sobrien * decl2.c (set_decl_namespace): Allow explicit instantiations in 821790075Sobrien any namespace. 821852284Sobrien 821990075Sobrien2001-02-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 822052284Sobrien 822190075Sobrien * optimize.c (expand_call_inline): Don't walk subtrees of type 822290075Sobrien nodes. 822352284Sobrien 822490075Sobrien2001-02-18 Mark Mitchell <mark@codesourcery.com> 822552284Sobrien 822690075Sobrien * class.c (add_vcall_offset_vtbl_entries_1): Only add one entry 822790075Sobrien for a destructor. 822852284Sobrien 822990075Sobrien2001-02-18 Jason Merrill <jason@redhat.com> 823052284Sobrien 823190075Sobrien Do put the VTT parameter in DECL_ARGUMENTS. 823290075Sobrien * cp-tree.h (struct cp_language_function): Add x_vtt_parm. 823390075Sobrien (current_vtt_parm): New macro. 823490075Sobrien (struct lang_decl_flags): Add has_vtt_parm_p, remove vtt_parm. 823590075Sobrien (DECL_HAS_VTT_PARM_P): New macro. 823690075Sobrien (DECL_VTT_PARM): Remove. 823790075Sobrien (FUNCTION_FIRST_USER_PARMTYPE, FUNCTION_FIRST_USER_PARM): New macros. 823890075Sobrien * decl.c (duplicate_decls): Only copy the operator code if 823990075Sobrien appropriate. 824090075Sobrien (start_function): Set current_vtt_parm. 824190075Sobrien (lang_mark_tree): Don't mark vtt_parm. 824290075Sobrien * decl2.c (maybe_retrofit_in_chrg): Do add the VTT parm to 824390075Sobrien DECL_ARGUMENTS. Set DECL_HAS_VTT_PARM_P. 824490075Sobrien * class.c (build_clone): Maybe remove the VTT parm. 824590075Sobrien * optimize.c (maybe_clone_body): Set up the VTT parm. 824690075Sobrien * pt.c (copy_default_args_to_explicit_spec): Preserve the VTT parm. 824790075Sobrien * call.c (build_over_call): Just allow the VTT arg. 824890075Sobrien * method.c (make_thunk): Don't set DECL_VTT_PARM. 824990075Sobrien (do_build_copy_constructor): Use FUNCTION_FIRST_USER_PARM. 825090075Sobrien (synthesize_method): Use FUNCTION_FIRST_USER_PARMTYPE. 825190075Sobrien * decl.c (grokdeclarator, copy_args_p, grok_ctor_properties): Likewise. 825290075Sobrien * error.c (dump_function_decl): Likewise. 825390075Sobrien * call.c (build_user_type_conversion_1, convert_like_real): Abort 825490075Sobrien if we try to call a constructor with in-charge or VTT parms. 825590075Sobrien * method.c (skip_artificial_parms_for): New fn. 825690075Sobrien * call.c (add_function_candidate, build_over_call): Call it. 825790075Sobrien * call.c (build_new_method_call): Use current_vtt_parm. 825890075Sobrien * init.c (expand_virtual_init): Likewise. 825990075Sobrien * class.c (same_signature_p): No longer static. 826090075Sobrien * cp-tree.h: Declare it. 826190075Sobrien * search.c (look_for_overrides_r): Use it. 826252284Sobrien 826390075Sobrien2001-02-17 Mark Mitchell <mark@codesourcery.com> 826452284Sobrien 826590075Sobrien * cp-tree.h (new_abi_rtti_p): Remove. 826690075Sobrien (name_mangling_version): Likewise. 826790075Sobrien (flag_do_squangling): Likewise. 826890075Sobrien * class.c (build_rtti_vtbl_entries): Remove old ABI support. 826990075Sobrien * decl.c (grokfndecl): Likewise. 827090075Sobrien * decl2.c (name_mangling_version): Remove. 827190075Sobrien (flag_do_squangling): Likewise. 827290075Sobrien (lang_f_options): Remove `squangle'. 827390075Sobrien (unsupported_options): Add `squangle'. 827490075Sobrien (cxx_decode_option): Issue a warning about uses of 827590075Sobrien -fname-mangling-version. 827690075Sobrien (finish_file): Remove old ABI support. 827790075Sobrien * pt.c (check_explicit_specialization): Likewise. 827890075Sobrien (tsubst_decl): Likewise. 827990075Sobrien * rtti.c (init_rtti_processing): Likewise. 828090075Sobrien (build_headof): Likewise. 828190075Sobrien (get_tinfo_decl_dynamic): Likewise. 828290075Sobrien (tinfo_from_decl): Likewise. 828390075Sobrien (build_dynamic_cast_1): Likewise. 828490075Sobrien (synthesize_tinfo_var): Likewise. 828590075Sobrien * init.c (build_new): Allow enumeration types for the array-bounds 828690075Sobrien in a direct-new-declarator. 828752284Sobrien 828890075Sobrien * semantics.c (finish_typeof): Resolve OFFSET_REFs. 828952284Sobrien 829090075Sobrien * pt.c (check_explicit_specialization): Copy TREE_PRIVATE and 829190075Sobrien TREE_PROTECTED from the template being specialized. 829252284Sobrien 829390075Sobrien2001-02-17 Jason Merrill <jason@redhat.com> 829452284Sobrien 829590075Sobrien * decl2.c (build_artificial_parm): Set TREE_READONLY. 829652284Sobrien 829790075Sobrien * decl.c (bad_specifiers): Allow throw specs on things with 829890075Sobrien pointer-to-function or -member-function type. 829990075Sobrien * init.c (build_default_init): Don't use a CONSTRUCTOR to initialize 830090075Sobrien a pmf. 830152284Sobrien 830290075Sobrien2001-02-17 Mark Mitchell <mark@codesourcery.com> 830352284Sobrien 830490075Sobrien * call.c (check_dtor_name): Handle template names correctly. 830552284Sobrien 830690075Sobrien2001-02-16 Jason Merrill <jason@redhat.com> 830718334Speter 830890075Sobrien * cp-tree.h (DECL_USE_VTT_PARM): Remove. 830990075Sobrien * decl2.c (maybe_retrofit_in_chrg): Don't create it. 831090075Sobrien * optimize.c (maybe_clone_body): Don't substitute it. 831190075Sobrien * call.c (build_new_method_call): Check in_chrg instead. 831290075Sobrien * init.c (expand_virtual_init): Likewise. 831318334Speter 831490075Sobrien2001-02-16 Gabriel Dos Reis <gdr@codesourcery.com> 831552284Sobrien 831690075Sobrien * decl.c (check_tag_decl): Make sure a typedef for an anonymous 831790075Sobrien class-type introduces at least a type-name. 831852284Sobrien 831990075Sobrien2001-02-16 Jakub Jelinek <jakub@redhat.com> 832052284Sobrien 832190075Sobrien * call.c (convert_like_real): Create a temporary for non-lvalue. 832252284Sobrien 832390075Sobrien2001-02-16 Jeffrey Oldham <oldham@codesourcery.com> 832452284Sobrien 832590075Sobrien * cp-tree.h: Fix typos in comments. 832652284Sobrien 832790075Sobrien2001-02-16 Jason Merrill <jason@redhat.com> 832818334Speter 832990075Sobrien * optimize.c (remap_block): If we're compiling a clone, pass the 833090075Sobrien new block to insert_block. 833152284Sobrien 833290075Sobrien2001-02-16 Mark Mitchell <mark@codesourcery.com> 833318334Speter 833490075Sobrien * semantics.c (finish_asm_stmt): Robustify. 833552284Sobrien 833690075Sobrien2001-02-15 Mark Mitchell <mark@codesourcery.com> 833752284Sobrien 833890075Sobrien * pt.c (push_template_decl_real): Don't remangle the name of a 833990075Sobrien class template. 834052284Sobrien 834190075Sobrien2001-02-15 Jim Meyering <meyering@lucent.com> 834252284Sobrien 834390075Sobrien * Make-lang.in (c++.install-common): Depend on installdirs. 834490075Sobrien (c++.install-info): Likewise. 834590075Sobrien (c++.install-man): Likewise. 834652284Sobrien 834790075Sobrien2001-02-15 Mark Mitchell <mark@codesourcery.com> 834852284Sobrien 834990075Sobrien * typeck2.c (build_m_component_ref): Robustify. 835018334Speter 835190075Sobrien2001-02-15 Alexandre Oliva <aoliva@redhat.com> 835250397Sobrien 835390075Sobrien * friend.c (do_friend): Don't take the nested [template] class 835490075Sobrien into account when deciding whether to warn about the friend 835590075Sobrien function not referring to a template function. 835652284Sobrien 835790075Sobrien2001-02-14 Jakub Jelinek <jakub@redhat.com> 835852284Sobrien 835990075Sobrien * typeck.c (build_unary_op): Clarify error message. 836050397Sobrien 836190075Sobrien2001-02-08 Aldy Hernandez <aldyh@redhat.com> 836250397Sobrien 836390075Sobrien * parse.y (component_constructor_declarator): allow optional 836490075Sobrien parentheses around constructor class name. 836552284Sobrien 836690075Sobrien2001-02-14 Nathan Sidwell <nathan@codesourcery.com> 836752284Sobrien 836890075Sobrien * cp-tree.h (setup_vtbl_ptr): Move prototype to semantics.c 836990075Sobrien section. 837090075Sobrien * init.c (emit_base_init): Remove incorrect comment about 837190075Sobrien virtual bases. 837290075Sobrien * method.c (make_thunk): Fix comment alignment. 837352284Sobrien 837490075Sobrien2001-02-14 Nathan Sidwell <nathan@codesourcery.com> 837552284Sobrien 837690075Sobrien Kill remnants of this is variable. 837790075Sobrien * cp-tree.h (flag_this_is_variable): Remove. 837890075Sobrien * decl2.c (flag_this_is_variable): Remove. 837990075Sobrien * class.c (fixed_type_or_null): Add cdtor parm. Adjust. 838090075Sobrien (build_vbase_path): The path is non-static, even in a cdtor. 838190075Sobrien (resolves_to_fixed_type_p): Add additional return value. 838290075Sobrien * search.c (init_vbase_pointers): Adjust. 838390075Sobrien * tree.c (lvalue_p_1): Adjust. 838490075Sobrien * typeck.c (mark_addressable): Adjust. 838552284Sobrien 838690075Sobrien2001-02-14 Nathan Sidwell <nathan@codesourcery.com> 838752284Sobrien 838890075Sobrien * pt.c (unify): Don't check cv quals of array types. 838952284Sobrien 839090075Sobrien2001-02-14 Nathan Sidwell <nathan@codesourcery.com> 839152284Sobrien 839290075Sobrien * tree.c (cp_build_qualified_type_real): Use CP_TYPE_QUALS to 839390075Sobrien check whether we already have the type. 839452284Sobrien 839590075Sobrien2001-02-13 Mark Mitchell <mark@codesourcery.com> 839652284Sobrien 839790075Sobrien * cp-tree.h (CLASSTYPE_DESTRUCTORS): Fix typo in comment. 839890075Sobrien * call.c (build_op_delete_call): Simplify to remove duplicate 839990075Sobrien code. 840090075Sobrien * class.c (clone_function_decl): Don't build the deleting variant 840190075Sobrien of a non-virtual destructor. 840290075Sobrien * decl.c (finish_destructor_body): Don't call delete if this is a 840390075Sobrien non-virtual destructor. 840490075Sobrien * init.c (build_delete): Explicitly call `operator delete' when 840590075Sobrien deleting an object with a non-virtual destructor. 840652284Sobrien 840790075Sobrien2001-02-13 Jason Merrill <jason@redhat.com> 840852284Sobrien 840990075Sobrien * lang-specs.h: Add more __EXCEPTIONS. 841052284Sobrien 841190075Sobrien2001-02-12 Nathan Sidwell <nathan@codesourcery.com> 841252284Sobrien 841390075Sobrien * typeck2.c (process_init_constructor): Check 841490075Sobrien TREE_HAS_CONSTRUCTOR before issuing missing init warning. 841552284Sobrien 841690075Sobrien2001-02-12 Nathan Sidwell <nathan@codesourcery.com> 841752284Sobrien 841890075Sobrien * pt.c (maybe_adjust_types_for_deduction, DEDUCE_ORDER case): 841990075Sobrien Remove spurious information in comment. Allow further 842090075Sobrien adjustments of REFERENCE_TYPE args. 842152284Sobrien 842290075Sobrien2001-02-12 Nathan Sidwell <nathan@codesourcery.com> 842352284Sobrien 842490075Sobrien * errfn.c (cp_deprecated): Tweak diagnostic text. 842590075Sobrien * parse.y (new_initializer): Deprecate initializer lists 842690075Sobrien extension. 842752284Sobrien 842890075Sobrien2001-02-12 Mark Mitchell <mark@codesourcery.com> 842952284Sobrien 843090075Sobrien Remove old ABI support. 843152284Sobrien 843290075Sobrien2001-02-11 Mark Mitchell <mark@codesourcery.com> 843352284Sobrien 843490075Sobrien * decl2.c (flag_vtable_thunks): Always set it to 1. 843590075Sobrien (flag_new_abi): Likewise. 843690075Sobrien * lang-specs.h: Remove conditional on ENABLE_NEW_GXX_ABI. 843752284Sobrien 843890075Sobrien * Makefile.in (g++spec.o): Fix typo. 843952284Sobrien 844090075Sobrien2001-02-09 Jason Merrill <jason@redhat.com> 844152284Sobrien 844290075Sobrien * lang-specs.h: Restore definition of __EXCEPTIONS. 844352284Sobrien 844490075Sobrien2001-02-08 Jason Merrill <jason@redhat.com> 844552284Sobrien 844690075Sobrien * search.c (shared_member_p): New function. 844790075Sobrien (lookup_field_r): Use it. 844890075Sobrien * cp-tree.h (SHARED_MEMBER_P): Remove. 844952284Sobrien 845090075Sobrien * method.c (process_overload_item): Handle template-dependent array 845190075Sobrien bounds. 845290075Sobrien * pt.c (type_unification_real): If we end up with undeduced nontype 845390075Sobrien parms, try again. 845452284Sobrien 845590075Sobrien * decl.c (lookup_name_real): Tweak warning to refer to decls, not 845690075Sobrien types. 845752284Sobrien 845890075Sobrien * typeck2.c (friendly_abort): Don't say anything if we have 845990075Sobrien earlier errors or sorries. 846052284Sobrien 846190075Sobrien * decl.c (check_tag_decl): Notice attempts to redefine bool and 846290075Sobrien wchar_t. Ignore if in_system_header. 846352284Sobrien 846490075Sobrien * decl.c (maybe_push_cleanup_level): New fn... 846590075Sobrien (start_decl_1): ...split out from here. 846690075Sobrien * cvt.c (build_up_reference): Use it. 846790075Sobrien * cp-tree.h: Declare it. 846852284Sobrien 846990075Sobrien2001-02-07 Mark Mitchell <mark@codesourcery.com> 847052284Sobrien 847190075Sobrien * lang-specs.h: Use CPLUSPLUS_CPP_SPEC for the preprocessor 847290075Sobrien spec. 847352284Sobrien 847490075Sobrien2001-02-06 Nathan Sidwell <nathan@codesourcery.com> 847552284Sobrien 847690075Sobrien * pt.c (lookup_template_class): Make sure it's a primary 847790075Sobrien template or template_template_parm when called from the parser. 847890075Sobrien (instantiate_template_class): Add assertion. 847952284Sobrien 848090075Sobrien2001-02-05 Alexandre Oliva <aoliva@redhat.com> 848152284Sobrien 848290075Sobrien * method.c (build_mangled_name) [old abi]: Protect flush_repeats() 848390075Sobrien from error_mark_node. 848452284Sobrien 848590075Sobrien2001-02-05 Nathan Sidwell <nathan@codesourcery.com> 848652284Sobrien 848790075Sobrien Fix specification and implementation bugs in V3 ABI 848890075Sobrien construction vtables. 848990075Sobrien * cp-tree.h (flag_dump_class_layout): New flag. 849090075Sobrien (BINFO_OVERRIDE_ALONG_VIRTUAL_PATH_P): Remove. 849190075Sobrien (BINFO_LOST_PRIMARY_P): New flag. 849290075Sobrien (SET_BINFO_NEW_VTABLE_MARKED): Adjust asserts. 849390075Sobrien (BINFO_PRIMARY_MARKED_P): Rename to ... 849490075Sobrien (BINFO_PRIMARY_P): ... here. 849590075Sobrien (binfo_via_virtual): New prototype. 849690075Sobrien * decl2.c (flag_dump_class_layout): New flag. 849790075Sobrien (cxx_decode_option): Set it. Adjust -fdump-translation-unit to 849890075Sobrien use `=' as a file name separator. 849990075Sobrien * init.c (dfs_initialize_vtbl_ptrs): Walk into virtual primary 850090075Sobrien bases. 850190075Sobrien (build_vtbl_address): If this is a virtual primary base, then 850290075Sobrien get the vtbl of what it is ultimately primary for. 850390075Sobrien * search.c (dfs_skip_nonprimary_vbases_unmarkedp): Adjust 850490075Sobrien for BINFO_PRIMARY_P. 850590075Sobrien (dfs_skip_nonprimary_vbases_markedp): Likewise. 850690075Sobrien (get_shared_vbase_if_not_primary): Likewise. 850790075Sobrien (dfs_get_pure_virtuals): Likewise. 850890075Sobrien (expand_upcast_fixups): Likewise. 850990075Sobrien (fixup_virtual_upcast_offsets): Likewise. 851090075Sobrien (dfs_find_vbase_instance): Likewise. 851190075Sobrien (find_vbase_instance): Likewise. 851290075Sobrien (binfo_from_vbase): Adjust comment to reflect reality. 851390075Sobrien (binfo_via_virtual): New function. 851490075Sobrien * class.c (VTT_TOP_LEVEL_P, VTT_MARKED_BINFO_P): New macros 851590075Sobrien for binfo walking during VTT construction. 851690075Sobrien (dfs_mark_primary_bases): Remove. 851790075Sobrien (force_canonical_binfo_r): New function. 851890075Sobrien (force_canonical_binfo): New function. 851990075Sobrien (mark_primary_virtual_base): New function. 852090075Sobrien (mark_primary_bases): Walk in inheritance graph order, use 852190075Sobrien mark_primary_virtual_base. 852290075Sobrien (determine_primary_base): Use some more intermediate variables. 852390075Sobrien (dfs_find_final_overrider): Don't check for overriding along a 852490075Sobrien virtual path. 852590075Sobrien (dfs_modify_vtables): Walk into primary virtual bases too. 852690075Sobrien (walk_subobject_offsets): Adjust for BINFO_PRIMARY_P. 852790075Sobrien (build_base_fields): Likewise. 852890075Sobrien (dfs_set_offset_for_unshared_vbases): Likewise. 852990075Sobrien (layout_virtual_bases): Likewise. 853090075Sobrien (end_of_class): Likewise. 853190075Sobrien (finish_struct_1): Call dump_class_hierarchy, if requested. 853290075Sobrien (dfs_get_primary_binfo): Use BINFO_TYPE for binfos. 853390075Sobrien (dump_class_hierarchy_r): Add stream parameter. Emit more information. 853490075Sobrien (dump_class_hierarchy): Add file parameter. Append to file, if 853590075Sobrien required. 853690075Sobrien (finish_vtbls): Adjust accumulate_vtbl_inits call. 853790075Sobrien Use canonical base for virtual bases. 853890075Sobrien (build_vtt): Add more comments. Adjust build_vtt_inits call. 853990075Sobrien (build_vtt_inits): Remove VIRTUAL_VTTS_P parm. 854090075Sobrien Only set BINFO_VPTR_INDEX on top level. Use VTT_TOP_LEVEL_P, 854190075Sobrien VTT_MARKED_BINFO_P for binfo walking. Use canonical vbase for 854290075Sobrien virtual VTTs. 854390075Sobrien (dfs_build_secondary_vptr_vtt_inits): Extract VTT_TOP_LEVEL_P 854490075Sobrien from DATA. We want virtual primary bases and all bases via virtual. 854590075Sobrien Only set BINFO_VPTR_INDEX for top level. Look up from a primary 854690075Sobrien virtual base when not a construction vtable. 854790075Sobrien (dfs_ctor_vtable_bases_queue_p): New DFS predicate. 854890075Sobrien (build_ctor_vtbl_group): Adjust accumulate_vtbl_inits call. 854990075Sobrien Use canonical bases when processing virtual bases. 855090075Sobrien (accumulate_vtbl_inits): We're interested in any base via a 855190075Sobrien virtual path. 855290075Sobrien (dfs_accumulate_vtbl_inits): If this is a primary virtual base 855390075Sobrien within a construction vtable, determine what is being overridden. 855490075Sobrien (build_vtbl_initializer): Add more comments 855590075Sobrien (add_vcall_offset_vtbl_entries_1): Adjust comment. 855690075Sobrien (build_rtti_vtbl_entries): Check if the base has lost its 855790075Sobrien primary. 855852284Sobrien 855990075Sobrien2001-02-05 Mark Mitchell <mark@codesourcery.com> 856052284Sobrien 856190075Sobrien * Makefile.in (g++spec.o): Adjust use of DRIVER_DEFINES. 856252284Sobrien 856390075SobrienSun Feb 4 15:52:44 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 856452284Sobrien 856590075Sobrien * decl.c (pushdecl): Call abort instead of fatal. 856690075Sobrien * except.c (decl_is_java_type): Call fatal_error instead of fatal. 856790075Sobrien * init.c (build_new_1): Likewise. 856890075Sobrien (build_java_class_ref): Call internal_error and fatal_error, not fatal. 856990075Sobrien * decl.c (build_typename_type): hash_table_init now returns void. 857090075Sobrien decl.c (init_decl_processing): Make an error non-fatal. 857152284Sobrien 857290075Sobrien2001-02-04 Mark Mitchell <mark@codesourcery.com> 857352284Sobrien 857490075Sobrien * cp-tree.h (CLASSTYPE_INTERFACE_UNKNOWN): Fix formatting. 857590075Sobrien Document. 857690075Sobrien (CLASSTYPE_INTERFACE_KNOWN): Likewise. 857790075Sobrien (SET_CLASSTYPE_INTERFACE_UNKNOWN_X): Likewise. 857890075Sobrien (SET_CLASSTYPE_INTERFACE_UNKNOWN): Likewise. 857990075Sobrien (SET_CLASSTYPE_INTERFACE_KNOWN): Likewise. 858090075Sobrien * decl.c (maybe_commonize_var): Use the new name-mangling where 858190075Sobrien appropriate. 858290075Sobrien * decl2.c (comdat_linkage): Enhance comments. Make all 858390075Sobrien compiler-generated things static, if COMDAT is not available. 858490075Sobrien (get_tinfo_decl): Do not make typeinfo objects that belong in the 858590075Sobrien library COMDAT. 858690075Sobrien (tinfo_base_init): Use the correct mangled name for typeinfo 858790075Sobrien strings, and push them into the global scope. 858890075Sobrien (typeinfo_in_lib_p): New function. 858990075Sobrien (synthesize_tinfo_var): Use it. 859090075Sobrien (create_real_tinfo_var): Likewise. 859152284Sobrien 859290075Sobrien2001-02-03 Jakub Jelinek <jakub@redhat.com> 859352284Sobrien 859490075Sobrien * decl.c (push_class_binding): Use context_for_name_lookup instead 859590075Sobrien of CP_DECL_CONTEXT. 859690075Sobrien * search.c (context_for_name_lookup): Remove static. Check for NULL 859790075Sobrien context in the loop. 859890075Sobrien * cp-tree.h (context_for_name_lookup): Add prototype. 859952284Sobrien 860090075Sobrien2001-02-02 Jakub Jelinek <jakub@redhat.com> 860152284Sobrien 860290075Sobrien * cp-tree.h (build_expr_ptr_wrapper, can_free): Remove. 860390075Sobrien * tree.c (build_expr_ptr_wrapper, can_free, permanent_obstack): 860490075Sobrien Remove. 860590075Sobrien * call.c (convert_class_to_reference, build_user_type_conversion_1, 860690075Sobrien add_warning): Change build_expr_ptr_wrapper to build_ptr_wrapper. 860752284Sobrien 860890075Sobrien2001-02-02 Mark Mitchell <mark@codesourcery.com> 860952284Sobrien 861090075Sobrien * Make-lang.in (g++spec.o): Add DRIVER_DEFINES to the list 861190075Sobrien of macros used when compiling g++spec.c. 861290075Sobrien * g++spec.c (lang_specific_driver): Link with the shared 861390075Sobrien libgcc by default. 861452284Sobrien 861590075Sobrien2001-01-29 Joseph S. Myers <jsm28@cam.ac.uk> 861652284Sobrien 861790075Sobrien * decl2.c (build_expr_from_tree), lex.c (make_pointer_declarator, 861890075Sobrien make_reference_declarator, make_call_declarator), method.c 861990075Sobrien (implicitly_declare_fn), parse.y (namespace_using_decl, 862090075Sobrien notype_unqualified_id, expr_or_declarator, new_type_id, 862190075Sobrien after_type_declarator, direct_after_type_declarator, 862290075Sobrien notype_declarator, complex_notype_declarator, 862390075Sobrien complex_direct_notype_declarator, qualified_id, 862490075Sobrien notype_qualified_id, overqualified_id, direct_new_declarator, 862590075Sobrien absdcl, direct_abstract_declarator, conversion_declarator), pt.c 862690075Sobrien (tsubst), semantics.c (begin_constructor_declarator): Use build_nt 862790075Sobrien instead of build_parse_node. 862852284Sobrien 862990075Sobrien2001-01-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 863052284Sobrien 863190075Sobrien * cp-tree.h (cp_tree_index): Delete CPTI_MINUS_ONE. 863290075Sobrien (minus_one_node): Moved to top level gcc directory. Renamed 863390075Sobrien to integer_minus_one_node. 863452284Sobrien 863590075Sobrien * init.c (init_init_processing): Don't set minus_one_node. 863690075Sobrien (build_vec_init): Use integer_minus_one_node. 863752284Sobrien 863890075Sobrien * rtti.c (get_tinfo_decl_dynamic): Likewise. 863952284Sobrien 864090075Sobrien2001-01-28 Jakub Jelinek <jakub@redhat.com> 864152284Sobrien 864290075Sobrien * optimize.c (copy_body_r): If MODIFY_EXPR has both arguments 864390075Sobrien identical and they would be replaced with constant, remove 864490075Sobrien MODIFY_EXPR from the tree. 864552284Sobrien 864690075Sobrien2001-01-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 864752284Sobrien 864890075Sobrien * Make-lang.in: Remove all dependencies on defaults.h. 864990075Sobrien * call.c: Don't include defaults.h. 865090075Sobrien * decl.c: Likewise. 865190075Sobrien * decl2.c: Likewise. 865290075Sobrien * except.c: Likewise. 865390075Sobrien * pt.c: Likewise. 865490075Sobrien * rtti.c: Likewise. 865590075Sobrien * tree.c: Likewise. 865690075Sobrien * typeck.c: Likewise. 865752284Sobrien 865890075Sobrien2001-01-25 Jakub Jelinek <jakub@redhat.com> 865952284Sobrien 866090075Sobrien * mangle.c (write_mangled_name, write_encoding): Mangle overloaded 866190075Sobrien operators even in "C" linkage. 866290075Sobrien * method.c (set_mangled_name_for_decl): Likewise. 866390075Sobrien * decl.c (grokfndecl): Call set_mangled_name_for_decl even for 866490075Sobrien overloaded operators in "C" linkage. 866552284Sobrien 866690075Sobrien2001-01-24 Nathan Sidwell <nathan@codesourcery.com> 866752284Sobrien 866890075Sobrien * pt.c (tsubst_decl): Remove IN_DECL parameter. 866990075Sobrien (tsubst_arg_types): Check parameter is not void. 867090075Sobrien (tsubst): Adjust tsubst_decl call. 867152284Sobrien 867290075Sobrien2001-01-24 Nathan Sidwell <nathan@codesourcery.com> 867352284Sobrien 867490075Sobrien * call.c (add_builtin_candidate): Quote std properly, from 867590075Sobrien previous change. 867652284Sobrien 867790075Sobrien2001-01-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 867852284Sobrien 867990075Sobrien * pt.c (check_explicit_specialization): Clone constructors and 868090075Sobrien destructors. 868152284Sobrien 868290075Sobrien2001-01-23 Nathan Sidwell <nathan@codesourcery.com> 868352284Sobrien 868490075Sobrien * decl.c (grokdeclarator): Don't presume DECL_LANG_SPECIFIC 868590075Sobrien indicates anything special about template depth. Make sure we 868690075Sobrien only count the user visible template classes. 868752284Sobrien 868890075Sobrien2001-01-23 Nathan Sidwell <nathan@codesourcery.com> 868952284Sobrien 869090075Sobrien * call.c (build_conv): Typo in comment. 869190075Sobrien (add_builtin_candidate): Add more explanation. 869290075Sobrien Remove extra test for ENUMERAL_TYPE in {PRE,POST}INCREMENT_EXPR. 869390075Sobrien Allow ENUMERAL_TYPEs for relops and eqops. Add both candidates 869490075Sobrien when we have enumeral types. 869590075Sobrien (add_builtin_candidates): Add more explanation. Add ENUMERAL_TYPE 869690075Sobrien candidates for relops and eqops. 869790075Sobrien (joust): Simplify control flow. Allow a non-template user 869890075Sobrien function to hide a builtin. 869950397Sobrien 870090075Sobrien2001-01-22 Nathan Sidwell <nathan@codesourcery.com> 870152284Sobrien 870290075Sobrien * cp-tree.h (unification_kind_t): Add DEDUCE_ORDER. 870390075Sobrien (more_specialized): Add deduction parameter. 870490075Sobrien * call.c (joust): Adjust more_specialized call. 870590075Sobrien * pt.c (UNIFY_ALLOW_OUTER_MORE_CV_QUAL, 870690075Sobrien UNIFY_ALLOW_OUTER_LESS_CV_QUAL): New unify flags. 870790075Sobrien (get_bindings_order): Remove. 870890075Sobrien (get_bindings_real): Add DEDUCE parameter. 870990075Sobrien (maybe_adjust_types_for_deduction): Return extra unify flags. Do 871090075Sobrien REFERENCE_TYPE jig for DEDUCE_ORDER. 871190075Sobrien (type_unification_real): Deal with DEDUCE_ORDER. Use result of 871290075Sobrien maybe_adjust_types_for_deduction. 871390075Sobrien (more_specialized): Add DEDUCE parameter. Call get_bindings_real 871490075Sobrien directly. 871590075Sobrien (try_one_overload): Use result of maybe_adjust_types_for_deduction. 871690075Sobrien (check_cv_quals_for_unify): Use new unify qualifier flags. 871790075Sobrien (unify): Clear new unify qualifier flags. 871890075Sobrien (get_bindings_real): Add DEDUCE parameter. 871990075Sobrien (get_bindings): Adjust call to get_bindings_real. 872090075Sobrien (get_bindings_overload): Likewise. 872190075Sobrien (most_specialized_instantiation): Adjust call to 872290075Sobrien more_specialized. 872352284Sobrien 872490075Sobrien2001-01-19 Jason Merrill <jason@redhat.com> 872552284Sobrien 872690075Sobrien * decl2.c (flag_vtable_thunks): Also depend on ENABLE_NEW_GXX_ABI. 872752284Sobrien 872890075Sobrien * decl.c (init_decl_processing): Just force -fvtable-thunks on if 872990075Sobrien -fnew-abi. 873052284Sobrien 873190075Sobrien2001-01-19 Ute Pelkmann <scope.muc@t-online.de> 873252284Sobrien 873390075Sobrien * decl2.c (arg_assoc_class): Fix double iteration logic. 873452284Sobrien 873590075Sobrien2001-01-19 Jason Merrill <jason@redhat.com> 873652284Sobrien 873790075Sobrien * init.c (build_delete): Always call convert_force to strip cv-quals. 873852284Sobrien 873990075Sobrien * decl2.c (flag_new_abi): Depend on ENABLE_NEW_GXX_ABI. 874090075Sobrien * lang-specs.h: Default ABI depends on ENABLE_NEW_GXX_ABI. 874190075Sobrien * g++spec.c: Don't look at ENABLE_NEW_GXX_ABI. 874252284Sobrien 874390075Sobrien2001-01-19 Nathan Sidwell <nathan@codesourcery.com> 874452284Sobrien 874590075Sobrien * search.c (get_vbase_1): Count only virtual bases. 874652284Sobrien 874790075Sobrien2001-01-19 Nathan Sidwell <nathan@codesourcery.com> 874852284Sobrien 874990075Sobrien * class.c (duplicate_tag_error): Robustify flag clearing. 875052284Sobrien 875190075Sobrien2001-01-19 Nathan Sidwell <nathan@codesourcery.com> 875252284Sobrien 875390075Sobrien * cp-tree.h (lookup_template_class): Add complain parm. 875490075Sobrien * decl.c (lookup_namespace_name): Adjust call to 875590075Sobrien lookup_template_class. 875690075Sobrien (make_typename_type): Likewise. 875790075Sobrien * semantics.c (finish_template_type): Likewise. 875890075Sobrien * pt.c (lookup_template_class): Add complain parm. Adjust. 875990075Sobrien (tsubst_aggr_type): Pass COMPLAIN down to lookup_template_class. 876090075Sobrien (tsubst): Likewise. 876152284Sobrien 876290075Sobrien2001-01-19 Nathan Sidwell <nathan@codesourcery.com> 876352284Sobrien 876490075Sobrien * pt.c (copy_default_args_to_explicit_spec): Preserve 876590075Sobrien object's CV quals. Reorganize. 876652284Sobrien 876790075Sobrien2001-01-18 Nathan Sidwell <nathan@codesourcery.com> 876852284Sobrien 876990075Sobrien * typeck.c (build_modify_expr): Say `initialization' for 877090075Sobrien INIT_EXPRs. 877190075Sobrien * init.c (build_default_init): Convert to enumeral type, if 877290075Sobrien needed. 877352284Sobrien 877490075Sobrien2001-01-18 Jakub Jelinek <jakub@redhat.com> 877552284Sobrien 877690075Sobrien * parse.y (nomods_initdcl0): Properly set things up for 877790075Sobrien initdcl0_innards. 877852284Sobrien 877990075Sobrien2001-01-18 Nathan Sidwell <nathan@codesourcery.com> 878052284Sobrien 878190075Sobrien * pt.c (UNIFY_ALLOW_OUTER_LEVEL): New unify flag. 878290075Sobrien (type_unification_real): Set it. 878390075Sobrien (unify): Use it. 878452284Sobrien 878590075Sobrien2001-01-18 Nathan Sidwell <nathan@codesourcery.com> 878652284Sobrien 878790075Sobrien * decl.c (finish_destructor_body): Convert to vbase pointer here. 878852284Sobrien 878990075Sobrien2001-01-18 Nathan Sidwell <nathan@codesourcery.com> 879052284Sobrien 879190075Sobrien * semantics.c (begin_class_definition): Check we're not inside a 879290075Sobrien template parm list. 879352284Sobrien 879490075Sobrien2001-01-18 Nathan Sidwell <nathan@codesourcery.com> 879552284Sobrien 879690075Sobrien * tree.c (walk_tree, TREE_LIST): Don't walk the TREE_PURPOSE of 879790075Sobrien BASELINK_P. 879852284Sobrien 879990075Sobrien2001-01-16 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 880052284Sobrien 880190075Sobrien * typeck.c (build_function_call_real): Call fold on the CALL_EXPR. 880290075Sobrien * call.c (build_over_call): Add comment. 880352284Sobrien 880490075Sobrien2001-01-16 Daniel Berlin <dberlin@redhat.com> 880552284Sobrien 880690075Sobrien * cvt.c (ocp_convert): Handle vector type conversion 880790075Sobrien * typeck2.c (digest_init): Handle vector type initializations 880852284Sobrien 880990075Sobrien2001-01-16 Phil Edwards <pme@sources.redhat.com> 881052284Sobrien 881190075Sobrien * g++spec.c: Don't add libraries needlessly if -fsyntax-only 881290075Sobrien was given. 881352284Sobrien 881490075Sobrien2001-01-15 Nathan Sidwell <nathan@codesourcery.com> 881552284Sobrien 881690075Sobrien * pt.c (check_nontype_parm): Rename to ... 881790075Sobrien (invalid_nontype_parm_type_p): ... here. 881890075Sobrien (process_template_parm): Adjust. 881990075Sobrien (convert_template_argument): Adjust. 882052284Sobrien 882190075Sobrien2001-01-15 Nathan Sidwell <nathan@codesourcery.com> 882252284Sobrien 882390075Sobrien * pt.c (check_nontype_parm): New function. 882490075Sobrien (process_template_parm): Use it. 882590075Sobrien (convert_template_argument): Use it. 882690075Sobrien (convert_nontype_argument, RECORD_TYPE): Assert it's a ptr to 882790075Sobrien member. 882852284Sobrien 882990075Sobrien2001-01-14 Jeffrey Oldham <oldham@codesourcery.com> 883052284Sobrien 883190075Sobrien * tree.c: Add defaults.h 883290075Sobrien (cp_valid_lang_attribute): Incorporate SUPPORTS_INIT_PRIORITY. 883390075Sobrien * Make-lang.in (cp/tree.o): Add defaults.h. 883452284Sobrien 883590075Sobrien2001-01-13 Joseph S. Myers <jsm28@cam.ac.uk> 883652284Sobrien 883790075Sobrien * Make-lang.in (CXX_C_OBJS): Add c-format.o. 883852284Sobrien 883990075Sobrien2001-01-13 Joseph S. Myers <jsm28@cam.ac.uk> 884052284Sobrien 884190075Sobrien * g++.1: Change to be ".so man1/gcc.1". 884252284Sobrien 884390075Sobrien2001-01-13 Joseph S. Myers <jsm28@cam.ac.uk> 884452284Sobrien 884590075Sobrien * Make-lang.in (c++.info, c++.install-info): Build and install g++ 884690075Sobrien internals info. 884790075Sobrien (c++.uninstall, c++.maintainer-clean): Remove g++ internals info. 884890075Sobrien ($(srcdir)/cp/g++int.info): New target. 884990075Sobrien * gxxint.texi: Add info directory entry. Use @@ in email address. 885090075Sobrien * .cvsignore: Update. 885152284Sobrien 885290075Sobrien2001-01-12 Nathan Sidwell <nathan@codesourcery.com> 885352284Sobrien 885490075Sobrien * typeck.c (build_c_cast): Do template processing earlier. 885590075Sobrien Always pedwarn on array casts. 885652284Sobrien 885790075Sobrien2001-01-12 Nathan Sidwell <nathan@codesourcery.com> 885852284Sobrien 885990075Sobrien * friend.c (make_friend_class): Make sure a templated class is 886090075Sobrien actually a template. 886152284Sobrien 886290075Sobrien2001-01-11 Nathan Sidwell <nathan@codesourcery.com> 886352284Sobrien 886490075Sobrien * decl2.c (get_guard): Set linkage from guarded decl. 886552284Sobrien 886690075Sobrien2001-01-11 Nathan Sidwell <nathan@codesourcery.com> 886752284Sobrien 886890075Sobrien * call.c (convert_default_arg): Check for unprocessed 886990075Sobrien DEFAULT_ARG. 887090075Sobrien * cp-tree.h (replace_defarg): Move to spew.c. 887190075Sobrien (maybe_snarf_defarg, add_defarg_fn, do_pending_defargs): Move to 887290075Sobrien spew.c, which is where they really are. 887390075Sobrien (done_pending_defargs): Declare. 887490075Sobrien (unprocessed_defarg_fn): Declare. 887590075Sobrien * decl.c (replace_defarg): Move to spew.c 887690075Sobrien * parse.y (structsp): Call done_pending_defargs. 887790075Sobrien * spew.c (defarg_fns): Rearrange list structure. 887890075Sobrien (defarg_fnsdone): New static variable. 887990075Sobrien (defarg_depfns): New static variable. 888090075Sobrien (init_spew): Adjust. 888190075Sobrien (add_defarg_fn): Store the type in TREE_TYPE. 888290075Sobrien (do_pending_defargs): Detect and deal with ordering constraints 888390075Sobrien and circularity. 888490075Sobrien (done_pending_defargs): New function. 888590075Sobrien (unprocessed_defarg_fn): New function. 888690075Sobrien (replace_defarg): Moved from decl.c. Robustify. Don't save 888790075Sobrien if circularity detected. 888852284Sobrien 888990075Sobrien2001-01-11 Nathan Sidwell <nathan@codesourcery.com> 889052284Sobrien 889190075Sobrien * pt.c (unify): Check array has a domain, before checking 889290075Sobrien whether it is variable sized. 889352284Sobrien 889490075Sobrien2001-01-11 Nathan Sidwell <nathan@codesourcery.com> 889552284Sobrien 889690075Sobrien * decl.c (grokparms): Unobfuscate and get correct diagnostic for 889790075Sobrien parameters with pointers to arrays of unknown bound. 889852284Sobrien 889990075Sobrien2001-01-11 Nathan Sidwell <nathan@codesourcery.com> 890052284Sobrien 890190075Sobrien * parse.y (template_parm_header, template_spec_header): New 890290075Sobrien reductions. Split out from ... 890390075Sobrien (template_header): ... here. Use them. 890490075Sobrien (template_template_parm): Use template_parm_header. 890590075Sobrien * semantics.c (finish_template_template_parm): Add assert. 890652284Sobrien 890790075Sobrien2001-01-10 Mark Mitchell <mark@codesourcery.com> 890852284Sobrien 890990075Sobrien * mangle.c (write_builtin_type): Fix thinko. 891052284Sobrien 891190075Sobrien * pt.c (copy_default_args_to_explicit_spec_1): New function. 891290075Sobrien (copy_default_args_to_explicit_spec): Likewise. 891390075Sobrien (check_explicit_specialization): Use it. 891452284Sobrien 891590075Sobrien * class.c (finish_struct_1): Remove last argument in call to 891690075Sobrien make_decl_rtl; use make_function_rtl instead of make_decl_rtl. 891790075Sobrien * decl.c (builtin_function): Likewise. 891890075Sobrien (build_cp_library_fn): Likewise. 891990075Sobrien (check_initializer): Likewise. 892090075Sobrien (make_rtl_for_nonlocal_decl): Likewise. 892190075Sobrien (cp_finish_decl): Likewise. 892290075Sobrien (start_function): Likewise. 892390075Sobrien * decl2.c (finish_anon_union): Likewise. 892452284Sobrien * friend.c (do_friend): Likewise. 892590075Sobrien * init.c (build_java_class_ref): Likewise. 892690075Sobrien * method.c (make_thunk): Likewise. 892790075Sobrien * pt.c (tsubst_friend_function): Likewise. 892890075Sobrien * semantics.c (expand_body): Likewise. 892952284Sobrien 893090075Sobrien2001-01-10 Mark Mitchell <mark@codesourcery.com> 893152284Sobrien 893290075Sobrien * cp-tree.h (DECL_CLONED_FUNCTION_P): Avoid wild reads by not 893390075Sobrien looking at DECL_CLONED_FUNCTION for non-functions. 893452284Sobrien 893590075Sobrien2001-01-10 Nathan Sidwell <nathan@codesourcery.com> 893652284Sobrien 893790075Sobrien * error.c (dump_template_parameter): Use parm to determine how 893890075Sobrien to print default value. 893952284Sobrien 894090075Sobrien2001-01-10 Nathan Sidwell <nathan@codesourcery.com> 894152284Sobrien 894290075Sobrien * class.c (duplicate_tag_error): Clear more flags. 894352284Sobrien 894490075Sobrien2001-01-10 Nathan Sidwell <nathan@codesourcery.com> 894552284Sobrien 894690075Sobrien * call.c (build_new_method_call): Use binfo_for_vbase. 894752284Sobrien 894890075Sobrien2001-01-10 Joseph S. Myers <jsm28@cam.ac.uk> 894952284Sobrien 895090075Sobrien * cp-tree.h (flag_cond_mismatch): Don't declare. 895190075Sobrien * decl2.c (flag_cond_mismatch): Don't define. 895290075Sobrien (lang_f_options): Remove cond-mismatch. 895390075Sobrien (unsupported_options): Add cond-mismatch. 895452284Sobrien 895590075Sobrien2001-01-09 Nathan Sidwell <nathan@codesourcery.com> 895652284Sobrien 895790075Sobrien * class.c (handle_using_decl): Reject using of constructor name 895890075Sobrien of sourcing class. Allow injecting of a method with same name as 895990075Sobrien nested class. Fixup error messages. 896052284Sobrien 896190075Sobrien2001-01-09 Joseph S. Myers <jsm28@cam.ac.uk> 896252284Sobrien 896390075Sobrien * decl2.c (lang_decode_option): Handle -Wformat=2. 896450397Sobrien 896590075Sobrien2001-01-08 Nathan Sidwell <nathan@codesourcery.com> 896652284Sobrien 896790075Sobrien * cp-tree.h (lang_decl_flags): Rename defined_in_class to 896890075Sobrien initialized_in_class. 896990075Sobrien (DECL_DEFINED_IN_CLASS_P): Rename to ... 897090075Sobrien (DECL_INITIALIZED_IN_CLASS_P): ... here, to reflect true meaning. 897190075Sobrien * decl.c (duplicate_decls): Preseve DECL_INITIALIZED_IN_CLASS_P. 897290075Sobrien (cp_finish_decl): Adjust for DECL_INITIALIZED_IN_CLASS_P. 897390075Sobrien * pt.c (check_default_tmpl_args): Adjust for 897490075Sobrien DECL_INITIALIZED_IN_CLASS_P. 897590075Sobrien (instantiate_class_template): Likewise. 897690075Sobrien (instantiate_decl): Check DECL_INITIALIZED_IN_CLASS_P. 897752284Sobrien 897890075Sobrien * class.c (finish_struct): Constify saved_filename. 897952284Sobrien 898090075Sobrien2001-01-08 Nathan Sidwell <nathan@codesourcery.com> 898152284Sobrien 898290075Sobrien * class.c (duplicate_tag_error): Adjust diagnostic. 898390075Sobrien (finish_struct): Locally set location to start of struct. 898490075Sobrien * decl.c (fixup_anonymous_aggr): Use cp_error_at. 898552284Sobrien 898690075Sobrien2001-01-08 Nathan Sidwell <nathan@codesourcery.com> 898750397Sobrien 898890075Sobrien * decl.c (struct binding_level): Adjust class_shadowed comments 898990075Sobrien to reflect reality. 899090075Sobrien (push_class_level_binding): Adjust comments to reflect reality. 899190075Sobrien Set IDENTIFIER_CLASS_VALUE when replacing an existing binding. 899290075Sobrien Don't set TREE_VALUE on the class_shadowed list. 899352284Sobrien 899490075Sobrien2001-01-07 Alexandre Petit-Bianco <apbianco@cygnus.com> 899552284Sobrien 899690075Sobrien * decl2.c (acceptable_java_type): Allow references too. 899790075Sobrien * init.c (build_java_class_ref): When using the new ABI, search 899890075Sobrien `class$' and have it mangled with `mangle_decl.' 899990075Sobrien * mangle.c (write_java_integer_type_codes): New function. 900090075Sobrien (write_builtin_type): Detect and mangle Java integer and real 900190075Sobrien types. 900252284Sobrien 900390075Sobrien2001-01-07 Mark Mitchell <mark@codesourcery.com> 900452284Sobrien 900590075Sobrien * decl2.c (grokfield): Don't accept `asm' specifiers for 900690075Sobrien non-static data members. 900752284Sobrien 900890075Sobrien2001-01-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 900952284Sobrien 901090075Sobrien * expr.c (cplus_expand_expr): Don't reset `target'. 901150397Sobrien 901290075Sobrien2001-01-07 Neil Booth <neil@daikokuya.demon.co.uk> 901350397Sobrien 901490075Sobrien * cp/decl2.c (cxx_post_options): Call cpp_post_options. 901552284Sobrien 901690075Sobrien2001-01-05 Nathan Sidwell <nathan@codesourcery.com> 901752284Sobrien 901890075Sobrien * parse.y (template_datadef): Check for error_mark_node. 901952284Sobrien 902090075Sobrien2001-01-05 Nathan Sidwell <nathan@codesourcery.com> 902152284Sobrien 902290075Sobrien * cp-tree.def (DEFAULT_ARG): Make `x' class. 902352284Sobrien 902490075Sobrien2001-01-04 Joseph S. Myers <jsm28@cam.ac.uk> 902552284Sobrien 902690075Sobrien * decl.c (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE): Don't define. 902790075Sobrien (record_builtin_type): Make non-static. 902890075Sobrien (flag_short_double): Don't declare. 902990075Sobrien (init_decl_processing): Remove the creation of many tree nodes now 903090075Sobrien in c_common_nodes_and_builtins. 903190075Sobrien (build_void_list_node): New function. 903290075Sobrien * decl2.c (flag_short_double, flag_short_wchar): Don't define. 903390075Sobrien * cp-tree.h (flag_short_wchar): Don't declare. 903452284Sobrien 903590075Sobrien2001-01-04 Mark Mitchell <mark@codesourcery.com> 903652284Sobrien 903790075Sobrien * call.c (build_conv): Don't use build1 for USER_CONV. 903890075Sobrien * pt.c (tsubst_copy): Or for PREINCREMENT_EXPR and similar nodes. 903952284Sobrien 904090075Sobrien2001-01-03 Joseph S. Myers <jsm28@cam.ac.uk> 904152284Sobrien 904290075Sobrien * lex.c (lang_init): Call c_common_lang_init. 904352284Sobrien 904490075Sobrien2001-01-03 Nathan Sidwell <nathan@codesourcery.com> 904552284Sobrien 904690075Sobrien * search.c (lookup_fnfields_here): Remove. 904790075Sobrien (look_for_overrides_r): Use lookup_fnfields_1. 904890075Sobrien Ignore functions from using declarations. 904952284Sobrien 905090075Sobrien2001-01-03 Nathan Sidwell <nathan@codesourcery.com> 905152284Sobrien 905290075Sobrien Implement exceptions specifiers for implicit member functions. 905390075Sobrien * cp-tree.h (merge_exceptions_specifiers): Declare new function. 905490075Sobrien * method.c (synthesize_exception_spec): New function. 905590075Sobrien (locate_dtor, locate_ctor, locate_copy): New functions. 905690075Sobrien (implicitly_declare_fn): Generate the exception spec too. 905790075Sobrien * search.c (check_final_overrider): Check artificial functions 905890075Sobrien too. 905990075Sobrien * typeck2.c (merge_exception_specifiers): New function. 906050397Sobrien 906190075Sobrien2001-01-03 Jason Merrill <jason@redhat.com> 906252284Sobrien 906390075Sobrien * init.c (build_default_init): New fn. 906490075Sobrien (perform_member_init): Split out from here. 906590075Sobrien (build_new_1): Use it. Simplify initialization logic. 906690075Sobrien (build_vec_init): Take an array, rather than a pointer and maxindex. 906790075Sobrien Speed up simple initializations. Don't clean up if we're assigning. 906890075Sobrien * cp-tree.h: Adjust. 906990075Sobrien * decl2.c (do_static_initialization): Remove TREE_VEC case. 907090075Sobrien * parse.y (new_initializer): Return void_zero_node for (). 907190075Sobrien * typeck.c (build_modify_expr): Handle getting a CONSTRUCTOR. 907290075Sobrien * typeck2.c (digest_init): Only complain about user-written 907390075Sobrien CONSTRUCTORs. 907450397Sobrien 907590075Sobrien2000-12-22 Mike Stump <mrs@wrs.com> 907652284Sobrien 907790075Sobrien * decl2.c: (max_tinst_depth): Increase to 50. 907852284Sobrien 907990075Sobrien2001-01-02 Mark Mitchell <mark@codesourcery.com> 908052284Sobrien 908190075Sobrien * class.c (invalidate_class_lookup_cache): Zero the 908290075Sobrien previous_class_values. 908390075Sobrien * cp-tree.h (TMPL_PARMS_DEPTH): Use TREE_INT_CST_LOW, not 908490075Sobrien TREE_INT_CST_HIGH. 908590075Sobrien (CLASSTYPE_TEMPLATE_LEVEL): Likewise. 908690075Sobrien * decl.c (free_bindings): New variable. 908790075Sobrien (push_binding): Don't create a new binding if we have one on the 908890075Sobrien free list. 908990075Sobrien (pop_binding): Put old bindings on the free list. 909090075Sobrien (init_decl_processing): Use size_int, not build_int_2. 909190075Sobrien Register free_bindings as a GC root. 909290075Sobrien (cp_make_fname_decl): Use size_int, not build_int_2. 909390075Sobrien (push_inline_template_parms_recursive): Likewise. 909490075Sobrien (end_template_parm_list): Likewise. 9095117395Skan (for_each_template_parm): Do not use walk_tree_without_duplicates. 909690075Sobrien (tsubst_template_parms): Use size_int, not build_int_2. 909752284Sobrien (tsubst): Likewise. 909890075Sobrien * rtti.c (get_vmi_pseudo_type_info): Likewise. 909952284Sobrien 910090075Sobrien2001-01-02 Richard Henderson <rth@redhat.com> 910152284Sobrien 910290075Sobrien * parse.y (asm): Set ASM_INPUT_P. 910352284Sobrien 910490075Sobrien2001-01-02 Jason Merrill <jason@redhat.com> 910552284Sobrien 910690075Sobrien * tree.c (cp_valid_lang_attribute): Don't set CLASSTYPE_COM_INTERFACE 910790075Sobrien for v3 ABI. 910852284Sobrien 910990075Sobrien * typeck.c (cp_truthvalue_conversion): New fn. 911090075Sobrien * cvt.c (ocp_convert): Use it. 911152284Sobrien 911290075Sobrien * cp-tree.h: Lose c-common.c decls. 911352284Sobrien 911490075Sobrien * typeck.c (build_unary_op): Restore old &a.f diagnostic code. 911590075Sobrien * cvt.c (convert_to_void): Use type_unknown_p. 911652284Sobrien 911790075Sobrien * typeck.c (strip_all_pointer_quals): Also strip quals from 911890075Sobrien pointer-to-member types. 911952284Sobrien 912090075Sobrien * Make-lang.in (cp/TAGS): Use --no-globals. Ignore parse.c, and treat 912190075Sobrien parse.y as C. 912252284Sobrien 912390075Sobrien * call.c (build_new_method_call): Do evaluate the object parameter 912490075Sobrien when accessing a static member. 912590075Sobrien * typeck.c (build_component_ref): Likewise. 912652284Sobrien 912790075Sobrien2001-01-02 Andreas Jaeger <aj@suse.de> 912852284Sobrien 912990075Sobrien * decl.c (cp_missing_noreturn_ok_p): New. 913090075Sobrien (init_decl_processing): Set lang_missing_noreturn_ok_p. 913152284Sobrien 913290075Sobrien2000-12-29 Jakub Jelinek <jakub@redhat.com> 913352284Sobrien 913490075Sobrien * decl.c (init_decl_processing): Fix sign of wchar_type_node. 913552284Sobrien 913690075Sobrien2000-12-29 Mark Mitchell <mark@codesourcery.com> 913752284Sobrien 913890075Sobrien * class.c (pushclass): Remove #if 0'd code. 913990075Sobrien * cp-tree.h (overload_template_name): Remove. 914090075Sobrien * decl.c (store_bindings): Simplify. 914190075Sobrien (pop_from_top_level): Likewise. 914290075Sobrien * pt.c (overload_template_name): Remove. 914390075Sobrien (instantiate_decl): Don't call push_to_top_level if it's not 914490075Sobrien needed. 914552284Sobrien 914690075Sobrien2000-12-28 Mark Mitchell <mark@codesourcery.com> 914750397Sobrien 914890075Sobrien * pt.c (register_local_specialization): Don't return a value. 914990075Sobrien (lookup_template_class): Use move-to-front heuristic when looking 915090075Sobrien up template instantiations. 915190075Sobrien (instantiate_decl): Only push_to_top_level when we're actually 915290075Sobrien going to instantiate the template. 915350397Sobrien 915490075Sobrien2000-12-29 Hans-Peter Nilsson <hp@bitrange.com> 915550397Sobrien 915690075Sobrien * search.c (binfo_for_vtable): Return least derived class, not 915790075Sobrien most. Handle secondary vtables. 915852284Sobrien 915990075Sobrien2000-12-22 Jason Merrill <jason@redhat.com> 916052284Sobrien 916190075Sobrien * pt.c (more_specialized): Don't optimize len==0. 916290075Sobrien (fn_type_unification): If we're adding the return type, increase len. 916350397Sobrien 916490075Sobrien * typeck.c (build_binary_op): Fix pmf comparison logic. 916550397Sobrien 916690075Sobrien * call.c (joust): Use DECL_NONSTATIC_MEMBER_FUNCTION_P, not 916790075Sobrien DECL_STATIC_FUNCTION_P. 916852284Sobrien 916990075Sobrien * semantics.c (genrtl_finish_function): Don't try to jump to 917090075Sobrien return_label unless it exists. 917152284Sobrien 917290075Sobrien In partial ordering for a call, ignore parms for which we don't have 917390075Sobrien a real argument. 917490075Sobrien * call.c (joust): Pass len to more_specialized. 917590075Sobrien (add_template_candidate_real): Strip 'this', pass len. 917690075Sobrien * pt.c (more_specialized): Pass len down. Lose explicit_args parm. 917790075Sobrien (get_bindings_order): New fn. Pass len down. 917890075Sobrien (get_bindings_real): Strip 'this', pass len. 917990075Sobrien (fn_type_unification): Likewise. 918090075Sobrien (type_unification_real): Succeed after checking 'len' args. 918190075Sobrien (most_specialized_instantiation): Lose explicit_args parm. 918290075Sobrien * class.c (resolve_address_of_overloaded_function): Strip 'this', 918390075Sobrien pass len. 918450397Sobrien 918590075Sobrien2000-12-21 Jason Merrill <jason@redhat.com> 918650397Sobrien 918790075Sobrien * pt.c (tsubst_decl): A FUNCTION_DECL has DECL_RESULT, not 918890075Sobrien DECL_TEMPLATE_RESULT. 918950397Sobrien 919090075Sobrien * search.c (lookup_field_r): Call lookup_fnfields_1, not 919190075Sobrien lookup_fnfields_here. 919250397Sobrien 919390075Sobrien * parse.y (typename_sub2): Return the TYPE_DECL, not the type. 919450397Sobrien 919590075Sobrien * call.c (build_object_call): Also allow conversions that return 919690075Sobrien reference to pointer to function. 919790075Sobrien (add_conv_candidate): Handle totype being ref to ptr to fn. 919890075Sobrien (build_field_call): Also allow members of type reference to function. 919990075Sobrien Lose support for calling pointer to METHOD_TYPE fields. 920052284Sobrien 920190075Sobrien * error.c (dump_expr): Handle *_CAST_EXPR. 920252284Sobrien 920390075Sobrien * typeck2.c (build_scoped_ref): Always convert to the naming class. 920450397Sobrien 920590075Sobrien * tree.c (break_out_cleanups): Lose. 920690075Sobrien * cp-tree.h: Remove prototype. 920790075Sobrien * typeck.c (build_component_ref): Don't break_out_cleanups. 920890075Sobrien (build_compound_expr): Likewise. 920990075Sobrien * semantics.c (finish_expr_stmt): Likewise. 921050397Sobrien 921190075Sobrien2000-12-20 Richard Henderson <rth@redhat.com> 921250397Sobrien 921390075Sobrien * cp-tree.h: Update declarations. 921490075Sobrien * decl.c (finish_case_label): Return the new stmt node. 921590075Sobrien * semantics.c (finish_goto_stmt): Likewise. 921690075Sobrien (finish_expr_stmt, finish_return_stmt): Likewise. 921790075Sobrien (finish_break_stmt, finish_continue_stmt): Likewise. 921890075Sobrien (finish_asm_stmt): Likewise. 921990075Sobrien * parse.y (already_scoped_stmt): Set STMT_LINENO. 922090075Sobrien (compstmt, implicitly_scoped_stmt, stmt): Likewise. 922190075Sobrien (simple_if, simple_stmt): Return the new stmt node. 922290075Sobrien (save_lineno): New. 922350397Sobrien 922490075Sobrien2000-12-18 Joseph S. Myers <jsm28@cam.ac.uk> 922550397Sobrien 922690075Sobrien * cp-tree.h: Don't declare warn_long_long. 922750397Sobrien 922890075Sobrien2000-12-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 922950397Sobrien 923090075Sobrien * tree.c (no_linkage_helper): Use CLASS_TYPE_P instead of 923190075Sobrien IS_AGGR_TYPE. 923250397Sobrien 923390075Sobrien2000-12-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 923450397Sobrien 923590075Sobrien * pt.c (unify): Handle when both ARG and PARM are 923690075Sobrien BOUND_TEMPLATE_TEMPLATE_PARM. 923750397Sobrien 923890075Sobrien2000-12-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 923950397Sobrien 924090075Sobrien * pt.c (reduce_template_parm_level): Set DECL_ARTIFICIAL and 924190075Sobrien DECL_TEMPLATE_PARM_P. 924250397Sobrien 924390075Sobrien2000-12-15 Jason Merrill <jason@redhat.com> 924450397Sobrien 924590075Sobrien * init.c (build_new_1): Reorganize. Now with 100% fewer SAVE_EXPRs! 924650397Sobrien 924790075Sobrien * init.c (build_new_1): Don't strip quals from type. 924850397Sobrien 924990075Sobrien * decl.c (pushdecl): Don't check for linkage on a non-decl. 925050397Sobrien 925190075Sobrien * call.c (build_op_delete_call): See through ARRAY_TYPEs. 925250397Sobrien 925390075Sobrien * call.c (build_new_function_call): Lose space before paren in 925490075Sobrien error message. 925590075Sobrien (build_new_method_call): Likewise. 925650397Sobrien 925790075Sobrien * typeck2.c (build_m_component_ref): Propagate quals from datum. 925850397Sobrien 925990075Sobrien2000-12-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 926050397Sobrien 926190075Sobrien * pt.c (check_explicit_specialization): Propagate default 926290075Sobrien function arguments to explicit specializations. 926352284Sobrien 926490075Sobrien2000-12-13 DJ Delorie <dj@redhat.com> 926552284Sobrien 926690075Sobrien * typeck.c (build_binary_op): Do signed/unsigned warnings for >? 926790075Sobrien and <? operators. 926850397Sobrien 926990075Sobrien2000-12-08 Jason Merrill <jason@redhat.com> 927050397Sobrien 927190075Sobrien * error.c (dump_function_name): Don't let the user see __comp_ctor. 927250397Sobrien 927390075Sobrien Clean up copy-initialization in overloading code. 927490075Sobrien * call.c (build_user_type_conversion_1): Die if we are asked to 927590075Sobrien convert to the same or a base type. 927690075Sobrien (implicit_conversion): Avoid doing so. Lose reference binding code. 927790075Sobrien (convert_like_real): Treat BASE_CONV and RVALUE_CONV as implicit 927890075Sobrien direct-initialization. Also do direct-init part of copy-init. 927990075Sobrien (build_user_type_conversion): Don't provide context to convert_like. 928090075Sobrien * cvt.c (ocp_convert): build_user_type_conversion will now provide 928190075Sobrien the constructor call for copy-init. 928250397Sobrien 928390075Sobrien * pt.c (tsubst_decl): Call clone_function_decl here if this is an 928490075Sobrien instantiation of a member template. 928590075Sobrien (do_decl_instantiation): Not here. 928652284Sobrien 928790075Sobrien2000-12-07 Nathan Sidwell <nathan@codesourcery.com> 928818334Speter 928990075Sobrien * class.c (check_field_decls): Don't special case anonymous 929090075Sobrien fields in error messages. 929190075Sobrien (note_name_declared_in_class): Use %D on diagnostic. 929218334Speter 929390075Sobrien * tree.c (pod_type_p): Use strip_array_types. 929490075Sobrien (cp_valid_lang_attribute): Likewise. 929590075Sobrien * typeck.c (cp_type_quals): Strip arrays separately, to avoid 929690075Sobrien multiple evaluations. 929790075Sobrien (cp_has_mutable_p): Use strip_array_types. 929818334Speter 929990075Sobrien2000-12-07 Nathan Sidwell <nathan@codesourcery.com> 930018334Speter 930190075Sobrien * cp-tree.h (sufficient_parms_p): Declare new function. 930290075Sobrien * call.c (sufficient_parms_p): New function, broken out of ... 930390075Sobrien (add_function_candidate): ... here. Use it. 930490075Sobrien (add_conv_candidate): Use it. 930590075Sobrien * decl.c (grok_ctor_properties): Use it. 930618334Speter 930790075Sobrien2000-12-07 Jakub Jelinek <jakub@redhat.com> 930818334Speter 930990075Sobrien * optimize.c (copy_body_r): Set STMT_IS_FULL_EXPR_P on EXPR_STMT. 931018334Speter 931190075Sobrien2000-12-07 Joseph S. Myers <jsm28@cam.ac.uk> 931218334Speter 931390075Sobrien * decl2.c (lang_decode_option): Handle -Wformat-security. 931418334Speter 931590075Sobrien2000-12-06 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 931618334Speter 931790075Sobrien * pt.c (verify_class_unification): New function. 931890075Sobrien (get_class_bindings): Use it. 931990075Sobrien (try_class_unification): Tidy. 932090075Sobrien (unify): Handle when argument of a template-id is not 932190075Sobrien template parameter dependent. 932290075Sobrien (template_args_equal): Handle when TREE_CODE's do not match. 932318334Speter 932490075Sobrien2000-12-06 Alexandre Oliva <aoliva@redhat.com> 932518334Speter 932690075Sobrien * lang-specs.h (c++): When invoking the stand-alone preprocessor 932790075Sobrien for -save-temps, pass all relevant -Defines to it, and then don't 932890075Sobrien pass them to cc1plus. 932918334Speter 933090075Sobrien2000-12-05 Will Cohen <wcohen@redhat.com> 933118334Speter 933290075Sobrien * decl.c (finish_case_label): Cleared 933390075Sobrien more_cleanups_ok in surrounding function scopes. 933490075Sobrien (define_label): Likewise. 933518334Speter 933690075Sobrien2000-12-05 Nathan Sidwell <nathan@codesourcery.com> 933718334Speter 933890075Sobrien * cp-tree.h (IDENTIFIER_VIRTUAL_P): Document. 933990075Sobrien (get_matching_virtual): Remove. 934090075Sobrien (look_for_overrides): Declare new function. 934190075Sobrien * decl.c (grokfndecl): Don't set IDENTIFIER_VIRTUAL_P or 934290075Sobrien DECL_VINDEX here. 934390075Sobrien * class.c (check_for_override): Move base class iteration code 934490075Sobrien to look_for_overrides. 934590075Sobrien * search.c (next_baselink): Remove. 934690075Sobrien (get_virtuals_named_this): Remove. 934790075Sobrien (get_virtual_destructor): Remove. 934890075Sobrien (tree_has_any_destructors_p): Remove. 934990075Sobrien (struct gvnt_info): Remove. 935090075Sobrien (check_final_overrider): Remove `virtual' from error messages. 935190075Sobrien (get_matching_virtuals): Remove. Move functionality to ... 935290075Sobrien (look_for_overrides): ... here, and ... 935390075Sobrien (look_for_overrides_r): ... here. Set DECL_VIRTUAL_P, if found 935490075Sobrien to be overriding. 935518334Speter 935690075Sobrien2000-12-05 Nathan Sidwell <nathan@codesourcery.com> 935718334Speter 935890075Sobrien * typeck.c (get_delta_difference): If via a virtual base, 935990075Sobrien return zero. 936090075Sobrien * cvt.c (cp_convert_to_pointer): If via a virtual base, do no 936190075Sobrien adjustment. 936218334Speter 936390075Sobrien2000-12-04 Richard Henderson <rth@redhat.com> 936418334Speter 936590075Sobrien * error.c (dump_tree): Use output_add_string not OB_PUTS. 936618334Speter 936790075Sobrien2000-12-04 Jason Merrill <jason@redhat.com> 936818334Speter 936990075Sobrien * mangle.c (write_type): Mangle VECTOR_TYPE with "U8__vector". 937090075Sobrien (write_builtin_type): Pass intSI_type_node and the like through 937190075Sobrien type_for_mode. 937290075Sobrien * method.c (process_overload_item): Mangle VECTOR_TYPEs with 'o'. 937390075Sobrien Pass intSI_type_node and the like through type_for_mode. 937490075Sobrien * decl2.c (arg_assoc_type): Handle VECTOR_TYPE like COMPLEX_TYPE. 937590075Sobrien * pt.c (tsubst, unify): Likewise. 937690075Sobrien * tree.c (walk_tree): Likewise. 937790075Sobrien * error.c (dump_type): Likewise. 937890075Sobrien (dump_type_prefix, dump_type_suffix): Don't bother with VECTOR_TYPE. 937918334Speter 938090075Sobrien * Make-lang.in: Tweak top comment for emacs. 938190075Sobrien (cp/TAGS): Restore. 938218334Speter 938390075Sobrien * except.c (expand_throw): Use push_throw_library_fn for _Jv_Throw. 938418334Speter 938590075Sobrien * class.c (clone_function_decl): Robustify. 938618334Speter 938790075Sobrien2000-12-04 Michael Matz <matzmich@cs.tu-berlin.de> 938818334Speter 938990075Sobrien * decl.c (store_bindings): Only search in the non modified 939090075Sobrien old_bindings for duplicates. 939118334Speter 939290075Sobrien2000-12-04 Nathan Sidwell <nathan@codesourcery.com> 939318334Speter 939490075Sobrien * error.c (dump_function_decl): Use DECL_VIRTUAL_P, not 939590075Sobrien TYPE_POLYMORPHIC_P. 939618334Speter 939790075Sobrien * typeck.c (build_static_cast): Remove unused variable. 939818334Speter 939990075Sobrien2000-12-01 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 940018334Speter 940190075Sobrien * pt.c: Fix typo in comment. 940218334Speter 940390075Sobrien2000-12-01 Joseph S. Myers <jsm28@cam.ac.uk> 940418334Speter 940590075Sobrien * decl2.c (warn_format): Remove definition. 940690075Sobrien (lang_decode_option): Handle -Wformat-nonliteral, 940790075Sobrien -Wno-format-extra-args and -Wno-format-y2k. Use set_Wformat. 940818334Speter 940990075Sobrien2000-12-01 Joseph S. Myers <jsm28@cam.ac.uk> 941018334Speter 941190075Sobrien * decl.c (WINT_TYPE, INTMAX_TYPE, UINTMAX_TYPE): Don't define. 941290075Sobrien (init_decl_processing): Don't create string_type_node, 941390075Sobrien const_string_type_node, wint_type_node, intmax_type_node, 941490075Sobrien uintmax_type_node, default_function_type, ptrdiff_type_node and 941590075Sobrien unsigned_ptrdiff_type_node. Adjust position of call to 941690075Sobrien c_common_nodes_and_builtins. 941790075Sobrien (identifier_global_value): New function. 941818334Speter 941990075Sobrien2000-12-01 Nathan Sidwell <nathan@codesourcery.com> 942018334Speter 942190075Sobrien * call.c (standard_conversion): Reject pointer to member 942290075Sobrien conversions from ambiguous, inaccessible or virtual bases. 942390075Sobrien * typeck.c (build_static_cast): Don't check pointers to members 942490075Sobrien specially. 942518334Speter 942690075Sobrien2000-11-30 Nathan Sidwell <nathan@codesourcery.com> 942718334Speter 942890075Sobrien * method.c (do_build_copy_constructor): Preserve cv 942990075Sobrien qualifications when accessing source object members. 943090075Sobrien (do_build_assign_ref): Likewise. Remove separate diagnostics for 943190075Sobrien unnamed fields. 943218334Speter 943390075Sobrien2000-11-30 Nathan Sidwell <nathan@codesourcery.com> 943418334Speter 943590075Sobrien * method.c (do_build_assign_ref): Construct appropriately 943690075Sobrien CV-qualified base reference. Don't allow const casts in base 943790075Sobrien conversion. 943818334Speter 943990075Sobrien2000-11-30 Nathan Sidwell <nathan@codesourcery.com> 944018334Speter 944190075Sobrien * call.c (build_over_call): Use VOID_TYPE_P. Don't die on 944290075Sobrien incomplete return type. 944318334Speter 944490075Sobrien2000-11-28 Nathan Sidwell <nathan@codesourcery.com> 944518334Speter 944690075Sobrien * parse.y (base_class.1): Produce a _TYPE not a _DECL. 944790075Sobrien * semantics.c (finish_base_specifier): Accept a _TYPE not a 944890075Sobrien _DECL. 944952284Sobrien 945090075Sobrien2000-11-28 Nathan Sidwell <nathan@codesourcery.com> 945152284Sobrien 945290075Sobrien * spew.c (yyerror): Cope if yylval.ttype is NULL. 945352284Sobrien 945490075Sobrien2000-11-28 Nathan Sidwell <nathan@codesourcery.com> 945518334Speter 945690075Sobrien * decl.c (grokdeclarator): Diagnose undefined template contexts. 945718334Speter 945890075Sobrien2000-11-28 Nathan Sidwell <nathan@codesourcery.com> 945918334Speter 946090075Sobrien * decl.c (grokdeclarator): Do type access control on friend 946190075Sobrien class. 946218334Speter 946390075Sobrien2000-11-27 Nathan Sidwell <nathan@codesourcery.com> 946418334Speter 946590075Sobrien * decl.c (grokfndecl): Undo COMPONENT_REF damage caused by 946690075Sobrien bison parser ickiness. 946790075Sobrien * pt.c (tsubst_friend_function): Enter namespace scope when 946890075Sobrien tsubsting the function name. 946990075Sobrien * cp-tree.h (DECL_TI_TEMPLATE): Update comment to reflect reality. 947018334Speter 947190075Sobrien2000-11-27 Nathan Sidwell <nathan@codesourcery.com> 947218334Speter 947390075Sobrien * cp-tree.h (binfo_from_vbase): Return the virtual base's binfo. 947490075Sobrien * cvt.c (cp_convert_to_pointer): Add force parameter. 947590075Sobrien Allow conversions via virtual base if forced. 947690075Sobrien (convert_to_pointer_force): Adjust call to cp_convert_to_pointer. 947790075Sobrien (ocp_convert): Likewise. 947890075Sobrien * search.c (binfo_from_vbase): Return the virtual base's binfo. 947990075Sobrien * typeck.c (get_delta_difference): Adjust handling of virtual 948090075Sobrien bases. 948118334Speter 948290075Sobrien2000-11-26 Mark Mitchell <mark@codesourcery.com> 948352284Sobrien 948490075Sobrien * tree.c (struct list_hash): Remove. 948590075Sobrien (list_hash_table): Make it be an htab. 948690075Sobrien (struct list_proxy): New type. 948790075Sobrien (list_hash_eq): New function. 948890075Sobrien (list_hash_pieces): Renamed from ... 948990075Sobrien (list_hash): ... this. 949090075Sobrien (list_hash_lookup): Remove. 949190075Sobrien (list_hash_add): Remove. 949290075Sobrien (hash_tree_cons): Use the generic hashtable. 949390075Sobrien (mark_list_hash): Remove. 949490075Sobrien (init_tree): Create the hashtable. 949518334Speter 949690075Sobrien2000-11-25 Joseph S. Myers <jsm28@cam.ac.uk> 949718334Speter 949890075Sobrien * method.c (build_mangled_C9x_name): Rename to 949990075Sobrien build_mangled_C99_name. Change C9X references in comments to 950090075Sobrien refer to C99. 950118334Speter 950290075Sobrien2000-11-24 Nathan Sidwell <nathan@codesourcery.com> 950318334Speter 950490075Sobrien * parse.y (unary_expr): Move VA_ARG from here ... 950590075Sobrien (primary): ... to here. 950618334Speter 950790075Sobrien2000-11-24 Nathan Sidwell <nathan@codesourcery.com> 950818334Speter 950990075Sobrien * semantics.c (finish_id_expr): If type is error_mark, return 951090075Sobrien error_mark. 951118334Speter 951290075Sobrien2000-11-23 Nathan Sidwell <nathan@codesourcery.com> 951318334Speter 951490075Sobrien * pt.c (lookup_template_class): Simplify loop exit constructs. 951590075Sobrien Cope when there is no partial instantiation of a template 951690075Sobrien template member. 951718334Speter 951890075SobrienThu Nov 23 02:16:47 2000 J"orn Rennecke <amylaar@redhat.com> 951918334Speter 952090075Sobrien * Make-lang.in (g++spec.o, cxxmain.o): Depend on $(CONFIG_H). 952118334Speter 952290075Sobrien2000-11-22 Mark Mitchell <mark@codesourcery.com> 952318334Speter 952490075Sobrien * mangle.c (mangle_conv_op_name_for_type): Don't use `__op' 952590075Sobrien prefix. 952618334Speter 952790075Sobrien * pt.c (do_decl_instantiate): Explicitly clone constructors and 952890075Sobrien destructors that haven't already been cloned. 952918334Speter 953090075Sobrien2000-11-20 Richard Henderson <rth@redhat.com> 953118334Speter 953290075Sobrien * parse.y (yyparse_1): Rename the parser entry point. 953318334Speter 953490075Sobrien2000-11-20 Alex Samuel <samuel@codesourcery.com> 953518334Speter 953690075Sobrien * mangle.c (write_name): Use <unscoped-name> for names directly in 953790075Sobrien function scope. 953890075Sobrien (write_unscoped_name): Accept names directly in function scope. 953918334Speter 954090075Sobrien2000-11-20 Nathan Sidwell <nathan@codesourcery.com> 954118334Speter 954290075Sobrien * lex.c (rid_to_yy, RID_EXPORT): Make unique keyword. 954390075Sobrien * parse.y (extdef): Add EXPORT reduction. 954490075Sobrien * spew.c (yylex): Don't skip export here. 954518334Speter 954690075Sobrien2000-11-19 Mark Mitchell <mark@codesourcery.com> 954718334Speter 954890075Sobrien * decl.c (init_decl_processing): Correct name of pure virtual 954990075Sobrien function under the new ABI. 955090075Sobrien * rtti.c (throw_bad_cast): Likewise, for bad cast function. 955190075Sobrien (throw_bad_typeid): Likewise for bad typeid function. 955218334Speter 955390075Sobrien2000-11-18 Mark Mitchell <mark@codesourcery.com> 955418334Speter 955590075Sobrien * decl.c (grokparms): Don't even function types of `void' type, 955690075Sobrien either. 955790075Sobrien * mangle.c (write_type): Don't crash when confronted with the 955890075Sobrien error_mark_node. 955918334Speter 956090075Sobrien * decl.c (grokparms): Don't create parameters of `void' type. 956118334Speter 956290075Sobrien2000-11-17 Zack Weinberg <zack@wolery.stanford.edu> 956318334Speter 956490075Sobrien * lex.c (mark_impl_file_chain): Delete. 956590075Sobrien (init_parse): Remove call to ggc_add_string_root. No need to 956690075Sobrien ggc_strdup a string constant. Do not add impl_file_chain to GC 956790075Sobrien roots. 956890075Sobrien (handle_pragma_implementation): No need to ggc_strdup main_filename. 956918334Speter 957090075Sobrien2000-11-17 Nathan Sidwell <nathan@codesourcery.com> 957118334Speter 957290075Sobrien * pt.c (tsubst_expr, DECL_STMT): Instantiate decl's type. 957318334Speter 957490075Sobrien2000-11-17 Nathan Sidwell <nathan@codesourcery.com> 957518334Speter 957690075Sobrien * cp-tree.h (PARMLIST_ELLIPSIS_P): New macro. 957790075Sobrien * decl.c (grokdeclarator): Don't reject void parms here. 957890075Sobrien (require_complete_types_for_parms): Simplify, use 957990075Sobrien complete_type_or_else. 958090075Sobrien (grokparms): Remove bitrot. Remove funcdef parm. 958190075Sobrien Deal with ellipsis parm lists here. 958290075Sobrien * semantics.c (finish_parmlist): Don't append void_list_node 958390075Sobrien here. Set PARMLIST_ELLIPSIS_P. 958418334Speter 958590075Sobrien2000-11-17 Nathan Sidwell <nathan@codesourcery.com> 958618334Speter 9587117395Skan * typeck2.c (incomplete_type_error): Reorganize to avoid 958890075Sobrien excessive diagnostics. 958918334Speter 959090075Sobrien2000-11-16 Zack Weinberg <zack@wolery.stanford.edu> 959118334Speter 959290075Sobrien * lex.c (struct impl_files, internal_filename): Constify a char *. 959318334Speter 959490075Sobrien2000-11-16 Mark Mitchell <mark@codesourcery.com> 959518334Speter 959690075Sobrien * mangle.c (write_special_name_constructor): Don't generate 959790075Sobrien assembler junk when confronted with an old-style constructor. 959890075Sobrien (write_special_name_destructor): Likewise. 959990075Sobrien (mangle_decl_string): Do it here instead. 960018334Speter 960190075Sobrien2000-11-16 Nathan Sidwell <nathan@codesourcery.com> 960218334Speter 960390075Sobrien * call.c (op_error): Make error messages clearer. 960418334Speter 960590075Sobrien2000-11-15 Mark Mitchell <mark@codesourcery.com> 960618334Speter 960790075Sobrien * decl.c (wrapup_globals_for_namespace): Don't mark things 960890075Sobrien TREE_ASM_WRITTEN when they're not. 960918334Speter 961090075Sobrien2000-11-15 Jason Merrill <jason@redhat.com> 961118334Speter 961290075Sobrien * typeck2.c (friendly_abort): Uncount the error before handing 961390075Sobrien off to fancy_abort. 961418334Speter 961590075Sobrien2000-11-15 Nathan Sidwell <nathan@codesourcery.com> 961618334Speter 961790075Sobrien * typeck.c (lookup_anon_field): Cope with qv qualifiers. 961818334Speter 961990075Sobrien2000-11-14 Mark Mitchell <mark@codesourcery.com> 962018334Speter 962190075Sobrien * class.c (build_vtbl_initializer): Fix typo in comment. 962290075Sobrien * typeck.c (expr_sizeof): Don't crash on errors. 962318334Speter 962490075Sobrien2000-11-14 Jim Wilson <wilson@redhat.com> 962518334Speter 962690075Sobrien * lang-specs.h: Add %2 after %(cc1_options). 962718334Speter 962890075Sobrien2000-11-14 Richard Henderson <rth@redhat.com> 962918334Speter 963090075Sobrien * typeck.c (c_sizeof): Be strict about casting result value 963190075Sobrien back to c_size_type_node. 963290075Sobrien (expr_sizeof, c_sizeof_nowarn, c_alignof): Likewise. 963318334Speter 963490075Sobrien2000-11-13 Joseph S. Myers <jsm28@cam.ac.uk> 963518334Speter 963690075Sobrien * typeck.c (build_unary_op): Use boolean_increment from 963790075Sobrien c-common.c, moving the relevant code there. 963818334Speter 963990075Sobrien2000-11-11 Jason Merrill <jason@redhat.com> 964018334Speter 964190075Sobrien * typeck.c (mark_addressable): Don't call put_var_into_stack. 964218334Speter 964390075Sobrien * decl.c (maybe_commonize_var): Set DECL_UNINLINABLE for statics 964490075Sobrien in inlines. 964518334Speter 964690075Sobrien2000-11-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 964718334Speter 964890075Sobrien * decl.c (grokdeclarator, save_function_data): Use memcpy, not bcopy. 964990075Sobrien * lex.c (copy_lang_decl): Likewise. 965018334Speter 965190075Sobrien2000-11-09 Mark Mitchell <mark@codesourcery.com> 965218334Speter 965390075Sobrien * dump.c (cp_dump_tree): Don't dump function bodies here. 965418334Speter 965590075Sobrien * Make-lang.in (CXX_C_OBJS): Add c-dump.o. 965690075Sobrien (dump.o): Update dependency list. 965790075Sobrien * cp-tree.h (DECL_MAYBE_TEMPLATE): Remove. 965890075Sobrien (flag_dump_translation_unit): Likewise. 965990075Sobrien (CP_TYPE_QUALS): Adjust definition. 966090075Sobrien (DECL_C_BIT_FIELD): Remove. 966190075Sobrien (SET_DECL_C_BIT_FIELD): Likewise. 966290075Sobrien (CLEAR_DECL_C_BIT_FIELD): Likewise. 966390075Sobrien (add_maybe_template): Likewise. 966490075Sobrien (strip_array_types): Likewise. 966590075Sobrien (dump_node_to_file): Likewise. 966690075Sobrien (cp_dump_tree): New function. 966790075Sobrien * decl.c (init_decl_processing): Set lang_dump_tree. 966890075Sobrien * decl2.c (flag_dump_translation_unit): Remove. 966990075Sobrien * dump.c: Move most of it to ../c-dump.c. 967090075Sobrien (cp_dump_tree): New function. 967190075Sobrien * pt.c (add_maybe_template): Remove. 967290075Sobrien * typeck.c (strip_array_types): Likewise. 967318334Speter 967490075Sobrien2000-11-07 Eric Christopher <echristo@redhat.com> 967518334Speter 967690075Sobrien * decl.c (init_decl_processing): Change definition of 967790075Sobrien __wchar_t to wchar_t. Remove artificial declaration of 967890075Sobrien wchar_t. 967990075Sobrien * lex.c: Change instances of __wchar_t to wchar_t. 968018334Speter 968190075Sobrien2000-11-09 Nathan Sidwell <nathan@codesourcery.com> 968218334Speter 968390075Sobrien * lex.c (do_identifier): Don't lookup_name for operators. 968490075Sobrien * parse.y (operator): Save looking_for_typename. 968590075Sobrien (unoperator): Restore it. 968690075Sobrien * spew.c (frob_opname): Use nth_token for lookahead. 968718334Speter 968890075Sobrien2000-11-08 Nathan Sidwell <nathan@codesourcery.com> 968918334Speter 969090075Sobrien * decl.c (grok_op_properties): Always use coerce_new_type and 969190075Sobrien coerce_delete_type. 969290075Sobrien * decl2.c (coerce_new_type): Use c_size_type_node. Preserve 969390075Sobrien exception specification. Tidy up. 969490075Sobrien (coerce_delete_type): Preserve exception specification. Tidy up. 969518334Speter 969690075Sobrien2000-11-07 Joseph S. Myers <jsm28@cam.ac.uk> 969718334Speter 969890075Sobrien * class.c (duplicate_tag_error, build_vtbl_initializer), decl.c 969990075Sobrien (push_binding_level), error.c (cp_tree_printer), pt.c 970090075Sobrien (process_partial_specialization, tsubst_template_arg_vector), 970190075Sobrien search.c (lookup_member): Use memset () instead of bzero (). 970218334Speter 970390075Sobrien2000-11-07 Nathan Sidwell <nathan@codesourcery.com> 970418334Speter 970590075Sobrien * decl.c (build_ptrmemfunc_type): Allow error_mark_node. 970618334Speter 970790075Sobrien2000-11-05 Joseph S. Myers <jsm28@cam.ac.uk> 970818334Speter 970990075Sobrien * Make-lang.in (c++.distdir): Remove. 971018334Speter 971190075Sobrien2000-11-04 Mark Mitchell <mark@codesourcery.com> 971218334Speter 971390075Sobrien * decl2.c (do_nonmember_using_decl): Allow `extern "C"' 971490075Sobrien declarations from different namespaces to be combined. 971518334Speter 971690075Sobrien2000-11-03 Zack Weinberg <zack@wolery.stanford.edu> 971718334Speter 971890075Sobrien * decl.c: Include tm_p.h. 971918334Speter 972090075Sobrien2000-11-03 Joseph S. Myers <jsm28@cam.ac.uk> 972118334Speter 972290075Sobrien * tree.c (cp_tree_equal): Use memcmp () instead of bcmp (). 972318334Speter 972490075Sobrien2000-11-02 Joseph S. Myers <jsm28@cam.ac.uk> 972518334Speter 972690075Sobrien * dump.c (dequeue_and_dump), lex.c (interface_strcmp), method.c 972790075Sobrien (build_overload_value), repo.c (open_repo_file), xref.c 972890075Sobrien (open_xref_file): Use strchr () and strrchr () instead of index () 972990075Sobrien and rindex (). 973018334Speter 973190075Sobrien2000-11-01 Bernd Schmidt <bernds@redhat.co.uk> 973218334Speter 973390075Sobrien * call.c (build_over_call): Call fold on the CALL_EXPR. 973418334Speter 973590075Sobrien2000-11-01 Gabriel Dos Reis <gdr@codesourcery.com> 973618334Speter 973790075Sobrien * error.c (dump_template_decl): Separate template hearders with 973890075Sobrien space not comma. 973918334Speter 974090075Sobrien2000-10-31 Gabriel Dos Reis <gdr@codesourcery.com> 974118334Speter 974290075Sobrien * error.c: Move TFF_ macros into cp-tree.h. Throughout, replace 974390075Sobrien TS_* flags with corresponding TFF_*. Adjust prototypes of 974490075Sobrien functions (which used to take a tree_string_flags) to take an int. 974518334Speter 974690075Sobrien * cp-tree.h (enum tree_string_flags): Remove 974790075Sobrien (TFF_PLAIN_IDENTIFIER, TFF_NAMESPACE_SCOPE, TFF_CLASS_SCOPE, 974890075Sobrien TFF_CHASE_NAMESPACE_ALIAS, TFF_CHASE_TYPEDEF, TFF_DECL_SPECIFIERS, 974990075Sobrien TFF_CLASS_KEY_OR_ENUM, TFF_RETURN_TYPE, 975090075Sobrien TFF_FUNCTION_DEFAULT_ARGUMENTS, TFF_EXCEPTION_SPECIFICATION, 975190075Sobrien TFF_TEMPLATE_HEADER, TFF_TEMPLATE_DEFAULT_ARGUMENTS, 975290075Sobrien TFF_TEMPLATE_NAME, TFF_EXPR_IN_PARENS, TFF_SCOPE): New macros. 975390075Sobrien (type_as_string, decl_as_string, expr_as_string, 975490075Sobrien context_as_string): Adjust prototype. 975518334Speter 975690075Sobrien * class.c (dump_class_hierarchy_r): Use TFF_PLAIN_IDENTIFIER 975790075Sobrien instead of TS_PLAIN. 975818334Speter 975990075Sobrien * pt.c (mangle_class_name_for_template): Use TFF_CHASE_TYPEDEF 976090075Sobrien instead of TF_CHASE_TYPEDEFS. Use TFF_PLAIN_IDENTIFIER instead of 976190075Sobrien plain `0'. 976218334Speter 976390075Sobrien2000-10-30 Mark Mitchell <mark@codesourcery.com> 976418334Speter 976590075Sobrien * cp-tree.h (DECL_EXTERNAL_LINKAGE_P): New macro. 976690075Sobrien (linkage_kind): New enumeration. 976790075Sobrien (decl_linkage): New function. 976890075Sobrien * decl2.c (comdat_linkage): Extend comment. 976990075Sobrien * error.c (dump_function_decl): Print the arguments used to 977090075Sobrien instantiate a template, even when not printing the type of the 977190075Sobrien function. 977290075Sobrien * pt.c (convert_nontype_argument): Use DECL_EXTERNAL_LINKAGE_P, 977390075Sobrien not TREE_PUBLIC, to test for external linkage. 977490075Sobrien * tree.c (decl_linkage): New function. 977518334Speter 977690075Sobrien2000-10-28 Mark Mitchell <mark@codesourcery.com> 977718334Speter 977890075Sobrien * pt.c (instantiate_decl): Always instantiate static data members 977990075Sobrien initialized in-class. 978018334Speter 978190075Sobrien2000-10-27 Zack Weinberg <zack@wolery.stanford.edu> 978218334Speter 978390075Sobrien * Make-lang.in: Move all build rules here from Makefile.in, 978490075Sobrien adapt to new context. Wrap all rules that change the current 978590075Sobrien directory in parentheses. Expunge all references to $(P). 978690075Sobrien When one command depends on another and they're run all at 978790075Sobrien once, use && to separate them, not ;. Add OUTPUT_OPTION to 978890075Sobrien all object-file generation rules. Delete obsolete variables. 978918334Speter 979090075Sobrien * Makefile.in: Delete. 979190075Sobrien * config-lang.in: Delete outputs= line. 979218334Speter 979390075Sobrien2000-10-26 Gabriel Dos Reis <gdr@codesourcery.com> 979418334Speter 979590075Sobrien * error.c (dump_function_decl): Print no space between 979690075Sobrien `ptr-operator' the `type-specifier' of the return type. 979790075Sobrien (dump_type_prefix): Make sure we put space at the appropriate 979890075Sobrien place. 979918334Speter 980090075Sobrien2000-10-23 Jason Merrill <jason@redhat.com> 980118334Speter 980290075Sobrien * call.c (equal_functions): Also call decls_match for extern "C" fns. 980318334Speter 980490075Sobrien2000-10-22 Jason Merrill <jason@redhat.com> 980518334Speter 980690075Sobrien * call.c (build_conditional_expr): Use ocp_convert to force 980790075Sobrien rvalue conversion. 980818334Speter 980990075Sobrien2000-10-22 Mark Mitchell <mark@codesourcery.com> 981018334Speter 981190075Sobrien * call.c (standard_conversion): Use RVALUE_CONVs for all 981290075Sobrien expressions that satisfy lvalue_p, not just those that satisfy 981390075Sobrien real_lvalue_p. 981452284Sobrien 981590075Sobrien * optimize.c (copy_body_r): Don't treat CALL_EXPRs specially. 981618334Speter 981790075Sobrien * typeck.c (c_sizeof): Return an expression of `size_t' type, 981890075Sobrien not one with TYPE_IS_SIZETYPE set. 981990075Sobrien (dubious_conversion_warnings): Remove special-case code. 982018334Speter 982190075Sobrien2000-10-21 Geoffrey Keating <geoffk@cygnus.com> 982218334Speter 982390075Sobrien * decl2.c (arg_assoc_type): Handle VECTOR_TYPE. 982490075Sobrien * error.c (dump_type): Handle VECTOR_TYPE like POINTER_TYPE. 982590075Sobrien (dump_type_prefix): Print vector-of-int as 'int vector'. 982690075Sobrien (dump_type_suffix): Handle VECTOR_TYPE like POINTER_TYPE. 982790075Sobrien * tree.c (walk_tree): Handle VECTOR_TYPE. 982818334Speter 982990075Sobrien * decl.c (init_decl_processing): Call MD_INIT_BUILTINS. 983018334Speter 983190075Sobrien2000-10-21 Jason Merrill <jason@redhat.com> 983218334Speter 983390075Sobrien * parse.y (operator): Set got_object from got_scope. 983490075Sobrien Set looking_for_typename. 983590075Sobrien * decl.c (lookup_name_real): Clear val after setting from_obj. 983690075Sobrien Reorganize diagnostic. 983718334Speter 983890075Sobrien2000-10-20 Jason Merrill <jason@redhat.com> 983918334Speter 984090075Sobrien * tree.c (walk_tree): Don't walk into default args. 984118334Speter 984290075Sobrien * error.c (dump_expr): Use host_integerp. 984318334Speter 984490075Sobrien2000-10-20 David Edelsohn <edelsohn@gnu.org> 984518334Speter 984690075Sobrien * typeck2.c (abstract_virtuals_error): Use "because" instead of 984790075Sobrien "since" in error message. 984818334Speter 984990075SobrienFri Oct 20 13:54:59 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 985018334Speter 985190075Sobrien * typeck.c (dubious_conversion_warning): Suppress if TYPE_IS_SIZETYPE. 985218334Speter 985390075Sobrien2000-10-20 Jeffrey Oldham <oldham@codesourcery.com> 985418334Speter 985590075Sobrien * decl.c (revert_static_member_fn): Fixed typo. 985618334Speter 985790075Sobrien2000-10-19 Mark Mitchell <mark@codesourcery.com> 985818334Speter 985990075Sobrien * class.c (subobject_offset_fn): New type. 986090075Sobrien (dfs_record_base_offsets): Remove. 986190075Sobrien (record_base_offsets): Likewise. 986290075Sobrien (dfs_search_base_offsets): Likewise. 986390075Sobrien (record_subobject_offset): New function. 986490075Sobrien (check_subobject_offset): Likewise. 986590075Sobrien (walk_subobject_offsets): Likewise. 986690075Sobrien (record_subobject_offsets): Likewise. 986790075Sobrien (layout_conflict_p): Reimplement. 986890075Sobrien (layout_nonempty_base_or_field): Correct handling of type 986990075Sobrien conflicts during layout. 987090075Sobrien (layout_empty_base): Likewise. 987190075Sobrien (build_base_field): Adjust to handle new representation of empty 987290075Sobrien base offset table. 987390075Sobrien (build_base_fields): Likewise. 987490075Sobrien (layout_virtual_bases): Likewise. 987590075Sobrien (splay_tree_compare_integer_csts): New function. 987690075Sobrien (layout_class_type): Use a splay_tree, rather than a varray, to 987790075Sobrien represent the offsets of empty bases. 987818334Speter 987990075Sobrien * cp-tree.h (DECL_ANTICIPATED): Don't require a FUNCTION_DECL. 988090075Sobrien * decl.c (select_decl): Don't return declarations that are 988190075Sobrien DECL_ANTICIPATED. 988218334Speter 988390075Sobrien2000-10-18 Mark Mitchell <mark@codesourcery.com> 988418334Speter 988590075Sobrien * cp-tree.h (cp_tree_index): Add CPTI_FAKE_STD. 988690075Sobrien (fake_std_node): New macro. 988790075Sobrien * decl.c (in_std): Rename to ... 988890075Sobrien (in_fake_std): ... this. 988990075Sobrien (flag_no_builtin): Remove. 989090075Sobrien (flag_no_nonansi_builtin): Likewise. 989190075Sobrien (walk_namespaces_r): Use fake_std_node. 989290075Sobrien (push_namespace): Use std_identifier. 989390075Sobrien (pop_namespace): Use in_fake_std. 989490075Sobrien (lookup_name_real): Use fake_std_node. 989590075Sobrien (init_decl_processing): When -fhonor-std, create the `std' 989690075Sobrien namespace. Don't create a dummy fake_std_node in that case. 989790075Sobrien Adjust call to c_common_nodes_and_builtins. Use std_identifier. 989890075Sobrien (builtin_function): Put builtins whose names don't begin 989990075Sobrien with `_' in the std namespace. 990090075Sobrien * decl2.c (flag_no_builtin): Remove. 990190075Sobrien (flag_no_nonansi_builtin): Likewise. 990290075Sobrien (set_decl_namespace): Use fake_std_node. 990390075Sobrien (validate_nonmember_using_decl): Likewise. 990450397Sobrien (do_using_directive): Likewise. 990590075Sobrien (handle_class_head): Likewise. 990690075Sobrien * dump.c (dequeue_and_dump): Likewise. 990790075Sobrien * except.c (init_exception_processing): Use std_identifier. 990890075Sobrien * init.c (build_member_call): Use fake_std_node. 990990075Sobrien * rtti.c (init_rtti_processing): Use std_identifier. 991018334Speter 991190075Sobrien2000-10-17 Mark Mitchell <mark@codesourcery.com> 991218334Speter 991390075Sobrien * cp-tree.h (back_end_hook): Remove declaration. 991490075Sobrien * decl2.c (back_end_hook): Remove definition. 991518334Speter 991690075Sobrien * dump.c (dequeue_and_dump): Dump TREE_USED. 991718334Speter 991890075SobrienTue Oct 17 20:19:06 2000 Brad Lucier <lucier@math.purdue.edu> 991918334Speter 992090075Sobrien * spew.c (snarf_defarg): Cast 2nd arg to obstack_blank to (int). 992118334Speter 992290075Sobrien2000-10-17 Joseph S. Myers <jsm28@cam.ac.uk> 992318334Speter 992490075Sobrien * decl.c (WINT_TYPE): Define. 992590075Sobrien (init_decl_processing): Create types unsigned_ptrdiff_type_node, 992690075Sobrien c_size_type_node, signed_size_type_node and wint_type_node. 992718334Speter 992890075Sobrien2000-10-17 Joseph S. Myers <jsm28@cam.ac.uk> 992918334Speter 993090075Sobrien * decl2.c (warn_missing_format_attribute): New variable. 993190075Sobrien (lang_decode_option): Decode -Wmissing-format-attribute. 993218334Speter 993390075Sobrien2000-10-16 Mark Mitchell <mark@codesourcery.com> 993418334Speter 993590075Sobrien * typeck.c (qualify_type): Remove. 993690075Sobrien (composite_pointer_type): Fix handling of conversions to `cv void*'. 993718334Speter 993890075Sobrien2000-10-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 993918334Speter 994090075Sobrien * Makefile.in (parse.c, parse.h): Fix think-o in last patch. 994118334Speter 994290075Sobrien2000-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 994318334Speter 994490075Sobrien * Makefile.in (parse.c, parse.h): Create atomically. 994518334Speter 994690075Sobrien2000-10-12 Mark Mitchell <mark@codesourcery.com> 994718334Speter 994890075Sobrien * class.c (current_obstack): Remove. 994990075Sobrien * decl.c (ggc_p): Remove. 995090075Sobrien (start_decl): Don't use decl_tree_cons. 995190075Sobrien (grokdeclarator): Don't use build_decl_list. 995290075Sobrien (start_function): Don't use decl_tree_cons. 995390075Sobrien (finish_function): Don't mess with obstacks. 995490075Sobrien * decl2.c (grok_x_components): Don't use build_decl_list. 995590075Sobrien * lex.c (make_call_declarator): Don't call decl_tree_cons. 995690075Sobrien (implicitly_declare_fn): Don't call build_decl_list. 995790075Sobrien * parse.y (frob_specs): Don't call build_decl_list or 995890075Sobrien decl_tree_cons. 995990075Sobrien (expr_or_declarator_intern): Don't call decl_tree_cons. 996090075Sobrien (primary): Don't call build_decl_list. 996190075Sobrien (fcast_or_absdcl): Likewise. 996290075Sobrien (typed_declspecs): Don't call decl_tree_cons. 996390075Sobrien (reserved_declspecs): Don't call build_decl_list. 996490075Sobrien (declmods): Likewise. 996590075Sobrien (reserved_typespecquals): Likewise. 996690075Sobrien (aggr): Likewise. 996790075Sobrien (new_type_id): Likewise. 996890075Sobrien (cv_qualifiers): Likewise. 996990075Sobrien (after_type_declarator_intern): Likewise. 997090075Sobrien (notype_declarator_intern): Likewise. 997190075Sobrien (absdcl_intern): Likewise. 997290075Sobrien (named_parm): Likewise. 997390075Sobrien * pt.c (most_specialized_class): Likewise. 997490075Sobrien * repo.c (temporary_obstack): Make it a structure, not a pointer. 997590075Sobrien (init_repo): Initialize it. 997690075Sobrien * search.c (current_obstack): Remove. 997790075Sobrien * typeck2.c (add_exception_specifier): Don't call build_decl_list. 997818334Speter 997990075Sobrien2000-10-09 Richard Henderson <rth@cygnus.com> 998018334Speter 998190075Sobrien * Make-lang.in (CXX_EXTRA_HEADERS): Remove. 998290075Sobrien (c++ language support bits for libgcc): Remove. 998390075Sobrien (c++.clean): Remove cplib2.txt cleanup. 998490075Sobrien * config-lang.in (headers, lib2funcs): Remove. 998518334Speter 998690075Sobrien * exception.cc, new.cc, new1.cc, new2.cc: Remove files. 998790075Sobrien * tinfo.cc, tinfo.h, tinfo2.cc, vec.cc: Remove files. 998890075Sobrien * inc/cxxabi.h, inc/exception, inc/new: Remove files. 998990075Sobrien * inc/new.h, inc/typeinfo: Remove files. 999018334Speter 999190075Sobrien2000-10-08 Joseph S. Myers <jsm28@cam.ac.uk> 999218334Speter 999390075Sobrien * decl.c (INTMAX_TYPE, UINTMAX_TYPE): Define if not already 999490075Sobrien defined. 999590075Sobrien (init_decl_processing): Initialize intmax_type_node and 999690075Sobrien uintmax_type_node. 999718334Speter 999890075Sobrien2000-10-06 Richard Henderson <rth@cygnus.com> 999918334Speter 1000090075Sobrien * cp-tree.h (struct cp_language_function): Remove x_result_rtx. 1000190075Sobrien (original_result_rtx): Remove. 1000290075Sobrien * decl.c (save_function_data): Don't clear x_result_rtx. 1000390075Sobrien (mark_lang_function): Don't mark it either. 1000490075Sobrien * expr.c (fixup_result_decl): Remove. 1000590075Sobrien * semantics.c (genrtl_named_return_value): Frob the return decl 1000690075Sobrien before calling emit_local_var. 1000790075Sobrien (genrtl_finish_function): Don't call fixup_result_decl. 1000890075Sobrien Always emit the jump to return_label. 1000918334Speter 1001090075Sobrien2000-10-06 Nathan Sidwell <nathan@codesourcery.com> 1001118334Speter 1001290075Sobrien * pt.c (lookup_template_class): Set current access for enum. 1001390075Sobrien (tsubst_enum): Set file & line for enum decl. 1001418334Speter 1001590075Sobrien * spew.c (yylex): Remove unused variable. 1001618334Speter 1001790075Sobrien2000-10-05 Richard Henderson <rth@cygnus.com> 1001818334Speter 1001990075Sobrien * semantics.c (genrtl_finish_function): Don't init or check 1002090075Sobrien can_reach_end; remove noreturn and return value checks. 1002118334Speter 1002290075Sobrien2000-10-05 Tom Tromey <tromey@cygnus.com> 1002318334Speter 1002490075Sobrien * init.c (build_java_class_ref): Use `build_static_name' with a 1002590075Sobrien suffix, not a prefix, to build the class object's name. 1002618334Speter 1002790075Sobrien2000-10-05 Nathan Sidwell <nathan@codesourcery.com> 1002818334Speter 1002990075Sobrien * cp-tree.h (access_kind): Fix comment typo. 1003090075Sobrien * decl2.c (grokfield): Fix diagnostic typo. 1003190075Sobrien * semantics.c (finish_template_type): Fix comment typo. 1003290075Sobrien (finish_qualified_object_call_expr): Likewise. 1003318334Speter 1003490075Sobrien2000-10-05 Nathan Sidwell <nathan@codesourcery.com> 1003518334Speter 1003690075Sobrien * pt.c (tsubst_expr, DECL_STMT case): Don't process if 1003790075Sobrien tsubsting fails. 1003818334Speter 1003990075Sobrien2000-10-05 Nathan Sidwell <nathan@codesourcery.com> 1004018334Speter 1004190075Sobrien * spew.c (frob_id): New static function. 1004290075Sobrien (frob_opname): Use it. 1004390075Sobrien (yylex): Use it. 1004418334Speter 1004590075Sobrien2000-10-01 Mark Mitchell <mark@codesourcery.com> 1004618334Speter 1004790075Sobrien * decl.c (lang_mark_false_label_stack): Remove. 1004890075Sobrien * lex.c (cp_mang_lang_type): Use ggc_alloc_cleared. 1004918334Speter 1005090075Sobrien2000-09-30 Joseph S. Myers <jsm28@cam.ac.uk> 1005118334Speter 1005290075Sobrien * gxxint.texi: Use @email for formatting email addresses. 1005318334Speter 1005490075Sobrien2000-09-29 Gabriel Dos Reis <gdr@codesourcery.com> 1005518334Speter 1005690075Sobrien * error.c: Remove direct obstack manipulation. Replace with 1005790075Sobrien output_buffer-based formatting. Adjust calls to removed macros. 1005890075Sobrien (obstack_chunk_alloc, obstack_chunk_free): Remove. 1005990075Sobrien (OB_INIT, OB_PUTC, OB_PUTC2, OB_PUTS, OB_PUTID, OB_PUTCP, 1006090075Sobrien OB_FINISH, OB_PUTI, OB_END_TEMPLATE): Likewise. 1006118334Speter 1006290075Sobrien2000-09-24 Mark Mitchell <mark@codesourcery.com> 1006318334Speter 1006490075Sobrien * ir.texi: Move to ../c-tree.texi. 1006518334Speter 1006690075Sobrien2000-09-20 Jason Merrill <jason@redhat.com> 1006718334Speter 1006890075Sobrien * decl2.c (get_guard): Check DECL_FUNCTION_SCOPE_P. 1006918334Speter 1007090075Sobrien2000-09-21 Andreas Jaeger <aj@suse.de> 1007118334Speter 1007290075Sobrien * errfn.c: Move declaration of cp_printer and cp_printers to ... 1007390075Sobrien * cp-tree.h: ... here. 1007418334Speter 1007590075Sobrien * error.c: Remove declaration of cp_printer. 1007618334Speter 1007790075Sobrien2000-09-20 Mark Mitchell <mark@codesourcery.com> 1007818334Speter 1007990075Sobrien * tree.c (mark_local_for_remap_r): Handle CASE_LABELs. 1008018334Speter 1008190075Sobrien2000-09-20 Hans-Peter Nilsson <hp@axis.com> 1008218334Speter 1008390075Sobrien * except.c: Delete #if 0:d EXCEPTION_SECTION_ASM_OP-default and 1008490075Sobrien users. 1008518334Speter 1008690075Sobrien2000-09-18 Mark Mitchell <mark@codesourcery.com> 1008718334Speter 1008890075Sobrien * decl.c (start_function): Robustify. 1008918334Speter 1009090075Sobrien2000-09-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1009118334Speter 1009290075Sobrien * cp-tree.h (check_function_format): Accept a `status' parameter. 1009318334Speter 1009490075Sobrien * call.c, typeck.c: Updates calls to `check_function_format'. 1009518334Speter 1009690075Sobrien2000-09-17 Geoffrey Keating <geoffk@cygnus.com> 1009718334Speter 1009890075Sobrien * decl2.c (handle_class_head): Always push some scope even 1009990075Sobrien in the error case. 1010018334Speter 1010190075Sobrien2000-09-16 Mark Mitchell <mark@codesourcery.com> 1010218334Speter 1010390075Sobrien * cp-tree.h (struct cp_language_function): Remove 1010490075Sobrien x_scope_stmt_stack and name_declared. 1010590075Sobrien (current_scope_stmt_stack): Remove. 1010690075Sobrien (function_name_declared_p): New macro. 1010790075Sobrien (struct lang_decl_flags): Use c_lang_decl as a base class. 1010890075Sobrien (context): Remove. 1010990075Sobrien (struct lang_decl): Replace saved_tree with context. 1011090075Sobrien (DECL_FRIEND_CONTEXT): Adjust accordingly. 1011190075Sobrien (SET_DECL_FRIEND_CONTEXT): Likewise. 1011290075Sobrien (DECL_VIRTUAL_CONTEXT): Likewise. 1011390075Sobrien (DECL_SAVED_TREE): Remove. 1011490075Sobrien (C_DECLARED_LABEL_FLAG): Likewise. 1011590075Sobrien (cplus_expand_expr_stmt): Don't declare. 1011690075Sobrien (add_decl_stmt): Likewise. 1011790075Sobrien (add_scope_stmt): Likewise. 1011890075Sobrien * decl.c (mark_stmt_tree): Remove. 1011990075Sobrien (case_compare): Likewise. 1012090075Sobrien (finish_case_label): Use c_add_case_label. 1012190075Sobrien (init_decl_processing): Set more language-specific hooks. 1012290075Sobrien (build_enumerator): Fix typo in comment. 1012390075Sobrien (cplus_expand_expr_stmt): Remove. 1012490075Sobrien (mark_lang_function): Use mark_c_language_function. 1012590075Sobrien (lang_mark_tree): Use c_mark_lang_decl. 1012690075Sobrien * decl2.c: Change order of inclusion. 1012790075Sobrien * except.c: Likewise. 1012890075Sobrien * expr.c (cplus_expand_expr): Remove handling of STMT_EXPR. Fall 1012990075Sobrien back on c_expand_expr. 1013090075Sobrien * friend.c: Include expr.h. 1013190075Sobrien * init.c: Change order of inclusion. 1013290075Sobrien * Makefile.in: Update dependencies. 1013390075Sobrien * lex.h (free_lang_decl_chain): Remove. 1013490075Sobrien * optimize.c (maybe_clone_body): Use function_name_declared_p. 1013590075Sobrien * pt.c (build_template_decl): Don't copy DECL_VIRTUAL_CONTEXT if 1013690075Sobrien it doesn't exist. 1013790075Sobrien (instantiate_decl): Use function_name_declared_p. 1013890075Sobrien * semantics.c (lang_expand_expr_stmt): Remove. 1013990075Sobrien (set_current_function_name_declared): Likewise. 1014090075Sobrien (current_function_name_declared): Likewise. 1014190075Sobrien (begin_compound_stmt): Use function_name_declared_p. 1014290075Sobrien (add_decl_stmt): Remove. 1014390075Sobrien (setup_vtbl_ptr): Use function_name_declared_p. 1014490075Sobrien (add_scope_stmt): Remove. 1014590075Sobrien (current_scope_stmt_stack): New function. 1014690075Sobrien (cp_expand_stmt): Don't handle SCOPE_STMTs. 1014790075Sobrien (expand_body): Use function_name_declared_p. 1014890075Sobrien * tree.c (cp_statement_code_p): Don't include SCOPE_STMT. 1014990075Sobrien * typeck.c: Change order of includes. 1015090075Sobrien (convert_sequence): Remove. 1015118334Speter 1015290075Sobrien2000-09-14 Joseph S. Myers <jsm28@cam.ac.uk> 1015318334Speter 1015490075Sobrien * lex.c (reswords): Add _Complex. 1015518334Speter 1015690075SobrienThu Sep 14 12:10:45 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 1015718334Speter 1015890075Sobrien * Make-lang.in (cplib2.txt): Depend on cp/Makefile. 1015918334Speter 1016090075Sobrien2000-09-13 J. David Anglin <dave@hiauly1.hia.nrc.ca> 1016118334Speter 1016290075Sobrien * init.c (begin_init_stmts): Don't use // comments. 1016318334Speter 1016490075Sobrien2000-09-12 Jason Merrill <jason@redhat.com> 1016518334Speter 1016690075Sobrien * decl.c (maybe_deduce_size_from_array_init): Set do_default for 1016790075Sobrien all non-extern arrays. 1016818334Speter 1016990075Sobrien * decl.c (grokdeclarator): Complain about 'friend T' for implicit 1017090075Sobrien typenames, too. Downgrade complaint to pedwarn. 1017190075Sobrien (xref_tag): Warn about surprising behavior of 'friend struct T'. 1017290075Sobrien * decl2.c (handle_class_head): Generate a TYPENAME_TYPE for 1017390075Sobrien 'class This::Inherited'. 1017418334Speter 1017590075Sobrien2000-09-12 Mark Mitchell <mark@codesourcery.com> 1017618334Speter 1017790075Sobrien * decl.c (finish_case_label): Given the LABEL_DECL a 1017890075Sobrien DECL_CONTEXT. 1017918334Speter 1018090075Sobrien2000-09-12 Gabriel Dos Reis <gdr@codesourcery.com> 1018152284Sobrien 1018290075Sobrien * error.c (TFF_PLAIN_IDENTIFIER, TFF_NAMESPACE_SCOPE, 1018390075Sobrien TFF_CLASS_SCOPE, TFF_CHASE_NAMESPACE_ALIAS, TFF_CHASE_TYPDEF, 1018490075Sobrien TFF_DECL_SPECIFIERS, TFF_CLASS_KEY_OR_ENUM, TFF_RETURN_TYPE, 1018590075Sobrien TFF_FUNCTION_DEFAULT_ARGUMENTS, TFF_EXCEPTION_SPECIFICATION, 1018690075Sobrien TFF_TEMPLATE_HEADER, TFF_TEMPLATE_DEFAULT_ARGUMENTS, TFF_SCOPE): 1018790075Sobrien New macros. 1018890075Sobrien (sorry_for_unsupported_tree, print_scope_operator, 1018990075Sobrien print_left_paren, print_right_paren, print_left_bracket, 1019090075Sobrien print_right_bracket, print_whitespace): Likewise. 1019190075Sobrien (aggr_variety): Rename to class_key_or_enum. 1019290075Sobrien (print_type): Rename to print_type_id. 1019390075Sobrien (print_type_specifier_seq, print_simple_type_specifier, 1019490075Sobrien print_elaborated_type_specifier, 1019590075Sobrien print_rest_of_abstract_declarator, 1019690075Sobrien print_parameter_declaration_clause, print_exception_specification, 1019790075Sobrien print_nested_name_specifier, print_template_id, 1019890075Sobrien typedef_original_name, print_template_argument_list_start, 1019990075Sobrien print_template_argument_list_end): New functions. 1020018334Speter 1020190075Sobrien2000-09-11 Gabriel Dos Reis <gdr@codesourcery.com> 1020218334Speter 1020390075Sobrien * ir.texi: Add more documentation. 1020418334Speter 1020590075Sobrien2000-09-11 Mark Mitchell <mark@codesourcery.com> 1020618334Speter 1020790075Sobrien * cp-tree.h (struct saved_scope): Remove x_function_parms. 1020890075Sobrien (current_function_parms): Don't define. 1020990075Sobrien (struct cp_language_function): Remove parms_stored. 1021090075Sobrien (current_function_just_assigned_this): Don't define. 1021190075Sobrien (current_function_parms_stored): Likewise. 1021290075Sobrien (static_ctors): Declare. 1021390075Sobrien (static_dtors): Likewise. 1021490075Sobrien (SF_EXPAND): Don't define. 1021590075Sobrien (expand_start_early_try_stmts): Remove declaration. 1021690075Sobrien (store_parm_decls): Likewise. 1021790075Sobrien * decl.c (static_ctors): Don't declare. 1021890075Sobrien (static_dtors): Likewise. 1021990075Sobrien (struct binding_level): Remove this_block. 1022090075Sobrien (poplevel): Remove dead code. 1022190075Sobrien (set_block): Likewise. 1022290075Sobrien (mark_binding_level): Don't mark this_block. 1022390075Sobrien (mark_saved_scope): Don't mark x_function_parms. 1022490075Sobrien (init_decl_processing): Don't add current_function_parms as a GC 1022590075Sobrien root. 1022690075Sobrien (check_function_type): Change prototype. 1022790075Sobrien (start_function): Remove RTL-generation code. 1022890075Sobrien (expand_start_early_try_stmts): Remove. 1022990075Sobrien (store_parm_decls): Give it internal linkage. Remove 1023090075Sobrien RTL-generation code. 1023190075Sobrien (finish_function): Remove RTL-generation code. 1023290075Sobrien * decl2.c (static_ctors): Fix formatting. 1023390075Sobrien (static_dtors): Likewise. 1023490075Sobrien * method.c (use_thunk): Don't call store_parm_decls. 1023590075Sobrien (synthesize_method): Likewise. 1023690075Sobrien * optimize.c (maybe_clone_body): Likewise. 1023790075Sobrien * parse.y (fn.def2): Likewise. 1023890075Sobrien (.set_base_init): Likewise. 1023990075Sobrien (nodecls): Likewise. 1024090075Sobrien * pt.c (instantiate_decl): Likewise. 1024190075Sobrien * rtti.c (synthesize_tinfo_fn): Likewise. 1024290075Sobrien * semantics.c (genrtl_try_block): Simplify. 1024390075Sobrien (expand_body): Use genrtl_start_function and 1024490075Sobrien genrtl_finish_function. 1024590075Sobrien (genrtl_start_function): New function. 1024690075Sobrien (genrtl_finish_function): Likewise. 1024718334Speter 1024890075Sobrien2000-09-11 Nathan Sidwell <nathan@codesourcery.com> 1024918334Speter 1025090075Sobrien * error.c (cp_tree_printer, case 'P'): Append break. 1025118334Speter 1025290075Sobrien2000-09-11 Nathan Sidwell <nathan@codesourcery.com> 1025318334Speter 1025490075Sobrien * cp-tree.h (frob_opname): Declare. 1025590075Sobrien * parse.y (saved_scopes): New static variable. 1025690075Sobrien (cp_parse_init): Adjust. 1025790075Sobrien (do_id): If lastiddecl is NULL, do do_identifier. 1025890075Sobrien (operator): Save scope information. 1025990075Sobrien (unoperator): New reduction. Restore scope information. 1026090075Sobrien (operator_name): Append unoperator. Call frob_opname. 1026190075Sobrien * spew.c (frob_opname): Define. 1026218334Speter 1026390075Sobrien2000-09-10 Zack Weinberg <zack@wolery.cumb.org> 1026418334Speter 1026590075Sobrien * decl.c, rtti.c: Include defaults.h if not already included. 1026690075Sobrien Don't define the *_TYPE_SIZE macros. 1026718334Speter 1026890075Sobrien2000-09-09 Mark Mitchell <mark@codesourcery.com> 1026918334Speter 1027090075Sobrien * cp-tree.h (push_switch): Change prototype. 1027190075Sobrien (check_cp_case_value): Remove declaration. 1027290075Sobrien (decl_constant_value): Likewise. 1027390075Sobrien * decl.c (struct cp_switch): Add switch_stmt and cases. 1027490075Sobrien (case_compare): New function. 1027590075Sobrien (push_switch): Set switch_stmt. Initialize cases. 1027690075Sobrien (pop_switch): Clean up cases. 1027790075Sobrien (define_case_label): Rename to ... 1027890075Sobrien (finish_case_label): ... this. Do semantic analysis for case 1027990075Sobrien labels here. 1028090075Sobrien (start_function): Correct comment. 1028190075Sobrien * decl2.c (check_cp_case_value): Remove. 1028290075Sobrien * expr.c (do_case): Remove. 1028390075Sobrien * pt.c (tsubst_expr): Adjust call to finish_case_label. 1028490075Sobrien * semantics.c (genrtl_do_poplevel): Remove declaration. 1028590075Sobrien (RECHAIN_STMTS): Remove. 1028690075Sobrien (finish_break_stmt): Use build_break_stmt. 1028790075Sobrien (finish_continue_stmt): Use build_continue_stmt. 1028890075Sobrien (finish_switch_cond): Adjust condition here, rater than in 1028990075Sobrien c_expand_start_case. 1029090075Sobrien (finish_case_label): Remove. 1029190075Sobrien * typeck.c (c_expand_return): Remove. 1029290075Sobrien (c_expand_start_case): Likewise. 1029318334Speter 1029490075Sobrien2000-09-07 Gabriel Dos Reis <gdr@codesourcery.com> 1029518334Speter 1029690075Sobrien * ir.texi: Document type nodes. 1029718334Speter 1029890075Sobrien2000-09-06 Mark Mitchell <mark@codesourcery.com> 1029918334Speter 1030090075Sobrien * cp-tree.h (init_cp_semantics): Declare. 1030190075Sobrien (genrtl_try_block): Don't declare. 1030290075Sobrien (genrtl_handler): Likewise. 1030390075Sobrien (genrtl_catch_block): Likewise. 1030490075Sobrien (genrtl_ctor_stmt): Likewise. 1030590075Sobrien (genrtl_subobject): Likewise. 1030690075Sobrien (genrtl_do_poplevel): Likewise. 1030790075Sobrien (genrtl_named_return_value): Likewise. 1030890075Sobrien * lex.c (init_parse): Call init_cp_semantics. 1030990075Sobrien * semantics.c (genrtl_try_block): Give it internal linkage. 1031090075Sobrien (genrtl_handler): Likewise. 1031190075Sobrien (genrtl_catch_block): Likewise. 1031290075Sobrien (genrtl_ctor_stmt): Likewise. 1031390075Sobrien (genrtl_subobject): Likewise. 1031490075Sobrien (genrtl_do_poplevel): Likewise. 1031590075Sobrien (genrtl_named_return_value): Likewise. 1031690075Sobrien (lang_expand_stmt): Rename to ... 1031790075Sobrien (cp_expand_stmt): ... this. Only handle C++-specific nodes. 1031890075Sobrien (init_cp_semantics): Define. 1031918334Speter 1032090075Sobrien * decl.c (initialize_local_var): Remove RTL-generating code. 1032190075Sobrien * semantics.c (genrtl_try_block): Fix formatting. 1032218334Speter 1032390075Sobrien Move statement-tree facilities from C++ to C front-end. 1032490075Sobrien * cp-tree.h (cp_tree_index): Remove CPTI_VOID_ZERO. 1032590075Sobrien (void_zero_node): Remove. 1032690075Sobrien (stmt_tree): Likewise. 1032790075Sobrien (scope_chain): Adjust. 1032890075Sobrien (language_function): Rename to cp_language_function. 1032990075Sobrien (cp_function_chain): Adjust. 1033090075Sobrien (current_stmt_tree): Remove. 1033190075Sobrien (last_tree): Likewise. 1033290075Sobrien (last_expr_type): Likewise. 1033390075Sobrien (struct lang_decl): Adjust. 1033490075Sobrien (STMT_IS_FULL_EXPR_P): Remove. 1033590075Sobrien (add_tree): Remove. 1033690075Sobrien (begin_stmt_tree): Likewise. 1033790075Sobrien (finish_stmt_tree): Likewise. 1033890075Sobrien (walk_tree_fn): Likewise. 1033990075Sobrien (walk_stmt_tree): Likewise. 1034090075Sobrien * class.c (finish_struct): Replace use of add_tree with add_stmt. 1034190075Sobrien * decl.c (mark_stmt_tree): Adjust type. 1034290075Sobrien (init_decl_processing): Don't build void_zero_node. 1034390075Sobrien (initialize_local_var): Adjust usage of current_stmt_tree. 1034490075Sobrien (finish_enum): Use add_stmt, not add_tree. 1034590075Sobrien (save_function_data): Adjust use of language_function. 1034690075Sobrien (finish_constructor_body): Use add_stmt, not add_tree. 1034790075Sobrien (finish_destructor_body): Likewise. 1034890075Sobrien (push_cp_function_context): Adjust use of language_function. 1034990075Sobrien (pop_cp_function_context): Likewise. 1035090075Sobrien (mark_lang_function): Likewise. 1035190075Sobrien (mark_cp_function_context): Likewise. 1035290075Sobrien * init.c (build_aggr_init): Adjust use of current_stmt_tree. 1035390075Sobrien (build_vec_init): Likewise. 1035490075Sobrien * semantics.c (SET_LAST_STMT): Remove. 1035590075Sobrien (RECHAIN_STMTS): Don't use it. 1035690075Sobrien (stmts_are_full_exprs_p): Adjust use of current_stmt_tree. 1035790075Sobrien (current_stmt_tree): Define. 1035890075Sobrien (add_tree): Remove. 1035990075Sobrien (finish_goto_stmt): Use add_stmt, not add_tree. 1036090075Sobrien (finish_expr_stmt): Likewise. 1036190075Sobrien (begin_if_stmt): Likewise. 1036290075Sobrien (finish_then_clause): Likewise. 1036390075Sobrien (begin_while_stmt): Likewise. 1036490075Sobrien (begin_do_stmt): Likewise. 1036590075Sobrien (finish_return_stmt): Likewise. 1036690075Sobrien (begin_for_stmt): Likewise. 1036790075Sobrien (finish_break_stmt): Likewise. 1036890075Sobrien (finish_continue_stmt): Likewise. 1036990075Sobrien (begin_switch_stmt): Likewise. 1037090075Sobrien (finish_case_label): Likewise. 1037190075Sobrien (begin_try_block): Likewise. 1037290075Sobrien (begin_function_try_block): Likewise. 1037390075Sobrien (begin_handler): Likewise. 1037490075Sobrien (begin_catch_block): Likewise. 1037590075Sobrien (begin_compound_stmt): Likewise. 1037690075Sobrien (begin_asm_stmt): Likewise. 1037790075Sobrien (finish_asm_stmt): Likewise. 1037890075Sobrien (finish_label_stmt): Likewise. 1037990075Sobrien (add_decl_stmt): Likewise. 1038090075Sobrien (finish_subobject): Likewise. 1038190075Sobrien (finish_decl_cleanup): Likewise. 1038290075Sobrien (finish_named_return_value): Likewise. 1038390075Sobrien (setup_vtbl_ptr): Likewise. 1038490075Sobrien (add_scope_stmt): Likewise. 1038590075Sobrien (finish_stmt_expr): Likewise. 1038690075Sobrien (prune_unused_decls): Remove. 1038790075Sobrien (begin_stmt_tree): Likewise. 1038890075Sobrien (finish_stmt_tree): Likewise. 1038990075Sobrien (prep_stmt): Adjust use of current_stmt_tree. 1039090075Sobrien (lang_expand_stmt): Likewise. 1039190075Sobrien * tree.c (statement_code_p): Remove. 1039290075Sobrien (cp_statement_code_p): New function. 1039390075Sobrien (walk_stmt_tree): Remove. 1039490075Sobrien (init_tree): Set lang_statement_code_p. 1039518334Speter 1039690075Sobrien2000-09-06 Zack Weinberg <zack@wolery.cumb.org> 1039718334Speter 1039890075Sobrien Integrated preprocessor. 1039918334Speter 1040090075Sobrien * Make-lang.in, Makefile.in: Remove all references to input.c, 1040190075Sobrien gxx.gperf, and hash.h. Add ../c-lex.o to C_OBJS. 1040290075Sobrien * gxx.gperf, hash.h, input.c: Delete. 1040390075Sobrien * lang-specs.h: Pass -lang-c++ to cc1plus so cpplib is 1040490075Sobrien initialized properly. 1040518334Speter 1040690075Sobrien * class.c (fixup_pending_inline): Take a tree, not a 1040790075Sobrien struct pending_inline *. All callers changed. 1040890075Sobrien (init_class_processing): Set RID_PUBLIC, RID_PRIVATE, 1040990075Sobrien RID_PROTECTED entries in ridpointers[] array here. 1041090075Sobrien * decl.c (duplicate_decls): Do not refer to struct 1041190075Sobrien pending_inline. 1041290075Sobrien (record_builtin_type, init_decl_processing): Use RID_MAX not 1041390075Sobrien CP_RID_MAX. 1041490075Sobrien (grokdeclarator): Use C_IS_RESERVED_WORD. 1041590075Sobrien * decl2.c (lang_decode_option): Ignore -lang-c++ for sake of 1041690075Sobrien cpplib. 1041790075Sobrien (grok_x_components): Do not inspect pending_inlines chain. 1041818334Speter 1041990075Sobrien * cp-tree.h (struct lang_identifier): Add rid_code entry. 1042090075Sobrien (C_IS_RESERVED_WORD, C_RID_CODE, C_RID_YYCODE): New. 1042190075Sobrien (flag_no_gnu_keywords, flag_operator_names, rid_to_yy): Declare. 1042290075Sobrien (DEFARG_LENGTH, struct pending_inline, TIME_IDENTIFIER_TIME, 1042390075Sobrien TIME_IDENTIFIER_FILEINFO): Kill. 1042490075Sobrien Update prototypes. 1042590075Sobrien * lex.h: Expunge cp_rid. Rewrite RIDBIT macros to use just a 1042690075Sobrien single 32-bit word. 1042790075Sobrien * parse.y: Call do_pending_inlines unconditionally. 1042890075Sobrien reinit_parse_for_method is now snarf_method. fn.defpen is no 1042990075Sobrien longer necessary. Remove unnecessary <itype> annotation on 1043090075Sobrien SCOPE. Do not refer to end_of_file or struct pending_inline. 1043190075Sobrien * semantics.c (begin_inline_definitions): Call 1043290075Sobrien do_pending_inlines unconditionally. 1043318334Speter 1043490075Sobrien * lex.c: Remove all code now shared with C front end. 1043590075Sobrien Initialize cpplib properly if USE_CPPLIB. Put reserved words 1043690075Sobrien into the get_identifier table. Rewrite pragma handling to 1043790075Sobrien work with the registry. Move code to save tokens for later 1043890075Sobrien processing to spew.c. 1043918334Speter 1044090075Sobrien * spew.c: Rewrite everything in terms of token streams instead 1044190075Sobrien of text. Move routines here from lex.c / input.c as 1044290075Sobrien appropriate. GC-mark trees hanging off the pending inlines 1044390075Sobrien chain. 1044418334Speter 1044590075Sobrien2000-09-06 Mark Mitchell <mark@codesourcery.com> 1044618334Speter 1044790075Sobrien * NEWS: Mention that the named return value extension has been 1044890075Sobrien deprecated. 1044990075Sobrien * cp-tree.h (original_result_rtx): Define. 1045090075Sobrien (TREE_REFERENCE_EXPR): Remove. 1045190075Sobrien (DECL_VPARENT): Likewise. 1045290075Sobrien (pushdecl_nonclass_level): Likewise. 1045390075Sobrien (store_return_init): Likewise. 1045490075Sobrien (reinit_lang_specific): Likewise. 1045590075Sobrien (genrtl_named_return_value): Change prototype. 1045690075Sobrien * decl.c (original_result_rtx): Remove. 1045790075Sobrien (cp_finish_decl): Don't build DECL_STMTs for RESULT_DECLs. 1045890075Sobrien Do not generate RTL for local variables here. 1045990075Sobrien (store_return_init): Remove. 1046090075Sobrien * semantics.c (genrtl_named_return_value): Simplify. Fold in 1046190075Sobrien store_return_init. 1046290075Sobrien (finish_named_return_value): Adjust accordingly. Warn that this 1046390075Sobrien extension is deprecated. 1046490075Sobrien (lang_expand_stmt): Adjust call to genrtl_named_return_value. 1046518334Speter 1046690075Sobrien2000-09-06 Nathan Sidwell <nathan@codesourcery.com> 1046718334Speter 1046890075Sobrien * pt.c (type_unification_real): Replace switch with if. 1046990075Sobrien (unify): Tsubst non-type parms before comparing. 1047018334Speter 1047190075Sobrien2000-09-06 Nathan Sidwell <nathan@codesourcery.com> 1047218334Speter 1047390075Sobrien * error.c (dump_typename): New function, broken out of ... 1047490075Sobrien (dump_type): ... here. Use it. 1047590075Sobrien * typeck.c (same_type_p): Use cp_tree_equal for TYPENAME_TYPE. 1047618334Speter 1047790075Sobrien2000-09-06 Nathan Sidwell <nathan@codesourcery.com> 1047818334Speter 1047990075Sobrien * init.c (build_offset_ref): Deal with namespace scoped 1048090075Sobrien TEMPLATE_ID_EXPRs. 1048118334Speter 1048290075Sobrien2000-09-06 Nathan Sidwell <nathan@codesourcery.com> 1048318334Speter 1048490075Sobrien * class.c (resolve_address_of_overloaded_function): Add 1048590075Sobrien explanation message. 1048690075Sobrien * decl.c (define_case_label): Reformat explanation. 1048790075Sobrien * decl2.c (finish_static_data_member_decl): Likewise. 1048890075Sobrien (grokfield): Likewise. 1048950397Sobrien * friend.c (do_friend): Likewise. 1049018334Speter 1049190075Sobrien2000-09-05 Zack Weinberg <zack@wolery.cumb.org> 1049218334Speter 1049390075Sobrien * tree.c (walk_tree): Expose tail recursion. 1049490075Sobrien (walk_stmt_tree): New function. 1049590075Sobrien * cp-tree.h: Prototype walk_stmt_tree. 1049690075Sobrien * semantics.c (prune_unused_decls): Operate on SCOPE_STMTs not 1049790075Sobrien the BLOCKs directly. If a BLOCK has no variables after 1049890075Sobrien pruning, discard it. 1049990075Sobrien (finish_stmt_tree): Use walk_stmt_tree. No need to save and 1050090075Sobrien restore the line number. 1050118334Speter 1050290075Sobrien2000-09-05 Mark Mitchell <mark@codesourcery.com> 1050318334Speter 1050490075Sobrien * Makefile.in (CXX_TREE_H): Add dependency on HTAB_H. 1050590075Sobrien (pt.o): Remove dependency on HTAB_H. 1050690075Sobrien * cp-tree.h: Include hashtab.h. 1050790075Sobrien (walk_tree): Change prototype. 1050890075Sobrien (walk_tree_without_duplicates): New function. 1050990075Sobrien * decl.c (check_default_argument): Use it. 1051090075Sobrien * optimize.c (remap_decl): Adjust calls to walk_tree. 1051190075Sobrien (copy_body): Likewise. 1051290075Sobrien (expand_calls_inline): Likewise. 1051390075Sobrien (calls_setjmp_p): Use walk_tree_without_duplicates. 1051490075Sobrien * pt.c: Don't include hashtab.h. 1051590075Sobrien (for_each_template_parm): Use walk_tree_without_duplicates. 1051690075Sobrien * semantics.c (finish-stmt_tree): Likewise. 1051790075Sobrien (expand_body): Likewise. 1051890075Sobrien * tree.c (walk_tree): Add additional parameter. 1051990075Sobrien (walk_tree_without_duplicates): New function. 1052090075Sobrien (count_trees): Use it. 1052190075Sobrien (verify_stmt_tree): Adjust call to walk_tree. 1052290075Sobrien (find_tree): Use walk_tree_without_duplicates. 1052390075Sobrien (no_linkage_check): Likewise. 1052490075Sobrien (break_out_target_exprs): Adjust call to walk_tree. 1052590075Sobrien (cp_unsave): Likewise. 1052618334Speter 1052790075Sobrien2000-09-04 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1052818334Speter 1052990075Sobrien * cp-tree.def (BOUND_TEMPLATE_TEMPLATE_PARM): New tree code. 1053090075Sobrien (TEMPLATE_TEMPLATE_PARM): Adjust comment. 1053190075Sobrien * cp-tree.h (TYPE_BINFO): Adjust comment. 1053290075Sobrien (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Likewise. 1053390075Sobrien (TEMPLATE_TYPE_PARM_INDEX): Likewise. 1053490075Sobrien (IS_AGGR_TYPE): Use BOUND_TEMPLATE_TEMPLATE_PARM instead. 1053590075Sobrien (TYPE_TEMPLATE_INFO): Likewise. 1053690075Sobrien (TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL): Likewise. 1053790075Sobrien * class.c (push_nested_class): Likewise. 1053890075Sobrien * decl.c (lookup_name_real): Likewise. 1053990075Sobrien (grokdeclarator): Likewise. 1054090075Sobrien (grok_op_properties): Likewise. 1054190075Sobrien (xref_tag): Likewise. 1054290075Sobrien (xref_basetypes): Likewise. 1054350397Sobrien * decl2.c (constructor_name_full): Likewise. 1054490075Sobrien (arg_assoc_template_arg): Add TEMPLATE_TEMPLATE_PARM case. 1054590075Sobrien (arg_assoc_type): Use BOUND_TEMPLATE_TEMPLATE_PARM instead. 1054690075Sobrien * error.c (dump_type): Split TEMPLATE_TEMPLATE_PARM case. 1054790075Sobrien (dump_type_prefix): Add BOUND_TEMPLATE_TEMPLATE_PARM. 1054890075Sobrien (dump_type_suffix): Likewise. 1054990075Sobrien * init.c (is_aggr_type): Use BOUND_TEMPLATE_TEMPLATE_PARM 1055090075Sobrien instead. 1055190075Sobrien (get_aggr_from_typedef): Likewise. 1055290075Sobrien * mangle.c (write_type): Split TEMPLATE_TEMPLATE_PARM case. 1055390075Sobrien (write_expression): Add BOUND_TEMPLATE_TEMPLATE_PARM. 1055490075Sobrien (write_template_parm): Likewise. 1055590075Sobrien (write_template_template_parm): Check tree code instead of 1055690075Sobrien using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO. 1055790075Sobrien * method.c (build_overload_nested_name): Add 1055890075Sobrien BOUND_TEMPLATE_TEMPLATE_PARM. 1055990075Sobrien (process_overload_item): Split TEMPLATE_TEMPLATE_PARM case. 1056090075Sobrien * parse.y (bad_parm): Add BOUND_TEMPLATE_TEMPLATE_PARM. 1056190075Sobrien * pt.c (convert_template_argument): Check tree code instead of 1056290075Sobrien using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO. 1056390075Sobrien (for_each_template_parm_r): Split TEMPLATE_TEMPLATE_PARM case. 1056490075Sobrien (for_each_template_parm): Adjust comment. 1056590075Sobrien (tsubst): Add BOUND_TEMPLATE_TEMPLATE_PARM. Reorganize. 1056690075Sobrien (tsubst_copy): Add BOUND_TEMPLATE_TEMPLATE_PARM. 1056790075Sobrien (unify): Add BOUND_TEMPLATE_TEMPLATE_PARM. Reorganize. Use 1056890075Sobrien template_args_equal to compare template template parameter cases. 1056990075Sobrien * ptree.c (print_lang_type): Add BOUND_TEMPLATE_TEMPLATE_PARM. 1057090075Sobrien * search.c (lookup_field_1): Use BOUND_TEMPLATE_TEMPLATE_PARM 1057190075Sobrien instead. 1057290075Sobrien * tree.c (copy_template_template_parm): Decide whether to create 1057390075Sobrien a TEMPLATE_TEMPLATE_PARM or BOUND_TEMPLATE_TEMPLATE_PARM node. 1057490075Sobrien (walk_tree): Add BOUND_TEMPLATE_TEMPLATE_PARM. 1057590075Sobrien (copy_tree_r): Likewise. 1057690075Sobrien * typeck.c (comptypes): Likewise. Check tree code instead of 1057790075Sobrien using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO. 1057818334Speter 1057990075Sobrien2000-09-04 Mark Elbrecht <snowball3@bigfoot.com> 1058018334Speter 1058190075Sobrien * decl.c (finish_function): Move the code for handling functions 1058290075Sobrien marked with the constructor and destructor attributes inside the 1058390075Sobrien expand_p block. 1058418334Speter 1058590075Sobrien2000-09-04 Nathan Sidwell <nathan@codesourcery.com> 1058618334Speter 1058790075Sobrien * init.c (resolve_offset_ref): Deal with TEMPLATE_ID_EXPR. 1058818334Speter 1058990075Sobrien2000-09-04 Nathan Sidwell <nathan@codesourcery.com> 1059018334Speter 1059190075Sobrien * pt.c (lookup_template_class): Remove abort. 1059290075Sobrien * tree.c (get_type_decl): Allow error_mark_node. 1059318334Speter 1059490075Sobrien2000-09-04 Nathan Sidwell <nathan@codesourcery.com> 1059518334Speter 1059690075Sobrien * decl2.c (arg_assoc): Deal with COMPONENT_REFs inside 1059790075Sobrien TEMPLATE_ID_EXPRs. 1059818334Speter 1059990075Sobrien2000-09-03 Mark Mitchell <mark@codesourcery.com> 1060018334Speter 1060190075Sobrien * operators.def (ALIGNOF_EXPR, MAX_EXPR, MIN_EXPR): Change 1060290075Sobrien new ABI mangling. 1060318334Speter 1060490075Sobrien2000-09-01 Nathan Sidwell <nathan@codesourcery.com> 1060518334Speter 1060690075Sobrien * parse.y (named_class_head): Check for TYPENAME_TYPE. Simplify 1060790075Sobrien union tag mismatch error reporting. 1060818334Speter 1060990075Sobrien2000-09-01 Nathan Sidwell <nathan@codesourcery.com> 1061018334Speter 1061190075Sobrien * call.c (build_scoped_method_call): Check it is not a namespace. 1061218334Speter 1061390075Sobrien2000-08-30 Jason Merrill <jason@redhat.com> 1061418334Speter 1061590075Sobrien * cp-tree.h (LOCAL_CLASS_P): Use decl_function_context. 1061618334Speter 1061790075Sobrien * tree.c (bot_manip): Check TREE_CONSTANT rather than 1061890075Sobrien !TREE_SIDE_EFFECTS. Call break_out_target_exprs and 1061990075Sobrien build_target_expr_with_type for the non-AGGR_INIT_EXPR case. 1062018334Speter 1062190075Sobrien * decl.c (start_function): Always call make_function_rtl. 1062218334Speter 1062390075Sobrien2000-08-29 Zack Weinberg <zack@wolery.cumb.org> 1062418334Speter 1062590075Sobrien * semantics.c (prune_unused_decls): New function. 1062690075Sobrien (finish_stmt_tree): Call it via walk_tree. 1062718334Speter 1062890075Sobrien2000-08-29 Zack Weinberg <zack@wolery.cumb.org> 1062918334Speter 1063090075Sobrien * class.c (build_secondary_vtable): Constify a char *. 1063190075Sobrien * decl.c (init_decl_processing): Initialize function_id_node, 1063290075Sobrien pretty_function_id_node, and func_id_node. 1063390075Sobrien * input.c (struct input_source): Constify 'str'. 1063490075Sobrien (feed_input): Constify first argument. 1063590075Sobrien * mangle.c (write_identifier): Constify argument. 1063690075Sobrien * pt.c (mangle_class_name_for_template): Constify argument. 1063718334Speter 1063890075Sobrien2000-08-29 Mark Mitchell <mark@codesourcery.com> 1063918334Speter 1064090075Sobrien * typeck.c (mark_addressable): Remove code that pokes around in 1064190075Sobrien RTL. 1064218334Speter 1064390075Sobrien2000-08-28 Jason Merrill <jason@redhat.com> 1064418334Speter 1064590075Sobrien * lex.c (file_name_nondirectory): Move to toplev.c. 1064618334Speter 1064790075Sobrien * cp-tree.h (LOCAL_CLASS_P): New macro. 1064890075Sobrien * class.c (finish_struct_1): Use it. 1064918334Speter 1065090075Sobrien2000-08-27 Alex Samuel <samuel@codesourcery.com> 1065118334Speter 1065290075Sobrien * mangle.c (CLASSTYPE_TEMPLATE_ID_P): Remove unexplained voodoo. 1065390075Sobrien (write_encoding): Pass another argument to write_name. 1065490075Sobrien (write_name): Add ignore_local_scope parameter. Fix handling of 1065590075Sobrien local names. 1065690075Sobrien (write_nested_name): Use write_unqualified_name. 1065790075Sobrien (write_prefix): Likewise. Skip out on FUNCTION_DECLs. 1065890075Sobrien (write_template_prefix): Use write_unqualified_name. 1065990075Sobrien (write_component): Remove. 1066090075Sobrien (write_local_name): Add parameter. Use direct local entity to 1066190075Sobrien discriminator calculation. 1066290075Sobrien (write_class_enum_type): Pass another argument to write_name. 1066390075Sobrien (write_template_template_arg): Likewise. 1066490075Sobrien (make_guard_variable): Likewise. 1066518334Speter 1066690075Sobrien2000-08-27 Jason Merrill <jason@redhat.com> 1066718334Speter 1066890075Sobrien * decl.c (pushdecl): Matching decls for local externs are found in 1066990075Sobrien the current level. Propagate linkage information from previous 1067090075Sobrien declarations. 1067118334Speter 1067290075Sobrien2000-08-26 Gabriel Dos Reis <gdr@codesourcery.com> 1067318334Speter 1067490075Sobrien * ir.texi (Expressions): Fix typo. 1067518334Speter 1067690075Sobrien2000-08-25 Greg McGary <greg@mcgary.org> 1067718334Speter 1067890075Sobrien * tree.c (init_tree): Use ARRAY_SIZE. 1067918334Speter 1068090075Sobrien2000-08-25 Gabriel Dos Reis <gdr@codesourcery.com> 1068118334Speter 1068290075Sobrien * error.c (cp_tree_printer): Rework. 1068318334Speter 1068490075Sobrien2000-08-25 Mark Mitchell <mark@codesourcery.com> 1068518334Speter 1068690075Sobrien * Make-lang.in (CXX_LIB2FUNCS): Remove cp-demangle.o and 1068790075Sobrien dyn-string.o. 1068890075Sobrien (CXX_LIB2SRCS): Remove cp-demangle.c and dyn-string.c. 1068990075Sobrien (cp-demangle.o): Remove target. 1069090075Sobrien (dyn-string.o): Likewise. 1069118334Speter 1069290075Sobrien * decl.c (grokfndecl): Require that `main' return an `int'. 1069390075Sobrien * mangle.c (write_encoding): Don't mangle return types for 1069490075Sobrien conversion functions. 1069518334Speter 1069690075Sobrien2000-08-25 Gabriel Dos Reis <gdr@codesourcery.com> 1069718334Speter 1069890075Sobrien * error.c (tree_formatting_info): New data type. 1069990075Sobrien (tree_being_formatted): New macro. 1070090075Sobrien (tree_formatting_flags): Likewise. 1070190075Sobrien (put_whitespace): Likewise. 1070290075Sobrien (print_tree_identifier): Likewise. 1070390075Sobrien (print_identifier): Likewise. 1070490075Sobrien (cp_tree_printer, print_function_argument_list, print_declaration, 1070590075Sobrien print_expression, print_function_declaration, 1070690075Sobrien print_function_parameter, print_type, print_cv_qualifier): New 1070790075Sobrien functions. 1070890075Sobrien (init_error): Initialize lang_printer. 1070918334Speter 1071090075Sobrien2000-08-24 Jason Merrill <jason@redhat.com> 1071118334Speter 1071290075Sobrien * typeck.c (build_ptrmemfunc): Just reinterpret if there's no 1071390075Sobrien adjustment necessary. 1071418334Speter 1071590075Sobrien2000-08-24 Greg McGary <greg@mcgary.org> 1071618334Speter 1071790075Sobrien * cp-tree.h (MAIN_NAME_P): Remove macro. 1071818334Speter 1071990075Sobrien2000-08-24 Gabriel Dos Reis <gdr@codesourcery.com> 1072018334Speter 1072190075Sobrien * error.c (print_instantiation_context): Don't forget to flush the 1072290075Sobrien buffer. 1072318334Speter 1072490075Sobrien2000-08-23 Jason Merrill <jason@redhat.com> 1072518334Speter 1072690075Sobrien * typeck.c (build_ptrmemfunc): Save the input pmf. 1072718334Speter 1072890075Sobrien * method.c (process_modifiers): Use same_type_p. 1072918334Speter 1073090075Sobrien2000-08-23 Mark Mitchell <mark@codesourcery.com> 1073118334Speter 1073290075Sobrien * cp-tree.h (DECL_CLONED_FUNCTION_P): Check DECL_LANG_SPECIFIC. 1073390075Sobrien * mangle.c (write_function_type): Change prototype. 1073490075Sobrien (write_encoding): Don't mangle return types for 1073590075Sobrien constructors or destructors. 1073690075Sobrien (write_type): Adjust call to write_function_type. 1073790075Sobrien * pt.c (instantiate_template): Instantiate alternate entry points 1073890075Sobrien when instantiating the main function. 1073918334Speter 1074090075Sobrien2000-08-23 Gabriel Dos Reis <gdr@codesourcery.com> 1074118334Speter 1074290075Sobrien * error.c (cp_print_error_function): Don't use embedded '\n' in 1074390075Sobrien output_printf. 1074418334Speter 1074590075Sobrien2000-08-23 Gabriel Dos Reis <gdr@codesourcery.com> 1074618334Speter 1074790075Sobrien * decl.c (init_decl_processing): Remove bogus initialization. 1074890075Sobrien * error.c (lang_print_error_function): Restore here. 1074990075Sobrien (init_error): Initialize print_error_function. 1075018334Speter 1075190075Sobrien2000-08-22 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> 1075218334Speter 1075390075Sobrien * decl2.c (arg_assoc): Revert my 2000-08-11 change. 1075418334Speter 1075590075Sobrien2000-08-22 Gabriel Dos Reis <gdr@codesourcery.com> 1075618334Speter 1075790075Sobrien * Makefile.in (error.o): Depends on diagnostic.h 1075818334Speter 1075990075Sobrien * cp-tree.h (problematic_instantiation_changed, 1076090075Sobrien record_last_problematic_instantiation, current_instantiation, 1076190075Sobrien print_instantiation_context): Declare. 1076290075Sobrien (maybe_print_template_context): Remove. 1076318334Speter 1076490075Sobrien * decl.c (init_decl_processing): Set print_error_function to NULL. 1076590075Sobrien (lang_print_error_function): Remove, since we're using a new 1076690075Sobrien machinery. 1076718334Speter 1076890075Sobrien * error.c: #include diagnostic.h 1076990075Sobrien (function_category): New function. 1077090075Sobrien (cp_diagnostic_starter): Likewise. 1077190075Sobrien (cp_diagnostic_finalizer): Likewise. 1077290075Sobrien (cp_print_error_function): Likewise. 1077390075Sobrien (maybe_print_instantiation_context): Likewise. 1077490075Sobrien (print_instantiation_full_context): Likewise. 1077590075Sobrien (print_instantiation_partial_context): Likewise. 1077690075Sobrien (print_instantiation_context): Define. 1077790075Sobrien (init_error): Initialize diagnostic pager and finalizer. 1077818334Speter 1077990075Sobrien * pt.c (problematic_instantiation_changed): Define. 1078090075Sobrien (record_last_problematic_instantiation): Likewise. 1078190075Sobrien (current_instantiation): Likewise. 1078290075Sobrien (maybe_print_template_context): Remove. 1078390075Sobrien (print_template_context): Likewise. 1078490075Sobrien (current_tinst_level): Make static to reflect Brendan Kehoe's 1078590075Sobrien change of 1995-04-13. 1078690075Sobrien (push_tinst_level): Call print_instantiation_context. 1078718334Speter 1078890075Sobrien2000-08-21 Nix <nix@esperi.demon.co.uk> 1078918334Speter 1079090075Sobrien * lang-specs.h: Do not process -o or run the assembler if 1079190075Sobrien -fsyntax-only. 1079218334Speter 1079390075Sobrien2000-08-21 Joseph S. Myers <jsm28@cam.ac.uk> 1079418334Speter 1079590075Sobrien * decl.c (flag_hosted, flag_noniso_default_format_attributes): New 1079690075Sobrien variables. 1079790075Sobrien * decl2.c (lang_decode_option): Disable gettext attributes for 1079890075Sobrien -ansi. 1079918334Speter 1080090075Sobrien2000-08-21 Gabriel Dos Reis <gdr@codesourcery.com> 1080118334Speter 1080290075Sobrien * lex.c (lang_init_options): Default diagnostic message maximum 1080390075Sobrien length to 80, when line-wrapping. 1080418334Speter 1080590075Sobrien2000-08-20 Mark Mitchell <mark@codesourcery.com> 1080618334Speter 1080790075Sobrien * class.c (build_vtbl_initializer): Clear the entire 1080890075Sobrien vtbl_init_data. Start keeping track of the functions for which we 1080990075Sobrien have created vcall offsets here. 1081090075Sobrien (dfs_build_vcall_offset_vtbl_entries): Remove. 1081190075Sobrien (build_vcall_offset_vtbl_entries): Reimplement. 1081290075Sobrien (add_vcall_offset_vtbl_entries_r): New function. 1081390075Sobrien (add_vcall_offset_vtbl_entries_1): Likewise. Tweak logic for 1081490075Sobrien computing when vcall offsets are necessary. 1081518334Speter 1081690075Sobrien2000-08-18 Nathan Sidwell <nathan@codesourcery.com> 1081718334Speter 1081890075Sobrien * decl.c (member_function_or_else): Use cp_error ... %T. 1081952284Sobrien (grokdeclarator): Likewise. 1082052284Sobrien (start_method): Likewise. 1082190075Sobrien * friend.c (make_friend_class): Use cp_pedwarn ... %T. 1082218334Speter 1082390075Sobrien2000-08-18 Nathan Sidwell <nathan@codesourcery.com> 1082418334Speter 1082590075Sobrien * decl2.c (grokfield): Set CLASSTYPE_GOT_SEMICOLON on class 1082690075Sobrien TYPE_DECLs. 1082718334Speter 1082890075Sobrien2000-08-18 Nathan Sidwell <nathan@codesourcery.com> 1082918334Speter 1083090075Sobrien * cp-tree.h (PTRMEM_OK_P): New macro. 1083190075Sobrien (itf_ptrmem_ok): New enumeration value. 1083290075Sobrien * class.c (resolve_address_of_overloaded_function): Add PTRMEM 1083390075Sobrien argument. Diagnose implicit pointer to member. 1083490075Sobrien (instantiate_type): Don't diagnose implicit pointer to member 1083590075Sobrien here. Pass itf_ptrmem_ok if ok. Adjust calls to 1083690075Sobrien resolve_address_of_overloaded_function. 1083790075Sobrien * init.c (build_offset_ref): Set PTRMEM_OK_P. 1083890075Sobrien (resolve_offset_ref): Don't diagnose implicit pointer to member here. 1083990075Sobrien * semantics.c (finish_parenthesized_expr): Clear OFFSET_REFs here. 1084090075Sobrien * typeck.c (build_x_unary_op): Calculate PTRMEM_OK_P. 1084190075Sobrien (build_unary_op): Deal with single non-static member in 1084290075Sobrien microsoft-land. 1084318334Speter 1084490075Sobrien2000-08-18 Nathan Sidwell <nathan@codesourcery.com> 1084518334Speter 1084690075Sobrien * decl2.c (arg_assoc_type): Cope with TYPENAME_TYPE. 1084718334Speter 1084890075Sobrien2000-08-18 Nathan Sidwell <nathan@codesourcery.com> 1084918334Speter 1085090075Sobrien * cp-tree.h (enum_name_string): Remove prototype. 1085190075Sobrien (report_case_error): Remove prototype. 1085290075Sobrien * cp/typeck2.c (enum_name_string): Remove. 1085390075Sobrien (report_case_error): Remove. 1085490075Sobrien * error.c (dump_expr): Deal with enum values directly. 1085590075Sobrien Correctly negate integer constant. 1085618334Speter 1085790075Sobrien2000-08-17 Nathan Sidwell <nathan@codesourcery.com> 1085818334Speter 1085990075Sobrien * inc/cxxabi.h (__cxa_vec_new2, __cxa_vec_new3): Declare. 1086090075Sobrien (__cxa_vec_delete2, __cxa_vec_delete3): Declare. 1086190075Sobrien * vec.cc (__cxa_vec_new2, __cxa_vec_new3): Implement. 1086290075Sobrien (__cxa_vec_delete2, __cxa_vec_delete3): Implement. 1086390075Sobrien (__cxa_vec_new): Use __cxa_vec_new2. 1086490075Sobrien (__cxa_vec_delete): Use __cxa_vec_delete2. 1086518334Speter 1086690075Sobrien2000-08-17 Nathan Sidwell <nathan@codesourcery.com> 1086718334Speter 1086890075Sobrien * vec.cc (__cxa_vec_new): Set "C" linkage. 1086990075Sobrien (__cxa_vec_ctor): Likewise. 1087090075Sobrien (__cxa_vec_cctor): Likewise. 1087190075Sobrien (__cxa_vec_dtor): Likewise. 1087290075Sobrien (__cxa_vec_delete): Likewise. 1087390075Sobrien * inc/cxxabi.h (__cxa_vec_new): Set "C" linkage. 1087490075Sobrien (__cxa_vec_ctor): Likewise. 1087590075Sobrien (__cxa_vec_cctor): Likewise. 1087690075Sobrien (__cxa_vec_dtor): Likewise. 1087790075Sobrien (__cxa_vec_delete): Likewise. 1087818334Speter 1087990075Sobrien2000-08-17 Nathan Sidwell <nathan@codesourcery.com> 1088018334Speter 1088190075Sobrien * class.c (instantiate_type): Reinstate local variable 1088290075Sobrien deleted in previous change. 1088318334Speter 1088490075Sobrien * cvt.c (cp_convert_to_pointer): Pass itf_complain, not 1088590075Sobrien itf_no_attributes. 1088618334Speter 1088790075Sobrien2000-08-17 Nathan Sidwell <nathan@codesourcery.com> 1088818334Speter 1088990075Sobrien * cp-tree.h (instantiate_type_flags): New enumeration. 1089090075Sobrien (instantiate_type): Change parameter. 1089190075Sobrien * class.c (instantiate_type): Adjust prototype. Adjust. 1089290075Sobrien * call.c (standard_conversion): Adjust instantiate_type call. 1089390075Sobrien (reference_binding): Likewise. 1089450397Sobrien (build_op_delete_call): Likewise. 1089590075Sobrien (convert_like_real): Likewise. 1089690075Sobrien * cvt.c (cp_convert_to_pointer): Likewise. 1089790075Sobrien (convert_to_reference): Likewise. 1089890075Sobrien * pt.c (convert_nontype_argument): Likewise. 1089990075Sobrien * typeck.c (build_binary_op): Likewise. 1090090075Sobrien (build_ptrmemfunc): Likewise. 1090190075Sobrien (convert_for_assignment): Likewise. 1090218334Speter 1090390075Sobrien2000-08-17 Nathan Sidwell <nathan@codesourcery.com> 1090418334Speter 1090590075Sobrien * cp-tree.h (CPTR_AGGR_TAG): New global tree node. 1090690075Sobrien (current_aggr): Define. 1090790075Sobrien * decl.c (grokdeclarator): Make sure a friend class is an 1090890075Sobrien elaborated type specifier. 1090990075Sobrien * parse.y (current_aggr): Remove static definition. 1091090075Sobrien (cp_parse_init): Adjust. 1091190075Sobrien (structsp): Clear and restore current_aggr. 1091290075Sobrien (component_decl_list): Clear current_aggr. 1091318334Speter 1091490075Sobrien * error.c (dump_type, case TYPENAME_TYPE): Don't emit the 1091590075Sobrien aggregate tag on the typename's context. 1091618334Speter 1091790075Sobrien * pt.c (tsubst_friend_class): Return error_mark_node, if 1091890075Sobrien parms becomes NULL. 1091990075Sobrien (instantiate_class_template): Ignore error_mark_node friend types. 1092018334Speter 1092190075Sobrien2000-08-14 Nathan Sidwell <nathan@codesourcery.com> 1092218334Speter 1092390075Sobrien * cvt.c (warn_ref_binding): New static function, broken out of ... 1092490075Sobrien (convert_to_reference): ... here. Use it. 1092518334Speter 1092690075Sobrien2000-08-11 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu> 1092718334Speter 1092890075Sobrien * parse.y (template_arg): Add rule for template qualified with 1092990075Sobrien global scope. 1093018334Speter 1093190075Sobrien2000-08-11 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> 1093218334Speter 1093390075Sobrien * decl2.c (add_function): Reorganize. 1093490075Sobrien (arg_assoc): Do not consider function template decls. 1093518334Speter 1093690075Sobrien2000-08-11 Jason Merrill <jason@redhat.com> 1093718334Speter 1093890075Sobrien * decl.c (lookup_name_real): Don't forget the TYPENAME_TYPE we're 1093990075Sobrien looking inside. 1094018334Speter 1094190075Sobrien2000-08-11 Nathan Sidwell <nathan@codesourcery.com> 1094218334Speter 1094390075Sobrien * cp-tree.h (resolve_scope_to_name): Remove unused prototype. 1094490075Sobrien (lookup_nested_tag): Likewise. 1094518334Speter 1094690075Sobrien * decl2.c (grokfield): Fix comment to reflect many types of _DECLs 1094790075Sobrien can be produced. 1094818334Speter 1094990075Sobrien2000-08-11 Nathan Sidwell <nathan@codesourcery.com> 1095018334Speter 1095190075Sobrien * parse.y (named_complex_class_head_sans_basetype): Remove 1095290075Sobrien always true if. 1095318334Speter 1095490075Sobrien2000-08-11 Nathan Sidwell <nathan@codesourcery.com> 1095518334Speter 1095690075Sobrien * decl2.c (build_expr_from_tree, case METHOD_CALL_EXPR): Build 1095790075Sobrien explicit TEMPLATE_ID_EXPR args. 1095890075Sobrien (build_expr_from_tree, case CALL_EXPR): Likewise. 1095918334Speter 1096090075Sobrien2000-08-11 Nathan Sidwell <nathan@codesourcery.com> 1096118334Speter 1096290075Sobrien * decl.c (check_tag_decl): Diagnose typename's which don't 1096390075Sobrien declare anything. 1096418334Speter 1096590075Sobrien2000-08-10 Nathan Sidwell <nathan@codesourcery.com> 1096618334Speter 1096790075Sobrien * init.c (build_aggr_init): Reject bogus array initializers 1096890075Sobrien early. 1096918334Speter 1097090075Sobrien2000-08-09 Nathan Sidwell <nathan@codesourcery.com> 1097118334Speter 1097290075Sobrien * rtti.c (build_dynamic_cast_1): Set "C" linkage for new abi 1097390075Sobrien runtime. 1097490075Sobrien * cp/tinfo.cc (__dynamic_cast): Likewise. 1097590075Sobrien * cp/inc/cxxabi.h (__dynamic_cast): Likewise. 1097618334Speter 1097790075Sobrien2000-08-09 Nathan Sidwell <nathan@codesourcery.com> 1097818334Speter 1097990075Sobrien * cvt.c (convert_to_pointer_force): Fix error message when 1098090075Sobrien attempting to cast from ambiguous base. 1098118334Speter 1098290075Sobrien2000-08-08 Jason Merrill <jason@redhat.com> 1098318334Speter 1098490075Sobrien * pt.c (tsubst_aggr_type): Bail if creating the argvec fails. 1098590075Sobrien (tsubst_template_arg_vector): Likewise. 1098618334Speter 1098790075Sobrien * decl2.c (build_anon_union_vars): Choose the largest field; don't 1098890075Sobrien assume that one will be as large as the union. 1098918334Speter 1099090075Sobrien2000-08-07 Kazu Hirata <kazu@hxi.com> 1099118334Speter 1099290075Sobrien * cp-tree.h (CLASSTYPE_HAS_PRIMARY_BASE_P): Fix a comment typo. 1099390075Sobrien * decl.c (pop_labels): Likewise. 1099418334Speter 1099590075Sobrien2000-08-04 Jeffrey Oldham <oldham@codesourcery.com> 1099618334Speter 1099790075Sobrien * inc/cxxabi.h (__pbase_type_info): Changed member names to match 1099890075Sobrien specifications. 1099990075Sobrien (__pointer_to_member_type_info): Likewise. 1100090075Sobrien (__base_class_info): Likewise. 1100190075Sobrien (__class_type_info): Likewise. 1100290075Sobrien (__si_class_type_info): Likewise. 1100390075Sobrien (__vmi_class_type_info): Likewise. 1100490075Sobrien * tinfo.cc (__si_class_type_info::__do_find_public_src): 1100590075Sobrien Changed member names to match specifications. 1100690075Sobrien (__vmi_class_type_info::__do_find_public_src): Likewise. 1100790075Sobrien (__si_class_type_info::__do_dyncast): Likewise. 1100890075Sobrien (__vmi_class_type_info::__do_dyncast): Likewise. 1100990075Sobrien (__si_class_type_info::__do_upcast): Likewise. 1101090075Sobrien (__vmi_class_type_info::__do_upcast): Likewise. 1101190075Sobrien * tinfo2.cc (__pbase_type_info::__do_catch): Likewise. 1101290075Sobrien (__pbase_type_info::__pointer_catch): Likewise. 1101390075Sobrien (__pointer_type_info::__pointer_catch): Likewise. 1101490075Sobrien (__pointer_to_member_type_info::__pointer_catch): Likewise. 1101518334Speter 1101690075Sobrien2000-08-04 Zack Weinberg <zack@wolery.cumb.org> 1101718334Speter 1101890075Sobrien * Make-lang.in (cc1plus): Depend on $(BACKEND), not stamp-objlist. 1101990075Sobrien * Makefile.in: Add C_OBJS, BACKEND; delete OBJS, OBJDEPS. 1102090075Sobrien (cc1plus): Link with $(BACKEND) and $(C_OBJS). 1102118334Speter 1102290075Sobrien2000-08-04 Mark Mitchell <mark@codesourcery.com> 1102318334Speter 1102490075Sobrien * cp-tree.h (add_method): Change prototype. 1102590075Sobrien * class.c (add_method): Remove FIELDS parameter. Add ERROR_P. 1102690075Sobrien Don't double the size of the method vector in the error case. 1102790075Sobrien (handle_using_decl): Adjust call to add_method. 1102890075Sobrien (add_implicitly_declared_members): Likewise. 1102990075Sobrien (clone_function_decl): Likewise. 1103090075Sobrien * decl2.c (check_classfn): Likewise. 1103190075Sobrien * semantics.c (finish_member_declaration): Likewise. 1103218334Speter 1103390075Sobrien2000-08-04 Joseph S. Myers <jsm28@cam.ac.uk> 1103418334Speter 1103590075Sobrien * decl.c (flag_isoc94): New variable. 1103618334Speter 1103790075Sobrien2000-08-02 Jason Merrill <jason@redhat.com> 1103818334Speter 1103990075Sobrien * pt.c (do_type_instantiation): Add complain parm; don't complain 1104090075Sobrien if called recursively. 1104190075Sobrien * cp-tree.h, parse.y: Adjust. 1104218334Speter 1104390075Sobrien2000-08-02 Zack Weinberg <zack@wolery.cumb.org> 1104418334Speter 1104590075Sobrien * decl2.c: Silently ignore -Wstrict-prototypes; warn about 1104690075Sobrien -Wno-strict-prototypes. 1104718334Speter 1104890075Sobrien * g++spec.c: Adjust type of second argument to 1104990075Sobrien lang_specific_driver, and update code as necessary. 1105018334Speter 1105190075Sobrien * cp-tree.h: Don't prototype min_precision here. 1105290075Sobrien (my_friendly_assert): Cast expression to void. 1105390075Sobrien * semantics.c (do_poplevel): Initialize scope_stmts. 1105418334Speter 1105590075Sobrien2000-08-02 Mark Mitchell <mark@codesourcery.com> 1105618334Speter 1105790075Sobrien * cp-tree.h (DECL_NEEDED_P): Tweak. 1105818334Speter 1105990075Sobrien2000-07-28 Jason Merrill <jason@redhat.com> 1106052284Sobrien 1106190075Sobrien * lang-specs.h: Use %i in rule for .ii files. 1106218334Speter 1106390075Sobrien2000-07-31 Zack Weinberg <zack@wolery.cumb.org> 1106418334Speter 1106590075Sobrien * lang-specs.h: Rename cpp to cpp0 and/or tradcpp to tradcpp0. 1106618334Speter 1106790075Sobrien2000-07-30 Mark Mitchell <mark@codesourcery.com> 1106818334Speter 1106990075Sobrien Allow indirect primary bases. 1107090075Sobrien * cp-tree.h (struct lang_type): Remove vfield_parent. Add 1107190075Sobrien primary_base. 1107290075Sobrien (CLASSTYPE_VFIELD_PARENT): Remove. 1107390075Sobrien (CLASSTYPE_PRIMARY_BINFO): Reimplement. 1107490075Sobrien (BINFO_PRIMARY_BINFO): Remove. 1107590075Sobrien (CLASSTYPE_HAS_PRIMARY_BASE_P): Reimplement. 1107690075Sobrien (BINFO_VBASE_PRIMARY_P): Likewise. 1107790075Sobrien (BINFO_PRIMARY_BASE_OF): New macro. 1107890075Sobrien (BINFO_INDIRECT_PRIMARY_P): Likewise. 1107990075Sobrien (get_primary_binfo): New function. 1108090075Sobrien * decl.c (lang_mark_tree): Make lang_type::primary_base. 1108190075Sobrien * class.c (vcall_offset_data_s): Rename to ... 1108290075Sobrien (vtbl_init_data_s): ... this. Rename primary_p to primary_vtbl_p, 1108390075Sobrien and add ctor_vtbl_p. 1108490075Sobrien (get_derived_offset): Use get_primary_binfo. 1108590075Sobrien (dfs_mark_primary_bases): Adjust handling of virtual primary 1108690075Sobrien bases. 1108790075Sobrien (mark_primary_bases): Likewise. 1108890075Sobrien (set_primary_base): Take a binfo, not an integer, as a 1108990075Sobrien representation of the primary base. 1109090075Sobrien (indirect_primary_base_p): Remove. 1109190075Sobrien (determine_primary_base): Adjust for indirect primary bases. 1109290075Sobrien (dfs_find_final_overrider): Fix typo in coment. 1109390075Sobrien (update_vtable_entry_for_fn): Use get_primary_binfo. 1109490075Sobrien (layout_nonempty_base_or_field): Tweak. 1109590075Sobrien (build_base_fields): Adjust for new primary base semantics. 1109690075Sobrien (dfs_propagate_binfo_offsets): Remove. 1109790075Sobrien (propagate_binfo_offsets): Rewrite. 1109890075Sobrien (dfs_set_offset_for_shared_vbases): Remove. 1109990075Sobrien (layout_virtual_bases): Don't use it. 1110090075Sobrien (layout_class_type): Set CLASSTYPE_SIZE correctly under the new 1110190075Sobrien ABI. 1110290075Sobrien (finish_struct_1): Set CLASSTYPE_PRIMARY_BINFO, not 1110390075Sobrien CLASSTYPE_VFIELD_PARENT. 1110490075Sobrien (dfs_get_primary_binfo): New function. 1110590075Sobrien (get_primary_binfo): Likewise. 1110690075Sobrien (dump_class_hierarchy_r): Tweak printing of primary bases. 1110790075Sobrien (build_vtbl_initializer): Fix typo in comments. Use 1110890075Sobrien vtbl_init_data. 1110990075Sobrien (build_vcall_and_vbase_vtbl_entries): Likewise. 1111090075Sobrien (build_vbaes_offset_vtbl_entries): Likewise. 1111190075Sobrien (dfs_build_vcall_offset_vtbl_entries): Adjust setting of 1111290075Sobrien BV_VCALL_INDEX to handle indirect primary bases. 1111390075Sobrien (build_vcall_offset_vtbl_entries): Use vtbl_init_data. 1111490075Sobrien (build_rtti_vtbl_entries): Likewise. 1111590075Sobrien * search.c (get_shared_vbase_if_not_primary): Tweak. 1111690075Sobrien (find_vbase_instance): Likewise. 1111790075Sobrien (binfo_for_vtable): Simplify. 1111890075Sobrien * tree.c (unshare_base_binfos): Clear BINFO_PRIMARY_BASE_OF. 1111990075Sobrien (make_binfo): Make it have 11 entries. 1112018334Speter 1112190075Sobrien2000-07-30 Alex Samuel <samuel@codesourcery.com> 1112218334Speter 1112390075Sobrien * mangle.c (DECL_TEMPLATE_ID_P): Remove. 1112490075Sobrien (CLASSTYEP_TEMPLATE_ID_P): Check template info, and context when 1112590075Sobrien ascertaining primaryness. 1112690075Sobrien (G): Remove template_args. 1112790075Sobrien (decl_is_template_id): New function. 1112890075Sobrien (write_encoding): Use decl_is_template_id. 1112990075Sobrien (write_name): Likewise. Handle type_decls. Get main variant of 1113090075Sobrien type decls. 1113190075Sobrien (write_nested_name): Likewise. 1113290075Sobrien (write_prefix): Likewise. 1113390075Sobrien (write_template_prefix): Likewise. 1113490075Sobrien (write_special_name_constructor): Remove defunct production from 1113590075Sobrien comment. 1113690075Sobrien (write_bare_function_type): Remove comment about absent parameter. 1113790075Sobrien (write_template_template_arg): Add missing grammar production to 1113890075Sobrien comment. 1113918334Speter 1114090075Sobrien2000-07-27 Jason Merrill <jason@redhat.com> 1114118334Speter 1114290075Sobrien * decl.c (duplicate_decls): If common_type produces a non-typedef 1114390075Sobrien type for a typedef, just use the old type. 1114418334Speter 1114590075Sobrien2000-07-27 Mark Mitchell <mark@codesourcery.com> 1114618334Speter 1114790075Sobrien * cp-tree.h (function_depth): Declare. 1114890075Sobrien (verify_stmt_tree): Likewise. 1114990075Sobrien (find_tree): Likewise. 1115090075Sobrien * decl.c (function_depth): Give it external linkage. 1115190075Sobrien * optimize.c (optimize_function): Increment and decrement it. 1115290075Sobrien * tree.c (verify_stmt_tree_r): New function. 1115390075Sobrien (verify_stmt_tree): Likewise. 1115490075Sobrien (find_tree_r): Likewise. 1115590075Sobrien (find_tree): Likewise. 1115618334Speter 1115790075Sobrien2000-07-27 Jason Merrill <jason@redhat.com> 1115818334Speter 1115990075Sobrien * pt.c (for_each_template_parm_r, case RECORD_TYPE): Use 1116090075Sobrien TYPE_PTRMEMFUNC_P. 1116190075Sobrien * cp-tree.h (TYPE_TEMPLATE_INFO): Check for TYPE_LANG_SPECIFIC. 1116250397Sobrien 1116390075Sobrien2000-07-26 Mark Mitchell <mark@codesourcery.com> 1116450397Sobrien 1116590075Sobrien * decl.c (start_cleanup_fn): Mark the function as `inline'. 1116690075Sobrien * decl2.c (get_guard): Call cp_finish_decl, not 1116790075Sobrien rest_of_decl_compilation, for local guards. 1116890075Sobrien * lex.c (do_identifier): Remove unused variable. 1116950397Sobrien 1117090075SobrienWed Jul 26 15:05:51 CEST 2000 Marc Espie <espie@cvs.openbsd.org> 1117150397Sobrien 1117290075Sobrien * parse.y: Add missing ';'. 1117350397Sobrien 1117490075Sobrien2000-07-26 Mark Mitchell <mark@codesourcery.com> 1117550397Sobrien 1117690075Sobrien * parse.y (empty_parms): Use `()', not `(...)', when in the scope 1117790075Sobrien of `extern "C++"'. 1117852284Sobrien 1117990075Sobrien2000-07-25 Nathan Sidwell <nathan@codesourcery.com> 1118018334Speter 1118190075Sobrien Kill strict_prototype. Backwards compatibility only for 1118290075Sobrien non NO_IMPLICIT_EXTERN_C systems. 1118390075Sobrien * cp-tree.h (flag_strict_prototype): Remove. 1118490075Sobrien (strict_prototype): Remove. 1118590075Sobrien (strict_prototypes_lang_c, strict_prototypes_lang_cplusplus): Remove. 1118690075Sobrien * decl.c (maybe_push_to_top_level): Adjust. 1118790075Sobrien (pop_from_top_level): Adjust. 1118890075Sobrien (decls_match): Only allow sloppy parm matching for ancient 1118990075Sobrien system headers. 1119090075Sobrien (init_decl_processing): Adjust. 1119190075Sobrien (grokdeclarator): Adjust. 1119290075Sobrien * decl2.c (flag_strict_prototype): Remove. 1119390075Sobrien (strict_prototype): Remove. 1119490075Sobrien (strict_prototypes_lang_c, strict_prototypes_lang_cplusplus): Remove. 1119590075Sobrien (lang_f_options): Remove "strict-prototype". 1119690075Sobrien (unsupported-options): Add "strict-prototype". 1119790075Sobrien * lex.c (do_identifier): Adjust. 1119890075Sobrien (do_scoped_id): Adjust. 1119990075Sobrien * parse.y (empty_parms): Adjust. 1120090075Sobrien * class.c (push_lang_context): Adjust. 1120190075Sobrien (pop_lang_context): Adjust. 1120290075Sobrien * typeck.c (comp_target_parms): Adjust. 1120318334Speter 1120490075Sobrien2000-07-25 Nathan Sidwell <nathan@codesourcery.com> 1120518334Speter 1120690075Sobrien * decl.c (poplevel): Deal with anonymous variables at for scope. 1120790075Sobrien (maybe_inject_for_scope_var): Likewise. 1120818334Speter 1120990075Sobrien2000-07-25 Zack Weinberg <zack@wolery.cumb.org> 1121018334Speter 1121190075Sobrien * decl.c: Remove all signal handling code, now done in toplev.c. 1121218334Speter 1121390075Sobrien2000-07-23 Mark Mitchell <mark@codesourcery.com> 1121418334Speter 1121590075Sobrien * decl.c (make_rtl_for_nonlocal_decl): Rework. 1121618334Speter 1121790075Sobrien * pt.c (lookup_template_class): Ensure that TYPE_CONTEXT is set 1121890075Sobrien correctly. 1121952284Sobrien 1122090075Sobrien2000-07-20 Zack Weinberg <zack@wolery.cumb.org> 1122118334Speter 1122290075Sobrien * cp-tree.h: Use __FUNCTION__ not __PRETTY_FUNCTION__. 1122390075Sobrien Define my_friendly_assert and my_friendly_abort as macros 1122490075Sobrien which may call friendly_abort. Prototype friendly abort, not 1122590075Sobrien my_friendly_abort or my_friendly_assert. 1122690075Sobrien * decl.c (signal_catch): Report the signal caught in the error 1122790075Sobrien message. Call fatal directly. 1122890075Sobrien * typeck2.c (ack, my_friendly_assert): Delete. 1122990075Sobrien (my_friendly_abort): Rename to friendly_abort. Expect file, 1123090075Sobrien line, and function parameters. Report the abort code, then 1123190075Sobrien call fancy_abort. Do not mask an abort if errors have 1123290075Sobrien already occurred. 1123318334Speter 1123490075Sobrien2000-07-18 Nathan Sidwell <nathan@codesourcery.com> 1123518334Speter 1123690075Sobrien * typeck.c (comp_target_parms): Remove obsolete parameter. 1123790075Sobrien (comp_target_types): Adjust. 1123818334Speter 1123990075Sobrien2000-07-17 Jason Merrill <jason@redhat.com> 1124018334Speter 1124190075Sobrien * typeck.c (mark_addressable): Never set TREE_USED. 1124290075Sobrien * call.c (build_call): Don't abort on calls to library functions 1124390075Sobrien that have been declared normally. 1124418334Speter 1124590075Sobrien * typeck.c (build_binary_op): Fix grammar in warning. 1124618334Speter 1124790075Sobrien * exception.cc (__eh_free): Fix prototype. 1124818334Speter 1124990075Sobrien * decl2.c (finish_decl_parsing): Handle TEMPLATE_ID_EXPR. 1125018334Speter 1125190075Sobrien * decl.c (pushdecl): Handle seeing an OVERLOAD in 1125290075Sobrien IDENTIFIER_NAMESPACE_VALUE. 1125318334Speter 1125490075Sobrien2000-07-16 Mark Mitchell <mark@codesourcery.com> 1125518334Speter 1125690075Sobrien * cp-tree.h (THUNK_VCALL_OFFSET): Update documentation. 1125790075Sobrien * method.c (use_thunk): Correct handling of vcall offsets. 1125818334Speter 1125990075Sobrien2000-07-14 Zack Weinberg <zack@wolery.cumb.org> 1126018334Speter 1126190075Sobrien * .cvsignore: parse.h and parse.c have no cp- prefix. 1126218334Speter 1126390075Sobrien2000-07-13 Mark Mitchell <mark@codesourcery.com> 1126418334Speter 1126590075Sobrien * .cvsignore: New file. 1126618334Speter 1126790075Sobrien2000-07-13 Zack Weinberg <zack@wolery.cumb.org> 1126818334Speter 1126990075Sobrien * lang-specs.h: Use the new named specs. Remove unnecessary braces. 1127018334Speter 1127190075Sobrien2000-07-12 Mark Mitchell <mark@codesourcery.com> 1127218334Speter 1127390075Sobrien * Makefile.in ($(PARSE_H)): Depend directly on parse.y. 1127490075Sobrien * parse.c: Remove. 1127590075Sobrien * parse.h: Likewise. 1127618334Speter 1127790075Sobrien2000-07-11 Mark Mitchell <mark@codesourcery.com> 1127818334Speter 1127990075Sobrien * class.c (layout_class_type): Add pointers to virtual bases after 1128090075Sobrien base classes under the old ABI. 1128118334Speter 1128290075Sobrien2000-07-10 Benjamin Chelf <chelf@codesourcery.com> 1128318334Speter 1128490075Sobrien * semantics.c (finish_for_stmt): Remove call to emit_line_note. 1128590075Sobrien (finish_continue_stmt): Likewise. 1128690075Sobrien (begin_for_stmt): Remove call to note_level_for_for. 1128790075Sobrien (finish_goto_stmt): Change call from build_min_nt 1128890075Sobrien to build_stmt. 1128990075Sobrien (finish_expr_stmt): Likewise. 1129090075Sobrien (begin_if_stmt): Likewise. 1129190075Sobrien (begin_while_stmt): Likewise. 1129290075Sobrien (finish_while_stmt): Likewise. 1129390075Sobrien (finish_return_stmt): Likewise. 1129490075Sobrien (begin_for_stmt): Likewise. 1129590075Sobrien (finish_for_stmt): Likewise. 1129690075Sobrien (finish_break_stmt): Likewise. 1129790075Sobrien (begin_switch_stmt): Likewise. 1129890075Sobrien (finish_case_label): Likewise. 1129990075Sobrien (genrtl_try_block): Likewise. 1130090075Sobrien (begin_try_block): Likewise. 1130190075Sobrien (begin_handler): Likewise. 1130290075Sobrien (begin_compound_stmt): Likewise. 1130390075Sobrien (finish_asm_stmt): Likewise. 1130490075Sobrien (finish_label_stmt): Likewise. 1130590075Sobrien (add_decl_stmt): Likewise. 1130690075Sobrien (finish_subobject): Likewise. 1130790075Sobrien (finish_decl_cleanup): Likewise. 1130890075Sobrien (finish_named_return_value): Likewise. 1130990075Sobrien (setup_vtbl_ptr): Likewise. 1131090075Sobrien (add_scope_stmt): Likewise. 1131190075Sobrien * decl.c (finish_constructor_body): Likewise. 1131290075Sobrien (finish_destructor_body): Likewise. 1131390075Sobrien * optimize.c (copy_body_r): Likewise. 1131490075Sobrien (initialize_inlined_parameters): Likewise. 1131590075Sobrien (declare_return_variable): Likewise. 1131690075Sobrien (expand_call_inline): Likewise. 1131718334Speter 1131890075Sobrien2000-07-10 Jakub Jelinek <jakub@redhat.com> 1131918334Speter 1132090075Sobrien * semantics.c (expand_body): Sync interface information 1132190075Sobrien at the end of function body expansion. 1132218334Speter 1132390075Sobrien2000-07-09 Jason Merrill <jason@redhat.com> 1132452284Sobrien 1132590075Sobrien * init.c (build_new_1): Bail early if the call to new fails. 1132618334Speter 1132790075Sobrien * decl.c (compute_array_index_type): Check specifically for 1132890075Sobrien an INTEGER_CST, not just TREE_CONSTANT. 1132918334Speter 1133090075Sobrien * decl.c (duplicate_decls): Don't call duplicate_decls on 1133190075Sobrien the DECL_TEMPLATE_RESULT. 1133290075Sobrien (decls_match): Return 0 if the DECL_TEMPLATE_RESULTs have different 1133390075Sobrien codes. 1133418334Speter 1133590075Sobrien * error.c (dump_template_bindings): Don't crash if we had an 1133690075Sobrien invalid argument list. 1133718334Speter 1133890075Sobrien * typeck.c (c_expand_start_case): Do narrowing here. 1133990075Sobrien * semantics.c (finish_switch_cond): Not here. 1134018334Speter 1134190075Sobrien2000-07-09 Hidvegi Zoli <hzoli@austin.ibm.com> 1134218334Speter 1134390075Sobrien * parse.y (asm_clobbers): Do string concatenation. 1134418334Speter 1134590075Sobrien2000-07-09 Mark Mitchell <mark@codesourcery.com> 1134618334Speter 1134790075Sobrien * decl.c (pushtag): Don't put local classes in template functions 1134890075Sobrien on the local_classes list. 1134918334Speter 1135090075Sobrien2000-07-04 Scott Snyder <snyder@fnal.gov> 1135118334Speter 1135290075Sobrien * decl2.c (get_guard): Add missing return for old ABI local 1135390075Sobrien variable case. 1135418334Speter 1135590075Sobrien2000-07-09 Mark Mitchell <mark@codesourcery.com> 1135618334Speter 1135790075Sobrien * cp-tree.h (char_type_p): New function. 1135890075Sobrien * decl.c (init_decl_processing): Don't initialize 1135990075Sobrien signed_wchar_type_node or unsigned_wchar_type_node. 1136090075Sobrien (complete_array_type): Handle brace-enclosed string-constants. 1136190075Sobrien * rtti.c (emit_support_tinfos): Remove #if 0'd code. 1136290075Sobrien * tree.c (char_type_p): New function. 1136390075Sobrien * typeck2.c (digest_init): Use char_type_p. 1136418334Speter 1136590075Sobrien2000-07-06 Nathan Sidwell <nathan@codesourcery.com> 1136618334Speter 1136790075Sobrien * pt.c (tsubst): Don't layout type, if it's error_mark. 1136818334Speter 1136990075Sobrien2000-07-06 Nathan Sidwell <nathan@codesourcery.com> 1137018334Speter 1137190075Sobrien * pt.c (instantiate_pending_templates): Reset template level. 1137218334Speter 1137390075Sobrien2000-07-05 Jason Merrill <jason@redhat.com> 1137418334Speter 1137590075Sobrien * call.c (joust): Don't complain about `operator char *()' beating 1137690075Sobrien `operator const char *() const'. 1137718334Speter 1137890075Sobrien2000-07-04 scott snyder <snyder@fnal.gov> 1137990075Sobrien Jason Merrill <jason@redhat.com> 1138018334Speter 1138190075Sobrien * repo.c (repo_get_id): Handle the case where a class with virtual 1138290075Sobrien bases has a null TYPE_BINFO_VTABLE. 1138318334Speter 1138490075Sobrien2000-07-04 Kevin Buhr <buhr@stat.wisc.edu> 1138590075Sobrien Jason Merrill <jason@redhat.com> 1138618334Speter 1138790075Sobrien * parse.y (member_init): Just pass in the type. 1138890075Sobrien * init.c (expand_member_init): Handle getting a type. 1138918334Speter 1139090075Sobrien2000-07-04 Martin v. L�wis <loewis@informatik.hu-berlin.de> 1139190075Sobrien Jason Merrill <jason@redhat.com> 1139218334Speter 1139390075Sobrien * decl.c (finish_function): Warn if a function has no return 1139490075Sobrien statement. 1139590075Sobrien Suggested by Andrew Koenig. 1139690075Sobrien * typeck.c (check_return_expr): Do set current_function_returns_value 1139790075Sobrien if we got an error_mark_node. 1139818334Speter 1139990075Sobrien2000-07-03 Nathan Sidwell <nathan@codesourcery.com> 1140018334Speter 1140190075Sobrien * decl2.c (push_decl_namespace): Push the original namespace. 1140218334Speter 1140390075Sobrien2000-07-03 Nathan Sidwell <nathan@codesourcery.com> 1140418334Speter 1140590075Sobrien * pt.c (instantiate_class_template): Set CLASSTYPE_VBASECLASSES. 1140690075Sobrien * semantics.c (begin_class_definition): Clear it. 1140718334Speter 1140890075Sobrien2000-07-02 Benjamin Chelf <chelf@codesourcery.com> 1140918334Speter 1141090075Sobrien * cp-tree.h (genrtl_goto_stmt): Remove declaration. 1141190075Sobrien (genrtl_expr_stmt): Likewise. 1141290075Sobrien (genrtl_decl_stmt): Likewise. 1141390075Sobrien (genrtl_if_stmt): Likewise. 1141490075Sobrien (genrtl_while_stmt): Likewise. 1141590075Sobrien (genrtl_do_stmt): Likewise. 1141690075Sobrien (genrtl_return_stmt): Likewise. 1141790075Sobrien (genrtl_for_stmt): Likewise. 1141890075Sobrien (genrtl_break_stmt): Likewise. 1141990075Sobrien (genrtl_continue_stmt): Likewise. 1142090075Sobrien (genrtl_scope_stmt): Likewise. 1142190075Sobrien (genrtl_switch_stmt): Likewise. 1142290075Sobrien (genrtl_case_label): Likewise. 1142390075Sobrien (genrtl_begin_compound_stmt): Likewise. 1142490075Sobrien (genrtl_finish_compound_stmt): Likewise. 1142590075Sobrien (genrtl_compound_stmt): Likewise. 1142690075Sobrien (genrtl_asm_stmt): Likewise. 1142718334Speter 1142890075Sobrien * init.c (begin_init_stmts): Remove call to 1142990075Sobrien genrtl_begin_compound_stmt. 1143090075Sobrien (finish_init_stmts): Remove call to genrtl_finish_compound_stmt. 1143118334Speter 1143290075Sobrien * semantics.c (lang_expand_stmt): Changed call to 1143390075Sobrien genrtl_compound_stmt to ignore return value. 1143418334Speter 1143590075Sobrien2000-07-02 Mark Mitchell <mark@codesourcery.com> 1143618334Speter 1143790075Sobrien * mangle.c (canonicalize_for_substitution): Return the canonical 1143890075Sobrien variant of a type. 1143918334Speter 1144090075Sobrien * decl.c (duplicate_decls): Preserve DECL_ORIGINAL_TYPE for a 1144190075Sobrien TYPE_DECL. 1144290075Sobrien * typeck.c (commonparms): Remove obstack manipulations. 1144318334Speter 1144490075Sobrien2000-07-01 Benjamin Chelf <chelf@codesourcery.com> 1144518334Speter 1144690075Sobrien * Make-lang.in (cc1plus$(exeext)): Added c-semantics.o. 1144718334Speter 1144890075Sobrien * Makefile.in (OBJS): Added ../c-semantics.o. 1144990075Sobrien (OBJDEPS): Likewise. 1145018334Speter 1145190075Sobrien * cp-tree.h (TREE_LANG_FLAG_?): Moved common documentation to 1145290075Sobrien ../c-common.h. 1145390075Sobrien (struct stmt_tree): Added comment. 1145490075Sobrien (current_function_name_declared): Removed. 1145590075Sobrien (stmts_are_full_exprs_p): Likewise. 1145690075Sobrien (genrtl_do_pushlevel): Likewise. 1145790075Sobrien (genrtl_clear_out_block): Likewise. 1145890075Sobrien (COMPOUND_STMT_NO_SCOPE): Moved to ../c-common.h. 1145990075Sobrien (DECL_ANON_UNION_ELEMS): Likewise. 1146090075Sobrien (emit_local_var): Likewise. 1146190075Sobrien (make_rtl_for_local_static): Likewise. 1146290075Sobrien (do_case): Likewise. 1146390075Sobrien (expand_stmt): Likewise. 1146490075Sobrien (genrtl_decl_cleanup): Likewise. 1146590075Sobrien (c_expand_asm_operands): Likewise. 1146690075Sobrien (c_expand_return): Likewise. 1146790075Sobrien (c_expand_start_case): Likewise. 1146818334Speter 1146990075Sobrien * decl.c (make_rtl_for_local_static): Moved to c-semantics.c. 1147090075Sobrien (emit_local_var): Likewise. 1147190075Sobrien (initialize_local_var): Change reference to 1147290075Sobrien stmts_are_full_exprs_p to call to stmts_are_full_exprs_p(). 1147390075Sobrien Change reference to stmts_are_full_exprs_p to 1147490075Sobrien current_stmt_tree->stmts_are_full_exprs_p. 1147590075Sobrien (push_cp_function_context): Likewise. 1147618334Speter 1147790075Sobrien * expect.c (expand_throw): Change reference to 1147890075Sobrien stmts_are_full_exprs_p. 1147918334Speter 1148090075Sobrien * init.c (build_aggr_init): Change reference to 1148190075Sobrien stmts_are_full_exprs_p. 1148290075Sobrien (build_vec_init): Likewise. 1148318334Speter 1148490075Sobrien * optimize.c (maybe_clone_body): Change reference to 1148590075Sobrien current_function_name_declared to 1148690075Sobrien cp_function_chain->name_declared. 1148718334Speter 1148890075Sobrien * pt.c (instantiate_decl): Change reference to 1148990075Sobrien current_function_name_declared to 1149090075Sobrien cp_function_chain->name_declared. 1149118334Speter 1149290075Sobrien * semantics.c (expand_cond): Moved declaration to c-common.h. 1149390075Sobrien (genrtl_do_pushlevel): Moved to c-semantics.c. 1149490075Sobrien (genrtl_clear_out_block): Likewise. 1149590075Sobrien (genrtl_goto_stmt): Likewise. 1149690075Sobrien (genrtl_expr_stmt): Likewise. 1149790075Sobrien (genrtl_decl_stmt): Likewise. 1149890075Sobrien (gerntl_if_stmt): Likewise. 1149990075Sobrien (genrtl_while_stmt): Likewise. 1150090075Sobrien (genrtl_do_stmt): Likewise. 1150190075Sobrien (genrtl_return_stmt): Likewise. 1150290075Sobrien (genrtl_for_stmt): Likewise. 1150390075Sobrien (genrtl_break_stmt): Likewise. 1150490075Sobrien (genrtl_continue_stmt): Likewise. 1150590075Sobrien (genrtl_scope_stmt): Likewise. 1150690075Sobrien (genrtl_switch_stmt): Likewise. 1150790075Sobrien (genrtl_case_label): Likewise. 1150890075Sobrien (genrtl_begin_compound_stmt): Likewise. 1150990075Sobrien (genrtl_finish_compound_stmt): Likewise. 1151090075Sobrien (genrtl_compound_stmt): Likewise. 1151190075Sobrien (genrtl_asm_stmt): Likewise. 1151290075Sobrien (genrtl_decl_cleanup): Likewise. 1151390075Sobrien (expand_cond): Likewise. 1151490075Sobrien (expand_stmt): Renamed to ... 1151590075Sobrien (lang_expand_stmt): ... this. 1151690075Sobrien (lang_expand_expr_stmt): Initialize. 1151790075Sobrien (set_current_function_name_declared): Likewise. 1151890075Sobrien (stmts_are_full_exprs_p): Likewise. 1151990075Sobrien (current_function_name_declared): Likewise. 1152090075Sobrien (anon_aggr_type_p): Likewise. 1152190075Sobrien (do_poplevel): Change reference to 1152290075Sobrien stmts_are_full_exprs_p to call to stmts_are_full_exprs_p(). 1152390075Sobrien Change reference to stmts_are_full_exprs_p to 1152490075Sobrien current_stmt_tree->stmts_are_full_exprs_p. 1152590075Sobrien (add_tree): Likewise. 1152690075Sobrien (finish_expr_stmt): Likewise. 1152790075Sobrien (prep_stmt): Likewise. 1152890075Sobrien (lang_expand_stmt): Likewise. 1152990075Sobrien (begin_compound_stmt): Change reference to 1153090075Sobrien current_function_name_declared to 1153190075Sobrien cp_function_chain->name_declared and call to 1153290075Sobrien current_function_name_declared(). 1153390075Sobrien (setup_vtbl_ptr): Likewise. 1153490075Sobrien (genrtl_do_poplevel): Removed. 1153518334Speter 1153690075Sobrien2000-06-30 Jason Merrill <jason@redhat.com> 1153718334Speter 1153890075Sobrien * init.c (init_init_processing): Go back to aligning like 1153990075Sobrien double_type_node for old ABI. 1154090075Sobrien (get_cookie_size): Make cookie larger if we get a type that needs 1154190075Sobrien more alignment. 1154290075Sobrien (build_vec_delete): Call it. 1154318334Speter 1154490075Sobrien * typeck.c (qualify_type_recursive): New fn. 1154590075Sobrien (composite_pointer_type): Use it. 1154690075Sobrien (build_binary_op): Use composite_pointer_type. 1154752284Sobrien 1154890075Sobrien2000-06-24 Carlos O'Ryan <coryan@cs.wustl.edu> 1154990075Sobrien Jason Merrill <jason@redhat.com> 1155052284Sobrien 1155190075Sobrien * typeck.c (check_return_expr): Don't complain about returning 1155290075Sobrien NULL from operator new if -fcheck-new. 1155390075Sobrien * cp-tree.h: Declare flag_check_new here. 1155490075Sobrien * init.c: Not here. 1155518334Speter 1155690075Sobrien2000-06-28 Alex Samuel <samuel@codesourcery.com> 1155718334Speter 1155890075Sobrien * mangle.c (find_substitution): Use same_type_p. 1155990075Sobrien (write_encoding): Don't check for substitutions. 1156018334Speter 1156190075Sobrien2000-06-30 Nathan Sidwell <nathan@codesourcery.com> 1156218334Speter 1156390075Sobrien * parse.y (expr_no_comma_rangle): New non-terminal. 1156490075Sobrien (template_parm): Use it for default parameter case. 1156590075Sobrien (template_arg): Use it. 1156690075Sobrien (expr_no_commas): Remove commented out undefined extensions. 1156790075Sobrien * Makefile.in (CONFLICTS): Adjust to 33 s/r & 48 r/r. 1156890075Sobrien * parse.h, parse.c: Rebuilt. 1156918334Speter 1157090075Sobrien2000-06-30 Mark Mitchell <mark@codesourcery.com> 1157118334Speter 1157290075Sobrien * semantics.c (genrtl_asm_stmt): Don't decay input operands here. 1157390075Sobrien (finish_asm_stmt): Do it here, instead. 1157418334Speter 1157590075Sobrien * cp-tree.h (ridpointers): Don't declare. 1157690075Sobrien * decl.c (record_builtin_type): Use CP_RID_MAX instead of RID_MAX. 1157790075Sobrien (record_builtin_java_type): Likewise. 1157890075Sobrien (init_decl_processing): Likewise. 1157990075Sobrien * lex.c: Move inclusion of lex.h. 1158090075Sobrien (ridpointers): Don't define. 1158190075Sobrien (init_parse): Initialize ripdointers. Use CP_RID_MAX instead of 1158290075Sobrien RID_MAX. 1158390075Sobrien * lex.h (enum rid): Rename to ... 1158490075Sobrien (enum cp_rid): ... this. 1158590075Sobrien (ridpointers): Don't declare. 1158690075Sobrien * parse.y: Move inclusion of lex.h. 1158750397Sobrien * parse.c: Regenerated. 1158890075Sobrien * spew.c: Move inclusion of lex.h. 1158952284Sobrien 1159090075Sobrien * cp-tree.h (struct language_function): Remove temp_name_counter. 1159190075Sobrien (temp_name_counter): Remove. 1159290075Sobrien (get_temp_name): Change prototype. 1159390075Sobrien (get_guard): New function. 1159490075Sobrien (get_guard_cond): Likewise. 1159590075Sobrien (set_guard): Likewise. 1159690075Sobrien * cvt.c (build_up_reference): Adjust call to get_temp_name. 1159790075Sobrien * decl.c (expand_static_init): Use get_guard and friends to 1159890075Sobrien implement guard variables. 1159990075Sobrien * decl2.c (get_temp_name): Assume that the variables created are 1160090075Sobrien always static. 1160190075Sobrien (get_sentry): Rename to ... 1160290075Sobrien (get_guard): ... this. Implement new ABI guard variables. 1160390075Sobrien (get_guard_bits): New function. 1160490075Sobrien (get_guard_cond): Likewise. 1160590075Sobrien (set_guard): Likewise. 1160690075Sobrien (start_static_initialization_or_destruction): Use them. 1160790075Sobrien (do_static_initialization): Replace sentry with guard throughout. 1160890075Sobrien (do_static_destruction): Likewise. 1160990075Sobrien * init.c (create_temporary_var): Add comment. 1161018334Speter 1161190075Sobrien2000-06-28 Alex Samuel <samuel@codesourcery.com> 1161218334Speter 1161390075Sobrien * mangle.c (find_substitution): Use same_type_p. 1161490075Sobrien (write_encoding): Don't check for substitutions. 1161518334Speter 1161690075Sobrien2000-06-30 Nathan Sidwell <nathan@codesourcery.com> 1161718334Speter 1161890075Sobrien * parse.y (expr_no_comma_rangle): New non-terminal. 1161990075Sobrien (template_parm): Use it for default parameter case. 1162090075Sobrien (template_arg): Use it. 1162190075Sobrien (expr_no_commas): Remove commented out undefined extensions. 1162290075Sobrien * Makefile.in (CONFLICTS): Adjust to 33 s/r & 48 r/r. 1162390075Sobrien * parse.h, parse.c: Rebuilt. 1162418334Speter 1162590075Sobrien2000-06-29 Mark Mitchell <mark@codesourcery.com> 1162618334Speter 1162790075Sobrien * cp-tree.h (flag_const_strings): Remove. 1162890075Sobrien (warn_parentheses): Likewise. 1162990075Sobrien (warn_format): Likewise. 1163090075Sobrien (common_type): Likewise. 1163190075Sobrien (default_conversion): Likewise. 1163290075Sobrien (build_binary_op): Likewise. 1163390075Sobrien (cp_build_binary_op): New macro. 1163490075Sobrien * call.c (build_new_op): Use cp_build_binary_op instead of 1163590075Sobrien build_binary_op. 1163690075Sobrien * class.c (build_vtable_entry_ref): Likewise. 1163790075Sobrien * decl.c (expand_static_init): Likewise. 1163890075Sobrien (compute_array_index_type): Likewise. 1163990075Sobrien (build_enumerator): Likewise. 1164090075Sobrien * decl2.c (delete_sanity): Likewise. 1164190075Sobrien (start_static_initialization_or_destruction): Likewise. 1164290075Sobrien * error.c (dump_type_suffix): Likewise. 1164390075Sobrien * init.c (resolve_offset_ref): Likewise. 1164490075Sobrien (build_new): Likewise. 1164590075Sobrien (build_new_1): Likewise. 1164690075Sobrien (build_vec_delete_1): Likewise. 1164790075Sobrien (build_vec_init): Likewise. 1164890075Sobrien (build_delete): Likewise. 1164990075Sobrien * rtti.c (synthesize_tinfo_fn): Likewise. 1165090075Sobrien (synthesize_tinfo_var): Likewise. 1165190075Sobrien * search.c (expand_upcast_fixups): Likewise. 1165290075Sobrien (fixup_all_virtual_upcast_offsets): Likewise. 1165390075Sobrien * typeck.c (build_array_ref): Likewise. 1165490075Sobrien (get_member_function_from_ptrfunc): Likewise. 1165590075Sobrien (build_binary_op): Add parameter. 1165690075Sobrien (pointer_int_sum): Use cp_build_binary_op. 1165790075Sobrien (pointer_diff): Likewise. 1165890075Sobrien (build_modify_expr): Likewise. 1165990075Sobrien (get_delta_difference): Likewise. 1166090075Sobrien (build_ptrmemfunc): Likewise. 1166118334Speter 1166290075Sobrien2000-06-29 Nathan Sidwell <nathan@codesourcery.com> 1166318334Speter 1166490075Sobrien * cp-tree.h (SET_DECL_ARTIFICIAL): Remove. 1166590075Sobrien * decl.c (create_implicit_typedef): Adjust. 1166690075Sobrien * decl2.c (build_artificial_parm): Adjust. 1166790075Sobrien * method.c (implicitly_declare_fn): Adjust. 1166890075Sobrien * pt.c (push_inline_template_parms_recursive): Adjust. 1166990075Sobrien (process_template_parm): Adjust. 1167090075Sobrien (overloaded_template_name): Adjust. 1167190075Sobrien * semantics.c (finish_template_template_parm): Adjust. 1167218334Speter 1167390075Sobrien2000-06-28 Mark Mitchell <mark@codesourcery.com> 1167418334Speter 1167590075Sobrien * cp-tree.h (CLEAR_BINFO_NEW_VTABLE_MARKED): Remove. 1167690075Sobrien * class.c (update_vtable_entry_for_fn): Correct logic for deciding 1167790075Sobrien where to emit thunks. 1167890075Sobrien (build_vtt): Adjust call to build_vtt_inits. 1167990075Sobrien (build_vtt_inits): Add parameter to indicate whether or not 1168090075Sobrien sub-VTTs for virtual bases should be included. Adjust handling of 1168190075Sobrien construction vtables. 1168290075Sobrien (get_matching_base): New function. 1168390075Sobrien (dfs_build_vtt_inits): Rename to ... 1168490075Sobrien (dfs_build_secondary_vptr_vtt_inits): Adjust handling of 1168590075Sobrien construction vtables. 1168690075Sobrien (dfs_fixup_binfo_vtbls): Likewise. 1168790075Sobrien (build_ctor_vtbl_groups): Build construction vtables for virtual 1168890075Sobrien bases, too. 1168990075Sobrien (accumulate_vtbl_inits): Tweak logic for deciding whether or not 1169090075Sobrien to build construction vtbls. 1169190075Sobrien (dfs_accumulate_vtbl_inits): Adjust handling of 1169290075Sobrien construction vtables. 1169318334Speter 1169490075Sobrien * pt.c (tsubst, case TEMPLATE_TEMPLATE_PARM): Handle cv-qualified 1169590075Sobrien types correctly. 1169618334Speter 1169790075Sobrien2000-06-27 Mark Mitchell <mark@codesourcery.com> 1169818334Speter 1169990075Sobrien * decl.c (grokfndecl): Set DECL_CONTEXT for static functions too. 1170018334Speter 1170190075Sobrien2000-06-26 Nathan Sidwell <nathan@codesourcery.com> 1170218334Speter 1170390075Sobrien * search.c (hides): Remove. 1170490075Sobrien (is_subobject_of_p): Add most_derived parameter. Use 1170590075Sobrien CANONICAL_BINFO. 1170690075Sobrien (lookup_field_queue_p): Adjust. 1170790075Sobrien (lookup_field_r): Adjust. 1170818334Speter 1170990075Sobrien2000-06-26 Nathan Sidwell <nathan@codesourcery.com> 1171018334Speter 1171190075Sobrien * decl2.c (handle_class_head): Bash typedefs to the type's main 1171252284Sobrien decl. 1171318334Speter 1171490075Sobrien2000-06-25 Mark Mitchell <mark@codesourcery.com> 1171518334Speter 1171690075Sobrien * cp-tree.h (genrtl_begin_stmt_expr): Rename to ... 1171790075Sobrien (begin_global_stmt_expr): ... this. 1171890075Sobrien (genrtl_finish_stmt_expr): Rename to ... 1171990075Sobrien (finish_global_stmt_expr): ... this. 1172090075Sobrien * init.c (begin_init_stmts): Adjust calls. 1172190075Sobrien (finish_init_stmts): Likewise. 1172290075Sobrien * semantics.c (genrtl_begin_stmt_expr): Rename to ... 1172390075Sobrien (begin_global_stmt_expr): ... this. 1172490075Sobrien (genrtl_finish_stmt_expr): Rename to ... 1172590075Sobrien (finish_global_stmt_expr): ... this. 1172618334Speter 1172790075Sobrien2000-06-25 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> 1172818334Speter 1172990075Sobrien * search.c (lookup_member): Fix typo in comment. 1173018334Speter 1173190075Sobrien2000-06-24 Jason Merrill <jason@redhat.com> 1173218334Speter 1173390075Sobrien * decl.c (pushdecl): Don't set DECL_CONTEXT from current_namespace. 1173490075Sobrien (push_namespace): Set DECL_CONTEXT for a new NAMESPACE_DECL. 1173518334Speter 1173690075Sobrien2000-06-24 Martin v. L�wis <loewis@informatik.hu-berlin.de> 1173718334Speter 1173890075Sobrien * parse.y (complex_direct_notype_declarator): Support global_scope. 1173990075Sobrien * Makefile.in: Adjust conflict count. 1174018334Speter 1174190075Sobrien2000-06-23 Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu> 1174218334Speter 1174390075Sobrien * parse.y (template_arg): Convert TEMPLATE_DECL 1174490075Sobrien that is a template template parameter to 1174590075Sobrien TEMPLATE_TEMPLATE_PARM here. 1174618334Speter 1174790075Sobrien * cp-tree.def (TEMPLATE_TEMPLATE_PARM): Adjust comment. 1174890075Sobrien * cp-tree.h (TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL): New macro. 1174990075Sobrien (copy_template_template_parm): Adjust prototype. 1175090075Sobrien * decl.c (grokdeclarator): Remove dead code. 1175190075Sobrien * pt.c (process_template_parm): Tidy. 1175290075Sobrien (lookup_template_class): Construct nodes in 1175390075Sobrien copy_template_template_parm. 1175490075Sobrien (tsubst): Pass TEMPLATE_DECL rather than IDENTIFIER_NODE to 1175590075Sobrien lookup_template_class. Use TYPE_TI_TEMPLATE. 1175690075Sobrien * tree.c (copy_template_template_parm): Add NEWARGS 1175790075Sobrien parameter. 1175890075Sobrien (mapcar): Adjust call to copy_template_template_parm. 1175990075Sobrien * typeck.c (comptypes): Use TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL. 1176090075Sobrien * method.c (build_template_template_parm_names): Change error 1176190075Sobrien code to avoid compilation warning. 1176218334Speter 1176390075Sobrien * gxxint.texi: Document template template parameter 1176490075Sobrien name mangling. 1176518334Speter 1176690075Sobrien2000-06-21 Alex Samuel <samuel@codesourcery.com> 1176718334Speter 1176890075Sobrien * Make-lang.in (CXX_LIB2FUNCS): Add cp-demangle.o and dyn-string.o. 1176990075Sobrien (CXX_LIB2SRCS): Add cp-demangle.c and dyn-string.c. 1177090075Sobrien (cp-demangle.o): New rule. 1177190075Sobrien (dyn-string.o): Likewise. 1177290075Sobrien * inc/cxxabi.h (__cxa_demangle): New declaration. 1177318334Speter 1177490075Sobrien2000-06-22 Mark Mitchell <mark@codesourcery.com> 1177518334Speter 1177690075Sobrien * cp-tree.h (BV_USE_VCALL_INDEX_P): New macro. 1177790075Sobrien (BV_GENERATE_THUNK_WITH_VTABLE_P): Likewise. 1177890075Sobrien (lang_decl_flags): Add generate_with_vtable_p. Make vcall_offset 1177990075Sobrien a tree, not an int. 1178090075Sobrien (THUNK_GENERATE_WITH_VTABLE_P): New macro. 1178190075Sobrien (make_thunk): Change prototype. 1178290075Sobrien (emit_thunk): Rename to use_thunk. 1178390075Sobrien (mangle_thunk): Change prototype. 1178490075Sobrien * class.c (get_derived_offset): Simplify. 1178590075Sobrien (copy_virtuals): Clear BV_USE_VCALL_INDEX_P and 1178690075Sobrien BV_GENERATE_THUNK_WITH_VTABLE_P. 1178790075Sobrien (build_primary_vtable): Simplify. 1178890075Sobrien (add_virtual_function): Use BV_FN, rather than TREE_VALUE. 1178990075Sobrien (dfs_find_base): Remove. 1179090075Sobrien (update_vtable_entry_for_fn): Correct bug in finding the base 1179190075Sobrien where a virtual function was first declared. Figure out whether 1179290075Sobrien or not to emit a vcall-thunk with the vtables in which it appears. 1179390075Sobrien Correct logic for deciding whether to use an ordinary thunk, or a 1179490075Sobrien vcall thunk. 1179590075Sobrien (finish_struct_1): Remove unnecssary code. 1179690075Sobrien (build_vtbl_initializer): Use ssize_int for the running counter of 1179790075Sobrien negative indices. 1179890075Sobrien (build_vtbl_initializer): Only use vcall thunks where necessary. 1179990075Sobrien Mark thunks as needing to be emitted with their vtables, or not. 1180090075Sobrien (build_vbase_offset_vtbl_entries): Adjust for use of ssize_int in 1180190075Sobrien indices. Use size_binop. 1180290075Sobrien (dfs_build_vcall_offset_vtbl_entries): Don't rely on 1180390075Sobrien BINFO_PRIMARY_MARKED_P here. Use BV_FN consistently. Use 1180490075Sobrien size_binop. 1180590075Sobrien (build_rtti_vtbl_entries): Adjust call to build_vtable_entry. 1180690075Sobrien (build_vtable_entry): Mark thunks as needing to be emitted with 1180790075Sobrien their vtables, or not. 1180890075Sobrien * decl.c (lang_mark_tree): Mark the vcall_offset in a thunk. 1180990075Sobrien * decl2.c (mark_vtable_entries): Use use_thunk instead of 1181090075Sobrien emit_thunk. 1181190075Sobrien * dump.c (dequeue_and_dump): Remove dead code. Dump new thunk 1181290075Sobrien information. 1181390075Sobrien * error.c (dump_expr): Use BV_FN. 1181490075Sobrien * mangle.c (mangle_thunk): Adjust now that vcall_offset is a tree, 1181590075Sobrien not an int. 1181690075Sobrien * method.c (make_thunk): Likewise. 1181790075Sobrien (emit_thunk): Rename to use_thunk. Allow callers to decide 1181890075Sobrien whether or not to actually emit the thunk. Adjust for changes in 1181990075Sobrien representation of vcall offsets. 1182090075Sobrien * search.c (dfs_get_pure_virtuals): Use BV_FN. 1182190075Sobrien * semantics.c (emit_associated_thunks): New function. 1182290075Sobrien (expand_body): Use it. 1182390075Sobrien * ir.texi: Adjust decriptions of thunks. 1182418334Speter 1182590075Sobrien2000-06-22 Jason Merrill <jason@redhat.com> 1182618334Speter 1182790075Sobrien * pt.c (tsubst_decl, case FUNCTION_DECL): Clear DECL_SAVED_TREE. 1182890075Sobrien (tsubst_friend_function): Copy it here. 1182918334Speter 1183090075Sobrien * decl.c (grok_op_properties): Fix typo. 1183118334Speter 1183290075Sobrien * decl2.c (delete_sanity): Clarify warning, avoid failure on 1183390075Sobrien deleting void*. 1183418334Speter 1183590075Sobrien * pt.c (check_explicit_specialization): Clarify error. 1183618334Speter 1183790075Sobrien * decl.c (pushdecl): Also pull out one of the FUNCTION_DECLs from 1183890075Sobrien an old OVERLOAD when we're declaring a non-function. 1183990075Sobrien (pushdecl, destroy_local_var): Check for error_mark_node. 1184090075Sobrien (warn_extern_redeclared_static): Also bail early if 1184190075Sobrien we're a CONST_DECL. 1184290075Sobrien (push_overloaded_decl): Ignore an old error_mark_node. 1184318334Speter 1184490075Sobrien2000-06-22 Nathan Sidwell <nathan@codesourcery.com> 1184518334Speter 1184690075Sobrien * call.c (build_x_va_arg): Check if in a template decl. 1184790075Sobrien * pt.c (tsubst_copy, case VA_ARG_EXPR): Use build_x_va_arg. 1184818334Speter 1184990075Sobrien2000-06-20 Alexandre Petit-Bianco <apbianco@cygnus.com> 1185018334Speter 1185190075Sobrien * class.c (push_lang_context): TYPE_NAME gets you to the Java 1185290075Sobrien types DECLs. 1185390075Sobrien * decl.c (check_goto): Computed gotos assumed OK. 1185418334Speter 1185590075Sobrien2000-06-20 Jason Merrill <jason@redhat.com> 1185652284Sobrien 1185790075Sobrien * pt.c (tsubst_decl, case TYPE_DECL): Fix test for TYPE_DECLs 1185890075Sobrien for which we don't need to look for instantiations. 1185918334Speter 1186090075Sobrien2000-06-21 Nathan Sidwell <nathan@codesourcery.com> 1186118334Speter 1186290075Sobrien * parse.y (program): Always call finish_translation_unit. 1186390075Sobrien * parse.c, parse.h: Rebuilt. 1186452284Sobrien 1186590075Sobrien2000-06-20 Zack Weinberg <zack@wolery.cumb.org> 1186618334Speter 1186790075Sobrien * method.c: Don't include hard-reg-set.h. 1186818334Speter 1186990075Sobrien2000-06-20 Nathan Sidwell <nathan@codesourcery.com> 1187018334Speter 1187190075Sobrien * rtti.c (get_base_offset): Cope when vbase field is in a base. 1187218334Speter 1187390075Sobrien2000-06-20 Nathan Sidwell <nathan@codesourcery.com> 1187418334Speter 1187590075Sobrien * call.c (build_conditional_expr): Use VOID_TYPE_P. 1187690075Sobrien * cvt.c (cp_convert_to_pointer): Likewise. 1187790075Sobrien (convert_to_void): Likewise. 1187850397Sobrien * error.c (dump_expr): Likewise. 1187990075Sobrien * except.c (complete_ptr_ref_or_void_ptr_p): Likewise. 1188090075Sobrien * init.c (build_delete): Likewise. 1188190075Sobrien * method.c (emit_thunk): Likewise. 1188290075Sobrien * optmize.c (declare_return_variable): Likewise. 1188390075Sobrien * rtti.c (get_tinfo_decl_dynamic): Likewise. 1188490075Sobrien (get_typeid): Likewise. 1188590075Sobrien (build_dynamic_cast_1): Likewise. 1188690075Sobrien * typeck.c (composite_pointer_type): Likewise. 1188790075Sobrien (common_type): Likewise. 1188890075Sobrien (build_indirect_ref): Likewise. 1188990075Sobrien (build_binary_op): Likewise. 1189090075Sobrien (build_x_compound_expr): Likewise. 1189190075Sobrien (check_return_expr): Likewise. 1189290075Sobrien * typeck2.c (add_exception_specifier): Likewise. 1189352284Sobrien 1189490075Sobrien * mangle.c (write_method_parms): Use direct comparison for end 1189590075Sobrien of parmlist. 1189618334Speter 1189790075Sobrien2000-06-19 Benjamin Chelf <chelf@codesourcery.com> 1189852284Sobrien 1189990075Sobrien * cp-tree.h (genrtl_try_block): Declare function. 1190090075Sobrien (genrtl_handler): Likewise. 1190190075Sobrien (genrtl_catch_block): Likewise. 1190290075Sobrien (genrtl_ctor_stmt): Likewise. 1190390075Sobrien (genrtl_subobject): Likewise. 1190490075Sobrien (genrtl_decl_cleanup): Likewise. 1190590075Sobrien (genrtl_do_poplevel): Likewise. 1190690075Sobrien (genrtl_do_pushlevel): Likewise. 1190790075Sobrien (genrtl_clear_out_block): Likewise. 1190890075Sobrien (genrtl_goto_stmt): Likewise. 1190990075Sobrien (genrtl_expr_stmt): Likewise. 1191090075Sobrien (genrtl_decl_stmt): Likewise. 1191190075Sobrien (genrtl_if_stmt): Likewise. 1191290075Sobrien (genrtl_while_stmt): Likewise. 1191390075Sobrien (genrtl_do_stmt): Likewise. 1191490075Sobrien (genrtl_return_stmt): Likewise. 1191590075Sobrien (genrtl_for_stmt): Likewise. 1191690075Sobrien (genrtl_break_stmt): Likewise. 1191790075Sobrien (genrtl_continue_stmt): Likewise. 1191890075Sobrien (genrtl_scope_stmt): Likewise. 1191990075Sobrien (genrtl_switch_stmt): Likewise. 1192090075Sobrien (genrtl_case_label): Likewise. 1192190075Sobrien (genrtl_begin_compound_stmt): Likewise. 1192290075Sobrien (genrtl_finish_compound_stmt): Likewise. 1192390075Sobrien (genrtl_compound_stmt): Likewise. 1192490075Sobrien (genrtl_asm_stmt): Likewise. 1192590075Sobrien (genrtl_named_return_value): Likewise. 1192690075Sobrien (genrtl_begin_stmt_expr): Likewise. 1192790075Sobrien (genrtl_finish_stmt_expr): Likewise. 1192890075Sobrien (finish_for_stmt): Removed first argument. 1192990075Sobrien (finish_switch_stmt): Likewise. 1193018334Speter 1193190075Sobrien * semantics.c (genrtl_try_block): Define function. 1193290075Sobrien (genrtl_handler): Likewise. 1193390075Sobrien (genrtl_catch_block): Likewise. 1193490075Sobrien (genrtl_ctor_stmt): Likewise. 1193590075Sobrien (genrtl_subobject): Likewise. 1193690075Sobrien (genrtl_decl_cleanup): Likewise. 1193790075Sobrien (genrtl_do_poplevel): Likewise. 1193890075Sobrien (genrtl_do_pushlevel): Likewise. 1193990075Sobrien (genrtl_clear_out_block): Likewise. 1194090075Sobrien (genrtl_goto_stmt): Likewise. 1194190075Sobrien (genrtl_expr_stmt): Likewise. 1194290075Sobrien (genrtl_decl_stmt): Likewise. 1194390075Sobrien (genrtl_if_stmt): Likewise. 1194490075Sobrien (genrtl_while_stmt): Likewise. 1194590075Sobrien (genrtl_do_stmt): Likewise. 1194690075Sobrien (genrtl_return_stmt): Likewise. 1194790075Sobrien (genrtl_for_stmt): Likewise. 1194890075Sobrien (genrtl_break_stmt): Likewise. 1194990075Sobrien (genrtl_continue_stmt): Likewise. 1195090075Sobrien (genrtl_scope_stmt): Likewise. 1195190075Sobrien (genrtl_switch_stmt): Likewise. 1195290075Sobrien (genrtl_case_label): Likewise. 1195390075Sobrien (genrtl_begin_compound_stmt): Likewise. 1195490075Sobrien (genrtl_finish_compound_stmt): Likewise. 1195590075Sobrien (genrtl_compound_stmt): Likewise. 1195690075Sobrien (genrtl_asm_stmt): Likewise. 1195790075Sobrien (genrtl_named_return_value): Likewise. 1195890075Sobrien (genrtl_begin_stmt_expr): Likewise. 1195990075Sobrien (genrtl_finish_stmt_expr): Likewise. 1196090075Sobrien (finish_for_stmt): Removed first argument and generate rtl 1196190075Sobrien specific code. 1196290075Sobrien (finish_switch_stmt): Likewise. 1196390075Sobrien (do_poplevel): Removed generate rtl specific code. 1196490075Sobrien (do_pushlevel): Likewise. 1196590075Sobrien (add_tree): Likewise. 1196690075Sobrien (finish_goto_stmt): Likewise. 1196790075Sobrien (finish_expr_stmt): Likewise. 1196890075Sobrien (begin_if_stmt): Likewise. 1196990075Sobrien (finish_if_stmt_cond): Likewise. 1197090075Sobrien (finish_then_clause): Likewise. 1197190075Sobrien (begin_else_clause): Likewise. 1197290075Sobrien (finish_else_clause): Likewise. 1197390075Sobrien (finish_if_stmt): Likewise. 1197490075Sobrien (clear_out_block): Likewise. 1197590075Sobrien (begin_while_stmt): Likewise. 1197690075Sobrien (finish_while_stmt_cond): Likewise. 1197790075Sobrien (finish_while_stmt): Likewise. 1197890075Sobrien (begin_do_stmt): Likewise. 1197990075Sobrien (finish_do_body): Likewise. 1198090075Sobrien (finish_do_stmt): Likewise. 1198190075Sobrien (finish_return_stmt): Likewise. 1198290075Sobrien (begin_for_stmt): Likewise. 1198390075Sobrien (finish_for_init_stmt): Likewise. 1198490075Sobrien (finish_for_cond): Likewise. 1198590075Sobrien (finish_for_expr): Likewise. 1198690075Sobrien (finish_break_stmt): Likewise. 1198790075Sobrien (finish_continue_stmt): Likewise. 1198890075Sobrien (begin_switch_stmt): Likewise. 1198990075Sobrien (finish_switch_cond): Likewise. 1199090075Sobrien (finish_case_label): Likewise. 1199190075Sobrien (begin_try_block): Likewise. 1199290075Sobrien (begin_function_try_block): Likewise. 1199390075Sobrien (finish_try_block): Likewise. 1199490075Sobrien (finish_cleanup_try_block): Likewise. 1199590075Sobrien (finish_cleanup): Likewise. 1199690075Sobrien (finish_function_try_block): Likewise. 1199790075Sobrien (finish_handler_sequence): Likewise. 1199890075Sobrien (finish_function_handler_sequence): Likewise. 1199990075Sobrien (begin_handler): Likewise. 1200090075Sobrien (finish_handler_parms): Likewise. 1200190075Sobrien (begin_catch_block): Likewise. 1200290075Sobrien (finish_handler): Likewise. 1200390075Sobrien (begin_compound_stmt): Likewise. 1200490075Sobrien (finish_compound_stmt): Likewise. 1200590075Sobrien (finish_asm_stmt): Likewise. 1200690075Sobrien (finish_label_stmt): Likewise. 1200790075Sobrien (finish_label_decl): Likewise. 1200890075Sobrien (finish_subobject): Likewise. 1200990075Sobrien (finish_decl_cleanup): Likewise. 1201090075Sobrien (finish_named_return_value): Likewise. 1201190075Sobrien (begin_stmt_expr): Likewise. 1201290075Sobrien (finish_stmt_expr): Likewise. 1201318334Speter 1201490075Sobrien * decl.c (initialize_local_var): Changed call to finish_expr_stmt 1201590075Sobrien to call genrtl_expr_stmt when appropriate. 1201618334Speter 1201790075Sobrien * init.c (begin_init_stmts): Changed calls to begin_stmt_expr and 1201890075Sobrien begin_compound_expr to call genrtl_begin_stmt_expr and 1201990075Sobrien genrtl_begin_compound_expr when appropriate. 1202090075Sobrien (finish_init_stmts): Changed calls to finish_compound_expr and 1202190075Sobrien finish_stmt_expr to call genrtl_finish_compound_expr and 1202290075Sobrien genrtl_finish_stmt_expr when appropriate. 1202390075Sobrien (expand_default_init): Changed call to finish_expr_stmt to call 1202490075Sobrien genrtl_expr_stmt when appropriate. 1202590075Sobrien (build_vec_init): Likewise. 1202618334Speter 1202790075Sobrien * parse.y (simple_stmt): Removed first argument from call to 1202890075Sobrien finish_for_stmt. Removed first argument from call to 1202990075Sobrien finish_switch_stmt. 1203018334Speter 1203190075Sobrien * parse.c: Regenerated. 1203218334Speter 1203390075Sobrien * pt.c (tsubst_expr): Removed first argument from call to 1203490075Sobrien finish_for_stmt. Removed first argument from call to 1203590075Sobrien finish_switch_stmt. 1203618334Speter 1203790075Sobrien2000-06-16 Benjamin Chelf <chelf@codesourcery.com> 1203818334Speter 1203990075Sobrien * cp-tree.h (enum cplus_tree_code): Changed __DUMMY to 1204090075Sobrien CP_DUMMY_TREE_CODE. Remove #include "c-common.def". 1204118334Speter 1204290075Sobrien * lex.c (cplus_tree_code_type[]): Removed #include "c-common.def". 1204390075Sobrien (cplus_tree_code_length[]): Likewise. 1204490075Sobrien (cplus_tree_code_name[]): Likewise. 1204590075Sobrien (init_parse): Added call to add_c_tree_codes. Changed 1204690075Sobrien LAST_AND_UNUSED_TREE_CODE to LAST_C_TREE_CODE. 1204718334Speter 1204890075Sobrien2000-06-16 Mark Mitchell <mark@codesourcery.com> 1204918334Speter 1205090075Sobrien * cp-tree.h (finish_mem_initializers): Declare. 1205190075Sobrien (count_trees): Likewise. 1205290075Sobrien * parse.y (base_init): Use finish_mem_initializers. 1205390075Sobrien * semantics.c (finish_mem_initializers): New function. 1205418334Speter 1205590075Sobrien * tree.c (count_trees_r): Prototype. Use DATA parameter to store 1205690075Sobrien the number of trees. 1205790075Sobrien (n_trees): Remove. 1205890075Sobrien (count_trees): Don't use it. 1205918334Speter 1206090075Sobrien2000-06-15 Jason Merrill <jason@redhat.com> 1206118334Speter 1206290075Sobrien * tree.c (count_trees): New debugging function. 1206318334Speter 1206490075Sobrien * typeck.c (build_x_function_call): Use DECL_FUNCTION_TEMPLATE_P. 1206590075Sobrien * init.c (build_member_call): Pull out the name of a DECL. 1206618334Speter 1206790075Sobrien * Makefile.in (semantics.o, pt.o): Depend on TIMEVAR_H. 1206890075Sobrien * semantics.c (expand_body): Push to TV_INTEGRATION here. 1206990075Sobrien * optimize.c (optimize_function): Not here. 1207090075Sobrien * pt.c (instantiate_decl): Push to TV_PARSE. 1207118334Speter 1207290075Sobrien2000-06-15 Mark Mitchell <mark@codesourcery.com> 1207318334Speter 1207490075Sobrien * cp-tree.h (struct language_function): Remove x_base_init_list 1207590075Sobrien and x_member_init_list. 1207690075Sobrien (current_base_init_list): Remove. 1207790075Sobrien (current_member_init_list): Likewise. 1207890075Sobrien (setup_vtbl_ptr): Change prototype. 1207990075Sobrien (emit_base_init): Likewise. 1208090075Sobrien (expand_member_init): Likewise. 1208190075Sobrien (reinit_parse_for_function): Remove. 1208290075Sobrien * decl.c (save_function_data): Don't clear x_base_init_list and 1208390075Sobrien x_member_init_list. 1208490075Sobrien (mark_language_function): Don't mark them. 1208590075Sobrien * init.c (perform_member_init): Tweak comment. 1208690075Sobrien (sort_member_init): Take the list of initializers as an argument. 1208790075Sobrien (sort_base_init): Likewise. 1208890075Sobrien (emit_base_init): Likewise. 1208990075Sobrien (expand_member_init): Return the initializer. Don't use global 1209090075Sobrien variables. 1209190075Sobrien * lex.c (reinit_parse_for_function): Remove. 1209290075Sobrien * method.c (build_template_parm_names): Correct substitution. 1209390075Sobrien (do_build_copy_constructor): Don't use current_member_init_list 1209490075Sobrien and current_base_init_list. 1209590075Sobrien (synthesize_method): Likewise. 1209690075Sobrien * parse.y (base_init): Split mem-initializers into 1209790075Sobrien base-initializers and field-initializers. 1209890075Sobrien (member_init_list): Build up the list here. 1209990075Sobrien (member_init): Return the initializer. 1210090075Sobrien (fn.depfn): Don't use reinit_parse_for_function. 1210190075Sobrien * parse.c: Regenerated. 1210290075Sobrien * pt.c (convert_nontype_argument): Don't make an ADDR_EXPR of the 1210390075Sobrien ERROR_MARK. 1210490075Sobrien (tsubst_expr): Don't use current_member_init_list 1210590075Sobrien and current_base_init_list. 1210690075Sobrien (tsubst_expr_values): Rename to ... 1210790075Sobrien (tsubst_initializer_list): ... this. Use convert_from_reference. 1210890075Sobrien * semantics.c (setup_vtbl_ptr): Don't use current_member_init_list 1210990075Sobrien and current_base_init_list. 1211090075Sobrien (begin_function_definition): Don't call reinit_parse_for_function. 1211118334Speter 1211290075Sobrien * dump.c (dequeue_and_dump): Use TREE_VEC_LENGTH with vectors. 1211318334Speter 1211490075Sobrien * error.c (dump_expr): Handle ADDR_EXPRs with REFERENCE_TYPE 1211552284Sobrien correctly. 1211652284Sobrien 1211790075Sobrien * cp-tree.h (DECL_PENDING_INLINE_P): Relax checking. 1211818334Speter 1211990075Sobrien2000-06-14 Benjamin Chelf <chelf@codesourcery.com> 1212018334Speter 1212190075Sobrien * cp-tree.h (IF_COND): Move to c-common.h. 1212290075Sobrien (THEN_CLAUSE): Likewise. 1212390075Sobrien (ELSE_CLAUSE): Likewise. 1212490075Sobrien (WHILE_COND): Likewise. 1212590075Sobrien (WHILE_BODY): Likewise. 1212690075Sobrien (DO_COND): Likewise. 1212790075Sobrien (DO_BODY): Likewise. 1212890075Sobrien (RETURN_EXPR): Likewise. 1212990075Sobrien (EXPR_STMT_EXPR): Likewise. 1213090075Sobrien (FOR_INIT_STMT): Likewise. 1213190075Sobrien (FOR_COND): Likewise. 1213290075Sobrien (FOR_EXPR): Likewise. 1213390075Sobrien (FOR_BODY): Likewise. 1213490075Sobrien (SWITCH_COND): Likewise. 1213590075Sobrien (SWITCH_BODY): Likewise. 1213690075Sobrien (CASE_LOW): Likewise. 1213790075Sobrien (CASE_HIGH): Likewise. 1213890075Sobrien (GOTO_DESTINATION): Likewise. 1213990075Sobrien (COMPOUND_BODY): Likewise. 1214090075Sobrien (ASM_CV_QUAL): Likewise. 1214190075Sobrien (ASM_STRING): Likewise. 1214290075Sobrien (ASM_OUTPUTS): Likewise. 1214390075Sobrien (ASM_INPUTS): Likewise. 1214490075Sobrien (ASM_CLOBBERS): Likewise. 1214590075Sobrien (DECL_STMT_DECL): Likewise. 1214690075Sobrien (STMT_EXPR_STMT): Likewise. 1214790075Sobrien (LABEL_STMT_LABEL): Likewise. 1214890075Sobrien (SCOPE_BEGIN_P): Likewise. 1214990075Sobrien (SCOPE_END_P): Likewise. 1215090075Sobrien (SCOPE_STMT_BLOCK): Likewise. 1215190075Sobrien (SCOPE_NULLIFIED_P): Likewise. 1215290075Sobrien (SCOPE_NO_CLEANUPS_P): Likewise. 1215390075Sobrien (SCOPE_PARTIAL_P): Likewise. 1215490075Sobrien (ASM_VOLATILE_P): Likewise. 1215590075Sobrien (STMT_LINENO): Likewise. 1215690075Sobrien (STMT_LINENO_FOR_FN_P): Likewise. 1215752284Sobrien 1215890075Sobrien * cp-tree.def: Removed SRCLOC, SIZEOF_EXPR, ARROW_EXPR, 1215990075Sobrien ALIGNOF_EXPR, EXPR_STMT, COMPOUND_STMT, DECL_STMT, IF_STMT, 1216090075Sobrien FOR_STMT, WHILE_STMT, DO_STMT, RETURN_STMT, BREAK_STMT, 1216190075Sobrien CONTINUE_STMT, SWITCH_STMT, GOTO_STMT, LABEL_STMT, ASM_STMT, 1216290075Sobrien SCOPE_STMT, CASE_LABEL, STMT_EXPR. 1216318334Speter 1216490075Sobrien * Makefile.in (CXX_TREE_H): Added $(srcdir)/../c-common.def. 1216518334Speter 1216690075Sobrien * Make-lang.in (CXX_SRCS): Added $(srcdir)/c-common.def. 1216790075Sobrien (cc1plus$(exeext)): Added $(srcdir)/c-common.def. 1216818334Speter 1216990075Sobrien * lex.c (cplus_tree_code_type[]): Added '#include "c-common.def"'. 1217090075Sobrien (cplus_tree_code_length[]): Added '#include "c-common.def"'. 1217190075Sobrien (cplus_tree_code_name[]): Added '#include "c-common.def"'. 1217218334Speter 1217390075Sobrien2000-06-14 Mark Mitchell <mark@codesourcery.com> 1217418334Speter 1217590075Sobrien * cp-tree.h (BINFO_OVERRIDE_ALONG_VIRTUAL_PATH): New macro. 1217690075Sobrien * class.c (dfs_find_final_overrider): Set it appropriately. 1217790075Sobrien (dfs_built_vtt_inits): Check BINFO_OVERRIDE_ALONG_VIRTUAL_PATH to 1217890075Sobrien avoid unneeded secondary vptrs. 1217918334Speter 1218090075Sobrien2000-06-13 Jakub Jelinek <jakub@redhat.com> 1218118334Speter 1218290075Sobrien * class.c (build_secondary_vtable): Set DECL_USER_ALIGN. 1218390075Sobrien (check_bitfield_decl, check_field_decl): Likewise. 1218490075Sobrien (build_vtbl_or_vbase_field, build_base_field): Likewise. 1218590075Sobrien (layout_class_type): Set DECL_USER_ALIGN resp. CLASSTYPE_USER_ALIGN. 1218690075Sobrien * decl.c (record_unknown_type): Set TYPE_USER_ALIGN. 1218790075Sobrien (xfer_tag, finish_enum): Likewise. 1218890075Sobrien * decl2.c (finish_builtin_type): Likewise. 1218990075Sobrien * init.c (init_init_processing): Likewise. 1219090075Sobrien * pt.c (instantiate_class_template): Likewise. 1219190075Sobrien * rtti.c (get_tinfo_decl, synthesize_tinfo_fn): Set DECL_USER_ALIGN. 1219290075Sobrien * cp-tree.h (struct lang_type): Add user_align member. 1219390075Sobrien (CLASSTYPE_USER_ALIGN): Define. 1219418334Speter 1219590075SobrienTue Jun 13 15:48:03 2000 Maciej W. Rozycki <macro@ds2.pg.gda.pl> 1219618334Speter 1219790075Sobrien * Make-lang.in (c++.install-common): Install g++-cross in 1219890075Sobrien $(gcc_tooldir)/bin as g++ and c++; g++ in $(bindir) as 1219990075Sobrien $(target_alias)-g++ and $(target_alias)-c++. 1220018334Speter 1220190075Sobrien2000-06-12 Mark Mitchell <mark@codesourcery.com> 1220218334Speter 1220390075Sobrien * class.c (vcall_offset_data_s): Add last_init and fns. 1220490075Sobrien (overrides): Rename to same_signature_p. 1220590075Sobrien (dfs_find_final_overrider): Adjust accordingly. 1220690075Sobrien (mark_overriders): Likewise. 1220790075Sobrien (warn_hidden): Likewise. 1220890075Sobrien (build_vtbl_initializer): Reorganize machinery for building things 1220990075Sobrien at negative offsets. 1221090075Sobrien (build_vcall_and_vbase_vtbl_entries): Likewise. 1221190075Sobrien (build_vbase_offset_vtbl_entries): Likewise. 1221290075Sobrien (dfs_build_vcall_offset_vtbl_entries): Correct order of vcall 1221390075Sobrien offset entries. Do not create two entries for functions with the 1221490075Sobrien same signature. 1221590075Sobrien (build_vcall_offset_vtbl_entries): Initialize vod->fns. 1221690075Sobrien (build_rtti_vtbl_entries): Reorganize machinery for building things 1221790075Sobrien at negative offsets. 1221818334Speter 1221990075Sobrien * optimize.c (expand_call_inline): Don't recurse into the code 1222090075Sobrien used to initialize the parameters more than once. 1222118334Speter 1222290075Sobrien2000-06-11 Mark Mitchell <mark@codesourcery.com> 1222352284Sobrien 1222490075Sobrien * mangle.c (NESTED_TEMPLATE_MATCH): Fix typo in comment. 1222590075Sobrien (is_std_substitution): Don't check CLASSTYPE_USE_TEMPLATE here. 1222690075Sobrien (find_substitution): Only use the `Sa' substitution for 1222790075Sobrien std::allocator, not instantiations of it. 1222890075Sobrien (write_template_prefix): Move comment. Only use a TREE_LIST to 1222990075Sobrien represent substitutions for a member template. 1223090075Sobrien (write_array_type): Mangle array dimensions correctly. 1223190075Sobrien * optimize.c (maybe_clone_body): Copy more information from the 1223290075Sobrien cloned function. 1223390075Sobrien * pt.c (regenerate_decl_from_template): Preserve DECL_USE_TEMPLATE 1223490075Sobrien on the regenerated declaration. 1223518334Speter 1223690075Sobrien2000-06-11 Chip Salzenberg <chip@valinux.com> 1223790075Sobrien Mark Mitchell <mark@codesourcery.com> 1223818334Speter 1223990075Sobrien * class.c (build_vtable): Clarify comment. 1224090075Sobrien (build_ctor_vtbl_group): Pass the most derived type to 1224190075Sobrien build_vtable. 1224218334Speter 1224390075Sobrien2000-06-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1224418334Speter 1224590075Sobrien * decl2.c (compare_options): Don't needlessly cast away const-ness. 1224618334Speter 1224790075Sobrien2000-06-10 Mark Mitchell <mark@codesourcery.com> 1224818334Speter 1224990075Sobrien * decl.c (add_binding): Handle duplicate declarations of external 1225090075Sobrien variables. 1225118334Speter 1225290075Sobrien2000-06-09 Chip Salzenberg <chip@valinux.com> 1225390075Sobrien Mark Mitchell <mark@codesourcery.com> 1225418334Speter 1225590075Sobrien * mangle.c (write_number): Take an unsigned HOST_WIDE_INT as an 1225690075Sobrien argument. 1225790075Sobrien (write_signed_number): New macro. 1225890075Sobrien (write_unsigned_number): Likewise. 1225990075Sobrien (write_source_name): Use them. 1226090075Sobrien (write_number): Handle signed and unsigned values. 1226190075Sobrien (write_integer_cst): Use tree_int_cst_sgn, and use 1226290075Sobrien write_unsigned_number or write_signed_number as appropriate. 1226390075Sobrien (write_discriminator): Use write_unsigned_number or 1226490075Sobrien write_signed_number as appropriate. 1226590075Sobrien (write_template_arg_literal): Likewise. 1226690075Sobrien (write_array_type): Use tree_low_cst. 1226790075Sobrien (write_template_parm): Use write_unsigned_number or 1226890075Sobrien write_signed_number as appropriate. 1226990075Sobrien (write_substitution): Adjust call to write_number. 1227090075Sobrien (write_type): Get the TYPE_MAIN_VARIANT before mangling it. 1227190075Sobrien (write_expression): Handle non-type template arguments of 1227290075Sobrien reference type correctly. 1227390075Sobrien (mangle_thunk): Use write_signed_number. 1227418334Speter 1227590075Sobrien2000-06-09 Chip Salzenberg <chip@valinux.com> 1227618334Speter 1227790075Sobrien * mangle.c (find_substition): Don't mangle objects with typename 1227890075Sobrien substitutions (e.g. "cin" as "Si"). 1227918334Speter 1228090075Sobrien2000-06-09 Zack Weinberg <zack@wolery.cumb.org> 1228118334Speter 1228290075Sobrien * call.c (add_candidate): Use ggc_alloc_cleared. 1228390075Sobrien * decl.c (lookup_label): Likewise. 1228490075Sobrien * lex.c (retrofit_lang_decl): Likewise. 1228518334Speter 1228690075Sobrien2000-06-09 Jason Merrill <jason@casey.soma.redhat.com> 1228718334Speter 1228890075Sobrien * semantics.c (expand_body): Push to TV_EXPAND. 1228990075Sobrien * optimize.c (optimize_function): Push to TV_INTEGRATION. 1229090075Sobrien * decl.c (start_function): Always call announce_function. 1229118334Speter 1229290075Sobrien * tinfo2.cc: Just declare abort. 1229318334Speter 1229490075Sobrien2000-06-09 Gabriel Dos Reis <gdr@codesourcery.com> 1229518334Speter 1229690075Sobrien * lex.c (DEF_OPERATOR): Say `operator@' -not- `operator @' 1229790075Sobrien whenever @ is a symbolic name. 1229818334Speter 1229990075Sobrien2000-06-08 Jakub Jelinek <jakub@redhat.com> 1230018334Speter 1230190075Sobrien * method.c (make_thunk): Clear DECL_VTT_PARM in thunk. 1230218334Speter 1230390075Sobrien2000-06-07 Mark Mitchell <mark@codesourcery.com> 1230418334Speter 1230590075Sobrien * decl.c (pushdecl): Look up functions by DECL_NAME, not 1230690075Sobrien DECL_ASSEMBLER_NAME. 1230718334Speter 1230890075Sobrien2000-06-06 Mark Mitchell <mark@codesourcery.com> 1230918334Speter 1231090075Sobrien * decl2.c (c_language): Define. 1231118334Speter 1231290075Sobrien2000-06-06 Gabriel Dos Reis <gdr@codesourcery.com> 1231318334Speter 1231490075Sobrien * lex.c (lang_init_options): Tweak. 1231518334Speter 1231690075Sobrien * decl2.c: Remove #inclusion of diagnostic.h 1231790075Sobrien (lang_decode_option): Move diagnostic formatting options to 1231890075Sobrien toplevel. 1231918334Speter 1232090075Sobrien * lang-options.h: Remove documentation for diagnostic options. 1232118334Speter 1232290075Sobrien * Makefile.in (lex.o): Depends upon diagnostic.h 1232318334Speter 1232490075Sobrien2000-06-06 Mark Mitchell <mark@codesourcery.com> 1232518334Speter 1232690075Sobrien * decl.c (redeclaration_error_message): If two TEMPLATE_DECLs have 1232790075Sobrien the same DECL_RESULT, it's not a redefinition. 1232890075Sobrien * pt.c (tsubst_decl): Remove code to handle illegal 1232950397Sobrien specializations. 1233018334Speter 1233190075Sobrien2000-06-06 Nathan Sidwell <nathan@codesourcery.com> 1233218334Speter 1233390075Sobrien * exception.cc: (__eh_alloc, __eh_free): Moved to libgcc2.c 1233418334Speter 1233590075Sobrien2000-06-05 Jason Merrill <jason@casey.soma.redhat.com> 1233618334Speter 1233790075Sobrien * search.c (maybe_suppress_debug_info): Don't check 1233890075Sobrien CLASSTYPE_INTERFACE_ONLY if CLASSTYPE_INTERFACE_KNOWN isn't set. 1233918334Speter 1234090075Sobrien * pt.c (mark_decl_instantiated): Do SET_DECL_EXPLICIT_INSTANTIATION 1234190075Sobrien here if extern_p. 1234218334Speter 1234390075Sobrien Remember instantiation context in deferred instantiations. 1234490075Sobrien * cp-tree.h (struct tinst_level): Remove. 1234590075Sobrien (TINST_DECL, TINST_LINE, TINST_FILE): New macros. 1234690075Sobrien * pt.c (current_tinst_level): Now a tree. 1234790075Sobrien (print_template_context, push_tinst_level, pop_tinst_level, 1234890075Sobrien tinst_for_decl): Adjust. 1234990075Sobrien (reopen_tinst_level): New fn. 1235090075Sobrien (init_pt): Register current_tinst_level as a root. 1235190075Sobrien (add_pending_template): Put current_tinst_level in TREE_PURPOSE 1235290075Sobrien of the pending templates list. 1235390075Sobrien (instantiate_pending_templates): Adjust. Call reopen_tinst_level. 1235490075Sobrien * lex.c (extract_interface_info): Adjust. 1235590075Sobrien * decl2.c (warn_if_unknown_interface): Adjust. 1235618334Speter 1235790075Sobrien2000-06-05 Mark Mitchell <mark@codesourcery.com> 1235818334Speter 1235990075Sobrien * class.c (indirect_primary_base_p): New function. 1236090075Sobrien (determine_primary_base): Use it. 1236118334Speter 1236290075Sobrien2000-06-05 Nathan Sidwell <nathan@codesourcery.com> 1236318334Speter 1236490075Sobrien Update new-abi dynamic cast algorithm. 1236590075Sobrien * tinfo.cc (__class_type_info::__dyncast_result): Add 1236690075Sobrien whole_details. Adjust constructor. 1236790075Sobrien (__vmi_class_type_info::__do_dyncast): Adjust for vmi_flags. 1236890075Sobrien Avoid unnecessary searching. 1236990075Sobrien (__dynamic_cast): Adjust for __dyncast_result::whole_details. 1237018334Speter 1237190075SobrienMon Jun 5 06:48:55 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 1237218334Speter 1237390075Sobrien * decl.c (init_decl_processing): Don't call record_component_aliases. 1237490075Sobrien * tree.c (build_cplus_array_type_1): Likewise. 1237518334Speter 1237690075Sobrien2000-06-04 Mark Mitchell <mark@codesourcery.com> 1237718334Speter 1237890075Sobrien * ir.texi: Correct typo. 1237990075Sobrien * mangle.c (write_expression): Handle non-type template arguments 1238090075Sobrien with reference type. 1238190075Sobrien * method.c (build_overload_value): Likewise. 1238290075Sobrien * pt.c (convert_nontype_argument): Explicitly represent conversion 1238390075Sobrien to a reference with an ADDR_EXPR. 1238490075Sobrien (unify): Always unify arguments in left-to-right order. 1238518334Speter 1238690075Sobrien2000-06-03 Alex Samuel <samuel@codesourcery.com> 1238790075Sobrien Mark Mitchell <mark@codesourcery.com> 1238818334Speter 1238990075Sobrien * Make-lang.in (CXX_SRCS): Add mangle.c. 1239090075Sobrien * Makefile.in (CXX_OBJS): Add mangle.o. 1239190075Sobrien (mangle.o): New rule. 1239218334Speter 1239390075Sobrien * class.c (local_classes): New variable. 1239490075Sobrien * class.c (get_vtable_name): Use mangle_vtable_for_type for new ABI. 1239590075Sobrien (get_vtt_name): Use mangle_vtt_name for new ABI. 1239690075Sobrien (init_class_processing): Initialize local_classes. 1239790075Sobrien (build_ctor_vtbl_group): Use mangle_ctor_vtbl_for_type for new ABI. 1239890075Sobrien * cp-tree.h (cp_tree_index): Add CPTI_STD_IDENTIFIER. 1239990075Sobrien (std_identifier): New macro. 1240090075Sobrien (DECL_VOLATILE_MEMFUNC_P): New macro. 1240190075Sobrien (DECL_NAMESPACE_STD_P): Likewise. 1240290075Sobrien (local_classes): Declare. 1240390075Sobrien (get_mostly_instantiated_function_type): Declare. 1240490075Sobrien (init_mangle): Declare. 1240590075Sobrien (mangle_decl): Likewise. 1240690075Sobrien (mangle_type_string): Likewise. 1240790075Sobrien (mangle_type): Likewise. 1240890075Sobrien (mangle_typeinfo_for_type): Likewise. 1240990075Sobrien (mangle_typeinfo_string_for_type): Likewise. 1241090075Sobrien (mangle_vtbl_for_type): Likewise. 1241190075Sobrien (mangle_vtt_for_type): Likewise. 1241290075Sobrien (mangle_ctor_vtbl_for_type): Likewise. 1241390075Sobrien (mangle_thunk): Likewise. 1241490075Sobrien (mangle_conv_op_name_for_type): Likewise. 1241590075Sobrien (mangle_guard_variable): Likewise. 1241690075Sobrien * decl.c (pushtag): Keep track of local classes. 1241790075Sobrien (initialize_predefined_identifiers): Initialize std_identifier. 1241890075Sobrien (init_decl_processing): Use std_identifier. 1241990075Sobrien (start_decl): Don't treat instantiations as specializations. 1242090075Sobrien (grokdeclarator): Likewise. 1242190075Sobrien (grokvardecl): Call mangle_decl for new ABI. Only set mangled 1242290075Sobrien name for fully-instantiated templates. 1242390075Sobrien * decl2.c (grokclassfn): Use set_mangled_name_for_decl for 1242490075Sobrien destructors with the new ABI. 1242590075Sobrien (finish_static_data_member_decl): Use mangle_decl under the new ABI. 1242690075Sobrien (grokfield): Use mangle_type for new ABI. 1242790075Sobrien (grokoptypename): Use mangle_conv_op_for_type for new ABI. 1242890075Sobrien (get_sentry): Use mangle_guard_variable for new ABI. 1242990075Sobrien (start_static_initialization_or_destruction): Likewise. 1243090075Sobrien * expr.c (extract_aggr_init): Remove. 1243190075Sobrien (extract_scalar_init): Likewise. 1243290075Sobrien (extract_init): Remove #if 0'd code. 1243390075Sobrien * mangle.c: New function. 1243490075Sobrien * method.c (build_mangled_name): Assert not flag_new_abi. 1243590075Sobrien (build_static_name): Likewise. 1243690075Sobrien (build_decl_overload_real): Likewise. 1243790075Sobrien (build_typename_overload): Likewise. 1243890075Sobrien (build_overload_with_type): Likewise. 1243990075Sobrien (build_overload_name): Likewise. 1244090075Sobrien (get_ctor_vtbl_name): Likewise. 1244190075Sobrien (start_squangling): Likewise. 1244290075Sobrien (get_id_2): Likewise. 1244390075Sobrien (set_mangled_name_for_decl): Call mangle_decl for new ABI. 1244490075Sobrien (init_method): Call init_mangle for new ABI. 1244590075Sobrien (make_thunk): Call mangle_thunk for new ABI. 1244690075Sobrien * operators.def: Correct new ABI manglings for the `%' operator. 1244790075Sobrien Add `::' operator. 1244890075Sobrien * pt.c (build_template_decl): Copy DECL_OVERLOADED_OPERATOR_P and 1244990075Sobrien DECL_ASSIGNMENT_OPERATOR_P to the TEMPLATE_DECL. 1245090075Sobrien (lookup_template_class): Call mangle_decl for new ABI. 1245190075Sobrien (get_mostly_instantiated_function_type): New function. 1245290075Sobrien (set_mangled_name_for_template_decl): Use it. 1245390075Sobrien (tsubst_decl): Use set_mangled_name_for_decl for destructors with 1245490075Sobrien the new ABI. Use mangle_conv_op_name_for_type for instantiated 1245590075Sobrien conversion op names. 1245690075Sobrien * rtti.c (tinfo_name): Call mangle_type_string for new ABI. 1245790075Sobrien (get_tinfo_decl): Call mangle_typeinfo_for_type for new ABI. 1245890075Sobrien (tinfo_base_init): Likewise. Mangle typeinfo string name with 1245990075Sobrien mangle_typeinfo_string_for_type. 1246018334Speter 1246190075Sobrien2000-06-03 Mark Mitchell <mark@codesourcery.com> 1246218334Speter 1246390075Sobrien * cp-tree.h (TMPL_ARGS_LEVEL): Clarify comment. 1246490075Sobrien (INNERMOST_TEMPLATE_ARGS): New macro. 1246590075Sobrien (innermost_args): Remove. 1246690075Sobrien (get_innermost_template_args): New function. 1246790075Sobrien * decl2.c (arg_assoc_class): Use INNERMOST_TEMPLATE_ARGS. 1246890075Sobrien * error.c (dump_function_decl): Be caution when using 1246990075Sobrien most_general_template. 1247090075Sobrien * method.c (build_template_parm_names): Use 1247190075Sobrien INNERMOST_TEMPLATE_ARGS. 1247290075Sobrien * pt.c (add_to_template_args): Tidy comment 1247390075Sobrien (get_innermost_template_args): New function. 1247490075Sobrien (check_explicit_specialization): Clear DECL_INITIAL for a new 1247590075Sobrien specialization. 1247690075Sobrien (process_partial_specialization): Use INNERMOST_TEMPLATE_ARGS. 1247790075Sobrien Tidy. 1247890075Sobrien (push_template_decl): Always register specializations of the most 1247990075Sobrien general template. 1248090075Sobrien (convert_template_argument): Use INNERMOST_TEMPLATE_ARGS. 1248190075Sobrien (coerce_template_parms): Likewise. 1248290075Sobrien (lookup_template_class): Likewise. 1248390075Sobrien (innermost_args): Remove. 1248490075Sobrien (tsubst_decl): Use INNERMOST_TEMPLATE_ARGS. 1248590075Sobrien (tsubst_decl): Handle tricky specializations. Use 1248690075Sobrien get_innermost_template_args. 1248790075Sobrien (instantiate_template): Simplify handling of partial 1248852284Sobrien instantiations. 1248990075Sobrien (get_class_bindings): Use INNERMOST_TEMPLATE_ARGS. 1249090075Sobrien (most_general_template): Reimplement, in a more straightforward 1249190075Sobrien manner. 1249290075Sobrien (regenerate_decl_from_template): Tweak formatting. Use 1249390075Sobrien TMPL_ARGS_DEPTH for clarity. 1249490075Sobrien (set_mangled_name_for_template_decl): Use INNERMOST_ARGS. 1249518334Speter 1249690075Sobrien * dump.c (dequeue_and_dump): Dump information about thunks. 1249718334Speter 1249890075Sobrien2000-06-01 Richard Henderson <rth@cygnus.com> 1249918334Speter 1250090075Sobrien * decl.c (init_decl_processing): Set lang_get_alias_set first thing. 1250118334Speter 1250290075Sobrien2000-06-01 Richard Henderson <rth@cygnus.com> 1250318334Speter 1250490075Sobrien * decl2.c (unsupported_options): Fix typo, make const. 1250590075Sobrien (lang_decode_option): Fix bsearch argument order. 1250618334Speter 1250790075Sobrien2000-06-01 Mark Mitchell <mark@codesourcery.com> 1250818334Speter 1250990075Sobrien * init.c (resolve_offset_ref): Remove check for TREE_ADDRESSABLE 1251090075Sobrien on FIELD_DECLs. 1251118334Speter 1251290075SobrienWed May 31 14:09:00 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 1251318334Speter 1251490075Sobrien * cp-tree.h (c_get_alias_set): Deleted. 1251590075Sobrien * Makefile.in (decl.o): Include ../expr.h. 1251690075Sobrien * decl.c (expr.h): Include. 1251790075Sobrien (init_decl_processing): Call record_component_aliases for arrays. 1251890075Sobrien (grokdeclarator): Likewise. 1251990075Sobrien Set TREE_ADDRESSABLE for fields that aren't bitfields. 1252090075Sobrien * tree.c (build_cplus_array_type_1): Call record_component_aliases. 1252118334Speter 1252290075Sobrien2000-05-31 Mark Mitchell <mark@codesourcery.com> 1252318334Speter 1252490075Sobrien Remove guiding declaration support. 1252590075Sobrien * cp/cp-tree.h (flag_dump_translation_unit): Make it const. 1252690075Sobrien (flag_guiding_decls): Remove. 1252790075Sobrien * call.c (build_user_type_conversion_1): Remove support for 1252890075Sobrien guiding decls. 1252950397Sobrien (build_new_function_call): Likewise. 1253050397Sobrien (build_new_op): Likewise. 1253150397Sobrien (build_new_method_call): Likewise. 1253290075Sobrien * decl.c (start_function): Likewise. 1253390075Sobrien * friend.c (is_friend): Likewise. 1253490075Sobrien (do_friend): Likewise. 1253590075Sobrien * decl2.c ((flag_dump_translation_unit): Make it const. 1253690075Sobrien (flag_guiding_decls): Remove. 1253790075Sobrien (unsupported_options): New variable 1253890075Sobrien (compare_options): New function. 1253990075Sobrien (lang_decode_option): Use them. 1254052284Sobrien 1254190075Sobrien * decl.c (build_cp_library_fn): Set DECL_CONTEXT. 1254252284Sobrien 1254390075Sobrien * method.c (mangle_expression): Adjust test for legal expression 1254452284Sobrien operators. 1254518334Speter 1254690075Sobrien * pt.c (instantiate_decl): Save and restore the local 1254790075Sobrien specializations list. 1254818334Speter 1254990075Sobrien2000-05-30 Jason Merrill <jason@decepticon.cygnus.com> 1255052284Sobrien 1255190075Sobrien * decl.c (grok_reference_init): Pass LOOKUP_ONLYCONVERTING. 1255218334Speter 1255390075Sobrien2000-05-30 Mark Mitchell <mark@codesourcery.com> 1255418334Speter 1255590075Sobrien * call.c (add_template_candidate_real): Handle member template 1255690075Sobrien constructors for classes with virtual bases. 1255790075Sobrien (build_user_type_conversion_1): Use in_charge_arg_for_name. 1255890075Sobrien (build_new_method_call): Use DECL_NONSTATIC_MEMBER_FUNCTION_P. 1255918334Speter 1256090075Sobrien * ir.texi: Update thunk documentation. 1256118334Speter 1256290075Sobrien * call.c (joust): Fix handling of overloaded builtin operators. 1256318334Speter 1256490075Sobrien2000-05-30 Zack Weinberg <zack@wolery.cumb.org> 1256518334Speter 1256690075Sobrien * cp-tree.h (DECL_ANTICIPATED): New macro. 1256790075Sobrien Document new use of DECL_LANG_FLAG_7. 1256890075Sobrien * decl.c (builtin_function): Set DECL_ANTICIPATED on builtins 1256990075Sobrien in the user namespace. 1257090075Sobrien * lex.c (do_identifier): If the identifier's declaration has 1257190075Sobrien DECL_ANTICIPATED on, it has not yet been declared. But do not 1257290075Sobrien replace it with an ordinary implicit declaration. 1257318334Speter 1257490075Sobrien * tinfo2.cc: Include stdlib.h. 1257518334Speter 1257690075Sobrien2000-05-29 Mark Mitchell <mark@codesourcery.com> 1257718334Speter 1257890075Sobrien * cp-tree.h (CLASSTYPE_ALIGN_UNIT): New macro. 1257990075Sobrien * class.c (layout_empty_base): Use CLASSTYPE_ALIGN_UNIT, not 1258090075Sobrien CLASSTYPE_ALIGN. 1258118334Speter 1258290075Sobrien2000-05-28 Gabriel Dos Reis <gdr@codesourcery.com> 1258318334Speter 1258490075Sobrien * decl2.c (lang_decode_option): Use skip_leading_substring instead 1258590075Sobrien of plain strncmp. 1258618334Speter 1258790075Sobrien2000-05-28 Alexandre Oliva <aoliva@cygnus.com> 1258818334Speter 1258990075Sobrien * operators.def (<?): Duplicated, should have been... 1259090075Sobrien (>?): this. Fixed. 1259118334Speter 1259290075Sobrien2000-05-27 Alex Samuel <samuel@codesourcery.com> 1259390075Sobrien Mark Mitchell <mark@codesourcery.com> 1259418334Speter 1259590075Sobrien * cp-tree.h (ansi_opname): Make it a macro. 1259690075Sobrien (ansi_assopname): Likewise. 1259790075Sobrien (struct lang_decl_flags): Add assignment_operator_p. 1259890075Sobrien (struct lang_decl): Add operator_code. 1259990075Sobrien (DECL_VTT_PARM): Adjust. 1260090075Sobrien (DECL_OVERLOADED_OPERATOR_P): Return the operator_code for an 1260190075Sobrien overloaded operator. 1260290075Sobrien (SET_OVERLOADED_OPERATOR_CODE): New macro. 1260390075Sobrien (DECL_ASSIGNMENT_OPERATOR_P): New macro. 1260490075Sobrien (DECL_ARRAY_DELETE_OPERATOR_P): Adjust. 1260590075Sobrien (opname_tab): Remove. 1260690075Sobrien (assignop_tab): Likewise. 1260790075Sobrien (operator_name_info_t): New type. 1260890075Sobrien (operator_name_info): New variable. 1260990075Sobrien (assignment_operator_name_info): Likewise. 1261090075Sobrien (build_cp_library_fn): Remove declaration. 1261190075Sobrien (push_cp_library_fn): Likewise. 1261290075Sobrien (operator_name_string): Likewise. 1261390075Sobrien (build_decl_overload): Likewise. 1261490075Sobrien * call.c (print_z_candidates): Simplify. 1261590075Sobrien (build_object_call): Adjust usage of ansi_opname. Use 1261690075Sobrien DECL_OVERLOADED_OPERATOR_P. 1261790075Sobrien (op_error): Adjust operator name lookup. 1261890075Sobrien (build_conditional_expr): Adjust usage of ansi_opname. 1261950397Sobrien (build_new_op): Likewise. 1262090075Sobrien (build_op_delete_call): Likewise. 1262190075Sobrien (build_over_call): Likewise. 1262290075Sobrien (joust): Use DECL_OVERLOADED_OPERATOR_P. 1262390075Sobrien * decl.c (duplicate_decls): Copy operator_code. 1262490075Sobrien (init_decl_processing): Adjust parameters to push_cp_library_fn. 1262590075Sobrien (builtin_function): Adjust parameters to build_library_fn_1. 1262690075Sobrien (build_library_fn_1): Accept an overloaded operator code. 1262790075Sobrien (build_library_fn): Pass ERROR_MARK. 1262890075Sobrien (build_cp_library_fn): Accept an overloaded operator code. 1262990075Sobrien (push_cp_library_fn): Likewise. 1263090075Sobrien (grokfndecl): Tweak. 1263190075Sobrien (grokdeclarator): Simplify code to compute names of overloaded 1263290075Sobrien operators. Adjust use of ansi_opname. 1263390075Sobrien (ambi_op_p): Work on tree_codes, not identifiers. 1263490075Sobrien (unary_op_p): Likewise. 1263590075Sobrien (grok_op_properties): Likewise. 1263690075Sobrien (start_function): Use DECL_OVERLOADED_OPERATOR_P. 1263790075Sobrien (lang_mark_tree): Don't try to mark the operator_code. 1263890075Sobrien * decl2.c (grok_function_init): Use DECL_OVERLOADED_OPERATOR_P. 1263990075Sobrien * error.c (dump_decl): Remove special handling for operator 1264090075Sobrien names. 1264190075Sobrien (dump_function_name): Likewise. 1264290075Sobrien (dump_expr): Adjust name lookup of operators. 1264390075Sobrien (op_to_string): Simplify. 1264490075Sobrien (assop_to_string): Likewise. 1264590075Sobrien * init.c (build_new_1): Adjust use of ansi_opname. 1264690075Sobrien * lex.c (opname_tab): Remove. 1264790075Sobrien (assignop_tab): Likewise. 1264890075Sobrien (ansi_opname): Likewise. 1264990075Sobrien (ansi_assopname): Likewise. 1265090075Sobrien (operator_name_string): Likewise. 1265190075Sobrien (reinit_lang_specific): Likewise. 1265290075Sobrien (operator_name_info): New variable. 1265390075Sobrien (assignment_operator_name_info): Likewise. 1265490075Sobrien (init_operators): New function. 1265590075Sobrien (init_parse): Use it. 1265690075Sobrien (do_identifier): Adjust use of ansi_opname. 1265790075Sobrien * method.c (mangle_expression): Don't use ansi_opname for 1265890075Sobrien mangling. 1265990075Sobrien (build_decl_overload_real): Use DECL_OVERLOADED_OPERATOR_P. 1266090075Sobrien (build_decl_overload): Remove. 1266190075Sobrien (build_typename_overload): Use OPERATOR_TYPENAME_FORMAT directly. 1266290075Sobrien (do_build_assign_ref): Adjust use of ansi_opname. 1266390075Sobrien (synthesize_method): Likewise. 1266490075Sobrien (implicitly_declare_fn): Likewise. 1266590075Sobrien * operators.def: New file. 1266690075Sobrien * parse.y (operator): Adjust use of ansi_opname. 1266790075Sobrien * pt.c (tsubst_decl): Use IDENTIFIER_OPNAME_P. 1266890075Sobrien (set_mangled_name_for_template_decl): Don't play games with 1266990075Sobrien current_namespace. 1267090075Sobrien (special_function_p): Adjust use of ansi_opname. 1267190075Sobrien * typeck.c (check_return_expr): Likewise. 1267290075Sobrien * Make-lang.in (cc1plus): Depend on operators.def. 1267390075Sobrien * Makefile.in (lex.o): Likewise. 1267490075Sobrien (decl.o): Likewise. 1267518334Speter 1267690075Sobrien2000-05-27 Zack Weinberg <zack@wolery.cumb.org> 1267718334Speter 1267890075Sobrien * Make-lang.in (cplib2.ready): Eradicate. 1267918334Speter 1268090075SobrienSat May 27 11:25:46 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 1268118334Speter 1268290075Sobrien * method.c (mangle_expression): Use TREE_CODE_LENGTH. 1268390075Sobrien * tree.c (break_out_calls, build_min_nt): Use TREE_CODE_LENGTH. 1268490075Sobrien (built_min, cp_tree_equal): Likewise. 1268518334Speter 1268690075Sobrien2000-05-26 Mark Mitchell <mark@codesourcery.com> 1268718334Speter 1268890075Sobrien * class.c (layout_nonempty_base_or_field): Replace 1268990075Sobrien `record_layout_info' with `record_layout_info_s'. 1269018334Speter 1269190075Sobrien2000-05-26 Jason Merrill <jason@casey.soma.redhat.com> 1269218334Speter 1269390075Sobrien Fix goto checking. 1269490075Sobrien * cp-tree.h (struct language_function): x_named_labels is now 1269590075Sobrien a struct named_label_list*. 1269690075Sobrien * decl.c (struct named_label_use_list): Renamed from... 1269790075Sobrien (struct named_label_list): ...this. New struct. 1269890075Sobrien (push_binding_level): Don't set eh_region. 1269990075Sobrien (note_level_for_eh): New fn. 1270090075Sobrien (pop_label): Take label and old value directly. 1270190075Sobrien (pop_labels): Adjust for new named_labels format. 1270290075Sobrien (lookup_label): Likewise. 1270390075Sobrien (poplevel): Note characteristics of a binding level containing a 1270490075Sobrien named label. Mess with named label lists earlier. 1270590075Sobrien (mark_named_label_lists): New fn. 1270690075Sobrien (mark_lang_function): Call it. 1270790075Sobrien (use_label): New fn, split out from... 1270890075Sobrien (make_label_decl): ...here. Don't call it. 1270990075Sobrien (decl_jump_unsafe, check_previous_goto, check_previous_goto_1, 1271090075Sobrien check_previous_gotos): New fns, split out from... 1271190075Sobrien (define_label): ...here. 1271290075Sobrien (check_switch_goto): New fn. 1271390075Sobrien (define_case_label): Call it. 1271490075Sobrien (check_goto): New fn. 1271590075Sobrien * semantics.c (finish_goto_stmt): Call it and use_label. 1271690075Sobrien (begin_compound_stmt): If we're a try block, call note_level_for_eh. 1271790075Sobrien (expand_stmt): Never pass 1 as DONT_JUMP_IN to expand_end_bindings. 1271818334Speter 1271990075Sobrien2000-05-26 Mark Mitchell <mark@codesourcery.com> 1272018334Speter 1272190075Sobrien * class.c (build_vtable_entry_ref): Correct usage of 1272290075Sobrien get_vtbl_decl_for_binfo. 1272318334Speter 1272490075Sobrien * decl2.c (grokclassfn): Set DECL_LANGUAGE here. 1272590075Sobrien * method.c (implicitly_declare_fn): Not here. 1272618334Speter 1272790075Sobrien2000-05-26 Nathan Sidwell <nathan@codesourcery.com> 1272818334Speter 1272990075Sobrien * cp-tree.h (CPTI_PTMD_DESC_TYPE): Rename to ... 1273090075Sobrien (CPTI_PTMD_DESC_TYPE): ... here. 1273190075Sobrien (ptmd_desc_type_node): Rename to ... 1273290075Sobrien (ptm_desc_type_node): ... here. 1273390075Sobrien * decl.c: Likewise. 1273490075Sobrien * rtti.c (ptmd_initializer): Rename to ... 1273590075Sobrien (ptm_initializer): ... here. 1273690075Sobrien (sythesize_tinfo_var): Adjust. Deal with pointer to member 1273790075Sobrien function. 1273890075Sobrien (create_tinfo_types): Adjust. 1273918334Speter 1274090075Sobrien2000-05-25 Mark Mitchell <mark@codesourcery.com> 1274118334Speter 1274290075Sobrien Finish implementation of VTTs. 1274390075Sobrien * cp-tree.h (cp_tree_index): Add CPTI_VTT_PARM_TYPE and 1274490075Sobrien CPTI_VTT_PARM_IDENTIFIER. 1274590075Sobrien (vtt_parm_identifier): New macro. 1274690075Sobrien (vtt_parm_type): Likewise. 1274790075Sobrien (BINFO_SUBVTT_INDEX): Likewise. 1274890075Sobrien (BINFO_VPTR_INDEX): Likewise. 1274990075Sobrien (struct lang_decl): Add vtt_parm. 1275090075Sobrien (DECL_VTT_PARM): New macro. 1275190075Sobrien (DECL_USE_VTT_PARM): Likewise. 1275290075Sobrien (DECL_NEEDS_VTT_PARM_P): Likewise. 1275390075Sobrien (get_vtt_name): Declare. 1275490075Sobrien (build_artificial_parm): Likewise. 1275590075Sobrien (fixup_all_virtual_upcast_offsets): Likewise. 1275690075Sobrien (expand_indirect_vtbls_init): Remove. 1275790075Sobrien * call.c (build_new_method_call): Pass the vtt to subobject 1275890075Sobrien constructors and destructors. 1275990075Sobrien * class.c (get_vtt_name): Give it external linkage. 1276090075Sobrien (build_clone): Handle the magic VTT parameters for clones. 1276190075Sobrien (clone_function_decl): Fix typo in comment. 1276290075Sobrien (build_vtt): Keep track of the indices in the VTTs where various 1276390075Sobrien entities are stored. 1276490075Sobrien (build_vtt_inits): Likewise. 1276590075Sobrien (dfs_build_vtt_inits): Likewise. 1276690075Sobrien (build_ctor_vtbl_group): Tweak type of construction vtables. 1276790075Sobrien (dfs_accumulate_vtbl_inits): Build vtables for all bases, even 1276890075Sobrien primary bases, when building construction vtables. 1276990075Sobrien * decl.c (duplicate_decls): Handle DECL_VTT_PARM. 1277090075Sobrien (initialize_predefined_identifiers): Add vtt_parm_identifier. 1277190075Sobrien (init_decl_processing): Initialize vtt_parm_type. 1277290075Sobrien (grokfndecl): Use DECL_OVERLOADED_OPERATOR_P. 1277390075Sobrien (lang_mark_tree): Make vtt_parm. 1277490075Sobrien * decl2.c (build_artificial_parm): New function. 1277590075Sobrien (maybe_retrofit_in_chrg): Use it. Add VTT parameters. 1277690075Sobrien (grokclassfn): Use build_artificial_parm. 1277790075Sobrien * init.c (initialize_vtbl_ptrs): Call 1277890075Sobrien fixup_all_virtual_upcast_offsets directly. 1277990075Sobrien (perform_member_init): Use the complete subobject destructor for 1278090075Sobrien member cleanups. 1278190075Sobrien (build_vtbl_address): New function. 1278290075Sobrien (expand_virtual_init): Handle VTTs. 1278390075Sobrien * optimize (maybe_clone_body): Likewise. 1278490075Sobrien * search.c (fixup_all_virtual_upcast_offsets): Give it external 1278590075Sobrien linkage. 1278690075Sobrien (expand_indirect_vtbls_init): Remove. 1278790075Sobrien * semantics.c (setup_vtbl_ptr): Fix typos in comment. 1278890075Sobrien * tree.c (make_binfo): Make them bigger. 1278918334Speter 1279090075Sobrien2000-05-25 Nathan Sidwell <nathan@codesourcery.com> 1279118334Speter 1279290075Sobrien * inc/cxxabi.h (__pbase_type_info): Define, based on 1279390075Sobrien __pointer_type_info. 1279490075Sobrien (__pointer_type_info): Derive from __pbase_type_info. Adjust. 1279590075Sobrien (__pointer_to_member_type_info): Likewise. 1279690075Sobrien * tinfo2.cc (__pbase_type_info::~__pbase_type_info): Implement. 1279790075Sobrien (__pointer_to_member_type_info::__is_pointer_p): Remove. 1279890075Sobrien (__pointer_type_info::__do_catch): Rename to ... 1279990075Sobrien (__pbase_type_info::__do_catch): ... here. Adjust. 1280090075Sobrien (__pbase_type_info::__pointer_catch): Implement. 1280190075Sobrien (__pointer_type_info::__pointer_catch): Adjust. 1280290075Sobrien (__pointer_to_member_type_info::__pointer_catch): Adjust. 1280318334Speter 1280490075Sobrien2000-05-25 Nathan Sidwell <nathan@codesourcery.com> 1280518334Speter 1280690075Sobrien * tinfo.h (__user_type_info::contained_virtual_p): New 1280790075Sobrien predicate. 1280890075Sobrien * tinfo.cc (__user_type_info::do_upcast): Fix bug with diamond 1280990075Sobrien shaped hierarchy. 1281090075Sobrien (__vmi_class_type_info::__do_upcast): Fix bug with NULL pointer to 1281190075Sobrien diamond shaped hierarchy. Add early out for mixed diamond and 1281290075Sobrien duplicate shaped hierarchy. 1281318334Speter 1281490075Sobrien2000-05-24 Mark Mitchell <mark@codesourcery.com> 1281518334Speter 1281690075Sobrien * cp-tree.h (build_delete): Change prototype. 1281790075Sobrien (build_vec_delete): Likewise. 1281890075Sobrien * call.c (build_scoped_method_call): Use special_function_kind 1281990075Sobrien values to indicate the kind of destruction to be done. 1282090075Sobrien (build_method_call): Likewise. 1282190075Sobrien * decl.c (finish_destructor_body): Likewise. 1282290075Sobrien (maybe_build_cleanup_1): Likewise. Rename to ... 1282390075Sobrien (maybe_build_cleanup): ... this. 1282490075Sobrien * decl2.c (delete_sanity): Use special_function_kind 1282590075Sobrien values to indicate the kind of destruction to be done. 1282690075Sobrien (build_cleanup): Likewise. 1282790075Sobrien * init.c (perform_member_init): Likewise. 1282890075Sobrien (build_vec_delete_1): Likewise. 1282990075Sobrien (build_dtor_call): Simplify. 1283090075Sobrien (build_delete): Use special_function_kind 1283190075Sobrien values to indicate the kind of destruction to be done. 1283290075Sobrien (build_vbase_delete): Likewise. 1283390075Sobrien (build_vec_delete): Likewise. 1283418334Speter 1283590075Sobrien * init.c (sort_member_init): Fix typo in error message generation 1283690075Sobrien code. 1283718334Speter 1283890075SobrienMon May 15 11:46:29 2000 Donald Lindsay <dlindsay@cygnus.com> 1283918334Speter 1284090075Sobrien * semantics.c (begin_class_definition): make the packed 1284190075Sobrien attribute be sensitive to the "-fpack-struct" command line flag 1284218334Speter 1284390075Sobrien2000-05-24 Nathan Sidwell <nathan@codesourcery.com> 1284418334Speter 1284590075Sobrien Update new-abi upcast algorithm. 1284690075Sobrien * inc/cxxabi.h (__class_type_info::__do_upcast): Change 1284790075Sobrien prototype and meaning of return value. 1284890075Sobrien (__si_class_type_info::__do_upcast): Likewise. 1284990075Sobrien (__vmi_class_type_info::__do_upcast): Likewise. 1285090075Sobrien * tinfo.cc (__class_type_info::__upcast_result): Replace 1285190075Sobrien whole2dst with part2dst. Adjust ctor. 1285290075Sobrien (__class_type_info::__do_upcast): Adjust call of worker function. 1285390075Sobrien (__class_type_info::__do_upcast): Adjust. 1285490075Sobrien (__si_class_type_info::__do_upcast): Adjust. Use parent's 1285590075Sobrien __do_upcast. 1285690075Sobrien (__vmi_class_type_info::__do_upcast): Likewise. Fix private 1285790075Sobrien virtual base in diamond hierarchy bug. 1285818334Speter 1285990075Sobrien2000-05-23 Mark Mitchell <mark@codesourcery.com> 1286018334Speter 1286190075Sobrien * cp-tree.h (lang_decl_flags): Rename mutable_flag to uninlinable 1286290075Sobrien and bitfield to tinfo_fn_p. 1286390075Sobrien (DECL_TINFO_FN_P): Adjust. 1286490075Sobrien (SET_DECL_TINFO_FN_P): Likewise. 1286590075Sobrien (DECL_MUTABLE_P): Likewise. 1286690075Sobrien (DECL_C_BIT_FIELD): Likewise. 1286790075Sobrien (SET_DECL_C_BIT_FIELD): Likewise. 1286890075Sobrien (CLEAR_DECL_C_BIT_FIELD): Likewise. 1286990075Sobrien (DECL_UNINLINABLE): Likewise. 1287090075Sobrien * class.c (alter_access): Call retrofit_lang_decl if ncessary. 1287190075Sobrien (handle_using_decl): Remove assertion. 1287290075Sobrien (build_vtbl_or_vbase_field): Use build_decl, not build_lang_decl, 1287390075Sobrien to build FIELD_DECLs. 1287490075Sobrien (build_base_field): Likewise. 1287590075Sobrien (layout_class_type): Likewise. 1287690075Sobrien * decl.c (init_decl_processing): Likewise. 1287790075Sobrien (build_ptrmemfunc_type): Likewise. 1287890075Sobrien (grokdeclarator): Likewise. 1287990075Sobrien * decl2.c (grok_x_components): Likewise. 1288090075Sobrien * except.c (call_eh_info): Likewise. 1288190075Sobrien * init.c (init_init_processing): Likewise. 1288290075Sobrien * rtti.c (expand_class_desc): Likewise. 1288390075Sobrien (create_pseudo_type_info): Likewise. 1288490075Sobrien (get_vmi_pseudo_type_info): Likewise. 1288590075Sobrien (create_tinfo_types): Likewise. 1288690075Sobrien * ptree.c (print_lang_decl): Adjust. 1288790075Sobrien * typeck.c (build_component_ref): Don't check DECL_LANG_SPECIFIC 1288890075Sobrien before checking DECL_MUTABLE_P. 1288918334Speter 1289090075Sobrien * decl2.c (maybe_retrofit_in_chrg): Don't create in-charge 1289190075Sobrien parameters for template functions. 1289290075Sobrien * pt.c (tsubst_decl): Make sure we call maybe_retrofit_in_chrg for 1289390075Sobrien destructors as well as constructors. 1289418334Speter 1289590075Sobrien2000-05-22 Mark Mitchell <mark@codesourcery.com> 1289618334Speter 1289790075Sobrien * class.c (build_ctor_vtbl_group): Set inits. 1289890075Sobrien * optimize.c (maybe_clone_body): Set DECL_INLINE and 1289990075Sobrien DECL_THIS_INLINE appropriately for clones. 1290018334Speter 1290190075Sobrien * cp-tree.h (IDENTIFIER_TYPENAME_P): Use a flag, not strncmp. 1290290075Sobrien (DECL_CONV_FN_P): Simplify. 1290390075Sobrien (DECL_OPERATOR): Remove. 1290490075Sobrien (language_to_string): Declare. 1290590075Sobrien * decl.c (duplicate_decls): Fix typo in comment. 1290690075Sobrien (grokdeclarator): Adjust use of IDENTIFIER_TYPENAME_P. 1290790075Sobrien (grok_op_properties): Use DECL_CONV_FN_P instead of 1290890075Sobrien IDENTIFIER_TYPENAME_P. 1290990075Sobrien * dump.c (dequeue_and_dump): Dump the language linkage of 1291090075Sobrien declarations. 1291190075Sobrien * error.c (language_to_string): Give it external linkage. 1291290075Sobrien * method.c (build_typename_overload): Set IDENTIFIER_TYPENAME_P. 1291390075Sobrien (implicitly_declare_fn): Set DECL_LANGUAGE. 1291490075Sobrien * pt.c (check_explicit_specialization): Use DECL_CONV_FN_P, not 1291590075Sobrien IDENTIFIER_TYPENAME_P. 1291690075Sobrien (tsubst_decl): Likewise. 1291790075Sobrien (tsubst_copy): Adjust use of IDENTIFIER_TYPENAME_P. 1291890075Sobrien * semantics.c (finish_member_declaration): Don't mark members of 1291990075Sobrien classes declared in an extern "C" region as extern "C". 1292018334Speter 1292190075Sobrien2000-05-22 Martin v. L�wis <loewis@informatik.hu-berlin.de> 1292218334Speter 1292390075Sobrien * decl2.c (qualified_lookup_using_namespace): Look through 1292490075Sobrien namespace aliases. 1292518334Speter 1292690075Sobrien * decl.c (push_using_decl): Return the old decl on namespace level. 1292718334Speter 1292890075Sobrien2000-05-21 Mark Mitchell <mark@codesourcery.com> 1292918334Speter 1293090075Sobrien * cp-tree.h (SET_BINFO_NEW_VTABLE_MARKED): Add sanity checks. 1293190075Sobrien (VTT_NAME_PREFIX): New macro. 1293290075Sobrien (CTOR_VTBL_NAME_PREFIX): Likewise. 1293390075Sobrien (get_ctor_vtbl_name): New function. 1293490075Sobrien * class.c (get_vtable_name): Simplify. 1293590075Sobrien (get_vtt_name): New function. 1293690075Sobrien (get_vtable_decl): Don't set IDENTIFIER_GLOBAL_VALUE. 1293790075Sobrien (dfs_mark_primary_bases): Update the CLASSTYPE_VBASECLASSES list 1293890075Sobrien when a virtual base becomes primary. 1293990075Sobrien (finish_struct_1): Set CLASSTYPE_VFIELDS a little earlier. Build 1294090075Sobrien VTTs. 1294190075Sobrien (finish_vtbls): Adjust calls to accumulate_vtbl_inits to pass in 1294290075Sobrien additional parameters. 1294390075Sobrien (dfs_finish_vtbls): Don't clear BINFO_NEW_VTABLE_MARKED. 1294490075Sobrien (initialize_array): New function. 1294590075Sobrien (build_vtt): Likewise. 1294690075Sobrien (build_vtt_inits): Likewise. 1294790075Sobrien (dfs_build_vtt_inits): Likewise. 1294890075Sobrien (dfs_fixup_binfo_vtbls): Likewise. 1294990075Sobrien (build_ctor_vtbl_group): Likewise. 1295090075Sobrien (initialize_vtable): Use initialize_array. 1295190075Sobrien (accumulate_vtbl_inits): Reimplement to handle construction 1295290075Sobrien vtables. 1295390075Sobrien (dfs_accumulate_vtbl_inits): Likewise. 1295490075Sobrien (bulid_vtbl_initializer): Adjust parameter name. 1295590075Sobrien * method.c (build_typename_overload): Remove #if 0'd code. 1295690075Sobrien (get_ctor_vtbl_name): New function. 1295790075Sobrien * search.c (dfs_walk_real): Use BINFO_N_BASETYPES. 1295890075Sobrien (init_vbase_pointers): Don't mess with the TREE_CHAIN of a binfo. 1295918334Speter 1296090075Sobrien * cp-tree.h (struct lang_type): Remove search_slot. 1296190075Sobrien (CLASSTYPE_SEARCH_SLOT): Remove. 1296290075Sobrien (emit_base_init): Change prototype. 1296390075Sobrien (initialize_vtbl_ptrs): Likewise. 1296490075Sobrien (expand_indirect_vtbls_init): Likewise. 1296590075Sobrien (clear_search_slots): Remove. 1296690075Sobrien * decl.c (lang_mark_tree): Don't mark search_slot. 1296790075Sobrien * init.c (initialize_vtbl_ptrs): Simplify. 1296850397Sobrien (emit_base_init): Likewise. 1296990075Sobrien * search.c (struct vbase_info): Document decl_ptr. 1297090075Sobrien (convert_pointer_to_single_level): Remove. 1297190075Sobrien (dfs_find_vbases): Remove. 1297290075Sobrien (dfs_init_base_pointers): Simplify. 1297390075Sobrien (dfs_clear_vbase_slots): Remove. 1297490075Sobrien (dfs_vtable_path_unmark): New function. 1297590075Sobrien (init_vbase_pointers): Simplify. 1297690075Sobrien (expand_upcast_fixups): Don't rely on CLASSTYPE_SEARCH_SLOT. 1297790075Sobrien (expand_indirect_vtbls_init): Simplify. Don't call 1297890075Sobrien mark_all_temps_used. 1297990075Sobrien * semantics.c (setup_vtbl_ptr): Adjust calls to emit_base_init and 1298090075Sobrien initialize_vtbl_ptrs. 1298152284Sobrien 1298290075Sobrien2000-05-20 Zack Weinberg <zack@wolery.cumb.org> 1298318334Speter 1298490075Sobrien * except.c: Add static prototypes. 1298518334Speter 1298690075Sobrien2000-05-20 H.J. Lu <hjl@gnu.org> 1298752284Sobrien 1298890075Sobrien * Make-lang.in (cplib2.ready): Also depend on cc1plus$(exeext). 1298918334Speter 1299090075Sobrien2000-05-19 Mark Mitchell <mark@codesourcery.com> 1299118334Speter 1299290075Sobrien Don't create a separate copy of virtual bases for the 1299390075Sobrien CLASSTYPE_VBASECLASSES list. 1299490075Sobrien * cp-tree.h (CLASSTYPE_VBASECLASSES): Change documentation. 1299590075Sobrien (BINFO_FOR_VBASE): Remove. 1299690075Sobrien (CANONICAL_BINFO): Adjust. 1299790075Sobrien (binfo_for_vbase): New function. 1299890075Sobrien * class.c (build_vbase_pointer_fields): Use binfo_for_vbase 1299990075Sobrien instead of BINFO_FOR_VBASE. 1300090075Sobrien (build_vbase_pointer): Likewise. 1300190075Sobrien (build_secondary_vtable): Likewise. 1300290075Sobrien (dfs_mark_primary_bases): Likewise. 1300390075Sobrien (mark_primary_bases): Likewise. 1300490075Sobrien (layout_nonempty_base_or_field): Likewise. 1300590075Sobrien (dfs_set_offset_for_shared_vbases): Likewise. 1300690075Sobrien (dfs_set_offset_for_unshared_vbases): Likewise. 1300790075Sobrien (layout_virtual_bases): Likewise. Adjust for changes to the 1300890075Sobrien CLASSTYPE_VBASECLASSES list. 1300990075Sobrien (dump_class_hierarchy_r): Use binfo_for_vbase 1301090075Sobrien instead of BINFO_FOR_VBASE. 1301190075Sobrien (dump_class_hierarchy): Likewise. 1301290075Sobrien (finish_vtbls): Likewise. 1301390075Sobrien (build_vtbl_initializer): Adjust for changes to the 1301490075Sobrien CLASSTYPE_VBASECLASSES list. 1301590075Sobrien (build_vbase_offset_vtbl_entries): Use binfo_for_vbase. 1301690075Sobrien * decl.c (finish_destructor_body): Adjust for changes to the 1301790075Sobrien CLASSTYPE_VBASECLASSES list. 1301890075Sobrien * init.c (sort_base_init): Use binfo_for_vbase. 1301990075Sobrien (construct_virtual_bases): Adjust for changes to the 1302090075Sobrien CLASSTYPE_VBASECLASSES list. 1302190075Sobrien (expand_member_init): Use binfo_for_vbase. 1302290075Sobrien (build_vbase_delete): Adjust for changes to the 1302390075Sobrien CLASSTYPE_VBASECLASSES list. 1302490075Sobrien * method.c (do_build_copy_constructor): Likewise. 1302590075Sobrien * rtti.c (get_base_offset): Use binfo_for_vbase. 1302690075Sobrien (expand_class_desc): Remove #if 0'd code. 1302790075Sobrien * search.c (struct vbase_info): Remove vbase_types. 1302890075Sobrien (get_base_distance): Use binfo_for_vbase. 1302990075Sobrien (lookup_field_queue_p): Use CANONICAL_BINFO. 1303090075Sobrien (get_shared_vbase_if_not_primary): Use binfo_for_vbase. 1303190075Sobrien (get_pure_virtuals): Adjust for changes to the 1303290075Sobrien CLASSTYPE_VBASECLASSES list. 1303390075Sobrien (dfs_find_vbases): Use binfo_for_vbase. 1303490075Sobrien (dfs_init_vbase_pointers): Likewise. 1303590075Sobrien (init_vbase_pointers): Don't initialize vi.vbase_types. 1303690075Sobrien (virtual_context): Use binfo_for_vbase. 1303790075Sobrien (fixup_all_virtual_upcast_offsets): Adjust for changes to the 1303890075Sobrien CLASSTYPE_VBASECLASSES list. 1303990075Sobrien (expand_indirect_vtbls_init): Simplify. 1304090075Sobrien (dfs_get_vbase_types): Don't replicate virtual bases. 1304190075Sobrien (find_vbase_instance): Use binfo_for_vbase. 1304290075Sobrien (binfo_for_vbase): New function. 1304390075Sobrien * typeck.c (get_delta_difference): Use binfo_for_vbase. 1304418334Speter 1304590075Sobrien2000-05-17 Mark Mitchell <mark@codesourcery.com> 1304618334Speter 1304790075Sobrien * decl2.c (finish_anon_union): Generalize error messages to handle 1304890075Sobrien anonymous structures. 1304990075Sobrien * init.c (perform_member_init): Remove `name' parameter. 1305090075Sobrien (build_field_list): New function. 1305190075Sobrien (sort_member_init): Handle anonymous union initialization order 1305290075Sobrien correctly. Check for multiple initializations of the same union. 1305390075Sobrien (emit_base_init): Don't look up fields by name here. 1305490075Sobrien (expand_member_init): Record the result of name lookup for future 1305590075Sobrien reference. 1305690075Sobrien * typeck.c (build_component_ref): Fix formatting. 1305718334Speter 1305890075SobrienWed May 17 17:27:44 2000 Andrew Cagney <cagney@b1.cygnus.com> 1305918334Speter 1306090075Sobrien * decl.c (pop_label): Replace warn_unused with warn_unused_label. 1306190075Sobrien * typeck.c (build_x_compound_expr): Replace warn_unused with 1306290075Sobrien warn_unused_value. 1306318334Speter 1306490075Sobrien * decl2.c (lang_decode_option): Update -Wall unused flags by 1306590075Sobrien calling set_Wunused. 1306618334Speter 1306790075Sobrien2000-05-16 Mark Mitchell <mark@codesourcery.com> 1306818334Speter 1306990075Sobrien * cp-treeh (BINFO_NEW_VTABLE_MARKED): Update documentation. 1307090075Sobrien * init.c (dfs_vtable_path_unmark): Remove. 1307190075Sobrien * search.c (marked_new_vtable_p): Likewise. 1307290075Sobrien (unmarked_new_vtable_p): Likewise. 1307390075Sobrien (dfs_search_slot_nonempty_p): Likewise. 1307490075Sobrien (dfs_mark): Likewise. 1307590075Sobrien (dfs_vtable_path_unmark): Likewise. 1307690075Sobrien (dfs_find_vbases): Don't set BINFO_NEW_VTABLE_MARKED. 1307790075Sobrien (dfs_int_vbase_pointers): Don't clear BINFO_VTABLE_PATH_MARKED. 1307890075Sobrien (dfs_init_vbase_pointers): Remove special-case new ABI code. 1307990075Sobrien (dfs_clear_vbase_slots): Don't clear BINFO_NEW_VTABLE_MARKED. 1308090075Sobrien (init_vbase_pointers): Simplify. 1308190075Sobrien (expand_indirect_vtbls_init): Likewise. 1308218334Speter 1308390075Sobrien * class.c (copy_virtuals): New function. 1308490075Sobrien (build_primary_table): Use it. 1308590075Sobrien (build_secondary_vtable): Likewise. 1308690075Sobrien (modify_vtable_entry): Use NULL_TREE, not integer_zero_node, to 1308790075Sobrien indicate that no vcall offset is required. 1308890075Sobrien (add_virtual_function): Likewise. 1308990075Sobrien (modify_all_vtables): Likewise. 1309090075Sobrien (dfs_finish_vtbls): Adjust call to build_vtbl_initializer. 1309190075Sobrien (dfs_accumulate_vtbl_inits): Likewise. 1309290075Sobrien (build_vtbl_initializer): Make changes to handle construction 1309390075Sobrien vtables. 1309490075Sobrien (dfs_build_vcall_offset_vtbl_entries): Likewise. 1309590075Sobrien (build_rtti_vtbl_entries): Likewise. 1309690075Sobrien (build_vtable_entries): Handle a NULL vcall_index. 1309718334Speter 1309890075Sobrien2000-05-15 Gabriel Dos Reis <gdr@codesourcery.com> 1309918334Speter 1310090075Sobrien * decl2.c (lang_decode_option): Fix thinko. 1310118334Speter 1310290075Sobrien2000-05-14 Jason Merrill <jason@casey.cygnus.com> 1310318334Speter 1310490075Sobrien * except.c (check_handlers): New fn. 1310590075Sobrien * cp-tree.h: Declare it. 1310690075Sobrien * semantics.c (finish_handler_sequence): Call it. 1310790075Sobrien (finish_function_handler_sequence): Likewise. 1310890075Sobrien (finish_handler_parms): Set TREE_TYPE on the handler. 1310990075Sobrien * cp-tree.h (PUBLICLY_UNIQUELY_DERIVED_P): New macro. 1311090075Sobrien * search.c (get_base_distance_recursive): If protect>1, ignore 1311190075Sobrien special access. 1311290075Sobrien (get_base_distance): Don't reduce watch_access. 1311318334Speter 1311490075Sobrien2000-05-13 Gabriel Dos Reis <gdr@codesourcery.com> 1311518334Speter 1311690075Sobrien * lex.c: #include diagnostic.h. 1311790075Sobrien (lang_init_options): Set default prefixing rules. 1311818334Speter 1311990075Sobrien * lang-options.h: Add -fdiagnostics-show-location=. 1312018334Speter 1312190075Sobrien * decl2.c: #include diagnostic.h. 1312290075Sobrien (lang_decode_option): Handle -fdiagnostics-show-location=. 1312318334Speter 1312490075Sobrien2000-05-12 Nathan Sidwell <nathan@codesourcery.com> 1312518334Speter 1312690075Sobrien * tinfo.cc: Revert my 2000-05-08 and 2000-05-07 changes. 1312790075Sobrien * vec.cc: Revert my 2000-05-07 change. 1312818334Speter 1312990075Sobrien2000-05-11 Jason Merrill <jason@casey.cygnus.com> 1313052284Sobrien 1313190075Sobrien * class.c (check_field_decls): Complain about non-static data 1313290075Sobrien members with same name as class in class with constructor. 1313318334Speter 1313490075Sobrien2000-05-10 Jason Merrill <jason@casey.cygnus.com> 1313518334Speter 1313690075Sobrien * decl.c (grokdeclarator): Allow non-static data members with 1313790075Sobrien same name as class. 1313818334Speter 1313990075Sobrien2000-05-09 Zack Weinberg <zack@wolery.cumb.org> 1314018334Speter 1314190075Sobrien * cp-tree.h: Constify tree_srcloc.filename, tinst_level.file, 1314290075Sobrien and pending_inline.filename. Update prototypes. 1314390075Sobrien * decl.c (define_label): Constify filename parameter. 1314490075Sobrien * decl2.c (warn_if_unknown_interface): Constify local char *. 1314590075Sobrien * input.c Constify input_source.filename. Don't declare 1314690075Sobrien input_filename or lineno. Constify filename parameter to feed_input. 1314790075Sobrien * lex.c (init_parse): Constify parameter and return value. 1314890075Sobrien (cp_pragma_interface, cp_pragma_implementation): Constify 1314990075Sobrien filename argument. 1315090075Sobrien (reinit_parse_for_method, reinit_parse_for_block, 1315190075Sobrien reinit_parse_for_expr, feed_defarg, handle_cp_pragma): 1315290075Sobrien Constify local char *. 1315390075Sobrien * pt.c: Don't declare lineno or input_filename. 1315490075Sobrien (print_template_context, tsubst_friend_function, tsubst_decl, 1315590075Sobrien tsubst, instantiate_decl): Constify local char *. 1315690075Sobrien * semantics.c (expand_body): Constify local char *. 1315790075Sobrien * tree.c (build_srcloc): Constify filename parameter. 1315890075Sobrien * typeck.c (c_expand_asm_operands): Constify filename 1315990075Sobrien parameter. 1316018334Speter 1316190075Sobrien2000-05-08 Nathan Sidwell <nathan@codesourcery.com> 1316218334Speter 1316390075Sobrien * tinfo.cc (__dynamic_cast): Use a reinterpret_cast. Fix 1316490075Sobrien offsetof expansion. 1316518334Speter 1316690075Sobrien2000-05-08 Branko Cibej <branko.cibej@hermes.si> 1316718334Speter 1316890075Sobrien * inc/cxxabi.h: Fix typos in comment. 1316990075Sobrien (__base_class_info::__offset): Use a static_cast. 1317018334Speter 1317190075Sobrien2000-05-07 Nathan Sidwell <nathan@codesourcery.com> 1317218334Speter 1317390075Sobrien * inc/cxxabi.h: Use __SIZE_TYPE_ and __PTRDIFF_TYPE__ in place 1317490075Sobrien of std::size_t and std::ptrdiff_t respectively. 1317590075Sobrien * tinfo.cc: Likewise. 1317690075Sobrien * vec.cc: Likewise. 1317718334Speter 1317890075Sobrien2000-05-06 Richard Henderson <rth@cygnus.com> 1317918334Speter 1318090075Sobrien * typeck.c (build_c_cast): Don't warn integer->pointer size 1318190075Sobrien mismatch for constants. 1318218334Speter 1318390075Sobrien2000-05-06 Nathan Sidwell <nathan@codesourcery.com> 1318418334Speter 1318590075Sobrien * rtti.c (ptmd_initializer): Set non-public, if class is 1318690075Sobrien incomplete. 1318718334Speter 1318890075Sobrien * inc/cxxabi.h (__dynamic_cast): Explicitly say extern "C++". 1318990075Sobrien (__cxa_vec_new, __cxa_vec_ctor, __cxa_vec_dtor, 1319090075Sobrien __cxa_vec_delete): Likewise. 1319190075Sobrien * tinfo.cc (__dynamic_cast): Likewise. 1319290075Sobrien * vec.cc (__cxa_vec_new, __cxa_vec_ctor, __cxa_vec_dtor, 1319390075Sobrien __cxa_vec_delete): Likewise. 1319418334Speter 1319590075Sobrien2000-05-04 Mark Mitchell <mark@codesourcery.com> 1319618334Speter 1319790075Sobrien * cp-tree.h (DELTA_FROM_VTABLE_ENTRY): Remove. 1319890075Sobrien (SET_FNADDR_FROM_VTABLE_ENTRY): Likewise. 1319990075Sobrien (lang_decl_flags): Add vcall_offset. 1320090075Sobrien (THUNK_VCALL_OFFSET): Use it. 1320190075Sobrien * decl.c (lang_mark_tree): Don't mark DECL_ACCESS for a thunk. 1320290075Sobrien * method.c (make_thunk): Create the lang_decl here, not in 1320390075Sobrien emit_thunk. 1320490075Sobrien (emit_thunk): Make generic thunks into ordinary functions once 1320590075Sobrien they have been fed to expand_body. 1320690075Sobrien * semantics.c (expand_body): Set current_function_is_thunk here. 1320718334Speter 1320890075Sobrien2000-05-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1320918334Speter 1321090075Sobrien * class.c (update_vtable_entry_for_fn): Prototype. 1321118334Speter 1321290075Sobrien * pt.c (tsubst_decl): Initialize variables `argvec', `gen_tmpl' 1321390075Sobrien and `tmpl'. 1321418334Speter 1321590075Sobrien * search.c (dfs_build_inheritance_graph_order): Prototype. 1321618334Speter 1321790075Sobrien2000-05-04 Mark Mitchell <mark@codesourcery.com> 1321818334Speter 1321990075Sobrien * cp-tree.h (special_function_kind): Add various kinds of 1322090075Sobrien destructors. 1322190075Sobrien (special_function_p): New function. 1322290075Sobrien * class.c (overrides): Don't let one kind of destructor override 1322390075Sobrien another. 1322490075Sobrien * decl2.c (mark_used): Use DECL_NON_THUNK_FUNCTION_P when deciding 1322590075Sobrien whether or not to instantiate a template. 1322690075Sobrien * tree.c (special_function_p): Define. 1322718334Speter 1322890075Sobrien2000-05-03 Mark Mitchell <mark@codesourcery.com> 1322918334Speter 1323090075Sobrien * cp-tree.def (THUNK_DECL): Remove. 1323190075Sobrien * cp-tree.h (DECL_THUNK_P): New macro. 1323290075Sobrien (DECL_NON_THUNK_FUNCTION_P): Likewise. 1323390075Sobrien (DECL_EXTERN_C_FUNCTION_P): Likewise. 1323490075Sobrien (SET_DECL_THUNK_P): Likewise. 1323590075Sobrien (DELTA_FROM_VTABLE_ENTRY): Use DECL_THUNK_P. 1323690075Sobrien (FNADDR_FROM_VTABLE_ENTRY): Likewise. 1323790075Sobrien (DECL_MAIN_P): Use DECL_EXTERN_C_FUNCTION_P. 1323890075Sobrien * decl.c (decls_match): Use DECL_EXTERN_C_P. 1323950397Sobrien (duplicate_decls): Likewise. 1324090075Sobrien (pushdecl): Likewise. Adjust thunk handling. 1324190075Sobrien (grokfndecl): Use DECL_EXTERN_C_P. 1324290075Sobrien * decl2.c (mark_vtable_entries): Use DECL_THUNK_P. 1324390075Sobrien * dump.c (dequeue_and_dump): Remove THUNK_DECL handling. 1324490075Sobrien * except.c (nothrow_libfn_p): Use DECL_EXTERN_C_P. 1324590075Sobrien * expr.c (cplus_expand_expr): Remove THUNK_DECL handling. 1324690075Sobrien * method.c (make_thunk): Use SET_DECL_THUNK_P. Set 1324790075Sobrien DECL_NO_STATIC_CHAIN. 1324890075Sobrien (emit_thunk): Don't play games with TREE_CODE on thunks. Don't 1324990075Sobrien set DECL_DESTRUCTOR_P or DECL_CONSTRUCTOR_P on a thunk. 1325090075Sobrien * search.c (covariant_return_p): Remove THUNK_DECL handling. 1325190075Sobrien * ir.texi: Update. 1325218334Speter 1325390075Sobrien2000-05-01 Jason Merrill <jason@casey.cygnus.com> 1325418334Speter 1325590075Sobrien * tree.c (walk_tree): Set lineno. 1325618334Speter 1325790075Sobrien2000-05-01 Mark Mitchell <mark@codesourcery.com> 1325818334Speter 1325990075Sobrien * exception.cc: Update license notice. 1326090075Sobrien * new.cc: Likewise. 1326190075Sobrien * new1.cc: Likewise. 1326290075Sobrien * new2.cc: Likewise. 1326390075Sobrien * tinfo.cc: Likewise. 1326490075Sobrien * tinfo2.cc: Likewise. 1326590075Sobrien * vec.cc: Likewise. 1326690075Sobrien * inc/cxxabi.h: Likewise. 1326790075Sobrien * inc/exception: Likewise. 1326890075Sobrien * inc/new: Likewise. 1326990075Sobrien * inc/new.h: Likewise. 1327090075Sobrien * inc/typeinfo: Likewise. 1327118334Speter 1327290075Sobrien2000-05-01 Jason Merrill <jason@casey.cygnus.com> 1327318334Speter 1327490075Sobrien * tree.c (build_target_expr_with_type): If we already have a 1327590075Sobrien TARGET_EXPR, just return it. 1327618334Speter 1327790075Sobrien * optimize.c (initialize_inlined_parameters): Don't generate an 1327890075Sobrien EXPR_STMT if we can just use DECL_INITIAL. 1327990075Sobrien * decl.c (emit_local_var): Only make the initialization a 1328090075Sobrien full-expression if stmts_are_full_exprs_p. 1328118334Speter 1328290075Sobrien2000-05-01 Mark Mitchell <mark@codesourcery.com> 1328318334Speter 1328490075Sobrien * cp-tree.h (same_type_ignoring_top_level_qualifiers_p): New 1328590075Sobrien macro. 1328690075Sobrien * call.c (standard_conversion): Use it. 1328790075Sobrien (direct_reference_binding): Likewise. 1328890075Sobrien (build_over_call): Likewise. 1328990075Sobrien (is_properly_derived_from): Likewise. 1329090075Sobrien (compare_ics): Likewise. 1329190075Sobrien * class.c (resolves_to_fixed_type_p): Likewise. 1329290075Sobrien * optimize.c (declare_return_variable): Likewise. 1329390075Sobrien * pt.c (is_specialization_of): Likewise. 1329490075Sobrien (unify): Likewise. 1329590075Sobrien * typeck.c (comp_target_parms): Likeiwse. 1329690075Sobrien (build_static_cast): Likewise. 1329790075Sobrien (build_reinterpret_cast): Likewise. 1329890075Sobrien (build_const_cast): Likewise. 1329990075Sobrien (comp_ptr_ttypes_real): Likewise. 1330090075Sobrien (comp_ptr_ttypes_const): Likewise. 1330190075Sobrien * typeck2.c (process_init_constructor): Likewise. 1330218334Speter 1330390075Sobrien2000-04-30 Scott Snyder <snyder@fnal.gov> 1330418334Speter 1330590075Sobrien * decl.c (finish_destructor_body): Use the base destructor when 1330690075Sobrien destroying virtual bases. 1330718334Speter 1330890075Sobrien2000-04-30 Mark Mitchell <mark@codesourcery.com> 1330918334Speter 1331090075Sobrien * expr.c (cplus_expand_expr): Preserve temporaries when expanding 1331190075Sobrien STMT_EXPRs. 1331290075Sobrien * optimize.c (struct inline_data): Add target_exprs field. 1331390075Sobrien (declare_return_variable): When a function returns an aggregate, 1331490075Sobrien use the variable declared in the TARGET_EXPR as the remapped 1331590075Sobrien DECL_RESULT. 1331690075Sobrien (expand_call_inline): Update the pending target_exprs stack. 1331790075Sobrien (optimize_function): Initialize the stack. 1331818334Speter 1331990075Sobrien * decl2.c (finish_file): Fix typo in comment. 1332018334Speter 1332190075Sobrien * method.c (emit_thunk): Don't try to return a `void' value. 1332218334Speter 1332390075Sobrien * optimize.c (initialize_inlined_parameters): If the parameter is 1332490075Sobrien addressable, we need to make a new VAR_DECL, even if the 1332590075Sobrien initializer is constant. 1332618334Speter 1332790075Sobrien2000-04-28 Cosmin Truta <cosmint@cs.ubbcluj.ro> 1332818334Speter 1332990075Sobrien * decl.c (grok_op_properties): Add an extra check of argtypes. 1333018334Speter 1333190075Sobrien2000-04-27 Mark Mitchell <mark@codesourcery.com> 1333218334Speter 1333390075Sobrien * optimize.c (copy_body_r): Use STRIP_TYPE_NOPS when copying 1333490075Sobrien variables. 1333590075Sobrien (initialize_inlined_parameters): Try to avoid creating new 1333690075Sobrien VAR_DECLs. 1333718334Speter 1333890075Sobrien2000-04-27 Alex Samuel <samuel@codesourcery.com> 1333918334Speter 1334090075Sobrien * lex.c (my_get_run_time): Remove. 1334190075Sobrien (init_filename_times): Use get_run_time instead of my_get_run_time. 1334290075Sobrien (check_newline): Likewise. 1334390075Sobrien (dump_time_statistics): Likewise. 1334490075Sobrien * decl2.c (finish_file): Push and pop timevar TV_VARCONST instead 1334590075Sobrien of computing elapsed time explicitly. 1334618334Speter 1334790075Sobrien2000-04-26 Mark Mitchell <mark@codesourcery.com> 1334818334Speter 1334990075Sobrien * cp-tree.h (TREE_READONLY_DECL_P): Use DECL_P. 1335090075Sobrien * init.c (decl_constant_value): Check TREE_READONLY_DECL_P. 1335190075Sobrien * call.c (convert_like_real): Don't test TREE_READONLY_DECL_P 1335290075Sobrien before calling decl_constant_value. 1335390075Sobrien * class.c (check_bitfield_decl): Likewise. 1335490075Sobrien * cvt.c (ocp_convert): Likewise. 1335590075Sobrien (convert): Likewise. 1335690075Sobrien * decl.c (compute_array_index_type): Likewise. 1335790075Sobrien (build_enumerator): Likewise. 1335890075Sobrien * decl2.c (check_cp_case_value): Likewise. 1335990075Sobrien * pt.c (convert_nontype_argument): Likewise. 1336090075Sobrien (tsubst): Likewise. 1336190075Sobrien * typeck.c (decay_conversion): Likewise. 1336290075Sobrien (build_compound_expr): Likewise. 1336390075Sobrien (build_reinterpret_cast): Likewise. 1336490075Sobrien (build_c_cast): Likewise. 1336590075Sobrien (convert_for_assignment): Likewise. 1336618334Speter 1336790075Sobrien2000-04-26 Jason Merrill <jason@casey.cygnus.com> 1336818334Speter 1336990075Sobrien * decl.c (finish_function): Don't play games with DECL_INLINE. 1337018334Speter 1337190075Sobrien2000-04-25 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr> 1337218334Speter 1337390075Sobrien * ir.texi: Correct typo. 1337418334Speter 1337590075Sobrien2000-04-25 Martin v. L�wis <loewis@informatik.hu-berlin.de> 1337618334Speter 1337790075Sobrien * decl.c (grokdeclarator): Reject VLAs as members. 1337818334Speter 1337990075Sobrien2000-04-24 Gabriel Dos Reis <gdr@codesourcery.com> 1338018334Speter 1338190075Sobrien * call.c (standard_conversion): Accept conversion between 1338290075Sobrien COMPLEX_TYPEs. 1338318334Speter 1338490075Sobrien * cvt.c (ocp_convert): Handle conversion to COMPLEX_TYPE. 1338518334Speter 1338690075Sobrien2000-04-24 Zack Weinberg <zack@wolery.cumb.org> 1338718334Speter 1338890075Sobrien * decl2.c (finish_file): Remove double setup for accounting 1338990075Sobrien compile time. 1339018334Speter 1339190075Sobrien2000-04-24 Robert Lipe <robertlipe@usa.net> 1339218334Speter 1339390075Sobrien * cp-tree.h (lang_type): Member `language' now ENUM_BITFIELD. 1339418334Speter 1339590075Sobrien2000-04-23 Benjamin Kosnik <bkoz@cygnus.com> 1339618334Speter 1339790075Sobrien * new.cc (set_new_handler): Needs to be in std::. 1339818334Speter 1339990075Sobrien2000-04-23 Mark Mitchell <mark@codesourcery.com> 1340018334Speter 1340190075Sobrien * cp-tree.h (lang_decl): Remove pretty_function_p. 1340290075Sobrien (DECL_PRETTY_FUNCTION_P): Use TREE_LANG_FLAG_0, not a bit in the 1340390075Sobrien language-specific node. 1340490075Sobrien * decl.c (cp_make_fname_decl): Use build_decl, not 1340590075Sobrien build_lang_decl, to build the variables. 1340690075Sobrien (grokvardecl): Don't call build_lang_decl for local variables in 1340750397Sobrien templates. 1340890075Sobrien (grokdeclarator): Don't call build_lang_decl for local type 1340990075Sobrien declarations in templates. 1341090075Sobrien * lex.c (retrofit_lang_decl): Use ggc_alloc_obj to allocated 1341190075Sobrien zero'd memory, rather than calling memset. 1341290075Sobrien * pt.c: Include hashtab.h. 1341390075Sobrien (local_specializations): New variable. 1341490075Sobrien (retrieve_local_specialization): Use it. 1341590075Sobrien (register_local_specialization): Likewise. 1341690075Sobrien (tsubst_decl): Don't assume local variables have 1341790075Sobrien DECL_LANG_SPECIFIC. 1341890075Sobrien (instantiate_decl): Set up local_specializations. 1341990075Sobrien * Makefile.in (HTAB_H): New variable. 1342018334Speter 1342190075Sobrien2000-04-23 Richard Henderson <rth@cygnus.com> 1342218334Speter 1342390075Sobrien * typeck.c (c_expand_asm_operands): Restore the original 1342490075Sobrien contents of the output list. 1342518334Speter 1342690075Sobrien2000-04-22 Gabriel Dos Reis <gdr@codesourcery.com> 1342718334Speter 1342890075Sobrien * ir.texi: Document complex number representation. 1342918334Speter 1343090075Sobrien2000-04-20 Nathan Sidwell <nathan@codesourcery.com> 1343118334Speter 1343290075Sobrien * rtti.c (init_rtti_processing): Set tinfo_var_id in new-abi. 1343390075Sobrien (target_incomplete_p): New function. 1343490075Sobrien (tinfo_base_init): Create comdat NTBS name variable. 1343590075Sobrien (ptr_initializer): Add non_public parameter. Calculate it. 1343690075Sobrien (ptmd_initializer): Likewise. 1343790075Sobrien (synthesize_tinfo_var): Adjust. Emit incomplete class tinfo. 1343890075Sobrien (create_real_tinfo_var): Add non_public parameter. Use it. 1343990075Sobrien Push proxy into global namespace. 1344090075Sobrien * inc/cxxabi.h (__pointer_type_info::incomplete_class_mask): 1344190075Sobrien New enumeration. 1344290075Sobrien * inc/typeinfo (type_info::before, type_info::operator==): 1344390075Sobrien Compare __name addresses. 1344418334Speter 1344590075Sobrien * tinfo2.cc: Remove new-abi builtins comment. 1344618334Speter 1344790075Sobrien2000-04-20 Jason Merrill <jason@casey.cygnus.com> 1344818334Speter 1344990075Sobrien * typeck.c (build_x_function_call): Resolve an OFFSET_REF. 1345018334Speter 1345190075Sobrien * call.c (joust): Exit early if we get the same function, too. 1345218334Speter 1345390075Sobrien * decl2.c (key_method): Return NULL_TREE for template classes. 1345490075Sobrien (import_export_class): Don't need to check for template classes. 1345518334Speter 1345690075Sobrien2000-04-18 Zack Weinberg <zack@wolery.cumb.org> 1345718334Speter 1345890075Sobrien * lex.c: Remove references to cccp.c. 1345918334Speter 1346090075Sobrien2000-04-18 Mark Mitchell <mark@codesourcery.com> 1346118334Speter 1346290075Sobrien * cp-tree.h (lang_decl_flags): Remove const_memfunc and 1346390075Sobrien volatile_memfunc. Add destructor_attr. Adjust dummy. 1346490075Sobrien (DECL_DESTRUCTOR_P): Use destructor_attr. 1346590075Sobrien (DECL_CONST_MEMFUNC_P): Reimplement. 1346690075Sobrien (DECL_VOLATILE_MEMFUNC_P): Remove. 1346790075Sobrien * class.c (finish_struct_methods): Use CLASSTYPE_DESTRUCTORS. 1346890075Sobrien (overrides): Use DECL_DESTRUCTOR_P. 1346990075Sobrien (check_for_override): Likewise. 1347090075Sobrien * decl.c (start_function): Likewise. 1347190075Sobrien * decl2.c (grokfclassfn): Likewise. 1347290075Sobrien (check_classfn): Likewise. 1347390075Sobrien (grok_function_init): Likewise. 1347418334Speter 1347590075Sobrien2000-04-17 Mark Mitchell <mark@codesourcery.com> 1347618334Speter 1347790075Sobrien * decl2.c (grokfield): Issue error on illegal data member 1347890075Sobrien declaration. 1347918334Speter 1348090075SobrienMon Apr 17 17:11:16 2000 Mark P Mitchell <mark@codesourcery.com> 1348118334Speter 1348290075Sobrien * method.c (make_thunk): Set DECL_CONTEXT for a THUNK_DECL. 1348318334Speter 1348490075Sobrien2000-04-16 Mark Mitchell <mark@codesourcery.com> 1348518334Speter 1348690075Sobrien * class.c (build_vtable_entry): Don't build thunks for type-info 1348750397Sobrien functions. 1348850397Sobrien 1348990075Sobrien2000-04-16 Jason Merrill <jason@casey.cygnus.com> 1349050397Sobrien 1349190075Sobrien * decl.c (decls_match): Allow a redeclaration of a builtin to 1349290075Sobrien specify args while the builtin did not. 1349318334Speter 1349490075Sobrien2000-04-15 Mark Mitchell <mark@codesourcery.com> 1349518334Speter 1349690075Sobrien * cp-tree.def (THUNK_DECL): Add to documentation. 1349790075Sobrien * cp-tree.h (flag_huge_objects): Declare. 1349890075Sobrien * class.c (modify_vtable_entry): Tidy. 1349990075Sobrien (update_vtable_entry_for_fn): Split out from dfs_modify_vtables. 1350090075Sobrien Calculate delta appropriately for the new ABI. 1350190075Sobrien (dfs_modify_vtables): Use it. 1350290075Sobrien (modify_all_vtables): Fix thinko in code to add overriding copies 1350390075Sobrien of functions to primary vtables. 1350490075Sobrien (build_clone): Fix typo in comment. 1350590075Sobrien (clone_function_decl): Correct order of destructors in vtable. 1350690075Sobrien (build_vbase_offset_vtbl_entries): Adjust comment. 1350790075Sobrien (dfs_vcall_offset_queue_p): Remove. 1350890075Sobrien (dfs_build_vcall_offset_vtbl_entries): Update BV_VCALL_INDEX. 1350990075Sobrien (build_vcall_offset_vtbl_entries): Juse use dfs_skip_vbases. 1351090075Sobrien (build_vtable_entry): Correct check for pure virtual functions. 1351190075Sobrien Don't declare flag_huge_objects. 1351290075Sobrien * decl.c (flag_huge_objects): Remove declaration. 1351390075Sobrien * method.c (make_thunk): Tweak mangling for vcall offset thunks. 1351490075Sobrien Use int_size_in_bytes. 1351590075Sobrien (emit_thunk): Handle vcall offset thunks. 1351618334Speter 1351790075SobrienSat Apr 15 16:00:01 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 1351818334Speter 1351990075Sobrien * decl2.c (parse_time, varconst_time): Delete declarations. 1352090075Sobrien (finish_file): Delete LINENO declaration. 1352190075Sobrien START_TIME and THIS_TIME now long. 1352218334Speter 1352390075Sobrien2000-04-13 Nathan Sidwell <nathan@codesourcery.com> 1352418334Speter 1352590075Sobrien * class.c (build_base_field): Reformat comment. 1352618334Speter 1352790075Sobrien * inc/cxxabi.h (stddef.h): Comment inclusion. 1352890075Sobrien (__base_class_info::__offset): Comment shift. 1352918334Speter 1353090075Sobrien2000-04-12 Mark Mitchell <mark@codesourcery.com> 1353118334Speter 1353290075Sobrien * cp-tree.h (IDENTIFIER_CTOR_OR_DTOR_P): New macro. 1353390075Sobrien (cp_tree_index): Add CPTI_PUSH_EXCEPTION_IDENTIFIER. 1353490075Sobrien (cp_push_exception_identifier): New macro. 1353590075Sobrien (DECL_COMPLETE_DESTRUCTOR_P): New macro. 1353690075Sobrien (DECL_BASE_DESTRUCTOR_P): Likewise. 1353790075Sobrien (DECL_DELETING_DESTRUCTOR_P): Likewise. 1353890075Sobrien (get_vtbl_decl_for_binfo): Fix formatting. 1353990075Sobrien (in_charge_arg_for_name): New macro. 1354090075Sobrien (maybe_build_cleanup_and_delete): Remove declaration. 1354190075Sobrien * call.c (build_field_call): Use IDENTIFIER_CTOR_OR_DTOR_P. 1354290075Sobrien (in_charge_arg_for_name): New function. 1354390075Sobrien (build_new_method_call): Use it. Handle cloned destructors. 1354490075Sobrien (build_clone): Don't make the base constructor virtual. 1354590075Sobrien Automatically defer generated functions. 1354690075Sobrien (clone_function_decl): Handle destructors, too. 1354790075Sobrien (clone_constructors_and_destructors): Likewise. 1354890075Sobrien (create_vtable_ptr): Don't create a vtable entry for a cloned 1354990075Sobrien function. 1355090075Sobrien * decl.c (predefined_identifier): Add ctor_or_dtor_p. 1355190075Sobrien (initialize_predefined_identifiers): Update appropriately. 1355290075Sobrien (finish_destructor_body): Simplify. 1355390075Sobrien (maybe_build_cleanup_and_delete): Remove. 1355490075Sobrien * except.c (expand_throw): Handle new-ABI destructors. 1355590075Sobrien * init.c (expand_cleanup_for_base): Use base_dtor_identifier. 1355690075Sobrien (build_dtor_call): New function. 1355790075Sobrien (build_delete): Use it. Simplify. 1355890075Sobrien * optimize.c (maybe_clone_body): Handle destructors. 1355990075Sobrien * search.c (lookup_field_queue_p): Use IDENTIFIER_CTOR_OR_DTOR_P. 1356018334Speter 1356190075Sobrien * exception.cc (cleanup_fn): New typedef. 1356290075Sobrien (CALL_CLEANUP): New macro. 1356390075Sobrien (cp_eh_info): Use them. 1356490075Sobrien (__cp_push_exception): Likewise. 1356590075Sobrien (__cp_pop_exception): Likewise. 1356618334Speter 1356790075Sobrien2000-04-11 Mark Mitchell <mark@codesourcery.com> 1356818334Speter 1356990075Sobrien * cp-tree.h (cp_tree_index): Add CPTI_DTOR_IDENTIFIER. 1357090075Sobrien (complete_dtor_identifier): New macro. 1357190075Sobrien (CLASSTYPE_FIRST_CONVERSION): Remove. 1357290075Sobrien (CLASSTYPE_CONSTRUCTOR_SLOT): New macro. 1357390075Sobrien (CLASSTYPE_DESTRUCTOR_SLOT): Likewise. 1357490075Sobrien (CLASSTYPE_FIRST_CONVERSION_SLOT): Likewise. 1357590075Sobrien (CLASSTYPE_CONSTRUCTORS): Likewise. 1357690075Sobrien (CLASSTYPE_DESTRUCTORS): Likewise. 1357790075Sobrien (lang_decl): Add cloned_function. 1357890075Sobrien (DECL_COMPLETE_CONSTRUCTOR_P): New macro. 1357990075Sobrien (DECL_BASE_CONSTRUCTOR_P): Likewise. 1358090075Sobrien (DECL_MAYBE_IN_CHARGE_CONSTRUCTOR_P): Likewise. 1358190075Sobrien (DECL_MAYBE_IN_CHARGE_DESTRUCTOR_P): Likewise. 1358290075Sobrien (DECL_CLONED_FUNCTION_P): Likewise. 1358390075Sobrien (DECL_CLONED_FUNCTION): Likewise. 1358490075Sobrien (clone_function_decl): Declare. 1358590075Sobrien (maybe_clone_body): Likewise. 1358690075Sobrien * call.c (build_user_type_conversion_1): Call complete object 1358790075Sobrien constructors in the new ABI. 1358890075Sobrien (build_new_method_call): Don't add in-charge parameters under the 1358990075Sobrien new ABI. 1359090075Sobrien * class.c (add_method): Use DECL_MAYBE_IN_CHARGE_CONSTRUCTOR_P, 1359190075Sobrien DECL_MAYBE_IN_CHARGE_DESTRUCTOR_P, CLASSTYPE_CONSTRUCTOR_SLOT, and 1359290075Sobrien CLASSTYPE_DESTRUCTOR_SLOT. 1359390075Sobrien (build_clone): New function. 1359490075Sobrien (clone_function_decl): Likewise. 1359590075Sobrien (clone_constructors_and_destructors): Likewise. 1359690075Sobrien (check_bases_and_members): Use it. 1359790075Sobrien * decl.c (iniitialize_predefined_identifiers): Initialize 1359890075Sobrien complete_dtor_identifier. 1359990075Sobrien (finish_function): Don't add extra code to a clone. 1360090075Sobrien (lang_mark_tree): Mark cloned_function. 1360190075Sobrien * decl2.c (mark_used): Don't bother trying to instantiate things 1360290075Sobrien we synthesized. 1360390075Sobrien * dump.c (dequeue_and_dump): Don't dump CP_DECL_CONTEXT twice. 1360490075Sobrien * method.c (set_mangled_name_for_decl): Don't treat clones as 1360590075Sobrien constructors. 1360690075Sobrien (synthesize_method): Sythesize cloned functions, not the clones. 1360790075Sobrien * optimize.c (inline_data): Update comment on ret_label. 1360890075Sobrien (remap_block): Don't assume DECL_INITIAL exists. 1360990075Sobrien (copy_body_r): Allow ret_label to be NULL. 1361090075Sobrien (maybe_clone_body): Define. 1361190075Sobrien * pt.c (tsubst_decl): Handle clones. 1361290075Sobrien (instantiate_clone): New function. 1361390075Sobrien (instantiate_template): Use it. 1361490075Sobrien (set_mangled_name_for_template_decl): Don't treat clones as 1361590075Sobrien constructors. 1361690075Sobrien * search.c (lookup_fnfields_1): Use CLASSTYPE_CONSTRUCTOR_SLOT, 1361790075Sobrien CLASSTYPE_DESTRUCTOR_SLOT, and CLASSTYPE_FIRST_CONVERSION_SLOT. 1361890075Sobrien * semantics.c (expand_body): Clone function bodies as necessary. 1361918334Speter 1362090075Sobrien * optimize.c (remap_decl): Avoid sharing structure for arrays 1362190075Sobrien whose size is only known at run-time. 1362290075Sobrien * tree.c (copy_tree_r): Don't copy PARM_DECLs. 1362318334Speter 1362490075Sobrien * cp-tree.h (lang_decl_flags): Rename constructor_for_vbase_attr 1362590075Sobrien to has_in_charge_parm_p. 1362690075Sobrien (DECL_CONSTRUCTOR_FOR_VBASE_P): Rename to ... 1362790075Sobrien (DECL_HAS_IN_CHARGE_PARM_P): ... this. 1362890075Sobrien (DECL_COPY_CONSTRUCTOR_P): New macro. 1362990075Sobrien * call.c (add_function_candidate): Use DECL_HAS_IN_CHARGE_PARM_P. 1363090075Sobrien (build_user_type_conversion_1): Likewise. 1363190075Sobrien (convert_like_real): Likewise. 1363290075Sobrien (build_over_call): Likeiwse. Use DECL_COPY_CONSTRUCTOR_P. 1363390075Sobrien * decl.c (grokdeclarator): Use DECL_HAS_IN_CHARGE_PARM_P. 1363490075Sobrien (copy_args_p): Likewise. 1363590075Sobrien (grok_ctor_properties): Likewise. 1363650397Sobrien (start_function): Likewise. 1363790075Sobrien * decl2.c (maybe_retrofit_in_charge): Likewise. Set it. 1363890075Sobrien * error.c (dump_function_decl): Use DECL_HAS_IN_CHARGE_PARM_P. 1363990075Sobrien * init.c (emit_base_init): Use DECL_COPY_CONSTRUCTOR_P. 1364090075Sobrien * method.c (do_build_copy_constructor): Use 1364190075Sobrien DECL_HAS_IN_CHARGE_PARM_P. 1364290075Sobrien (synthesize_method): Likewise. 1364390075Sobrien * pt.c (instantiate_template): Remove goto. 1364490075Sobrien * tree.c (build_cplus_method_type): Remove mention of obstacks in 1364590075Sobrien comment. 1364650397Sobrien 1364790075Sobrien * cp-tre.h (finish_function): Change prototype. 1364890075Sobrien * decl.c (end_cleanup_fn): Adjust caller. 1364990075Sobrien (finish_function): Take only one parameter. 1365090075Sobrien * decl2.c (finish_objects): Adjust caller. 1365190075Sobrien (finish_static_storage_duration_function): Likewise. 1365290075Sobrien * method.c (emit_thunk): Likewise. 1365350397Sobrien * parse.y: Likewise. 1365490075Sobrien * parse.c: Regenerated. 1365590075Sobrien * pt.c (instantiate_decl): Likewise. 1365690075Sobrien * rtti.c (synthesize_tinfo_fn): Likewise. 1365790075Sobrien * semantics.c (expand_body): Likewise. 1365852284Sobrien 1365990075Sobrien * cp-tree.h (copy_decl): New function. 1366090075Sobrien * class.c (finish_struct_1): Use it. 1366190075Sobrien * lex.c (copy_decl): Define it. 1366290075Sobrien * pt.c (tsubst_decl): Likewise. 1366390075Sobrien * tree.c (copy_template_template_parm): Likewise. 1366418334Speter 1366590075Sobrien * cp-tree.h (lang_type): Remove has_nonpublic_ctor and 1366690075Sobrien has_nonpublic_assign_ref. 1366790075Sobrien (TYPE_HAS_NONPUBLIC_CTOR): Don't declare. 1366890075Sobrien (TYPE_HAS_NONPUBLIC_ASSIGN_REF): Likewise. 1366990075Sobrien * class.c (finish_struct_methods): Don't set 1367090075Sobrien TYPE_HAS_NONPUBLIC_CTOR or TYPE_HAS_NONPUBLIC_ASSIGN_REF. 1367190075Sobrien (interface_only): Don't declare. 1367290075Sobrien (interface_unknown): Likewise. 1367318334Speter 1367490075Sobrien2000-04-11 Martin v. L�wis <loewis@informatik.hu-berlin.de> 1367518334Speter 1367690075Sobrien * tree.h (HAVE_TEMPLATES): Remove definition. 1367790075Sobrien * lang-options.h (-fthis-is-variable): Remove documentation. 1367852284Sobrien 1367990075Sobrien2000-04-10 Jason Merrill <jason@casey.cygnus.com> 1368052284Sobrien 1368190075Sobrien * class.c (instantiate_type): Handle object-relative template-id. 1368218334Speter 1368390075Sobrien * semantics.c (finish_expr_stmt): Call convert_to_void here. 1368490075Sobrien * decl.c (cplus_expand_expr_stmt): Not here. 1368518334Speter 1368690075Sobrien * rtti.c (build_dynamic_cast_1): Call non_lvalue. 1368790075Sobrien Initialize exprtype earlier. 1368818334Speter 1368990075Sobrien * parse.y (fn.def1): Check for defining types in return types. 1369018334Speter 1369190075Sobrien * decl.c (check_tag_decl): Notice extra fundamental types. 1369290075Sobrien Diagnose empty decls in classes, too. 1369318334Speter 1369490075Sobrien * decl.c (grokdeclarator): Don't override an anonymous name if no 1369590075Sobrien declarator was given. 1369618334Speter 1369790075Sobrien * cvt.c (convert_to_void): Call resolve_offset_ref. 1369818334Speter 1369990075Sobrien * typeck.c (build_x_function_call): Abort if we get an OFFSET_REF. 1370018334Speter 1370190075Sobrien * decl2.c (decl_namespace): Handle getting a type. 1370218334Speter 1370390075Sobrien * typeck.c (build_c_cast): Re-enable warning for cast between 1370490075Sobrien pointer and integer of different size. 1370518334Speter 1370690075Sobrien2000-04-10 Nathan Sidwell <nathan@codesourcery.com> 1370718334Speter 1370890075Sobrien * inc/cxxabi.h (__pointer_type_info): Add restrict and 1370990075Sobrien incomplete flags. 1371090075Sobrien (__pointer_type_info::__pointer_catch): New virtual function. 1371190075Sobrien (__pointer_to_member_type_info): Derive from 1371290075Sobrien __pointer_type_info. Adjust. 1371390075Sobrien (__pointer_to_member_type_info::__do_catch): Remove. 1371490075Sobrien (__pointer_to_member_type_info::__is_pointer_p): Declare. 1371590075Sobrien (__pointer_to_member_type_info::__pointer_catch): Declare. 1371690075Sobrien * rtti.c (qualifier_flags): Add restrict flag. 1371790075Sobrien (ptmd_initializer): Reorder members. 1371890075Sobrien (create_tinfo_types): Expand comments. Reorder 1371990075Sobrien ptmd_desc_type_node members. 1372090075Sobrien * tinfo2.cc (__pointer_to_member_type_info::__is_pointer_p): 1372190075Sobrien Implement. 1372290075Sobrien (__pointer_type_info::__do_catch): Move specific code into 1372390075Sobrien __pointer_catch. Call it. 1372490075Sobrien (__pointer_type_info::__pointer_catch): Non-pointer-to-member 1372590075Sobrien specific catch checking. Fix void conversion check. 1372690075Sobrien (__pointer_to_member_type_info::__do_catch): Remove. 1372790075Sobrien (__pointer_to_member_type_info::__pointer_catch): Implement. 1372818334Speter 1372990075Sobrien2000-04-10 Martin v. L�wis <loewis@informatik.hu-berlin.de> 1373018334Speter 1373190075Sobrien * lex.c (init_parse): Remove traces of classof and headof. 1373290075Sobrien * decl2.c (flag_operator_names): Default to 1. 1373390075Sobrien (lang_decode_option): Do not set it for -ansi. 1373418334Speter 1373590075Sobrien2000-04-09 Mark Mitchell <mark@codesourcery.com> 1373618334Speter 1373790075Sobrien * cp-tree.h (struct lang_decl): Remove main_decl_variant. 1373890075Sobrien (DECL_MAIN_VARIANT): Remove. 1373990075Sobrien * decl.c (duplicate_decls): Don't set it. 1374090075Sobrien (start_function): Likewise. 1374190075Sobrien (lang_mark_tree): Don't mark it. 1374290075Sobrien * decl2.c (defer_fn): Don't use it. 1374390075Sobrien * lex.c (retrofit_lang_decl): Don't set it. 1374490075Sobrien * pt.c (tsubst_decl): Likewise. 1374590075Sobrien * ptree.c (print_lang_decl): Don't print it. 1374690075Sobrien * typeck.c (mark_addressable): Don't use it. 1374718334Speter 1374890075Sobrien2000-04-09 Nathan Sidwell <nathan@codesourcery.com> 1374918334Speter 1375090075Sobrien * vec.cc: Include <new> and <exception>. 1375190075Sobrien (__cxa_vec_ctor): Use __cxa_vec_dtor for cleanup. 1375290075Sobrien (__cxa_vec_dtor): Catch dtor exceptions, and rethrow or 1375390075Sobrien terminate. 1375490075Sobrien (__cxa_vec_delete): Catch dtor exceptions. 1375518334Speter 1375690075Sobrien2000-04-09 Nathan Sidwell <nathan@codesourcery.com> 1375718334Speter 1375890075Sobrien Prepend __ to implementation defined names. 1375990075Sobrien * inc/typeinfo (type_info): Rename _name to __name. 1376090075Sobrien (type_info::type_info): Rename parameter. 1376190075Sobrien (type_info::operator==, type_info::operator!=, 1376290075Sobrien type_info::before): Likewise. 1376390075Sobrien (type_info::is_pointer_p, type_info::is_function_p, 1376490075Sobrien type_info::do_catch, type_info::do_upcast): Prepend __. Rename 1376590075Sobrien parameters. 1376690075Sobrien * inc/cxxabi.h 1376790075Sobrien (__fundamental_type_info::__fundamental_type_info) Rename parameters. 1376890075Sobrien (__pointer_type_info::__pointer_type_info): Likewise. 1376990075Sobrien (__pointer_type_info::is_pointer_p, 1377090075Sobrien __pointer_type_info::do_catch): Prepend __. Rename parameters. 1377190075Sobrien (__array_type_info::__array_type_info): Rename parameters. 1377290075Sobrien (__function_type_info::__function_type_info): Likewise. 1377390075Sobrien (__function_type_info::is_function_p): Prepend __. 1377490075Sobrien (__enum_type_info::__enum_type_info): Rename parameters. 1377590075Sobrien (__pointer_to_member_type_info::__pointer_to_member_type_info): 1377690075Sobrien Likewise. 1377790075Sobrien (__pointer_to_member_type_info::do_catch): Prepend __. Rename 1377890075Sobrien parameters. 1377990075Sobrien (__base_class_info::is_virtual_p, is_public_p, offset): Prepend __. 1378090075Sobrien (__class_type_info::__class_type_info): Rename parameters. 1378190075Sobrien (__class_type_info::sub_kind): Prepend __. Adjust member names. 1378290075Sobrien (__class_type_info::upcast_result, 1378390075Sobrien __class_type_info::dyncast_result): Prepend __. Move definition 1378490075Sobrien into tinfo.cc. 1378590075Sobrien (__class_type_info::do_upcast, __class_type_info::do_catch, 1378690075Sobrien __class_type_info::find_public_src, 1378790075Sobrien __class_type_info::do_dyncast, 1378890075Sobrien __class_type_info::do_find_public_src): Prepend __. Rename 1378990075Sobrien parameters. 1379090075Sobrien (__si_class_type_info::__si_class_type_info): Rename parameters. 1379190075Sobrien (__si_class_type_info::do_upcast, __si_class_type_info::do_dyncast, 1379290075Sobrien __si_class_type_info::do_find_public_src): Prepent __. Rename 1379390075Sobrien parameters. 1379490075Sobrien (__vmi_class_type_info::__vmi_class_type_info): Rename parameters. 1379590075Sobrien (__vmi_class_type_info::do_upcast, __vmi_class_type_info::do_dyncast, 1379690075Sobrien __vmi_class_type_info::do_find_public_src): Prepent __. Rename 1379790075Sobrien parameters. 1379890075Sobrien (__dynamic_cast): Rename parameters. 1379990075Sobrien * tinfo.cc (type_info::is_pointer_p, type_info::is_function_p, 1380090075Sobrien type_info::do_catch, type_info::do_upcast): Prepend __. 1380190075Sobrien (contained_p, public_p, virtual_p, contained_public_p, 1380290075Sobrien contained_nonpublic_p, contained_nonvirtual_p): Adjust. 1380390075Sobrien (__class_type_info::do_catch, 1380490075Sobrien __class_type_info::do_upcast): Prepend __. Adjust. 1380590075Sobrien (__class_type_info::__upcast_result, 1380690075Sobrien __class_type_info::__dyncast_result): Move from inc/cxxabi.h. 1380790075Sobrien Adjust. 1380890075Sobrien (__class_type_info::find_public_src): Prepend __. Adjust. 1380990075Sobrien (__class_type_info::do_find_public_src, 1381090075Sobrien __si_class_type_info::do_find_public_src, 1381190075Sobrien __vmi_class_type_info::do_find_public_src): Likewise. 1381290075Sobrien (__class_type_info::do_dyncast, 1381390075Sobrien __si_class_type_info::do_dyncast, 1381490075Sobrien __vmi_class_type_info::do_dyncast): Likewise. 1381590075Sobrien (__class_type_info::do_upcast, 1381690075Sobrien __si_class_type_info::do_upcast, 1381790075Sobrien __vmi_class_type_info::do_upcast): Likewise. 1381890075Sobrien (__dynamic_cast): Adjust. 1381990075Sobrien * tinfo2.cc (__pointer_type_info::is_pointer_p): Prepend __. 1382090075Sobrien (__function_type_info::is_function_p): Likewise. 1382190075Sobrien (__pointer_type_info::do_catch): Likewise. Adjust. 1382290075Sobrien (__pointer_to_member_type_info::do_catch): Likewise. Adjust. 1382390075Sobrien (__throw_type_match_rtti_2): Adjust. 1382490075Sobrien (__is_pointer): Adjust. 1382518334Speter 1382690075Sobrien2000-04-08 Mark Mitchell <mark@codesourcery.com> 1382718334Speter 1382890075Sobrien * cp-tree.h (cp_tree_index): Add CPTI_COMPLETE_CTOR_IDENTIFIER. 1382990075Sobrien (complete_ctor_identifier): New macro. 1383090075Sobrien (special_function_kind): Add sfk_copy_constructor and 1383190075Sobrien sfk_assignment_operator. 1383290075Sobrien (LOOKUP_HAS_IN_CHARGE): Remove. 1383390075Sobrien (cons_up_default_function): Rename to ... 1383490075Sobrien (implicitly_declare_fn): ... this. 1383590075Sobrien * call.c (build_new_method_call): Add in-charge parameters for 1383690075Sobrien constructors here. 1383790075Sobrien * class.c (add_implicitly_declared_members): Change parameter name 1383890075Sobrien from cant_have_assignment to cant_have_const_assignment. 1383990075Sobrien Replace calls to cons_up_default_function to implicitly_declare_fn. 1384090075Sobrien * cvt.c (ocp_convert): Use complete_ctor_identifier. 1384190075Sobrien * decl.c (initialize_predefined_identifiers): Initialize it. 1384290075Sobrien (start_function): Use DECL_CONSTRUCTOR_FOR_VBASE_P instead of 1384390075Sobrien complex expression. 1384490075Sobrien * init.c (expand_default_init): Don't calculate the in-charge 1384590075Sobrien parameter here. 1384690075Sobrien (build_new_1): Likewise. 1384790075Sobrien * lex.c (cons_up_default_function): Move to method.c. 1384890075Sobrien * method.c (synthesize_method): Use DECL_DESTRUCTOR_P. 1384990075Sobrien (implicitly_declare_fn): New function. 1385090075Sobrien * typeck.c (build_static_cast): Use complete_ctor_identifier. 1385190075Sobrien (build_modify_expr): Likewise. 1385290075Sobrien * typeck2.c (build_functional_cast): Likewise. 1385318334Speter 1385490075Sobrien Under the new ABI, constructors don't return `this'. 1385590075Sobrien * cp-tree.h (warn_reorder): Declare. 1385690075Sobrien (special_function_kind): New enum. 1385790075Sobrien (global_base_init_list): Remove declaration. 1385890075Sobrien (emit_base_init): Don't return a value. 1385990075Sobrien (check_base_init): Don't declare. 1386090075Sobrien (is_aggr_typedef): Likewise. 1386190075Sobrien * decl.c (check_special_function_return_type): New function. 1386290075Sobrien (return_types): Remove. 1386390075Sobrien (grokdeclarator): Use check_special_function_return_type. 1386490075Sobrien (start_function): Don't initialize ctor_label under the new ABI. 1386590075Sobrien (finish_construtor_body): Don't create a corresponding LABEL_STMT. 1386690075Sobrien * init.c (begin_init_stmts): Move to top of file. 1386790075Sobrien (finish_init_stmts): Likewise. 1386890075Sobrien (warn_reorder): Don't declare. 1386990075Sobrien (emit_base_init): Don't create a STMT_EXPR here. Don't return a 1387090075Sobrien value. 1387190075Sobrien (check_base_init): Remove. 1387290075Sobrien (is_aggr_typedef): Likewise. 1387390075Sobrien (build_new_1): Don't use the return value of a constructor. 1387490075Sobrien * semantics.c (setup_vtbl_ptr): Don't use the return value 1387590075Sobrien of emit_base_init. 1387690075Sobrien * typeck.c (check_return_expr): Don't magically convert return 1387790075Sobrien statements into `return this' in constructors under the new ABI. 1387818334Speter 1387990075Sobrien * cp-tree.h (cp_tree_index): Add CPTI_BASE_CTOR_IDENTIFIER, 1388090075Sobrien CPTI_BASE_DTOR_IDENTIFIER, and CPTI_DELETING_DTOR_IDENTIFIER. 1388190075Sobrien (base_ctor_identifier): New macro. 1388290075Sobrien (base_dtor_identifier): Likewise. 1388390075Sobrien (deleting_dtor_identifier): Likewise. 1388490075Sobrien * decl.c: Don't include obstack.h. 1388590075Sobrien (obstack_chunk_alloc): Don't define. 1388690075Sobrien (obstack_chunk_free): Likewise. 1388790075Sobrien (struct predefined_identifier): New type. 1388890075Sobrien (initialize_predefined_identifiers): New function. 1388990075Sobrien (init_decl_processing): Use it. 1389090075Sobrien (debug_temp_inits): Remove. 1389190075Sobrien (start_method): Don't call preserve_data. 1389290075Sobrien (hack_incomplete_structures): Update comment. 1389390075Sobrien * init.c (init_init_processing): Don't initialize 1389490075Sobrien nelts_identifier. 1389590075Sobrien (build_offset_rf): Remove dead code. 1389690075Sobrien (build_delete): Use CLASSTYPE_N_BASECLASSES. 1389790075Sobrien * search.c (init_search_processing): Don't initialize 1389890075Sobrien vptr_identifier. 1389918334Speter 1390090075Sobrien2000-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1390118334Speter 1390290075Sobrien * typeck.c (build_binary_op): Call `tree_expr_nonnegative_p' to elide 1390390075Sobrien some sign_compare warnings. 1390418334Speter 1390590075Sobrien2000-04-07 Nathan Sidwell <nathan@codesourcery.com> 1390618334Speter 1390790075Sobrien Rename abi::__vmi_class_type_info members. 1390890075Sobrien * inc/cxxabi.h (__vmi_class_type_info): Rename details, n_bases, 1390990075Sobrien base_list, detail_masks members to vmi_flags, vmi_base_count, 1391090075Sobrien vmi_bases and vmi_flags_masks respectively. 1391190075Sobrien (__vmi_class_type_info::vmi_flags_masks): Rename 1391290075Sobrien details_unknown_mask to flags_unknown_mask. 1391390075Sobrien * tinfo.cc (__class_type_info::do_upcast): Adjust. 1391490075Sobrien (__vmi_class_type_info::do_find_public_src): Adjust. 1391590075Sobrien (__vmi_class_type_info::do_dyncast): Adjust. 1391690075Sobrien (__vmi_class_type_info::do_upcast): Adjust. 1391718334Speter 1391890075Sobrien2000-04-07 Nathan Sidwell <nathan@codesourcery.com> 1391918334Speter 1392090075Sobrien * tinfo.cc (convert_to_base): New function. 1392190075Sobrien (get_vbase_offset): Remove. Move into convert_to_base. 1392290075Sobrien (__vmi_class_type_info::do_find_public_src): Adjust. 1392390075Sobrien (__vmi_class_type_info::do_dyncast): Adjust. 1392490075Sobrien (__vmi_class_type_info::do_upcast): Adjust. 1392518334Speter 1392690075Sobrien2000-04-06 Jason Merrill <jason@yorick.cygnus.com> 1392718334Speter 1392890075Sobrien * tinfo.cc (operator=): Use __builtin_strcmp. 1392990075Sobrien * tinfo2.cc (before): Likewise. 1393018334Speter 1393190075Sobrien2000-04-06 Mark Mitchell <mark@codesourcery.com> 1393218334Speter 1393390075Sobrien * cp-tree.h (lang_decl_flags): Rename saved_inline to deferred. 1393490075Sobrien (DECL_SAVED_INLINE): Rename to ... 1393590075Sobrien (DECL_DEFERRED_FN): ... this. 1393690075Sobrien (in_function_p): Remove declaration. 1393790075Sobrien (mark_inline_for_output): Rename to ... 1393890075Sobrien (defer_fn): ... this. 1393990075Sobrien * decl.c (finish_function): Adjust call to mark_inline_for_output. 1394090075Sobrien (in_function_p): Remove definition. 1394190075Sobrien * decl2.c (saved_inlines): Rename to ... 1394290075Sobrien (deferred_fns): ... this. 1394390075Sobrien (saved_inlines_used): Rename to ... 1394490075Sobrien (deferred_fns_used): ... this. 1394590075Sobrien (mark_inline_for_output): Rename to ... 1394690075Sobrien (defer_fn): ... this. 1394790075Sobrien (finish_file): Adjust accordingly. 1394890075Sobrien (init_decl2): Likewise. 1394990075Sobrien * lex.c (cons_up_default_function): Likewise. 1395090075Sobrien * pt.c (mark_decl_instantiated): Likewise. 1395190075Sobrien (instantiate_decl): Don't set DECL_DEFER_OUTPUT under any 1395290075Sobrien circumstances. 1395390075Sobrien * rtti.c (get_tinfo_decl): Adjust call to mark_inline_for_output. 1395490075Sobrien * semantics.c (expand_body): Defer more functions. 1395518334Speter 1395690075Sobrien2000-04-06 Nathan Sidwell <nathan@codesourcery.com> 1395718334Speter 1395890075Sobrien * vec.cc: New file. 1395990075Sobrien * Make-lang.in (CXX_LIB2FUNCS): Add it. 1396090075Sobrien (vec.o): Build it. 1396190075Sobrien * inc/cxxabi.h (__cxa_vec_new, __cxa_vec_ctor, __cxa_vec_dtor, 1396290075Sobrien __cxa_vec_delete): Declare. 1396318334Speter 1396490075Sobrien2000-04-06 Nathan Sidwell <nathan@codesourcery.com> 1396518334Speter 1396690075Sobrien * rtti.c (dfs_class_hint_mark): New static function. 1396790075Sobrien (dfs_class_hint_unmark): New static function. 1396890075Sobrien (class_hint_flags): Use them. 1396918334Speter 1397090075Sobrien2000-04-05 Benjamin Kosnik <bkoz@cygnus.com> 1397118334Speter 1397290075Sobrien * decl2.c: Make flag_honor_std dependent on ENABLE_STD_NAMESPACE. 1397318334Speter 1397490075Sobrien2000-04-05 Mark Mitchell <mark@codesourcery.com> 1397518334Speter 1397690075Sobrien * cp-tree.h (instantiate_decl): Change prototype. 1397790075Sobrien * decl2.c (mark_used): Adjust call. 1397890075Sobrien * optimize.c (inlinable_function_p): Adjust handling of templates. 1397990075Sobrien * pt.c (do_decl_instantiation): Adjust call to instantiate_decl. 1398090075Sobrien (do_type_instantiation): Likewise. 1398190075Sobrien (instantiate_decl): Defer more templates. 1398290075Sobrien (instantiate_pending_templates): Adjust logic to handle inline 1398390075Sobrien friend functions. 1398418334Speter 1398590075Sobrien * Makefile.in (GGC_H): New variable. Use it throughout in place 1398690075Sobrien of ggc.h. 1398718334Speter 1398890075Sobrien * call.c: Don't include obstack.h. Include ggc.h. 1398990075Sobrien (obstack_chunk_alloc): Don't define. 1399090075Sobrien (obstack_chunk_free): Likewise. 1399190075Sobrien (add_candidate): Allocate the z_candidate with ggc_alloc_obj. 1399290075Sobrien * decl.c (push_switch): Use xmalloc to allocate the cp_switch. 1399390075Sobrien (pop_switch): Free it. 1399418334Speter 1399590075Sobrien * decl2.c (grokclassfn): Set TREE_READONLY for PARM_DECLs. 1399618334Speter 1399790075Sobrien * dump.c (dequeue_and_dump): Don't try to print the bit_position 1399890075Sobrien if we don't have a DECL_FIELD_OFFSET. 1399918334Speter 1400090075SobrienWed Apr 5 15:12:18 MET DST 2000 Jan Hubicka <jh@suse.cz> 1400118334Speter 1400290075Sobrien * optimize.c (calls_setjmp_r): Use setjmp_call_p instead of 1400390075Sobrien special_function_p. 1400418334Speter 1400590075Sobrien2000-04-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1400618334Speter 1400790075Sobrien * cfns.gperf (hash, libc_name_p): Prototype. 1400818334Speter 1400990075Sobrien * rtti.c (build_dynamic_cast_1): Constification. 1401018334Speter 1401190075Sobrien * search.c (dfs_debug_unmarkedp, dfs_debug_mark): Unhide prototypes. 1401218334Speter 1401390075Sobrien * semantics.c (deferred_type_access_control): Prototype. 1401418334Speter 1401590075Sobrien2000-04-04 Mark Mitchell <mark@codesourcery.com> 1401618334Speter 1401790075Sobrien Correct many new ABI issues regarding vbase and vcall offset 1401890075Sobrien layout. 1401990075Sobrien * cp-tree.h (BINFO_VTABLE): Document. 1402090075Sobrien (struct lang_type): Tweak formatting. 1402190075Sobrien (BINFO_PRIMARY_BINFO): Add to documentation. 1402290075Sobrien (CLASSTYPE_VSIZE): Fix typo in comment. 1402390075Sobrien (CLASSTYPE_VBASECLASSES): Update documentation. 1402490075Sobrien (BINFO_VBASE_MARKED): Remove. 1402590075Sobrien (SET_BINFO_VBASE_MARKED): Likewise. 1402690075Sobrien (CLEAR_BINFO_VBASE_MARKED): Likewise. 1402790075Sobrien (BINFO_FIELDS_MARKED): Remove. 1402890075Sobrien (SET_BINFO_FIELDS_MARKED): Likewise. 1402990075Sobrien (CLEAR_BINFO_FIELDS_MARKED): Likewise. 1403090075Sobrien (enum access_kind): New enumeration. 1403190075Sobrien (num_extra_vtbl_entries): Remove declaration. 1403290075Sobrien (size_extra_vtbl_entries): Likewise. 1403390075Sobrien (get_vtbl_decl_for_binfo): New function. 1403490075Sobrien (dfs_vbase_unmark): Remove declaration. 1403590075Sobrien (mark_primary_bases): Likewise. 1403690075Sobrien * class.c (SAME_FN): Remove. 1403790075Sobrien (struct vcall_offset_data_s): Move definition. 1403890075Sobrien (build_vbase_pointer): Use `build', not `build_binary_op', to 1403990075Sobrien access the vbase pointer under the new ABI. 1404090075Sobrien (build_vtable_entry_ref): Use get_vtbl_decl_for_binfo. 1404190075Sobrien (build_primary_vtable): Likewise. 1404290075Sobrien (dfs_mark_primary_bases): Move here from search.c. 1404390075Sobrien (mark_primary_bases): Likewise. 1404490075Sobrien (determine_primary_bases): Under the new ABI, don't make a base 1404590075Sobrien class a primary base just because we don't yet have any virtual 1404690075Sobrien functions. 1404790075Sobrien (layout_vtable_decl): Use get_vtbl_decl_for_binfo. 1404890075Sobrien (num_vfun_entries): Remove. 1404990075Sobrien (dfs_count_virtuals): Likewise. 1405090075Sobrien (num_extra_vtbl_entries): Likewise. 1405190075Sobrien (size_extra_vtbl_entries): Likewise. 1405290075Sobrien (layout_virtual_bases): Iterate in inheritance graph order under 1405390075Sobrien the new ABI. 1405490075Sobrien (finish_struct_1): Use TYPE_VFIELD, not CLASSTYPE_VSIZE, to 1405590075Sobrien indicate that a vfield is present. 1405690075Sobrien (init_class_processing): Initialize access_public_node, etc., from 1405790075Sobrien ak_public, etc. 1405890075Sobrien (get_vtbl_decl_for_binfo): New function. 1405990075Sobrien (dump_class_hierarchy_r): Likewise. 1406090075Sobrien (dump_class_hierarchy): Use it. 1406190075Sobrien (finish_vtbls): Build the vtbls in inheritance graph order. 1406290075Sobrien (dfs_finish_vtbls): Adjust call to build_vtbl_initializer. 1406390075Sobrien (initialize_vtable): Use get_vtbl_decl_for_binfo. 1406490075Sobrien (accumulate_vtbl_inits): Add comments explaining why a pre-order 1406590075Sobrien walk is required. 1406690075Sobrien (dfs_accumulate_vtbl_inits): Set BINFO_VTABLE to the location 1406790075Sobrien where the vptr points, even for primary vtables. 1406890075Sobrien (build_vtbl_initializer): Adjust handling of vbase and vcall 1406990075Sobrien offsets. 1407090075Sobrien (build_vcall_and_vbase_vtable_entries): New function. 1407190075Sobrien (dfs_build_vbase_offset_vtbl_entries): Remove. 1407290075Sobrien (build_vbase_offset_vtbl_entries): Reimplement. 1407390075Sobrien (dfs_build_vcall_offset_vtbl_entries): Don't include virtuals that 1407490075Sobrien were already handled in a primary base class vtable. 1407590075Sobrien (build_vcall_offset_vtbl_entries): Adjust. 1407690075Sobrien (build_rtti_vtbl_entries): Adjust. 1407790075Sobrien * decl2.c (output_vtable_inherit): Use get_vtbl_decl_for_binfo. 1407890075Sobrien * init.c (expand_virtual_init): Simplify. 1407990075Sobrien * repo.c (repo_get_id): Use get_vtbl_decl_for_binfo. 1408090075Sobrien * rtti.c (create_pseudo_type_info): Adjust calculation of vptr. 1408190075Sobrien * search.c (BINFO_ACCESS): New macro. 1408290075Sobrien (SET_BINFO_ACCESS): Likewise. 1408390075Sobrien (dfs_access_in_type): Manipulate access_kinds, not access nodes. 1408490075Sobrien (access_in_type): Likewise. 1408590075Sobrien (dfs_accessible_p): Likewise. 1408690075Sobrien (protected_accessible_p): Likewise. 1408790075Sobrien (lookup_fnfields_1): Adjust documentation. 1408890075Sobrien (dfs_mark_primary_bases): Move to class.c 1408990075Sobrien (mark_primary_bases): Likewise. 1409090075Sobrien (dfs_vbase_unmark): Remove. 1409190075Sobrien (virtual_context): Use BINFO_FOR_VBASE. 1409290075Sobrien (dfs_get_vbase_types): Simplify. 1409390075Sobrien (dfs_build_inheritance_graph_order): New function. 1409490075Sobrien (get_vbase_types): Use it. 1409590075Sobrien * tree.c (debug_binfo): Use get_vtbl_decl_for_binfo. 1409618334Speter 1409790075Sobrien * tinfo.cc (get_vbase_offset): New function. 1409890075Sobrien (__vmi_class_type_info::do_find_public_src): Use it. 1409990075Sobrien (__vmi_class_type_info::do_dyncast): Likewise. 1410090075Sobrien (__vmi_class_type_info::do_upcast): Likewise. 1410118334Speter 1410290075Sobrien2000-04-03 Zack Weinberg <zack@wolery.cumb.org> 1410318334Speter 1410490075Sobrien * lang-specs.h: Pass -fno-show-column to the preprocessor. 1410518334Speter 1410690075Sobrien2000-03-30 Nathan Sidwell <nathan@codesourcery.com> 1410718334Speter 1410890075Sobrien * rtti.c (class_hint_flags): Rename flags. 1410990075Sobrien (class_initializer): Remove flags. 1411090075Sobrien (synthesize_tinfo_var): Combine offset and flags. Add flags 1411190075Sobrien for __vmi_class_type_info. 1411290075Sobrien (create_tinfo_types): Remove flags from __class_type_info and 1411390075Sobrien __si_class_type_info. Merge flags and offset from 1411490075Sobrien base_class_type_info. 1411590075Sobrien * inc/cxxabi.h (__base_class_info): Merge offset and vmi_flags. 1411690075Sobrien (__base_class_info::is_virtual_p): Adjust. 1411790075Sobrien (__base_class_info::is_public_p): Adjust. 1411890075Sobrien (__base_class_info::offset): New accessor. 1411990075Sobrien (__class_type_info::details): Remove member. 1412090075Sobrien (__class_type_info::__class_type_info): Lose details. 1412190075Sobrien (__class_type_info::detail_masks): Remove. 1412290075Sobrien (__si_class_type_info::__si_class_type_info): Lose details. 1412390075Sobrien (__vmi_class_type_info::details): New member. 1412490075Sobrien (__vmi_class_type_info::__vmi_class_type_info): Adjust. 1412590075Sobrien (__vmi_class_type_info::detail_masks): New member. 1412690075Sobrien * tinfo.cc (__class_type_info::do_upcast): Initialize result 1412790075Sobrien with unknown_details_mask. 1412890075Sobrien (__vmi_class_type_info::do_find_public_src): Adjust 1412990075Sobrien (__vmi_class_type_info::do_dyncast): Adjust. 1413090075Sobrien (__vmi_class_type_info::do_upcast): Set result details, if 1413190075Sobrien needed. Adjust. 1413290075Sobrien (__dynamic_cast): Temporarily #if out optimization. 1413318334Speter 1413490075Sobrien2000-03-29 Nathan Sidwell <nathan@codesourcery.com> 1413518334Speter 1413690075Sobrien * rtti.c (get_tinfo_decl): Mark used. 1413790075Sobrien (emit_tinfo_decl): Don't optimize polymorphic type_info. Only 1413890075Sobrien mark as dealt with, if we output it. 1413918334Speter 1414090075Sobrien2000-03-28 Mark Mitchell <mark@codesourcery.com> 1414118334Speter 1414290075Sobrien * class.c: Reorganize to put virtual function table initialization 1414390075Sobrien machinery at the end of the file. 1414418334Speter 1414590075Sobrien2000-03-28 Jason Merrill <jason@casey.cygnus.com> 1414618334Speter 1414790075Sobrien * class.c (finish_struct): Use bitsize_zero_node. 1414890075Sobrien * pt.c (instantiate_class_template): Likewise. 1414918334Speter 1415090075Sobrien2000-03-28 Mark Mitchell <mark@codesourcery.com> 1415118334Speter 1415290075Sobrien Put RTTI entries at negative offsets in new ABI. 1415390075Sobrien * class.c (dfs_build_vbase_offset_vtbl_entries): Put the first 1415490075Sobrien vbase offset at index -3, not -1. 1415590075Sobrien (build_vtabe_offset_vtbl_entries): Use unmarked_vtable_pathp, not 1415690075Sobrien dfs_vtable_path_unmarked_real_bases_queue_p to walk bases. 1415790075Sobrien (dfs_build_vcall_offset_vtbl_entries): Don't use skip_rtti_stuff. 1415890075Sobrien (build_rtti_vtbl_entries): New function. 1415990075Sobrien (set_rtti_entry): Remove. 1416090075Sobrien (build_primary_vtable): Don't use it. 1416190075Sobrien (build_secondary_vtable): Likewise. 1416290075Sobrien (start_vtable): Remove. 1416390075Sobrien (first_vfun_index): New function. 1416490075Sobrien (set_vindex): Likewise. 1416590075Sobrien (add_virtual_function): Don't call start_vtable. Do call 1416690075Sobrien set_vindex. 1416790075Sobrien (set_primary_base): Rename parameter. 1416890075Sobrien (determine_primary_base): Likewise. 1416990075Sobrien (num_vfun_entries): Don't use skip_rtti_stuff. 1417090075Sobrien (num_extra_vtbl_entries): Include RTTI information. 1417190075Sobrien (build_vtbl_initializer): Use build_rtti_vtbl_entries. 1417290075Sobrien (skip_rtti_stuff): Remove. 1417390075Sobrien (dfs_modify_vtables): Don't use it. 1417490075Sobrien (modify_all_vtables): Don't use start_vtable. Do use set_vindex. 1417590075Sobrien (layout_nonempty_base_or_field): Update size handling. 1417690075Sobrien (create_vtable_ptr): Tweak. 1417790075Sobrien (layout_class_type): Adjust parameter names. 1417890075Sobrien (finish_struct_1): Simplify. 1417990075Sobrien * cp-tree.h (CLASSTYPE_VSIZE): Tweak documentation. 1418090075Sobrien (skip_rtti_stuff): Remove. 1418190075Sobrien (first_vfun_index): New function. 1418290075Sobrien (dfs_vtable_path_unmarked_real_bases_queue_p): Remove. 1418390075Sobrien (dfs_vtable_path_marked_real_bases_queue_p): Remove. 1418490075Sobrien (marked_vtable_pathp): Declare. 1418590075Sobrien (unmarked_vtable_pathp): Likewise. 1418690075Sobrien * error.c (dump_expr): Use first_vfun_index to calculate vtable 1418790075Sobrien offsets. 1418890075Sobrien * rtti.c (build_headof): Look for RTTI at negative offsets. 1418990075Sobrien (get_tinfo_decl_dynamic): Likewise. 1419090075Sobrien (tinfo_base_init): Don't take the address of the TINFO_VTABLE_DECL 1419190075Sobrien here. 1419290075Sobrien (create_pseudo_type_info): Do it here instead. Adjust so that 1419390075Sobrien vptr points at first virtual function. 1419490075Sobrien * search.c (marked_vtable_pathp): Make it global. 1419590075Sobrien (unmarked_vtable_pathp): Likewise. 1419690075Sobrien (dfs_vtable_path_unmarked_real_bases_queue_p): Remove. 1419790075Sobrien (dfs_vtable_path_marked_real_bases_queue_p): Likewise. 1419890075Sobrien (dfs_get_pure_virtuals): Don't use skip_rtti_stuff. 1419990075Sobrien (get_pure_virtuals): Likewise. 1420090075Sobrien (expand_upcast_fixups): Likewise. 1420190075Sobrien * tree.c (debug_binfo): Likewise. 1420290075Sobrien * tinfo.cc (__dynamic_cast): Look for vtable_prefix at appropriate 1420390075Sobrien negative offset. 1420418334Speter 1420590075SobrienSun Mar 26 20:15:26 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 1420618334Speter 1420790075Sobrien * class.c (check_field_decl): Fix typo. 1420890075Sobrien (build_vtbl_or_vbase_field): Don't clear DECL_SAVED_INSNS. 1420990075Sobrien (check_methods): Likewise. 1421090075Sobrien (check_field_decls): Likewise. 1421190075Sobrien Use DECL_CONTEXT, not DECL_FIELD_CONTEXT. 1421290075Sobrien * cp-tree.h (DECL_SHADOWED_FOR_VAR, DECL_TEMPLATE_RESULT): 1421390075Sobrien Use DECL_RESULT_FLD, not DECL_RESULT. 1421490075Sobrien * decl.c (xref_tag): Use DECL_TEMPLATE_RESULT. 1421590075Sobrien * lex.c (identifier_type): Likewise. 1421690075Sobrien * pt.c (determine_specialization, lookup_template_class): Likewise. 1421790075Sobrien (tsubst_friend_function, tsubst_decl, instantiate_template): Likewise. 1421890075Sobrien (resolve_overloaded_unification, more_specialized): Likewise. 1421990075Sobrien * semantics.c (finish_member_declaration): Likewise. 1422090075Sobrien * typeck.c (build_x_function_call): Likewise. 1422118334Speter 1422290075Sobrien2000-03-26 Mark Mitchell <mark@codesourcery.com> 1422318334Speter 1422490075Sobrien * class.c (layout_empty_base): Handle empty bases with non-byte 1422590075Sobrien alignment. 1422690075Sobrien (build_base_field): Likewise. 1422790075Sobrien (layout_virtual_bases): Likewise. 1422818334Speter 1422990075Sobrien * class.c (finish_struct_1): Fix typo in this change: 1423018334Speter 1423190075Sobrien Sat Mar 25 09:12:10 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 1423218334Speter 1423390075Sobrien2000-03-25 Mark Mitchell <mark@codesourcery.com> 1423418334Speter 1423590075Sobrien * decl.c (grokdeclarator): Count partial specializations when 1423690075Sobrien keeping track of how many template classes have been seen. 1423718334Speter 1423890075Sobrien * dump.c (dequeue_and_dump): Dump DECL_TEMPLATE_RESULT. 1423918334Speter 1424090075SobrienSat Mar 25 09:12:10 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 1424118334Speter 1424290075Sobrien * class.c (build_vbase_pointer_fields): layout_field now place_field. 1424390075Sobrien (get_vfield_offset): Use byte_position. 1424490075Sobrien (set_rtti_entry): Set OFFSET to ssizetype zero. 1424590075Sobrien (get_binfo_offset_as_int): Deleted. 1424690075Sobrien (dfs_record_base_offsets): Use tree_low_cst. 1424790075Sobrien (dfs_search_base_offsets): Likewise. 1424890075Sobrien (layout_nonempty_base_or_field): Reflect changes in RLI format 1424990075Sobrien and call byte_position. 1425090075Sobrien (layout_empty_base): Convert offset to ssizetype. 1425190075Sobrien (build_base_field): use rli_size_unit_so_far. 1425290075Sobrien (dfs_propagate_binfo_offsets): Do computation in proper type. 1425390075Sobrien (layout_virtual_bases): Pass ssizetype to propagate_binfo_offsets. 1425490075Sobrien (layout_class_type): Reflect changes in RLI names and fields. 1425590075Sobrien (finish_struct_1): Set DECL_FIELD_OFFSET. 1425690075Sobrien * dump.c (dequeue_and_dump): Call bit_position. 1425790075Sobrien * expr.c (cplus_expand_constant): Use byte_position. 1425890075Sobrien * rtti.c (expand_class_desc): Use bitsize_one_node. 1425990075Sobrien * typeck.c (build_component_addr): Use byte_position and don't 1426090075Sobrien special case for zero offset. 1426118334Speter 1426290075Sobrien2000-03-24 Nathan Sidwell <nathan@codesourcery.com> 1426318334Speter 1426490075Sobrien * decl.c (vtype_decl_p): Use TYPE_POLYMORPHIC_P. 1426518334Speter 1426690075Sobrien * rtti.c (get_tinfo_decl): Set comdat linkage on new-abi 1426790075Sobrien tinfo object. 1426890075Sobrien (emit_tinfo_decl): Only emit polymorphic tinfo's when emitting 1426990075Sobrien vtable. 1427018334Speter 1427190075Sobrien2000-03-20 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> 1427218334Speter 1427390075Sobrien * call.c (check_dtor_name, build_new_method_call): Use TYPE_P and 1427490075Sobrien DECL_P macros. 1427590075Sobrien * decl.c (push_class_binding, poplevel, pushtag, lookup_namespace_name, 1427690075Sobrien make_typename_type, check_initializer, cp_finish_decl, 1427790075Sobrien xref_tag): Likewise. 1427890075Sobrien * decl2.c (grokfield, build_expr_from_tree, build_expr_from_tree, 1427990075Sobrien decl_namespace, arg_assoc_template_arg, arg_assoc, 1428090075Sobrien validate_nonmember_using_decl, do_class_using_decl): Likewise. 1428190075Sobrien * error.c (dump_template_argument, dump_expr, cp_file_of, cp_line_of, 1428290075Sobrien args_to_string): Likewise. 1428390075Sobrien * friend.c (is_friend): Likewise. 1428490075Sobrien * lex.c (note_got_semicolon, note_list_got_semicolon, 1428590075Sobrien is_global): Likewise. 1428690075Sobrien * method.c (build_overload_nested_name, build_overload_value, 1428790075Sobrien build_qualified_name, build_qualified_name, hack_identifier): Likewise. 1428890075Sobrien * parse.y (typename_sub, typename_sub1): Likewise. 1428990075Sobrien * pt.c (push_inline_template_parms_recursive, check_template_shadow, 1429090075Sobrien process_partial_specialization, convert_template_argument, 1429190075Sobrien template_args_equal, add_pending_template, lookup_template_class, 1429290075Sobrien for_each_template_parm_r, maybe_fold_nontype_arg, 1429390075Sobrien tsubst, instantiate_template, type_unification_real, unify, 1429490075Sobrien instantiate_pending_templates, set_mangled_name_for_template_decl): 1429590075Sobrien Likewise. 1429690075Sobrien * repo.c (repo_get_id, repo_template_used): Likewise. 1429790075Sobrien * search.c (lookup_field_1): Likewise. 1429890075Sobrien * tree.c (walk_tree, get_type_decl, cp_tree_equal, member_p): Likewise. 1429990075Sobrien * xref.c (classname): Likewise. 1430018334Speter 1430190075Sobrien2000-03-22 Mark Mitchell <mark@codesourcery.com> 1430218334Speter 1430390075Sobrien * cp-tree.h (BINFO_FOR_VBASE): Adjust documentation. 1430490075Sobrien (CANONICAL_BINFO): New macro. 1430590075Sobrien (BINFO_NEW_VTABLE_MARKED): Use it. 1430690075Sobrien (SET_BINFO_NEW_VTABLE_MARKED): Likewise. 1430790075Sobrien (CLEAR_BINFO_NEW_VTABLE_MARKED): Likewise. 1430890075Sobrien * class.c (dfs_build_vbase_offset_vtbl_entries): Use BINFO_TYPE, 1430990075Sobrien not TREE_TYPE. 1431090075Sobrien (build_primary_vtable): Adjust usage of BINFO_NEW_VTABLE_MARKED. 1431190075Sobrien (build_secondary_vtable): Likewise. 1431290075Sobrien (dfs_finish_vtbls): Likewise. 1431390075Sobrien (dfs_accumulate_vtbl_inits): Likewise. 1431490075Sobrien (accumulate_vtbl_inits): New function. 1431590075Sobrien (finish_vtbls): Make sure that virtual bases come after 1431690075Sobrien non-virtual bases in the vtable group. 1431790075Sobrien (record_base_offsets): Don't save and restore TREE_VIA_VIRTUAL. 1431890075Sobrien (finish_struct_1): Adjust usage of BINFO_NEW_VTABLE_MARKED. 1431990075Sobrien * search.c (struct vbase_info): Move definition. 1432090075Sobrien (marked_new_vtable_p): Adjust usage of BINFO_NEW_VTABLE_MARKED. 1432190075Sobrien (unmarked_new_vtable_p): Likewise. 1432290075Sobrien (dfs_mark_vtable_path): Remove. 1432390075Sobrien (dfs_mark_new_vtable): Remove. 1432490075Sobrien (dfs_unmark_new_vtable): Likewise. 1432590075Sobrien (dfs_clear_search_slot): Likewise. 1432690075Sobrien (dfs_find_vbases): Adjust usage of BINFO_NEW_VTABLE_MARKED. 1432790075Sobrien (dfs_clear_vbase_slots): Likewise. 1432890075Sobrien (init_vbase_pointers): LIkewise. 1432918334Speter 1433090075Sobrien2000-03-22 Jason Merrill <jason@casey.cygnus.com> 1433118334Speter 1433290075Sobrien * typeck.c (type_after_usual_arithmetic_conversions): Prefer a 1433390075Sobrien SIZETYPE to a non-SIZETYPE. 1433418334Speter 1433590075Sobrien2000-03-21 Mark Mitchell <mark@codesourcery.com> 1433618334Speter 1433790075Sobrien * class.c (layout_virtual_bases): Adjust names in conditionally 1433890075Sobrien compiled code. 1433918334Speter 1434090075Sobrien * class.c (record_base_offsets): New function. 1434190075Sobrien (layout_conflict_p): Likewise. 1434290075Sobrien (layout_nonempty_base_or_field): Use it. 1434390075Sobrien (layout_empty_base): New function. 1434490075Sobrien (build_base_field): Use it. 1434590075Sobrien (build_base_fields): Update comment. 1434690075Sobrien (layout_virtual_bases): Fold in a little code form 1434790075Sobrien layout_basetypes. Use layout_empty_base. 1434890075Sobrien (layout_basetypes): Remove. 1434990075Sobrien (end_of_class): New function. 1435090075Sobrien (layout_class_type): Use it. Adjust. 1435118334Speter 1435290075Sobrien * cp-tree.h (CLASSTYPE_VBASECLASSES): Fix typo in comment. 1435390075Sobrien (fntype_p): Remove. 1435490075Sobrien * search.c (dfs_skip_nonprimary_vbases_unmarkedp): Fix typo in 1435590075Sobrien comment. 1435690075Sobrien (dfs_skip_nonprimary_vbases_markedp): Likewise. 1435790075Sobrien * typeck.c (fntype_p): Remove. 1435818334Speter 1435990075Sobrien * cp-tree.h (TI_SPEC_INFO): Remove. 1436090075Sobrien (CLASSTYPE_TI_SPEC_INFO): Likewise. 1436190075Sobrien * pt.c (process_partial_specialization): Likewise. 1436218334Speter 1436390075Sobrien * class.c (build_base_field): Fix thinko in computation of binfo 1436490075Sobrien offsets. 1436518334Speter 1436690075Sobrien * tree.c (mark_local_for_remap_p): Mark variables declared in 1436790075Sobrien TARGET_EXPRs as well. 1436818334Speter 1436990075Sobrien2000-03-21 Nathan Sidwell <nathan@codesourcery.com> 1437018334Speter 1437190075Sobrien * typeck.c (require_complete_type, complete_type, 1437290075Sobrien complete_type_or_else, c_sizeof, c_sizeof_nowarn, 1437390075Sobrien build_array_ref, convert_arguments, pointer_diff, 1437490075Sobrien build_x_unary_op, build_unary_op, build_c_cast, 1437590075Sobrien build_modify_expr): Use COMPLETE_TYPE_P etc. 1437690075Sobrien * call.c (is_complete, convert_like_real, 1437790075Sobrien build_new_method_call): Likewise. 1437890075Sobrien * class.c (build_vbase_pointer_fields, check_bases, 1437990075Sobrien build_base_field, finish_struct_1, pushclass): Likewise. 1438090075Sobrien * cvt.c (cp_convert_to_pointer, convert_to_void): Likewise. 1438190075Sobrien * decl.c (maybe_process_template_type_declaration, pushtag, 1438290075Sobrien pushdecl, redeclaration_error_message, start_decl, start_decl_1, 1438390075Sobrien layout_var_decl, check_initializer, cp_finish_decl, 1438490075Sobrien grokdeclarator, require_complete_types_for_parms, 1438590075Sobrien grok_op_properties, xref_tag, xref_basetypes, 1438690075Sobrien check_function_type): Likewise. 1438790075Sobrien * decl2.c (check_classfn, reparse_absdcl_as_casts): Likewise. 1438890075Sobrien * friend.c (do_friend): Likewise. 1438990075Sobrien * init.c (build_offset_ref): Likewise. 1439090075Sobrien * parse.y (structsp): Likewise. 1439190075Sobrien * pt.c (maybe_process_partial_specialization, 1439290075Sobrien tsubst_friend_function, instantiate_class_template, tsubst, 1439390075Sobrien do_type_instantiation, instantiate_pending_templates): Likewise. 1439490075Sobrien * repo.c (repo_get_id): Likewise. 1439590075Sobrien * rtti.c (build_typeid, get_typeid, build_dynamic_cast_1, 1439690075Sobrien synthesize_tinfo_var, emit_support_tinfos): Likewise. 1439790075Sobrien * search.c (lookup_fnfields_1, lookup_conversions): Likewise. 1439890075Sobrien * semantics.c (begin_class_definition): Likewise. 1439990075Sobrien * tree.c (build_cplus_method_type): Likewise. 1440090075Sobrien * typeck2.c (digest_init, build_functional_cast, 1440190075Sobrien add_exception_specifier): Likewise. 1440290075Sobrien * parse.h, parse.c: Regenerated. 1440318334Speter 1440490075Sobrien2000-03-21 Nathan Sidwell <nathan@codesourcery.com> 1440518334Speter 1440690075Sobrien * inc/cxxabi.h: New header file. Define new-abi entry points. 1440790075Sobrien (__pointer_type_info::target): Rename member to ... 1440890075Sobrien (__pointer_type_info::type): ... here. 1440990075Sobrien (__base_class_info::type): Rename member to ... 1441090075Sobrien (__base_class_info::base): ... here. 1441190075Sobrien * Make-lang.in (CXX_EXTRA_HEADERS): Add cxxabi.h 1441290075Sobrien * cp-tree.h (CPTI_ABI): New global tree enumeration. 1441390075Sobrien (abi_node): New global tree node. 1441490075Sobrien * decl.c (abi_node): Document. 1441590075Sobrien (init_decl_processing): Initialize abi_node. 1441690075Sobrien * rtti.c (build_dynamic_cast_1): Use abi_node for new-abi. 1441790075Sobrien (get_vmi_pseudo_type_info): Likewise. 1441890075Sobrien (create_tinfo_types): Likewise. 1441990075Sobrien (emit_support_tinfos): Likewise. 1442090075Sobrien * tinfo.h (cxxabi.h): Include for new-abi. 1442190075Sobrien Move rtti class definitions to new header file. 1442290075Sobrien * tinfo.cc (abi): Use the namespace. 1442390075Sobrien (std): Move new abi rtti classes from here ... 1442490075Sobrien (__cxxabiv1): ... to here. 1442590075Sobrien * tinfo2.cc (cxxabi.h): Include for new-abi. 1442690075Sobrien Move rtti class definitions to new header file. 1442790075Sobrien (std): Move new abi rtti classes from here ... 1442890075Sobrien (__cxxabiv1): ... to here. 1442990075Sobrien * inc/typeinfo (__class_type_info): Move into __cxxabiv1 1443090075Sobrien namespace. 1443118334Speter 1443290075Sobrien2000-03-20 Jed Wing <jedwin@zloty.ugcs.caltech.edu> 1443390075Sobrien Jason Merrill <jason@casey.cygnus.com> 1443418334Speter 1443590075Sobrien * method.c (build_overload_int): Use host_integerp. 1443618334Speter 1443790075Sobrien2000-03-20 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> 1443818334Speter 1443990075Sobrien * init.c (build_offset_ref): Handle the case of a templated member 1444090075Sobrien function. 1444118334Speter 1444290075Sobrien2000-03-19 Martin v. L�wis <loewis@informatik.hu-berlin.de> 1444318334Speter 1444490075Sobrien * except.c (expand_exception_blocks): Clear catch_clauses_last. 1444518334Speter 1444690075Sobrien2000-03-18 Mark Mitchell <mark@codesourcery.com> 1444718334Speter 1444890075Sobrien * cp-tree.h (CLEAR_DECL_C_BIT_FIELD): New macro. 1444990075Sobrien * class.c (check_bitfield_decl): Turn illegal bitfields into 1445090075Sobrien non-bitfields. 1445190075Sobrien (dfs_propagate_binfo_offsets): Adjust for new size_binop 1445290075Sobrien semantics. 1445390075Sobrien (dfs_offset_for_unshared_vbases): Likewise. 1445490075Sobrien * cvt.c (cp_convert_to_pointer): Convert NULL to a 1445590075Sobrien pointer-to-member correctly under the new ABI. 1445690075Sobrien * expr.c (cplus_expand_constant): Don't use cp_convert when 1445790075Sobrien turning an offset into a pointer-to-member. 1445890075Sobrien * init.c (resolve_offset_ref): Don't adjust pointers-to-members 1445990075Sobrien when dereferencing them under the new ABI. 1446090075Sobrien * typeck.c (get_member_function_from_ptrfunc): Tweak calculation 1446190075Sobrien of pointers-to-members under the new ABI. 1446218334Speter 1446390075Sobrien * class.c (check_bitfield_decl): Remove restriction on really long 1446490075Sobrien bitfields. 1446590075Sobrien (layout_class_type): Implement new ABI handling of bitfields 1446690075Sobrien longer than their types. 1446718334Speter 1446890075Sobrien2000-03-18 Martin v. L�wis <loewis@informatik.hu-berlin.de> 1446918334Speter 1447090075Sobrien * parse.y (extdefs): Call ggc_collect. 1447190075Sobrien * parse.c: Regenerated. 1447218334Speter 1447390075Sobrien2000-03-18 Nathan Sidwell <nathan@codesourcery.com> 1447418334Speter 1447590075Sobrien * class.c (build_base_field): Use TYPE_ALIGN to examine a type. 1447690075Sobrien (note_name_declared_in_class): Use OVL_CURRENT to get at a 1447790075Sobrien potential overload. 1447818334Speter 1447990075SobrienFri Mar 17 08:09:14 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 1448018334Speter 1448190075Sobrien * class.c (build_vbase_path): Use integer_zerop. 1448290075Sobrien (build_vtable_entry): Use tree_low_cst. 1448390075Sobrien (get_vfield_offset): Use bit_position. 1448490075Sobrien (dfs_modify_vtables): New variable vindex_val; `i' is HOST_WIDE_INT. 1448590075Sobrien Use tree_low_cst. 1448690075Sobrien (check_bitfield_decl): Set DECL_SIZE using convert. 1448790075Sobrien (build_base_field): Set DECL_SIZE and DECL_SIZE_UNIT using size_binop. 1448890075Sobrien (layout_virtual_bases): DSIZE is unsigned HOST_WIDE_INT. 1448990075Sobrien Use tree_low_cst. 1449090075Sobrien (finish_struct_1): Use bit_position. 1449190075Sobrien (dump_class_hierarchy): Use tree_low_cst. 1449290075Sobrien * cp-tree.h (min_precision): Add declaration. 1449390075Sobrien * decl.c (xref_tag, xref_basetypes): Use tree_low_cst. 1449490075Sobrien * error.c (dump_type_suffix): Use host_integerp and tree_low_cst. 1449590075Sobrien (dump_expr): Use integer_zerop, host_integerp, and tree_low_cst. 1449690075Sobrien * expr.c (cplus_expand_constant): Use bit_position. 1449790075Sobrien * init.c (build_vec_init): Use host_integerp and tree_low_cst. 1449890075Sobrien * rtti.c (get_base_offset): Use bit_position. 1449990075Sobrien * typeck.c (build_binary_op): Use integer_zerop, compare_tree_int, 1450090075Sobrien host_integerp, and tree_low_cst. 1450190075Sobrien (pointer_int_sum): Use integer_zerop. 1450290075Sobrien (build_component_addr): Use bit_position. 1450318334Speter 1450490075Sobrien2000-03-17 Nathan Sidwell <nathan@codesourcery.com> 1450518334Speter 1450690075Sobrien * typeck.c (require_complete_type): Don't assume size_zero_node. 1450790075Sobrien (complete_type_or_else): Likewise. 1450818334Speter 1450990075Sobrien2000-03-16 Steven Grady <grady@digitaldeck.com> 1451090075Sobrien Jason Merrill <jason@casey.cygnus.com> 1451118334Speter 1451290075Sobrien * rtti.c (build_dynamic_cast_1): Improve diagnostics. 1451318334Speter 1451490075Sobrien2000-03-16 Nathan Sidwell <nathan@codesourcery.com> 1451518334Speter 1451690075Sobrien * decl2.c (grokfield): Bail out if type is error_mark_node. 1451718334Speter 1451890075Sobrien2000-03-15 Nathan Sidwell <nathan@codesourcery.com> 1451918334Speter 1452090075Sobrien * tinfo2.cc (__ptr_to_member_data): Rename to ... 1452190075Sobrien (__pointer_to_member_data): ... here. Adjust. 1452290075Sobrien * rtti.c (create_tinfo_types): Adjust. 1452318334Speter 1452490075Sobrien2000-03-15 Nathan Sidwell <nathan@codesourcery.com> 1452518334Speter 1452690075Sobrien * cp-tree.h (CPTI_REF_DESC_TYPE, ref_desc_type_node): Remove. 1452790075Sobrien * decl.c (ref_desc_type_node): Undocument. 1452890075Sobrien * rtti.c (ptr_ref_initializer): Rename to ... 1452990075Sobrien (ptr_initializer): ... here. Adjust comments. 1453090075Sobrien (ptmd_initializer): Fix comment thinko. 1453190075Sobrien (synthesize_tinfo_var): Remove REFERENCE_TYPE case. 1453290075Sobrien (create_tinfo_types): Remove ref_desc_type_node init. 1453390075Sobrien * tinfo2.cc (__reference_type_info): Remove. 1453418334Speter 1453590075Sobrien2000-03-15 Nathan Sidwell <nathan@codesourcery.com> 1453618334Speter 1453790075Sobrien * decl.c (cp_finish_decl): Remove obsolete comment. 1453818334Speter 1453990075Sobrien * typeck.c (build_ptrmemfunc1): Kill uninitialized warning. 1454018334Speter 1454190075Sobrien2000-03-14 Mark Mitchell <mark@codesourcery.com> 1454218334Speter 1454390075Sobrien * cp-tree.h: Tweak documentation. 1454490075Sobrien * class.c (build_vbase_pointer_fields): Layout the fields, too. 1454590075Sobrien (avoid_overlap): Remove. 1454690075Sobrien (get_binfo_offset_as_int): New function. 1454790075Sobrien (dfs_serach_base_offsets): Likewise. 1454890075Sobrien (layout_nonempty_base_or_field): Likewise. 1454990075Sobrien (build_base_field): Layout fields here. Avoid placing two objects 1455090075Sobrien of the same type at the same address, under the new ABI. 1455190075Sobrien (build_base_fields): Adjust accordingly. 1455290075Sobrien (create_vtable_ptr): Return the new field, but don't attach it to 1455390075Sobrien TYPE_FIELDS. 1455490075Sobrien (remove_base_field): Remove. 1455590075Sobrien (remove_base_fields): Remove. 1455690075Sobrien (layout_basetypes): Adjust accordingly. 1455790075Sobrien (layout_class_type): Call layout_field for each field, rather than 1455890075Sobrien just making a wholesale call to layout_type. 1455918334Speter 1456090075Sobrien2000-03-14 Jeff Sturm <jsturm@sigma6.com> 1456118334Speter 1456290075Sobrien * except.c (expand_throw): Fix typo in _Jv_Sjlj_Throw. 1456318334Speter 1456490075Sobrien2000-03-13 Jason Merrill <jason@casey.cygnus.com> 1456518334Speter 1456690075Sobrien * decl.c (grokfndecl): Set TREE_NOTHROW if TYPE_NOTHROW_P. 1456718334Speter 1456890075Sobrien * except.c (dtor_nothrow): New fn. 1456990075Sobrien (do_pop_exception): Use it. Take type parm. 1457090075Sobrien (push_eh_cleanup): Take type parm. 1457190075Sobrien (expand_start_catch_block): Pass it. 1457290075Sobrien (build_eh_type_type_ref): Accept null type. 1457318334Speter 1457490075Sobrien2000-03-12 Mark Mitchell <mark@codesourcery.com> 1457518334Speter 1457690075Sobrien * cp-tree.h (revert_static_member_fn): Change prototype. 1457790075Sobrien * decl.c (grokfndecl): Adjust call to revert_static_member_fn. 1457890075Sobrien (grok_op_properties): Likewise. 1457990075Sobrien (start_function): Likewise. 1458090075Sobrien (revert_static_member_fn): Simplify. 1458190075Sobrien * pt.c (check_explicit_specialization): Adjust call to 1458290075Sobrien revert_static_member_fn. 1458318334Speter 1458490075Sobrien2000-03-11 Mark Mitchell <mark@codesourcery.com> 1458518334Speter 1458690075Sobrien * cp-tree.h (scope_kind): New type. 1458790075Sobrien (tmpl_spec_kind): Likewise. 1458890075Sobrien (declare_pseudo_global_level): Remove. 1458990075Sobrien (pseudo_global_level_p): Rename to template_parm_scope_p. 1459090075Sobrien (pushlevel): Remove declaration. 1459190075Sobrien (begin_scope): New function. 1459290075Sobrien (finish_scope): Likewise. 1459390075Sobrien (current_tmpl_spec_kind): Likewise. 1459490075Sobrien * decl.c (struct binding_level): Shorten parm_flag to 2 bits. 1459590075Sobrien Shorten keep to 2 bits. Rename pseudo_global to template_parms_p. 1459690075Sobrien Add template_spec_p. 1459790075Sobrien (toplevel_bindings_p): Adjust. 1459890075Sobrien (declare_pseudo_global_level): Remove. 1459990075Sobrien (pseudo_global_level_p): Rename to template_parm_scope_p. 1460090075Sobrien (current_tmpl_spec_kind): New function. 1460190075Sobrien (begin_scope): Likewise. 1460290075Sobrien (finish_scope): Likewise. 1460390075Sobrien (maybe_push_to_top_level): Adjust. 1460490075Sobrien (maybe_process_template_type_declaration): Likewise. 1460590075Sobrien (pushtag): Likewise. 1460690075Sobrien (pushdecl_nonclass_level): Likewise. 1460790075Sobrien (lookup_tag): Likewise. 1460890075Sobrien (grokfndecl): Handle member template specializations. Share 1460990075Sobrien constructor and non-constructor code. 1461090075Sobrien * decl2.c (check_classfn): Handle member template specializations. 1461190075Sobrien * pt.c (begin_template_parm_list): Use begin_scope. 1461290075Sobrien (begin_specialization): Likewise. 1461390075Sobrien (end_specialization): Likewise. 1461490075Sobrien (check_explicit_specialization): Use current_tmpl_spec_kind. 1461590075Sobrien Handle member template specializations. 1461690075Sobrien (end_template_decl): Use finish_scope. Remove call to 1461790075Sobrien get_pending_sizes. 1461890075Sobrien (push_template_decl_real): Remove bogus error message. 1461990075Sobrien (tsubst_decl): Fix typo in code contained in comment. 1462090075Sobrien (instantiate_template): Handle member template specializations. 1462190075Sobrien (most_general_template): Likewise. 1462218334Speter 1462390075Sobrien2000-03-11 Gabriel Dos Reis <gdr@codesourcery.com> 1462418334Speter 1462590075Sobrien * lex.c (whitespace_cr): Compress consecutive calls to warning(). 1462690075Sobrien (do_identifier): Ditto for error(). 1462718334Speter 1462890075Sobrien * pt.c (convert_nontype_argument): Ditto for cp_error(). 1462990075Sobrien (convert_template_argument): Ditto for cp_pedwarn(). 1463018334Speter 1463190075Sobrien2000-03-11 Jason Merrill <jason@casey.cygnus.com> 1463218334Speter 1463390075Sobrien * exception.cc (__check_null_eh_spec): New fn. 1463490075Sobrien * except.c (expand_end_eh_spec): Call it if the spec is throw(). 1463518334Speter 1463690075Sobrien2000-03-10 Jason Merrill <jason@casey.cygnus.com> 1463718334Speter 1463890075Sobrien * decl.c (push_throw_library_fn): Take the FUNCTION_TYPE. 1463990075Sobrien * except.c (expand_end_eh_spec): Add the return type. 1464090075Sobrien * rtti.c (throw_bad_cast): Add the parmtypes. 1464190075Sobrien (throw_bad_typeid): Likewise. 1464218334Speter 1464390075Sobrien * semantics.c (expand_stmt): Only leave out rtl for unused 1464490075Sobrien artificials, and set DECL_IGNORED_P on them as well. 1464590075Sobrien * decl.c (wrapup_globals_for_namespace): Likewise. 1464618334Speter 1464790075Sobrien2000-03-09 Nathan Sidwell <nathan@codesourcery.com> 1464818334Speter 1464990075Sobrien * decl.c (maybe_commonize_var): Skip all artificial decls. 1465090075Sobrien * pt.c (tsubst_decl): Don't copy TREE_ASM_WRITTEN. 1465118334Speter 1465290075Sobrien2000-03-10 Jason Merrill <jason@casey.cygnus.com> 1465318334Speter 1465490075Sobrien * lang-options.h, decl2.c: Add -fno-enforce-eh-specs. 1465590075Sobrien * cp-tree.h: Declare flag_enforce_eh_specs. 1465690075Sobrien * decl.c (store_parm_decls, finish_function): Check it. 1465718334Speter 1465890075Sobrien C library functions don't throw. 1465990075Sobrien * Makefile.in (cfns.h): New target. 1466090075Sobrien (except.o): Depend on it. 1466190075Sobrien * Make-lang.in (cc1plus): Depend on cfns.gperf. 1466290075Sobrien * cfns.gperf: New file. 1466390075Sobrien * cfns.h: Generated. 1466490075Sobrien * except.c: Include it. 1466590075Sobrien (nothrow_libfn_p): New fn. 1466690075Sobrien * decl.c (grokfndecl): Use it. 1466790075Sobrien * cp-tree.h: Declare it. 1466818334Speter 1466990075Sobrien * decl.c (push_overloaded_decl_1, auto_function, 1467090075Sobrien define_function): Lose. 1467190075Sobrien (build_library_fn_1): New static fn. 1467290075Sobrien (builtin_function): Use it. 1467390075Sobrien (get_atexit_node): Use build_library_fn_ptr. 1467490075Sobrien (build_library_fn, build_cp_library_fn, build_library_fn_ptr, 1467590075Sobrien build_cp_library_fn_ptr, push_library_fn, push_cp_library_fn, 1467690075Sobrien push_void_library_fn, push_throw_library_fn): New fns. 1467790075Sobrien * cp-tree.h: Declare them. 1467890075Sobrien (cp_tree_index): Remove CPTI_BAD_CAST, CPTI_BAD_TYPEID. 1467990075Sobrien (throw_bad_cast_node, throw_bad_typeid_node): Lose. 1468090075Sobrien * except.c (init_exception_processing, call_eh_info, do_pop_exception, 1468190075Sobrien (expand_end_eh_spec, alloc_eh_object, expand_throw): Use above fns. 1468290075Sobrien * rtti.c (build_runtime_decl): Lose. 1468390075Sobrien (throw_bad_cast, throw_bad_typeid, get_tinfo_decl, 1468490075Sobrien build_dynamic_cast_1, expand_si_desc, expand_class_desc, 1468590075Sobrien expand_ptr_desc, expand_attr_desc, expand_generic_desc): Use above fns. 1468618334Speter 1468790075Sobrien * call.c (build_call): Remove result_type parm. 1468890075Sobrien Call mark_used on unused artificial fns. 1468990075Sobrien * init.c, method.c, typeck.c, except.c, rtti.c: Adjust. 1469018334Speter 1469190075Sobrien2000-03-09 Jason Merrill <jason@casey.cygnus.com> 1469218334Speter 1469390075Sobrien * call.c (build_call): Set TREE_NOTHROW on the CALL_EXPR as 1469490075Sobrien appropriate. 1469590075Sobrien * decl.c (define_function): Set TREE_NOTHROW on the FUNCTION_DECL. 1469690075Sobrien * except.c (call_eh_info, alloc_eh_object, expand_throw): Set 1469790075Sobrien TREE_NOTHROW or TREE_THIS_VOLATILE on the function as appropriate. 1469890075Sobrien * rtti.c (build_runtime_decl, get_tinfo_decl, build_dynamic_cast_1, 1469990075Sobrien expand_si_desc, expand_class_desc, expand_ptr_desc, expand_attr_desc, 1470090075Sobrien expand_generic_desc): Likewise. 1470118334Speter 1470290075Sobrien2000-03-08 Nathan Sidwell <nathan@codesourcery.com> 1470318334Speter 1470490075Sobrien * exception.cc (__cp_pop_exception): Cleanup the original object. 1470518334Speter 1470690075Sobrien2000-03-08 Nathan Sidwell <nathan@codesourcery.com> 1470718334Speter 1470890075Sobrien * decl.c (grok_op_properties): Merge conversion to void warning 1470990075Sobrien with other silly op warnings. 1471018334Speter 1471190075Sobrien2000-03-08 Jason Merrill <jason@casey.cygnus.com> 1471218334Speter 1471390075Sobrien * typeck2.c (process_init_constructor): Set TREE_PURPOSE of 1471490075Sobrien array CONSTRUCTOR elements. Don't use expr_tree_cons. 1471518334Speter 1471690075Sobrien2000-03-08 Nathan Sidwell <nathan@codesourcery.com> 1471718334Speter 1471890075Sobrien * decl.c (cp_make_fname_decl): New function. 1471990075Sobrien (wrapup_globals_for_namespace): Don't emit unused static vars. 1472090075Sobrien (init_decl_processing): Remove comment about use of 1472190075Sobrien array_domain_type. Set make_fname_decl. 1472290075Sobrien (cp_finish_decl): Remove __FUNCTION__ nadgering. 1472390075Sobrien * semantics.c (begin_compound_stmt): Remove 1472490075Sobrien current_function_name_declared flagging. 1472590075Sobrien (expand_stmt): Don't emit unused local statics. 1472690075Sobrien * typeck.c (decay_conversion): Don't treat __FUNCTION__ decls 1472790075Sobrien specially. 1472818334Speter 1472990075Sobrien2000-03-08 Nathan Sidwell <nathan@codesourcery.com> 1473018334Speter 1473190075Sobrien * typeck.c (convert_for_assignment): Don't look at array 1473290075Sobrien initializer. 1473390075Sobrien * call.c (convert_like_real): Likewise. 1473450397Sobrien 1473590075Sobrien2000-03-07 Jason Merrill <jason@casey.cygnus.com> 1473650397Sobrien 1473790075Sobrien Add initial support for '\uNNNN' specifier. 1473890075Sobrien * lex.c (read_ucs): New fn. 1473990075Sobrien (readescape, skip_white_space): Call it. 1474090075Sobrien (is_extended_char, is_extended_char_1): New fns. 1474190075Sobrien (utf8_extend_token): New fn, #if 0'd out. 1474290075Sobrien (real_yylex): Treat extended chars like letters. 1474350397Sobrien 1474490075Sobrien * search.c (note_debug_info_needed): Walk the bases even if we 1474590075Sobrien weren't deferring the type itself. 1474650397Sobrien 1474790075Sobrien2000-03-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1474850397Sobrien 1474990075Sobrien * decl2.c (finish_objects): Constify a char*. 1475050397Sobrien 1475190075Sobrien * method.c (emit_thunk): Likewise. 1475250397Sobrien 1475390075Sobrien2000-03-06 Nathan Sidwell <nathan@codesourcery.com> 1475450397Sobrien 1475590075Sobrien * typeck.c (dubious_conversion_warnings): Look through 1475690075Sobrien REFERENCE_TYPE. 1475750397Sobrien 1475890075SobrienMon Mar 6 08:46:47 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 1475918334Speter 1476090075Sobrien * class.c (dfs_modify_vtables): I is now unsigned. 1476190075Sobrien (check_bitfield_decl): Use tree_int_cst_sgn and compare_tree_int. 1476290075Sobrien (build_base_field): Add casts of TREE_INT_CST_LOW to HOST_WIDE_INT. 1476390075Sobrien * error.c (dump_expr): Cast TREE_INT_CST_HIGH to unsigned. 1476490075Sobrien * init.c (build_vec_init): Cast TREE_INT_CST_LOW to HOST_WIDE_INT. 1476590075Sobrien * method.c (build_overload_int): Cast TREE_INT_CST_HIGH to unsigned. 1476690075Sobrien * typeck.c (build_binary_op, case TRUNC_DIV_EXPR): 1476790075Sobrien Call integer_all_onesp. 1476890075Sobrien * typeck2.c (process_init_constructor): Use compare_tree_int. 1476918334Speter 1477090075Sobrien * lang-specs.h (as): Don't call if -syntax-only. 1477118334Speter 1477290075Sobrien2000-03-06 Mark Mitchell <mark@codesourcery.com> 1477318334Speter 1477490075Sobrien * expr.c (cplus_expand_expr, case STMT_EXPR): Don't set 1477590075Sobrien RTL_EXPR_HAS_NO_SCOPE after all. 1477618334Speter 1477790075Sobrien2000-03-05 Mark Mitchell <mark@codesourcery.com> 1477818334Speter 1477990075Sobrien * expr.c (cplus_expand_expr, case STMT_EXPR): Use 1478090075Sobrien expand_start_stmt_expr and expand_end_stmt_expr directly. Set 1478190075Sobrien RTL_EXPR_HAS_NO_SCOPE. 1478218334Speter 1478390075Sobrien * pt.c (instantiate_decl): Clear TI_PENDING_TEMPLATE_FLAG a little 1478450397Sobrien later. 1478518334Speter 1478690075Sobrien * dump.c (dequeue_and_dump): Dump SCOPE_NO_CLEANUPS_P. 1478718334Speter 1478890075Sobrien2000-03-05 Nathan Sidwell <nathan@codesourcery.com> 1478918334Speter 1479090075Sobrien * call.c (convert_like): Macrofy. 1479190075Sobrien (convert_like_with_context): New macro. 1479290075Sobrien (convert_like_real): Renamed from convert_like. Add calling 1479390075Sobrien context parameters, for diagnostics. Add recursive flag. Call 1479490075Sobrien dubious_conversion_warnings for outer conversion. 1479590075Sobrien (build_user_type_conversion): Use convert_like_with_context. 1479690075Sobrien (build_over_call): Likewise. Don't warn about dubious 1479790075Sobrien conversions here. Adjust convert_default_arg calls. 1479890075Sobrien (convert_default_arg): Add context parameters for diagnostics. 1479990075Sobrien Pass through to convert_like_with_context. 1480090075Sobrien * cp-tree.h (convert_default_arg): Add context parameters. 1480190075Sobrien (dubious_conversion_warnings): Prototype new function. 1480290075Sobrien * typeck.c (convert_arguments): Adjust convert_default_arg call. 1480390075Sobrien (dubious_conversion_warnings): New function, broken 1480490075Sobrien out of convert_for_assignment. 1480590075Sobrien (convert_for_assignment): Adjust. 1480618334Speter 1480790075Sobrien2000-03-03 Jason Merrill <jason@casey.cygnus.com> 1480818334Speter 1480990075Sobrien * decl2.c (key_method): Break out from... 1481090075Sobrien (import_export_vtable, import_export_class): ...here. 1481118334Speter 1481290075Sobrien * decl.c (finish_function): Don't mess with flag_keep_inline_functions. 1481390075Sobrien * decl2.c (finish_vtable_vardecl): Don't check decl_function_context. 1481418334Speter 1481590075Sobrien * search.c (note_debug_info_needed, dfs_debug_mark, 1481690075Sobrien dfs_debug_unmarkedp): Uncomment. Adjust for new scheme. 1481790075Sobrien * decl2.c (finish_vtable_vardecl): Call note_debug_info_needed. 1481818334Speter 1481990075Sobrien2000-03-03 Nathan Sidwell <nathan@codesourcery.com> 1482018334Speter 1482190075Sobrien * decl.c (cp_finish_decl): Remove obsolete obstack comments, fix 1482290075Sobrien typos. 1482318334Speter 1482490075Sobrien2000-03-02 Mark Mitchell <mark@codesourcery.com> 1482518334Speter 1482690075Sobrien * cp-tree.h (TYPE_NEEDS_DESTRUCTOR): Rename to ... 1482790075Sobrien (TYPE_HAS_NONTRIVIAL_DESTRUCTOR): ... this. 1482890075Sobrien (TYPE_HAS_TRIVIAL_DESTRUCTOR): New macro. 1482990075Sobrien (lang_type): Split gets_new into has_new and has_array_new. 1483090075Sobrien (TYPE_VEC_NEW_USES_COOKIE): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR. 1483190075Sobrien (TYPE_GETS_NEW): Split into ... 1483290075Sobrien (TYPE_HAS_NEW_OPERATOR): ... this, and ... 1483390075Sobrien (TYPE_HAS_ARRAY_NEW_OPERATOR): ... this. 1483490075Sobrien (DECL_ARRAY_DELETE_OPERATOR_P): New macro 1483590075Sobrien (build_op_new_call): Don't declare. 1483690075Sobrien (build_new_1): Likewise. 1483790075Sobrien * call.c (build_op_new_call): Remove. 1483890075Sobrien * class.c (check_bases): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR 1483990075Sobrien instead of TYPE_NEEDS_DESTRUCTOR. 1484090075Sobrien (finish_struct_bits): Likewise. 1484190075Sobrien (add_implicitly_declared_members): Likewise. 1484290075Sobrien (check_field_decl): Likewise. 1484390075Sobrien (check_methods): Set TYPE_VEC_DELETE_TAKES_SIZE here, and set it 1484490075Sobrien correctly under the new ABI. 1484590075Sobrien * decl.c (start_decl_1): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR 1484690075Sobrien instead of TYPE_NEEDS_DESTRUCTOR. 1484790075Sobrien (initialize_local_var): Likewise. 1484890075Sobrien (destroy_local_var): Likewise. 1484990075Sobrien (cp_finish_decl): Likewise. 1485090075Sobrien (register_dtor_fn): Likewise. 1485190075Sobrien (grok_op_properties): Set TYPE_HAS_NEW_OPERATOR and 1485290075Sobrien TYPE_HAS_ARRAY_NEW_OPERATOR, not TYPE_HAS_NEW. Don't set 1485390075Sobrien TYPE_VEC_DELETE_TAKES_SIZE here. 1485490075Sobrien (xref_basetypes): Set TYPE_HAS_NEW_OPERATOR and 1485590075Sobrien TYPE_HAS_ARRAY_NEW_OPERATOR, not TYPE_HAS_NEW. 1485690075Sobrien (store_parm_decls): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR. 1485790075Sobrien (finish_destructor_body): Likewise. 1485890075Sobrien (maybe_build_cleanup_1): Likewise. 1485990075Sobrien * decl2.c (do_static_destruction): Likewise. 1486090075Sobrien * init.c (build_new_1): Make it static. 1486190075Sobrien (perform_member_init): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR. 1486290075Sobrien (expand_cleanup_for_base): Likewise. 1486390075Sobrien (get_cookie_size): New function. 1486490075Sobrien (build_new_1): Handle array-new cookies correctly under the new 1486590075Sobrien ABI. 1486690075Sobrien (build_vec_delete_1): Likewise. 1486790075Sobrien (build_vec_init): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR. 1486890075Sobrien (build_delete): Likewise. 1486990075Sobrien (build_vec_delete): Handle array-new cookies correctly under the new 1487090075Sobrien ABI. 1487190075Sobrien * lex.c (do_identifier): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR. 1487290075Sobrien * pt.c (instantiate_class_template): Set TYPE_HAS_NEW_OPERATOR and 1487390075Sobrien TYPE_HAS_ARRAY_NEW_OPERATOR. 1487490075Sobrien * ptree.c (print_lang_type): Check them. 1487590075Sobrien * search.c (context_for_name_lookup): Fix typo in comment. 1487690075Sobrien (tree_has_any_destructor_p): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR. 1487790075Sobrien * tree.c (break_out_cleanups): Likewise. 1487890075Sobrien (build_cplus_array_test_1): Likewise. 1487990075Sobrien (cp_build_qualified_type_real): Likewise. 1488090075Sobrien * typeck.c (complete_type): Likewise. 1488118334Speter 1488290075Sobrien * g++spec.c (lang_specific_driver): Add -fnew-abi at the start of 1488390075Sobrien the command-line, not the end. 1488418334Speter 1488590075Sobrien2000-03-01 Jason Merrill <jason@casey.cygnus.com> 1488618334Speter 1488790075Sobrien * pt.c (instantiate_decl): Clear TI_PENDING_TEMPLATE_FLAG. 1488818334Speter 1488990075Sobrien2000-03-02 Tom Tromey <tromey@cygnus.com> 1489018334Speter 1489190075Sobrien * cp-tree.h (build_java_class_ref): Declare. 1489290075Sobrien * init.c (build_java_class_ref): No longer static. 1489390075Sobrien * except.c (expand_throw): Generate a Java-style `throw' if the 1489490075Sobrien thrown object is a "Java" object. 1489590075Sobrien (initialize_handler_parm): Generate a Java-style lookup of 1489690075Sobrien exception info if the caught object is a "Java" object. 1489790075Sobrien (catch_language, catch_language_init): New globals. 1489890075Sobrien (decl_is_java_type): New function. 1489990075Sobrien (expand_start_catch_block): Don't call push_eh_info() or 1490090075Sobrien push_eh_cleanup() when handling a Java-style "catch". Pass Java 1490190075Sobrien class reference to build_catch_block. 1490218334Speter 1490390075SobrienThu Mar 2 13:32:01 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 1490418334Speter 1490590075Sobrien * typeck.c (comptypes): Treat sizetype like its language equivalent. 1490618334Speter 1490790075Sobrien2000-03-01 Bernd Schmidt <bernds@cygnus.co.uk> 1490818334Speter 1490990075Sobrien * typeck.c (maybe_warn_about_returning_address_of_local): Reorganize 1491090075Sobrien to merge reference/pointer code and fix incorrect warnings. 1491118334Speter 1491290075Sobrien2000-02-29 Jason Merrill <jason@casey.cygnus.com> 1491318334Speter 1491490075Sobrien * search.c (protected_accessible_p): Use context_for_name_lookup. 1491518334Speter 1491690075Sobrien * init.c (construct_virtual_bases): Fix thinko. 1491790075Sobrien * typeck.c (expand_ptrmemfunc_cst): Fix thinko. 1491818334Speter 1491990075Sobrien2000-03-01 Martin von Loewis <loewis@informatik.hu-berlin.de> 1492018334Speter 1492190075Sobrien * decl.c (current_function_decl): Move to toplev.c. 1492218334Speter 1492390075Sobrien2000-02-29 Nathan Sidwell <nathan@codesourcery.com> 1492418334Speter 1492590075Sobrien * pt.c (fn_type_unification): Unify return type, whenever 1492690075Sobrien provided. 1492790075Sobrien (get_bindings_real): Only pass return type when necessary. 1492890075Sobrien Remove explicit return type check. 1492990075Sobrien * class.c (resolve_address_of_overloaded_function): Pass desired 1493090075Sobrien return type to fn_type_unification. 1493118334Speter 1493290075SobrienMon Feb 28 08:15:23 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 1493318334Speter 1493490075Sobrien * class.c (build_vtbl_or_vbase_field, check_methods): Don't clear 1493590075Sobrien DECL_FIELD_SIZE. 1493690075Sobrien (check_bitfield_decl, check_field_decls): Set DECL_SIZE, not 1493790075Sobrien DECL_FIELD_SIZE. 1493890075Sobrien * rtti.c (expand_class_desc): Likewise. 1493990075Sobrien * cp-tree.h (DECL_INIT_PRIORITY): Use underlying union name. 1494090075Sobrien (THUNK_VCALL_OFFSET): Likewise. 1494190075Sobrien (THUNK_DELTA): Reflect changes in ../tree.h. 1494218334Speter 1494390075Sobrien2000-02-28 Jason Merrill <jason@casey.cygnus.com> 1494452284Sobrien 1494590075Sobrien * search.c (protected_accessible_p): Also allow the access if 1494690075Sobrien the member is public in DERIVED. Lose TYPE parm. 1494790075Sobrien (friend_accessible_p): Lose TYPE parm. 1494890075Sobrien (accessible_p): Adjust. 1494918334Speter 1495090075SobrienSun Feb 27 16:40:33 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 1495118334Speter 1495290075Sobrien * class.c (dfs_build_vtable_offset_vtbl_entries): Don't use size_binop 1495390075Sobrien on things that are not sizes; ssize_binop deleted. 1495490075Sobrien Call size_diffop when appropriate. 1495590075Sobrien (dfs_build_vcall_offset_vtbl_entries): Likewise. 1495690075Sobrien (build_primary_vtable, build_secondary_vtable): Likewise. 1495790075Sobrien (dfs_set_offset_for_unshared_vbases, dfs_modify_vtables): Likewise. 1495890075Sobrien Variable I is HOST_WIDE_INT. 1495990075Sobrien (get_vfield_offset): Pass proper types to size_binop. 1496090075Sobrien (size_extra_vtbl_entries, layout_virtual_bases): Likewise. 1496190075Sobrien (finish_struct_1): Likewise. 1496290075Sobrien (skip_rtti_stuff): Arg N is now pointer to signed. 1496390075Sobrien (layout_class_type): Use size_zero_node. 1496490075Sobrien * cp-tree.h (skip_rtti_stuff): Arg N is pointer to signed. 1496590075Sobrien * cvt.c (cp_convert_to_pointer): Pass proper types to size_binop. 1496690075Sobrien * decl.c (complete_arry_type): Pass proper types to size_binop. 1496790075Sobrien (xref_basetypes): BINFO_OFFSET is sizetype. 1496890075Sobrien * error.c (dump_expr): Don't use size_binop non-sizes. 1496990075Sobrien * expr.c (cplus_expand_constant): Pass proper types to size_binop. 1497090075Sobrien * init.c (construct_virtual_bases): Fix type error. 1497190075Sobrien (build_vec_delete_1): Pass proper type to size_binop and don't 1497290075Sobrien fold result. 1497390075Sobrien * lex.c (cp_make_lang_type): BINFO_OFFSET is sizetype. 1497490075Sobrien * rtti.c (get_base_offset): Pass proper type to size_binop. 1497590075Sobrien * search.c (dfs_find_vbases): Fix type error. 1497690075Sobrien (expand_upcast_fixups): Arg to skip_rtti_stuff is pointer to signed. 1497790075Sobrien (dfs_get_vbase_types): BINFO_OFFSET is sizetype. 1497890075Sobrien * tree.c (debug_binfo): Variable N is signed. 1497990075Sobrien Use HOST_WIDE_INT_PRINT_DEC. 1498090075Sobrien * typeck.c (comptypes): sizetype is same as equivalent integer type. 1498190075Sobrien (c_sizeof, c_sizeof_nowarn, expr_sizeof): Use TYPE_SIZE_UNIT, 1498290075Sobrien size_one_node and size_zero_node. 1498390075Sobrien (c_alignof): Use size_one_node. 1498490075Sobrien (build_component_addr): Pass proper types to size_binop. 1498590075Sobrien (expand_ptrmemfunc_cst): Don't use size_binop on non-sizes. 1498618334Speter 1498790075Sobrien2000-02-26 Jason Merrill <jason@casey.cygnus.com> 1498818334Speter 1498990075Sobrien Implement class scope using-declarations for functions. 1499090075Sobrien * class.c (handle_using_decl): Call add_method for used functions. 1499190075Sobrien Use IDENTIFIER_CLASS_VALUE to check for conflicts. 1499290075Sobrien (add_method): Used functions are hidden by local functions. 1499390075Sobrien (check_bases_and_members): Handle using-decls before finalizing 1499490075Sobrien CLASSTYPE_METHOD_VEC. 14995117395Skan * call.c (add_function_candidate): Add ctype parm; if nonzero, 1499690075Sobrien override the type of 'this' accordingly. 1499790075Sobrien (add_template_candidate, add_template_candidate_real): Add ctype parm. 1499890075Sobrien (convert_class_to_reference, build_user_type_conversion_1, 1499990075Sobrien build_new_function_call, build_object_call, build_new_op, 1500090075Sobrien build_new_method_call): Pass ctype parm. 1500118334Speter 1500290075Sobrien * search.c (lookup_member): Put rval_binfo, not basetype_path, in 1500390075Sobrien the baselink. 1500490075Sobrien * call.c (convert_class_to_reference, build_user_type_conversion_1, 1500590075Sobrien build_new_function_call, build_object_call, build_new_op, 1500690075Sobrien build_new_method_call, build_op_delete_call): Don't get basetype_path 1500790075Sobrien from a baselink. 1500890075Sobrien * typeck.c (build_component_ref): Likewise. 1500990075Sobrien * init.c (build_offset_ref): Likewise. 1501090075Sobrien (resolve_offset_ref): Don't call enforce_access. 1501190075Sobrien Call build_scoped_ref. 1501290075Sobrien * typeck2.c (build_scoped_ref): Simplify. Do nothing if it 1501390075Sobrien would cause an error or if -pedantic. 1501490075Sobrien * class.c (alter_access): Lose binfo parm. 1501518334Speter 1501690075Sobrien2000-02-26 Mark Mitchell <mark@codesourcery.com> 1501718334Speter 1501890075Sobrien * semantics.c (simplify_aggr_init_exprs_p): Don't walk into 1501990075Sobrien types. 1502018334Speter 1502190075Sobrien2000-02-25 Alfred Minarik <a8601248@unet.univie.ac.at> 1502218334Speter 1502390075Sobrien * rtti.c (get_vmi_pseudo_type_info): Move __vmi_class_type_info 1502490075Sobrien pseudo_type_info creation into the std namespace 1502518334Speter 1502690075Sobrien2000-02-26 Mark Mitchell <mark@codesourcery.com> 1502718334Speter 1502890075Sobrien * cp-tree.h (DECL_NEEDED_P): Tweak to correct usage before EOF. 1502990075Sobrien (import_export_class): Remove declaration. 1503090075Sobrien * decl2.c (import_export_class): Make it static. 1503190075Sobrien * dump.c (dequeue_and_dump): Handle PREDECREMENT_EXPR, 1503290075Sobrien PREINCREMENT_EXPR, POSTDECREMENT_EXPR, POSTINCREMENT_EXPR, 1503390075Sobrien EXPR_WITH_FILE_LOCATION. 1503490075Sobrien * lex.c (check_newline): Tweak filename/lineno setting. 1503590075Sobrien * semantics.c (begin_while_stmt): Fix typo in comment. 1503618334Speter 1503790075SobrienSat Feb 26 19:50:23 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 1503818334Speter 1503990075Sobrien * lang-options.h (-fmessage-length=): Add missing option. 1504018334Speter 1504190075Sobrien * Make-lang.in (CXX_SRCS): Add .h files and sort list. 1504218334Speter 1504390075Sobrien2000-02-26 Zack Weinberg <zack@wolery.cumb.org> 1504418334Speter 1504590075Sobrien * Make-lang.in: Delete refs to LIBGCC2_DEPS. 1504618334Speter 1504790075SobrienFri Feb 25 14:52:33 2000 Jim Wilson <wilson@cygnus.com> 1504818334Speter 1504990075Sobrien * optimize.c (expand_call_inline): Emit the return label before 1505090075Sobrien evaluating the return value. 1505118334Speter 1505290075Sobrien2000-02-24 Mark Mitchell <mark@codesourcery.com> 1505318334Speter 1505490075Sobrien * lex.c (check_newline): Use push_srcloc and pop_srcloc, rather 1505590075Sobrien than duplicating functionality here. 1505690075Sobrien * optimize.c: Include input.h. 1505790075Sobrien (expand_call_inline): Use push_srcloc and pop_srcloc. 1505890075Sobrien * parse.y (maybe_cv_qualifier): Remove calls to emit_line_note. 1505990075Sobrien * parse.c: Regenerated. 1506090075Sobrien * Makefile.in (lex.o): Depend on input.h. 1506190075Sobrien (optimize.o): Likewise. 1506218334Speter 1506390075Sobrien2000-02-24 Nathan Sidwell <nathan@codesourcery.com> 1506418334Speter 1506590075Sobrien * decl.c (grokdeclarator): Diagnose qualifiers on non-member 1506690075Sobrien function type, rather than ICE. 1506718334Speter 1506890075Sobrien2000-02-23 Jason Merrill <jason@casey.cygnus.com> 1506918334Speter 1507090075Sobrien * decl.c (grokdeclarator): Call decl_type_access_control. 1507190075Sobrien * parse.y (parse_end_decl): Don't call decl_type_access_control if 1507290075Sobrien decl is null. 1507318334Speter 1507490075Sobrien2000-02-23 Nathan Sidwell <nathan@codesourcery.com> 1507552284Sobrien 1507690075Sobrien * decl.c (decls_match): Remove obsolete static member nadgering. 1507718334Speter 1507890075Sobrien2000-02-21 Martin v. L�wis <loewis@informatik.hu-berlin.de> 1507918334Speter 1508090075Sobrien * decl.c (grokdeclarator): Change ANSI to ISO. 1508190075Sobrien * lex.c (consume_string, readescape, do_identifier): Likewise. 1508290075Sobrien (parse_float, real_yylex): Likewise. 1508390075Sobrien * parse.y (paren_expr_or_null, paren_cond_or_null): Likewise. 1508490075Sobrien (unary_expr, new_initializer, cast_expr, primary, primary_no_id, 1508590075Sobrien new_type_id, maybe_label_decls, simple_stmt, 1508690075Sobrien for.init.statement): Likewise. 1508790075Sobrien * pt.c (do_decl_instantiation, do_type_instantiation): Likewise. 1508890075Sobrien * semantics.c (finish_named_return_value): Likewise. 1508990075Sobrien * parse.c: Regenerate. 1509018334Speter 1509190075Sobrien2000-02-21 Mark Mitchell <mark@codesourcery.com> 1509218334Speter 1509390075Sobrien * cp-tree.h (CPTI_VTABLE_INDEX_TYPE): New macro. 1509490075Sobrien (CPTI_CLASS_STAR_TYPE): Remove. 1509590075Sobrien (vtable_index_type): Likewise. 1509690075Sobrien (class_star_type_node): Remove. 1509790075Sobrien (TYPE_PTRMEMFUNC_FN_TYPE): Adjust for the new ABI. 1509890075Sobrien (build_binary_op_nodefault): Remove. 1509990075Sobrien * call.c (build_new_op): Use build_binary_op instead of 1510090075Sobrien build_binary_op_nodefault. 1510190075Sobrien * decl.c (init_decl_processing): Remove class_star_type_node 1510290075Sobrien initialization. Make delta_type_node ptrdiff_type_node under the 1510390075Sobrien new ABI. Initialize vtable_index_type. 1510490075Sobrien (build_ptrmemfunc_type): Build different structures for the new 1510590075Sobrien ABI. 1510690075Sobrien (build_enumerator): Use build_binary_op instead of 1510790075Sobrien build_binary_op_nodefault. 1510890075Sobrien * method.c (build_overload_value): Mangle pointers-to-members 1510990075Sobrien appropriately under the new ABI. 1511090075Sobrien * typeck.c (build_array_ref): Use build_binary_op instead of 1511190075Sobrien build_binary_op_nodefault. 1511290075Sobrien (get_member_function_from_ptrfunc): Adjust for the new ABI. 1511390075Sobrien (build_binary_op_nodefault): Rename to ... 1511490075Sobrien (build_binary_op): ... this. Remove old version. Adjust for 1511590075Sobrien pointer-to-member comparisons under the new ABI. 1511690075Sobrien (build_ptrmemfunc1): Remove dead code. Adjust for the new ABI. 1511790075Sobrien (build_ptrmemfunc): Adjust for the new ABI. 1511890075Sobrien (expand_ptrmemfunc_cst): Likewise. 1511990075Sobrien (delta2_from_ptrmemfunc): Assert that we're not using the new ABI. 1512090075Sobrien (pfn_from_ptrmemfunc): Adjust for the new ABI. 1512118334Speter 1512290075Sobrien2000-02-21 Gabriel Dos Reis <gdr@codesourcery.com> 1512318334Speter 1512490075Sobrien * call.c (build_object_call): Compress consecutive calls to 1512590075Sobrien cp_error. 1512690075Sobrien (build_conditional_expr): Say 'ISO C++' not 'ANSI C++'. 1512790075Sobrien (build_op_delete_call): Adjust message formatting. 1512818334Speter 1512990075Sobrien * class.c (check_bases): Compress consecutive calls to 1513090075Sobrien cp_pedwarn. 1513190075Sobrien (finish_struct_anon): Say 'ISO C++'. 1513218334Speter 1513390075Sobrien * decl.c (start_decl): Same here. 1513490075Sobrien (grok_reference_init): Likewise. 1513590075Sobrien (grokfndecl): Correct message formatting. 1513690075Sobrien (grokfndecl): Improve diagnostic. 1513790075Sobrien (check_static_variable_definition): Likewise. Say 'ISO C++' 1513890075Sobrien (compute_array_index_type): Say 'ISO C++' 1513990075Sobrien (create_array_type_for_decl): Compress consecutive calls to 1514090075Sobrien cp_error. 1514190075Sobrien (grokdeclarator): Say 'ISO C++' 1514290075Sobrien (grok_op_properties): Likewise. 1514318334Speter 1514490075Sobrien * decl2.c (delete_sanity): Clairify diagnostic. 1514590075Sobrien (check_member_template): Same here. 1514690075Sobrien (grok_function_init): Use consistent terminology. 1514718334Speter 1514890075Sobrien * expr.c (do_case): Say 'ISO C++' 1514918334Speter 1515090075Sobrien * friend.c (do_friend): Compress consecutive calls to warning. 1515118334Speter 1515290075Sobrien2000-02-20 Mark Mitchell <mark@codesourcery.com> 1515318334Speter 1515490075Sobrien * cp-tree.h (merge_primary_and_secondary_vtables_p): New macro. 1515590075Sobrien * class.c (build_secondary_vtable): Reorganize. Don't create a 1515690075Sobrien new vtable under the new ABI. 1515790075Sobrien (layout_vtable_decl): Don't add num_extra_vtbl_entries when 1515890075Sobrien computing the size. 1515990075Sobrien (build_vtbl_initializer): Don't return a CONSTRUCTOR; just return 1516090075Sobrien the initializing elements. 1516190075Sobrien (initialize_vtable): New function. 1516290075Sobrien (dfs_finish_vtbls): Use it. 1516390075Sobrien (dfs_accumulate_vtbl_inits): New function. 1516490075Sobrien (finish_vtbls): Merge primary and secondary vtables under the new 1516590075Sobrien ABI. 1516690075Sobrien (finish_struct_1): Remove redundant call to layout_vtable_decl. 1516790075Sobrien * init.c (expand_virtual_init): Deal with BINFO_VTABLEs that 1516890075Sobrien aren't VAR_DECLs. 1516918334Speter 1517090075Sobrien * class.c (build_vtable): New function, split out from ... 1517190075Sobrien (get_vtable_decl): ... here, and ... 1517290075Sobrien (build_secondary_vtable): ... here. 1517318334Speter 1517490075Sobrien * pt.c (tsubst_decl): Fix formatting. 1517518334Speter 1517690075SobrienSat Feb 19 18:43:13 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 1517718334Speter 1517890075Sobrien * class.c (build_primary_vtable, layout_vtable_decl): Likewise. 1517990075Sobrien (avoid_overlap, build_base_field): Likewise. 1518090075Sobrien (build_base_field, build_base_fields, is_empty_class): 1518190075Sobrien Test DECL_SIZE with integer_zero. 1518290075Sobrien (layout_class_type): Set CLASSTYPE_SIZE_UNIT. 1518390075Sobrien * cp-tree.h (struct lang_type): New field size_unit. 1518490075Sobrien (CLASSTYPE_SIZE_UNIT): New macro. 1518590075Sobrien * decl.c (init_decl_processing): Set DECL_SIZE_UNIT. 1518690075Sobrien (cp_finish_decl): Delete -Wlarger-than processing. 1518790075Sobrien * optimize.c (remap_decl): Walk DECL_SIZE_UNIT. 1518890075Sobrien * pt.c (tsubst_decl): Set DECL_SIZE_UNIT. 1518990075Sobrien * tree.c (make_binfo): binfo vector is one entry longer. 1519090075Sobrien (walk_tree): Walk DECL_SIZE_UNIT. 1519118334Speter 1519290075Sobrien2000-02-19 Mark Mitchell <mark@codesourcery.com> 1519318334Speter 1519490075Sobrien * class.c (dfs_build_vcall_offset_vtbl_entries): Fix typo in 1519590075Sobrien comment. 1519690075Sobrien (build_vtable_entry): Don't assume all vtable entries are 1519750397Sobrien functions. 1519890075Sobrien (build_vtbl_initializer): Adjust accordingly. 1519990075Sobrien (get_vtable_decl): Fix formatting. 1520018334Speter 1520190075Sobrien2000-02-18 Jason Merrill <jason@casey.cygnus.com> 1520218334Speter 1520390075Sobrien * semantics.c (deferred_type_access_control): Walk the entire 1520490075Sobrien type_lookups list. 1520590075Sobrien (save_type_access_control): Rename from 1520690075Sobrien initial_deferred_type_access_control. Just remember the value. 1520790075Sobrien (decl_type_access_control): New fn. 1520890075Sobrien (begin_function_definition): Use deferred_type_access_control, after 1520990075Sobrien we've started the function. Set type_lookups to error_mark_node. 1521090075Sobrien * parse.y (frob_specs, fn.def1): Adjust. 1521190075Sobrien (parse_decl0, parse_field, parse_field0, parse_bitfield): New fns. 1521290075Sobrien (parse_end_decl, parse_bitfield0, parse_method): New fns. 1521390075Sobrien (fn.def2, initdcl, initdcl0_innards, nomods_initdcl0): Use them. 1521490075Sobrien (after_type_component_declarator0): Likewise. 1521590075Sobrien (after_type_component_declarator): Likewise. 1521690075Sobrien (notype_component_declarator): Likewise. 1521750397Sobrien * cp-tree.h: Adjust. 1521818334Speter 1521990075Sobrien * decl.c (redeclaration_error_message): Allow redeclaration of 1522090075Sobrien namespace-scope decls. 1522118334Speter 1522290075Sobrien2000-02-18 Martin von Loewis <loewis@informatik.hu-berlin.de> 1522318334Speter 1522490075Sobrien * typeck2.c (my_friendly_abort): Use GCCBUGURL. 1522518334Speter 1522690075Sobrien2000-02-17 Mark Mitchell <mark@codesourcery.com> 1522718334Speter 1522890075Sobrien * class.c (add_method): Don't set DECL_VIRTUAL_CONTEXT. 1522990075Sobrien * decl2.c (grokclassfn): Likewise. 1523018334Speter 1523190075Sobrien * ir.texi: Document DECL_TEMPLATE_INSTANTIATIONS. 1523218334Speter 1523390075Sobrien * decl2.c (lang_decode_option): Don't set default message length 1523490075Sobrien here. 1523590075Sobrien * lex.c (lang_init_options): Set it here. 1523618334Speter 1523790075Sobrien2000-02-16 Mark Mitchell <mark@codesourcery.com> 1523818334Speter 1523990075Sobrien Make DECL_CONTEXT mean the class in which a member function was 1524090075Sobrien declared, even for a virtual function. 1524190075Sobrien * cp-tree.h (DECL_CLASS_CONTEXT): Adjust. 1524290075Sobrien (DECL_FRIEND_CONTEXT): New macro. 1524390075Sobrien (DECL_REAL_CONTEXT): Remove. 1524490075Sobrien (SET_DECL_FRIEND_CONTEXT): Likewise. 1524590075Sobrien (DECL_VIRTUAL_CONTEXT): Adjust. 1524690075Sobrien (DECL_CLASS_SCOPE_P): Use TYPE_P. 1524790075Sobrien (add_friends): Remove. 1524890075Sobrien (hack_decl_function_context): Likewise. 1524990075Sobrien * call.c (build_new_function_call): Replace DECL_REAL_CONTEXT with 1525090075Sobrien CP_DECL_CONTEXT. 1525190075Sobrien (build_over_call): Fix indentation. Use DECL_CONTEXT 1525290075Sobrien instead of DECL_CLASS_CONTEXT. 1525390075Sobrien * class.c (dfs_build_vcall_offset_vtbl_entries): Likewise. 1525490075Sobrien (add_method): Set DECL_VIRTUAL_CONTEXT, not DECL_CLASS_CONTEXT. 1525590075Sobrien (strictly_overrides): Use DECL_CONTEXT, not DECL_CLASS_CONTEXT. 1525690075Sobrien (build_vtbl_or_vbase_field): Don't set DECL_CLASS_CONTEXT. 1525790075Sobrien (build_base_field): Likewise. 1525850397Sobrien (finish_struct_1): Likewise. 1525990075Sobrien (build_self_reference): Likewise. 1526090075Sobrien * decl.c (push_class_binding): Use CP_DECL_CONTEXT, not 1526190075Sobrien DECL_REAL_CONTEXT. 1526290075Sobrien (pushtag): Use decl_function_context, not 1526350397Sobrien hack_decl_function_context. 1526490075Sobrien (decls_match): Use CP_DECL_CONTEXT, not DECL_REAL_CONTEXT. 1526590075Sobrien (duplicate_decls): Use DECL_VIRTUAL_CONTEXT. 1526690075Sobrien (pushdecl): Remove bogus code. 1526790075Sobrien (start_decl): Use DECL_CONTEXT rather than DECL_CLASS_CONTEXT. 1526890075Sobrien (cp_finish_decl): Use CP_DECL_CONTEXT, not DECL_REAL_CONTEXT. 1526990075Sobrien (grokfndecl): Use DECL_CONTEXT, not DECL_CLASS_CONTEXT. 1527090075Sobrien Use decl_function_context, nothack_decl_function_context. 1527190075Sobrien (grokvardecl): Don't set DECL_CLASS_CONTEXT. 1527290075Sobrien (grokdeclarator): Likewise. Use decl_function_context, not 1527390075Sobrien hack_decl_function_context. 1527490075Sobrien (copy_args_p): Document. Don't use DECL_CLASS_CONTEXT. 1527590075Sobrien (start_function): Use DECL_FRIEND_CONTEXT, not 1527690075Sobrien DECL_CLASS_CONTEXT. Use decl_function_context, not 1527790075Sobrien hack_decl_function_context. 1527890075Sobrien (finish_function): Use decl_function_context, not 1527990075Sobrien hack_decl_function_context. 1528090075Sobrien (maybe_retrofit_in_chrg): Use DECL_CONTEXT, not 1528190075Sobrien DECL_CLASS_CONTEXT. 1528290075Sobrien (grokclassfn): Set DECL_VIRTUAL_CONTEXT, not DECL_CONTEXT. 1528390075Sobrien (finish_static_data_member_decl): Don't set DECL_CLASS_CONTEXT. 1528490075Sobrien (grokfield): Likewise. 1528590075Sobrien (finish_builtin_type): Likewise. 1528690075Sobrien (finish_vtable_vardec): Use decl_function_context, not 1528790075Sobrien hack_decl_function_context. 1528890075Sobrien (import_export_decl): Use DECL_CONTEXT, not DECL_CLASS_CONTEXT. 1528990075Sobrien (start_static_initialization_or_destruction): Likewise. 1529090075Sobrien (finish_static_initialization_or_destruction): Likewise. 1529190075Sobrien (mark_used): Adjust logic for deciding when to synthesize methods. 1529290075Sobrien * dump.c (dequeue_and_dump): Use CP_DECL_CONTEXT, not 1529390075Sobrien DECL_REAL_CONTEXT. 1529490075Sobrien * error.c (dump_function_decl): Use DECL_CONTEXT, not 1529590075Sobrien DECL_CLASS_CONTEXT. 1529690075Sobrien * friend.c (is_friend): Likewise. 1529790075Sobrien (add_friends): Remove. 1529890075Sobrien (do_friend): Use SET_DECL_FRIEND_CONTEXT. 1529990075Sobrien * lex.c (begin_definition_of_inclass_inline): Use 1530090075Sobrien decl_function_context, not hack_decl_function_context. 1530190075Sobrien (process_next_inline): Likewise. 1530290075Sobrien (do_identifier): Use CP_DECL_CONTEXT, not DECL_REAL_CONTEXT. 1530390075Sobrien * method.c (set_mangled_name_for_decl): Use DECL_CONTEXT, not 1530490075Sobrien DECL_CLASSS_CONTEXT. 1530590075Sobrien (hack_identifier): Likewise. 1530690075Sobrien (synthesize_method): Use decl_function_context, not 1530790075Sobrien hack_decl_function_context. 1530890075Sobrien * pt.c (template_class_depth_real): Use CP_DECL_CONTEXT, not 1530990075Sobrien DECL_REAL_CONTEXT. 1531090075Sobrien (is_member_template): Use decl_function_context, not 1531190075Sobrien hack_decl_function_context. Use DECL_CONTEXT, not 1531290075Sobrien DECL_CLASS_CONTEXT. 1531390075Sobrien (build_template_decl): Set DECL_VIRTUAL_CONTEXT, not 1531490075Sobrien DECL_CLASS_CONTEXT. 1531590075Sobrien (check_default_tmpl_args): Use CP_DECL_CONTEXT, not 1531690075Sobrien DECL_REAL_CONTEXT. 1531790075Sobrien (push_template_decl_real): Likewise. 1531890075Sobrien (instantiate_class_template): Don't call add_friends. 1531990075Sobrien (tsubst_default_argument): Use DECL_CONTEXT, not 1532090075Sobrien DECL_REAL_CONTEXT. 1532190075Sobrien (tsubst_decl): Set DECL_VIRTUAL_CONTEXT, not DECL_CLASS_CONTEXT. 1532290075Sobrien Use DECL_CONTEXT, not DECL_CLASS_CONTEXT. 1532390075Sobrien (set_meangled_name_for_template_decl): Use DECL_CONTEXT, not 1532490075Sobrien DECL_CLASS_CONTEXT. 1532590075Sobrien * repo.c (repo_inline_used): Likewise. 1532690075Sobrien * search.c (current_scope): Adjust for new _CONTEXT macros. 1532790075Sobrien (context_for_name_lookup): Use CP_DECL_CONTEXT, not 1532890075Sobrien DECL_REAL_CONTEXT. 1532990075Sobrien (friend_accessible_p): Use DECL_CONTEXT, not DECL_CLASS_CONTEXT. 1533090075Sobrien (lookup_fnfields_here):Likewise. 1533190075Sobrien (check_final_overrider): Likewise. 1533290075Sobrien (init_vbase_pointers): Likewise. 1533390075Sobrien (virtual_context): Likewise. 1533490075Sobrien * semantics.c (finish_member_declaration): Just set DECL_CONTEXT. 1533590075Sobrien (expand_body): Use decl_function_context, not 1533690075Sobrien hack_decl_function_context. 1533790075Sobrien * tree.c (hack_decl_function_context): Remove. 1533890075Sobrien * typeck.c (build_x_function_call): Use DECL_CONTEXT, not 1533990075Sobrien DECL_CLASS_CONTEXT. 1534090075Sobrien * typeck2.c (error_not_base_type): Likewise. 1534118334Speter 1534290075Sobrien2000-02-15 Jason Merrill <jason@casey.cygnus.com> 1534318334Speter 1534490075Sobrien * decl.c (xref_tag): Don't SET_IDENTIFIER_NAMESPACE_VALUE. 1534518334Speter 1534690075Sobrien2000-02-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1534718334Speter 1534890075Sobrien * Make-lang.in (g++spec.o): Depend on $(GCC_H), not gcc.h. 1534918334Speter 1535090075Sobrien2000-02-15 Jonathan Larmour <jlarmour@redhat.co.uk> 1535118334Speter 1535290075Sobrien * lang-specs.h: Add new __GNUC_PATCHLEVEL__ define to default spec. 1535318334Speter 1535490075Sobrien2000-01-16 Gabriel Dos Reis <gdr@codesourcery.com> 1535518334Speter 1535690075Sobrien * decl2.c (lang_decode_option): Enable automatic line wrapping. 1535718334Speter 1535890075Sobrien2000-02-13 Jason Merrill <jason@casey.cygnus.com> 1535918334Speter 1536090075Sobrien * parse.y (frob_specs): Split out... 1536190075Sobrien (parse_decl): From here. 1536290075Sobrien (fn.def2): Call initial_deferred_type_access_control. 1536390075Sobrien (after_type_component_declarator0): Call frob_specs. 1536490075Sobrien (notype_component_declarator0): Likewise. 1536590075Sobrien * search.c (friend_accessible_p): Nested classes are friends of their 1536690075Sobrien enclosing classes. 1536718334Speter 1536890075Sobrien2000-02-10 Mark Mitchell <mark@codesourcery.com> 1536918334Speter 1537090075Sobrien * ir.texi (ADDR_EXPR): Document the fact that an ADDR_EXPR can be 1537190075Sobrien used to create an implicit temporary. 1537218334Speter 1537390075Sobrien * class.c (dfs_modify_vtables): Tweak calculation of functions to 1537490075Sobrien override. 1537518334Speter 1537690075Sobrien2000-02-08 Nathan Sidwell <nathan@acm.org> 1537718334Speter 1537890075Sobrien * typeck.c (strip_all_pointer_quals): Use TYPE_MAIN_VARIANT, to 1537990075Sobrien strip array element qualifiers too. 1538018334Speter 1538190075Sobrien2000-02-07 Mark Mitchell <mark@codesourcery.com> 1538218334Speter 1538390075Sobrien * decl.c (store_parm_decls): Don't build cleanups for parameters 1538490075Sobrien while processing_template_decl. 1538518334Speter 1538690075Sobrien2000-02-07 Jason Merrill <jason@casey.cygnus.com> 1538718334Speter 1538890075Sobrien * cp-tree.h (struct saved_scope): Add incomplete field. 1538990075Sobrien (namespace_scope_incomplete): New macro. 1539090075Sobrien * decl.c (pushdecl): Use it. 1539190075Sobrien (hack_incomplete_structures): Use it. See through artificial 1539290075Sobrien binding levels. 1539390075Sobrien (mark_saved_scope): Mark it. 1539418334Speter 1539590075Sobrien Implement access control for nested types. 1539690075Sobrien * search.c (type_access_control): New fn. 1539790075Sobrien (accessible_p): Now we do perform access control for types. 1539890075Sobrien * semantics.c (deferred_type_access_control): New fn. 1539990075Sobrien (initial_deferred_type_access_control): New fn. 1540090075Sobrien (begin_function_definition): Call it. Add lookups parm. 1540190075Sobrien * decl.c (struct binding_level): Add this_class field. 1540290075Sobrien (pushlevel_class): Set it. 1540390075Sobrien (mark_binding_level): Mark it. 1540490075Sobrien (lookup_name_real): Use it. Call type_access_control. 1540590075Sobrien (mark_saved_scope): Mark lookups field. 1540690075Sobrien * cp-tree.h (flagged_type_tree): Add lookups field. 1540790075Sobrien (struct saved_scope): Add lookups field. 1540890075Sobrien (type_lookups): New macro. 1540990075Sobrien * parse.y (declmods): Now <ftype>. 1541090075Sobrien (parse_decl): Add lookups parm. Call 1541190075Sobrien initial_deferred_type_access_control. 1541290075Sobrien (lang_extdef): Clear type_lookups. 1541390075Sobrien (typed_declspecs, declmods, typespec): Set lookups field. 1541490075Sobrien (initdcl): Call deferred_type_access_control. 1541590075Sobrien (fn.def1, fn.def2, typed_declspecs1, initdcl0_innards, nomods_initdcl0, 1541690075Sobrien component_decl_1, named_parm): Adjust. 1541790075Sobrien * friend.c (is_friend): Nested classes are friends of their 1541890075Sobrien enclosing classes. 1541918334Speter 1542090075Sobrien * class.c (currently_open_derived_class): New fn. 1542190075Sobrien * method.c (hack_identifier): Use it. 1542218334Speter 1542390075Sobrien * lex.c (do_identifier): Remove obsolete code. 1542418334Speter 1542590075Sobrien * parse.y (typed_typespecs): Propagate new_type_flag properly. 1542618334Speter 1542790075Sobrien2000-02-05 Zack Weinberg <zack@wolery.cumb.org> 1542818334Speter 1542990075Sobrien * tinfo.h: Remove apostrophes from C++ comment (xgettext 1543090075Sobrien thinks this file is plain C). 1543118334Speter 1543290075Sobrien2000-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1543318334Speter 1543490075Sobrien * Makefile.in (call.o): Depend on $(EXPR_H). 1543518334Speter 1543690075Sobrien * call.c: Include "expr.h". 1543718334Speter 1543890075Sobrien * class.c (dump_class_hierarchy): Add prototype. 1543918334Speter 1544090075Sobrien * search.c (dfs_get_pure_virtuals): Likewise. 1544118334Speter 1544290075Sobrien2000-02-1 Ulrich Drepper <drepper@redhat.com> 1544318334Speter 1544490075Sobrien * parse.y (simple_stmt): Allow :: token in asm parameter list. 1544590075Sobrien * parse.c: Rebuilt. 1544618334Speter 1544790075SobrienMon Jan 31 15:35:29 2000 Jim Wilson <wilson@cygnus.com> 1544818334Speter 1544990075Sobrien * class.c (build_vtbl_or_vbase_field): New parameter fcontext. 1545090075Sobrien Store it in DECL_FCONTEXT. 1545190075Sobrien (build_vbase_pointer_fields, create_vtable_ptr): Fix callers. 1545218334Speter 1545390075Sobrien2000-01-31 Jason Merrill <jason@casey.cygnus.com> 1545418334Speter 1545590075Sobrien * tinfo.h (old abi): #include "tconfig.h". 1545690075Sobrien * tinfo.cc (convert_to_base): Move into old abi section. 1545718334Speter 1545890075Sobrien2000-01-31 Mark Mitchell <mark@codesourcery.com> 1545918334Speter 1546090075Sobrien * cp-tree.h (BINFO_VIRTUALS): Tweak documentation. 1546190075Sobrien (CLASSTYPE_PRIMARY_BINFO): Use BINFO_PRIMARY_BINFO. 1546290075Sobrien (BINFO_PRIMARY_BINFO): New macro. 1546390075Sobrien (BF_DELTA): Rename to ... 1546490075Sobrien (BV_DELTA): ... this. 1546590075Sobrien (BF_VCALL_INDEX): Rename to ... 1546690075Sobrien (BV_VCALL_INDEX): ... this. 1546790075Sobrien (BF_FN): Rename to ... 1546890075Sobrien (BV_FN): ... this. 1546990075Sobrien * class.c (build_vbase_path): Adjust for changes to reverse_path. 1547090075Sobrien (set_rtti_entry): Rename BF_ macros to BV_ variants. 1547190075Sobrien (modify_vtable_entry): Simplify. 1547290075Sobrien (add_virtual_function): Rename BF_ macros to BV_ variants. 1547390075Sobrien (build_vtable_initializer): Likewise. 1547490075Sobrien (get_class_offset_1): Remove. 1547590075Sobrien (dfs_get_class_offset): Likewise. 1547690075Sobrien (get_class_offset): Likewise. 1547790075Sobrien (dfs_find_final_overrider): New function. 1547890075Sobrien (find_final_overrider): Likewise. 1547990075Sobrien (modify_one_vtable): Remove. 1548090075Sobrien (dfs_find_base): New function. 1548190075Sobrien (dfs_modify_vtables): Fold modify_one_vtable in here. Use 1548290075Sobrien find_final_overrider. 1548390075Sobrien (modify_all_vtables): Adjust. Set BV_VCALL_INDEX on new 1548490075Sobrien virtuals. 1548590075Sobrien (dfs_fixup_vtable_deltas): Remove. 1548690075Sobrien (override_one_vtable): Remove. 1548790075Sobrien (merge_overrides): Likewise. 1548890075Sobrien (layout_virtual_bases): Make sure BINFO_OFFSET is set right for 1548990075Sobrien unreal chilren of virtual bases. 1549090075Sobrien (finish_struct_1): Don't use merge_overrides. Don't use 1549190075Sobrien dfs_fixup_vtable_deltas. 1549290075Sobrien * tree.c (reverse_path): Return a TREE_LIST, not a chain of 1549390075Sobrien BINFOs. 1549418334Speter 1549590075Sobrien2000-01-31 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> 1549690075Sobrien Jason Merrill <jason@yorick.cygnus.com> 1549718334Speter 1549890075Sobrien * tinfo.h: Rename USItype to myint32, depend on BITS_PER_UNIT. 1549918334Speter 1550090075Sobrien2000-01-31 Alfred Minarik <a8601248@unet.univie.ac.at> 1550118334Speter 1550290075Sobrien * exception.cc (__throw_bad_typeid): Add missing std::. 1550350397Sobrien 1550490075Sobrien2000-01-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1550550397Sobrien 1550690075Sobrien * cp-tree.h (make_thunk): PROTO -> PARAMS. 1550750397Sobrien 1550890075Sobrien2000-01-31 Nathan Sidwell <sidwell@codesourcery.com> 1550950397Sobrien 1551090075Sobrien * cp-tree.h (new_abi_rtti_p): Use flag_new_abi. 1551150397Sobrien 1551290075Sobrien Runtime support for new-abi rtti. 1551390075Sobrien * inc/typeinfo (type_info::operator!=): Define in class. 1551490075Sobrien (type_info::before, type_info::name, type_info::operator==, 1551590075Sobrien type_info::operator!=): Define new ABI implementations. 1551690075Sobrien (type_info::is_pointer_p, type_info::is_function_p): Declare 1551790075Sobrien new virtual functions. 1551890075Sobrien (type_info::do_catch, type_info::do_upcast): Likewise. 1551950397Sobrien 1552090075Sobrien * tinfo.h (__base_class_info): Define new class. 1552190075Sobrien (__class_type_info): Likewise. 1552290075Sobrien (__si_class_type_info): Likewise. 1552390075Sobrien (__vmi_class_type_info): Likewise. 1552490075Sobrien (__dynamic_cast): Prototype. 1552550397Sobrien 1552690075Sobrien * tinfo.cc: Conditionalize old and new rtti mechanisms. 1552790075Sobrien (type_info::is_pointer_p): Define new function. 1552890075Sobrien (type_info::is_function_p): Likewise. 1552990075Sobrien (type_info::do_catch): Likewise. 1553090075Sobrien (type_info::do_upcast): Likewise. 1553190075Sobrien (vtable_prefix): New structure for vtable access. 1553290075Sobrien (adjust_pointer): Define new template function. 1553390075Sobrien (contained_p, public_p, virtual_p, contained_public_p, 1553490075Sobrien contained_nonpublic_p, contained_nonvirtual_p): Define new 1553550397Sobrien functions. 1553690075Sobrien (nonvirtual_base_type): New local variable. 1553790075Sobrien (__class_type_info::~__class_type_info): Define. 1553890075Sobrien (__si_class_type_info::~__si_class_type_info): Likewise. 1553990075Sobrien (__vmi_class_type_info::~__vmi_class_type_info): Likewise. 1554090075Sobrien (__class_type_info::do_catch): Define new function. 1554190075Sobrien (__class_type_info::do_upcast): Likewise. 1554290075Sobrien (__class_type_info::find_public_src): Likewise. 1554390075Sobrien (__class_type_info::do_find_public_src): Likewise. 1554490075Sobrien (__si_class_type_info::do_find_public_src): Likewise. 1554590075Sobrien (__vmi_class_type_info::do_find_public_src): Likewise. 1554690075Sobrien (__class_type_info::do_dyncast): Likewise. 1554790075Sobrien (__si_class_type_info::do_dyncast): Likewise. 1554890075Sobrien (__vmi_class_type_info::do_dyncast): Likewise. 1554990075Sobrien (__class_type_info::do_upcast): Likewise. 1555090075Sobrien (__si_class_type_info::do_upcast): Likewise. 1555190075Sobrien (__vmi_class_type_info::do_upcast): Likewise. 1555290075Sobrien (__dynamic_cast): Likewise. 1555318334Speter 1555490075Sobrien * tinfo2.cc (__fundamental_type_info): Define new class. 1555590075Sobrien (__pointer_type_info): Likewise. 1555690075Sobrien (__reference_type_info): Likewise. 1555790075Sobrien (__array_type_info): Likewise. 1555890075Sobrien (__function_type_info): Likewise. 1555990075Sobrien (__enum_type_info): Likewise. 1556090075Sobrien (__ptr_to_member_type_info): Likewise. 1556190075Sobrien (__fundamental_type_info::~__fundamental_type_info): Define. 1556290075Sobrien (__pointer_type_info::~__pointer_type_info): Likewise. 1556390075Sobrien (__reference_type_info::~__reference_type_info): Likewise. 1556490075Sobrien (__array_type_info::~__array_type_info): Likewise. 1556590075Sobrien (__function_type_info::~__function_type_info): Likewise. 1556690075Sobrien (__enum_type_info::~__enum_type_info): Likewise. 1556790075Sobrien (__ptr_to_member_type_info::~__ptr_to_member_type_info): Likewise. 1556890075Sobrien (__pointer_type_info::do_catch): Define new function. 1556990075Sobrien (__ptr_to_member_type_info::do_catch): Define new function. 1557018334Speter 1557190075Sobrien (__throw_type_match_rtti_2): Use new ABI interface, if enabled. 1557290075Sobrien (__is_pointer): Likewise. 1557318334Speter 1557490075Sobrien * exception.cc (__cplus_type_matcher): Deal with new-abi rtti. 1557518334Speter 1557690075Sobrien2000-01-30 Mark Mitchell <mark@codesourcery.com> 1557718334Speter 1557890075Sobrien * cp/class.c (build_vtable): Rename to build_primary_vtable. 1557990075Sobrien (prepare_fresh_vtable): Rename to build_secondary_vtable. 1558090075Sobrien (make_new_vtable): New function. 1558190075Sobrien (modify_vtable_entry): Handle generation of new vtables correctly. 1558290075Sobrien (modify_one_vtable): Remove unused parameter. 1558390075Sobrien (dfs_fixup_vtable_deltas): Likewise. 1558490075Sobrien (override_one_vtable): Use build_secondary_vtable. 1558590075Sobrien (finish_struct_1): Use build_primary_vtable and 1558690075Sobrien build_secondary_vtable. 1558718334Speter 1558890075Sobrien2000-01-28 Ulrich Drepper <drepper@redhat.com> 1558918334Speter 1559090075Sobrien * cp/decl.c: Adjust variable names, comments, help strings. 1559118334Speter 1559290075Sobrien2000-01-29 Nathan Sidwell <nathan@acm.org> 1559318334Speter 1559490075Sobrien * new2.cc (operator delete[]): Use operator delete, don't assume 1559590075Sobrien implementation. 1559618334Speter 1559790075Sobrien2000-01-29 Nathan Sidwell <sidwell@codesourcery.com> 1559818334Speter 1559990075Sobrien * class.c (build_vtbl_initializer): Add argument to 1560090075Sobrien build_vtable_entry call. 1560118334Speter 1560290075Sobrien2000-01-27 Mark Mitchell <mark@codesourcery.com> 1560318334Speter 1560490075Sobrien * cp-tree.def (THUNK_DECL): Discuss vcall indices. 1560590075Sobrien * cp-tree.h (BINFO_VIRTUALS): Update documentation. 1560690075Sobrien (BF_DELTA): New macro. 1560790075Sobrien (BF_VCALL_INDEX): Likewise. 1560890075Sobrien (BF_FN): Likewise. 1560990075Sobrien (THUNK_VCALL_OFFSET): Likewise. 1561090075Sobrien (make_thunk): Change prototype. 1561190075Sobrien * class.c (build_vtable_entry): Integrate 1561290075Sobrien build_vtable_entry_for_fn. Handle vcall indices. 1561390075Sobrien (build_vtable_entry_for_fn): Remove. 1561490075Sobrien (set_rtti_entry): Handle vcall indices. Use BF_DELTA, 1561590075Sobrien BF_VCALL_INDEX, BF_FN. 1561690075Sobrien (modify_vtable_entry): Integrate common code from 1561790075Sobrien modify_one_vtable and dfs_fixup_vtable_deltas. 1561890075Sobrien (add_virtual_function): Set BF_VCALL_INDEX. 1561990075Sobrien (build_vtbl_initializer): Simplify. Use BF_DELTA, BF_VCALL_INDEX, 1562090075Sobrien and BF_FN. 1562190075Sobrien (modify_one_vtable): Simplify. 1562290075Sobrien (dfs_fixup_vtable_deltas): Likewise. 1562390075Sobrien (override_one_vtable): Use BF_DELTA, BF_VCALL_INDEX, BF_FN. 1562490075Sobrien * method.c (make_thunk): Handle vcall indices. 1562518334Speter 1562690075Sobrien2000-01-28 Nathan Sidwell <sidwell@codesourcery.com> 1562718334Speter 1562890075Sobrien Compiler side new abi rtti (not enabled). 1562990075Sobrien * cp-tree.h (new_abi_rtti_p): New macro. 1563090075Sobrien (emit_support_tinfos): Prototype new function. 1563190075Sobrien (tinfo_decl_p): Likewise. 1563290075Sobrien (emit_tinfo_decl): Likwise. 1563390075Sobrien * rtti.c (TINFO_PSEUDO_TYPE, TINFO_VTABLE_DECL): New accessor 1563490075Sobrien macros. 1563590075Sobrien (doing_runtime): New local static. 1563690075Sobrien (init_rtti_processing): Add new-abi initializer. 1563790075Sobrien (get_tinfo_decl): Add new-abi logic. 1563890075Sobrien (tinfo_from_decl): Likewise. 1563990075Sobrien (build_dynamic_cast_1): Likewise. 1564090075Sobrien (qualifier_flags): New static function. 1564190075Sobrien (tinfo_base_init): Likewise. 1564290075Sobrien (generic_initializer): Likewise. 1564390075Sobrien (ptr_ref_initializer): Likewise. 1564490075Sobrien (ptmd_initializer): Likewise. 1564590075Sobrien (class_hint_flags): Likewise. 1564690075Sobrien (class_initializer): Likewise. 1564790075Sobrien (synthesize_tinfo_var): Likewise. 1564890075Sobrien (create_real_tinfo_var): Likewise. 1564990075Sobrien (create_pseudo_type_info): Likewise. 1565090075Sobrien (get_vmi_pseudo_type_info): Likewise. 1565190075Sobrien (create_tinfo_types): Likewise. 1565290075Sobrien (emit_support_tinfos): New global function. 1565390075Sobrien (tinfo_decl_p): New global predicate. 1565490075Sobrien (emit_tinfo_decl): New global function. 1565590075Sobrien * class.c (set_rtti_entry): Generalize for old and new rtti. 1565690075Sobrien (build_vtbl_initializer): Likewise. 1565790075Sobrien * decl2.c (finish_file): Likewise. 1565818334Speter 1565990075SobrienThu Jan 27 20:53:36 2000 Jim Wilson <wilson@cygnus.com> 1566018334Speter 1566190075Sobrien * optimize.c (remap_decl): Add walk_tree calls for DECL_SIZE (t) 1566290075Sobrien and TYPE_MAX_VALUE (TYPE_DOMAIN (TREE_TYPE (t))). 1566318334Speter 1566490075SobrienThu Jan 27 13:54:12 2000 Mike Stump <mrs@wrs.com> 1566518334Speter 1566690075Sobrien * decl.c (pushdecl): Fix up shadow warnings with respect to implicit 1566790075Sobrien for scopes. 1566818334Speter 1566990075Sobrien2000-01-26 Jason Merrill <jason@casey.cygnus.com> 1567018334Speter 1567190075Sobrien * pt.c (unify): Use fold, not maybe_fold_nontype_arg. 1567218334Speter 1567390075SobrienWed Jan 26 22:19:14 2000 J"orn Rennecke <amylaar@cygnus.co.uk> 1567418334Speter 1567590075Sobrien * optimize.c (calls_setjmp_r): Supply new argument 1567690075Sobrien to special_function_p. 1567752284Sobrien 1567890075Sobrien2000-01-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1567918334Speter 1568090075Sobrien * call.c: PROTO -> PARAMS. 1568190075Sobrien * class.c: Likewise. 1568290075Sobrien * cp-tree.h: Likewise. 1568390075Sobrien * cvt.c: Likewise. 1568490075Sobrien * decl.c: Likewise. 1568590075Sobrien * decl.h: Likewise. 1568690075Sobrien * decl2.c: Likewise. 1568790075Sobrien * dump.c: Likewise. 1568890075Sobrien * errfn.c: Likewise. 1568990075Sobrien * error.c: Likewise. 1569090075Sobrien * except.c: Likewise. 1569190075Sobrien * expr.c: Likewise. 1569290075Sobrien * init.c: Likewise. 1569390075Sobrien * input.c: Likewise. 1569490075Sobrien * lex.c: Likewise. 1569590075Sobrien * lex.h: Likewise. 1569690075Sobrien * method.c: Likewise. 1569790075Sobrien * optimize.c: Likewise. 1569890075Sobrien * parse.y: Likewise. 1569990075Sobrien * pt.c: Likewise. 1570090075Sobrien * repo.c: Likewise. 1570190075Sobrien * rtti.c: Likewise. 1570290075Sobrien * search.c: Likewise. 1570390075Sobrien * semantics.c: Likewise. 1570490075Sobrien * spew.c: Likewise. 1570590075Sobrien * tree.c: Likewise. 1570690075Sobrien * typeck.c: Likewise. 1570790075Sobrien * typeck2.c: Likewise. 1570890075Sobrien * xref.c: Likewise. 1570918334Speter 1571090075Sobrien2000-01-25 Richard Henderson <rth@cygnus.com> 1571118334Speter 1571290075Sobrien * typeck.c (build_binary_op_nodefault): Remove UNNE_EXPR. 1571318334Speter 1571490075Sobrien2000-01-25 Mark Mitchell <mark@codesourcery.com> 1571518334Speter 1571690075Sobrien * cp-tree.h (vcall_offset_in_vtable_p): New macro. 1571790075Sobrien * class.c (build_vbase_offset_vtbl_entries): Fix typo in commment. 1571890075Sobrien (struct vcall_offset_data_s): New type. 1571990075Sobrien (dfs_vcall_offset_queue_p): New function. 1572090075Sobrien (dfs_build_vcall_offset_vtbl_entries): Likewise. 1572190075Sobrien (build_vcall_offset_vtbl_entries): Likewise. 1572290075Sobrien (layout_vtable_decl): Likewise. 1572390075Sobrien (num_vfun_entries): Likewise. 1572490075Sobrien (num_extra_vtbl_entries): Add the entries for vcall offsets. 1572590075Sobrien (build_vtbl_initializer): Likewise. 1572690075Sobrien (dfs_finish_vtabls): Use layout_vtable_decl. 1572790075Sobrien (modify_one_vtables): Always duplicate vtables under the new ABI. 1572890075Sobrien (finish_struct_1): Use layout_vtable_decl. 1572918334Speter 1573090075Sobrien2000-01-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1573118334Speter 1573290075Sobrien * decl.c (member_function_or_else): Change third arg from a format 1573390075Sobrien specifier to an `enum overload_flags'. Callers changed. 1573418334Speter 1573590075Sobrien2000-01-25 Gabriel Dos Reis <gdr@codesourcery.com> 1573618334Speter 1573790075Sobrien * typeck.c (composite_pointer_type, c_sizeof, expr_sizeof, 1573890075Sobrien build_binary_op_nodefault, build_unary_op, build_reinterpret_cast, 1573990075Sobrien build_const_cast, get_delta_difference, check_return_expr): Avoid 1574090075Sobrien ANSI string concatenation usage. 1574118334Speter 1574290075Sobrien2000-01-24 Mark Mitchell <mark@codesourcery.com> 1574318334Speter 1574490075Sobrien * class.c (layout_class_type): Put the fields required to make a 1574590075Sobrien class non-empty at the end, not the beginning, of the TYPE_FIELDs 1574690075Sobrien list. 1574718334Speter 1574890075Sobrien2000-01-24 Jason Merrill <jason@casey.cygnus.com> 1574918334Speter 1575090075Sobrien * pt.c (maybe_fold_nontype_arg): Do nothing if we're not in a 1575190075Sobrien template. 1575218334Speter 1575390075Sobrien * decl2.c (mark_used): Do instantiate inlines that have been 1575490075Sobrien explicitly instantiated. 1575518334Speter 1575690075Sobrien2000-01-24 Richard Henderson <rth@cygnus.com> 1575718334Speter 1575890075Sobrien * call.c (build_over_call): Use expand_tree_builtin. 1575990075Sobrien * typeck.c (build_function_call_real): Likewise. 1576090075Sobrien (build_binary_op_nodefault): Handle unordered compares. 1576118334Speter 1576290075Sobrien2000-01-24 Nathan Sidwell <sidwell@codesourcery.com> 1576318334Speter 1576490075Sobrien * cp-tree.h (CPTI_BAD_CAST, CPTI_BAD_TYPEID, CPTI_DCAST): New 1576590075Sobrien cp_tree_index values. 1576690075Sobrien (throw_bad_cast_node, throw_bad_typeid_node, dynamic_cast_node): 1576790075Sobrien New global node #defines for them. 1576890075Sobrien * rtti.c (call_void_fn): Replace with ... 1576990075Sobrien (build_runtime_decl): ... new static function. 1577090075Sobrien (throw_bad_cast): Use throw_bad_cast_node and build_runtime_decl. 1577190075Sobrien (throw_bad_typeid): Use throw_bad_typeid_node and build_runtime_decl. 1577290075Sobrien (build_dynamic_cast_1): Always produce correctly typed result. 1577390075Sobrien Explicitly produce type_info addresses. Use dynamic_cast_node. 1577490075Sobrien * exception.cc (__throw_bad_cast): Return `void *'. 1577590075Sobrien (__throw_bad_typeid): Return `const type_info &'. 1577618334Speter 1577790075Sobrien2000-01-24 Nathan Sidwell <sidwell@codesourcery.com> 1577818334Speter 1577990075Sobrien * cp-tree.h (get_vtable_decl): Prototype new function. 1578090075Sobrien * class.c (get_vtable_decl): New function. Broken out from ... 1578190075Sobrien (build_vtable): ... here. Use it. 1578290075Sobrien * decl2.c (finish_vtable_vardecl): Ignore dummy vtables created 1578390075Sobrien by get_vtable_decl. 1578418334Speter 1578590075Sobrien2000-01-24 Nathan Sidwell <sidwell@codesourcery.com> 1578618334Speter 1578790075Sobrien * cp-tree.h (CPTI_TP_DESC_TYPE, CPTI_ACCESS_MODE_TYPE, 1578890075Sobrien CPTI_USER_DESC_TYPE, CPTI_CLASS_DESC_TYPE, CPTI_ATTR_DESC_TYPE, 1578990075Sobrien CPTI_PTMF_DESC_TYPE): Remove cp_tree_index enumerations. 1579090075Sobrien (CPTI_TI_DESC_TYPE, CPTI_REF_DESC_TYPE, CPTI_ARY_DESC_TYPE, 1579190075Sobrien CPTI_ENUM_DESC_TYPE, CPTI_CLASS_DESC_TYPE, CPTI_SI_CLASS_DESC_TYPE, 1579290075Sobrien CPTI_VMI_CLASS_DESC_TYPE, CPTI_BASE_DESC_TYPE): New enumerations. 1579390075Sobrien (CPTI_TINFO_FN_ID, CPTI_TINFO_FN_TYPE): Rename to ... 1579490075Sobrien (CPTI_TINFO_DECL_ID, CPTI_TINFO_DECL_TYPE): ... here. 1579590075Sobrien (CPTI_TINFO_VAR_ID): New enumeration. 1579690075Sobrien (__tp_desc_type_node, __access_mode_type_node, 1579790075Sobrien __bltn_desc_type_node, __user_desc_type_node, 1579890075Sobrien __class_desc_type_node, __ptr_desc_type_node, 1579990075Sobrien __attr_desc_type_node, __func_desc_type_node, 1580090075Sobrien __ptmf_desc_type_node, __ptmd_desc_type_node): Remove #defines. 1580190075Sobrien (ti_desc_type_node, bltn_desc_type_node, ptr_desc_type_node, 1580290075Sobrien ref_desc_type_node, ary_desc_type_node, func_desc_type_node, 1580390075Sobrien enum_desc_type_node, class_desc_type_node, 1580490075Sobrien si_class_desc_type_node, vmi_class_desc_type_node, 1580590075Sobrien ptmd_desc_type_node, base_desc_type_node): New #defines. 1580690075Sobrien (tinfo_fn_id, tinfo_fn_type): Rename to ... 1580790075Sobrien (tinfo_decl_id, tinfo_decl_type): ... here. Adjust. 1580890075Sobrien (tinfo_var_id): New enumeration. 1580990075Sobrien (DECL_TINFO_FN_P): Augment comment. 1581090075Sobrien * decl.c (cp_global_trees): Adjust documentation. 1581190075Sobrien * rtti.c (init_rtti_processing): Adjust for tinfo_decl_id, 1581290075Sobrien tinfo_decl_type and tinfo_var_id. 1581390075Sobrien (get_tinfo_decl_dynamic): Adjust for tinfo_decl_type. 1581490075Sobrien (build_typeid): Remove unused variable. 1581590075Sobrien (get_tinfo_var): Use tinfo_var_id. 1581690075Sobrien (tinfo_name): New static function. 1581790075Sobrien (get_tinfo_decl): Adjust for tinfo_decl_id and tinfo_decl_type. 1581890075Sobrien (tinfo_from_decl): Likewise. 1581990075Sobrien (get_base_offset): New static function, broken out of 1582090075Sobrien expand_class_desc. 1582190075Sobrien (expand_si_desc): Use tinfo_name. 1582290075Sobrien (expand_class_desc): Likewise. Lose local static variable. 1582390075Sobrien Use base_desc_type_node. Use get_base_offset. 1582490075Sobrien (expand_ptr_desc): Use tinfo_name. 1582590075Sobrien (expand_attr_desc): Likewise. 1582690075Sobrien (expand_generic_desc): Likewise. 1582718334Speter 1582890075Sobrien * tinfo.cc (__GXX_ABI_VERSION): Test value and existence. 1582990075Sobrien * tinfo.h (__GXX_ABI_VERSION): Test value and existence. 1583018334Speter 1583190075Sobrien2000-01-23 Mark Mitchell <mark@codesourcery.com> 1583218334Speter 1583390075Sobrien * cp-tree.h (__eprintf): Remove declaration. 1583490075Sobrien * tree.c (__eprintf): Remove definition. 1583518334Speter 1583690075Sobrien2000-01-23 Zack Weinberg <zack@rabi.columbia.edu> 1583790075Sobrien Mark Mitchell <mark@codesourcery.com> 1583818334Speter 1583990075Sobrien * cp-tree.h (CLASSTYPE_MARKED_N, SET_CLASSTYPE_MARKED_N, 1584090075Sobrien CLEAR_CLASSTYPE_MARKED_N): Avoid signed vs. unsigned warnings. 1584118334Speter 1584290075Sobrien2000-01-23 Brad Lucier <lucier@math.purdue.edu> 1584318334Speter 1584490075Sobrien * class.c (dump_class_hierarchy): Print HOST_WIDE_INT properly. 1584518334Speter 1584690075Sobrien2000-01-23 Mark Mitchell <mark@codesourcery.com> 1584718334Speter 1584890075Sobrien * cp-tree.h (register_dtor_fn): New function. 1584990075Sobrien * decl.c (destroy_local_static): Rename to ... 1585090075Sobrien (register_dtor_fn): ... this. Give it external linkage. 1585190075Sobrien (expand_static_init): Use it. 1585290075Sobrien * decl2.c (do_static_initialization): Likewise, if using 1585390075Sobrien __cxa_atexit. 1585490075Sobrien (do_static_destruction): Check that __cxa_atexit is not in use. 1585590075Sobrien (finish_file): Don't call do_static_destruction if using 1585690075Sobrien __cxa_atexit. 1585718334Speter 1585890075Sobrien * typeck.c (convert_arguments): Restore two-message error 1585990075Sobrien reporting. 1586018334Speter 1586190075Sobrien2000-01-20 Nathan Sidwell <sidwell@codesourcery.com> 1586218334Speter 1586390075Sobrien Remap dynamic cast hint values to be consistent across ABIs. 1586490075Sobrien * search.c (dynamic_cast_base_recurse): Remap generated value. 1586590075Sobrien (get_dynamic_cast_base_type): Adjust documentation. 1586690075Sobrien * tinfo.h (__user_type_info::dyncast): Likewise. 1586790075Sobrien (__user_type_info::find_public_subobj): Remap BOFF meaning. 1586890075Sobrien * tinfo.cc (__si_type_info::do_dyncast): Remap BOFF meaning. 1586990075Sobrien (__class_type_info::do_dyncast): Likewise. 1587090075Sobrien (__class_type_info::do_find_public_subobj): Likewise. 1587190075Sobrien * tinfo2.cc (__dynamic_cast): Remap BOFF parameter. 1587218334Speter 1587390075Sobrien2000-01-19 Gabriel Dos Reis <gdr@codesourcery.com> 1587418334Speter 1587590075Sobrien * typeck.c (build_unary_op): Use cp_pedwarn, not pedwarn. 1587618334Speter 1587790075Sobrien * typeck2.c (incomplete_type_error): Restore previous 1587890075Sobrien cp_error and cp_error_at call sequence. 1587918334Speter 1588090075Sobrien2000-01-20 Brad Lucier <lucier@math.purdue.edu> 1588118334Speter 1588290075Sobrien * class.c (dump_class_hierarchy): Make format agree with argument; 1588390075Sobrien cast pointer to unsigned long and print with %lx. 1588418334Speter 1588590075Sobrien2000-01-19 Gabriel Dos Reis <gdr@codesourcery.com> 1588618334Speter 1588790075Sobrien * decl2.c (lang_decode_option): Set default line-wrap length to 72. 1588818334Speter 1588990075Sobrien * typeck.c (composite_pointer_type, common_type, 1589090075Sobrien comp_target_parms, c_sizeof, expr_sizeof, build_array_ref, 1589190075Sobrien build_function_call_real, convert_arguments, 1589290075Sobrien build_binary_op_nodefault, pointer_int_sum, pointer_diff, 1589390075Sobrien build_unary_op, mark_addressable, build_compound_expr, 1589490075Sobrien build_static_cast, build_reinterpret_cast, build_const_cast, 1589590075Sobrien build_c_cast, build_modify_expr, get_delta_difference, 1589690075Sobrien build_ptrmemfunc, check_return_expr): Replace 'ANSI C++' with 1589790075Sobrien 'ISO C++'. Fusion consecutive calls to diagnostic message routines 1589890075Sobrien into a single one. 1589990075Sobrien * typeck2.c (readonly_error, abstract_virtuals_error, 1590090075Sobrien process_init_constructor, check_for_new_type): Likewise. 1590118334Speter 1590290075Sobrien2000-01-19 Mark Mitchell <mark@codesourcery.com> 1590318334Speter 1590490075Sobrien * tree.c (bot_manip): Set DECL_CONTEXT for newly created 1590590075Sobrien VAR_DECLs. 1590618334Speter 1590790075Sobrien2000-01-18 Nathan Sidwell <sidwell@codesourcery.com> 1590818334Speter 1590990075Sobrien * cp-tree.h (get_tinfo_fn_dynamic): Remove prototype. 1591090075Sobrien (build_x_typeid): Likewise. 1591190075Sobrien (get_tinfo_fn): Likewise. 1591290075Sobrien (get_tinfo_fn_unused): Rename to ... 1591390075Sobrien (get_tinfo_decl): ... here. 1591490075Sobrien * rtti.c (build_headof): Replace logic error with assertion. 1591590075Sobrien (get_tinfo_fn_dynamic): Rename to ... 1591690075Sobrien (get_tinfo_decl_dynamic): ... here. Make static. Use 1591790075Sobrien complete_type_or_else. 1591890075Sobrien (build_x_typeid): Move into ... 1591990075Sobrien (build_typeid): ... here. Adjust call to 1592090075Sobrien get_tinfo_decl_dynamic. Use tinfo_from_decl. Simplify 1592190075Sobrien throw_bad_typeid expression. 1592290075Sobrien (get_tinfo_fn_unused): Rename to ... 1592390075Sobrien (get_tinfo_decl): ... here. Adjust comment. 1592490075Sobrien (get_tinfo_fn): Delete. 1592590075Sobrien (tinfo_from_decl): New static function. 1592690075Sobrien (get_typeid_1): Call get_tinfo_decl and tinfo_from_decl. 1592790075Sobrien (get_typeid): Use complete_type_or_else. 1592890075Sobrien (build_dynamic_cast_1): Adjust calls to 1592990075Sobrien get_tinfo_decl_dynamic. Simplify throw_bad_cast expression. 1593090075Sobrien * parse.y (primary): Adjust call to build_typeid. 1593190075Sobrien * except.c (build_eh_type_type_ref): Adjust call to 1593290075Sobrien get_tinfo_decl. Mark as used. 1593390075Sobrien * class.c (set_rtti_entry): Adjust call to get_tinfo_decl. 1593490075Sobrien * decl2.c (build_expr_from_tree): Adjust call to build_typeid. 1593590075Sobrien * parse.c: Regenerated. 1593618334Speter 1593790075Sobrien2000-01-17 Mark Mitchell <mark@codesourcery.com> 1593818334Speter 1593990075Sobrien * class.c (fixed_type_or_null): Don't clear NONNULL. Document 1594090075Sobrien calling convention. 1594190075Sobrien (resolves_to_fixed_type_p): Document calling convention. 1594290075Sobrien * rtti.c (build_x_typeid): Initialize NONNULL. 1594318334Speter 1594490075Sobrien * cp-tree.h (build_shared_int_cst): New function. 1594590075Sobrien * call.c (build_over_call): Use DECL_VIRTUAL_CONTEXT, for clarity. 1594690075Sobrien * class.c (modify_vtable_entry): Likewise. 1594790075Sobrien (add_virtual_function): Split out code to generated shared 1594890075Sobrien INTEGER_CSTs to build_share_int_cst. 1594990075Sobrien (modify_all_vtables): Handle all the overridden functions here. 1595090075Sobrien Add overridden functions from non-primary virtual bases to the 1595190075Sobrien primary vtable. 1595290075Sobrien (finish_struct_1): Adjust call to modify_all_vtables. Add 1595390075Sobrien overridden functions from non-primary bases to the vtable. 1595490075Sobrien * tree.c (build_shared_int_cst): New function. 1595518334Speter 1595690075Sobrien * cp-tree.h (scratchalloc): Remove. 1595790075Sobrien (build_scratch_list): Likewise. 1595890075Sobrien * call.c (convert_class_to_reference): Replace build_scratch_list 1595990075Sobrien and build_expr_list with build_tree_list. 1596090075Sobrien (add_candidate): Replace scratchalloc with expralloc. Note memory 1596190075Sobrien leak. 1596290075Sobrien (build_user_type_conversion_1): Replace build_scratch_list 1596390075Sobrien and build_expr_list with build_tree_list. 1596490075Sobrien (build_new_op): Likewise. 1596590075Sobrien (build_op_delete_call): Likewise. 1596690075Sobrien (convert_like): Likewise. 1596790075Sobrien * cvt.c (ocp_convert): Likewise. 1596890075Sobrien * decl.c (start_decl): Likewise. 1596950397Sobrien (start_function): Likewise. 1597090075Sobrien (finish_destructor_body): Likewise. 1597190075Sobrien (maybe_build_cleanup_1): Likewise. 1597290075Sobrien * decl2.c (reparse_decl_as_expr): Likewise. 1597390075Sobrien * init.c (perform_member_init): Likewise. 1597490075Sobrien (expand_cleanup_for_base): Likewise. 1597590075Sobrien (build_builtin_delete_call): Likewise. 1597690075Sobrien (build_new_1): Likewise. 1597790075Sobrien (build_delete): Likewise. 1597850397Sobrien * method.c (do_build_assign_ref): Likewise. 1597990075Sobrien * parse.y (already_scoped_stmt): Likewise. 1598090075Sobrien (nontrivial_exprlist): Likewise. 1598190075Sobrien (net_initializer): Likewise. 1598290075Sobrien (initlist): Likewise. 1598390075Sobrien * parse.c: Regenerated. 1598490075Sobrien * rtti.c (build_x_typeid): Likewise. 1598590075Sobrien (build_dynamic_cast_1): Likewise. 1598690075Sobrien * typeck.c (build_x_compound_expr): Likewise. 1598790075Sobrien (build_static_cast): Likewise. 1598890075Sobrien (build_modify_expr): Likewise. 1598918334Speter 1599090075Sobrien * cp-tree.h (DECL_VINDEX): Add documentation. 1599190075Sobrien * class.c (build_vtable_entry): Likewise. 1599290075Sobrien (start_vtable): Add comment. 1599390075Sobrien (add_virtual_function): Replace pending_hard_virtuals with 1599490075Sobrien overridden_virtuals and pending_virtuals with new_virtuals. 1599590075Sobrien Replace redundant assignments with assertions. 1599690075Sobrien (check_for_override): Add comment. 1599790075Sobrien (check_bases_and_members): Replace pending_hard_virtuals with 1599890075Sobrien overridden_virtuals and pending_virtuals with new_virtuals. 1599990075Sobrien (create_vtbl_ptr): Likewise. 1600090075Sobrien (layout_class_type): Likewise. 1600190075Sobrien (finish_struct_1): Likewise. Add comments. 1600218334Speter 1600390075Sobrien2000-01-16 Mark Mitchell <mark@codesourcery.com> 1600418334Speter 1600590075Sobrien * class.c (finish_struct_1): Replace redundant code with 1600690075Sobrien assertions. 1600718334Speter 1600890075Sobrien * cp-tree.h (flag_new_abi): Move. 1600990075Sobrien (flag_use_cxa_atexit): Likewise. 1601090075Sobrien (flag_honor_std): Likewise. 1601190075Sobrien (flag_rtti): Likewise. 1601290075Sobrien (vbase_offsets_in_vtable_p): Define. 1601390075Sobrien (vptrs_present_everywhere_p): Likewise. 1601490075Sobrien (TYPE_CONTAINS_VPTR_P): Likewise. 1601590075Sobrien (dfs_walk_real): Declare. 1601690075Sobrien * class.c (build_vbase_pointer_fields): Check 1601790075Sobrien vbase_offsets_in_vtable_p. 1601890075Sobrien (dfs_build_vbase_offset_vtbl_entries): Record the vbase indices in 1601990075Sobrien BINFO_VPTR_FIELD. 1602090075Sobrien (build_vbase_offset_vtbl_entries): Simplify. 1602190075Sobrien (build_vbase_offset_vtbl_entries): Adjust. 1602290075Sobrien (build_vbase_pointer): Add ability to look up vbase offsets in 1602390075Sobrien vtable. 1602490075Sobrien (start_vtable): New function. 1602590075Sobrien (add_virtual_function): Use it. 1602690075Sobrien (determine_primary_base): Use TYPE_CONTAINS_VPTR_P. 1602790075Sobrien (num_extra_vtbl_entries): Use vbase_offsets_in_vtable_p. 1602890075Sobrien (build_vtbl_initializer): Take the type of the complete object as 1602990075Sobrien input. Use it to correctly calculate vbase offsets. 1603090075Sobrien (dfs_finish_vtbls): Pass the complete type to 1603190075Sobrien build_vtbl_initializer. 1603290075Sobrien (check_bases_and_members): Use TYPE_CONTAINS_VPTR_P. 1603390075Sobrien (create_vtable_ptr): Create a vtable even if there are no 1603490075Sobrien new virtual functions, under the new ABI. 1603590075Sobrien (finish_struct_1): Likewise. 1603690075Sobrien (get_vfield_name): Use TYPE_CONTAINS_VPTR_P. 1603790075Sobrien * decl.c (exapnd_static_init): Remove call to 1603890075Sobrien preserve_initializer. 1603990075Sobrien * decl2.c (mark_vtable_entries): Tweak to handle vbase offsets in 1604090075Sobrien vtables. 1604190075Sobrien * init.c (initialize_vtbl_ptrs): Initialize them in pre-order. 1604290075Sobrien (expand_virtual_init): Use vbase_offsets_in_vtable_p. 1604390075Sobrien (construct_virtual_bases): Don't initialize virtual base pointers 1604490075Sobrien under the new ABI. 1604590075Sobrien (build_aggr_init): Clean up comment. 1604690075Sobrien (expand_aggr_init_1): Likewise. 1604790075Sobrien * rtti.c (expand_class_desc): Store the virtual function table 1604890075Sobrien index where the vbase offset lives in the offset field. 1604990075Sobrien * search.c (dfs_walk_real): Make it global. 1605090075Sobrien (dfs_debug_mark): Use TYPE_CONTAINS_VPTR_P. 1605190075Sobrien * tree.c (make_binfo): Don't clear BINFO_VPTR_FIELD. 1605218334Speter 1605390075Sobrien * tinfo.h (USItype): Make it signed under the new ABI. 1605490075Sobrien * tinfo.cc (convert_to_base): New function. Encapsulate base 1605590075Sobrien conversion logic here. 1605690075Sobrien (__class_type_info::do_upcast): Use it. 1605790075Sobrien (__class_type_info::do_dyncast): Likewise. 1605890075Sobrien (__class_type_info::do_find_public_subobj): Likewise. 1605918334Speter 1606090075Sobrien * init.c (construct_virtual_bases): Don't look up the addresses of 1606190075Sobrien virtual bases at run-time. 1606218334Speter 1606390075Sobrien * class.c (build_vbase_pointer): Relocate. 1606490075Sobrien (build_vbase_pointer_fields): Likewise. 1606590075Sobrien (dfs_build_vbase_offset_vtbl_entries): Likewise. 1606690075Sobrien (build_vbase_offset_vtbl_entries): Likewise. 1606718334Speter 1606890075Sobrien * decl.c (init_decl_processing): Complain if -fnew-abi 1606990075Sobrien -fno-vtable-thunks is used. 1607018334Speter 1607190075Sobrien * decl2.c (lang_decode_option): Don't couple flag_honor_std to 1607290075Sobrien flag_new_abi. 1607318334Speter 1607490075Sobrien2000-01-15 Mark Mitchell <mark@codesourcery.com> 1607518334Speter 1607690075Sobrien * cp-tree.h (num_extra_vtbl_entries): New function. 1607790075Sobrien (size_extra_vtbl_entries): Likewise. 1607890075Sobrien (dfs_vtable_path_unmark): Likewise. 1607990075Sobrien (dfs_vtable_path_unmarked_real_bases_queue_p): Likewise. 1608090075Sobrien (dfs_vtable_path_marked_real_bases_queue_p): Likewise. 1608190075Sobrien * class.c (num_extra_vtbl_entries): New function. 1608290075Sobrien (size_extra_vtbl_entries): Likewise. 1608390075Sobrien (dfs_build_vbase_offset_vtbl_entries): New function. 1608490075Sobrien (build_vbase_offset_vtbl_entries): Likewise. 1608590075Sobrien (build_vtbl_initializer): Use it. 1608690075Sobrien (finish_struct_1): Adjust vtable sizes (using 1608790075Sobrien num_extra_vtbl_entries). 1608890075Sobrien * expr.c (cplus_expand_expr): Assert that the DECL_RTL for a 1608990075Sobrien THUNK_DECL is non-NULL before expanding it. 1609090075Sobrien * init.c (expand_virtual_init): Adjust the vtable pointer by 1609190075Sobrien size_extra_vtbl_entries before storing it. 1609290075Sobrien * search.c (get_shared_vase_if_not_primary): Adjust prototype. 1609390075Sobrien Handle TREE_LIST parameters here, not in the dfs_* functions. 1609490075Sobrien (dfs_unmarked_real_bases_queue_p): Adjust. 1609590075Sobrien (dfs_marked_real_bases_queue_p): Likewise. 1609690075Sobrien (dfs_vtable_path_unmarked_real_bases_queue_p): New function. 1609790075Sobrien (dfs_vtable_path_marked_real_bases_queue_p): New function. 1609890075Sobrien (dfs_vtable_path_unmark): Likewise. 1609918334Speter 1610090075Sobrien2000-01-14 Mark Mitchell <mark@codesourcery.com> 1610118334Speter 1610290075Sobrien * optimize.c (copy_body_r): Clear the operand three of a 1610390075Sobrien TARGET_EXPR when copying it. 1610418334Speter 1610590075Sobrien2000-01-14 Martin v. L�wis <loewis@informatik.hu-berlin.de> 1610618334Speter 1610790075Sobrien * method.c (build_decl_overload_real): Check whether we are in :: 1610890075Sobrien before returning __builtin_new/delete. 1610918334Speter 1611090075Sobrien2000-01-13 Mark Mitchell <mark@codesourcery.com> 1611118334Speter 1611290075Sobrien * pt.c (tsubst_friend_function): Improve comment. 1611390075Sobrien (instantiate_decl): Avoid crashing when a "nested" function is 1611490075Sobrien instantiated from the top level. 1611518334Speter 1611690075Sobrien * dump.c (dqeueue_and_dump): Dump 1611790075Sobrien DECL_FRIEND_PSEUDO_TEMPLATE_INSTANTIATION. 1611818334Speter 1611990075Sobrien2000-01-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1612018334Speter 1612190075Sobrien * call.c: If GATHER_STATISTICS, declare `n_build_method_call'. 1612218334Speter 1612390075Sobrien2000-01-13 Nathan Sidwell <sidwell@codesourcery.com> 1612418334Speter 1612590075Sobrien * g++spec.c (lang_specific_driver): Add -fnew-abi if 1612690075Sobrien ENABLE_NEW_GXX_ABI defined. 1612790075Sobrien * Make-lang.in (tinfo.o, tinfo2.o, exception.o, new.o, 1612890075Sobrien opnew.o, opnewnt.o, opvnew.o, opvnewnt.o, opdel.o, opdelnt.o, 1612990075Sobrien opvdel.o, opvdelnt.o): Use GXX_ABI_FLAG switch. 1613018334Speter 1613190075Sobrien2000-01-12 Mark Mitchell <mark@codesourcery.com> 1613218334Speter 1613390075Sobrien * decl.c (start_cleanup_fn): Call pushdecl. 1613418334Speter 1613590075Sobrien * call.c (convert_class_to_reference): Fix typos. 1613690075Sobrien (build_conditional_expr): Handle errors gracefully. 1613790075Sobrien * class.c (push_nested_class): Likewise. 1613890075Sobrien * cp-tree.h (VAR_FUNCTION_OR_PARM_DECL_CHECK): New macro. 1613990075Sobrien (DECL_THIS_EXTERN): Use it. 1614090075Sobrien (DECL_THIS_STATIC): Likewise. 1614190075Sobrien * cvt.c (convert_to_void): Handle errors gracefully. 1614290075Sobrien (build_expr_type_conversion): Likewise. 1614390075Sobrien * decl.c (maybe_push_decl): Likewise. 1614490075Sobrien (start_decl_1): Likewise. 1614590075Sobrien (require_complete_types_for_parms): Likewise. 1614690075Sobrien * parse.y (structsp): Likewise. 1614790075Sobrien (base_class): Likewise. 1614890075Sobrien * parse.c: Regenerated. 1614990075Sobrien * pt.c (finish_member_template_decl): Likewise. 1615090075Sobrien * typeck.c (decay_conversion): Likewise. 1615118334Speter 1615290075Sobrien * cp-tree.h (dfs_skip_vbases): New function. 1615390075Sobrien (find_vbase_instance): Likewise. 1615490075Sobrien * class.c (determine_primary_base): Allow a nearly empty base to 1615590075Sobrien serve as a primary base class under the new ABI. 1615690075Sobrien (get_class_offset_1): Rename to ... 1615790075Sobrien (dfs_get_class_offset): ... this. Simplify. Don't issue error 1615890075Sobrien messages here. 1615990075Sobrien (get_class_offset): Use it. Issue error messages here. 1616090075Sobrien (dfs_modify_vtables): Rely on dfs_unmarked_real_bases_queue_p to 1616190075Sobrien find the right copies of virtual bases. 1616290075Sobrien (fixup_vtable_deltas1): Rename to ... 1616390075Sobrien (dfs_fixup_vtable_deltas): ... this. Adjust to handle virtual 1616490075Sobrien bases as primary bases. 1616590075Sobrien (fixup_vtable_deltas): Remove. 1616690075Sobrien (override_one_vtable): Handle virtual bases as primary bases. 1616790075Sobrien (merge_overrides): Likewise. 1616890075Sobrien (finish_struct_1): Likewise. 1616990075Sobrien (dump_class_hierarchy): Dump primary-ness of bases as well. 1617090075Sobrien * search.c (mark_primary_bases): Use a pre-order traversal to 1617190075Sobrien handle primary virtual bases. 1617290075Sobrien (dfs_skip_vbases): New fiunction. 1617390075Sobrien (expand_upcast_fixups): Adjust to handle primary virtual bases. 1617490075Sobrien (fixup_virtual_upcast_offsets): Likewise. 1617590075Sobrien (fixup_all_virtual_upcast_offsets): Likewise. 1617690075Sobrien (dfs_find_vbase_instances): New function. 1617790075Sobrien (find_vbase_instance): Likewise. 1617818334Speter 1617990075Sobrien2000-01-11 Mumit Khan <khan@xraylith.wisc.edu> 1618018334Speter 1618190075Sobrien * lex.c (DIR_SEPARATOR): Delete macro. 1618218334Speter 1618390075Sobrien2000-01-12 Gabriel Dos Reis <gdr@codesourcery.com> 1618418334Speter 1618590075Sobrien * decl2.c (lang_decode_option): Handle automatic line wrapping 1618690075Sobrien option. 1618718334Speter 1618890075Sobrien2000-01-11 Mark Mitchell <mark@codesourcery.com> 1618918334Speter 1619090075Sobrien * friend.c (do_friend): Don't resolve scopes when processing 1619190075Sobrien template declarations, even if the qualifying scope doesn't 1619290075Sobrien involve template parameters. 1619318334Speter 1619490075Sobrien2000-01-10 Mark Mitchell <mitchell@dumbledore.codesourcery.com> 1619518334Speter 1619690075Sobrien * class.c (dfs_modify_vtables_queue_p): Remove. 1619790075Sobrien (modify_all_vtables): Use dfs_unmarked_real_bases_queue_p 1619890075Sobrien and dfs_marked_real_bases_queue_p instead of 1619990075Sobrien dfs_modify_vtables_queue_p. 1620018334Speter 1620190075Sobrien * class.c (build_vbase_path): Simplify. 1620290075Sobrien (dfs_propagate_binfo_offsets): New function. 1620390075Sobrien (propagate_binfo_offsets): Use it. 1620490075Sobrien (remove_base_field): Simplify. 1620590075Sobrien (dfs_set_offset_for_vbases): Remove. 1620690075Sobrien (dfs_set_offset_for_shared_vbases): New function. 1620790075Sobrien (dfs_set_offset_for_unshared_vbases): Likewise. 1620890075Sobrien (layout_virtual_bases): Use them. 1620990075Sobrien (layout_basetypes): Don't call propagate_binfo_offsets. 1621090075Sobrien * search.c (dfs_get_vbase_types): Clone completely fresh binfos 1621190075Sobrien for the vbases. 1621218334Speter 1621390075Sobrien * class.c (build_base_field): New function, split out from ... 1621490075Sobrien (build_base_fields): ... here. Use it. Allocate primary bases 1621590075Sobrien first, under the new ABI. 1621690075Sobrien (get_vtable_entry): Remove. 1621790075Sobrien (remove_base_field): New function, split out from ... 1621890075Sobrien (remove_base_fields): ... here. Adjust since primary bases come 1621990075Sobrien first under the new ABI. 1622018334Speter 1622190075Sobrien * cp-tree.h (expand_direct_vtbls_init): Remove declaration. 1622290075Sobrien (initialize_vtbl_ptrs): New function. 1622390075Sobrien (expand_indirect_vtbls_init): Change prototype. 1622490075Sobrien (convert_pointer_to_vbase): Declare. 1622590075Sobrien * init.c (expand_direct_vtbls_init): Remove. 1622690075Sobrien (dfs_initialize_vtbl_ptrs): New function. 1622790075Sobrien (initialize_vtbl_ptrs): Likewise. 1622890075Sobrien (emit_base_init): Use initialize_vtbl_ptrs. 1622990075Sobrien * search.c (convert_pointer_to_vbase): Make it global. 1623090075Sobrien (expand_indirect_vtbls_init): Remove vtable initialization code. 1623190075Sobrien * semantics.c (setup_vtbl_ptr): Use initialize_vtbl_ptrs. 1623218334Speter 1623390075Sobrien * class.c (dfs_finish_vtbls): New function. 1623490075Sobrien (finish_vtbls): Use it. 1623590075Sobrien (dump_class_hierarchy): New function. 1623618334Speter 1623790075Sobrien * cp-tree.h (BINFO_PRIMARY_MARKED_P): Change definition. 1623890075Sobrien (BINFO_VBASE_PRIMARY_P): New macro. 1623990075Sobrien (BINFO_VIRTUALS): Add to documentation. 1624090075Sobrien (SET_BINFO_PRIMARY_MARKED_P): Remove. 1624190075Sobrien (CLEAR_BINFO_PRIMARY_MARKED_P): Likewise. 1624290075Sobrien (dfs_mark_primary_bases_queue_p): Likewise. 1624390075Sobrien (dfs_unmarked_real_bases_queue_p): New function. 1624490075Sobrien (dfs_marked_real_bases_queue_p): Likewise. 1624590075Sobrien * search.c (dfs_mark_primary_bases): Adjust. 1624690075Sobrien (mark_primary_bases): Likewise. 1624790075Sobrien (get_shared_vbase_if_not_primary): New function. 1624890075Sobrien (dfs_unmarked_real_bases_queue_p): Likewise. 1624990075Sobrien (dfs_marked_real_bases_queue_p): Likewise. 1625090075Sobrien (dfs_get_pure_virtuals): Simplify. 1625190075Sobrien (get_pure_virtuals): Likewise. 1625218334Speter 1625390075Sobrien2000-01-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1625418334Speter 1625590075Sobrien * lex.c: Include tm_p.h. 1625618334Speter 1625790075Sobrien2000-01-07 Nathan Sidwell <sidwell@codesourcery.com> 1625818334Speter 1625990075Sobrien * lang-specs.h (__GXX_ABI_VERSION): New preprocessor macro. 1626018334Speter 1626190075Sobrien2000-01-06 Jason Merrill <jason@casey.cygnus.com> 1626218334Speter 1626390075Sobrien * decl2.c (comdat_linkage): Don't set DECL_DEFER_OUTPUT. 1626490075Sobrien * pt.c (instantiate_decl): Defer comdat templates that might not be 1626590075Sobrien needed. 1626618334Speter 1626790075Sobrien * cp-tree.h (DECL_NEEDED_P): Also true if !DECL_COMDAT. 1626890075Sobrien * decl2.c (finish_vtable_vardecl): Don't check !DECL_COMDAT. 1626990075Sobrien (finish_file): Likewise. 1627018334Speter 1627190075Sobrien * decl2.c (import_export_class): Undo 12/14 change. 1627218334Speter 1627390075Sobrien * error.c (dump_decl): operator new, not operatornew. 1627418334Speter 1627590075Sobrien * class.c (field_decl_cmp): A nontype is "greater" than a type. 1627690075Sobrien * search.c (lookup_field_1): Look for the last field with the 1627790075Sobrien desired name. 1627818334Speter 1627990075Sobrien2000-01-05 Nathan Sidwell <nathan@acm.org> 1628018334Speter 1628190075Sobrien * decl2.c (lookup_arg_dependent): Deal with FNS not being a 1628290075Sobrien FUNCTION_DECL. 1628318334Speter 1628490075Sobrien2000-01-05 Nathan Sidwell <nathan@acm.org> 1628552284Sobrien 1628690075Sobrien * typeck.c (build_static_cast): Don't strip target qualifiers 1628790075Sobrien when casting from a class. 1628818334Speter 1628990075Sobrien2000-01-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1629018334Speter 1629190075Sobrien * class.c (warn_hidden): Initialize variable `fndecl'. 1629218334Speter 1629390075Sobrien2000-01-03 Ulrich Drepper <drepper@cygnus.com> 1629418334Speter 1629590075Sobrien * decl.c (flag_isoc9x): New variable to be able to use code in 1629690075Sobrien c-common.c. For now always zero. 1629718334Speter 1629890075Sobrien2000-01-03 Mark Mitchell <mark@codesourcery.com> 1629918334Speter 1630090075Sobrien * cp-tree.h (CLASSTYPE_VBASECLASSES): Improve documentation. 1630190075Sobrien * class.c (layout_basetypes): Don't set BINFO_INHERITANCE_CHAIN 1630290075Sobrien or unshare_base_binfos for virtual bases here. 1630390075Sobrien * search.c (dfs_get_vbase_types): Do it here. 1630490075Sobrien (get_vbase_types): Adjust. 1630518334Speter 1630690075Sobrien2000-01-02 Mark Mitchell <mark@codesourcery.com> 1630718334Speter 1630890075Sobrien * cp-tree.h (CLASSTYPE_VFIELDS): Move definition. 1630990075Sobrien (BINFO_PRIMARY_MARKED_P): Use flag 5. 1631090075Sobrien (SET_BINFO_PRIMARY_MARKED_P): Likewise. 1631190075Sobrien (CLEAR_BINFO_PRIMARY_MARKED_P): Likewise. 1631290075Sobrien (unmark_primary_bases): Remove declaration. 1631390075Sobrien (unmarkedp): Declare. 1631490075Sobrien (dfs_vbase_unmark): Likewise. 1631590075Sobrien * class.c (determine_primary_base): Return immediately if there 1631690075Sobrien are no base classes. Call mark_primary_bases here. 1631790075Sobrien (modify_all_direct_vtables): Remove. 1631890075Sobrien (modify_all_indirect_vtables): Remove. 1631990075Sobrien (dfs_modify_vtables_queue_p): New function. 1632090075Sobrien (dfs_modify_vtables): New function. 1632190075Sobrien (modify_all_vtables): Use them. 1632290075Sobrien (build_base_fields): Build FIELD_DECLs for primary virtual base 1632390075Sobrien classes. 1632490075Sobrien (create_vtable_ptr): Don't call determine_primary_base here. 1632590075Sobrien (dfs_mark_primary_bases_and_set_vbase_offsets): Rename to ... 1632690075Sobrien (dfs_set_offset_for_vbases): ... this. 1632790075Sobrien (layout_virtual_bases): Use it. 1632890075Sobrien (layout_class_type): Call determine_primary_base here. 1632990075Sobrien * search.c (unmarkedp): Make it global. 1633090075Sobrien (shared_marked_p): Simplify. 1633190075Sobrien (shared_unmarked_p): Likewise. 1633290075Sobrien (dfs_primary_bases_queue_p): Remove. 1633390075Sobrien (dfs_unmark_primary_bases): Likewise. 1633490075Sobrien (unmark_primary_bases): Likewise. 1633590075Sobrien (mark_primary_bases): Simplify. 1633690075Sobrien (get_pure_virtuals): Don't call mark_primary_bases here. 1633790075Sobrien (dfs_vbase_unmark): New function. 1633890075Sobrien (get_vbase_types): Simplify. 1633918334Speter 1634090075Sobrien * class.c (struct base_info): Remove. 1634190075Sobrien (determine_primary_base): Take has_virtual_p rather than a 1634290075Sobrien base_info as input. Don't calculate max_has_virtual. 1634390075Sobrien (finish_struct_bits): Remove max_has_virtual argument. 1634490075Sobrien (create_vtable_ptr): Remove max_has_virtual_p argument. 1634590075Sobrien (layout_virtual_bases): Remove max argument. 1634690075Sobrien (layout_basetypes): Likewise. 1634790075Sobrien (layout_class_type): Remove max_has_virtual_p argument. 1634890075Sobrien (finish_struct_1): Remove max_has_virtual. 1634918334Speter 1635090075Sobrien * cp-tree.h (dfs_mark_primary_bases_queue_p): New function. 1635190075Sobrien (layout_basetypes): Remove. 1635290075Sobrien * class.c (propagate_binfo_offsets): Moved here from tree.c. 1635390075Sobrien Update to handle primary virtual bases. 1635490075Sobrien (remove_base_fields): New function, split out from 1635590075Sobrien layout_basetypes. 1635690075Sobrien (dfs_mark_primary_bases_and_set_vbase_offsets): New function. 1635790075Sobrien (layout_virtual_bases): New function, split out from 1635890075Sobrien layout_basetypes. Update to handle primary virtual bases. 1635990075Sobrien (layout_basetypes): Moved here from tree.c. Use 1636090075Sobrien remove_base_fields and layout_virtual_bases. 1636190075Sobrien * search.c (dfs_mark_primary_bases_queue_p): New function. 1636290075Sobrien (mark_primary_bases): Use it. 1636390075Sobrien * tree.c (CEIL): Remove. 1636490075Sobrien (propagate_binfo_offsets): Remove. 1636590075Sobrien (layout_basetypes): Remove. 1636618334Speter 1636790075Sobrien2000-01-01 Mark Mitchell <mark@codesourcery.com> 1636818334Speter 1636990075Sobrien * cp-tree.h (CLASSTYPE_N_BASECLASSES): Use BINFO_N_BASETYPES. 1637090075Sobrien (BINFO_PRIMARY_MARKED_P): New macro. 1637190075Sobrien (SET_BINFO_PRIMARY_MARKED_P): Likewise. 1637290075Sobrien (CLEAR_BINFO_PRIMARY_MARKED_P): Likewise. 1637390075Sobrien (mark_primary_bases): New function. 1637490075Sobrien (unmark_primary_bases): Likewise. 1637590075Sobrien * search.c (get_abstract_virtuals_1): Remove. 1637690075Sobrien (dfs_mark_primary_bases): New function. 1637790075Sobrien (mark_primary_bases): Likewise. 1637890075Sobrien (dfs_unmark_primary_bases): Likewise. 1637990075Sobrien (unmark_primary_bases): Likewise. 1638090075Sobrien (dfs_get_pure_virtuals): Likewise. 1638118334Speter 1638290075Sobrien2000-01-01 Mark Mitchell <mark@codesourcery.com> 1638318334Speter 1638490075Sobrien * cp-tree.h (skip_rtti_stuff): Adjust prototype. 1638590075Sobrien * class.c (skip_rtti_stuff): Reorganize parameters and return value. 1638690075Sobrien (modify_one_vtable): Adjust. 1638790075Sobrien (fixup_vtable_deltas1): Likewise. 1638890075Sobrien (override_one_vtable): Likewise. 1638990075Sobrien * search.c (get_abstract_virtuals_1): Likewise. 1639090075Sobrien (get_pure_virtuals): Likewise. 1639190075Sobrien (expand_upcast_fixups): Likewise. 1639290075Sobrien * tree.c (debug_binfo): Likewise. 1639318334Speter 1639490075Sobrien * class.c (build_vtable): Don't return a value. Don't rebuild 1639590075Sobrien vtables for bases that have already been handled. 1639690075Sobrien (prepare_fresh_vtable): Don't rebuild vtables for bases that have 1639790075Sobrien already been handled. 1639890075Sobrien (modify_one_vtable): Adjust accordingly. 1639990075Sobrien (fixup_vtable_deltas1): Likewise. 1640090075Sobrien (finish_struct_1): Likewise. 1640118334Speter 1640290075Sobrien2000-01-01 Martin v. L�wis <loewis@informatik.hu-berlin.de> 1640318334Speter 1640490075Sobrien * call.c (build_new_method_call): Also check destructors. 16405