1169689Skan2003-12-30 Nathan Sidwell <nathan@codesourcery.com> 2169689Skan 3169689Skan PR c++/13507 4169689Skan * decl.c (duplicate_decls): Use build_type_attribute_variant to 5169689Skan merge attributes. 6169689Skan 7169689Skan PR c++/13494 8169689Skan * tree.c (build_cplus_array_type_1): Only build a minimal array 9169689Skan type for dependent types or domains. 10169689Skan 11169689Skan2003-12-29 Nathan Sidwell <nathan@codesourcery.com> 12169689Skan 13169689Skan PR c++/12774 14169689Skan * typeck.c (comp_array_types): Fold non-dependent domains for 15169689Skan ABI-1. 16169689Skan 17169689Skan2003-12-29 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 18169689Skan 19169689Skan PR c++/13289 20169689Skan * semantics.c (finish_id_expression): Only check if the type of 21169689Skan a template argument is integral or enumeration when it is not 22169689Skan dependent. 23169689Skan 24169689Skan2003-12-29 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 25169689Skan 26169689Skan PR c++/12403 27169689Skan * parser.c (cp_parser_template_declaration_after_export): Set up 28169689Skan template specialization scope in case of explicit specialization. 29169689Skan 30169689Skan2003-12-28 Mark Mitchell <mark@codesourcery.com> 31169689Skan 32169689Skan PR c++/13081 33169689Skan * decl.c (duplicate_decls): Preserve inline-ness when redeclaring 34169689Skan a function template. 35169689Skan 36169689Skan PR c++/12613 37169689Skan * decl.c (reshape_init): Reject GNU colon-style designated 38169689Skan initializers in arrays. 39169689Skan 40169689Skan PR c++/13009 41169689Skan * call.c (build_special_member_call): Do not assume that we have a 42169689Skan pointer to the complete object in an assignment operator. 43169689Skan 44169689Skan2003-12-28 Roger Sayle <roger@eyesopen.com> 45169689Skan 46169689Skan PR c++/13070 47169689Skan * decl.c (duplicate_decls): When setting the type of an anticipated 48169689Skan declaration, merge the existing type attributes. 49169689Skan 50169689Skan2003-12-25 Andrew Pinski <pinskia@physics.uc.edu> 51169689Skan 52169689Skan PR c++/13268, c++/13339 53169689Skan * class.c (add_method): Return early when method is error_mark_node. 54169689Skan * pt.c (tsubst_friend_function): Return early when new_friend is 55169689Skan error_mark_node. 56169689Skan 57169689Skan2003-12-23 Mark Mitchell <mark@codesourcery.com> 58169689Skan 59169689Skan * cp-lang.c (cp_expr_size): Return zero for empty classes. 60169689Skan 61169689Skan * cp-tree.h (warn_if_uknown_interface): Remove unused function. 62169689Skan * decl2.c (warn_if_unknown_interface): Likewise. 63169689Skan 64169689Skan2003-12-23 Nathan Sidwell <nathan@codesourcery.com> 65169689Skan 66169689Skan PR c++/13387 67169689Skan * cp-lang.c (cxx_get_alias_set): Correct logic for a base type. 68169689Skan 69169689Skan2003-12-22 Mark Mitchell <mark@codesourcery.com> 70169689Skan 71169689Skan * decl.c (start_function): Do not check 72169689Skan flag_alt_external_templates or flag_external_templates. 73169689Skan * decl2.c (warn_if_unknown_interface): Likewise. 74169689Skan * lex.c (extract_interface_info): Likewise. 75169689Skan * pt.c (lookup_template_class): Likewise. 76169689Skan 77169689Skan PR c++/12862 78169689Skan * name-lookup.c (pushdecl): Look up all namespace-scope entities 79169689Skan in their corresponding namespace. 80169689Skan 81169689Skan PR c++/12397 82169689Skan * typeck.c (finish_class_member_access_expr): Don't tree 83169689Skan IDENTIFIER_NODEs as non-dependent expressions. 84169689Skan 85169689Skan2003-12-22 Andrew Pinski <pinskia@physics.uc.edu> 86169689Skan 87169689Skan PR c++/5050 88169689Skan * tree.c (cp_start_inlining): Remove. 89169689Skan (cp_end_inlining): Remove. 90169689Skan * cp-lang.c (LANG_HOOKS_TREE_INLINING_START_INLINING): Do not define. 91169689Skan (LANG_HOOKS_TREE_INLINING_END_INLINING): Do not define. 92169689Skan * cp-tree.h (cp_start_inlining): Do not declare. 93169689Skan (cp_end_inlining): Do not declare. 94169689Skan 95169689Skan2003-12-22 Mark Mitchell <mark@codesourcery.com> 96169689Skan 97169689Skan PR c++/12479 98169689Skan * parser.c (cp_parser_declaration_seq_opt): Only issue "extra ;" 99169689Skan pedwarn when not in a system header. 100169689Skan 101169689Skan2003-12-21 Mark Mitchell <mark@codesourcery.com> 102169689Skan 103169689Skan * cp-tree.h (cp_tree_index): Remove CPTI_RECORD_TYPE, 104169689Skan CPTI_UNION_TYPE, CPTI_ENUM_TYPE. 105169689Skan (record_type_node): Remove. 106169689Skan (union_type_node): Likewise. 107169689Skan (enum_type_node): Likewise. 108169689Skan * decl.c: Remove mention of above tree nodes in comment. 109169689Skan * lex.c (cxx_init): Do not assign to record_type_node, 110169689Skan union_type_node, or enum_type_node. Simplify handling of 111169689Skan class_type_node. 112169689Skan 113169689Skan PR c++/11554 114169689Skan * init.c (sort_mem_initializers): Add warning. 115169689Skan 116169689Skan2003-12-21 Kazu Hirata <kazu@cs.umass.edu> 117169689Skan 118169689Skan * call.c: Fix comment formatting. 119169689Skan * class.c: Likewise. 120169689Skan * cp-tree.h: Likewise. 121169689Skan * cvt.c: Likewise. 122169689Skan * cxx-pretty-print.c: Likewise. 123169689Skan * decl.c: Likewise. 124169689Skan * decl2.c: Likewise. 125169689Skan * error.c: Likewise. 126169689Skan * except.c: Likewise. 127169689Skan * init.c: Likewise. 128169689Skan * name-lookup.c: Likewise. 129169689Skan * parser.c: Likewise. 130169689Skan * pt.c: Likewise. 131169689Skan * rtti.c: Likewise. 132169689Skan * semantics.c: Likewise. 133169689Skan * typeck.c: Likewise. 134169689Skan * typeck2.c: Likewise. 135169689Skan 136169689Skan2003-12-19 Kazu Hirata <kazu@cs.umass.edu> 137169689Skan 138169689Skan * cvt.c: Remove uses of "register" specifier in 139169689Skan declarations of arguments and local variables. 140169689Skan * decl.c: Likewise. 141169689Skan * decl2.c: Likewise. 142169689Skan * expr.c: Likewise. 143169689Skan * friend.c: Likewise. 144169689Skan * lex.c: Likewise. 145169689Skan * name-lookup.c: Likewise. 146169689Skan * repo.c: Likewise. 147169689Skan * search.c: Likewise. 148169689Skan * tree.c: Likewise. 149169689Skan * typeck.c: Likewise. 150169689Skan * typeck2.c: Likewise. 151169689Skan 152169689Skan2003-12-19 Mark Mitchell <mark@codesourcery.com> 153169689Skan 154169689Skan PR c++/12795 155169689Skan * name-lookup.c (pushdecl): Do not treated any functions as being 156169689Skan "nested" in C++. 157169689Skan 158169689Skan2003-12-19 Jason Merrill <jason@redhat.com> 159169689Skan 160169689Skan PR c++/13371 161169689Skan * typeck.c (build_modify_expr): Stabilize lhs if we're narrowing. 162169689Skan * cvt.c (convert_to_void): Don't warn about the RHS of a comma 163169689Skan being useless if TREE_NO_UNUSED_WARNING is set. 164169689Skan 165169689Skan2003-12-18 Richard Henderson <rth@redhat.com> 166169689Skan 167169689Skan * cp-tree.h (struct lang_type_header): Remove __extension__. 168169689Skan 169169689Skan2003-12-18 Jason Merrill <jason@redhat.com> 170169689Skan 171169689Skan PR c++/12253 172169689Skan * init.c (build_vec_init): Initialization of an element from 173169689Skan an initializer list is also a full-expression. 174169689Skan 175169689Skan * parser.c, pt.c, semantics.c: Rename constant_expression_p 176169689Skan to integral_constant_expression_p. 177169689Skan 178169689Skan2003-12-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 179169689Skan 180169689Skan PR c++/13262 181169689Skan * pt.c (instantiate_decl): Wrap push_nested_class and 182169689Skan pop_nested_class around cp_finish_decl call for static member 183169689Skan variable. 184169689Skan 185169689Skan2003-12-18 Giovanni Bajo <giovannibajo@gcc.gnu.org> 186169689Skan 187169689Skan PR c++/9154 188169689Skan * parser.c (cp_parser_template_argument): A type-id followed by '>>' 189169689Skan is just an user typo, and should be accepted as last resort if any 190169689Skan other parsing fails. 191169689Skan (cp_parser_enclosed_template_argument_list): If the argument list is 192169689Skan parsed correctly, but the next token is '>>', emit a diagnostic. 193169689Skan (cp_parser_next_token_ends_template_argument): Accept '>>' as 194169689Skan delimiter of template argument, it will be later detected as a typo. 195169689Skan 196169689Skan2003-12-17 Kelley Cook <kcook@gcc.gnu.org> 197169689Skan 198169689Skan * Make-lang.in: Replace cp/g++.1 with $(docobjdir)/g++.1. 199169689Skan 200169689Skan2003-12-17 Mark Mitchell <mark@codesourcery.com> 201169689Skan 202169689Skan PR c++/10603 203169689Skan PR c++/12827 204169689Skan * parser.c (cp_parser_error): Help c_parse_error print good 205169689Skan messages if the next token is a keyword. 206169689Skan (cp_parser_parameter_declaration_list): When resynchronizing after 207169689Skan a bad parameter declaration, stop if a comma is found. 208169689Skan (cp_parser_parameter_declaration): Avoid backtracking. 209169689Skan 210169689Skan2003-12-16 Mark Mitchell <mark@codesourcery.com> 211169689Skan 212169689Skan PR c++/12696 213169689Skan * decl.c (reshape_init): Recover quickly from errors. 214169689Skan 215169689Skan2003-12-16 Nathan Sidwell <nathan@codesourcery.com> 216169689Skan 217169689Skan PR c++/9043 218169689Skan C++ ABI change: Mangling array indices in templates. 219169689Skan * decl.c (compute_array_index_type): Reorganize for earlier 220169689Skan template errors. Use value_dependent_expression_p for abi-2. 221169689Skan * mangle.c (write_array_type): Check broken mangling for 222169689Skan expression indices on abi-1 223169689Skan 224169689Skan2003-12-16 Mark Mitchell <mark@codesourcery.com> 225169689Skan 226169689Skan PR c++/12696 227169689Skan * decl.c (reshape_init): Recover quickly from errors. 228169689Skan 229169689Skan PR c++/13275 230169689Skan * lex.c (reswords): Add "__offsetof" and "__offsetof__". 231169689Skan * parser.c (cp_parser): Add in_offsetof_p. 232169689Skan (cp_parser_new): Initialize it. 233169689Skan (cp_parser_primary_expression): Handle __offsetof__ (...). 234169689Skan (cp_parser_postfix_expression): Allow casts to pointer type and 235169689Skan uses of "->" in a constant expression if implementing offsetof. 236169689Skan (cp_parser_unary_expression): Allow the use of "&" in a constant 237169689Skan expression if implementing offsetof. 238169689Skan 239169689Skan2003-12-16 Giovanni Bajo <giovannibajo@gcc.gnu.org> 240169689Skan 241169689Skan PR c++/2294 242169689Skan * name-lookup.c (push_overloaded_decl): always construct an OVERLOAD 243169689Skan if the declaration comes from an using declaration. 244169689Skan 245169689Skan2003-12-16 Giovanni Bajo <giovannibajo@gcc.gnu.org> 246169689Skan 247169689Skan * semantics.c (finish_id_expression): Refactor the code to handle 248169689Skan template parameters, and emit a more informative error message 249169689Skan when they are used within an integral constant expression. 250169689Skan 251169689Skan2003-12-16 Nathan Sidwell <nathan@codesourcery.com> 252169689Skan 253169689Skan PR c++/13387 254169689Skan * class.c (finish_struct_1): Compute mode and alias set for 255169689Skan CLASSTYPE_AS_BASE. 256169689Skan * call.c (build_over_call): Use CLASSTYPE_AS_BASE for trivial 257169689Skan assignment of a class, as necessary. 258169689Skan * cp-lang.c (cxx_get_alias_set): The alias set as a base is the 259169689Skan same as for the complete type. 260169689Skan 261169689Skan PR c++/13242 262169689Skan C++ ABI change. Mangling template parameters of reference type 263169689Skan * mangle.c (write_template_args): Remove unreachable code. 264169689Skan (write_template_arg): Look through an argument of reference type. 265169689Skan 266169689Skan2003-12-16 Giovanni Bajo <giovannibajo@gcc.gnu.org> 267169689Skan 268169689Skan PR c++/2294 269169689Skan * name-lookup.c (push_overloaded_decl): always construct an OVERLOAD 270169689Skan if the declaration comes from an using declaration. 271169689Skan 272169689Skan2003-12-15 Mark Mitchell <mark@codesourcery.com> 273169689Skan 274169689Skan PR c++/10926 275169689Skan * decl2.c (grokfield): Robustify. 276169689Skan 277169689Skan PR c++/11116 278169689Skan * parser.c (cp_parser_throw_expression): Determine whether or not 279169689Skan an assignment-expression is present by doing one-token lookahead. 280169689Skan 281169689Skan PR c++/13269 282169689Skan * parser.c (cp_parser_function_definition_after_declarator): Stop 283169689Skan scanning tokens when reaching EOF. 284169689Skan 285169689Skan PR c++/12989 286169689Skan * typeck.c (cxx_sizeof_or_alignof_expr): Robustify. 287169689Skan 288169689Skan PR c++/13310 289169689Skan * pt.c (dependent_template_p): Handle OVERLOADs. 290169689Skan 291169689Skan2003-12-15 Mark Mitchell <mark@codesourcery.com> 292169689Skan 293169689Skan PR c++/13243 294169689Skan PR c++/12573 295169689Skan * parser.c (cp_parser_postfix_expression): Tighten handling of 296169689Skan integral constant expressions. 297169689Skan (cp_parser_unary_expression): Likewise. 298169689Skan * pt.c (value_dependent_expression_p): Remove handling for 299169689Skan COMPONENT_REFs. 300169689Skan 301169689Skan2003-12-15 Nathan Sidwell <nathan@codesourcery.com> 302169689Skan 303169689Skan * class.c (add_method): Disallow destructor for java classes. 304169689Skan * decl.c (xref_basetypes): Check java class inheritance. 305169689Skan * decl2.c (check_java_method): Skip artificial params. 306169689Skan 307169689Skan PR c++/13241 308169689Skan C++ ABI change. Mangling of symbols in expressions. 309169689Skan * mangle.c (write_mangled_name): Add top_level flag. Rework for 310169689Skan nested and unnested mangling. Deal with abi version 1 and version 311169689Skan 2 differences. 312169689Skan (write_expression): Adjust write_mangled_name call. 313169689Skan (mangle_decl_string): Use write_mangled_name for all non-type decls. 314169689Skan 315169689Skan2003-12-14 Mark Mitchell <mark@codesourcery.com> 316169689Skan 317169689Skan PR c++/10779 318169689Skan PR c++/12160 319169689Skan * parser.c (struct cp_parser): Add in_template_argument_list_p. 320169689Skan (cp_parser_error): Use c_parse_error. 321169689Skan (cp_parser_name_lookup_error): New function. 322169689Skan (cp_parser_new): Initialize it. 323169689Skan (cp_parser_declarator): Add parenthesized_p parameter. 324169689Skan (cp_parser_nested_name_specifier_opt): Use 325169689Skan cp_parser_name_lookup_error. 326169689Skan (cp_parser_parenthesized_expression_list): Improve comments. 327169689Skan (cp_parser_condition): Adjust call to cp_parser_declarator. 328169689Skan (cp_parser_template_parameter): Adjust call to 329169689Skan cp_parser_parameter_declaration. 330169689Skan (cp_parser_template_argument_list): Set 331169689Skan in_template_argument_list_p. 332169689Skan (cp_parser_explicit_instantiation): Adjust call to 333169689Skan cp_parser_declarator. 334169689Skan (cp_parser_simple_type_specifier): Remove unncessary code. 335169689Skan (cp_parser_using_declaration): Use cp_parser_name_lookup_error. 336169689Skan (cp_parser_init_declarator): Handle member function definitions. 337169689Skan (cp_parser_direct_declarator): Adjust call to 338169689Skan cp_parser_declarator. 339169689Skan (cp_parser_type_id): Adjust call to cp_parser_declarator. 340169689Skan (cp_parser_parameter_declaration_list): Avoid backtracking where 341169689Skan possible. 342169689Skan (cp_parser_parameter_declaration): Add parenthesized_p parameter. 343169689Skan (cp_parser_function_definition): Remove. 344169689Skan (cp_parser_member_declaration): Do not backtrack to look for 345169689Skan function definitions. 346169689Skan (cp_parser_exception_declaration): Adjust call to 347169689Skan cp_parser_declarator. 348169689Skan (cp_parser_single_declaration): Handle function definitions via 349169689Skan cp_parser_init_declarator. 350169689Skan (cp_parser_save_member_function_body): New function. 351169689Skan 352169689Skan2003-12-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 353169689Skan 354169689Skan PR c++/13106 355169689Skan * decl.c (finish_function): Check if return type is dependent before 356169689Skan issuing no return statement warning. 357169689Skan 358169689Skan2003-12-12 Nathan Sidwell <nathan@codesourcery.com> 359169689Skan 360169689Skan PR c++/13118 361169689Skan * cp-tree.h (lang_decl_u): Add thunk_alias member. 362169689Skan (THUNK_VIRTUAL_OFFSET): Must be a FUNCTION_DECL. 363169689Skan (THUNK_ALIAS_P): Remove. 364169689Skan (THUNK_ALIAS): Adjust. 365169689Skan * class.c (update_vtable_entry_for_fn): Get the vbase within the 366169689Skan overriding function's return type. 367169689Skan (dump_thunk): Adjust THUNK_ALIAS printing. 368169689Skan (build_vtbl_initializer): Adjust THUNK_ALIAS use. 369169689Skan * method.c (make_thunk): Revert 12881 test change. Clear 370169689Skan THUNK_ALIAS. 371169689Skan (finish_thunk): Adjust THUNK_ALIAS setting. 372169689Skan (use_thunk): Adjust THUNK_ALIAS use. 373169689Skan * semantics.c (emit_associated_thunks): Likewise. 374169689Skan 375169689Skan PR c++/13114, c++/13115 376169689Skan * class.c (layout_empty_base): Propagate the move of an empty base 377169689Skan to offset zero. 378169689Skan 379169689Skan PR c++/12881 380169689Skan * method.c (make_thunk): Deal with thunk aliases when searching 381169689Skan for a thunk. Robustify assertion. 382169689Skan 383169689Skan2003-12-11 Nathan Sidwell <nathan@codesourcery.com> 384169689Skan 385169689Skan * mangle.c (conv_type_names): Holds IDENTIFIER_NODEs only. 386169689Skan (hash_type): Use TYPE_UID of the identifier's type. 387169689Skan (compare_type): Adjust. 388169689Skan (mangle_conv_op_name_for_type): Store identifier nodes only, use 389169689Skan TYPE_UID has hash value. 390169689Skan 391169689Skan2003-12-10 Mark Mitchell <mark@codesourcery.com> 392169689Skan 393169689Skan * cp-tree.h (DECL_CONV_FN_P): Check that DECL_NAME is non-NULL. 394169689Skan 395169689Skan2003-12-08 Matt Austern <austern@apple.com> 396169689Skan 397169689Skan PR c/13134 398169689Skan * decl.c (duplicate_decls): Copy visibility flag when appropriate. 399169689Skan 400169689Skan2003-12-09 Giovanni Bajo <giovannibajo@gcc.gnu.org> 401169689Skan 402169689Skan * init.c (build_new_1): Deal with an OVERLOAD set when 403169689Skan looking up for _Jv_AllocObject. 404169689Skan * except.c (build_throw): Likewise for _Jv_Throw. 405169689Skan 406169689Skan2003-12-08 Jason Merrill <jason@redhat.com> 407169689Skan 408169689Skan PR c++/11971 409169689Skan * tree.c (build_local_temp): Split out from build_cplus_new. 410169689Skan (force_target_expr): New fn. 411169689Skan * call.c (call_builtin_trap): Call it. Take a type parm. 412169689Skan (convert_arg_to_ellipsis): Pass it. 413169689Skan (build_x_va_arg): Use call_builtin_trap. 414169689Skan 415169689Skan PR c++/11929 416169689Skan * call.c (magic_varargs_p): New fn. 417169689Skan (build_over_call): Do no ellipsis conversions for arguments to 418169689Skan functions with magic varargs. 419169689Skan 420169689Skan * name-lookup.c, init.c, except.c: Revert Giovanni's patch from 421169689Skan yesterday. 422169689Skan 423169689Skan Give the anonymous namespace a null DECL_NAME. 424169689Skan * cp-tree.h: Don't declare anonymous_namespace_name. 425169689Skan * decl.c: Don't define it. 426169689Skan * dump.c (cp_dump_tree): Don't check for it. 427169689Skan * cxx-pretty-print.c (pp_cxx_original_namespace_definition): Likewise. 428169689Skan * error.c (dump_decl): Likewise. 429169689Skan * name-lookup.c: Define it here. 430169689Skan (push_namespace): Put it in DECL_ASSEMBLER_NAME instead. 431169689Skan * mangle.c (write_unqualified_name): Adjust. 432169689Skan 433169689Skan2003-12-07 Giovanni Bajo <giovannibajo@gcc.gnu.org> 434169689Skan 435169689Skan PR c++/2294 436169689Skan * name-lookup.c (push_overloaded_decl): Always construct an 437169689Skan OVERLOAD unless the declaration is a built-in. 438169689Skan (set_namespace_binding): While binding OVERLOADs with only one 439169689Skan declaration, we still need to call supplement_binding. 440169689Skan * init.c (build_new_1): Deal with an OVERLOAD set when 441169689Skan looking up for _Jv_AllocObject. 442169689Skan * except.c (build_throw): Likewise for _Jv_Throw. 443169689Skan 444169689Skan2003-12-06 Mark Mitchell <mark@codesourcery.com> 445169689Skan 446169689Skan PR c++/13323 447169689Skan * class.c (same_signature_p): Handle conversion operators 448169689Skan correctly. 449169689Skan (check_for_override): Likewise. 450169689Skan 451169689Skan2003-12-06 Kelley Cook <kcook@gcc.gnu.org> 452169689Skan 453169689Skan * Make-lang.in (GXX_CROSS_NAME, CXX_CROSS_NAME): Delete. 454169689Skan (c++.install_common, cp/g++.1, c++.install-man): Adjust for above. 455169689Skan (c++.uninstall): Likewise. 456169689Skan 457169689Skan2003-12-05 Danny Smith <dannysmith@gcc.gnu.org> 458169689Skan Mark Mitchell <mark@codesourcery.com> 459169689Skan 460169689Skan PR c++/13305 461169689Skan * parser.c (cp_parser_elaborated_type_specifier): Accept 462169689Skan attributes. 463169689Skan 464169689Skan2003-12-05 Mark Mitchell <mark@codesourcery.com> 465169689Skan 466169689Skan PR c++/13314 467169689Skan * parser.c (cp_parser_class_specifier): Match push_scope/pop_scope 468169689Skan calls. 469169689Skan (cp_parser_class_head): Likewise. 470169689Skan 471169689Skan2003-12-05 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 472169689Skan 473169689Skan PR c++/13166 474169689Skan * parser.c (cp_parser_late_parsing_default_args): Make sure the 475169689Skan context is a class before calling push_nested_class and 476169689Skan pop_nested_class. 477169689Skan 478169689Skan2003-12-03 James E Wilson <wilson@specifixinc.com> 479169689Skan 480169689Skan * g++spec.c (lang_specific_driver): Delete USE_LIBUNWIND_EXCEPTIONS 481169689Skan support. 482169689Skan 483169689Skan2003-12-03 Mark Mitchell <mark@codesourcery.com> 484169689Skan 485169689Skan PR c++/9127 486169689Skan * cp-tree.h (at_namespace_scope_p): New function. 487169689Skan * parser.c (cp_parser_class_head): Handle invalid explicit 488169689Skan specializations. 489169689Skan * search.c (at_namespace_scope_p): New function. 490169689Skan 491169689Skan PR c++/13179 492169689Skan * semantics.c (finish_handler_parms): Do not call eh_type_info for 493169689Skan types used in templates. 494169689Skan 495169689Skan PR c++/10771 496169689Skan * parser.c (cp_parser_check_for_invalid_template_id): New 497169689Skan function. 498169689Skan (cp_parser_simple_type_specifier): Use it. 499169689Skan (cp_parser_elaborated_type_specifier): Likewise. 500169689Skan (cp_parser_class_head): Likewise. 501169689Skan 502169689Skan2003-12-02 Giovanni Bajo <giovannibajo@gcc.gnu.org> 503169689Skan 504169689Skan PR c++/10126 505169689Skan * pt.c (convert_nontype_argument): Handle default conversions 506169689Skan while converting a pointer to member function. 507169689Skan 508169689Skan2003-12-02 Giovanni Bajo <giovannibajo@gcc.gnu.org> 509169689Skan 510169689Skan PR c++/12573 511169689Skan * pt.c (value_dependent_expression_p): Handle COMPONENT_REFs by 512169689Skan looking into them recursively. 513169689Skan 514169689Skan2003-12-02 Richard Henderson <rth@redhat.com> 515169689Skan 516169689Skan * name-lookup.h (struct cp_binding_level): Use ENUM_BITFIELD. 517169689Skan * parser.c (struct cp_token): Likewise. 518169689Skan (struct cp_parser_token_tree_map_node): Likewise. 519169689Skan * lex.c (struct resword): Move const after ENUM_BITFIELD. 520169689Skan 521169689Skan2003-11-30 Mark Mitchell <mark@codesourcery.com> 522169689Skan 523169689Skan PR c++/9849 524169689Skan * parser.c (cp_lexer_prev_token): New function. 525169689Skan (cp_parser_skip_to_closing_parenthesis): Add consume_paren 526169689Skan parameter. 527169689Skan (cp_parser_nested_name_specifier_opt): Add is_declaration 528169689Skan parameter. 529169689Skan (cp_parser_nested_name_specifier): Likewise. 530169689Skan (cp_parser_class_or_namespace_name): Likewise. 531169689Skan (cp_parser_class_name): Likewise. 532169689Skan (cp_parser_template_id): Likewise. 533169689Skan (cp_parser_template_name): Likewise. 534169689Skan (cp_parser_id_expression): Adjust calls to 535169689Skan cp_parser_nested_name_specifier_op, cp_parser_template_id, 536169689Skan cp_parser_class_name. 537169689Skan (cp_parser_unqualified_id): Likewise. 538169689Skan (cp_parser_postfix_expression): Likewise. 539169689Skan (cp_parser_pseudo_destructor_name): Likewise. 540169689Skan (cp_parser_cast_expression): Likewise. 541169689Skan (cp_parser_mem_initializer_id): Likewise. 542169689Skan (cp_parser_simple_type_specifier): Likewise. 543169689Skan (cp_parser_type_name): Likewise. 544169689Skan (cp_parser_elaborated_type_specifier): Likewise. 545169689Skan (cp_parser_qualified_namespace_specifier): Likewise. 546169689Skan (cp_parser_using_declaration): Likewise. 547169689Skan (cp_parser_using_directive): Likewise. 548169689Skan (cp_parser_ptr_operator): Likewise. 549169689Skan (cp_parser_declarator_id): Likewise. 550169689Skan (cp_parser_class_head): Likewise. 551169689Skan (cp_parser_base_specifier): Likewise. 552169689Skan (cp_parser_constructor_declarator_p): Likewise. 553169689Skan (cp_parser_direct_declarator): Fix typo in comment. 554169689Skan (cp_parser_parenthesized_expression_list): Adjust call to 555169689Skan cp_parser_skip_to_closing_parenthesis. 556169689Skan (cp_parser_selection_statement): Likewise. 557169689Skan 558169689Skan2003-11-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 559169689Skan 560169689Skan PR c++/12924 561169689Skan * typeck.c (finish_class_member_access_expr): Handle TEMPLATE_ID_EXPR 562169689Skan with OVERLOAD and DECL nodes as the first operand. 563169689Skan 564169689Skan2003-11-22 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 565169689Skan 566169689Skan * pt.c (tsubst) <ARRAY_REF>: Remove erroneous argument to build_nt. 567169689Skan 568169689Skan2003-11-22 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 569169689Skan 570169689Skan PR c++/5369 571169689Skan * friend.c (is_friend): Handle member function of a class 572169689Skan template as template friend. 573169689Skan (do_friend): Likewise. 574169689Skan * decl2.c (check_classfn): Add template_header_p parameter. 575169689Skan * decl.c (start_decl): Adjust check_classfn call. 576169689Skan (grokfndecl): Likewise. 577169689Skan * pt.c (is_specialization_of_friend): New function. 578169689Skan (uses_template_parms_level): Likewise. 579169689Skan (push_template_decl_real): Use uses_template_parms_level. 580169689Skan (tsubst_friend_function): Adjust check_classfn call. 581169689Skan * cp-tree.h (check_classfn): Adjust declaration. 582169689Skan (uses_template_parms_level): Add declaration. 583169689Skan (is_specialization_of_friend): Likewise. 584169689Skan 585169689Skan2003-11-21 Mark Mitchell <mark@codesourcery.com> 586169689Skan 587169689Skan PR c++/12515 588169689Skan * pt.c (build_non_dependent_expr): Handle GNU extension to ?: 589169689Skan operator. 590169689Skan 591169689Skan2003-11-21 Jan Hubicka <jh@suse.cz> 592169689Skan 593169689Skan * parser.c (cp_parser_postfix_expression): Initialize 's' to 594169689Skan NULL_TREE. 595169689Skan 596169689Skan2003-11-20 Joseph S. Myers <jsm@polyomino.org.uk> 597169689Skan 598169689Skan * Make-lang.in (c++.extraclean): Delete. 599169689Skan 600169689Skan2003-11-20 Joseph S. Myers <jsm@polyomino.org.uk> 601169689Skan 602169689Skan * Make-lang.in (check-g++, lang_checks): Add. 603169689Skan 604169689Skan2003-11-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 605169689Skan 606169689Skan PR c++/12932 607169689Skan * class.c (currently_open_derived_class): Check if 608169689Skan current_class_type is NULL_TREE. 609169689Skan * semantics.c (finish_call_expr): Check if 610169689Skan currently_open_derived_class returns NULL_TREE. 611169689Skan * cp-tree.h (DERIVED_FROM_P): Add parenthesis around PARENT 612169689Skan parameter. 613169689Skan 614169689Skan2003-11-17 Jason Merrill <jason@redhat.com> 615169689Skan 616169689Skan * init.c (build_new_1): Preevaluate placement args. 617169689Skan * call.c (build_op_delete_call): Don't expose placement args to 618169689Skan overload resolution. 619169689Skan 620169689Skan2003-11-16 Jason Merrill <jason@redhat.com> 621169689Skan 622169689Skan * Make-lang.in (c++.tags): Create TAGS.sub files in each directory 623169689Skan and TAGS files that include them for each front end. 624169689Skan 625169689Skan2003-11-15 Bernardo Innocenti <bernie@develer.com> 626169689Skan 627169689Skan PR c++/2294 628169689Skan * name-lookup.c: Revert previous patch for PR c++/2294 to prevent 629169689Skan build failure on libjava. 630169689Skan 631169689Skan2003-11-14 Giovanni Bajo <giovannibajo@libero.it> 632169689Skan 633169689Skan PR c++/2294 634169689Skan * name-lookup.c (push_overloaded_decl): Always construct an OVERLOAD 635169689Skan unless the declaration is a built-in. 636169689Skan (set_namespace_binding): While binding OVERLOADs with only one 637169689Skan declaration, we still need to call supplement_binding. 638169689Skan 639169689Skan2003-11-14 Mark Mitchell <mark@codesourcery.com> 640169689Skan 641169689Skan PR c++/12762 642169689Skan * parser.c (cp_parser_enclosed_template_argument_list): New 643169689Skan function. 644169689Skan (cp_parser_template_id): Use it. 645169689Skan (cp_parser_simple_type_specifier): Recognize invalid template 646169689Skan syntax. 647169689Skan 648169689Skan2003-11-14 Giovanni Bajo <giovannibajo@libero.it> 649169689Skan 650169689Skan PR c++/2094 651169689Skan * pt.c (unify): Add support for PTRMEM_CST and 652169689Skan FIELD_DECL unification. 653169689Skan 654169689Skan2003-11-13 Richard Earnshaw <rearnsha@arm.com> 655169689Skan 656169689Skan * decl.c (grokfndecl): Change OK to type tree. 657169689Skan 658169689Skan2003-11-12 Mark Mitchell <mark@codesourcery.com> 659169689Skan 660169689Skan * tree.c (build_target_expr_with_type): Treate VA_ARG_EXPR like 661169689Skan CONSTRUCTOR. 662169689Skan 663169689Skan * decl.c (cp_make_fname_decl): When creating a top-level 664169689Skan __FUNCTION__-like symbol, do register it with pushdecl. 665169689Skan 666169689Skan * decl.c (finish_case_label): Do not check that we are within a 667169689Skan switch statement here. 668169689Skan * parser.c (struct cp_parser): Add in_iteration_statement_p and 669169689Skan in_switch_statement_p. 670169689Skan (cp_parser_new): Initialize them. 671169689Skan (cp_parser_labeled_statement): Check validity of case labels 672169689Skan here. 673169689Skan (cp_parser_selection_statement): Set in_switch_statement_p. 674169689Skan (cp_parser_iteration_statement): Set in_iteration_statement_p. 675169689Skan (cp_parser_jump_statement): Check validity of break/continue 676169689Skan statements here. 677169689Skan 678169689Skan PR c++/12735 679169689Skan * cp-tree.h (duplicate_decls): Return a tree. 680169689Skan * decl.c (duplicate_decls): Clarify documentation. Return 681169689Skan error_mark_node to indicate a failed redeclaration. 682169689Skan * friend.c (do_friend): Handle that case. 683169689Skan * name-lookup.c (pushdecl): Likewise. 684169689Skan 685169689Skan2003-11-11 Jason Merrill <jason@redhat.com> 686169689Skan 687169689Skan * cp-tree.h (DECL_NAMESPACE_ASSOCIATIONS): New macro. 688169689Skan * name-lookup.c (parse_using_directive): New fn. 689169689Skan (is_associated_namespace): New fn. 690169689Skan (arg_assoc_namespace): Also check associated namespaces. 691169689Skan * name-lookup.h: Declare new fns. 692169689Skan * pt.c (maybe_process_partial_specialization): Allow 693169689Skan specialization in associated namespace. 694169689Skan * parser.c (cp_parser_using_directive): Accept attributes. Use 695169689Skan parse_using_directive. 696169689Skan 697169689Skan2003-11-10 Richard Henderson <rth@redhat.com> 698169689Skan 699169689Skan * cvt.c (convert_to_void): Use void_zero_node after overload failure. 700169689Skan 701169689Skan2003-11-10 Gabriel Dos Reis <gdr@integrable-solutions.net> 702169689Skan 703169689Skan PR c++/12832 704169689Skan * name-lookup.c (supplement_binding): Gracefully handle names 705169689Skan used at non-class scope prior declaration. 706169689Skan 707169689Skan2003-11-06 Matt Austern <austern@apple.com> 708169689Skan 709169689Skan * decl.c (duplicate_decls): copy DECL_VISIBILITY field. 710169689Skan * method.c (use_thunk): give thunk same visibility as function. 711169689Skan * optimize.c (maybe_clone_body): copy DECL_VISIBILITY field. 712169689Skan 713169689Skan2003-11-05 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 714169689Skan 715169689Skan PR c++/11616 716169689Skan * pt.c (instantiate_pending_templates): Save and restore 717169689Skan input_location. 718169689Skan 719169689Skan2003-11-05 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 720169689Skan 721169689Skan PR c++/2019 722169689Skan * friend.c (add_friend): Don't display previous declaration in 723169689Skan case of duplicate friend warning. 724169689Skan 725169689Skan2003-11-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 726169689Skan 727169689Skan PR c++/9810 728169689Skan * call.c (build_over_call): Check access using primary template 729169689Skan if FN is a member function template. 730169689Skan 731169689Skan2003-11-01 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 732169689Skan 733169689Skan PR c++/12796 734169689Skan * class.c (handle_using_decl): Set input_location before calling 735169689Skan error_not_base_type. 736169689Skan 737169689Skan2003-10-26 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 738169689Skan 739169689Skan PR c++/10371 740169689Skan * semantics.c (finish_non_static_data_member): Handle when 741169689Skan both processing_template_decl and qualifying_scope are true. 742169689Skan 743169689Skan2003-10-24 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 744169689Skan 745169689Skan PR c++/11076 746169689Skan * class.c (handle_using_decl): Swap arguments of error_not_base_type. 747169689Skan * parser.c (cp_parser_direct_declarator): Only resolve typename for 748169689Skan namespace scope declarations. 749169689Skan 750169689Skan2003-10-24 Nathan Sidwell <nathan@codesourcery.com> 751169689Skan 752169689Skan PR c++/12698, c++/12699, c++/12700, c++/12566 753169689Skan * cp-tree.h (THUNK_ALIAS_P, THUNK_ALIAS): New. 754169689Skan (debug_class, debug_thunks): New. 755169689Skan * class.c (dump_class_hierarchy_1): New break out from ... 756169689Skan (dump_class_hierarchy): ... here. 757169689Skan (dump_thunk, debug_thunks, debug_class): New. 758169689Skan (update_vtable_entry_for_fn): Add ssizetype casts. Correct 759169689Skan continued search for primary binfo via virtual. 760169689Skan (build_vtbl_initializer): Follow covariant thunk alias. 761169689Skan * method.c (make_thunk): Clear DECL_THUNKS of the thunk. 762169689Skan (finish_thunk): Look for an alias of the covariant thunk and point 763169689Skan to it. 764169689Skan (use_thunk): We should never use an alias. 765169689Skan * semantics.c (emit_associated_thunks): Do not emit aliases. 766169689Skan 767169689Skan PR c++/12566 768169689Skan * cp-tree.h (cp_fname_init): Add TYPE pointer param. 769169689Skan * decl.c (cp_fname_init): Add TYPE pointer param. Set it. Don't 770169689Skan create an ad-hoc ERROR_MARK. 771169689Skan (cp_make_fname_decl): Adjust. 772169689Skan * pt.c (tsubst_expr): Adjust. 773169689Skan 774169689Skan2003-10-23 Jason Merrill <jason@redhat.com> 775169689Skan 776169689Skan PR c++/12726 777169689Skan * tree.c (build_target_expr_with_type): Don't call force_rvalue 778169689Skan for CONSTRUCTORs. 779169689Skan 780169689Skan2003-10-22 Kazu Hirata <kazu@cs.umass.edu> 781169689Skan 782169689Skan * call.c: Fix comment formatting. 783169689Skan * class.c: Likewise. 784169689Skan * cxx-pretty-print.c: Likewise. 785169689Skan * init.c: Likewise. 786169689Skan * parser.c: Likewise. 787169689Skan * pt.c: Likewise. 788169689Skan * semantics.c: Likewise. 789169689Skan * tree.c: Likewise. 790169689Skan * typeck.c: Likewise. 791169689Skan * typeck2.c: Likewise. 792169689Skan 793169689Skan2003-10-21 Mark Mitchell <mark@codesourcery.com> 794169689Skan 795169689Skan PR c++/11962 796169689Skan * typeck.c (build_x_conditional_expr): Handle missing middle 797169689Skan operands in templates. 798169689Skan * mangle.c (write_expression): Issue errors about attempts to 799169689Skan mangle a non-existant middle operator to the ?: operator. 800169689Skan 801169689Skan2003-10-21 Robert Bowdidge <bowdidge@apple.com> 802169689Skan 803169689Skan * decl.c (cp_finish_decl): Remove clause intended for asm directives 804169689Skan in struct or class fields: this code is never executed. 805169689Skan 806169689Skan2003-10-22 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 807169689Skan 808169689Skan * decl.c (start_decl): Exit if push_template_decl returns 809169689Skan error_mark_node. 810169689Skan 811169689Skan2003-10-20 Kazu Hirata <kazu@cs.umass.edu> 812169689Skan 813169689Skan * ChangeLog: Fix typos. 814169689Skan * call.c: Fix comment typos. 815169689Skan * class.c: Likewise. 816169689Skan * cp-tree.h: Likewise. 817169689Skan * cvt.c: Likewise. 818169689Skan * cxx-pretty-print.c: Likewise. 819169689Skan * decl.c: Likewise. 820169689Skan * decl2.c: Likewise. 821169689Skan * init.c: Likewise. 822169689Skan * mangle.c: Likewise. 823169689Skan * name-lookup.c: Likewise. 824169689Skan * parser.c: Likewise. 825169689Skan * search.c: Likewise. 826169689Skan * semantics.c: Likewise. 827169689Skan * tree.c: Likewise. 828169689Skan * typeck.c: Likewise. 829169689Skan 830169689Skan2003-10-20 Jan Hubicka <jh@suse.cz> 831169689Skan 832169689Skan * decl.c (start_cleanup_fn): Set DECL_DECLARED_INLINE_P to deffer 833169689Skan the expansion. 834169689Skan 835169689Skan2003-10-20 Mark Mitchell <mark@codesourcery.com> 836169689Skan 837169689Skan * Make-lang.in (c++.install-info): Remove. 838169689Skan 839169689Skan2003-10-20 Jason Merrill <jason@redhat.com> 840169689Skan 841169689Skan * class.c (layout_class_type): Set DECL_ARTIFICIAL on padding 842169689Skan field. 843169689Skan 844169689Skan2003-10-20 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 845169689Skan 846169689Skan PR c++/9781, c++/10583, c++/11862 847169689Skan * decl.c (cp_finish_decl): Exit immediately if decl is an 848169689Skan error_mark_node. 849169689Skan * pt.c (push_template_decl_real): Return error_mark_node for 850169689Skan invalid template declaration of variable. 851169689Skan 852169689Skan2003-10-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 853169689Skan 854169689Skan PR c++/12495 855169689Skan * pt.c (lookup_template_class): Handle when current_class_type 856169689Skan is a local class. 857169689Skan 858169689Skan2003-10-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 859169689Skan 860169689Skan PR c++/2513 861169689Skan * decl.c (make_typename_type): Use dependent_type_p. 862169689Skan (make_unbound_class_template): Likewise. 863169689Skan * pt.c (instantiate_class_template): Increment 864169689Skan processing_template_decl during substitution of template friend 865169689Skan function. Preincrement processing_template_decl rather than 866169689Skan postincrement. 867169689Skan (get_mostly_instantiated_function_type): Increment 868169689Skan processing_template_decl during partial substitution of function 869169689Skan type. 870169689Skan 871169689Skan2003-10-15 Jan Hubicka <jh@suse.cz> 872169689Skan 873169689Skan PR c++/12574 874169689Skan * decl2.c (cxx_callgraph_analyze_expr): Deal with baselink. 875169689Skan 876169689Skan2003-10-14 Jason Merrill <jason@redhat.com> 877169689Skan 878169689Skan PR c++/11878 879169689Skan * tree.c (build_target_expr_with_type): Call force_rvalue for 880169689Skan classes with non-trivial copy ctors. 881169689Skan 882169689Skan PR c++/11063 883169689Skan * typeck.c (build_modify_expr): Call convert rather than abort. 884169689Skan 885169689Skan2003-10-14 Gabriel Dos Reis <gdr@integrable-solutions.net> 886169689Skan 887169689Skan Breack out decl.c (3/n) 888169689Skan * name-lookup.c: Include flags.h 889169689Skan (lookup_name_current_level): Make static. 890169689Skan (add_decl_to_level): Likewise. 891169689Skan (push_local_binding): Likewise. 892169689Skan (push_overloaded_decl): Likewise. 893169689Skan (lookup_using_namespace): Likewise. 894169689Skan (qualified_lookup_using_namespace): Likewise. 895169689Skan (lookup_type_current_level): Likewise. 896169689Skan (unqualified_namespace_lookup): Likewise. 897169689Skan (namespace_ancestor): Likewise. 898169689Skan (push_using_directive): Likewise. 899169689Skan * decl.c (pushdecl): Move to name-lookup.c. 900169689Skan (pushdecl_top_level_1): Likewise. 901169689Skan (pushdecl_top_level): Likewise. 902169689Skan (pushdecl_top_level_and_finish): Likewise. 903169689Skan (maybe_push_decl): Likewise. 904169689Skan (push_using_decl): Likewise. 905169689Skan (push_overloaded_decl): Likewise. 906169689Skan (make_anon_name): Likewise. 907169689Skan (anon_cnt): Likewise. 908169689Skan (clear_anon_tags): Likewise. 909169689Skan (maybe_inject_for_scope_var): Likewise. 910169689Skan (check_for_out_of_scope_variable): Likewise. 911169689Skan * Make-lang.in (cp/name-lookup.o): Depend on flags.h. 912169689Skan * decl.c (warn_extern_redeclared_static): Export. 913169689Skan * cp-tree.h (warn_extern_redeclared_static): Declare. 914169689Skan 915169689Skan2003-10-14 Nathanael Nerode <neroden@gcc.gnu.org> 916169689Skan 917169689Skan * Make-lang.in: Replace uses of $(target_alias) with 918169689Skan $(target_noncanonical). 919169689Skan 920169689Skan2003-10-13 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 921169689Skan 922169689Skan * ChangeLog: Add PR number to patch for PR c++/12370. 923169689Skan 924169689Skan2003-10-13 Gabriel Dos Reis <gdr@integrable-solutions.net> 925169689Skan 926169689Skan * name-lookup.h (cxx_scope_find_binding_for_name): Don't export. 927169689Skan (binding_for_name): Likewise. 928169689Skan (cxx_binding_clear): Move to name-lookup.c. 929169689Skan * name-lookup.c (cxx_scope_find_binding_for_name): Now static. 930169689Skan (binding_for_name): Likewise. 931169689Skan * decl2.c (is_ancestor): Move to name-lookup.c 932169689Skan (namespace_ancestor): Likewise. 933169689Skan (add_using_namespace): Likewise. 934169689Skan (ambiguous_decl): Likewise. 935169689Skan (lookup_using_namespace): Likewise. 936169689Skan (qualified_lookup_using_namespace): Likewise. 937169689Skan (set_decl_namespace): Likewise. 938169689Skan (decl_namespace): Likewise. 939169689Skan (current_decl_namespace): Likewise. 940169689Skan (push_decl_namespace): Likewise. 941169689Skan (pop_decl_namespace): Likewise. 942169689Skan (push_scope): Likewise. 943169689Skan (pop_scope): Likewise. 944169689Skan (struct arg_lookup): Likewise. 945169689Skan (arg_assoc): Likewise. 946169689Skan (arg_assoc_args): Likewise. 947169689Skan (arg_assoc_type): Likewise. 948169689Skan (add_function): Likewise. 949169689Skan (arg_assoc_namespace): Likewise. 950169689Skan (arg_assoc_class): Likewise. 951169689Skan (arg_assoc_template_arg): Likewise. 952169689Skan (do_namespace_alias): Likewise. 953169689Skan (validate_nonmember_using_decl): Likewise. 954169689Skan (do_nonmember_using_decl): Likewise. 955169689Skan (do_toplevel_using_decl): Likewise. 956169689Skan (do_local_using_decl): Likewise. 957169689Skan (do_class_using_decl): Likewise. 958169689Skan (do_using_directive): Likewise. 959169689Skan (constructor_name_full): Likewise. 960169689Skan (constructor_name): Likewise. 961169689Skan (constructor_name_p): Likewise. 962169689Skan 963169689Skan2003-10-13 Gabriel Dos Reis <gdr@integrable-solutions.net> 964169689Skan 965169689Skan Break out decl.c (2/n) 966169689Skan * name-lookup.c: Include diagnostic.h 967169689Skan (cxx_binding_free): Make static. 968169689Skan (cxx_binding_make): Likewise. 969169689Skan (binding_table_new): Likewise 970169689Skan (binding_table_free): Likewise. 971169689Skan (binding_table_insert): Likewise. 972169689Skan (binding_table_find_anon_type): Likewise. 973169689Skan (binding_table_reverse_maybe_remap): Likewise. 974169689Skan (supplement_binding): Likewise. 975169689Skan * name-lookup.h (global_scope_name): Declare extern. 976169689Skan (global_type_node): Likewise. 977169689Skan (cxx_binding_free): Don't export. 978169689Skan (cxx_binding_make): Likewise. 979169689Skan (binding_table_new): Likewise. 980169689Skan (binding_table_free): Likewise. 981169689Skan (binding_table_insert): Likewise. 982169689Skan (binding_table_find_anon_type): Likewise. 983169689Skan (binding_table_reverse_maybe_remap): Likewise. 984169689Skan * Make-lang.in (cp/name-lookup.o): Depend on $(DIAGNOSTIC_H) 985169689Skan * decl.c (lookup_namespace_name): Move to name-lookup.c 986169689Skan (select_decl): Likewise. 987169689Skan (unqualified_namespace_lookup): Likewise. 988169689Skan (lookup_qualified_name): Likewise. 989169689Skan (lookup_name_real): Likewise. 990169689Skan (lookup_name_nonclass): Likewise. 991169689Skan (lookup_function_nonclass): Likewise. 992169689Skan (lookup_name): Likewise. 993169689Skan (lookup_name_current_level): Likewise. 994169689Skan (lookup_type_current_level): Likewise. 995169689Skan (lookup_flags): Likewise. 996169689Skan (qualify_lookup): Likewise. 997169689Skan (lookup_tag): Likewise. 998169689Skan (lookup_tag_reverse): Likewise. 999169689Skan (getdecls): Likewise. 1000169689Skan (storedecls): Remove. 1001169689Skan (cxx_remember_type_decls): Move to name-lookup.c. 1002169689Skan (global_bindings_p): Likewise. 1003169689Skan (innermost_nonclass_level): Likewise. 1004169689Skan (toplevel_bindings_p): Likewise. 1005169689Skan (namespace_bindings_p): Likewise. 1006169689Skan (kept_level_p): Likewise. 1007169689Skan (innermost_scope_kind): Likewise. 1008169689Skan (template_parm_scope_p): Likewise. 1009169689Skan (push_binding): Likewise. 1010169689Skan (push_local_binding): Likewise. 1011169689Skan (add_decl_to_level): Likewise. Make extern. 1012169689Skan (push_class_binding): Move to name-lookup.c. 1013169689Skan (resume_level): Likewise. Rename to resume_scope. 1014169689Skan (begin_scope): Move to name-lookup.c. 1015169689Skan (indent): Likewise. 1016169689Skan (binding_depth): Likewise. 1017169689Skan (is_class_level): Likewise. 1018169689Skan (cxx_scope_descriptor): Likewise. 1019169689Skan (cxx_scope_debug): Likewise. 1020169689Skan (namespace_scope_ht_size): Likewise. 1021169689Skan (leave_scope): Likewise. 1022169689Skan (pushlevel_class): Likewise. 1023169689Skan (poplevel_class): Likewise. 1024169689Skan (clear_identifier_class_values): Likewise. 1025169689Skan (pushdecl_with_scope): Likewise. 1026169689Skan (pushdecl_namespace_level): Likewise. 1027169689Skan (pushdecl_class_level): Likewise. 1028169689Skan (push_class_level_binding): Likewise. 1029169689Skan (push_using_directive): Likewise. 1030169689Skan (identifier_global_value): Likewise. 1031169689Skan (keep_next_level_flag): Likewise. 1032169689Skan (keep_next_level): Likewise. 1033169689Skan (free_binding_level): Likewise. 1034169689Skan (set_class_shadows): Likewise. 1035169689Skan (maybe_push_cleanup_level): Likewise. 1036169689Skan (cp_namespace_decls): Likewise. 1037169689Skan (bt_print_entry): Likewise. 1038169689Skan (print_binding_level): Likewise. 1039169689Skan (print_other_binding_stack): Likewise. 1040169689Skan (print_binding_stack): Likewise. 1041169689Skan (push_namespace): Likewise. 1042169689Skan (pop_namespace): Likewise. 1043169689Skan (push_nested_namespace): Likewise. 1044169689Skan (pop_nested_namespace): Likewise. 1045169689Skan (cxx_saved_binding_make): Likewise. 1046169689Skan (struct cxx_saved_binding_make): Likewise. 1047169689Skan (store_bindings): Likewise. 1048169689Skan (maybe_push_to_top_level): Likewise. 1049169689Skan (push_to_top_level): Likewise. 1050169689Skan (pop_from_top_level): Likewise. 1051169689Skan (identifier_type_value): Likewise. 1052169689Skan (set_identifier_type_value): Likewise. 1053169689Skan (set_identifier_type_value_with_scope): Likewise. 1054169689Skan (pop_everything): Likewise. 1055169689Skan (pushtag): Likewise. 1056169689Skan (follow_tag_typedef): Likewise. 1057169689Skan (maybe_process_template_type_declaration): Likewise. 1058169689Skan (pop_binding): Likewise. 1059169689Skan * cp-tree.h: Move corresponding declarations to name-lookup.h 1060169689Skan 1061169689Skan2003-10-12 Steven Bosscher <steven@gcc.gnu.org> 1062169689Skan 1063169689Skan * cvt.c (ocp_convert): Move warning to C common code. 1064169689Skan 1065169689Skan2003-10-09 Jason Merrill <jason@redhat.com> 1066169689Skan 1067169689Skan PR c++/6392 1068169689Skan * tree.c (build_cplus_array_type): Handle all quals the same. 1069169689Skan (cp_build_qualified_type_real): Look through arrays first. 1070169689Skan 1071169689Skan * tree.c (build_cplus_new): Use build_decl to create a VAR_DECL. 1072169689Skan (build_target_expr_with_type): Likewise. 1073169689Skan 1074169689Skan * pt.c (instantiate_class_template): Sanity check that our 1075169689Skan enclosing class has been instantiated. 1076169689Skan 1077169689Skan2003-10-08 Giovanni Bajo <giovannibajo@libero.it> 1078169689Skan 1079169689Skan * cp_tree.h: Added TFF_NO_FUNCTION_ARGUMENTS. 1080169689Skan * error.c (dump_function_decl): Use it to skip the dump of the 1081169689Skan arguments. 1082169689Skan (dump_expr): When dumping a declaration found within an 1083169689Skan expression, always set TFF_NO_FUNCTION_ARGUMENTS 1084169689Skan in the flags. 1085169689Skan 1086169689Skan2003-10-08 Giovanni Bajo <giovannibajo@libero.it> 1087169689Skan 1088169689Skan PR c++/11097 1089169689Skan * pt.c (tsubst_decl): Substitute also the DECL_NAME node of 1090169689Skan USING_DECL. 1091169689Skan 1092169689Skan2003-10-06 Mark Mitchell <mark@codesourcery.com> 1093169689Skan 1094169689Skan PR c++/10147 1095169689Skan * call.c (initialize_reference): Tweak error message. 1096169689Skan * cxx-pretty-print.h (cxx_pretty_printer_flags): Remove 1097169689Skan pp_cxx_flag_qualified_id and pp_cxx_flag_global_scope. 1098169689Skan * cxx-pretty-print.c (pp_cxx_id_expression): Always display 1099169689Skan qualified entities using qualified names. 1100169689Skan 1101169689Skan PR c++/12337 1102169689Skan * init.c (build_new_1): Make sure that the expression returned is 1103169689Skan not an lvalue. 1104169689Skan 1105169689Skan PR c++/12344, c++/12236, c++/8656 1106169689Skan * decl.c (start_function): Do not ignore attributes embedded in a 1107169689Skan function declarator. 1108169689Skan 1109169689Skan2003-10-06 Mark Mitchell <mark@codesourcery.com> 1110169689Skan 1111169689Skan * Make-lang.in (c++.info): Remove. 1112169689Skan (c++.dvi): Remove. 1113169689Skan (c++.generated-manpages): Replace with ... 1114169689Skan (generated-manpages): ... this. 1115169689Skan 1116169689Skan2003-10-03 Gabriel Dos Reis <gdr@integrable-solutions.net> 1117169689Skan 1118169689Skan * decl.c (struct cp_binding_level): Move to name-lookup.h 1119169689Skan (current_binding_level): Likewise. 1120169689Skan (class_binding_level): Likewise. 1121169689Skan * cp-tree.h (enum scope_kind): Likewise. 1122169689Skan 1123169689Skan2003-10-03 Gabriel Dos Reis <gdr@integrable-solutions.net> 1124169689Skan 1125169689Skan * name-lookup.c (binding_entry_free): Nullify name and type 1126169689Skan fields. 1127169689Skan 1128169689Skan2003-10-02 Mark Mitchell <mark@codesourcery.com> 1129169689Skan 1130169689Skan PR c++/12486 1131169689Skan * typeck.c (finish_class_member_access_expr): Issue diagnostic 1132169689Skan on erroneous use of qualified name. 1133169689Skan 1134169689Skan2003-09-30 Richard Henderson <rth@redhat.com> 1135169689Skan 1136169689Skan PR c++/12370 1137169689Skan * decl.c (duplicate_decls): Copy DECL_SAVED_INSNS too. 1138169689Skan 1139169689Skan2003-09-30 Kelley Cook <kelleycoook@wideopenwest.com> 1140169689Skan 1141169689Skan * g++spec.c: Convert to ISO C90 prototypes. 1142169689Skan * parser.c: Likewise. 1143169689Skan 1144169689Skan2003-09-30 Gabriel Dos Reis <gdr@integrable-solutions.net> 1145169689Skan 1146169689Skan * decl.c (pop_binding): Don't mess with nullifying binding->scope 1147169689Skan here. 1148169689Skan * name-lookup.c: Re-format. 1149169689Skan (cxx_binding_free): Nullify binding->scope. 1150169689Skan 1151169689Skan2003-09-29 Jan Hubicka <jh@suse.cz> 1152169689Skan 1153169689Skan PR C++/12047 1154169689Skan * except.c (build_eh_type_type): Call mark_used on the type. 1155169689Skan 1156169689Skan2003-09-28 Richard Henderson <rth@redhat.com> 1157169689Skan 1158169689Skan * typeck.c (c_expand_asm_operands): Take location_t, instead of 1159169689Skan individual file and line. 1160169689Skan 1161169689Skan2003-09-28 Andreas Jaeger <aj@suse.de> 1162169689Skan 1163169689Skan * decl.c (cxx_builtin_type_decls): Convert to ISO C90 function 1164169689Skan definition. 1165169689Skan * init.c (push_base_cleanups): Likewise. 1166169689Skan * decl2.c (finish_file): Likewise. 1167169689Skan * mangle.c (init_mangle): Likewise. 1168169689Skan (dump_substitution_candidates): Likewise. 1169169689Skan * search.c: Likewise. 1170169689Skan 1171169689Skan2003-09-27 Gabriel Dos Reis <gdr@integrable-solutions.net> 1172169689Skan 1173169689Skan * name-lookup.h (get_global_value_if_present): New function. 1174169689Skan (is_typename_at_global_scope): Likewise. 1175169689Skan * except.c (do_begin_catch): Use get_global_value_if_present. 1176169689Skan (do_end_catch): Likewise. 1177169689Skan (do_allocate_exception): Likewise. 1178169689Skan (do_free_exception): Likewise. 1179169689Skan (build_throw): Likewise. 1180169689Skan * parser.c (cp_parser_member_declaration): Likewise. 1181169689Skan * rtti.c (throw_bad_cast): Likewise. 1182169689Skan (throw_bad_typeid): Likewise. 1183169689Skan * decl.c (check_tag_decl): Use is_typename_at_global_scope. 1184169689Skan (grokdeclarator): Likewise. 1185169689Skan * cp-tree.h (global_namespace): Move to name-lookup.h 1186169689Skan * call.c (call_builtin_trap): Tidy. 1187169689Skan 1188169689Skan2003-09-27 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1189169689Skan 1190169689Skan PR c++/11415 1191169689Skan * parser.c (cp_parser_nested_name_specifier_opt): Issue correct 1192169689Skan error message when parser->scope is global_namespace. 1193169689Skan 1194169689Skan2003-09-27 Gabriel Dos Reis <gdr@integrable-solutions.net> 1195169689Skan 1196169689Skan * cp-tree.h, name-lookup.h, decl.c, decl2.c: Remove reference to 1197169689Skan macros BINDING_SCOPE, BINDING_VALUE and BINDING_TYPE. 1198169689Skan 1199169689Skan2003-09-26 Gabriel Dos Reis <gdr@integrable-solutions.net> 1200169689Skan 1201169689Skan * decl.c (pop_binding_level, suspend_binding_level, 1202169689Skan find_class_binding_level): Merge into leave_scope. Remove. 1203169689Skan (leave_scope): New function. 1204169689Skan (poplevel): Update. 1205169689Skan (poplevel_class): Likewise. 1206169689Skan (pop_namespace): Likewise. 1207169689Skan 1208169689Skan2003-09-25 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1209169689Skan 1210169689Skan PR c++/5655 1211169689Skan * parser.c (cp_parser_check_access_in_redeclaration): New function. 1212169689Skan (cp_parser_member_declaration): Use it. 1213169689Skan (cp_parser_template_declaration_after_export): Likewise. 1214169689Skan 1215169689Skan2003-09-22 Gabriel Dos Reis <gdr@integrable-solutions.net> 1216169689Skan 1217169689Skan * cp-tree.h (scope_kind): Add new enumerator. 1218169689Skan (keep_next_level): Change parameter type to bool. 1219169689Skan (begin_scope): Change prototype. 1220169689Skan (pushlevel): Remove declaration. 1221169689Skan * decl.c (push_binding_level): Fold in begin_scope. Remove. 1222169689Skan (struct cp_binding_level): Remove tag_tranparent field. Make keep 1223169689Skan of bitsize one. 1224169689Skan (keep_next_level_flag): Make a bool. 1225169689Skan (cxx_scope_descriptor): Update scope names table 1226169689Skan (make_cxx_scope): Fold in begin_scope. Remove.. 1227169689Skan (namespace_scope_ht_size): New function. 1228169689Skan (begin_scope): Change prototype. Return a scope. Tidy. 1229169689Skan (kept_level_p): Update. 1230169689Skan (pushlevel): Remove. 1231169689Skan (maybe_push_cleanup_level): Simplify. 1232169689Skan (poplevel): Update for sk_cleanup and keep change. 1233169689Skan (print_binding_level): Likewise. 1234169689Skan (initial_push_namespace_scope): Fold in begin_scope. Remove. 1235169689Skan (push_namespace): Update. 1236169689Skan (pushtag): Likewise. 1237169689Skan (lookup_tag): Likewise. 1238169689Skan (lookup_name_current_level): Likewise. 1239169689Skan (lookup_type_current_level): Likewise. 1240169689Skan (cxx_init_decl_processing): Likewise. 1241169689Skan (start_function): Likewise. 1242169689Skan (begin_function_body): Likewise. 1243169689Skan (start_method): Likewise. 1244169689Skan * pt.c (push_inline_template_parms_recursive): Likewise. 1245169689Skan (begin_template_parm_list): Likewise. 1246169689Skan (begin_specialization): Likewise. 1247169689Skan * semantics.c (do_pushlevel): Likewise. 1248169689Skan (begin_compound_stmt): Likewise. 1249169689Skan (begin_stmt_expr): Likewise. 1250169689Skan 1251169689Skan2003-09-21 Richard Henderson <rth@redhat.com> 1252169689Skan 1253169689Skan * class.c, cp-tree.h, decl.c, decl2.c, error.c, init.c, 1254169689Skan method.c, optimize.c, pt.c, semantics.c, tree.c: Revert. 1255169689Skan 1256169689Skan2003-09-21 Richard Henderson <rth@redhat.com> 1257169689Skan 1258169689Skan * class.c, cp-tree.h, decl.c, decl2.c, error.c, init.c, 1259169689Skan method.c, optimize.c, pt.c, semantics.c, tree.c: Update for 1260169689Skan DECL_SOURCE_LOCATION rename and change to const. 1261169689Skan 1262169689Skan2003-09-20 Richard Henderson <rth@redhat.com> 1263169689Skan 1264169689Skan * decl.c, decl2.c, pt.c: Use %J in diagnostics. 1265169689Skan 1266169689Skan2003-09-20 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1267169689Skan 1268169689Skan PR c++/157 1269169689Skan * parser.c (cp_parser_direct_declarator): Clear 1270169689Skan parser->num_template_parameter_lists when parsing function 1271169689Skan parameters. 1272169689Skan (cp_parser_constructor_declarator_p): Likewise. 1273169689Skan 1274169689Skan2003-09-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1275169689Skan 1276169689Skan PR c++/495 1277169689Skan * pt.c (tsubst_friend_class): Only use innermost template 1278169689Skan arguments for the injected friend class template. 1279169689Skan 1280169689Skan2003-09-19 Nathan Sidwell <nathan@codesourcery.com> 1281169689Skan 1282169689Skan PR c++/12332 1283169689Skan * pt.c (instantiate_class_template): Increment 1284169689Skan processing_template_decl around the tsubst of a template member 1285169689Skan function. 1286169689Skan 1287169689Skan2003-09-19 Gabriel Dos Reis <gdr@integrable-solutions.net> 1288169689Skan 1289169689Skan * decl.c (cxx_scope_descriptor): Fix thinko. 1290169689Skan (struct cp_binding_level): Adjust type of binding_depth field. 1291169689Skan 1292169689Skan2003-09-18 Danny Smith <dannysmith@users.sourceforge.net> 1293169689Skan 1294169689Skan PR c++/12320 1295169689Skan * call.c (type_passed_as): Check for incomplete type. 1296169689Skan (convert_for_arg_passing): Likewise. 1297169689Skan 1298169689Skan2003-09-18 Nathan Sidwell <nathan@codesourcery.com> 1299169689Skan 1300169689Skan PR c++/9848 1301169689Skan * optimize.c (maybe_clone_body): Don't set MARK_USED on parameters 1302169689Skan here. 1303169689Skan * semantics.c (expand_body): Set it here on the remaining clones. 1304169689Skan 1305169689Skan2003-09-18 Roger Sayle <roger@eyesopen.com> 1306169689Skan 1307169689Skan * lex.c (init_operators): Remove operator_name_info for FFS_EXPR. 1308169689Skan * class.c (instantiate_type): Remove FFS_EXPR case. 1309169689Skan 1310169689Skan2003-09-18 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 1311169689Skan 1312169689Skan * ChangeLog: Fix recent commit. 1313169689Skan 1314169689Skan2003-09-18 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 1315169689Skan 1316169689Skan * ChangeLog: Add PR number to patch for PR c++/12316. 1317169689Skan 1318169689Skan2003-09-18 Gabriel Dos Reis <gdr@integrable-solutions.net> 1319169689Skan 1320169689Skan * error.c (dump_type): Simplify. Use pp_type_specifier_seq for 1321169689Skan "C" types. 1322169689Skan * cxx-pretty-print.c (pp_cxx_type_specifier_seq): Fix thinko. 1323169689Skan 1324169689Skan2003-09-17 Richard Henderson <rth@redhat.com> 1325169689Skan 1326169689Skan * semantics.c (expand_body): Don't save/restore input_location. 1327169689Skan 1328169689Skan2003-09-17 Mark Mitchell <mark@codesourcery.com> 1329169689Skan 1330169689Skan PR c++/12266 1331169689Skan * cp-tree.h (tsubst_flags_t): Add tf_conv. 1332169689Skan * class.c (standard_conversion): Pass tf_conv to 1333169689Skan instantiate_type. 1334169689Skan (resolve_address_of_overloaded_function): Do not call mark_used 1335169689Skan when just checking conversions. 1336169689Skan 1337169689Skan PR debug/12066 1338169689Skan * cp-lang.c (LANG_HOOKS_BUILTIN_TYPE_DECLS): Define. 1339169689Skan * cp-tree.h (cxx_builtin_type_decls): Declare. 1340169689Skan * decl.c (builtin_type_decls): New variables. 1341169689Skan (cxx_builtin_type_decls): New function. 1342169689Skan (record_builtin_type): Add to builtin_type_decls. 1343169689Skan 1344169689Skan2003-09-17 Richard Henderson <rth@redhat.com> 1345169689Skan 1346169689Skan PR c++/12316 1347169689Skan * semantics.c (expand_or_defer_fn): Inc/dec function_depth. 1348169689Skan 1349169689Skan2003-09-16 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1350169689Skan 1351169689Skan PR c++/7939 1352169689Skan * typeck.c (comptypes): Don't ICE when its first argument is 1353169689Skan error_mark_node. 1354169689Skan (compparms): Reverse the arguments of same_type_p. 1355169689Skan 1356169689Skan2003-09-15 Nathan Sidwell <nathan@codesourcery.com> 1357169689Skan 1358169689Skan PR c++/12184 1359169689Skan * typeck.c (convert_arguments): Return error_mark_node for an 1360169689Skan incomplete parameter. Make error message more informative. 1361169689Skan 1362169689Skan2003-09-12 Mark Mitchell <mark@codesourcery.com> 1363169689Skan 1364169689Skan PR c++/3907 1365169689Skan * class.c (maybe_note_name_used_in_class): Refine test for whether 1366169689Skan or not we are in a class scope. 1367169689Skan 1368169689Skan * cp-tree.h (language_function): Remove x_expanding_p. 1369169689Skan (expanding_p): Remove. 1370169689Skan (doing_semantic_analysis_p): Remove. 1371169689Skan (scope_kind): Add sk_function_parms, sk_class, 1372169689Skan sk_namespace. 1373169689Skan (innermost_scope_kind): New method. 1374169689Skan * call.c (cxx_type_promotes_to): Use type_decays_to. 1375169689Skan * cp-lang.c (LANG_HOOKS_PUSHLEVEL): Redefine. 1376169689Skan (LANG_HOOKS_POPLEVEL): Likewise. 1377169689Skan * decl.c (cp_binding_level): Remove parm_flag, template_parms_p, 1378169689Skan template_spec_p, namespace_p, is_for_scope, is_try_scope, and 1379169689Skan is_catch_scope. Add kind and explicit_spec_p. 1380169689Skan (cxx_scope_descriptor): Use a lookup table. 1381169689Skan (find_class_binding_level): Use "kind" field in binding_level, not 1382169689Skan the various flags. 1383169689Skan (pop_binding_level): Likewise. 1384169689Skan (innermost_nonclass_level): Likewise. 1385169689Skan (toplevel_bindings_p): Likewise. 1386169689Skan (namespace_bindings_p): Likewise. 1387169689Skan (template_parm_scope_p): Likewise. 1388169689Skan (innermost_scope_kind): New method. 1389169689Skan (current_tmpl_spec_kind): Use "kind" field in binding_level, not 1390169689Skan the various flags. 1391169689Skan (pushlevel): Remove check for doing_semantic_analysis_p. 1392169689Skan (begin_scope): Simplify. 1393169689Skan (add_decl_to_level): Use "kind" field in binding_level, not 1394169689Skan the various flags. 1395169689Skan (push_local_binding): Likewise. 1396169689Skan (pop_label): Remove check for doing_semantic_analysis_p. 1397169689Skan (poplevel): Use "kind" field in binding_level, not 1398169689Skan the various flags. 1399169689Skan (set_block): Remove check for doing_semantic_analysis_p. 1400169689Skan (pushlevel_class): Use "kind" field in binding_level, not 1401169689Skan the various flags. 1402169689Skan (poplevel_class): Likewise. 1403169689Skan (initial_push_namespace_scope): Likewise. 1404169689Skan (maybe_push_to_top_level): Likewise. 1405169689Skan (set_identifier_type_value_with_scope): Likewise. 1406169689Skan (pop_everything): Likewise. 1407169689Skan (maybe_process_template_type_declaration): Likewise. 1408169689Skan (pushtag): Likewise. 1409169689Skan (pushdecl): Likewise. 1410169689Skan (pushdecl_with_scope): Likewise. 1411169689Skan (check_previous_goto_1): Likewise. 1412169689Skan (define_label): Likewise. 1413169689Skan (finish_case_label): Likewise. 1414169689Skan (lookup_tag): Likewise. 1415169689Skan (unqualified_namespace_lookup): Likewise. 1416169689Skan (lookup_name_real): Likewise. 1417169689Skan (lookup_name_current_level): Likewise. 1418169689Skan (lookup_type_current_level): Likewise. 1419169689Skan (record_builtin_type): Likewise. 1420169689Skan (cp_make_fname_decl): Likewise. 1421169689Skan (maybe_inject_for_scope_var): Likewise. 1422169689Skan (cp_finish_decl): Remove check for doing_semantic_analysis_p. 1423169689Skan (start_function): Use begin_scope, not pushlevel. 1424169689Skan (finish_function): Use "kind" field in binding_level, not 1425169689Skan the various flags. 1426169689Skan (start_method): Use begin_scope, not pushlevel. 1427169689Skan (make_label_decl): Do not check expanding_p. 1428169689Skan (save_function-data): Do not set expanding_p. 1429169689Skan (cxx_push_function_context): Do not clear expanding_p. 1430169689Skan * semantics.c (cxx_expand_function_start): Do not set expanding_p. 1431169689Skan 1432169689Skan2003-09-14 Mark Mitchell <mark@codesourcery.com> 1433169689Skan 1434169689Skan * class.c (layout_class_type): Make DECL_MODE match TYPE_MODE for 1435169689Skan an bit-field whose width exceeds that of its type. 1436169689Skan 1437169689Skan2003-09-14 Geoffrey Keating <geoffk@apple.com> 1438169689Skan 1439169689Skan * rtti.c (get_tinfo_decl): Set TREE_PUBLIC for typeinfo decls. 1440169689Skan 1441169689Skan2003-09-14 Kazu Hirata <kazu@cs.umass.edu> 1442169689Skan 1443169689Skan * ChangeLog: Follow spelling conventions. 1444169689Skan * parser.c: Likewise. 1445169689Skan 1446169689Skan2003-09-13 Richard Henderson <rth@redhat.com> 1447169689Skan 1448169689Skan * decl2.c (finish_file): Check cgraph_assemble_pending_functions 1449169689Skan during relaxation loop. 1450169689Skan 1451169689Skan2003-09-11 David Edelsohn <edelsohn@gnu.org> 1452169689Skan 1453169689Skan * decl2.c (var_finalized_p): Swap arms of conditional. 1454169689Skan 1455169689Skan2003-09-10 Nathan Sidwell <nathan@codesourcery.com> 1456169689Skan 1457169689Skan PR c++/11788 1458169689Skan * typeck.c (build_address): If it is a function, mark it used. 1459169689Skan (build_unary_op): Do not lose object's side-effects when taking 1460169689Skan address of static member function. 1461169689Skan * class.c (resolve_address_of_overloaded_function): Use 1462169689Skan tsubst_flags_t parameter. Only expect overload sets. Adjust. 1463169689Skan (instantiate_type): Adjust flags passing. Do not lose object's 1464169689Skan side-effects when taking address of static member function. 1465169689Skan 1466169689Skan2003-09-11 Richard Henderson <rth@redhat.com> 1467169689Skan 1468169689Skan * semantics.c (expand_or_defer_fn): Update for new 1469169689Skan cgraph_finalize_function argument. 1470169689Skan 1471169689Skan2003-09-10 Richard Henderson <rth@redhat.com> 1472169689Skan 1473169689Skan * decl2.c (cxx_callgraph_analyze_expr): Mark argument unused. 1474169689Skan 1475169689Skan2003-09-10 Jan Hubicka <jh@suse.cz> 1476169689Skan 1477169689Skan * decl2.c (var_finalized_p): New. 1478169689Skan (maybe_emit_vtables, write_out_vars, finish_file): Use it. 1479169689Skan 1480169689Skan2003-09-10 Richard Henderson <rth@redhat.com> 1481169689Skan 1482169689Skan * decl2.c (cxx_callgraph_analyze_expr): New, from corpse of 1483169689Skan mark_member_pointers. 1484169689Skan (lower_function): Remove. 1485169689Skan * cp-tree.h: Update to match. 1486169689Skan * cp-lang.c (LANG_HOOKS_CALLGRAPH_ANALYZE_EXPR): New. 1487169689Skan (LANG_HOOKS_CALLGRAPH_LOWER_FUNCTION): Remove. 1488169689Skan 1489169689Skan2003-09-09 Richard Henderson <rth@redhat.com> 1490169689Skan 1491169689Skan * semantics.c (expand_or_defer_fn): Update call to 1492169689Skan cgraph_finalize_function. 1493169689Skan 1494169689Skan * semantics.c (expand_or_defer_fn): Use cgraph_finalize_function 1495169689Skan always. 1496169689Skan 1497169689Skan * decl2.c (finish_file): Avoid out-of-bounds array reference 1498169689Skan during memmove. 1499169689Skan 1500169689Skan2003-09-09 Richard Henderson <rth@redhat.com> 1501169689Skan 1502169689Skan * decl2.c (mark_member_pointers): Rename from 1503169689Skan mark_member_pointers_and_eh_handlers and don't check eh handlers. 1504169689Skan 1505169689Skan2003-09-09 Christian Ehrhardt <ehrhardt@mathematik.uni-ulm.de> 1506169689Skan 1507169689Skan PR bootstrap/12168 1508169689Skan * method.c (use_thunk): Clear DECL_RTL of copied nodes. 1509169689Skan 1510169689Skan2003-09-08 Mark Mitchell <mark@codesourcery.com> 1511169689Skan 1512169689Skan * cp-lang.c (LANG_HOOKS_REGISTER_BUILTIN_TYPE): Define to 1513169689Skan c_register_builtin_type. 1514169689Skan 1515169689Skan PR c++/11786 1516169689Skan * decl2.c (add_function): Do not complain about seeing the same 1517169689Skan non-function twice. 1518169689Skan * semantics.c (perform_koenig_lookup): Improve documentation. 1519169689Skan 1520169689Skan PR c++/5296 1521169689Skan * pt.c (try_one_overload): Add addr_p parameter. 1522169689Skan (resolve_overloaded_unification): Pass it. 1523169689Skan 1524169689Skan2003-09-08 Richard Henderson <rth@redhat.com> 1525169689Skan 1526169689Skan * optimize.c (maybe_clone_body): Inc/dec function_depth. 1527169689Skan 1528169689Skan2003-09-08 Richard Henderson <rth@redhat.com> 1529169689Skan 1530169689Skan * decl.c (finish_function): Clear current_function_decl. 1531169689Skan * decl2.c (mark_used): Don't push/pop gc context. 1532169689Skan * optimize.c (optimize_function): Likewise. 1533169689Skan * tree.c (cp_cannot_inline_tree_fn): Likewise. 1534169689Skan * pt.c (instantiate_decl): Inc/dec function_depth instead. 1535169689Skan * semantics.c (expand_body): Update for tree_rest_of_compilation 1536169689Skan nested argument. 1537169689Skan 1538169689Skan2003-09-07 Gabriel Dos Reis <gcc@integrable-solutions.net> 1539169689Skan 1540169689Skan PR c++/11762 1541169689Skan * error.c (dump_decl): Handle namespace-alias-definition. 1542169689Skan * decl.c (warn_extern_redeclared_static): There is no point in 1543169689Skan checking changes in storage class specifier for a namespace 1544169689Skan declaration. 1545169689Skan (duplicate_decls): Tidy diagnostic message. 1546169689Skan * cxx-pretty-print.c (pp_cxx_left_brace): New macro. 1547169689Skan (pp_cxx_right_brace): Likewise. 1548169689Skan (pp_cxx_original_namespace_definition): New function. 1549169689Skan (pp_cxx_namespace_alias_definition): Likewise. 1550169689Skan (pp_cxx_declaration): Use them. Handle NAMESPACE_DECLs. 1551169689Skan 1552169689Skan2003-09-07 Jan Hubicka <jh@suse.cz> 1553169689Skan 1554169689Skan * decl2.c (maybe_emit_vtables, write_out_vars, finish_file): 1555169689Skan Avoid re-emitting variables in unit-at-a-time mode. 1556169689Skan 1557169689Skan2003-09-06 Mark Mitchell <mark@codesourcery.com> 1558169689Skan 1559169689Skan PR c++/11867 1560169689Skan * call.c (standard_conversion): Improve comments. 1561169689Skan (perform_direct_initialization): Make sure we return an expression 1562169689Skan of the correct type. 1563169689Skan * typeck.c (build_static_cast): Check for ambiguity and 1564169689Skan accessibility when performing conversions. 1565169689Skan 1566169689Skan2003-09-06 Gabriel Dos Reis <gdr@integrable-solutions.net> 1567169689Skan 1568169689Skan * cp-tree.h (add_binding): Remove declaration. 1569169689Skan * name-lookup.h (supplement_binding): Declare. 1570169689Skan * decl.c (add_binding): Move to name-lookup.c. 1571169689Skan (push_local_binding): Adjust. 1572169689Skan (push_class_binding): Likewise. 1573169689Skan (set_identifier_type_value_with_scope): Likewise. 1574169689Skan * name-lookup.c (supplement_binding): Rename from add_binding. 1575169689Skan Return a bool. Improve documentation. 1576169689Skan (set_namespace_binding): Adjust. 1577169689Skan * Make-lang.in (cp/name-lookup.o): Depend on toplev.h 1578169689Skan 1579169689Skan2003-09-06 Nathan Sidwell <nathan@codesourcery.com> 1580169689Skan 1581169689Skan PR c++/11794 1582169689Skan * class.c (pushclass): Push dependent using decls for nested 1583169689Skan classes of templates too. 1584169689Skan 1585169689Skan2003-09-06 Roger Sayle <roger@eyesopen.com> 1586169689Skan 1587169689Skan PR c++/11409 1588169689Skan * class.c (resolve_address_of_overloaded_function): When building 1589169689Skan list of matching non-template function decls, ignore anticipated 1590169689Skan declarations of undeclared or shadowed GCC builtins. 1591169689Skan 1592169689Skan2003-09-06 Steven Bosscher <steven@gcc.gnu.org> 1593169689Skan 1594169689Skan PR c++/11595 1595169689Skan * decl.c (define_label): Remove unreachable timevar pop. 1596169689Skan Always return the decl, even if the definition is invalid. 1597169689Skan 1598169689Skan2003-09-06 Nathan Sidwell <nathan@codesourcery.com> 1599169689Skan 1600169689Skan PR c++/12167 1601169689Skan * parser.c (cp_parser_late_parsing_default_args): Push & pop the 1602169689Skan unparsed functions queue. 1603169689Skan 1604169689Skan2003-09-05 Mark Mitchell <mark@codesourcery.com> 1605169689Skan 1606169689Skan PR c++/12163 1607169689Skan * call.c (perform_direct_initialization): Correct logic for 1608169689Skan direct-initialization of a class type. 1609169689Skan 1610169689Skan PR c++/12146 1611169689Skan * pt.c (lookup_template_function): Robustify. 1612169689Skan 1613169689Skan2003-09-05 Nathan Sidwell <nathan@codesourcery.com> 1614169689Skan 1615169689Skan PR c++/11922 1616169689Skan * pt.c (tsubst_qualified_id): Make sure we get a non-type. 1617169689Skan (tsubst_expr, tsubst_copy_and_build): Pass false, not zero, as 1618169689Skan is_type_p to lookup_qualified_name. 1619169689Skan 1620169689Skan * semantics.c (finish_call_expr): Refactor some code. 1621169689Skan 1622169689Skan PR c++/12037 1623169689Skan * cp-tree.h (COMPOUND_EXPR_OVERLOADED): New. 1624169689Skan (build_min_non_dep): Declare. 1625169689Skan * tree.c (build_min): Propagate TREE_SIDE_EFFECTS. 1626169689Skan (build_min_non_dep): New. 1627169689Skan * cvt.c (convert_to_void): Don't explicitly copy 1628169689Skan TREE_SIDE_EFFECTS, TREE_NO_UNUSED_WARNING. 1629169689Skan * call.c (build_new_method_call): Use build_min_non_dep. 1630169689Skan * decl2.c (grok_array_decl): Likewise. 1631169689Skan (build_offset_ref_call_from_tree): Likewise. 1632169689Skan * typeck.c (finish_class_member_access_expr, 1633169689Skan build_x_indirect_ref, build_x_binary_op, build_x_unary_op, 1634169689Skan build_x_conditional_expr, build_x_compound_expr): Likewise. 1635169689Skan (build_static_cast, build_reinterpret_cast, 1636169689Skan build_const_cast): Propagate TREE_SIDE_EFFECTS inside a template. 1637169689Skan * typeck2.c (build_x_arrow): Use build_min_non_dep. 1638169689Skan (build_functional_cast): Propagate TREE_SIDE_EFFECTS inside a 1639169689Skan template. 1640169689Skan * rtti.c (build_dynamic_cast_1): Set DECL_IS_PURE. 1641169689Skan (build_dynamic_cast): Set TREE_SIDE_EFFECTS. 1642169689Skan * pt.c (build_non_dependent_expr): Check COMPOUND_EXPR_OVERLOADED. 1643169689Skan 1644169689Skan2003-09-04 Richard Henderson <rth@redhat.com> 1645169689Skan 1646169689Skan * decl2.c (mark_member_pointers_and_eh_handlers): Update for 1647169689Skan change in cgraph_mark_needed_node arguments. 1648169689Skan 1649169689Skan2003-09-02 Geoffrey Keating <geoffk@apple.com> 1650169689Skan 1651169689Skan PR 12161 1652169689Skan * decl2.c (mark_used): Use ggc_push_context/ggc_pop_context. 1653169689Skan * tree.c (cp_cannot_inline_tree_fn): Likewise. 1654169689Skan 1655169689Skan2003-09-04 Nathan Sidwell <nathan@codesourcery.com> 1656169689Skan 1657169689Skan * cp-tree.h (finish_sizeof, finish_alignof): Remove. 1658169689Skan (expr_sizeof): Replace with ... 1659169689Skan (cxx_sizeof_or_alignof_expr): ... here. 1660169689Skan (cxx_sizeof_or_alignof_type): Make complain parameter a bool. 1661169689Skan * parser.c (cp_parser_unary_expression): Commonize alignof and 1662169689Skan sizeof handling. 1663169689Skan * pt.c (tsubst_copy_and_build): Adjust alignof and sizeof 1664169689Skan substitution. 1665169689Skan * semantics.c (finish_sizeof, finish_alignof): Remove. 1666169689Skan * typeck.c (cxx_sizeof_or_alignof_type): Complain parameter 1667169689Skan becomes bool. Set TREE_READONLY. 1668169689Skan (expr_sizeof): Replace with ... 1669169689Skan (cxx_sizeof_or_alignof_expr): ... here. Clear TREE_SIDE_EFFECTS. 1670169689Skan 1671169689Skan2003-09-04 Mark Mitchell <mark@codesourcery.com> 1672169689Skan 1673169689Skan Remove cast-as-lvalue extension. 1674169689Skan * call.c (build_conditional_expr): Correct formatting. 1675169689Skan (convert_like_real): Use lvalue_p, not non_cast_lvalue_p. 1676169689Skan (initialize_real): Use real_lvalue_p, not real_non_cast_lvalue_p. 1677169689Skan * cp-tree.h (non_cast_lvalue_p): Remove. 1678169689Skan (real_non_cast_lvalue_p): Remove. 1679169689Skan (non_cast_lvalue_or_else): Remove. 1680169689Skan * tree.c (lvalue_p_1): Remove allow_cast_as_lvalue parameter. 1681169689Skan (real_lvalue_p): Adjust call to lvalue_p_1. 1682169689Skan (non_cast_lvalue_p): Remove. 1683169689Skan (non_cast_lvalue_or_else): Remove. 1684169689Skan (lvalue_p): Adjust call to lvalue_p_1. 1685169689Skan (lvalue_or_else): Simplify. 1686169689Skan * typeck.c (build_unary_op): Use lvalue_or_else, not 1687169689Skan non_cast_lvalue_or_else. 1688169689Skan (build_static_cast): Use real_lvalue_p, not real_non_cast_lvalue_p. 1689169689Skan 1690169689Skan2003-09-03 DJ Delorie <dj@redhat.com> 1691169689Skan 1692169689Skan * decl.c (finish_function): Pass fndecl to aggregate_value_p. 1693169689Skan 1694169689Skan2003-09-03 Mark Mitchell <mark@codesourcery.com> 1695169689Skan 1696169689Skan PR c++/12053 1697169689Skan * class.c (include_empty_classes): Correct logic for ABI version 1. 1698169689Skan 1699169689Skan2003-09-03 Richard Henderson <rth@redhat.com> 1700169689Skan 1701169689Skan * optimize.c (optimize_function): Push/pop ggc context around 1702169689Skan the call to optimize_inline_calls. 1703169689Skan 1704169689Skan2003-09-02 Scott Brumbaugh <scottb.lists@verizon.net> 1705169689Skan 1706169689Skan PR c++/11553 1707169689Skan * parser.c (cp_parser_decl_specifier_seq): Add check for a 1708169689Skan duplicate friend decl-specifier. 1709169689Skan 1710169689Skan2003-09-02 Mark Mitchell <mark@codesourcery.com> 1711169689Skan 1712169689Skan PR c++/11847 1713169689Skan * pt.c (convert_nontype_argument): Correct representation of 1714169689Skan REFERENCE_TYPE expressions. 1715169689Skan 1716169689Skan PR c++/11808 1717169689Skan * cp-tree.h (KOENIG_LOOKUP_P): New macro. 1718169689Skan (finish_call_expr): Change prototype. 1719169689Skan * parser.c (cp_parser_postfix_expression): Adjust call to 1720169689Skan finish_call_expr. 1721169689Skan * pt.c (tsubst_copy_and_build): Use KOENIG_LOOKUP_P. 1722169689Skan * semantics.c (finish_call_expr): Add koenig_p parameter. 1723169689Skan 1724169689Skan2003-09-01 Mark Mitchell <mark@codesourcery.com> 1725169689Skan 1726169689Skan PR c++/12114 1727169689Skan * cp-tree.h (initialize_reference): Change prototype. 1728169689Skan * call.c (initialize_reference): Add cleanup parameter. 1729169689Skan * decl.c (grok_reference_init): Likewise. 1730169689Skan (check_initializer): Likewise. 1731169689Skan (cp_finish_decl): Insert a CLEANUP_STMT if necessary. 1732169689Skan (duplicate_decls): When replacing an anticipated builtin, do not 1733169689Skan honor TREE_NOTHROW. 1734169689Skan * typeck.c (convert_for_initialization): Correct call to 1735169689Skan initialize_reference. 1736169689Skan 1737169689Skan PR c++/11972 1738169689Skan * pt.c (dependent_type_p_r): Pass only the innermost template 1739169689Skan arguments to any_dependent_template_arguments_p. 1740169689Skan 1741169689Skan2003-09-01 Josef Zlomek <zlomekj@suse.cz> 1742169689Skan 1743169689Skan * error.c (dump_expr): Kill BIT_ANDTC_EXPR. 1744169689Skan * lex.c (init_operators): Kill BIT_ANDTC_EXPR. 1745169689Skan * pt.c (tsubst_copy): Kill BIT_ANDTC_EXPR. 1746169689Skan * typeck.c (build_binary_op): Kill BIT_ANDTC_EXPR. 1747169689Skan (tsubst_copy_and_build): Kill BIT_ANDTC_EXPR. 1748169689Skan 1749169689Skan2003-08-29 Mark Mitchell <mark@codesourcery.com> 1750169689Skan 1751169689Skan PR c++/12093 1752169689Skan * pt.c (build_non_dependent_expr): Do not build a 1753169689Skan NON_DEPENDENT_EXPR for a STRING_CST. 1754169689Skan 1755169689Skan PR c++/11928 1756169689Skan * search.c (add_conversions): Avoid adding two conversion 1757169689Skan operators for the same type. 1758169689Skan 1759169689Skan2003-08-29 Mark Mitchell <mark@codesourcery.com> 1760169689Skan 1761169689Skan PR c++/6196 1762169689Skan * pt.c (tsubst_copy_and_build): Correct handling of 1763169689Skan address-of-label extension. 1764169689Skan * semantics.c (finish_goto_stmt): The address of a label must go 1765169689Skan through the lvalue-to-rvalue conversion. 1766169689Skan 1767169689Skan2003-08-29 Richard Henderson <rth@redhat.com> 1768169689Skan Jason Merrill <jason@redhat.com> 1769169689Skan 1770169689Skan * cp-lang.c (LANG_HOOKS_RTL_EXPAND_START): New. 1771169689Skan (LANG_HOOKS_RTL_EXPAND_STMT): New. 1772169689Skan * cp-tree.h (cxx_expand_function_start): Declare. 1773169689Skan * decl.c (start_function): Use allocate_struct_function. 1774169689Skan Move stmts_are_full_exprs_p assertion from expand_body. 1775169689Skan Do not free_after_parsing or free_after_compilation. 1776169689Skan (cxx_push_function_context): Move code to set struct function 1777169689Skan data from genrtl_start_function. 1778169689Skan * optimize.c (optimize_function): Don't inc/dec function_depth. 1779169689Skan * semantics.c (expand_body): Use tree_rest_of_compilation. 1780169689Skan (cxx_expand_function_start): Rename from genrtl_start_function, 1781169689Skan omit bits done by tree_rest_of_compilation. 1782169689Skan (genrtl_finish_function): Remove. 1783169689Skan (clear_decl_rtl): Move to ../tree-optimize.c. 1784169689Skan 1785169689Skan2003-08-29 Gabriel Dos Reis <gdr@integrable-solutions.net> 1786169689Skan 1787169689Skan PR c++/11811 1788169689Skan * cxx-pretty-print.c (pp_cxx_canonical_template_parameter): New 1789169689Skan function. 1790169689Skan * cxx-pretty-print.h: Declare. 1791169689Skan * error.c (dump_template_parameter): Use it. 1792169689Skan (dump_type): Likewise. 1793169689Skan 1794169689Skan2003-08-28 Mark Mitchell <mark@codesourcery.com> 1795169689Skan 1796169689Skan * init.c (decl_constant_value): Deal with COND_EXPR specially. 1797169689Skan * call.c (build_conditional_expr): Revert previous patch. 1798169689Skan 1799169689Skan PR optimization/5079 1800169689Skan * call.c (build_conditional_expr): Use decl_constant_value to 1801169689Skan simplify the arguments. 1802169689Skan 1803169689Skan2003-08-26 Dan Nicolaescu <dann@ics.uci.edu> 1804169689Skan 1805169689Skan * parser.c (struct cp_token): Use enum bitfields. 1806169689Skan (CP_TOKEN_BLOCK_NUM_TOKENS): Make sure cp_token_block fits in a 1807169689Skan 512B allocation unit. 1808169689Skan (cp_parser_token_tree_map_node): Use enum bitfields. 1809169689Skan 1810169689Skan2003-08-26 Nathan Sidwell <nathan@codesourcery.com> 1811169689Skan 1812169689Skan PR c++/11871 1813169689Skan * decl.c (push_class_level_binding): Correct old_decl value from 1814169689Skan my 2003-07-29 reorganization. 1815169689Skan 1816169689Skan * call.c (build_call): Don't set TREE_SIDE_EFFECTS here. 1817169689Skan (build_new_method_call): Add goto finish. 1818169689Skan * semantics.c (simplify_aggr_init_exprs_r): Don't set 1819169689Skan TREE_SIDE_EFFECTS on a call. 1820169689Skan 1821169689Skan2003-08-25 Richard Henderson <rth@redhat.com> 1822169689Skan 1823169689Skan * cxx-pretty-print.c (pp_cxx_class_name): Remove unused function. 1824169689Skan 1825169689Skan2003-08-25 Gabriel Dos Reis <gdr@integrable-solutions.net> 1826169689Skan 1827169689Skan * cxx-pretty-print.h (pp_cxx_flag_default_argument): New flag. 1828169689Skan (cxx_pretty_printer): Adjust base type. 1829169689Skan (pp_cxx_function_specifier): Declare. 1830169689Skan * cxx-pretty-print.c (pp_cxx_whitespace): New macro. 1831169689Skan (pp_cxx_left_paren): Likewise. 1832169689Skan (pp_cxx_right_paren): Likewise. 1833169689Skan (pp_cxx_dot): Likewise. 1834169689Skan (pp_cxx_arrow): Likewise. 1835169689Skan (pp_cxx_semicolon): Likewise. 1836169689Skan (pp_cxx_identifier): Likewise. 1837169689Skan (pp_cxx_cv_qualifier_seq): Likewise. 1838169689Skan (pp_cxx_storage_class_specifier): Likewise. 1839169689Skan (pp_cxx_expression_list): Likewise. 1840169689Skan (pp_cxx_space_for_pointer_operator): Likewise. 1841169689Skan (pp_cxx_init_declarator): Likewise. 1842169689Skan (pp_cxx_call_argument_list): Likewise. 1843169689Skan (pp_cxx_nonconsecutive_character): Tidy. 1844169689Skan (pp_cxx_conversion_function_id): New function. 1845169689Skan (pp_cxx_template_id): Likewise. 1846169689Skan (pp_cxx_template_keyword_if_needed): Likewise. 1847169689Skan (pp_cxx_nested_name_specifier): Likewise. 1848169689Skan (pp_cxx_unqualified_id): Tidy 1849169689Skan (pp_cxx_qualified_id): Handle more nodes. 1850169689Skan (pp_cxx_primary_expression): Tidy. 1851169689Skan (pp_cxx_postfix_expression): Likewise. 1852169689Skan (pp_cxx_new_expression): Tidy. 1853169689Skan (pp_cxx_delete_expression): Likewise. 1854169689Skan (pp_cxx_cast_expression): New function. 1855169689Skan (pp_cxx_pm_expression): Tidy. 1856169689Skan (pp_cxx_conditional_expression): Likewise. 1857169689Skan (pp_cxx_assignment_operator): New function. 1858169689Skan (pp_cxx_assignment_expression): Tidy. 1859169689Skan (pp_cxx_expression): New function. 1860169689Skan (pp_cxx_function_specifier): Likewise. 1861169689Skan (pp_cxx_decl_specifier_seq): Likewise. 1862169689Skan (pp_cxx_simple_type_specifier): Tidy. 1863169689Skan (pp_cxx_type_specifier_seq): Likewise. 1864169689Skan (pp_cxx_ptr_operator): New function. 1865169689Skan (pp_cxx_implicit_parameter_type): Likewise. 1866169689Skan (pp_cxx_parameter_declaration): Tidy. 1867169689Skan (pp_cxx_parameter_declaration_clause): New function. 1868169689Skan (pp_cxx_exception_specification): Likewise. 1869169689Skan (pp_cxx_direct_declarator): Tidy. 1870169689Skan (pp_cxx_declarator): Likewise. 1871169689Skan (pp_cxx_ctor_initializer): New function. 1872169689Skan (pp_cxx_function_definition): Likewise. 1873169689Skan (pp_cxx_abstract_declarator): Tidy. 1874169689Skan (pp_cxx_direct_abstract_declarator): Likewise. 1875169689Skan (pp_cxx_type_id): Likewise. 1876169689Skan (pp_cxx_exception_declaration): New function. 1877169689Skan (pp_cxx_statement): Likewise. 1878169689Skan (pp_cxx_simple_declaration): Likewise. 1879169689Skan (pp_cxx_template_parameter_list): Likewise. 1880169689Skan (pp_cxx_template_parameter): Likewise. 1881169689Skan (pp_cxx_template_declaration): Likewise. 1882169689Skan (pp_cxx_explicit_specialization): Likewise. 1883169689Skan (pp_cxx_explicit_instantiation): Likewise. 1884169689Skan (pp_cxx_declaration): Tidy. 1885169689Skan (pp_cxx_pretty_printer_init): Initialize more fields. 1886169689Skan 1887169689Skan2003-08-25 Mark Mitchell <mark@codesourcery.com> 1888169689Skan 1889169689Skan PR c++/8795 1890169689Skan * cp-tree.h (build_cplus_method_type): Remove. 1891169689Skan * call.c (standard_conversion): Use build_method_type_directly 1892169689Skan instead of build_cplus_method_type. 1893169689Skan * class.c (build_clone): Likewise. 1894169689Skan (adjust_clone_args): Likewise. 1895169689Skan * decl.c (build_ptrmem_type): Likewise. 1896169689Skan (grokdeclarator): Likewise. 1897169689Skan (check_function_type): Likewise. 1898169689Skan * decl2.c (grok_method_quals): Likewise. 1899169689Skan (maybe_retrofit_in_chrg): Likewise. 1900169689Skan * pt.c (copy_default_args_to_explicit_spec): Likewise. 1901169689Skan (tsubst_function_type): Likewise. 1902169689Skan (tsubst): Likewise. 1903169689Skan * tree.c (build_cplus_method_type): Remove. 1904169689Skan * typeck.c (merge_types): Use build_method_type_directly. 1905169689Skan 1906169689Skan2003-08-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1907169689Skan 1908169689Skan PR c++/3765 1909169689Skan * search.c (dfs_access_in_type): Fix typo in comment. 1910169689Skan (dfs_accessible_queue_p): Likewise. 1911169689Skan (dfs_accessible_p): Only terminate when a friend is found. 1912169689Skan (accessible_p): Return immediately if access_in_type allows 1913169689Skan access. 1914169689Skan 1915169689Skan2003-08-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 1916169689Skan 1917169689Skan PR c++/641, c++/11876 1918169689Skan * friend.c (add_friend): Add complain parameter. 1919169689Skan (make_friend_class): Likewise. 1920169689Skan (do_friend): Adjust add_friend call. 1921169689Skan * decl.c (grokdeclarator): Adjust make_friend_class call. 1922169689Skan * parser.c (cp_parser_member_declaration): Likewise. 1923169689Skan (cp_parser_template_declaration_after_export): Likewise. 1924169689Skan * pt.c (instantiate_class_template): Adjust make_friend_class 1925169689Skan and add_friend call. 1926169689Skan * cp-tree.h (make_friend_class): Adjust declaration. 1927169689Skan (add_friend): Likewise. 1928169689Skan 1929169689Skan2003-08-21 Jason Merrill <jason@redhat.com> 1930169689Skan 1931169689Skan PR c++/11283 1932169689Skan * call.c (build_conditional_expr): Ignore cv-qual differences for 1933169689Skan non-class types. 1934169689Skan 1935169689Skan2003-08-21 Mark Mitchell <mark@codesourcery.com> 1936169689Skan 1937169689Skan PR c++/11551 1938169689Skan * parser.c (cp_parser_id_expression): Add declarator_p parameter. 1939169689Skan (cp_parser_primary_expression): Adjust call to 1940169689Skan cp_parser_id_expression. 1941169689Skan (cp_parser_unqualified_id): Complain about the use of 1942169689Skan typedef-names in a destructor declarator. 1943169689Skan (cp_parser_postfix_expression): Adjust call to 1944169689Skan cp_parser_id_expression. 1945169689Skan (cp_parser_type_parameter): Likewise. 1946169689Skan (cp_parser_template_argument): Likewise. 1947169689Skan (cp_parser_declarator_id): Likewise. 1948169689Skan 1949169689Skan PR c++/11919 1950169689Skan * call.c (standard_conversion): Use same_type_p, not pointer 1951169689Skan equality, to compare types. 1952169689Skan 1953169689Skan PR c++/10762 1954169689Skan * parser.c (cp_parser_using_declaration): Check for invalid uses 1955169689Skan of template-ids here... 1956169689Skan * decl2.c (do_class_using_decl): ... rather than here. 1957169689Skan 1958169689Skan2003-08-20 Mark Mitchell <mark@codesourcery.com> 1959169689Skan 1960169689Skan PR c++/11834 1961169689Skan * pt.c (more_specialized): Bump processing_template_decl. 1962169689Skan 1963169689Skan2003-08-21 Jason Merrill <jason@redhat.com> 1964169689Skan 1965169689Skan PR c++/11614 1966169689Skan * decl.c (grokdeclarator): Recognize a flexible array based on the 1967169689Skan type, not the form of the declarator. 1968169689Skan 1969169689Skan2003-08-20 Jason Merrill <jason@redhat.com> 1970169689Skan 1971169689Skan * semantics.c (simplify_aggr_init_expr): Split out from 1972169689Skan simplify_aggr_init_exprs_r. Convert slot address to match 1973169689Skan the return type. 1974169689Skan * cp-tree.h: Declare it. 1975169689Skan * tree.c (cp_copy_res_decl_for_inlining): Don't clobber the 1976169689Skan DECL_NAME of a user variable. 1977169689Skan 1978169689Skan2003-08-20 Nathan Sidwell <nathan@codesourcery.com> 1979169689Skan 1980169689Skan PR c++/11945 1981169689Skan * pt.c (build_non_dependent_expr): Look inside COND_EXPR and 1982169689Skan COMPOUND_EXPR. 1983169689Skan * semantics.c (finish_expr_stmt): Always convert to void. 1984169689Skan * typeck.c (build_x_compound_exp): Always convert to void. 1985169689Skan 1986169689Skan2003-08-19 Mark Mitchell <mark@codesourcery.com> 1987169689Skan 1988169689Skan PR c++/11684 1989169689Skan * cp-tree.h (grok_op_properties): Change prototype. 1990169689Skan * decl.c (grok_op_properties): Add complain parameter. 1991169689Skan (grokfndecl): Pass it. 1992169689Skan * pt.c (tsubst_decl): Adjust accordingly. 1993169689Skan 1994169689Skan PR c++/10926 1995169689Skan * decl.c (start_method): Return immediately if push_template_decl 1996169689Skan does not like the declaration. 1997169689Skan * pt.c (push_template_decl_real): Disallow member template 1998169689Skan destructors. 1999169689Skan 2000169689Skan PR c++/11036 2001169689Skan * cp-tree.h (add_binding): Add prototype. 2002169689Skan * class.c (add_method): Set TYPE_HAS_DESTRUCTOR if appropriate. 2003169689Skan (maybe_warn_about_overly_private_class): Use 2004169689Skan CLASSTYPE_DESTRUCTORS. 2005169689Skan (pushclass): Adjust call to set_identifier_type_value. 2006169689Skan * decl.c (add_binding): Give it external linkage. 2007169689Skan (push_local_binding): Adjust call to add_binding. 2008169689Skan (push_class_binding): Likewise. 2009169689Skan (set_identifier_type_value_with_scope): Change prototype. Use 2010169689Skan add_binding for global bindings. 2011169689Skan (set_identifier_type_value): Adjust accordingly. 2012169689Skan (pushtag): Likewise. 2013169689Skan (pushdecl): Use set_identifier_type_value, not 2014169689Skan set_identifier_type_value_with_scope. 2015169689Skan (pushdecl_namespace_level): Adjust calls to 2016169689Skan SET_IDENTIFIER_TYPE_VALUE to pass a DECL. 2017169689Skan (pushdecl_class_level): Likewise. 2018169689Skan (lookup_tag): Use select_decl. 2019169689Skan (select_decl): Improve comment. 2020169689Skan (record_builtin_type): Do not call pushdecl. 2021169689Skan (cxx_init_decl_processing): Do not call xref_tag for bad_alloc. 2022169689Skan (cp_finish_decl): Adjust call to set_identifier_type_value. 2023169689Skan (check_elaborated_type_specifier): Improve checks for invalid uses 2024169689Skan of typedefs. 2025169689Skan (xref_tag): Adjust call to check_elaborated_type_specifier. 2026169689Skan * decl2.c (grokclassfn): Do not set TYPE_HAS_DESTRUCTOR. 2027169689Skan * name-lookup.c (set_namespace_binding): Use add_binding. 2028169689Skan * parser.c (cp_parser_simple_type_specifier): Return a TYPE_DECL, 2029169689Skan rather than an IDENTIFIER_NODE, to represent built-in types, if 2030169689Skan requested by the caller. 2031169689Skan (cp_parser_postfix_expression): Adjust call. 2032169689Skan (cp_parser_type_specifier): Likewise. 2033169689Skan (cp_parser_elaborated_type_specifier): Adjust call to 2034169689Skan check_elaborated_type_specifier. 2035169689Skan * typeck2.c (build_functional_cast): Do not perform name lookups. 2036169689Skan 2037169689Skan PR c++/10717 2038169689Skan * decl.c (expand_static_init): Remove unnecessary code. 2039169689Skan 2040169689Skan2003-08-19 Andrew Pinski <pinskia@physics.uc.edu> 2041169689Skan 2042169689Skan PR c++/10538, PR c/5582 2043169689Skan * cp/cp-lang.c (LANG_HOOKS_DECL_UNINIT): Define. 2044169689Skan 2045169689Skan2003-08-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2046169689Skan 2047169689Skan PR c++/11174 2048169689Skan * init.c (build_offset_ref): Perform access checking for 2049169689Skan pointer to member correctly. 2050169689Skan 2051169689Skan2003-08-19 Gabriel Dos Reis <gdr@integrable-solutions.net> 2052169689Skan 2053169689Skan * cp-lang.c (LANG_HOOKS_INITIALIZE_DIAGNOSTICS): Fix spelling. 2054169689Skan 2055169689Skan2003-08-18 Nathan Sidwell <nathan@codesourcery.com> 2056169689Skan 2057169689Skan PR c++/11957 2058169689Skan * cp-tree.h (finish_stmt_expr): Add bool parameter. 2059169689Skan * init.c (finish_init_stmts): Pass true to finish_stmt_expr. Don't 2060169689Skan adjust the stmt_expr here. 2061169689Skan (build_vec_init): Use finish_stmt_expr_expr, convert result to 2062169689Skan array type. 2063169689Skan * parser.c (cp_parser_primar_expression): Adjust finish_stmt_expr 2064169689Skan call. 2065169689Skan * pt.c (tsubst_copy): Likewise. 2066169689Skan * semantics.c (finish_stmt_expr): Add parameter. 2067169689Skan 2068169689Skan * pt.c (instantiate_class_template): Push to class's scope before 2069169689Skan tsubsting base. 2070169689Skan 2071169689Skan2003-08-17 Jan Hubicka <jh@suse.cz> 2072169689Skan 2073169689Skan PR C++/11702 2074169689Skan * semantics.c (finish_id_expression): Mark all functions as used. 2075169689Skan 2076169689Skan2003-08-16 Nathan Sidwell <nathan@codesourcery.com> 2077169689Skan 2078169689Skan PR c++/11512 2079169689Skan * cvt.c (convert_to_void): Indicate which side of conditional has 2080169689Skan no effects, and rhs of comma operator. Test for no sideeffect 2081169689Skan expressions here and always build a convert expr. 2082169689Skan * init.c (expand_default_init): Convert the init to void. 2083169689Skan * typeck.c (build_x_compound_expr): Do not check for side effects 2084169689Skan here. 2085169689Skan (build_compound_expr): Do not convert lhs when building a 2086169689Skan template. 2087169689Skan 2088169689Skan2003-08-15 Nathan Sidwell <nathan@codesourcery.com> 2089169689Skan 2090169689Skan * cp-tree.def (NON_DEPENDENT_EXPR): Add operand. 2091169689Skan * decl2.c (build_offset_ref_call_from_tree): Use 2092169689Skan build_non_dependent_expr. 2093169689Skan * error.c (dump_expr) <NON_DEPENDENT_EXPR case>: Dump the operand. 2094169689Skan * pt.c (build_non_dependent_expr): Set operand. 2095169689Skan 2096169689Skan2003-08-14 Jan Hubicka <jh@suse.cz> 2097169689Skan 2098169689Skan * decl2.c (mark_member_pointers): Rename to... 2099169689Skan (mark_member_pointers_and_eh_tinfos): ... this one; deal with eh tinfos 2100169689Skan (lower_function): Update call. 2101169689Skan * except.c (eh_type_info): Break out from ... 2102169689Skan (build_eh_type): ... here; tinfo is already used. 2103169689Skan (finish_eh_spec_block): Mark tinfos as used. 2104169689Skan * semantics.c (finish_handler_params): Mark tinfo as used. 2105169689Skan * cp-tree.h (eh_type_info): Declare. 2106169689Skan 2107169689Skan2003-08-15 Nathan Sidwell <nathan@codesourcery.com> 2108169689Skan 2109169689Skan * pt.c (instantiate_class_template): Set location before 2110169689Skan substuting bases. 2111169689Skan 2112169689Skan * decl.c (make_typename_type): Use my_friendly_assert. 2113169689Skan * pt.c (tsubst_aggr_type): Rearrange context substitution. 2114169689Skan 2115169689Skan2003-08-14 Jan Hubicka <jh@suse.cz> 2116169689Skan 2117169689Skan * method.c (use_thunk): Expand body directly. 2118169689Skan 2119169689Skan2003-08-12 Mark Mitchell <mark@codesourcery.com> 2120169689Skan 2121169689Skan PR c++/11703 2122169689Skan * call.c (type_passed_as): Use TYPE_SIZE, not TYPE_PRECISION to 2123169689Skan determine whether or not to promote types. 2124169689Skan (convert_for_arg_passing): Likewise. 2125169689Skan * decl2.c (cp_build_parm_decl): Do not set DECL_ARG_TYPE in 2126169689Skan templates. 2127169689Skan * pt.c (tsubst_decl): Do not expect it to be set. 2128169689Skan 2129169689Skan PR c++/9512 2130169689Skan PR c++/10923 2131169689Skan * cp-tree.h (check_elaborated_type_specifier): Declare. 2132169689Skan (handle_class_head): Remove. 2133169689Skan (note_got_semicolon): Likewise. 2134169689Skan (note_list_got_semicolon): Likewise. 2135169689Skan (finish_class_definition): Likewise. 2136169689Skan * decl.c (check_elaborated_type_specifier): Make it public. 2137169689Skan Robustify. 2138169689Skan (handle_class_head): Remove. 2139169689Skan * parser.c (cp_parser_elaborated_type_specifier): Use 2140169689Skan check_elaborated_type_specifier. 2141169689Skan (cp_parser_class_specifier): Do not call finish_class_definition. 2142169689Skan (cp_parser_class_head): Or handle_class_head. Check for 2143169689Skan over-qualified names. 2144169689Skan * semantics.c (finish_class_definition): Remove. 2145169689Skan 2146169689Skan * parser.c (cp_parser_check_for_definition_in_return_type): New 2147169689Skan function. 2148169689Skan (cp_parser_simple_declaration): Adjust call to 2149169689Skan cp_parser_init_declarator. 2150169689Skan (cp_parser_decl_specifier_seq): Change type of 2151169689Skan declares_class_or_enum parameter. 2152169689Skan (cp_parser_explicit_instantiation): Adjust accordingly. 2153169689Skan (cp_parser_type_specifier): Change type of 2154169689Skan declares_class_or_enum parameter. 2155169689Skan (cp_parser_init_declarator): Add declares_class_or_enum 2156169689Skan parameter. 2157169689Skan (cp_parser_parameter_declaration): Adjust call to 2158169689Skan cp_parser_decl_specifier_seq. 2159169689Skan (cp_parser_function_definition): Likewise. 2160169689Skan (cp_parser_member_declaration): Likewise. 2161169689Skan (cp_parser_single_declaration): Likewise. 2162169689Skan 2163169689Skan * cp-tree.h (lang_type_class): Remove has_call_overloaded, 2164169689Skan has_array_ref_overloaded, has_arrow_overloaded, and got_semicolon. 2165169689Skan (TYPE_OVERLOADS_CALL_EXPR): Remove. 2166169689Skan (TYPE_OVERLOADS_ARRAY_REF): Likewise. 2167169689Skan (TYPE_OVERLOADS_ARROW): Likewise. 2168169689Skan (CLASSTYPE_GOT_SEMICOLON): Likewise. 2169169689Skan * class.c (check_bases): Do not set them. 2170169689Skan (finish_struct_1): Likewise. 2171169689Skan * decl.c (cp_finish_decl): Do not set CLASSTYPE_GOT_SEMICOLON. 2172169689Skan (build_ptrmemfunc_type): Likewise. 2173169689Skan (grok_op_properties): Do not set TYPE_OVERLOADS_*. 2174169689Skan (start_function): Do not check CLASSTYPE_GOT_SEMICOLON. 2175169689Skan * decl2.c (grokfield): Do not set CLASSTYPE_GOT_SEMICOLON. 2176169689Skan * lex.c (note_got_semicolon): Remove. 2177169689Skan (note_list_got_semicolon): Likewise. 2178169689Skan * parser.c (cp_parser_simple_declaration): Do not call 2179169689Skan note_list_got_semicolon. 2180169689Skan * pt.c (list_eq): Remove. 2181169689Skan (lookup_template_class): Do not set CLASSTYPE_GOT_SEMICOLON. 2182169689Skan (instantiate_class_template): Do not set TYPE_OVERLOADS*. 2183169689Skan (instantiate_class_template): Do not set CLASSTYPE_GOT_SEMICOLON. 2184169689Skan * ptree.c (cxx_print_type): Do not print them. 2185169689Skan * semantics.c (finish_member_class_template): Do not call 2186169689Skan note_list_got_semicolon. 2187169689Skan 2188169689Skan2003-08-11 Aldy Hernandez <aldyh@redhat.com> 2189169689Skan 2190169689Skan * call.c (standard_conversion): Opaque pointers interconvert. 2191169689Skan 2192169689Skan * testsuite/g++.dg/other/opaque-3.C: New. 2193169689Skan 2194169689Skan2003-08-11 Mark Mitchell <mark@codesourcery.com> 2195169689Skan 2196169689Skan * typeck.c (merge_types): Handle cv-qualified pointer-to-member 2197169689Skan types correctly. 2198169689Skan 2199169689Skan2003-08-10 Mark Mitchell <mark@codesourcery.com> 2200169689Skan 2201169689Skan PR c++/11789 2202169689Skan * cp-tree.h (get_vbase): Remove. 2203169689Skan (get_vbase_types): Remove. 2204169689Skan * init.c (expand_member_init): Correct logic for looking up base 2205169689Skan classes. 2206169689Skan 2207169689Skan2003-08-10 Gabriel Dos Reis <gdr@integrable-solutions.net> 2208169689Skan 2209169689Skan * error.c (dump_expr): Tidy. 2210169689Skan * cxx-pretty-print.c (pp_cxx_nonconsecutive_character): New. 2211169689Skan (pp_cxx_begin_template_argument_list): Likewise. 2212169689Skan (pp_cxx_end_template_argument_list): Likewise. 2213169689Skan (is_destructor_name): Likewise. 2214169689Skan (pp_cxx_unqualified_id): Likewise. 2215169689Skan (pp_cxx_qualified_id): Likewise. 2216169689Skan (pp_cxx_id_expression): Likewise. 2217169689Skan (pp_cxx_new_expression): Likewise. 2218169689Skan (pp_cxx_delete_expression): Likewise. 2219169689Skan (pp_cxx_pm_expression): Likewise. 2220169689Skan (pp_cxx_type_specifier): Rework. 2221169689Skan (pp_cxx_type_id): Likewise. 2222169689Skan (pp_cxx_primary_expression): Likewise. 2223169689Skan (pp_cxx_postfix_expression): Likewise. 2224169689Skan (pp_cxx_unary_expression): Likewise. 2225169689Skan (pp_cxx_multiplicative_expression): Likewise. 2226169689Skan (pp_cxx_conditional_expression): Likewise. 2227169689Skan (pp_cxx_assignment_expression): Likewise. 2228169689Skan (pp_cxx_pretty_printer_init): Tidy. 2229169689Skan 2230169689Skan2003-08-10 Nathan Sidwell <nathan@codesourcery.com> 2231169689Skan 2232169689Skan * cp-tree.h (TMPL_ARGS_HAVE_MULTIPLE_LEVELS): non-NULL 2233169689Skan NODE is always a TREE_VEC of nonzero size. 2234169689Skan (NUM_TMPL_ARGS): NODE is always a TREE_VEC. 2235169689Skan * decl2.c (arg_assoc): Template args will be a vec. 2236169689Skan * error.c (dump_decl) <TEMPLATE_ID_EXPR case>: Call 2237169689Skan dump_template_argument_list. 2238169689Skan (dump_template_parms): Args will be a vec. 2239169689Skan * parser.c (cp_parser_template_argument_list): Produce a 2240169689Skan vector, not a list. 2241169689Skan * pt.c (coerce_template_parms): Args are always vectors. 2242169689Skan (mangle_class_name_for_template): Likewise. 2243169689Skan (lookup_template_function): Likewise. 2244169689Skan (lookup_template_class): Likewise. 2245169689Skan (tsubst_template_args): Likewise. 2246169689Skan (tsubst_baselink): Use tsubst_template_args. 2247169689Skan (tsubst_qualified_id): Likewise. 2248169689Skan (tsubst_copy) <TEMPLATE_ID_EXPR case>: Likewise. 2249169689Skan (tsubst_copy_and_build) <TEMPLATE_ID_EXPR case>: Likewise. 2250169689Skan (any_dependent_template_args_p): Args are always vectors. 2251169689Skan * tree.c (cp_tree_equal): Add TEMPLATE_ID_EXPR case. 2252169689Skan 2253169689Skan PR c++/11670 2254169689Skan * call.c (convert_like_real): Add rvalue binding error message. 2255169689Skan * error.c (dump_expr) <NOP_EXPR case>: Detect when the no expr is 2256169689Skan really a cast. 2257169689Skan 2258169689Skan PR c++/10530 2259169689Skan * pt.c (dependent_type_p_r): A dependent template-id is a class 2260169689Skan type with dependent template arguments, or a bound template 2261169689Skan template parameter. 2262169689Skan (type_dependent_expression_p): A template function decl cannot 2263169689Skan have a dependent context. 2264169689Skan 2265169689Skan2003-08-07 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2266169689Skan 2267169689Skan PR c++/5767 2268169689Skan * parser.c (cp_parser_class_name): Return immediately when scope 2269169689Skan is error_mark_node. 2270169689Skan 2271169689Skan2003-08-07 Aldy Hernandez <aldyh@redhat.com> 2272169689Skan 2273169689Skan * cp/Make-lang.in (cp/call.o): Add dependency for target.h. 2274169689Skan 2275169689Skan * cp/call.c (standard_conversion): Support opaque types. 2276169689Skan Include target.h. 2277169689Skan (strip_top_quals): Use cp_build_qualified_type instead of 2278169689Skan TYPE_MAIN_VARIANT. 2279169689Skan 2280169689Skan * cp/typeck.c (convert_for_assignment): Support opaque types. 2281169689Skan 2282169689Skan * testsuite/g++.dg/other/opaque-1.C: New. 2283169689Skan 2284169689Skan * testsuite/g++.dg/other/opaque-2.C: New. 2285169689Skan 2286169689Skan2003-08-06 Aldy Hernandez <aldyh@redhat.com> 2287169689Skan 2288169689Skan * decl.c (grokparms): Use cp_build_qualified_type instead 2289169689Skan TYPE_MAIN_VARIANT. 2290169689Skan 2291169689Skan2003-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net> 2292169689Skan 2293169689Skan * cxx-pretty-print.h: New file. 2294169689Skan * cxx-pretty-print.c: Likewise. 2295169689Skan * error.c (scratch_pretty_printer): Change type. 2296169689Skan (init_error): Tidy. 2297169689Skan (dump_aggr_type): Likewise. 2298169689Skan (dump_global_iord): Likewise. 2299169689Skan (dump_expr): Likewise. 2300169689Skan (dump_char): Remove. 2301169689Skan * cp-lang.c (LANG_HOOKS_INITIALIZE_DIAGNOSTITCS): Define. 2302169689Skan (cxx_initialize_diagnostics): New function. 2303169689Skan * Make-lang.in (CXX_OBJS): Add cp/cxx-pretty-print.o 2304169689Skan (CXX_PRETTY_PRINT_H): New variable. 2305169689Skan (cp/cxx-pretty-print.o): New rule. 2306169689Skan (cp/cp-lang.o): Update dependence. 2307169689Skan (cp/error.o): Likewise. 2308169689Skan 2309169689Skan2003-08-05 Steven Bosscher <steven@gcc.gnu.org> 2310169689Skan 2311169689Skan * cp-tree.h (struct lang_decl): Don't include c_lang_decl. 2312169689Skan (DECL_DECLARED_INLINE_P): Remove. 2313169689Skan * decl2.c (import_export_decl): Only look at DECL_DECLARED_INLINE_P 2314169689Skan if decl is a FUNCTION_DECL. This never made sense, but now it is 2315169689Skan required to avoid a tree check failure. 2316169689Skan * decl.c (grokfndecl): Don't touch DID_INLINE_FUNC. 2317169689Skan * optimize.c (maybe_clone_body): Likewise. 2318169689Skan 2319169689Skan2003-08-04 Roger Sayle <roger@eyesopen.com> 2320169689Skan 2321169689Skan * decl.c (cxx_insert_default_attributes): Delete. 2322169689Skan * cp-tree.h (cxx_insert_default_attributes): Don't prototype. 2323169689Skan * cp-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Don't define. 2324169689Skan 2325169689Skan2003-08-03 Nathan Sidwell <nathan@codesourcery.com> 2326169689Skan 2327169689Skan PR c++/11704 2328169689Skan * pt.c (type_dependent_expression_p): Cope with COMPONENT_REF with 2329169689Skan unknown type. 2330169689Skan 2331169689Skan PR c++/11766 2332169689Skan * typeck.c (comp_ptr_ttypes_real): Don't loop on pointers to 2333169689Skan member functions. 2334169689Skan 2335169689Skan2003-08-02 Nathan Sidwell <nathan@codesourcery.com> 2336169689Skan 2337169689Skan PR c++/9447 2338169689Skan * cp-tree.def (USING_DECL): Document its type. 2339169689Skan * class.c (pushclass): If we're entering a template, push any 2340169689Skan dependent using decls it has. 2341169689Skan * decl2.c (do_class_using_decl): Refactor. Type is NULL iff it is 2342169689Skan a dependent scope. 2343169689Skan * pt.c (tsubst_decl) <USING_DECL case>: Set type. 2344169689Skan (tsubst): Remove USING_DECL checks. 2345169689Skan (type_dependent_expression_p): Remove USING_DECL case. 2346169689Skan * semantics.c (finish_member_declaration): A USING_DECL's type 2347169689Skan indicates whether it is dependent. 2348169689Skan 2349169689Skan2003-08-02 Nathan Sidwell <nathan@codesourcery.com> 2350169689Skan 2351169689Skan * cp-tree.h (pushclass): Remove unneeded parameter. 2352169689Skan * class.c (pushclass): Remove unneeded MODIFY parm. Adjust. 2353169689Skan (push_nested_class): Adjust pushclass call. 2354169689Skan * pt.c (instantiate_class_template): Likewise. 2355169689Skan * semantics.c (begin_class_definition): Likewise. 2356169689Skan 2357169689Skan2003-08-01 Nathanael Nerode <neroden@gcc.gnu.org> 2358169689Skan 2359169689Skan * typeck2.c (add_exception_specifier): Use 'bool' where appropriate. 2360169689Skan 2361169689Skan2003-08-01 Mark Mitchell <mark@codesourcery.com> 2362169689Skan 2363169689Skan PR c++/11697 2364169689Skan * decl.c (decls_match): Don't ignore the types of template 2365169689Skan classes. 2366169689Skan 2367169689Skan PR c++/11744 2368169689Skan * pt.c (tsubst_copy_and_build): Refine Koenig lookup logic. 2369169689Skan 2370169689Skan2003-08-01 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2371169689Skan 2372169689Skan PR c++/8442, c++/8806 2373169689Skan * decl.c (qualify_lookup): Accept TEMPLATE_DECL if types are 2374169689Skan preferred. 2375169689Skan (check_elaborated_type_specifier): Add allow_template_p 2376169689Skan parameter. Check tag mismatch and class template. 2377169689Skan (xref_tag): Add template_header_p parameter. Add assertion 2378169689Skan that name is an IDENTIFIER_NODE. Remove implicit typename 2379169689Skan warning. Simplify lookup process if globalize is true. 2380169689Skan (cxx_init_decl_processing): Adjust call to xref_tag. 2381169689Skan (xref_tag_from_type): Likewise. 2382169689Skan * decl2.c (handle_class_head): Likewise. 2383169689Skan * parser.c (cp_parser_elaborated_type_specifier, 2384169689Skan cp_parser_class_head): Likewise. 2385169689Skan * rtti.c (init_rtti_processing, build_dynamic_cast1, 2386169689Skan tinfo_base_init, emit_support_tinfos): Likewise. 2387169689Skan * class.c (is_base_of_enclosing_class): Remove. 2388169689Skan * pt.c (convert_template_argument): Don't accept RECORD_TYPE as 2389169689Skan template template argument. 2390169689Skan * cp-tree.h (xref_tag): Adjust declaration. 2391169689Skan (is_base_of_enclosing_class): Remove. 2392169689Skan * NEWS: Document template template argument change. 2393169689Skan 2394169689Skan2003-08-01 Nathan Sidwell <nathan@codesourcery.com> 2395169689Skan 2396169689Skan * parser.c (cp_parser_init_declarator, 2397169689Skan cp_paser_member_declaration): Reformat. 2398169689Skan * pt.c (lookup_template_class, type_unification_real, unify, 2399169689Skan type_dependent_expression_p): Reformat. 2400169689Skan 2401169689Skan PR c++/11295 2402169689Skan * cp-tree.h (tubst_flags_t): Add tf_stmt_expr_cmpd, 2403169689Skan tf_stmt_expr_body. 2404169689Skan (finish_stmt_expr_expr): Declare. 2405169689Skan * parser.c (cp_parser_primary_expression): Tell 2406169689Skan cp_parser_compount_statement that it is a statement expression. 2407169689Skan (cp_parser_statement, cp_parser_labeled_statement, 2408169689Skan cp_parser_compound_statement, cp_parser_statement_seq_opt): Add 2409169689Skan in_statement_expr_p parameter. 2410169689Skan (cp_parser_expression_statement): Likewise. Call 2411169689Skan finish_stmt_expr_expr for final expression of a statement 2412169689Skan expression. 2413169689Skan (cp_parser_for_init_statement, 2414169689Skan cp_parser_implicitly_scoped_statement, 2415169689Skan cp_parser_already_scoped_statement, cp_parser_function_definition, 2416169689Skan cp_parser_try_block, cp_parser_handled): Adjust. 2417169689Skan * pt.c (tsubst_copy) <STMT_EXPR case>: Pass tf_stmt_expr. 2418169689Skan (tsubst_expr): Process tf_stmt_expr and tf_stmt_exprs flags. 2419169689Skan (tsubst_expr) <EXPR_STMT case>: Check tf_stmt_exprs flag. 2420169689Skan * semantics.c (finish_expr_stmt): Do not deal with statement 2421169689Skan expressions. 2422169689Skan (begin_stmt_expr): Clear last_expr_type. 2423169689Skan (finish_stmt_expr_expr): New. 2424169689Skan (finish_stmt_expr): Process the value expression. 2425169689Skan 2426169689Skan * typeck.c (build_compound_expr): If RHS is a TARGET_EXPR, put the 2427169689Skan compound expr inside the target's initializer. 2428169689Skan 2429169689Skan PR c++/11525 2430169689Skan * parser.c (cp_parser_primary_expression): Do not set 2431169689Skan non-constant-p merely because it is a dependent scope. 2432169689Skan 2433169689Skan PR c++/9447 2434169689Skan * decl2.c (do_class_using_decl): Set type to NULL_TREE. 2435169689Skan * semantics.c (finish_expr_stmt): Do not convert to void in a 2436169689Skan template. 2437169689Skan 2438169689Skan2003-07-31 Nathan Sidwell <nathan@codesourcery.com> 2439169689Skan 2440169689Skan * pt.c (coerce_template_parms): Refactor. 2441169689Skan (fn_type_unification): Increment processing_template_decl when 2442169689Skan tsubsting an incomplete set of explicit args. 2443169689Skan 2444169689Skan PR c++/11347 2445169689Skan * pt.c (instantiate_class_template): Increment 2446169689Skan processing_template_decl around the tsubst of a template member 2447169689Skan class. 2448169689Skan (tsubst_qualified_id): Assert we do not have a dependent scope. 2449169689Skan 2450169689Skan * pt.c (coerce_template_template_parms, lookup_template_class, 2451169689Skan can_complete_type_without_circularity, instantiate_class_template, 2452169689Skan tsubst_decl, unify): Reformat. 2453169689Skan 2454169689Skan2003-07-31 Jan Hubicka <jh@suse.cz> 2455169689Skan 2456169689Skan * decl2.c (maybe_make_one_only): Use mark_referenced. 2457169689Skan * method.c (use_thunk): Likewsie. 2458169689Skan 2459169689Skan2003-07-30 Jan Hubicka <jh@suse.cz> 2460169689Skan 2461169689Skan * class.c (build_vtable_entry_ref): Kill. 2462169689Skan (build_vtbl_ref_1): Do not call build_vtable_entry_ref. 2463169689Skan (build_vfn_ref): Do not call build_vtable_entry_ref. 2464169689Skan * cp-lang.c (LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE): Kill. 2465169689Skan * cp-tree.h (prepare_assemble_variable): Kill. 2466169689Skan * cp-decl.c (prepare_assemble_variable): Kill. 2467169689Skan 2468169689Skan2003-07-29 Geoffrey Keating <geoffk@apple.com> 2469169689Skan 2470169689Skan * parser.c (cp_lexer_new_main): Use c_common_no_more_pch instead 2471169689Skan of setting valid_pch by hand. 2472169689Skan 2473169689Skan2003-07-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 2474169689Skan 2475169689Skan * decl.c (finish_enum): Initialize underlying_type. 2476169689Skan 2477169689Skan2003-07-29 Nathan Sidwell <nathan@codesourcery.com> 2478169689Skan 2479169689Skan PR c++/9447 2480169689Skan * decl.c (add_binding): Add bval local variable. 2481169689Skan (push_class_level_binding): Likewise. Allow a USING_DECL to be 2482169689Skan pushed. 2483169689Skan * decl2.c (do_class_using_decl): The type of a using decl is 2484169689Skan unknown. 2485169689Skan * parser.c (cp_parser_postfix_expression): Refactor unqualified-id 2486169689Skan function call lookup code. 2487169689Skan * pt.c (tsubst): A USING_DECL will have unknown type. 2488169689Skan (tsubst_copy_and_build): Allow a using decl. 2489169689Skan (type_dependent_expression_p): A USING_DECL will make it 2490169689Skan dependent. 2491169689Skan * semantics.c (finish_member_declaration): Push a dependent using 2492169689Skan declaration. 2493169689Skan 2494169689Skan2003-07-28 Mark Mitchell <mark@codesourcery.com> 2495169689Skan 2496169689Skan PR c++/11530 2497169689Skan * parser.c (cp_parser_postfix_expression): Do not call mark_used. 2498169689Skan * semantics.c (finish_id_expression): Call mark_used for all 2499169689Skan declarations. 2500169689Skan 2501169689Skan2003-07-28 Mark Mitchell <mark@codesourcery.com> 2502169689Skan 2503169689Skan PR c++/11667 2504169689Skan * call.c (standard_conversion): Allow all integral->enumeral 2505169689Skan conversions, after marking them as bad. 2506169689Skan * decl.c (finish_enum): Make sure that all enumerators are 2507169689Skan properly converted to the underlying type. 2508169689Skan (build_enumerator): Set DECL_CONTEXT for namespace-scope 2509169689Skan enumeration types. 2510169689Skan * pt.c (tsubst_copy): Adjust handling of CONST_DECLs accordingly. 2511169689Skan (tsubst_enum): Tidy. 2512169689Skan 2513169689Skan * Make-lang.in (typeck.o): Depend on convert.h. 2514169689Skan (class.o): Likewise. 2515169689Skan (rtti.o): Likewise. 2516169689Skan * call.c: Include convert.h. 2517169689Skan (convert_arg_to_ellipsis): Use convert_to_real. 2518169689Skan * class.c: Include convert.h. 2519169689Skan (build_base_path): Use convert_to_integer. 2520169689Skan * rtti.c: Include convert.h. 2521169689Skan (build_headof): Use convert_to_integer. 2522169689Skan * typeck.c: Include convert.h. 2523169689Skan (decay_conversion): Use convert_to_integer. 2524169689Skan (build_unary_op): Use build_nop. 2525169689Skan (get_delta_difference): Use convert_to_integer. 2526169689Skan (build_ptrmemfunc): Avoid unnecessary conversions. 2527169689Skan 2528169689Skan2003-07-28 Jan Hubicka <jh@suse.cz> 2529169689Skan 2530169689Skan * decl2.c (mark_member_pointers): Verify that member pointer points to 2531169689Skan the function. 2532169689Skan 2533169689Skan2003-07-28 Nathan Sidwell <nathan@codesourcery.com> 2534169689Skan 2535169689Skan * cp-tree.h (begin_compound_stmt): No scope arg is a bool. 2536169689Skan (finish_compound_stmt): Remove no scope arg. 2537169689Skan * decl.c (register_dtor_fn): Adjust begin_compound_stmt and 2538169689Skan end_compound_stmt calls. 2539169689Skan (expand_static_init, begin_destructor_body, begin_function_body, 2540169689Skan finish_function_body): Likewise. 2541169689Skan * decl2.c (start_objects, finish_objects, 2542169689Skan start_static_storage_duration_function, 2543169689Skan finish_static_storage_duration_function): Likewise. 2544169689Skan * init.c (begin_init_stmts, finish_init_stmts, 2545169689Skan construct_virtual_base, build_vec_init): Likewise. 2546169689Skan * method.c (do_build_assign_ref, synthesize_method): Likewise. 2547169689Skan * parser.c (cp_parser_compound_statement, 2548169689Skan cp_parser_implicitly_scoped_statement, 2549169689Skan cp_parser_already_scoped_statement): Likewise. 2550169689Skan * pt.c (tsubst_expr): Likewise. 2551169689Skan * semantics.c (begin_compound_stmt): No scope arg is a bool. 2552169689Skan (finish_compound_stmt): Remove no scope arg. 2553169689Skan 2554169689Skan * error.c (dump_expr) <COMPOUND_EXPR case>: A compound expr is 2555169689Skan always dyadic. 2556169689Skan 2557169689Skan2003-07-27 Mark Mitchell <mark@codesourcery.com> 2558169689Skan 2559169689Skan * call.c (standard_conversion): Tweak handling of 2560169689Skan pointer-to-member types. 2561169689Skan * pt.c (tsubst): Correctly qualify pointers-to-data member types. 2562169689Skan * typeck.c (comp_ptr_ttypes_real): Check qualifiers on 2563169689Skan pointer-to-data member types. 2564169689Skan 2565169689Skan2003-07-27 Nathan Sidwell <nathan@codesourcery.com> 2566169689Skan 2567169689Skan * parser.c (cp_parser_type_parameter): Reformat. 2568169689Skan (cp_parser_parameter_declaration): Deprecate default args where 2569169689Skan not allowed. 2570169689Skan 2571169689Skan2003-07-26 Nathan Sidwell <nathan@codesourcery.com> 2572169689Skan 2573169689Skan * cfns.h: Rebuilt. 2574169689Skan 2575169689Skan * cp-tree.h (begin_init_stmts, finish_init_stmts): Remove. 2576169689Skan (begin_global_stmt_expr, finish_global_stmt_expr): Remove. 2577169689Skan * init.c (begin_init_stmts): Make static. Return is_global 2578169689Skan value. Always call begin_stmt_expr. 2579169689Skan (finish_init_stmts): Make static. Add is_global parm. Always 2580169689Skan building a stmt tree. 2581169689Skan (build_aggr_init): Adjust begin_init_stmts, finish_init_stmts calls. 2582169689Skan (build_vec_init): Likewise. Always building a stmt tree. 2583169689Skan (expand_default_init): Always building a stmt tree. 2584169689Skan (get_temp_regvar): Likewise. 2585169689Skan * semantics.c (begin_global_stmt_expr, 2586169689Skan finish_global_stmt_expr): Remove. 2587169689Skan 2588169689Skan2003-07-25 Nathan Sidwell <nathan@codesourcery.com> 2589169689Skan 2590169689Skan * cp-tree.h (build_compound_expr): Take LHS & RHS args. 2591169689Skan (build_x_compound_expr_from_list): Declare. 2592169689Skan * typeck.c (build_x_compound_expr_from_list): New. 2593169689Skan (build_x_compound_expr): Adjust. 2594169689Skan (build_compound_expr): Remove unreachable code. Take two 2595169689Skan parameters, adjust. 2596169689Skan * decl.c (grok_reference_init): Use 2597169689Skan build_x_compound_expr_from_list. 2598169689Skan (expand_static_init): Adjust build_compound_expr call. 2599169689Skan (cxx_maybe_build_cleanup): Likewise. 2600169689Skan * init.c (perform_member_init): Use 2601169689Skan build_x_compound_expr_from_list. 2602169689Skan (build_new_1): Likewise. 2603169689Skan (build_vec_delete): Adjust build_compound_expr calls. 2604169689Skan (build_vbase_delete): Likewise. 2605169689Skan * typeck2.c (store_init_value): Use 2606169689Skan build_x_compound_expr_from_list. 2607169689Skan (build_functional_cast): Likewise. 2608169689Skan 2609169689Skan2003-07-25 Nathan Sidwell <nathan@codesourcery.com> 2610169689Skan 2611169689Skan * cp-tree.h (enum tsubst_flags_t): Add tf_user. 2612169689Skan * decl.c (make_typename_type): Pass it. 2613169689Skan * pt.c (lookup_template_class): Use it. 2614169689Skan (resolve_typename_type): Pass it. 2615169689Skan * semantics.c (finish_template_type): Pass it. 2616169689Skan 2617169689Skan2003-07-25 Nathan Sidwell <nathan@codesourcery.com> 2618169689Skan 2619169689Skan PR c++/11617 2620169689Skan * cp-tree.h (qualified_name_lookup_error): Declare. 2621169689Skan * pt.c (tsubst_qualified_id): Use qualified_name_lookup_error for 2622169689Skan errors. 2623169689Skan (tsubst_expr) <DECL_STMT case>: Likewise. 2624169689Skan (tsubst_copy_and_build) <COMPONENT_REF case>: Likewise. 2625169689Skan * semantics.c (qualified_name_lookup_error): New, broken out of ... 2626169689Skan (finish_id_expression): ... here. Use it. 2627169689Skan 2628169689Skan2003-07-25 Falk Hueffner <falk.hueffner@student.uni-tuebingen.de> 2629169689Skan 2630169689Skan * cfns.gperf: Add '%%' delimiter to placate gperf 3.0. 2631169689Skan 2632169689Skan2003-07-25 Nathan Sidwell <nathan@codesourcery.com> 2633169689Skan 2634169689Skan PR c++/11596 2635169689Skan * pt.c (maybe_fold_nontype_arg, maybe_fold_nontype_args): Remove. 2636169689Skan (tsubst_template_arg): New. 2637169689Skan (tsubst_template_arg_vector): Rename to ... 2638169689Skan (tsubst_template_args): ... this. Accept a TREE_LIST form. Use 2639169689Skan tsubst_template_arg. 2640169689Skan (coerce_template_parms): Use tsubst_template_arg for default 2641169689Skan value. 2642169689Skan (tsubst_template_parms): Likewise. 2643169689Skan (tsubst_aggr_type): Adjust. 2644169689Skan (tsubst_decl): Likewise. 2645169689Skan (tsubst): Use tsubst_template_arg for a DOMAIN. Adjust. 2646169689Skan (tsubst_copy) <TEMPLATE_ID_EXPR case>: Use tsubst_template_args. 2647169689Skan 2648169689Skan2003-07-25 Gabriel Dos Reis <gdr@integrable-solutions.net> 2649169689Skan 2650169689Skan * Make-lang.in (cp/error.o): Depend on DIAGNOSTIC_H. 2651169689Skan * error.c: Use the new pretty-printer framework. 2652169689Skan 2653169689Skan2003-07-24 Per Bothner <pbothner@apple.com> 2654169689Skan 2655169689Skan * decl.c (pushdecl_class_level): Don't use push_srcloc/pop_srcloc 2656169689Skan which causes errors messages to incorrectly mention included files. 2657169689Skan 2658169689Skan2003-07-24 Mark Mitchell <mark@codesourcery.com> 2659169689Skan 2660169689Skan * cp-tree.h (convert_to_base_statically): Declare. 2661169689Skan * call.c (build_special_member_call): Convert INSTANCE to the base 2662169689Skan type. 2663169689Skan * class.c (convert_to_base_statically): New method. 2664169689Skan * init.c (construct_virtual_base): Use it. 2665169689Skan * method.c (do_build_assign_ref): Fix typo in comment. 2666169689Skan 2667169689Skan2003-07-24 Jason Merrill <jason@redhat.com> 2668169689Skan 2669169689Skan * decl.c: Just set truthvalue_* to boolean_*. 2670169689Skan 2671169689Skan2003-07-24 Nathan Sidwell <nathan@codesourcery.com> 2672169689Skan 2673169689Skan * decl.c (reshape_init): Remove unreachable code. 2674169689Skan 2675169689Skan2003-07-24 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2676169689Skan 2677169689Skan PR c++/11513 2678169689Skan * cp-tree.h (PROCESSING_REAL_TEMPLATE_DECL_P): Use current_scope. 2679169689Skan 2680169689Skan2003-07-23 Mark Mitchell <mark@codesourcery.com> 2681169689Skan 2682169689Skan PR c++/11645 2683169689Skan * cp-tree.h (accessible_base_p): Declare. 2684169689Skan * call.c (build_over_call): Use it. 2685169689Skan * search.c (accessible_base_p): New function, split out from ... 2686169689Skan (lookup_base): ... here. 2687169689Skan 2688169689Skan PR c++/11517 2689169689Skan * call.c (build_conditional_expr): Use perform_implicit_conversion 2690169689Skan and error_operand_p. Robustify. 2691169689Skan * typeck.c (build_unary_op): Use perform_implicit_conversion. 2692169689Skan 2693169689Skan2003-07-23 Nathan Sidwell <nathan@codesourcery.com> 2694169689Skan 2695169689Skan PR c++/10953 2696169689Skan * parser.c (cp_parser_nested_name_specifier): Reset scope on 2697169689Skan failure. 2698169689Skan (cp_parser_elaborated_type_specifier): Likewise. 2699169689Skan 2700169689Skan2003-07-22 Mark Mitchell <mark@codesourcery.com> 2701169689Skan 2702169689Skan Eliminate use of POINTER_TYPE for pointers-to-members. 2703169689Skan * call.c (standard_conversion): Rework pointer-to-member handling. 2704169689Skan Add comments. 2705169689Skan (add_builtin_candidate): Likewise. 2706169689Skan (resolve_scoped_fn_name): Remove. 2707169689Skan (build_conditional_expr): Rework pointer-to-member handling. 2708169689Skan (compare_ics): Likewise. 2709169689Skan * class.c (check_field_decls): Use TYPE_PTR_P. 2710169689Skan * cp-lang.c (cp_var_mod_type_p): Rework pointer-to-member 2711169689Skan handling. 2712169689Skan * cp-tree.h (SCALAR_TYPE_P): Use TYPE_PTR_TO_MEMBER_P. 2713169689Skan (TYPE_PTRMEM_P): Add comment. 2714169689Skan (TYPE_PTR_P): Simplify. 2715169689Skan (TYPE_PTROB_P): Correct definition. 2716169689Skan (TYPE_PTR_TO_MEMBER_P): New macro. 2717169689Skan (TYPE_PTRMEM_CLASS_TYPE): Adjust. 2718169689Skan (TYPE_PTRMEM_POINTED_TO_TYPE): Likewise. 2719169689Skan (resolved_scoped_fn_name): Remove declaration. 2720169689Skan (build_offset_ref): Change prototype. 2721169689Skan (resolve_offset_ref): Remove. 2722169689Skan (comp_target_types): Remove. 2723169689Skan * cvt.c (cp_convert_to_pointer): Rework pointer-to-member 2724169689Skan handling. 2725169689Skan (convert_to_reference): Use can_convert. 2726169689Skan (ocp_convert): Improve error handling. Rework pointer-to-member 2727169689Skan handling. 2728169689Skan (perform_qualification_conversions): Rework pointer-to-member 2729169689Skan handling. 2730169689Skan * decl.c (build_ptrmem_type): Handle functions too. 2731169689Skan (create_array_type_for_decl): Remove OFFSET_TYPE error message. 2732169689Skan (grokdeclarator): Use OFFSET_TYPE for pointers to data members. 2733169689Skan (grokparms): Remove OFFSET_TYPE error message. 2734169689Skan * dump.c (cp_dump_tree): Rework pointer-to-member handling. 2735169689Skan * error.c (dump_type_prefix): Likewise. 2736169689Skan * expr.c (cplus_expand_constant): Use build_nop. 2737169689Skan * init.c (build_offset_ref): Add address_p parameter. Fold in 2738169689Skan necessary bits from resolve_offset_ref. 2739169689Skan (resolve_offset_ref): Remove. 2740169689Skan * parser.c (cp_parser_postfix_expression): Remove special case 2741169689Skan code for OFFSET_TYPE. 2742169689Skan * pt.c (convert_nontype_argument): Rework pointer-to-member 2743169689Skan handling. 2744169689Skan (convert_template_argument): Likewise. 2745169689Skan (unify): Likewise. 2746169689Skan (invalid_nontype_parm_type_p): Likewise. 2747169689Skan (dependent_type_p_r): Likewise. 2748169689Skan * rtti.c (get_tinfo_decl): Remove OFFSET_TYPE special case. 2749169689Skan (target_incomplete_p_): Rework pointer-to-member 2750169689Skan handling. 2751169689Skan (get_pseudo_ti_init): Likewise. 2752169689Skan (get_pseudo_ti_desc): Likewise. 2753169689Skan * semantics.c (finish_qualified_id_expr): Adjust call to 2754169689Skan build_offset_ref. Remove use of resolve_offset_ref. 2755169689Skan * tree.c (pod_type_p): Use TYPE_PTR_TO_MEMBER_P. 2756169689Skan * typeck.c (target_type): Use TYPE_PTRMEM_P. 2757169689Skan (type_unknown_p): Remove obsolete code about the time before 2758169689Skan non-dependent expressions were handled correctly. 2759169689Skan (qualify_type_recursive): Remove. 2760169689Skan (composite_pointer_type_r): New function. 2761169689Skan (composite_pointer_type): Use it. 2762169689Skan (merge_types): Remove dead comments. 2763169689Skan (comp_cv_target_types): Remove. 2764169689Skan (comp_target_types): Likewise. 2765169689Skan (comp_target_parms): Likewise. 2766169689Skan (cxx_sizeof_or_alignof_type): Remove OFFSET_TYPE error. 2767169689Skan (build_indirect_ref): Use TYPE_PTR_TO_MEMBER_P. 2768169689Skan (build_binary_op): Do not use of comp_target_types. 2769169689Skan (pointer_diff): Remove OFFSET_TYPE case. 2770169689Skan (build_unary_op): Adjust pointer-to-member handling. 2771169689Skan (unary_complex_lvalue): Likewise. 2772169689Skan (check_for_casting_away_constness): Add description parameter. 2773169689Skan (build_static_cast): Pass it. 2774169689Skan (build_reinterpret_cast): Use check_for_casting_away_constness. 2775169689Skan (build_const_cast): Adjust pointer-to-member handling. 2776169689Skan (build_c_cast): Likewise. 2777169689Skan (convert_for_assignment): Remove OFFSET_TYPE error message. 2778169689Skan (comp_ptr_ttypes_real): Adjust pointer-to-member handling. 2779169689Skan (comp_ptr_ttypes_reinterpret): Remove. 2780169689Skan (casts_away_constness_r): Adjust pointer-to-member handling. 2781169689Skan (casts_away_constness): Liekwise. 2782169689Skan (strip_all_pointer_quals): Remove. 2783169689Skan * typeck2.c (digest_init): Adjust pointer-to-member handling. 2784169689Skan (build_m_component_ref): Likewise. 2785169689Skan 2786169689Skan2003-07-22 Wolfgang Bangerth <bangerth@dealii.org> 2787169689Skan 2788169689Skan * lex.c (unqualified_fn_lookup_error): Mention that the error 2789169689Skan message needs to be kept in synch with the manual. 2790169689Skan 2791169689Skan2003-07-22 Nathan Sidwell <nathan@codesourcery.com> 2792169689Skan 2793169689Skan PR c++/11614 2794169689Skan * decl.c (grokdeclarator): An array member is only a flexible 2795169689Skan array member if the field itself is the array. 2796169689Skan 2797169689Skan2003-07-22 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2798169689Skan 2799169689Skan PR c++/10793 2800169689Skan * decl.c (xref_basetypes): Handle error_mark_node. 2801169689Skan 2802169689Skan2003-07-22 Nathan Sidwell <nathan@codesourcery.com> 2803169689Skan 2804169689Skan * cp-tree.h (enum cp_lvalue_kind): Add clk_packed. 2805169689Skan * tree.c (lvalue_p_1): Set it. 2806169689Skan * class.c (check_field): Don't allow non-packed non-POD fields to 2807169689Skan be packed. 2808169689Skan * call.c (reference_binding): Need a temporary for all bitfield 2809169689Skan and packed fields. 2810169689Skan (convert_like_real): Check it is ok to make a temporary here. 2811169689Skan 2812169689Skan2003-07-21 Nathan Sidwell <nathan@codesourcery.com> 2813169689Skan 2814169689Skan * cp-tree.h (hack_identifier): Remove. 2815169689Skan * method.c (hack_identifier): Remove. 2816169689Skan * semantics.c (finish_id_expression): Expand hack_identifier 2817169689Skan here. Simplify. 2818169689Skan 2819169689Skan2003-07-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2820169689Skan 2821169689Skan * call.c class.c decl.c decl2.c g++spec.c lex.c parser.c pt.c rtti.c 2822169689Skan semantics.c typeck.c: Remove unnecessary casts. 2823169689Skan 2824169689Skan2003-07-18 Nathan Sidwell <nathan@codesourcery.com> 2825169689Skan 2826169689Skan * cp-tree.h (hack_identifier): Remove. 2827169689Skan * method.c (hack_identifier): Remove. 2828169689Skan * semantics.c (finish_id_expression): Expand hack_identifier 2829169689Skan here. Simplify. 2830169689Skan 2831169689Skan2003-07-18 Nathan Sidwell <nathan@codesourcery.com> 2832169689Skan 2833169689Skan * cp-tree.h (finish_non_static_data_member): Add object param. 2834169689Skan * method.c (hack_identifier): Adjust. 2835169689Skan * pt.c (tsubst_copy_and_build) <COMPONENT_REF case>: Don't search 2836169689Skan again for a FIELD_DECL. 2837169689Skan * semantics.c (finish_non_static_data_member): Add object 2838169689Skan parameter. Always save the DECL in the COMPONENT_REF. 2839169689Skan * call.c (resolve_scoped_fn_name): Adjust. 2840169689Skan 2841169689Skan2003-07-17 Zack Weinberg <zack@codesourcery.com> 2842169689Skan 2843169689Skan * pt.c (get_bindings): Make definition consistent with 2844169689Skan forward declaration. 2845169689Skan 2846169689Skan2003-07-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2847169689Skan 2848169689Skan PR c++/7809 2849169689Skan * friend.c (add_friend): Check access for member functions 2850169689Skan and templates. 2851169689Skan 2852169689Skan2003-07-17 Gabriel Dos Reis <gdr@integrable-solutions.net> 2853169689Skan 2854169689Skan PR c++/10668 2855169689Skan * typeck.c (build_class_member_access_expr): Improve diagnostic. 2856169689Skan 2857169689Skan2003-07-16 Mark Mitchell <mark@codesourcery.com> 2858169689Skan 2859169689Skan PR c++/11547 2860169689Skan * cp-tree.h (DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P): New 2861169689Skan macro. 2862169689Skan (DECL_PRETTY_FUNCTION_P): Use VAR_DECL_CHECK. 2863169689Skan * decl.c (duplicate_decls): Merge 2864169689Skan DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P. 2865169689Skan * parser.c (cp_parser_postfix_expression): Adjust call to 2866169689Skan cp_parser_initializer_list and 2867169689Skan cp_parser_parenthesized_expression_list. 2868169689Skan (cp_parser_parenthesized_expression_list): Add non_constant_p. 2869169689Skan (cp_parser_new_placement): Adjust call to 2870169689Skan cp_parser_parenthesized_expression_list. 2871169689Skan (cp_parser_direct_new_declarator): Likewise. 2872169689Skan (cp_parser_conditional_expression): Remove. 2873169689Skan (cp_parser_constant_expression): Parse an assignment-expression, 2874169689Skan not a conditional-expression. 2875169689Skan (cp_parser_simple_declaration): Resolve expression/declaration 2876169689Skan ambiguity more quickly. 2877169689Skan (cp_parser_mem_initializer): Adjust call to 2878169689Skan cp_parser_parenthesized_expression_list. 2879169689Skan (cp_parser_init_declarator): Keep track of whether or not the 2880169689Skan initializer is a constant-expression. 2881169689Skan (cp_parser_initializer): Add non_constant_p parameter. 2882169689Skan (cp_parser_initializer_clause): Likewise. 2883169689Skan (cp_parser_initializer_list): Likewise. 2884169689Skan (cp_parser_attribute_list): Adjust call to 2885169689Skan cp_parser_parenthesized_expression_list. 2886169689Skan (cp_parser_functional_cast): Likewise. 2887169689Skan * pt.c (tsubst_decl): Copy 2888169689Skan DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P. 2889169689Skan (tsubst_expr): Tweak use of DECL_PRETTY_FUNCTION_P. 2890169689Skan * semantics.c (finish_id_expression): Use 2891169689Skan DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P. 2892169689Skan 2893169689Skan2003-07-16 Neil Booth <neil@daikokuya.co.uk> 2894169689Skan 2895169689Skan * lang-options.h: Remove. 2896169689Skan 2897169689Skan2003-07-16 Andrew Pinski <pinskia@physics.uc.edu> 2898169689Skan 2899169689Skan PR c/10962 2900169689Skan * class.c (field_decl_cmp): Remove. 2901169689Skan (resort_field_decl_cmp): Remove. 2902169689Skan (resort_sorted_fields): Remove. 2903169689Skan (add_fields_to_vec): Rename to ... 2904169689Skan (add_fields_to_record_type): this. 2905169689Skan (finish_struct_1): Change to be using 2906169689Skan sorted_fields_type's fields. 2907169689Skan * cp-tree.h (lang_decl): In lang_decl_u3 2908169689Skan change sorted_fields to be a pointer to 2909169689Skan sorted_fields_type. 2910169689Skan (resort_sorted_fields): Remove prototype. 2911169689Skan * search.c (lookup_field_1): Change to be using 2912169689Skan sorted_fields_type's fields. 2913169689Skan 2914169689Skan2003-07-16 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2915169689Skan 2916169689Skan PR c++/5421 2917169689Skan * decl.c (grokdeclarator): Handle TEMPLATE_ID_EXPR if friend 2918169689Skan is a member of other class. 2919169689Skan * friend.c (do_friend): Don't build TEMPLATE_DECL if friend 2920169689Skan is a specialization of function template. 2921169689Skan 2922169689Skan2003-07-16 Gabriel Dos Reis <gdr@integrable-solutions.net> 2923169689Skan 2924169689Skan PR c++/10903 2925169689Skan * pt.c (convert_nontype_argument): Fix thinko in diagnostic. 2926169689Skan Improve. 2927169689Skan 2928169689Skan2003-07-15 Mark Mitchell <mark@codesourcery.com> 2929169689Skan 2930169689Skan * cp-tree.def (LOOKUP_EXPR): Remove. 2931169689Skan * cp-tree.h (cp_id_kind): Add CP_ID_KIND_UNQUALIFIED_DEPENDENT. 2932169689Skan (LOOKUP_EXPR_GLOBAL): Remove. 2933169689Skan (get_bindings): Remove. 2934169689Skan (is_aggr_type_2): Remove. 2935169689Skan * call.c (resolved_scoped_fn_name): Remove support for 2936169689Skan LOOKUP_EXPR. 2937169689Skan * decl.c (grokfndecl): Likewise. 2938169689Skan (grokdeclarator): Likewise. 2939169689Skan * error.c (dump_decl): Likewise. 2940169689Skan (dump_expr): Likewise. 2941169689Skan * friend.c (do_friend): Likewise. 2942169689Skan * init.c (build_offset_ref): Likewise. 2943169689Skan * lex.c (unqualified_fn_lookup_error): Use pedwarn. Do not create 2944169689Skan LOOKUP_EXPRs 2945169689Skan * mangle.c (write_expression): Remove support for LOOKUP_EXPR. 2946169689Skan * parser.c (cp_parser_postfix_expression): Modify Koenig lookup 2947169689Skan test. 2948169689Skan * pt.c (get_bindings): Give it internal linkage. 2949169689Skan (check_explicit_specialization): Remove support for LOOKUP_EXPR. 2950169689Skan (lookup_template_function): Likewise. 2951169689Skan (for_each_tempalte_parm_r): Likewise. 2952169689Skan (tsubst_decl): Likewise. 2953169689Skan (tsubst_qualified_id): Handle template template parameters. 2954169689Skan (tsubst_copy): Remove support for LOOKUP_EXPR. 2955169689Skan (tsubst_copy_and_build): Likewise. 2956169689Skan (most_general_template): Likewise. 2957169689Skan (value_dependent_expression_p): Likewise. 2958169689Skan (type_dependent_expression_p): Note that IDENTIFIER_NODEs are 2959169689Skan always dependent. 2960169689Skan * semantics.c (perform_koenig_lookup): Do not create 2961169689Skan IDENTIFIER_NODEs. 2962169689Skan (finish_fname): Likewise. 2963169689Skan (finish_id_expression): Likewise. 2964169689Skan * tree.c (is_aggr_type_2): Remove. 2965169689Skan 2966169689Skan2003-07-16 Gabriel Dos Reis <gdr@integrable-solutions.net> 2967169689Skan 2968169689Skan PR c++/11531 2969169689Skan * typeck.c (check_return_expr): Fix thinko in diagnostic. 2970169689Skan 2971169689Skan2003-07-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2972169689Skan 2973169689Skan PR c++/10108 2974169689Skan * pt.c (tsubst_decl) <TEMPLATE_DECL>: Add a check for 2975169689Skan error_mark_node. 2976169689Skan 2977169689Skan2003-07-14 Mark Mitchell <mark@codesourcery.com> 2978169689Skan 2979169689Skan PR c++/11509 2980169689Skan * pt.c (dependent_scope_ref_p): New function. 2981169689Skan (value_dependent_expression_p): Use it. 2982169689Skan (type_dependent_expression_p): Likewise. 2983169689Skan 2984169689Skan * pt.c (tsubst_friend_function): Use reregister_specialization. 2985169689Skan 2986169689Skan PR c++/7019 2987169689Skan * cp-tree.h (lookup_qualified_name): Adjust prototype. 2988169689Skan * decl.c (lookup_qualified_name): Add complain parameter. Adjust 2989169689Skan call to is_aggr_type. 2990169689Skan * parser.c (cp_parser_lookup_name): Adjust call to 2991169689Skan lookup_qualified_name. 2992169689Skan * pt.c (tsubst_qualified_id): Likewise. 2993169689Skan (tsubst_copy_and_build): Likewise. 2994169689Skan * semantics.c (finish_qualified_id_expr): Deal with erroneous 2995169689Skan expressions. 2996169689Skan 2997169689Skan2003-07-14 Gabriel Dos Reis <gdr@integrable-solutions.net> 2998169689Skan 2999169689Skan PR c++/11510 3000169689Skan * call.c (op_error): Properly format REALPART_EXPR and 3001169689Skan IMAGPART_EXPR. 3002169689Skan * error.c (dump_expr): Likewise. 3003169689Skan 3004169689Skan2003-07-14 Gabriel Dos Reis <gdr@integrable-solutions.net> 3005169689Skan 3006169689Skan * error.c (dump_expr): Handle EMPTY_CLASS_EXPR. 3007169689Skan 3008169689Skan2003-07-14 Gabriel Dos Reis <gdr@integrable-solutions.net> 3009169689Skan 3010169689Skan PR c++/5293 3011169689Skan * call.c (initialize_reference): Improve diagnostic. 3012169689Skan 3013169689Skan2003-07-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 3014169689Skan 3015169689Skan PR c++/11154 3016169689Skan * pt.c (more_specialized_class): Add full_args parameter. 3017169689Skan (most_specialized_class): Adjust calls to more_specialized_class. 3018169689Skan * cp-tree.h (more_specialized_class): Adjust declaration. 3019169689Skan 3020169689Skan2003-07-14 Dan Nicolaescu <dann@ics.uci.edu> 3021169689Skan 3022169689Skan * lex.c (enum tree_node_kind): Delete. 3023169689Skan 3024169689Skan2003-07-13 Mark Mitchell <mark@codesourcery.com> 3025169689Skan 3026169689Skan PR c++/11503 3027169689Skan * cp-tree.h (DECL_SELF_REFERENCE_P): New macro. 3028169689Skan (SET_DECL_SELF_REFERENCE_P): Likewise. 3029169689Skan * class.c (build_self_reference): Use SET_DECL_SELF_REFERENCE_P. 3030169689Skan * pt.c (tsubst_decl): Copy it. 3031169689Skan * search.c (lookup_base): Use DECL_SELF_REFERENCE_P. 3032169689Skan 3033169689Skan * pt.c (reregister_specialization): Fix thinko in previous change. 3034169689Skan 3035169689Skan * cp-tree.h (cp_id_kind): New type. 3036169689Skan (unqualified_name_lookup_error): Change prototype. 3037169689Skan (unqualified_fn_lookup_error): New function. 3038169689Skan (do_identifier): Remove. 3039169689Skan (do_scoped_id): Likewise. 3040169689Skan (tsubst_copy_and_build): Change prototype. 3041169689Skan (reregister_specialization): New function. 3042169689Skan (perform_koenig_lookup): Likewise. 3043169689Skan (finish_id_expression): Likewise. 3044169689Skan * call.c (build_method_call): Adjust call to 3045169689Skan unqualified_name_lookup_error. 3046169689Skan * decl.c (duplicate_decls): Use reregister_specialization. 3047169689Skan * lex.c (is_global): Remove. 3048169689Skan (unqualified_name_lookup_error): Return a value. 3049169689Skan (do_identifier): Remove. 3050169689Skan (do_scoped_id): Likewise. 3051169689Skan (identifier_typedecl_value): Remove. 3052169689Skan (unqualified_fn_lookup_error): New function. 3053169689Skan * parser.c (cp_parser_id_kind): Remove. 3054169689Skan (cp_parser_non_constant_id_expression): Remove. 3055169689Skan (cp_parser_primary_expression): Use finish_id_expression. 3056169689Skan (cp_parser_class_or_namespace_name): Use cp_id_kind, not 3057169689Skan cp_parser_id_kind. 3058169689Skan (cp_parser_postfix_expression): Use perform_koenig_lookup. 3059169689Skan (cp_parser_template_argument): Use cp_id_kind. 3060169689Skan (cp_parser_fold_non_dependent_expr): Adjust call to 3061169689Skan tsubst_copy_and_build. 3062169689Skan * pt.c (unregister_specialization): Rename to ... 3063169689Skan (reregister_specialization): This. 3064169689Skan (tsubst_friend_function): Use it. 3065169689Skan (maybe_fold_nontype_arg): Adjust call to tsubst_copy_and_build. 3066169689Skan (tsubst_qualified_id): Likewise. 3067169689Skan (tsubst_expr): Likewise. 3068169689Skan (tsubst_copy_and_build): Add function_p parameter. Use 3069169689Skan finish_id_expression. Introduce RECUR macro. 3070169689Skan (tsubst_non_call_postfix_expression): New function. 3071169689Skan (regenerate_decl_from_template): Use reregister_specialization. 3072169689Skan * semantics.c (perform_koenig_lookup): New function. 3073169689Skan (finish_id_expression): Likewise. 3074169689Skan 3075169689Skan2003-07-13 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 3076169689Skan 3077169689Skan * pt.c (push_access_scope_real): Remove. 3078169689Skan (push_access_scope): Move code from push_access_scope_real. 3079169689Skan (pop_access_scope): Don't check for TEMPLATE_DECL. 3080169689Skan (instantiate_template): Defer access checking during template 3081169689Skan substitution. 3082169689Skan (regenerate_decl_from_template): Tidy. 3083169689Skan 3084169689Skan2003-07-11 Nathanael Nerode <neroden@gcc.gnu.org> 3085169689Skan 3086169689Skan PR c++/11437 3087169689Skan * operators.def: Add definitions for __imag__, __real__. 3088169689Skan 3089169689Skan2003-07-11 Nathan Sidwell <nathan@codesourcery.com> 3090169689Skan 3091169689Skan PR c++/11050 3092169689Skan * parser.c (cp_parser_expression_list): Rename to ... 3093169689Skan (cp_parser_parenthesized_expression_list): ... here. Add attribute 3094169689Skan parameter, parse the surounding parentheses. 3095169689Skan (cp_parser_skip_to_closing_parenthesis): Add recover and or_comma 3096169689Skan parameters. Return int. 3097169689Skan (cp_parser_skip_to_closing_parenthesis or comma): Remove. 3098169689Skan (cp_parser_postfix_expression): Adjust function call parsing. 3099169689Skan (cp_parser_new_placement): Adjust. 3100169689Skan (cp_parser_new_initializer): Likewise. 3101169689Skan (cp_parser_cast_expression): Likewise. 3102169689Skan (cp_parser_selection_statement): Likewise. 3103169689Skan (cp_parser_mem_initializer): Likewise. 3104169689Skan (cp_parser_asm_definition): Likewise. 3105169689Skan (cp_parser_init_declarator): Likewise. 3106169689Skan (cp_parser_declarator): Make 3107169689Skan cdtor_or_conv_p an int ptr. 3108169689Skan (cp_parser_direct_declarator): Likewise. Check for a parameter 3109169689Skan list on cdtors & conv functions. 3110169689Skan (cp_parser_initializer): Adjust. 3111169689Skan (cp_parser_member_declaration): Adjust. 3112169689Skan (cp_parser_attribute_list): Move code into 3113169689Skan cp_parser_parens_expression_list. 3114169689Skan (cp_parser_functional_cast): Adjust. 3115169689Skan * pt.c (type_dependent_expression_p): Erroneous expressions are 3116169689Skan non-dependent. 3117169689Skan 3118169689Skan2003-07-11 Geoffrey Keating <geoffk@apple.com> 3119169689Skan 3120169689Skan * decl.c (cp_finish_decl): Handle 'used' attribute. 3121169689Skan 3122169689Skan * cp-lang.c (c_reset_state): New dummy routine. 3123169689Skan * cp-tree.h (finish_file): Move prototype to c-common.h. 3124169689Skan * parser.c (c_parse_file): Rename from yyparse; don't call finish_file. 3125169689Skan 3126169689Skan2003-07-11 Mark Mitchell <mark@codesourcery.com> 3127169689Skan 3128169689Skan PR c++/8327 3129169689Skan * pt.c (tsubst_qualified_id): Implement suggested resolution for 3130169689Skan Core Issue 2. 3131169689Skan (type_dependent_expression_p): Likewise. 3132169689Skan 3133169689Skan2003-07-10 Mark Mitchell <mark@codesourcery.com> 3134169689Skan 3135169689Skan * typeck.c (build_binary_op): Do not warn about signed 3136169689Skan vs. unsigned comparisons in the bodies of templates. 3137169689Skan 3138169689Skan PR c++/9411 3139169689Skan * parser.c (cp_parser_postfix_expression): Check dependency of 3140169689Skan functions. 3141169689Skan 3142169689Skan2003-07-09 Mark Mitchell <mark@codesourcery.com> 3143169689Skan 3144169689Skan PR c++/10032 3145169689Skan * decl.c (cxx_init_decl_processing): With -pedantic, pedwarns are 3146169689Skan still errors. 3147169689Skan 3148169689Skan PR c++/10527 3149169689Skan * error.c (decl_to_string): Do not print default argument 3150169689Skan expressions. 3151169689Skan 3152169689Skan * cp-tree.h (break_out_calls): Remove declaration. 3153169689Skan * tree.c (break_out_calls): Remove. 3154169689Skan * typeck.c (build_modify_expr): Avoid invalid sharing of trees. 3155169689Skan 3156169689Skan2003-07-09 Nathan Sidwell <nathan@codesourcery.com> 3157169689Skan 3158169689Skan PR c++ 9483 3159169689Skan * class.c (check_field_decls): Pass DECL_NAME to constructor_name_p. 3160169689Skan * decl2.c (constructor_name_p): Avoid repeated constructor_name 3161169689Skan calls. 3162169689Skan * decl.c (grokdeclarator): Refactor ctor/dtor detection. 3163169689Skan 3164169689Skan2003-07-09 Mark Mitchell <mark@codesourcery.com> 3165169689Skan 3166169689Skan * typeck.c (build_x_unary_op): Take note of the fact that 3167169689Skan PREINCREMENT_EXPR and POSTINCREMENT_EXPR are binary operations on 3168169689Skan trees. 3169169689Skan 3170169689Skan * parser.c (cp_parser_primary_expression): Preserve the form of 3171169689Skan qualified expressions in templates, even if they are not 3172169689Skan dependent. 3173169689Skan * pt.c (convert_nontype_argument): Handle non-dependent SCOPE_REFs. 3174169689Skan (tsubst_qualified_id): Likewise. 3175169689Skan * search.c (accessible_p): Treat everything in the body of a 3176169689Skan template as accessible. 3177169689Skan 3178169689Skan2003-07-08 Mark Mitchell <mark@codesourcery.com> 3179169689Skan 3180169689Skan * cp-tree.def (NON_DEPENDENT_EXPR): New node. 3181169689Skan * cp-tree.h (build_call_from_tree): Remove. 3182169689Skan (build_member_call): Likewise. 3183169689Skan (dependent_template_arg_p): Remove. 3184169689Skan (any_dependent_template_arguments_p): New function. 3185169689Skan (dependent_template_id_p): Likewise. 3186169689Skan (any_type_dependent_arguments_p): Likewise. 3187169689Skan (build_non_dependent_expr): Likewise. 3188169689Skan (build_non_dependent_args): Likewise. 3189169689Skan (build_x_compound_expr): Adjust prototype. 3190169689Skan * call.c (build_new_method_call): Handle non-dependent expressions 3191169689Skan correctly. 3192169689Skan * decl2.c (grok_array_decl): Likewise. 3193169689Skan (build_offset_ref_call_from_tree): Likewise. 3194169689Skan (build_call_from_tree): Remove. 3195169689Skan * error.c (dump_decl): Handle NON_DEPENDENT_EXPR. 3196169689Skan (dump_expr): Likewise. 3197169689Skan * init.c (build_member_call): Remove. 3198169689Skan * mangle.c (write_expression): Update handling for template-ids. 3199169689Skan * parser.c (cp_parser_primary_expression): Use 3200169689Skan any_dependent_template_arguments_p. Update constant-expression 3201169689Skan handling. 3202169689Skan (cp_parser_postfix_expression): Use 3203169689Skan any_type_dependent_arguments_p. Simplify call processing. 3204169689Skan (cp_parser_unary_expression): Simplify. 3205169689Skan (cp_parser_expression): Adjust for changes to 3206169689Skan build_x_compound_expr. 3207169689Skan (cp_parser_template_argument): Implement standard-conforming 3208169689Skan parsing of non-type template arguments. 3209169689Skan (cp_parser_direct_declarator): Use 3210169689Skan cp_parser_fold_non_dependent_expr. 3211169689Skan (cp_parser_fold_non_dependent_expr): New function. 3212169689Skan (cp_parser_next_token_ends_template_argument_p): Likewise. 3213169689Skan * pt.c (convert_template_argument): Do not call 3214169689Skan maybe_fold_nontype_arg. 3215169689Skan (tsubst_baselink): Likewise. 3216169689Skan (tsubst_copy_and_build): Share common code. Make sizeof/alignof 3217169689Skan processing work correctly for non-dependent expressions. Adjust 3218169689Skan handling of COMPOUND_EXPR. Simplify call processing. 3219169689Skan (value_dependent_expression_p): Deal with functional casts and 3220169689Skan sizeof/alignof correctly. 3221169689Skan (type_dependent_expression_p): Handle overloaded functions. 3222169689Skan (any_type_dependent_arguments_p): New function. 3223169689Skan (any_dependent_template_arguments_p): Likewise. 3224169689Skan (dependent_template_p): Treat SCOPE_REFs as dependent. 3225169689Skan (dependent_template_id_p): Simplify. 3226169689Skan (build_non_dependent_expr): New function. 3227169689Skan (build_non_dependent_args): Likewise. 3228169689Skan * semantics.c (finish_stmt_expr): Don't make dependent 3229169689Skan statement-expresions have void type. 3230169689Skan (finish_call_expr): Handle non-dependent expressions 3231169689Skan correctly. 3232169689Skan * tree.c (lvalue_p_1): Treat NON_DEPENDENT_EXPRs as lvalues. 3233169689Skan * typeck.c (cxx_sizeof_or_alignof_type): Give the expression 3234169689Skan type size_t, even in templates. 3235169689Skan (expr_sizeof): Likewise. 3236169689Skan (finish_class_member_access_expr): Handle non-dependent expressions 3237169689Skan correctly. 3238169689Skan (build_x_indirect_ref): Likewise. 3239169689Skan (build_x_binary_op): Likewise. 3240169689Skan (build_x_unary_op): Likewise. 3241169689Skan (build_x_conditional_expr): Likewise. 3242169689Skan (build_x_compound_expr): Likewise. 3243169689Skan * typeck2.c (build_x_arrow): Likewise. 3244169689Skan 3245169689Skan2003-07-09 Jan Hubicka <jh@suse.cz> 3246169689Skan 3247169689Skan * cp-lang.c (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): New. 3248169689Skan * decl.c (duplicate_decls): Use DECL_ESTIMATED_INSNS. 3249169689Skan (start_function): Use DECL_ESTIMATED_INSNS. 3250169689Skan * optimize.c (maybe_clone_body): Use DECL_ESTIMATED_INSNS. 3251169689Skan 3252169689Skan * decl2.c (maybe_emit_vtables): Fix marking vtables as needed in 3253169689Skan unit-at-a-time 3254169689Skan 3255169689Skan2003-07-08 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 3256169689Skan 3257169689Skan PR c++/11030 3258169689Skan * pt.c (instantiate_class_template): Don't call xref_tag to 3259169689Skan inject name when the friend class is a specialization. 3260169689Skan 3261169689Skan2003-07-07 Mark Mitchell <mark@codesourcery.com> 3262169689Skan 3263169689Skan * cp-tree.h (build_scoped_method_call): Remove. 3264169689Skan (lookup_qualified_name): Remove parameter. 3265169689Skan (tsubst_copy_and_build): Declare. 3266169689Skan (finish_qualified_object_call_expr): Remove. 3267169689Skan (check_accessibility_of_qualified_id): New function. 3268169689Skan (finish_qualified_id_expr): Likewise. 3269169689Skan (non_reference): Likewise. 3270169689Skan (build_expr_from-tree): Remove. 3271169689Skan * call.c (non_reference): Remove. 3272169689Skan (build_scoped_method_call): Likewise. 3273169689Skan (build_method_call): Use error_operand_p. Assert that we are not 3274169689Skan processing a template. 3275169689Skan (standard_conversion): Use non_reference. 3276169689Skan * class.c (build_vtbl_entry_ref): Likewise. 3277169689Skan (build_vtbl_ref_1): Likewise. 3278169689Skan * cvt.c (build_expr_type_conversion): Use non_reference. 3279169689Skan * decl.c (lookup_qualified_name): Remove flags parameter. 3280169689Skan (grok_op_properties): Use non_reference. 3281169689Skan * decl2.c (grok_array_decl): Likewise. 3282169689Skan (build_expr_from_tree): Remove. 3283169689Skan (build_offset_ref_call_from_tree): Update comment. 3284169689Skan * error.c (parm_to_string): Call reinit_global_formatting_buffer. 3285169689Skan * except.c (prepare_eh_types): Use non_reference. 3286169689Skan (can_convert_eh): Likewise. 3287169689Skan * init.c (build_dtor_call): Avoid using build_method_call. 3288169689Skan * mangle.c (write_template_param): Remove misleading comment. 3289169689Skan * method.c (locate_copy): Use non_reference. 3290169689Skan * parser.c (cp_parser_scope_through_which_access_occurs): Remove. 3291169689Skan (cp_parser_primary_expression): Do not create SCOPE_REFs is 3292169689Skan non-dependent contexts. 3293169689Skan (cp_parser_postfix_expression): Use finish_qualified_id_expr. 3294169689Skan (cp_parser_direct_declarator): Use tsubst_copy_and_build, not 3295169689Skan build_expr_from_tree. 3296169689Skan (cp_parser_lookup_name): Adjust call to lookup_qualified_name. 3297169689Skan Use check_accessibility_of_qualified_id. 3298169689Skan * pt.c (maybe_fold_nontype_arg): Use tsubst_copy_and_build, not 3299169689Skan build_expr_from_tree. 3300169689Skan (tsubst_baselink): New function. 3301169689Skan (tsubst_qualified_id): Likewise. 3302169689Skan (tsubst_copy): Use them. Remove support for METHOD_CALL_EXPR. 3303169689Skan (tsubst_expr): Adjust call to lookup_qualified_name. 3304169689Skan (tsubst_copy_and_build): Handle SCOPE_REFs specially. Adjust 3305169689Skan handling of CALL_EXPRs. 3306169689Skan (value_dependent_expression_p): Use INTEGRAL_OR_ENUMERATION_TYPE_P. 3307169689Skan * rtti.c (get_tinfo_decl_dynamic): Use non_reference. 3308169689Skan * search.c (check_final_overrider): Likewise. 3309169689Skan * semantics.c (check_accessibility_of_qualified_id): New function. 3310169689Skan (finish_qualified_object_call_expr): Remove. 3311169689Skan * typeck.c (target_type): Use non_reference. 3312169689Skan (cxx_sizeof_or_alignof_type): Likewise. 3313169689Skan (dubious_conversion_warnings): Likewise. 3314169689Skan (convert_for_initialization): Likewise. 3315169689Skan (non_reference): New function. 3316169689Skan 3317169689Skan2003-07-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3318169689Skan 3319169689Skan * decl.c (print_binding_level, print_other_binding_stack, 3320169689Skan print_binding_stack): Merge uses of HOST_PTR_PRINTF with adjacent 3321169689Skan stdio calls. 3322169689Skan * ptree.c (cxx_print_decl, cxx_print_binding): Likewise. 3323169689Skan 3324169689Skan2003-07-07 Andreas Jaeger <aj@suse.de> 3325169689Skan 3326169689Skan * friend.c: Convert to ISO C90 prototypes. 3327169689Skan 3328169689Skan * Make-lang.in ($(srcdir)/cp/cfns.h): Use ANSI-C as output 3329169689Skan language. 3330169689Skan * cfns.h: Regenerate. 3331169689Skan 3332169689Skan * typeck.c: Convert remaining prototypes to ISO C90. 3333169689Skan * search.c: Likewise. 3334169689Skan 3335169689Skan * decl2.c (build_expr_from_tree): Convert prototype to ISO C90. 3336169689Skan * semantics.c (expand_or_defer_fn): Likewise 3337169689Skan * mangle.c (discriminator_for_string_literal): Likewise. 3338169689Skan * g++spec.c (lang_specific_driver): Likewise. 3339169689Skan 3340169689Skan * search.c (lookup_base_r): Remove unused variable. 3341169689Skan 3342169689Skan2003-07-07 Nathan Sidwell <nathan@codesourcery.com> 3343169689Skan 3344169689Skan * semantics.c: (genrtl_try_block) Adjust emit_line_note 3345169689Skan calls. 3346169689Skan 3347169689Skan2003-07-07 Andreas Jaeger <aj@suse.de> 3348169689Skan 3349169689Skan * search.c (lookup_base_r): Remove unused variable. 3350169689Skan 3351169689Skan2003-07-06 Michael Chastain <mec@shout.net> 3352169689Skan 3353169689Skan PR debug/10055 3354169689Skan * lex.c (cxx_init): Call push_srcloc and pop_srcloc rather than 3355169689Skan assigning to input_filename directly. 3356169689Skan 3357169689Skan2003-07-06 Kazu Hirata <kazu@cs.umass.edu> 3358169689Skan 3359169689Skan * call.c: Fix comment formatting. 3360169689Skan * class.c: Likewise. 3361169689Skan * cp-tree.h: Likewise. 3362169689Skan * decl.c: Likewise. 3363169689Skan * decl2.c: Likewise. 3364169689Skan * error.c: Likewise. 3365169689Skan * method.c: Likewise. 3366169689Skan * name-lookup.c: Likewise. 3367169689Skan * parser.c: Likewise. 3368169689Skan * pt.c: Likewise. 3369169689Skan * rtti.c: Likewise. 3370169689Skan * search.c: Likewise. 3371169689Skan * typeck.c: Likewise. 3372169689Skan 3373169689Skan2003-07-06 Mark Mitchell <mark@codesourcery.com> 3374169689Skan 3375169689Skan PR c++/11345 3376169689Skan * search.c (lookup_base_r): Remove is_non_public and 3377169689Skan within_current_scope parameters. Remove other dead code. 3378169689Skan (lookup_base): Adjust call to lookup_base_r. 3379169689Skan (adjust_result_of_qualified_name_lookup): Improve comment. 3380169689Skan * semantics.c (finish_call_expr): Use maybe_dummy_object. 3381169689Skan 3382169689Skan2003-07-06 Neil Booth <neil@daikokuya.co.uk> 3383169689Skan 3384169689Skan * cp-lang.c (LANG_HOOKS_HANDLE_FILENAME, 3385169689Skan LANG_HOOKS_MISSING_ARGUMENT): Override. 3386169689Skan 3387169689Skan2003-07-05 Mark Mitchell <mark@codesourcery.com> 3388169689Skan 3389169689Skan PR c++/11431 3390169689Skan * typeck.c (build_static_cast): Check for reference conversions 3391169689Skan earlier. 3392169689Skan 3393169689Skan2003-07-04 Mark Mitchell <mark@codesourcery.com> 3394169689Skan 3395169689Skan * cp-tree.h (perform_integral_promotions): Declare. 3396169689Skan * call.c (build_addr_func): Use decay_conversion. 3397169689Skan (convert_arg_to_ellipsis): Likewise. Remove misleading comment. 3398169689Skan (convert_for_arg_passing): Use perform_integral_promotions. 3399169689Skan * cvt.c (build_expr_type_conversion): Use decay_conversion. 3400169689Skan (type_promotes_to): Do not return a cv-qualified type. 3401169689Skan * decl.c (grok_reference_init): Fix formatting. 3402169689Skan (get_atexit_node): Use decay_conversion. 3403169689Skan (build_enumerator): Use perform_integral_promotions. 3404169689Skan * init.c (build_vec_init): Use decay_conversion. 3405169689Skan * semantics.c (finish_expr_stmt): Likewise. 3406169689Skan (finish_switch_cond): Use perform_integral_promotions. 3407169689Skan * typeck.c (default_conversion): Likewise. 3408169689Skan (perform_integral_promotions): New function. 3409169689Skan (build_indirect_ref): Use decay_conversion. 3410169689Skan (build_array_ref): Use perform_integral_promotions. 3411169689Skan (convert_arguments): Use decay_conversion. 3412169689Skan (build_unary_op): Use perform_integral_promotions. 3413169689Skan (build_c_cast): Use decay_conversion. 3414169689Skan (build_modify_expr): Likewise. 3415169689Skan (convert_for_initialization): Likewise. 3416169689Skan * typeck2.c (build_x_arrow): Likewise. 3417169689Skan 3418169689Skan2003-07-04 Kazu Hirata <kazu@cs.umass.edu> 3419169689Skan 3420169689Skan * call.c: Fix comment typos. 3421169689Skan * class.c: Likewise. 3422169689Skan * cp-tree.h: Likewise. 3423169689Skan * cvt.c: Likewise. 3424169689Skan * decl2.c: Likewise. 3425169689Skan * decl.c: Likewise. 3426169689Skan * init.c: Likewise. 3427169689Skan * mangle.c: Likewise. 3428169689Skan * parser.c: Likewise. 3429169689Skan * pt.c: Likewise. 3430169689Skan * search.c: Likewise. 3431169689Skan * semantics.c: Likewise. 3432169689Skan * tree.c: Likewise. 3433169689Skan * typeck.c: Likewise. 3434169689Skan 3435169689Skan2003-07-04 Zack Weinberg <zack@codesourcery.com> 3436169689Skan 3437169689Skan * parser.c (cp_lexer_read_token): No need to handle string 3438169689Skan constant concatenation. 3439169689Skan 3440169689Skan2003-07-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3441169689Skan 3442169689Skan * cp-tree.h (GCC_DIAG_STYLE, ATTRIBUTE_GCC_CXXDIAG): Define. 3443169689Skan (cp_error_at, cp_warning_at, cp_pedwarn_at): Mark with 3444169689Skan ATTRIBUTE_GCC_CXXDIAG. 3445169689Skan 3446169689Skan2003-07-03 Mark Mitchell <mark@codesourcery.com> 3447169689Skan 3448169689Skan * call.c (build_addr_func): Handle bound pointers-to-members. 3449169689Skan (build_method_call): Do not call resolve_offset_ref. 3450169689Skan (implicit_conversion): Likewise. 3451169689Skan (resolve_scoped_fn_name): Use finish_non_static_data_member, not 3452169689Skan resolve_offset_ref. 3453169689Skan (resolve_args): Do not call resolve_offset_ref. 3454169689Skan (build_conditional_expr): Likewise. 3455169689Skan (build_new_method_call): Likewise. 3456169689Skan * cp-tree.def (OFFSET_REF): Update documentation. 3457169689Skan * cvt.c (cp_convert_to_pointer): Update handling of conversions from 3458169689Skan pointers to members to pointers. 3459169689Skan (ocp_convert): Do not call resolve_offset_ref. 3460169689Skan (convert_to_void): Likewise. 3461169689Skan (build_expr_type_conversion): Likewise. 3462169689Skan * decl2.c (delete_sanity): Likewise. 3463169689Skan * init.c (resolve_offset_ref): Simplify greatly. 3464169689Skan (build_vec_delete): Do not call resolve_offset_ref. 3465169689Skan * parser.c (cp_parser_postfix_expression): Call resolve_offset_ref 3466169689Skan if appropriate. 3467169689Skan (cp_parser_unary_expression): Use 3468169689Skan cp_parser_simple_cast_expression. 3469169689Skan (cp_parser_delete_expression): Likewise. 3470169689Skan (cp_parser_cast_expression): Likewise. 3471169689Skan (cp_parser_pm_expression): Use cp_parser_binary_op. 3472169689Skan (cp_parser_simple_cast_expression): New function. 3473169689Skan * rtti.c (build_dynamic_cast_1): Do not call resolve_offset_ref. 3474169689Skan * semantics.c (finish_increment_expr): Likewise. 3475169689Skan (finish_typeof): Likewise. 3476169689Skan * tree.c (lvalue_p_1): Do not handle OFFSET_REF. 3477169689Skan * typeck.c (require_complete_type): Do not handle OFFSET_REFs. 3478169689Skan (decay_conversion): Do not call resolve_offset_ref. 3479169689Skan (finish_class_member_access_expr): Likewise. 3480169689Skan (convert_arguments): Likewise. 3481169689Skan (build_x_binary_op): Handle DOTSTAR_EXPR. 3482169689Skan (condition_conversion): Do not call resolve_offset_ref. 3483169689Skan (unary_complex_lvalue): Likewise. 3484169689Skan (build_static_cast): Likewise. 3485169689Skan (build_reinterpret_cast): Likewise. 3486169689Skan (build_const_cast): Likewise. 3487169689Skan (build_c_cast): Likewise. 3488169689Skan (build_modify_expr): Likewise. 3489169689Skan (convert_for_assignment): Likewise. 3490169689Skan (convert_for_initialization): Likewise. 3491169689Skan * typeck2.c (build_x_arrow): Likewise. 3492169689Skan (build_m_component_ref): Simplify. 3493169689Skan 3494169689Skan * call.c (build_scoped_method_call): Use convert_to_void. 3495169689Skan (build_method_call): Likewise. 3496169689Skan * class.c (check_field_decls): Remove dead code. 3497169689Skan * cvt.c (convert_from_reference): Remove OFFSET_TYPE handling. 3498169689Skan * decl2.c (grok_array_decl): Remove dead code. 3499169689Skan (arg_assoc_type): Avoid relying on POINTER_TYPE over OFFSET_TYPE 3500169689Skan as pointer-to-member representation. 3501169689Skan * init.c (build_offset_ref): Tidy. 3502169689Skan (build_vec_delete_1): Use convert_to_void. 3503169689Skan * mangle.c (write_type): Avoid relying on POINTER_TYPE over OFFSET_TYPE 3504169689Skan as pointer-to-member representation. 3505169689Skan 3506169689Skan2003-07-03 Nathan Sidwell <nathan@codesourcery.com> 3507169689Skan 3508169689Skan PR c++/9162 3509169689Skan * decl.c (grokdeclarator): Return friend decls, not 3510169689Skan void_type_node. 3511169689Skan * decl2.c (grokfield): Alter friend decl check. 3512169689Skan * parser.c (struct cp_parser): Document default_arg chain on 3513169689Skan unparsed_functions_queue. 3514169689Skan (cp_parser_save_default_args): New. 3515169689Skan (cp_parser_init_declarator, cp_parser_function_definition, 3516169689Skan cp_parser_member_declaration): Call it. 3517169689Skan (cp_parser_class_specifier): Remove unused variable. Alter 3518169689Skan processing of unparsed_functions_queue. 3519169689Skan 3520169689Skan2003-07-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3521169689Skan 3522169689Skan * class.c (add_method, check_field_decl): Fix format specifier. 3523169689Skan * decl.c (duplicate_decls, pushdecl, check_goto, 3524169689Skan fixup_anonymous_aggr, maybe_commonize_var, grokdeclarator, 3525169689Skan start_enum): Likewise. 3526169689Skan * decl2.c (ambiguous_decl): Likewise. 3527169689Skan * pt.c (redeclare_class_template): Likewise. 3528169689Skan 3529169689Skan2003-07-02 Nathan Sidwell <nathan@codesourcery.com> 3530169689Skan 3531169689Skan PR c++/10219 3532169689Skan * pt.c (type_unification_real): Don't unify exprs of error type. 3533169689Skan * tree.c (error_type): Don't die on error_type. 3534169689Skan 3535169689Skan PR c++/9779 3536169689Skan * decl2.c (arg_assoc_class): Don't die on NULL type. 3537169689Skan * typeck.c (type_unknown_p): Don't die on untyped expressions. 3538169689Skan 3539169689Skan2003-07-01 Mark Mitchell <mark@codesourcery.com> 3540169689Skan 3541169689Skan PR c++/6949 3542169689Skan * decl2.c (grokfield): Create TEMPLATE_DECLs for methods in local 3543169689Skan classes. 3544169689Skan 3545169689Skan2003-07-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3546169689Skan 3547169689Skan * error.c (locate_error): %P takes an `int', not a `tree'. 3548169689Skan 3549169689Skan2003-07-02 Jan Hubicka <jh@suse.cz> 3550169689Skan 3551169689Skan * decl2.c (defer_fn): Set DECL_DEFER_OUTPUT. 3552169689Skan (finish-file): Do not process function with DECL_DEFER_OUTPUT clear; 3553169689Skan clear DECL_DEFER_OUTPUT once function is processed; avoid flags 3554169689Skan massaging. 3555169689Skan 3556169689Skan * cp-tree.h (DECL_NEEDED_P): Support unit-at-a-time 3557169689Skan (expand_or_defer_fn): Declare. 3558169689Skan (lower_function): Declare. 3559169689Skan * decl.c (start_cleanup_fn): Use expand_or_defer_fn. 3560169689Skan * decl2.c: Include cgraph.h and varpool.h 3561169689Skan (maybe_emit_vtables): Make explicit instantations as needed. 3562169689Skan (mark_member_pointers, lower_function): New functions. 3563169689Skan (finish_file): Do unit-at-a-time. 3564169689Skan * method.c (synthesize_method): Use expand_or_defer_fn. 3565169689Skan * optimize.c (maybe_clone_body): Use expand_or_defer_fn. 3566169689Skan * parser.c (cp_parser_function_definition_after_decl): Use 3567169689Skan expand_or_defer_fn. 3568169689Skan * pt.c (instantiate_decl): Likewise. 3569169689Skan * semantics.c: Include cgraph.h 3570169689Skan (expand_or_defer_fn): Break out from ... 3571169689Skan (expand_body): ... here; deal with unit-at-a-time. 3572169689Skan * cp-lang.c (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, 3573169689Skan LANG_HOOKS_CALLGRAPH_LOWER_FUNCTION): Define. 3574169689Skan 3575169689Skan2003-07-01 Mark Mitchell <mark@codesourcery.com> 3576169689Skan 3577169689Skan * call.c (resolve_scoped_fn_name): Return error_mark_node for 3578169689Skan erroneous cases. 3579169689Skan 3580169689Skan2003-07-01 Mark Mitchell <mark@codesourcery.com> 3581169689Skan 3582169689Skan PR c++/11149 3583169689Skan * call.c (resolve_scoped_fn_name): Check that the qualifying scope 3584169689Skan is a class type. 3585169689Skan 3586169689Skan2003-07-01 Giovanni Bajo <giovannibajo@libero.it> 3587169689Skan 3588169689Skan PR c++/8046 3589169689Skan * error.c (dump_decl): Handle BIT_NOT_EXPR as 3590169689Skan pseudo destructor calls. 3591169689Skan 3592169689Skan2003-07-01 Nathan Sidwell <nathan@codesourcery.com> 3593169689Skan 3594169689Skan * cp-tree.h (define_label): Replace filename and lineno 3595169689Skan arguments with a location_t. 3596169689Skan * decl.c (pop_label): Adjust define_label call. 3597169689Skan (define_label): Replace filename and lineno arguments with a 3598169689Skan location_t. 3599169689Skan * semantics.c (finish_label): Adjust define_label call. 3600169689Skan 3601169689Skan2003-07-01 Mark Mitchell <mark@codesourcery.com> 3602169689Skan 3603169689Skan PR c++/9559 3604169689Skan * decl2.c (grokfield): Do not build NOP_EXPRs around the 3605169689Skan error_mark_node. 3606169689Skan 3607169689Skan2003-06-30 Neil Booth <neil@daikokuya.co.uk> 3608169689Skan 3609169689Skan * Make-lang.in: Update. 3610169689Skan * cp-lang.c (c_language): Define. 3611169689Skan (LANG_HOOKS_INIT_OPTIONS): Use common hook. 3612169689Skan * cp-tree.h (cxx_init_options): Remove. 3613169689Skan * lex.c: Don't include diagnostic.h. 3614169689Skan (cxx_init_options): Remove. 3615169689Skan 3616169689Skan2003-06-30 Giovanni Bajo <giovannibajo@libero.it> 3617169689Skan 3618169689Skan PR c++/4933 3619169689Skan * error.c (dump_expr): Support correctly the COMPOUND_EXPR 3620169689Skan tree generated within a template. Use dump_expr to dump an 3621169689Skan expression sizeof. 3622169689Skan 3623169689Skan2003-06-30 Giovanni Bajo <giovannibajo@libero.it> 3624169689Skan 3625169689Skan * mangle.c (write_expression): Exit gracefully when trying to 3626169689Skan mangle a CALL_EXPR. 3627169689Skan 3628169689Skan2003-06-30 Giovanni Bajo <giovannibajo@libero.it> 3629169689Skan 3630169689Skan PR c++/10750 3631169689Skan * parser.c (cp_parser_primary_expression): A VAR_DECL with a 3632169689Skan (value- or type-) dependent expression as DECL_INITIAL is a 3633169689Skan valid constant-expression (at parser time). 3634169689Skan 3635169689Skan2003-06-30 Giovanni Bajo <giovannibajo@libero.it> 3636169689Skan 3637169689Skan PR c++/11106 3638169689Skan * error.c (dump_decl): Call dump_decl to dump the DECL_NAME for a 3639169689Skan USING_DECL, instead of print_tree_identifier. 3640169689Skan 3641169689Skan2003-06-29 Gabriel Dos Reis <gdr@integrable-solutions.net> 3642169689Skan 3643169689Skan * cp-tree.h (language_to_string): Adjust declaration. 3644169689Skan * dump.c (cp_dump_tree): Adjust usage. 3645169689Skan * error.c (dump_char): Use output_formatted_scalar. Tidy. 3646169689Skan (parm_to_string): Lose unused parameter. Tidy. 3647169689Skan (expr_to_string): Likewise. 3648169689Skan (code_to_string): Likewise. 3649169689Skan (language_to_string): Likewise. 3650169689Skan (op_to_string): Likewise. 3651169689Skan (assop_to_string): Likewise. 3652169689Skan (digit_buffer): Remove. 3653169689Skan (dump_type): Format builtin vector type as __vector__. 3654169689Skan 3655169689Skan2003-06-29 Gabriel Dos Reis <gdr@integrable-solutions.net> 3656169689Skan 3657169689Skan * error.c (print_integer): Remove. 3658169689Skan (dump_type_suffix): Adjust. 3659169689Skan (dump_expr): Likewise. 3660169689Skan 3661169689Skan2003-06-28 Nathan Sidwell <nathan@codesourcery.com> 3662169689Skan 3663169689Skan * error.c (print_instantiation_partial_context): Take a 3664169689Skan location_t. 3665169689Skan (print_instantiation_full_context): Adjust. 3666169689Skan (print_instantiation_context): Adjust. 3667169689Skan 3668169689Skan * cp-tree.h (cp_line_of, cp_file_of): Remove. 3669169689Skan * error.c (cp_line_of, cp_file_of): Merge into ... 3670169689Skan (location_of): ... here. Make static, return a location_t. 3671169689Skan (cp_error_at, cp_warning_at, cp_pedwarn_at): Adjust. 3672169689Skan 3673169689Skan2003-06-28 Nathan Sidwell <nathan@codesourcery.com> 3674169689Skan 3675169689Skan PR c++/10784 3676169689Skan * call.c (joust): Move warn_conversion check outwards. 3677169689Skan 3678169689Skan2003-06-27 Zack Weinberg <zack@codesourcery.com> 3679169689Skan 3680169689Skan * decl.c (build_typename_type) 3681169689Skan * mangle.c (write_template_template_arg) 3682169689Skan * parser.c (cp_parser_scope_through_which_access_occurs) 3683169689Skan * pt.c (push_access_scope_real, push_access_scope, pop_access_scope) 3684169689Skan * repo.c (get_base_filename) 3685169689Skan * semantics.c (maybe_convert_cond): 3686169689Skan Mark the definition static, matching the forward declaration. 3687169689Skan 3688169689Skan2003-06-27 Mark Mitchell <mark@codesourcery.com> 3689169689Skan 3690169689Skan PR c++/10468 3691169689Skan * pt.c (tsubst): Handle qualified TYPEOF_TYPEs correctly. 3692169689Skan 3693169689Skan2003-06-27 Mark Mitchell <mark@codesourcery.com> 3694169689Skan 3695169689Skan PR c++/10796 3696169689Skan * decl.c (finish_enum): Implement DR377. 3697169689Skan 3698169689Skan * decl.c (cp_finish_decl): Don't make variables with reference 3699169689Skan type readonly while they are being initialized. 3700169689Skan 3701169689Skan2003-06-26 Mark Mitchell <mark@codesourcery.com> 3702169689Skan 3703169689Skan PR c++/11332 3704169689Skan * typeck.c (build_static_cast): Avoid returning expressions with 3705169689Skan reference type. 3706169689Skan 3707169689Skan2003-06-26 Nathan Sidwell <nathan@codesourcery.com> 3708169689Skan 3709169689Skan * call.c (build_op_delete_call): Use strip_array_call. Correct 3710169689Skan error message to say 'delete' or 'delete[]'. 3711169689Skan 3712169689Skan2003-06-26 Giovanni Bajo <giovannibajo@libero.it> 3713169689Skan 3714169689Skan PR c++/8266 3715169689Skan * pt.c (check_explicit_specialization): When looking up a 3716169689Skan template function from an identifier outside class-scope, bind 3717169689Skan it to CP_DECL_CONTEXT. 3718169689Skan 3719169689Skan2003-06-25 Mark Mitchell <mark@codesourcery.com> 3720169689Skan 3721169689Skan PR c++/10990 3722169689Skan * search.c (lookup_base_r): Rely on accessible_p, rather than 3723169689Skan trying to emulate that logic here. 3724169689Skan 3725169689Skan PR c++/10931 3726169689Skan * call.c (convert_like): Pass issue_conversion_warnings. 3727169689Skan (convert_like_with_context): Likewise. 3728169689Skan (convert_like_real): Add issue_conversion_warnings parameter. 3729169689Skan (perform_direct_initialization_if_possible): New function. 3730169689Skan * cp-tree.h (perform_direct_initialization_if_possible): Declare it. 3731169689Skan * typeck.c (check_for_casting_away_constness): New function. 3732169689Skan (build_static_cast): Rewrite. 3733169689Skan 3734169689Skan2003-06-24 Nathan Sidwell <nathan@codesourcery.com> 3735169689Skan 3736169689Skan * call.c (enforce_access): Assert we get a binfo. 3737169689Skan (build_op_delete_call): Pass a binfo to 3738169689Skan perform_or_defer_access_check. 3739169689Skan * class.c (alter_access): Likewise. 3740169689Skan * decl.c (make_typename_type): Likewise. 3741169689Skan (make_unbound_class_template): Likewise. 3742169689Skan * lex.c (do_identifier): Likewise. 3743169689Skan * method.c (hack_identifier): Likewise. 3744169689Skan * parser.c (cp_parser_lookup_name): Likewise. 3745169689Skan * search.c (lookup_member): Likewise. Move IDENTIFIER_CLASS_VALUE 3746169689Skan test. 3747169689Skan * semantics.c (finish_non_static_data_member): Likewise. 3748169689Skan (perform_or_defer_access_check): Expect a binfo. 3749169689Skan * typeck.c (comptypes): Expect types. 3750169689Skan 3751169689Skan * mangle.c (find_substitution): Don't pass a non-type to same_type_p 3752169689Skan * friend.c (make_friend_class): Likewise. 3753169689Skan * pt.c (check_default_tmpl_args): Likewise. 3754169689Skan (lookup_template_class): Likewise. 3755169689Skan 3756169689Skan2003-06-24 Jan Hubicka <jh@suse.cz> 3757169689Skan 3758169689Skan * method.c (thunk_labelno): Move outside ifdef block to make garbage 3759169689Skan collector happy. 3760169689Skan 3761169689Skan2003-06-24 Jan Hubicka <jh@suse.cz> 3762169689Skan 3763169689Skan * class.c (build_vtable): Make vtables. 3764169689Skan * cp-tree.h (DECL_VTABLE_OR_VTT_P): New macro. 3765169689Skan * decl2.c (output_vtable_inherit): Rename to ... 3766169689Skan (prepare_assemble_variable): ... this one; change interface. 3767169689Skan (maybe_emit_vtables): Do not call output_vtable_inherit. 3768169689Skan * cp-lang.c (LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE): Define. 3769169689Skan * cp-tree.h (prepare_assemble_variable): New. 3770169689Skan 3771169689Skan2003-06-23 Andrew Pinski <pinskia@physics.uc.edu> 3772169689Skan 3773169689Skan * method.c: add prototype for make_alias_for_thunk. 3774169689Skan (thunk_labelno, make_alias_for_thunk): only define 3775169689Skan if ASM_OUTPUT_DEF is defined. 3776169689Skan 3777169689Skan2003-06-23 Jakub Jelinek <jakub@redhat.com> 3778169689Skan 3779169689Skan * method.c (thunk_labelno): New variable. 3780169689Skan (make_alias_for_thunk): New function. 3781169689Skan (use_thunk): Use it if defined ASM_OUTPUT_DEF. Put the thunk 3782169689Skan into the same section as the function it is calling. 3783169689Skan Include gt-cp-method.h. 3784169689Skan * Make-lang.in (gt-cp-method.h): Depend on s-gtype. 3785169689Skan (cp/method.o): Depend on gt-cp-method.h. 3786169689Skan * config-lang.in (gtfiles): Add $(srcdir)/cp/method.c. 3787169689Skan 3788169689Skan2003-06-23 Jan Hubicka <jh@suse.cz> 3789169689Skan 3790169689Skan * decl.c (register_dtor_fn): Mark cleanup as used. 3791169689Skan * decl2.c (mark_vtable_entries): Skip nops. 3792169689Skan * rtti.c (get_tinfo_ptr): Mark tinfo as used. 3793169689Skan (build_dynamic_cast_1): Likewise. 3794169689Skan (tinfo_base_init): Likewise. 3795169689Skan (emit_tinfo_decl): Likewise. 3796169689Skan 3797169689Skan2003-06-23 Jakub Jelinek <jakub@redhat.com> 3798169689Skan 3799169689Skan * mangle.c (hash_type): Val is the TREE_LIST itself, not a pointer 3800169689Skan to it. 3801169689Skan 3802169689Skan2003-06-21 Gabriel Dos Reis <gdr@integrable-solutions.net> 3803169689Skan 3804169689Skan PR c++/10784 3805169689Skan * call.c (joust): Warn about choosing conversion sequence only if 3806169689Skan -Wconversion. 3807169689Skan 3808169689Skan2003-06-21 Gabriel Dos Reis <gdr@integrable-solutions.net> 3809169689Skan 3810169689Skan PR c++/10864 3811169689Skan * call.c (op_error): Tidy. 3812169689Skan * error.c (dump_expr): Properly format 'T()' when T is an 3813169689Skan aggregate type. 3814169689Skan 3815169689Skan2003-06-21 Gabriel Dos Reis <gdr@integrable-solutions.net> 3816169689Skan 3817169689Skan PR c++/10915 3818169689Skan * decl.c (grok_op_properties): Warn possible confusing conversion 3819169689Skan only if -Wconversion. 3820169689Skan 3821169689Skan2003-06-20 Mark Mitchell <mark@codesourcery.com> 3822169689Skan 3823169689Skan PR c++/10749 3824169689Skan * parser.c (cp_parser_class_head): See through dependent names 3825169689Skan when parsing a class-head. 3826169689Skan 3827169689Skan PR c++/10845 3828169689Skan * pt.c (try_class_unification): Correct handling of member class 3829169689Skan templates. 3830169689Skan 3831169689Skan2003-06-20 Nathan Sidwell <nathan@codesourcery.com> 3832169689Skan 3833169689Skan * semantics.c (genrtl_finish_function): Adjust 3834169689Skan expand_function_end call. 3835169689Skan 3836169689Skan2003-06-19 Mark Mitchell <mark@codesourcery.com> 3837169689Skan 3838169689Skan PR c++/10939 3839169689Skan * pt.c (tsubst_decl): Do not try to substitute into non-dependent 3840169689Skan functions. 3841169689Skan (value_dependent_expression_p): Correct logic for FUNCTION_DECLs. 3842169689Skan 3843169689Skan PR c++/9649 3844169689Skan * cp-tree.h (pushdecl_class_level): Change prototype. 3845169689Skan (push_class_level_binding): Likewise. 3846169689Skan * decl.c (add_binding): Reject duplicate static data members. 3847169689Skan (pushdecl_class_level): Return a value indicating whether or not 3848169689Skan the binding was valid. 3849169689Skan (push_class_level_binding): Likewise. 3850169689Skan * semantics.c (finish_member_declaration): Don't keep invalid 3851169689Skan declarations. 3852169689Skan 3853169689Skan PR c++/11041 3854169689Skan * call.c (initialize_reference): Do not use cp_finish_decl to emit 3855169689Skan temporary variables. 3856169689Skan * cp-tree.h (static_aggregates): Declare. 3857169689Skan (pushdecl_top_level_and_finish): Likewise. 3858169689Skan * decl.c (pushdecl_top_level_1): New function. 3859169689Skan (pushdecl_top_level): Use it. 3860169689Skan (pushdecl_top_level_and_finish): New function. 3861169689Skan (initialize_local_var): Remove redundant code. 3862169689Skan (cp_finish_decl): Remove support for RESULT_DECLs. Don't check 3863169689Skan building_stmt_tree. 3864169689Skan * decl.h (static_aggregates): Remove. 3865169689Skan * decl2.c (get_guard): Use pushdecl_top_level_and_finish. 3866169689Skan * rtti.c (get_tinfo_decl): Use pushdecl_top_level_and_finish. 3867169689Skan (tinfo_base_init): Likewise. 3868169689Skan 3869169689Skan2003-06-19 Matt Austern <austern@apple.com> 3870169689Skan 3871169689Skan PR c++/11228 3872169689Skan * init.c (build_zero_init): Assert that number of array elements 3873169689Skan is an integer constant. 3874169689Skan (build_default_init) Don't use build_zero_init for arrays with 3875169689Skan variable number of elements. 3876169689Skan 3877169689Skan2003-06-19 Andreas Jaeger <aj@suse.de> 3878169689Skan 3879169689Skan * cp-tree.h: Remove duplicated declarations. 3880169689Skan 3881169689Skan2003-06-18 Nathanael Nerode <neroden@gcc.gnu.org> 3882169689Skan 3883169689Skan * pt.c: Convert to ISO C. 3884169689Skan * semantics.c: Convert to ISO C. 3885169689Skan 3886169689Skan2003-06-18 Nathan Sidwell <nathan@codesourcery.com> 3887169689Skan 3888169689Skan * cp-tree.h (comp_except_specs, compparms, cp_has_mutable_p, 3889169689Skan at_least_as_qualified_p, more_qualified_p): Return bool. 3890169689Skan * typeck.c: ANSIFY function definitions. 3891169689Skan (comp_array_types): Take redeclaration bool parameter. 3892169689Skan (comptypes): Rearrange STRICT handling. 3893169689Skan (at_least_as_qualified_p, more_qualified_p, 3894169689Skan comp_cv_qualification): Cache cv quals. 3895169689Skan (compparms): Rearrange loop. 3896169689Skan 3897169689Skan2003-06-18 Nathan Sidwell <nathan@codesourcery.com> 3898169689Skan 3899169689Skan * cp-tree.h (COMPARE_RELAXED): Rename to ... 3900169689Skan (COMPARE_DERIVED): ... here. Adjust comment. 3901169689Skan (resolve_typename_type_in_current_instantiation): Remove. 3902169689Skan (cp_tree_equal, comptypes): Return a bool. 3903169689Skan * cvt.c (convert_to_reference): Adjust comptypes call. 3904169689Skan * pt.c (template_args_equal, unify,): Adjust cp_tree_equal call. 3905169689Skan (resolve_typename_type_in_current_instantiation): Remove. 3906169689Skan * tree.c (cp_tree_equal): Return bool. Cope with TEMPLATE_DECLs and 3907169689Skan IDENTIFIER_NODEs. Abort if undeciderable. Adjust recursive 3908169689Skan calls. Refactor code. 3909169689Skan * typeck.c (comp_array_types): Return bool. Lose callback. 3910169689Skan parameter. Adjust cp_tree_equal calls. 3911169689Skan (comptypes): Return bool. Adjust strict handling. Remove relaxed 3912169689Skan enumeration and java type handling. Deal with typename types here. 3913169689Skan Adjust recursive and cp_tree_equals calls. Adjust base and derived 3914169689Skan checking. 3915169689Skan (comp_target_types): Remove unreachable code. Adjust 3916169689Skan same_or_base_type_p calls. 3917169689Skan (ptr_reasonably_similar): Adjust base and derived check. 3918169689Skan 3919169689Skan * typeck.c (maybe_warn_about_returning_address_of_local): Remove 3920169689Skan unused calculation. 3921169689Skan (check_return_expr): Adjust error messages. 3922169689Skan * cp-tree.def (SCOPE_REF): Correct comment. 3923169689Skan 3924169689Skan2003-06-17 Mark Mitchell <mark@codesourcery.com> 3925169689Skan 3926169689Skan * mangle.c (mangle_conv_op_name_for_type): Correct sprintf format 3927169689Skan string again. 3928169689Skan 3929169689Skan2003-06-17 Robert Abeles <rabeles@archaelogic.com> 3930169689Skan 3931169689Skan * optimize.c (dump_function): Form complete flag name by 3932169689Skan prefixing 'fdump-' to string returned by dump_flag_name(). 3933169689Skan 3934169689Skan2003-06-17 Mark Mitchell <mark@codesourcery.com> 3935169689Skan 3936169689Skan * mangle.c (mangle_conv_op_name_for_type): Correct sprintf format 3937169689Skan string. 3938169689Skan 3939169689Skan2003-06-17 Jason Merrill <jason@redhat.com> 3940169689Skan 3941169689Skan PR c++/10929 3942169689Skan * decl.c (grokfndecl): Don't mark a function inline for 3943169689Skan -finline-functions if it isn't defined. 3944169689Skan 3945169689Skan2003-06-17 Mark Mitchell <mark@codesourcery.com> 3946169689Skan 3947169689Skan PR c++/10712 3948169689Skan * class.c (handle_using_decl): Robustify. 3949169689Skan 3950169689Skan PR c++/11105 3951169689Skan * cp-tree.h (DECL_CONV_FN_TYPE): New method. 3952169689Skan * mangle.c (struct globals): Remove internal_mangling_p. 3953169689Skan (write_unqualified_name): Use DECL_CONV_FN_TYPE. 3954169689Skan (write_template_parm): Don't write out the level number. 3955169689Skan (conv_type_names): New variable. 3956169689Skan (hash_type): New function. 3957169689Skan (compare_type): Likewise. 3958169689Skan (mangle_conv_op_name_for_type): Don't try to mangle conversion 3959169689Skan operator names. 3960169689Skan * search.c (lookup_conversion_operator): New function. 3961169689Skan (lookup_fnfields_1): Use it. 3962169689Skan 3963169689Skan2003-06-17 Andreas Jaeger <aj@suse.de> 3964169689Skan 3965169689Skan * except.c: Remove duplicate declaration of push_eh_cleanup. 3966169689Skan 3967169689Skan * call.c: Remove extra declaration of inhibit_warnings. 3968169689Skan 3969169689Skan2003-06-16 Nathanael Nerode <neroden@gcc.gnu.org> 3970169689Skan 3971169689Skan 2003-06-16 Jens-Michael Hoffmann <jensmh@gmx.de> 3972169689Skan * mangle.c: Convert to ISO C. 3973169689Skan 3974169689Skan2003-06-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3975169689Skan 3976169689Skan * cp/decl.c, cp/pt.c, cp/search.c, cp/tree.c: Don't use the PTR 3977169689Skan macro. 3978169689Skan 3979169689Skan2003-06-16 Nathanael Nerode <neroden@gcc.gnu.org> 3980169689Skan 3981169689Skan * tree.c: Convert to ISO C. 3982169689Skan 3983169689Skan2003-06-16 Kazu Hirata <kazu@cs.umass.edu> 3984169689Skan 3985169689Skan * cp-tree.h: Follow spelling conventions. 3986169689Skan * mangle.c: Likewise. 3987169689Skan * method.c: Likewise. 3988169689Skan * parser.c: Likewise. 3989169689Skan 3990169689Skan2003-06-14 Nathan Sidwell <nathan@codesourcery.com> 3991169689Skan 3992169689Skan * decl.c (start_function): Adjust init_function_start call. 3993169689Skan * method.c (use_thunk): Likewise. 3994169689Skan * semantics.c (genrtl_start_function): Likewise. 3995169689Skan 3996169689Skan2003-06-14 Neil Booth <neil@daikokuya.co.uk> 3997169689Skan 3998169689Skan * Make-lang.in: Remove c-options.o. 3999169689Skan 4000169689Skan2003-06-13 Nathanael Nerode <neroden@gcc.gnu.org> 4001169689Skan 4002169689Skan * lex.c: Convert to ISO C. 4003169689Skan 4004169689Skan 2003-05-19 Jens-Michael Hoffmann <jensmh@gmx.de> 4005169689Skan * init.c: removes use of PARAMS macro. Use ISO style function 4006169689Skan declarations. (Not copyright-significant change.) 4007169689Skan 4008169689Skan * rtti.c: Remove PARAMS. 4009169689Skan 4010169689Skan * typeck2.c: Convert to ISO C. 4011169689Skan 4012169689Skan2003-06-12 Mark Mitchell <mark@codesourcery.com> 4013169689Skan 4014169689Skan PR c++/10635 4015169689Skan * typeck.c (build_c_cast): Check that the destination type is 4016169689Skan complete. 4017169689Skan 4018169689Skan2003-06-11 Mark Mitchell <mark@codesourcery.com> 4019169689Skan 4020169689Skan PR c++/10432 4021169689Skan * cp-tree.h (finish_declarator): Remove. 4022169689Skan * decl.c (cp_finish_decl): Make sure to pop_nested_class even for 4023169689Skan erroneous declarations. 4024169689Skan * semantics.c (finish_declarator): Remove. 4025169689Skan 4026169689Skan2003-06-11 Roger Sayle <roger@eyesopen.com> 4027169689Skan 4028169689Skan * decl2.c (generate_ctor_or_dtor_function): Avoid expanding a 4029169689Skan global static constructor/destructor if it will be empty, i.e. 4030169689Skan either doesn't call any ctors/dtors or only calls pure or const 4031169689Skan ctors/dtors. 4032169689Skan 4033169689Skan2003-06-11 Mark Mitchell <mark@codesourcery.com> 4034169689Skan 4035169689Skan * mangle.c (tm_p.h): Include it. 4036169689Skan * Make-lang.in (cp/mangle.o): Depend on $(TM_P_H). 4037169689Skan 4038169689Skan PR c++/11131 4039169689Skan * tree.c (cp_cannot_inline_fn): Check for "inline" before 4040169689Skan instantiation. 4041169689Skan 4042169689Skan2003-06-10 Jason Merrill <jason@redhat.com> 4043169689Skan 4044169689Skan PR c++/10968 4045169689Skan * pt.c (mark_decl_instantiated): Clear DECL_COMDAT. 4046169689Skan 4047169689Skan2003-06-10 Andrew Pinski <pinskia@physics.uc.edu> 4048169689Skan 4049169689Skan * decl.c (start_cleanup_fn): Move static 'counter' out, mark with GTY. 4050169689Skan (start_cleanup_cnt): New. 4051169689Skan 4052169689Skan2003-06-10 Mark Mitchell <mark@codesourcery.com> 4053169689Skan 4054169689Skan PR c++/11131 4055169689Skan * cp-tree.h (template_for_substitution): Declare. 4056169689Skan * decl2.c (mark_used): Use it when figuring out whether or not a 4057169689Skan function is inline. 4058169689Skan * pt.c (template_for_substitution): Give it external linkage. 4059169689Skan * tree.c (cp_cannot_inline_tree_fn): Instantiate as early as 4060169689Skan possible. 4061169689Skan 4062169689Skan2003-06-09 Zack Weinberg <zack@codesourcery.com> 4063169689Skan 4064169689Skan PR 8861 4065169689Skan * mangle.c (write_real_cst): New function. Implement 4066169689Skan ABI-compliant mangling of floating-point literals when 4067169689Skan -fabi-version>=2; provide backward compatibility with 3.3 when 4068169689Skan -fabi-version=1 (with warning). Clarify commentary. 4069169689Skan (write_template_arg_literal): Use write_real_cst. 4070169689Skan 4071169689Skan2003-06-07 Andreas Jaeger <aj@suse.de> 4072169689Skan 4073169689Skan * cp/decl.c (xref_tag): Remove undefined macro NONNESTED_CLASSES. 4074169689Skan 4075169689Skan2003-06-07 Neil Booth <neil@daikokuya.co.uk> 4076169689Skan 4077169689Skan * cp-lang.c (LANG_HOOKS_DECODE_OPTON): Drop. 4078169689Skan (LANG_HOOKS_HANDLE_OPTION): Override. 4079169689Skan * cp-tree.h (cxx_init_options): Update. 4080169689Skan * lex.c (cxx_init_options): Update. 4081169689Skan 4082169689Skan2003-06-05 Jan Hubicka <jh@suse.cz> 4083169689Skan 4084169689Skan * Make-lang.in: Add support for stageprofile and stagefeedback 4085169689Skan 4086169689Skan2003-06-04 J"orn Rennecke <joern.rennecke@superh.com> 4087169689Skan 4088169689Skan * decl.c (grokdeclarator): Error_mark_node in, error_mark_node out. 4089169689Skan 4090169689Skan2003-06-04 Andreas Jaeger <aj@suse.de> 4091169689Skan 4092169689Skan * g++spec.c (lang_specific_driver): Remove ALT_LIBM usage. 4093169689Skan 4094169689Skan2003-06-03 Jason Merrill <jason@redhat.com> 4095169689Skan 4096169689Skan * cp/cp-tree.h (CP_AGGREGATE_TYPE_P): Accept vectors. 4097169689Skan 4098169689Skan * cp/decl.c (reshape_init): Handle vectors. 4099169689Skan 4100169689Skan * testsuite/g++.dg/init/array10.C: New. 4101169689Skan 4102169689Skan2003-06-03 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 4103169689Skan 4104169689Skan PR c++/10940 4105169689Skan * pt.c (check_explicit_specialization): Check for 'static' 4106169689Skan earlier. 4107169689Skan 4108169689Skan2003-05-31 Diego Novillo <dnovillo@redhat.com> 4109169689Skan 4110169689Skan * class.c (dump_array): Call CONSTRUCTOR_ELTS to access 4111169689Skan the operand of a CONSTRUCTOR node. 4112169689Skan 4113169689Skan2003-05-31 Gabriel Dos Reis <gdr@integrable-solutions.net> 4114169689Skan 4115169689Skan * decl.c (cp_binding_level::this_entity): Rename from this_class. 4116169689Skan (cxx_scope_descriptor): New function. 4117169689Skan (cxx_scope_debug): Likewise. 4118169689Skan (push_binding_level): Use it. 4119169689Skan (pop_binding_level): Likewise. 4120169689Skan (suspend_binding_level): Likewise. 4121169689Skan (resume_binding_level): Likewise. 4122169689Skan (pushlevel_class): Adjust use of this_class. 4123169689Skan (pushtag): Likewise. 4124169689Skan (lookup_name_real): Likewise. 4125169689Skan (global_scope_name): New variable. 4126169689Skan (initialize_predefined_identifiers): Initialize it. 4127169689Skan (push_namespace): Use it. 4128169689Skan (make_cxx_scope): New function. 4129169689Skan (pushlevel): Use it. 4130169689Skan (pushlevel_class): Likewise. 4131169689Skan (push_binding_level): Simplify. Loose the last two arguments. 4132169689Skan (make_binding_level): Remove. 4133169689Skan (initial_push__namespace_scope): New function. 4134169689Skan (push_namespace): Use it. Simplify. 4135169689Skan (cxx_init_decl_processing): Likewise. 4136169689Skan (declare_namespace_level): Remove. 4137169689Skan 4138169689Skan2003-05-31 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 4139169689Skan 4140169689Skan PR c++/10956 4141169689Skan * pt.c (instantiate_decl): Don't use full template arguments if 4142169689Skan we are dealing with specializations. 4143169689Skan 4144169689Skan2003-05-29 Gabriel Dos Reis <gdr@integrable-solutions.net> 4145169689Skan 4146169689Skan * decl.c (ENABLE_SCOPE_CHECKING): Rename from DEBUG_BINDING_LEVELS. 4147169689Skan (binding_depth): Unconditionally define. 4148169689Skan (is_class_level): Likewise. 4149169689Skan (indent): Likewise. Take an indenting parameter. 4150169689Skan (push_binding_level): Remove conditional definittion. 4151169689Skan (pop_binding_level): Likewise. 4152169689Skan (suspend_binding_level): Likewise. 4153169689Skan (resume_binding_level): Likewise. 4154169689Skan (pushlevel): Likewise. 4155169689Skan (pushlevel_class): Likewise. 4156169689Skan (poplevel_class): Likewise. 4157169689Skan (pop_everything): Likewise. 4158169689Skan 4159169689Skan2003-05-27 Gabriel Dos Reis <gdr@integrable-solutions.net> 4160169689Skan 4161169689Skan * name-lookup.h (global_scope_p): New macro. 4162169689Skan * decl.c (pop_binding_level): Use it. Don't refer directly to 4163169689Skan global_binding_level. 4164169689Skan (suspend_binding_level): Likewise. 4165169689Skan (global_bindings_p): Likewise. 4166169689Skan (print_other_binding_stack): Likewise. 4167169689Skan (print_binding_stack): Likewise. 4168169689Skan (maybe_push_to_top_level): Likewise. 4169169689Skan (pushdecl_namespace_level): Likewise. 4170169689Skan (cxx_init_decl_processing): Likewise. 4171169689Skan (start_decl): Likewise. 4172169689Skan (cp_finish_decl): Likewise. 4173169689Skan (start_function): Likewise. 4174169689Skan (global_binding_level): Remove. 4175169689Skan 4176169689Skan2003-05-25 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 4177169689Skan 4178169689Skan * parser.c (cp_parser_explicit_instantiation): Restore old 4179169689Skan access before template instantiation. 4180169689Skan 4181169689Skan2003-05-23 Geoffrey Keating <geoffk@apple.com> 4182169689Skan 4183169689Skan * lang-specs.h: Use -o to specify preprocessor's output file. 4184169689Skan Make -no-integrated-cpp work when building PCH files. 4185169689Skan 4186169689Skan2003-05-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 4187169689Skan 4188169689Skan PR c++/10682 4189169689Skan * pt.c (instantiate_class_template): Use DECL_ARTIFICIAL to 4190169689Skan check for implicitly created typedef to an enum. 4191169689Skan 4192169689Skan2003-05-21 Jason Merrill <jason@redhat.com> 4193169689Skan 4194169689Skan * init.c (build_vec_delete): Copy the address into a temporary 4195169689Skan variable before calling build_vec_delete_1. 4196169689Skan * decl2.c (delete_sanity): Don't call stabilize_reference. 4197169689Skan 4198169689Skan2003-05-21 Nathan Sidwell <nathan@codesourcery.com> 4199169689Skan 4200169689Skan * pt.c (register_specialization): Update the decl's location, 4201169689Skan if necessary. 4202169689Skan (check_explicit_specialization): Likewise. 4203169689Skan 4204169689Skan2003-05-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 4205169689Skan 4206169689Skan * error.c (dump_expr): Use HOST_WIDE_INT_PRINT_DOUBLE_HEX. 4207169689Skan 4208169689Skan2003-05-21 Danny Smith <dannysmith@users.sourceforge.net> 4209169689Skan 4210169689Skan PR c++/9738 4211169689Skan * decl.c (duplicate_decls): Re-invoke make_decl_rtl 4212169689Skan if the old decl had instantiated DECL_RTL. 4213169689Skan (Base on Richard Henderson 2003-05-13 patch to c-decl.c). 4214169689Skan 4215169689Skan2003-05-19 Matt Austern <austern@apple.com> 4216169689Skan 4217169689Skan * lang-options.h: Document -Wno-invalid-offsetof 4218169689Skan * typeck.c (build_class_member_access_expr): Don't complain about 4219169689Skan (Foo *)p->x for non-POD Foo if warn_invalid_offset is zero. 4220169689Skan 4221169689Skan2003-05-18 Andrew Pinski <pinskia@physics.uc.edu> 4222169689Skan 4223169689Skan * name-lookup.c (free_binding_entry): fix where the GTY markers are. 4224169689Skan (binding_entry_make): Make entry->chain NULL after getting an entry. 4225169689Skan fix the spelling of chain in a comment. 4226169689Skan (binding_table_free): speed up by having temporary variable. 4227169689Skan (binding_table_new): set table->chain to be NULL after allocating 4228169689Skan a table. 4229169689Skan (cxx_binding_make): use gcc_alloc instead of ggc_alloc_cleared and set 4230169689Skan binding->previous to NULL after getting an binding for speed. 4231169689Skan 4232169689Skan2003-05-18 Gabriel Dos Reis <gdr@integrable-solutions.net> 4233169689Skan 4234169689Skan * cp-tree.h (struct lang_type_class): Replace data member tags 4235169689Skan with hash-table nested_udts. 4236169689Skan (CLASSTYPE_NESTED_UTDS): Rename from CLASSTYPE_TAGS. 4237169689Skan * class.c (unreverse_member_declarations): Don't touch 4238169689Skan CLASSTYPE_TAGS. 4239169689Skan (pushclass): Use cxx_remember_type_decls. 4240169689Skan * decl.c (struct cp_binding_level): Replace data member tags with 4241169689Skan hash-table type_decls. 4242169689Skan (pop_binding_level): Handle level->type_decls. 4243169689Skan (kept_level_p): Adjust. 4244169689Skan (poplevel): Remove unused local variable. 4245169689Skan (bt_print_entry): New function. 4246169689Skan (print_binding_level): Use it. 4247169689Skan (push_namespace): Build current_binding_level->type_decls. 4248169689Skan (maybe_process_template_type_declaration): Adjust. 4249169689Skan (pushtag): Likewise. 4250169689Skan (clear_anon_tags): Use binding_table_remove_anonymous_types. 4251169689Skan (gettags): Remove. 4252169689Skan (cxx_remember_type_decls): Rename from storetags. Adjust. 4253169689Skan (lookup_tag): Use binding_table_find_anon_type. Tidy. 4254169689Skan (lookup_tag_reverse): Use binding_table_reverse_maybe_remap. 4255169689Skan (cxx_init_decl_processing): Build global_binding_level->type_decls. 4256169689Skan (store_parm_decls): Remove pointless code. 4257169689Skan * name-lookup.c (free_binding_entry): New variable. 4258169689Skan (ENTRY_INDEX): New macro. 4259169689Skan (struct binding_table_s): New datatype. 4260169689Skan (binding_entry_make): New function. 4261169689Skan (binding_entry_free): Likewise. 4262169689Skan (binding_table_construct): Likewise. 4263169689Skan (binding_table_free): Likewise. 4264169689Skan (binding_table_new): Likewise. 4265169689Skan (binding_table_expand): Likewise. 4266169689Skan (binding_table_insert): Likewise. 4267169689Skan (binding_table_find): Likewise. 4268169689Skan (binding_table_find_anon_type): Likewise. 4269169689Skan (binding_table_reverse_maybe_remap): Likewise. 4270169689Skan (binding_table_remove_anonymous_types): Likewise. 4271169689Skan (binding_table_foreach): Likewise. 4272169689Skan * name-lookup.h (binding_table): New type. 4273169689Skan (binding_entry): Likewise. 4274169689Skan (bt_foreach_proc): Likewise. 4275169689Skan (struct binding_entry_s): New datatype. 4276169689Skan (SCOPE_DEFAULT_HT_SIZE): New macro. 4277169689Skan (CLASS_SCOPE_HT_SIZE): Likewise. 4278169689Skan (NAMESPACE_ORDINARY_HT_SIZE): Likewise. 4279169689Skan (NAMESPACE_STD_HT_SIZE): Likewise. 4280169689Skan (GLOBAL_SCOPE_HT_SIZE): Likewise. 4281169689Skan (binding_table_new): Declare. 4282169689Skan (binding_table_free): Likewise. 4283169689Skan (binding_table_insert): Likewise. 4284169689Skan (binding_table_find_anon_type): Likewise. 4285169689Skan (binding_table_reverse_maybe_remap): Likewise. 4286169689Skan (binding_table_remove_anonymous_types): Likewise. 4287169689Skan (binding_table_foreach): Likewise. 4288169689Skan (binding_table_find): Likewise. 4289169689Skan (cxx_remember_type_decls): Likewise. 4290169689Skan * pt.c (bt_instantiate_type_proc): New function. 4291169689Skan (do_type_instantiation): Use it. 4292169689Skan * search.c (lookup_field_r): Use binding_table_find. 4293169689Skan 4294169689Skan2003-05-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 4295169689Skan 4296169689Skan * semantics.c (perform_deferred_access_checks): Don't discard 4297169689Skan checked access. 4298169689Skan 4299169689Skan2003-05-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 4300169689Skan 4301169689Skan * error.c (cp_error_at, cp_warning_at, cp_pedwarn_at): Eliminate 4302169689Skan libiberty VA_ macros, always use stdarg. 4303169689Skan * rtti.c (create_pseudo_type_info): Likewise. 4304169689Skan * tree.c (build_min_nt, build_min): Likewise. 4305169689Skan 4306169689Skan2003-05-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 4307169689Skan 4308169689Skan * ptree.c (cxx_print_type, cxx_print_xnode): Use string 4309169689Skan concatentation on HOST_WIDE_INT_PRINT_* format specifier to 4310169689Skan collapse multiple function calls into one. 4311169689Skan * tree.c (debug_binfo): Likewise. 4312169689Skan 4313169689Skan2003-05-15 Jason Merrill <jason@redhat.com> 4314169689Skan 4315169689Skan PR c++/5388 4316169689Skan * call.c (conditional_conversion): Don't consider implicit 4317169689Skan conversions if T2 is a base of T1. 4318169689Skan * cp-tree.h (DERIVED_FROM_P, UNIQUELY_DERIVED_FROM_P): Make boolean. 4319169689Skan (ACCESSIBLY_UNIQUELY_DERIVED_P, PUBLICLY_UNIQUELY_DERIVED_P): Likewise. 4320169689Skan 4321169689Skan * parser.c (cp_parser_primary_expression): Convert a static data 4322169689Skan member from reference. 4323169689Skan 4324169689Skan2003-05-15 Mark Mitchell <mark@codesourcery.com> 4325169689Skan 4326169689Skan * call.c (build_op_delete_call): Avoid creating unnecessary types. 4327169689Skan * class.c (instantiate_type): Remove tests for tf_no_attributes. 4328169689Skan * cp-tree.h (tsubst_flags_t): Remove tf_no_attributes. 4329169689Skan (COMPARE_NO_ATTRIBUTES): Remove. 4330169689Skan * typeck.c (comptypes): Do not check COMPARE_NO_ATTRIBUTES. 4331169689Skan 4332169689Skan PR c++/8385 4333169689Skan * semantics.c (finish_typeof): Refine type-dependency check. 4334169689Skan 4335169689Skan2003-05-13 Jason Merrill <jason@redhat.com> 4336169689Skan 4337169689Skan * typeck.c (build_modify_expr): Don't always stabilize the lhs and 4338169689Skan rhs. Do stabilize the lhs of a MODIFY_EXPR used on the lhs. 4339169689Skan 4340169689Skan2003-05-11 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 4341169689Skan 4342169689Skan * method.c (synthesize_method): Call push/pop_deferring_access_checks. 4343169689Skan 4344169689Skan2003-05-11 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 4345169689Skan 4346169689Skan PR c++/10230, c++/10481 4347169689Skan * semantics.c (finish_non_static_data_member): Handle when the 4348169689Skan non-static member is not from a base of the current class type. 4349169689Skan 4350169689Skan2003-05-11 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 4351169689Skan 4352169689Skan PR c++/10552 4353169689Skan * pt.c (tsubst_copy): Handle TEMPLATE_DECL that is a member class 4354169689Skan template and has dependent context. 4355169689Skan 4356169689Skan2003-05-10 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 4357169689Skan 4358169689Skan * pt.c (instantiate_decl): Call push/pop_deferring_access_checks. 4359169689Skan 4360169689Skan2003-05-10 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 4361169689Skan 4362169689Skan PR c++/9252 4363169689Skan * cp-tree.h (saved_scope): Remove check_access field. 4364169689Skan (tsubst_flags_t): Remove tf_parsing. 4365169689Skan * decl.c (maybe_push_to_top_level): Don't initialize 4366169689Skan scope_chain->check_access. 4367169689Skan (make_typename_type, make_unbound_class_template): Don't use 4368169689Skan tf_parsing. 4369169689Skan (register_dtor_fn): Use push/pop_deferring_access_checks 4370169689Skan instead of scope_chain->check_access. 4371169689Skan * method.c (use_thunk): Likewise. 4372169689Skan * parser.c (cp_parser_explicit_instantiation 4373169689Skan (cp_parser_constructor_declarator_p): Don't call 4374169689Skan push/pop_deferring_access_checks here. 4375169689Skan (cp_parser_template_argument, cp_parser_class_name): Don't use 4376169689Skan tf_parsing. 4377169689Skan (yyparse): Check flag_access_control. 4378169689Skan * pt.c (instantiate_class_template): Call 4379169689Skan push/pop_deferring_access_checks. 4380169689Skan * semantics.c (push_deferring_access_checks): Propagate 4381169689Skan dk_no_check. 4382169689Skan (perform_or_defer_access_check): Make sure basetype_path is 4383169689Skan a type before comparison. 4384169689Skan * call.c (build_op_delete_call, build_over_call): Use 4385169689Skan perform_or_defer_access_check. 4386169689Skan * class.c (alter_access): Likewise. 4387169689Skan * init.c (build_offset_ref): Likewise. 4388169689Skan * lex.c (do_identifier): Likewise. 4389169689Skan * method.c (hack_identifier): Likewise. 4390169689Skan * search.c (lookup_member): Likewise. 4391169689Skan * semantics.c (finish_non_static_data_member): Likewise. 4392169689Skan (simplify_aggr_init_exprs_r): Use push/pop_deferring_access_checks 4393169689Skan instead of flag_access_control. 4394169689Skan 4395169689Skan2003-05-10 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 4396169689Skan 4397169689Skan PR c++/9554 4398169689Skan * parser.c (cp_parser_class_name): Remove check_access parameter. 4399169689Skan All caller adjusted. Update declaration. 4400169689Skan (cp_parser_lookup_name): Likewise. 4401169689Skan * semantics.c (push_deferring_access_checks): Change parameter type 4402169689Skan to enum deferring_kind. All caller adjusted. 4403169689Skan (resume_deferring_access_checks): Adjust to use new enum. 4404169689Skan (stop_deferring_access_checks): Likewise. 4405169689Skan (perform_or_defer_access_check): Likewise. 4406169689Skan * cp-tree.h (deferring_kind): New enum. 4407169689Skan (deferred_access): Adjust field type. 4408169689Skan (push_deferring_access_checks): Update declaration. 4409169689Skan 4410169689Skan2003-05-09 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 4411169689Skan 4412169689Skan PR c++/10555, c++/10576 4413169689Skan * pt.c (lookup_template_class): Handle class template with 4414169689Skan multiple levels of parameters when one of the levels contain 4415169689Skan errors. 4416169689Skan 4417169689Skan2003-05-08 Jason Merrill <jason@redhat.com> 4418169689Skan 4419169689Skan * init.c (build_new_1): Don't reuse a TARGET_EXPR in an 4420169689Skan expression. Undo some of the recent reorg. 4421169689Skan 4422169689Skan2003-05-07 Richard Henderson <rth@redhat.com> 4423169689Skan 4424169689Skan PR c++/10570 4425169689Skan * cfns.gperf: Comment out POSIX thread cancellation points, 4426169689Skan plus abort and raise. 4427169689Skan * cfns.h: Regenerate. 4428169689Skan 4429169689Skan2003-05-07 Jason Merrill <jason@redhat.com> 4430169689Skan 4431169689Skan * call.c (build_conditional_expr): Don't assume that the folded 4432169689Skan expression has result_type. 4433169689Skan 4434169689Skan2003-05-06 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 4435169689Skan 4436169689Skan * typeck.c (build_unary_op): Deal with const qualifier in 4437169689Skan invalid pointer-to-member earlier. 4438169689Skan 4439169689Skan2003-05-05 Jason Merrill <jason@redhat.com> 4440169689Skan 4441169689Skan PR c++/9537 4442169689Skan * call.c (conditional_conversion): Build an RVALUE_CONV if 4443169689Skan we're just changing the cv-quals. 4444169689Skan (build_conditional_expr): Don't call convert to change 4445169689Skan cv-quals. 4446169689Skan 4447169689Skan2003-05-05 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 4448169689Skan 4449169689Skan PR c++/10496 4450169689Skan * typeck.c (build_unary_op): Don't output const qualifier when 4451169689Skan output invalid pointer-to-member diagnostics. 4452169689Skan 4453169689Skan2003-05-05 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 4454169689Skan 4455169689Skan * decl.c: Fix typos. 4456169689Skan 4457169689Skan2003-05-05 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 4458169689Skan 4459169689Skan PR c++/4494 4460169689Skan * decl.c (start_function): Use same_type_p to check return type 4461169689Skan of main. 4462169689Skan 4463169689Skan2003-05-03 Zack Weinberg <zack@codesourcery.com> 4464169689Skan 4465169689Skan PR c/10604 4466169689Skan * cp/typeck.c (build_x_compound_expr): No need to check 4467169689Skan extra_warnings as well as warn_unused_value. 4468169689Skan 4469169689Skan2003-05-03 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 4470169689Skan 4471169689Skan PR c++/9364, c++/10553, c++/10586 4472169689Skan * decl.c (make_typename_type): Don't crash on illegal code. 4473169689Skan 4474169689Skan2003-05-03 Nathan Sidwell <nathan@codesourcery.com> 4475169689Skan 4476169689Skan * class.c (finish_struct): Use location_t and input_location 4477169689Skan directly. 4478169689Skan * decl.c (make_label_decl): Likewise. 4479169689Skan (use_label): Likewise. 4480169689Skan * decl2.c (warn_if_unknown_interface): Likewise. 4481169689Skan (start_static_initialization_or_destruction): Likewise. 4482169689Skan (generate_ctor_or_dtor_function): Likewise. 4483169689Skan (finish_file): Likewise. 4484169689Skan * error.c (print_instantiation_full_context): Likewise. 4485169689Skan * init.c (create_temporary_var): Likewise. 4486169689Skan * method.c (synthesize_method): Likewise. 4487169689Skan * parser.c (cp_token): Likewise. 4488169689Skan (cp_lexer_set_source_position_from_token): Likewise. 4489169689Skan (cp_lexer_get_preprocessor_token): Likewise. 4490169689Skan (cp_parser_statement): Likewise. 4491169689Skan * pt.c (tsubst_friend_function): Likewise. 4492169689Skan (instantiate_class_template): Likewise. 4493169689Skan (tsubst_decl): Likewise. 4494169689Skan (tsubst): Likewise. 4495169689Skan (instantiate_decl): Likewise. 4496169689Skan * semantics.c (begin_class_definition): Likewise. 4497169689Skan (expand_body): Likewise. 4498169689Skan 4499169689Skan2003-05-01 Nathan Sidwell <nathan@codesourcery.com> 4500169689Skan 4501169689Skan * class.c (finish_struct): Rename lineno to input_line. 4502169689Skan * decl.c (push_binding_level, pop_binding_level, 4503169689Skan suspend_binding_level, resume_binding_level, make_label_decl, 4504169689Skan use_label, start_function): Likewise. 4505169689Skan * decl2.c (warn_if_unknown_interface, 4506169689Skan start_static_initialization_or_destruction, 4507169689Skan generate_ctor_or_dtor_function, finish_file): Likewise. 4508169689Skan * error.c (cp_line_of, print_instantiation_full_context, 4509169689Skan print_instantiation_context): Likewise. 4510169689Skan * except.c (check_handlers_1, check_handlers): Likewise. 4511169689Skan * init.c (create_temporary_var): Likewise. 4512169689Skan * method.c (use_thunk, synthesize_method): Likewise. 4513169689Skan * parser.c (cp_lexer_set_source_position_from_token, 4514169689Skan cp_lexer_get_preprocessor_token): Likewise. 4515169689Skan * pt.c (push_tinst_level, pop_tinst_level, 4516169689Skan tsubst_friend_function, instantiate_class_template, tsubst_decl, 4517169689Skan tsubst, tsubst_expr, instantiate_decl): Likewise. 4518169689Skan * semantics.c (genrtl_try_block, finish_label_stmt, 4519169689Skan begin_class_definition, expand_body, 4520169689Skan genrtl_finish_function): Likewise. 4521169689Skan * tree.c (build_min_nt, build_min): Likewise. 4522169689Skan 4523169689Skan2003-05-01 Mark Mitchell <mark@codesourcery.com> 4524169689Skan 4525169689Skan * decl2.c (comdat_linkage): Don't externalize explicit 4526169689Skan instantiations. 4527169689Skan 4528169689Skan2003-05-01 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 4529169689Skan 4530169689Skan PR c++/10554 4531169689Skan * decl2.c (do_class_using_decl): Check if operand 0 of SCOPE_REF 4532169689Skan is not NULL. 4533169689Skan 4534169689Skan2003-05-01 Steven Bosscher <steven@gcc.gnu.org> 4535169689Skan 4536169689Skan * cp-tree.h (struct lang_id2): Remove. Move fields from here... 4537169689Skan (struct lang_identifier): ... to here. 4538169689Skan (LANG_ID_FIELD): Remove. 4539169689Skan (SET_LANG_ID): Remove. 4540169689Skan (IDENTIFIER_LABEL_VALUE): Adjust for new lang_identifier. 4541169689Skan (SET_IDENTIFIER_LABEL_VALUE): Likewise. 4542169689Skan (IDENTIFIER_IMPLICIT_DECL): Likewise. 4543169689Skan (SET_IDENTIFIERL_IMPLICIT_DECL): Likewise. 4544169689Skan (IDENTIFIER_ERROR_LOCUS): Likewise. 4545169689Skan (SET_IDENTIFIER_ERROR_LOCUS): Likewise. 4546169689Skan 4547169689Skan2003-05-01 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 4548169689Skan 4549169689Skan PR c++/8772 4550169689Skan * pt.c (convert_template_argument): Correct diagnostic. 4551169689Skan 4552169689Skan2003-04-30 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 4553169689Skan 4554169689Skan PR c++/9432, c++/9528 4555169689Skan * decl2.c (validate_nonmember_using_decl): Handle SCOPE_REF. 4556169689Skan 4557169689Skan2003-04-30 Garbiel Dos Reis <gcc@integrable-solutions.net> 4558169689Skan 4559169689Skan * decl.c (check_previous_goto_1): Adjust prototype. 4560169689Skan (check_previous_goto): Adjust use. 4561169689Skan (check_switch_goto): Likewise. 4562169689Skan (use_label): Adjust. 4563169689Skan (check_previous_goto_1): Don't use pedwarn_with_file_and_line. 4564169689Skan (struct named_label_use_list): Use location_t datatype. 4565169689Skan 4566169689Skan2003-04-29 Mark Mitchell <mark@codesourcery.com> 4567169689Skan 4568169689Skan PR c++/10551 4569169689Skan * pt.c (mark_decl_instantiated): Defer all explicit instantiations 4570169689Skan that have not yet been written out. 4571169689Skan 4572169689Skan2003-04-29 Mark Mitchell <mark@codesourcery.com> 4573169689Skan 4574169689Skan PR c++/10549 4575169689Skan * class.c (layout_class_type): Mark overlong bitfields as having 4576169689Skan the maximum size permitted by their type, after layout. 4577169689Skan 4578169689Skan PR c++/10527 4579169689Skan * error.c (dump_expr): Correctly handling of NEW_EXPR.4 4580169689Skan 4581169689Skan2003-04-29 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 4582169689Skan 4583169689Skan * call.c (build_operator_new_call): Fix typo. 4584169689Skan * lang-options.h: Likewise. 4585169689Skan 4586169689Skan2003-04-29 Mark Mitchell <mark@codesourcery.com> 4587169689Skan 4588169689Skan PR c++/10515 4589169689Skan * cp-tree.h (lookup_field_1): Declare it. 4590169689Skan * search.c (lookup_field_1): Make it public. 4591169689Skan * decl.c (reshape_init): Handle designated initializers. 4592169689Skan 4593169689Skan * decl.c (maybe_commonize_var): Further tweak support for systems 4594169689Skan without weak symbols. 4595169689Skan 4596169689Skan2003-04-27 Mark Mitchell <mark@codesourcery.com> 4597169689Skan 4598169689Skan * decl.c (maybe_commonize_var): Fix thinko in last patch. 4599169689Skan 4600169689Skan2003-04-27 Mark Mitchell <mark@codesourcery.com> 4601169689Skan 4602169689Skan PR c++/10506 4603169689Skan * method.c (use_thunk): Decrement immediate_size_expand. 4604169689Skan 4605169689Skan PR c++/10503 4606169689Skan * cp-tree.h (DECL_VAR_MARKED_P): New macro. 4607169689Skan (DECL_MAYBE_TEMPLATE): Remove. 4608169689Skan * class.c (fixed_type_or_null): Avoid infinite recursion. 4609169689Skan 4610169689Skan * decl.c (maybe_commonize_var): Make the code match the comments. 4611169689Skan * pt.c (instantiate_decl): Move call to import_export_decl. 4612169689Skan 4613169689Skan2003-04-26 Mark Mitchell <mark@codesourcery.com> 4614169689Skan 4615169689Skan * decl2.c (finish_file): Fix merge botch. 4616169689Skan 4617169689Skan2003-04-25 Mark Mitchell <mark@codesourcery.com> 4618169689Skan 4619169689Skan * decl2.c (finish_file): Don't call import_export_decl for 4620169689Skan functions that are not defined. 4621169689Skan (handle_class_head): Robustify. 4622169689Skan * pt.c (instantiate_decl): Do not call cp_finish_decl for 4623169689Skan variables that are not defined. 4624169689Skan 4625169689Skan2003-04-24 Sylvain Pion <Sylvain.Pion@mpi-sb.mpg.de> 4626169689Skan 4627169689Skan * call.c (print_z_candidates): Fix off by one error. 4628169689Skan 4629169689Skan2003-04-24 Nathan Sidwell <nathan@codesourcery.com> 4630169689Skan 4631169689Skan PR c++/10337 4632169689Skan * call.c (joust): Don't warn about conversion ops that are exact 4633169689Skan or cv-conversions. Rearrange to avoid multiple type comparisons. 4634169689Skan 4635169689Skan2003-04-23 Mark Mitchell <mark@codesourcery.com> 4636169689Skan 4637169689Skan PR c++/10471 4638169689Skan * call.c (build_cxx_call): Robustify. 4639169689Skan 4640169689Skan2003-04-23 Neil Booth <neil@daikokuya.co.uk> 4641169689Skan 4642169689Skan * Make-lang.in (lex.o): Remove mbchar.h. 4643169689Skan * lex.c (MULTIBYTE_CHARS): Lose. 4644169689Skan * parser.c (cp_lexer_get_preprocessor_token): CPP_OTHER handled 4645169689Skan in c-lex.c. 4646169689Skan 4647169689Skan2003-04-23 Mark Mitchell <mark@codesourcery.com> 4648169689Skan 4649169689Skan PR c++/9847 4650169689Skan * cp-tree.h (duplicate_tag_error): Remove. 4651169689Skan * class.c (duplicate_tag_error): Remove. 4652169689Skan * semantics.c (begin_class_definition): Return immediately for a 4653169689Skan duplicate class definition. 4654169689Skan 4655169689Skan PR c++/10451 4656169689Skan * decl.c (grokdeclarator): Correct logic for "mutable" errors. 4657169689Skan 4658169689Skan2003-04-22 Mark Mitchell <mark@codesourcery.com> 4659169689Skan 4660169689Skan PR c++/10446 4661169689Skan * search.c (lookup_fnfields_1): Handle empty slots in the method 4662169689Skan vector. 4663169689Skan 4664169689Skan PR c++/10428 4665169689Skan * decl.c (check_elaborated_type_specifier): New function, split 4666169689Skan out from ... 4667169689Skan (xref_tag): ... here. Use the new function in more places. 4668169689Skan 4669169689Skan * rtti.c (throw_bad_typeid): Use build_cxx_call. 4670169689Skan 4671169689Skan2003-04-21 Mark Mitchell <mark@codesourcery.com> 4672169689Skan 4673169689Skan * call.c (build_over_call): Use build_cxx_call. 4674169689Skan (build_cxx_call): New method, split out of build_over_call. 4675169689Skan * cp-tree.h (language_function): Add can_throw. 4676169689Skan (build_cxx_call): Declare it. 4677169689Skan * decl.c (finish_function): If a function does not contain any 4678169689Skan calls to functions that can throw an exception, indicate that 4679169689Skan fact. 4680169689Skan * decl2.c (mark_used): Do not defer the instantiation of 4681169689Skan functions, if the current function does not throw. 4682169689Skan * optimize.c (maybe_clone_body): Copy TREE_NOTHROW to the clones. 4683169689Skan * pt.c (instantiate_decl): Make sure import_export_decl is called 4684169689Skan before emitting things. 4685169689Skan * rtti.c (throw_bad_cast): Use build_cxx_call. 4686169689Skan (build_dynamic_cast_1): Likewise. 4687169689Skan * typeck.c (build_function_call): Likewise. 4688169689Skan 4689169689Skan2003-04-21 Nathan Sidwell <nathan@codesourcery.com> 4690169689Skan 4691169689Skan PR c++/9881 4692169689Skan * typeck.c (build_unary_op): Fold all COMPONENT_REF addr 4693169689Skan expressions. Reverts my 2002-08-08 patch. 4694169689Skan 4695169689Skan * typeck.c (comp_ptr_ttypes_real): Swap final && operands for 4696169689Skan cheaper early exit. 4697169689Skan 4698169689Skan2003-04-20 Nathan Sidwell <nathan@codesourcery.com> 4699169689Skan 4700169689Skan * cp/decl2.c (start_static_storage_duration_function): Take count 4701169689Skan arg, don't check if it wraps round. 4702169689Skan (generate_ctor_or_dtor_function): Add locus arg, use it. 4703169689Skan (generate_ctor_and_dtor_functions_for_priority): Data arg is a 4704169689Skan locus. 4705169689Skan (finish_file): Set line numbers to past EOF for synthesized 4706169689Skan functions. 4707169689Skan 4708169689Skan2003-04-20 Nathan Sidwell <nathan@codesourcery.com> 4709169689Skan 4710169689Skan PR c++/10405 4711169689Skan * search.c (lookup_field_1): Final scan goes backwards for 4712169689Skan types, forwards for non-types. 4713169689Skan 4714169689Skan2003-04-17 Roger Sayle <roger@eyesopen.com> 4715169689Skan 4716169689Skan PR c/10375 4717169689Skan * decl.c (duplicate_decls): Preserve "const", "noreturn" and 4718169689Skan "nothrow" function attributes. 4719169689Skan 4720169689Skan2003-04-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 4721169689Skan 4722169689Skan PR c++/10347 4723169689Skan * pt.c (type_dependent_expression_p): Handle array new. 4724169689Skan 4725169689Skan2003-04-15 Mark Mitchell <mark@codesourcery.com> 4726169689Skan 4727169689Skan PR c++/10381 4728169689Skan * parser.c (cp_parser_primary_expression): Reorganize logic for 4729169689Skan dealing with name lookup failures. 4730169689Skan 4731169689Skan2003-04-15 Jason Merrill <jason@redhat.com> 4732169689Skan 4733169689Skan * decl2.c (mark_used): Don't instantiate anything if 4734169689Skan skip_evaluation. 4735169689Skan 4736169689Skan2003-04-14 Ziemowit Laski <zlaski@apple.com> 4737169689Skan 4738169689Skan * tree.c (build_cplus_array_type_1): Do not call 4739169689Skan uses_template_parms() on a NULL index_type. 4740169689Skan 4741169689Skan2003-04-13 Roger Sayle <roger@eyesopen.com> 4742169689Skan 4743169689Skan * decl.c (duplicate_decls): Preserve pure and malloc attributes. 4744169689Skan 4745169689Skan2003-04-12 Mark Mitchell <mark@codesourcery.com> 4746169689Skan 4747169689Skan PR c++/10300 4748169689Skan * init.c (build_new_1): Reorganize. 4749169689Skan 4750169689Skan2003-04-12 Zack Weinberg <zack@codesourcery.com> 4751169689Skan 4752169689Skan * class.c (initialize_array) 4753169689Skan * decl.c (reshape_init) 4754169689Skan * decl2.c (build_expr_from_tree) 4755169689Skan * init.c (build_zero_init) 4756169689Skan * pt.c (tsubst_copy, tsubst_copy_and_build) 4757169689Skan * rtti.c (tinfo_base_init, generic_initializer, ptr_initializer) 4758169689Skan (ptm_initializer, class_initializer, get_pseudo_ti_init) 4759169689Skan * semantics.c (finish_compound_literal) 4760169689Skan * typeck.c (build_ptrmemfunc1) 4761169689Skan * typeck2.c (store_init_value, process_init_constructor) 4762169689Skan (build_functional_cast): Use build_constructor. 4763169689Skan 4764169689Skan2003-04-12 Zack Weinberg <zack@codesourcery.com> 4765169689Skan 4766169689Skan * call.c (print_z_candidates): Use gcc_gettext_width, not 4767169689Skan strlen, to determine how much padding to use. 4768169689Skan 4769169689Skan2003-04-10 Zack Weinberg <zack@codesourcery.com> 4770169689Skan 4771169689Skan * decl.c: Update all calls to shadow_warning. 4772169689Skan 4773169689Skan2003-04-10 Mark Mitchell <mark@codesourcery.com> 4774169689Skan 4775169689Skan * class.c (layout_class_type): Correct handling for overlong 4776169689Skan bit-fields whose width is the same as an integer type. 4777169689Skan 4778169689Skan2003-04-06 Zack Weinberg <zack@codesourcery.com> 4779169689Skan 4780169689Skan * cp-tree.def: Make fourth element for all 'c' and 'x' nodes zero. 4781169689Skan * cp-lang.c (cp_tree_size): New function. 4782169689Skan (LANG_HOOKS_TREE_SIZE): Override. 4783169689Skan 4784169689Skan * cp-tree.h (SOURCE_LOCUS, SRCLOC_FILE, SRCLOC_LINE, struct 4785169689Skan tree_srcloc, TS_CP_COMMON, TS_CP_SRCLOC): Kill. 4786169689Skan (union lang_tree_node): Remove common and srcloc members. 4787169689Skan (build_srcloc_here): Don't prototype. 4788169689Skan * decl.c (cp_tree_node_structure): Kill SRCLOC case. 4789169689Skan * pt.c (pending_templates): Correct comment. 4790169689Skan * tree.c (build_srcloc, build_srcloc_here): Kill. 4791169689Skan 4792169689Skan2003-04-06 Zack Weinberg <zack@codesourcery.com> 4793169689Skan 4794169689Skan * call.c: Include intl.h. 4795169689Skan (print_z_candidate): Always use inform; get rid of errfn 4796169689Skan argument. Reorganize so that all the strings get picked up 4797169689Skan by xgettext. Note obligation of caller to pass first argument 4798169689Skan through gettext. 4799169689Skan (print_z_candidates): Update to match. Indent second and 4800169689Skan successive candidates by strlen() of translated message. 4801169689Skan (joust): Restructure ambiguous-conversion pedwarn so that 4802169689Skan translators see a complete sentence. Update calls to 4803169689Skan print_z_candidate. 4804169689Skan 4805169689Skan * Make-lang.in (cp/call.o): Update dependencies. 4806169689Skan 4807169689Skan2003-04-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 4808169689Skan 4809169689Skan * decl.c (set_current_binding_level): Delete, revert last change. 4810169689Skan (current_binding_level): Modify to allow it as as lvalue. 4811169689Skan 4812169689Skan2003-04-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 4813169689Skan 4814169689Skan * name-lookup.c (find_binding): Pass appropriate pointer type to 4815169689Skan POP_TIMEVAR_AND_RETURN. 4816169689Skan 4817169689Skan2003-04-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 4818169689Skan 4819169689Skan * Make-lang.in (cp-warn): Add $(STRICT_WARN). 4820169689Skan * cp-tree.h: Don't insist on having GNUC. 4821169689Skan 4822169689Skan2003-04-03 Jason Merrill <jason@redhat.com> 4823169689Skan 4824169689Skan * cvt.c (ocp_convert): Only abort if we try to convert an object 4825169689Skan of TREE_ADDRESSABLE type. 4826169689Skan 4827169689Skan * class.c (build_vtable): Set DECL_ALIGN here. 4828169689Skan (get_vtable_decl): Not here. 4829169689Skan (layout_vtable_decl): Or here. 4830169689Skan (create_vtable_ptr): Or here. 4831169689Skan (layout_class_type): Or here. 4832169689Skan (check_bitfield_decl): Don't mess with field alignment. 4833169689Skan 4834169689Skan2003-04-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 4835169689Skan 4836169689Skan * operators.def (DEF_SIMPLE_OPERATOR, DEF_ASSN_OPERATOR, 4837169689Skan DEF_ASSN_OPERATOR): Delete spurious semi-colon. 4838169689Skan * rtti.c (dfs_class_hint_mark): Likewise. 4839169689Skan 4840169689Skan * decl.c (push_local_name, push_class_level_binding, 4841169689Skan maybe_inject_for_scope_var): Don't use POP_TIMEVAR_AND_RETURN in 4842169689Skan functions returning void. 4843169689Skan * decl2.c (add_using_namespace): Likewise. 4844169689Skan 4845169689Skan * decl.c (print_binding_level, print_other_binding_stack, 4846169689Skan print_binding_stack): Cast argument of %p specifier to void*. 4847169689Skan * ptree.c (cxx_print_decl): Likewise. 4848169689Skan 4849169689Skan * cp-tree.h (VAR_OR_FUNCTION_DECL_CHECK, 4850169689Skan VAR_FUNCTION_OR_PARM_DECL_CHECK, 4851169689Skan VAR_TEMPL_TYPE_OR_FUNCTION_DECL_CHECK, RECORD_OR_UNION_TYPE_CHECK, 4852169689Skan BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK, LANG_TYPE_CLASS_CHECK, 4853169689Skan LANG_TYPE_PTRMEM_CHECK, LANG_DECL_U2_CHECK): Add __extension__. 4854169689Skan 4855169689Skan * decl.c (set_current_binding_level): New macro. Use throughout 4856169689Skan when setting the current binding level. 4857169689Skan 4858169689Skan * cp-tree.h (cp_lvalue_kind, base_access): Delete trailing comma 4859169689Skan in enum. 4860169689Skan * method.c (mangling_flags): Likewise. 4861169689Skan 4862169689Skan * cp-tree.h (lang_type_header): Add __extension__ and use 4863169689Skan CHAR_BITFIELD for members. 4864169689Skan 4865169689Skan2003-04-02 Geoffrey Keating <geoffk@apple.com> 4866169689Skan 4867169689Skan PR other/9274 4868169689Skan * mangle.c: Include gt-cp-mangle.h. 4869169689Skan (subst_identifiers): Mark with GTY. 4870169689Skan * config-lang.in (gtfiles): Add cp/mangle.c. 4871169689Skan * Make-lang.in: (gt-cp-mangle.h): New rule. 4872169689Skan (cp/mangle.o): Depends on gt-cp-mangle.h. 4873169689Skan 4874169689Skan2003-04-01 Andrew Pinski <pinskia@physics.uc.edu> 4875169689Skan 4876169689Skan * config-lang.in (gtfiles): Add \$(srcdir)/cp/name-lookup.c 4877169689Skan after \$(srcdir)/cp/name-lookup.h. 4878169689Skan * name-lookup.c: (cxx_binding_make): Use ggc_alloc_clearedinstead 4879169689Skan of ggc_alloc. Include gt-cp-name-lookup.h at the end of the file. 4880169689Skan * Make-lang.in: (gt-cp-name-lookup.h): Is generated by gengtype. 4881169689Skan (cp/name-lookup.o): Depends on gt-cp-name-lookup.h. 4882169689Skan 4883169689Skan2003-03-31 Jason Merrill <jason@redhat.com> 4884169689Skan 4885169689Skan PR java/10145 4886169689Skan * class.c (check_field_decl): Don't set DECL_ALIGN. 4887169689Skan 4888169689Skan2003-03-30 Mark Mitchell <mark@codesourcery.com> 4889169689Skan 4890169689Skan PR c++/7647 4891169689Skan * decl.c (grokdeclarator): Tidy, slightly. 4892169689Skan * search.c (lookup_field_1): Add want_type parameter. 4893169689Skan (lookup_field_r): Adjust call to lookup_field_1. 4894169689Skan 4895169689Skan2003-03-30 Gabriel Dos Reis <gdr@integrable-solutions.net> 4896169689Skan 4897169689Skan * Make-lang.in (cp/name-lookup.o): Add more dependencies. 4898169689Skan 4899169689Skan2003-03-30 Gabriel Dos Reis <gdr@integrable-solutions.net> 4900169689Skan 4901169689Skan * cp-tree.h (binding_for_name: Move to name-lookup.h Adjust 4902169689Skan prototype. 4903169689Skan (cxx_scope_find_binding_for_name): Likewise. 4904169689Skan * decl.c (find_binding: Move to name-lookup.c. 4905169689Skan (binding_for_name): Likewise. 4906169689Skan (cxx_scope_find_binding_for_name): Likewise. 4907169689Skan (BINDING_LEVEL): Remove. 4908169689Skan (push_binding): Tidy. 4909169689Skan (push_class_binding): Likewise. 4910169689Skan (pop_binding): Likewise. 4911169689Skan (poplevel): Likewise. 4912169689Skan (poplevel_class): Likewise. 4913169689Skan (set_identifier_type_value_with_scope): Likewise. 4914169689Skan (push_overloaded_decl): Likewise. 4915169689Skan (lookup_tag): Likewise. 4916169689Skan (unqualified_namespace_lookup): Likewise. 4917169689Skan (lookup_name_current_level): Likewise. 4918169689Skan (maybe_inject_for_scope_var): Likewise. 4919169689Skan (namespace_binding): Move to name-lookup.c. 4920169689Skan (set_namespace_binding): Likewise. 4921169689Skan * decl2.c (lookup_using_namespace): Tidy. 4922169689Skan (qualified_lookup_using_namespace): Likewise. 4923169689Skan (do_toplevel_using_decl): Likewise. 4924169689Skan * name-lookup.c: Include "timevar.h" 4925169689Skan * name-lookup.h (cxx_scope): Declare. 4926169689Skan (struct cxx_binding): Lose member "has_level". Adjust "scope" 4927169689Skan member declaration. 4928169689Skan (BINDING_SCOPE): Adjust definition. 4929169689Skan (BINDING_HAS_LEVEL_P): Remove. 4930169689Skan 4931169689Skan2003-03-30 Gabriel Dos Reis <gdr@integrable-solutions.net> 4932169689Skan 4933169689Skan * name-lookup.c: New file. 4934169689Skan * name-lookup.h: Likewise.. 4935169689Skan * decl.c (push_binding): Adjust use cxx_binding_make. 4936169689Skan (free_bindings): Move to name-lookup.c 4937169689Skan (pop_binding): Use cxx_binding_free. 4938169689Skan (binding_for_name): Tidy. 4939169689Skan * cp-tree.h: Include "name-lookup.h" 4940169689Skan (cxx_binding_make): Move to name-lookup.h 4941169689Skan (cxx_binding_clear): Likewise. 4942169689Skan (struct cxx_binding): Likewise. 4943169689Skan (LOCAL_BINDING_P): Likewise. 4944169689Skan (INHERITED_VALUE_BINDING_P): Likewise. 4945169689Skan (BINDING_SCOPE): Likewise. 4946169689Skan (BINDING_HAS_LEVEL_P): Likewise. 4947169689Skan (BINDING_VALUE): Likewise. 4948169689Skan (BINDING_TYPE): Likewise. 4949169689Skan * config-lang.in (gtfiles): Add cp/name-lookup.h 4950169689Skan * Make-lang.in (cp/name-lookup.o): New rule. 4951169689Skan (CXX_OBJS): Add cp/name-lookup.o 4952169689Skan (CXX_TREE_H): Add cp/name-lookup.h 4953169689Skan 4954169689Skan2003-03-28 Jason Merrill <jason@redhat.com> 4955169689Skan 4956169689Skan PR c++/10245 4957169689Skan * cvt.c (force_rvalue): New fn. 4958169689Skan * call.c (build_conditional_expr): Use it. 4959169689Skan * cp-tree.h: Declare it. 4960169689Skan 4961169689Skan2003-03-28 Mike Stump <mrs@apple.com> 4962169689Skan 4963169689Skan * error.c (dump_expr): Add 0x to printed hex numbers to make 4964169689Skan output match source code better. 4965169689Skan 4966169689Skan2003-03-28 Mark Mitchell <mark@codesourcery.com> 4967169689Skan 4968169689Skan PR c++/10218 4969169689Skan * decl.c (grokfndecl): Return NULL_TREE for bogus out-of-class 4970169689Skan definitions. 4971169689Skan 4972169689Skan * decl2.c (generate_ctor_or_dtor_function): Tolerate a 4973169689Skan non-existant ssdf_decls array. 4974169689Skan (finish_file): Call generator_ctor_or_dtor_function when there are 4975169689Skan static constructors or destructors and no other static 4976169689Skan initializations. 4977169689Skan 4978169689Skan2003-03-28 Nathan Sidwell <nathan@codesourcery.com> 4979169689Skan 4980169689Skan PR c++/10047 4981169689Skan * decl2.c (finish_file): Don't warn about explicitly instantiated 4982169689Skan inline decls. 4983169689Skan 4984169689Skan2003-03-27 Nathan Sidwell <nathan@codesourcery.com> 4985169689Skan 4986169689Skan PR c++/10224 4987169689Skan * pt.c (lookup_template_class): Only check instantiated args if 4988169689Skan they do not contain template parameters. 4989169689Skan 4990169689Skan2003-03-27 Nathan Sidwell <nathan@codesourcery.com> 4991169689Skan 4992169689Skan PR c++/10158 4993169689Skan * parser.c (cp_parser_function_definition): Set 4994169689Skan DECL_INITIALIZED_IN_CLASS for members. 4995169689Skan * pt.c (instantiate_decl): Only reduce the template args for 4996169689Skan friends that are not defined in class. 4997169689Skan 4998169689Skan2003-03-25 Jason Merrill <jason@redhat.com> 4999169689Skan 5000169689Skan * call.c (print_z_candidate): Change name of first arg to msgid. 5001169689Skan (joust): Add comment for translators. 5002169689Skan 5003169689Skan2003-03-24 Nathan Sidwell <nathan@codesourcery.com> 5004169689Skan 5005169689Skan PR c++/9898, PR c++/383, DR 322 5006169689Skan * pt.c (maybe_adjust_types_for_deduction) <DEDUCE_CONV>: Look 5007169689Skan through reference types on both PARM and ARG. 5008169689Skan 5009169689Skan2003-03-24 Nathan Sidwell <nathan@codesourcery.com> 5010169689Skan 5011169689Skan PR c++/10119 5012169689Skan * error.c (dump_expr) <BASELINK>: Use dump_expr. 5013169689Skan * pt.c (maybe_fold_nontype_args): New function. 5014169689Skan (tsubst_copy) <SCOPE_REF>: Subst any template_id args. 5015169689Skan <TEMPLATE_ID_EXPR>: Break out folding code, call it. 5016169689Skan (tsubst_copy_and_build) <TEMPLATE_ID_EXPR>: Call 5017169689Skan maybe_fold_nontype_args. 5018169689Skan 5019169689Skan2003-03-24 Nathan Sidwell <nathan@codesourcery.com> 5020169689Skan 5021169689Skan PR c++/10026 5022169689Skan * decl2.c (arg_assoc_type) <ERROR_MARK>: Don't die. 5023169689Skan 5024169689Skan2003-03-23 Mark Mitchell <mark@codesourcery.com> 5025169689Skan 5026169689Skan PR c++/7086 5027169689Skan * typeck.c (cxx_mark_addressable): Adjust call to 5028169689Skan gen_mem_addressof or put_var_into_stack. 5029169689Skan 5030169689Skan2003-03-22 Nathan Sidwell <nathan@codesourcery.com> 5031169689Skan 5032169689Skan PR c++/9978, c++/9708 5033169689Skan * cp-tree.h (instantiate_template): Add tsubst_flags parameter. 5034169689Skan * call.c (add_template_candidate_real): Adjust 5035169689Skan instantiate_template call. 5036169689Skan * class.c (resolve_address_of_overloaded_function): Likewise. 5037169689Skan * decl.c (build_enumerator): Set TREE_CONSTANT. 5038169689Skan * pt.c (check_instantiated_args): New. 5039169689Skan (push_inline_template_parms_recursive): Set TREE_CONSTANT, 5040169689Skan TREE_READONLY. 5041169689Skan (build_template_parm_index): Copy TREE_CONSTANT, TREE_READONLY. 5042169689Skan (reduce_template_parm_level): Likewise. 5043169689Skan (process_template_parm): Likewise. 5044169689Skan (check_explicit_specialization): Adjust instantiate_template call. 5045169689Skan (convert_template_argument): Don't check non-type argument here. 5046169689Skan (lookup_template_class): Check them here. 5047169689Skan (tsubst_friend_function): Adjust instantiate_template call. 5048169689Skan (instantiate_template): Add tsubst_flags parameter, use it. Check 5049169689Skan instantiated args. 5050169689Skan 5051169689Skan2003-03-21 Zack Weinberg <zack@codesourcery.com> 5052169689Skan 5053169689Skan * decl.c: Update calls to shadow_warning. 5054169689Skan 5055169689Skan2003-03-21 Nathan Sidwell <nathan@codesourcery.com> 5056169689Skan 5057169689Skan PR c++/9898 5058169689Skan * error.c (dump_decl) [CONST_DECL]: Print '<enumerator>'. 5059169689Skan (dump_expr) [CONSTRUCTOR]: Print default ctor as a function call. 5060169689Skan 5061169689Skan2003-03-20 Mark Mitchell <mark@codesourcery.com> 5062169689Skan 5063169689Skan * cp/decl2.c (arg_assoc_class): Correct check for namespace-scope 5064169689Skan friends. 5065169689Skan * cp/pt.c (instantiate_class_template): Fix formatting. 5066169689Skan 5067169689Skan2003-03-14 Matt Austern <austern@apple.com> 5068169689Skan 5069169689Skan * cp-tree.h (unemitted_tinfo_decls): Declaration of a new varray. 5070169689Skan (unemitted_tinfo_decl_p): Remove. 5071169689Skan (emit_tinfo_decl): Change declaration to remove unused parameter. 5072169689Skan * decl2.c (finish_file): Change tinfo emission to loop through 5073169689Skan unemitted_tinfo_decls array instead of looping through all decls. 5074169689Skan * rtti.c (unemitted_tinfo_decl_p): Declare as static, remove 5075169689Skan unused second parameter. 5076169689Skan (init_rtti_processing): initialize unemitted_tinfo_decls varray. 5077169689Skan (get_tinfo_decls): push new tinfo decl on unemitted_tinfo_decls. 5078169689Skan (emit_tinfo_decl): remove unused second parameter, add assertion 5079169689Skan that decl hasn't already been emitted. 5080169689Skan 5081169689Skan2003-03-19 Nathanael Nerode <neroden@gcc.gnu.org> 5082169689Skan 5083169689Skan * dump.c (cp_dump_tree), cp-tree.h (cp_dump_tree): Change return 5084169689Skan type from 'int' to 'bool'. Replace 0 and 1 with true and false in 5085169689Skan return statements. 5086169689Skan 5087169689Skan2003-03-19 Jason Merrill <jason@redhat.com> 5088169689Skan 5089169689Skan PR c++/8316, c++/9315, c++/10136 5090169689Skan * call.c (print_z_candidate): Split out from... 5091169689Skan (print_z_candidiates): ...here. 5092169689Skan (joust): Use it. 5093169689Skan 5094169689Skan2003-03-17 Roger Sayle <roger@eyesopen.com> 5095169689Skan 5096169689Skan PR c++/10031 5097169689Skan * decl.c (duplicate_decls): Use the new type when prototyping 5098169689Skan anticipated decls, even when the types match. This defines the 5099169689Skan exception list for the built-in function. 5100169689Skan 5101169689Skan2003-03-17 Jason Merrill <jason@redhat.com> 5102169689Skan 5103169689Skan PR c++/10091 5104169689Skan * typeck.c (build_class_member_access_expr): Compare 5105169689Skan TYPE_MAIN_VARIANTs. 5106169689Skan 5107169689Skan2003-03-17 Mark Mitchell <mark@codesourcery.com> 5108169689Skan 5109169689Skan PR c++/9639 5110169689Skan * parser.c (cp_parser_declarator_id): Clear parser->scope. 5111169689Skan 5112169689Skan2003-03-16 Jason Merrill <jason@redhat.com> 5113169689Skan 5114169689Skan PR c++/9993 5115169689Skan * decl.c (finish_function): Only allow the NRVO to use variables 5116169689Skan declared at function scope. 5117169689Skan 5118169689Skan2003-03-17 Andreas Jaeger <aj@suse.de> 5119169689Skan 5120169689Skan * Make-lang.in (cp/TAGS): Remove. 5121169689Skan 5122169689Skan2003-03-16 Nathan Sidwell <nathan@codesourcery.com> 5123169689Skan 5124169689Skan PR c++/9629 5125169689Skan * cp-tree.h (struct language_function): Add in_base_initializer. 5126169689Skan (in_base_initializer): define it. 5127169689Skan (expand_member_init): Remove INIT param. 5128169689Skan * init.c (expand_member_init): Remove INIT param, return the member. 5129169689Skan (emit_mem_initializers): Set in_base_initializer. 5130169689Skan * class.c (build_base_path): Check in_base_initializer. 5131169689Skan * parser.c (cp_parser_mem_initializer): Set in_base_initializer. 5132169689Skan * pt.c (tsubst_initializer_list): Likewise. 5133169689Skan 5134169689Skan2003-03-16 Gabriel Dos Reis <gdr@integrable-solutions.net> 5135169689Skan 5136169689Skan * decl.c (binding_for_name): Fix initialization thinko. 5137169689Skan 5138169689Skan2003-03-15 Gabriel Dos Reis <gdr@integrable-solutions.net> 5139169689Skan 5140169689Skan Compile-time improvement: 2/n. 5141169689Skan * cp-tree.h (struct cxx_binding): New datatype; 5142169689Skan (struct lang_identifier): Use it. 5143169689Skan (LOCAL_BINDING_P): Adjust definition. 5144169689Skan (INHERITED_VALUE_BINDING_P): Likewise. 5145169689Skan (BINDING_SCOPE): Likewise. 5146169689Skan (BINDING_HAS_LEVEL_P): Likewise. 5147169689Skan (BINDING_VALUE): Likewise. 5148169689Skan (BINDING_TYPE): Likewise. 5149169689Skan (IDENTIFIER_VALUE): Likewise. 5150169689Skan (struct tree_binding): Remove. 5151169689Skan (TS_CP_BINDING): Likewise. 5152169689Skan ((union lang_tree_node): Remove field "binding". 5153169689Skan (cxx_binding_clear): New macro. 5154169689Skan (binding_for_name): Adjust return type. 5155169689Skan (qualified_lookup_using_namespace): Adjust prototype. 5156169689Skan (lookup_using_namespace): Adjust prototype. 5157169689Skan (cxx_scope_find_binding_for_name): Declare. 5158169689Skan * cp-tree.def: Remove CPLUS_BINDING definition. 5159169689Skan * decl.c (push_binding): Adjust local variable type. 5160169689Skan (add_binding): Likewise. 5161169689Skan (push_class_binding): Likewise. 5162169689Skan (pop_binding): Likewise. 5163169689Skan (poplevel): Likewise. 5164169689Skan (poplevel_class): Likewise. 5165169689Skan (free_bindings): Adjust type. 5166169689Skan (find_binding): Adjust return type, add a third parameter. Remove 5167169689Skan non-useful assertion now that we use static typing. 5168169689Skan (cxx_scope_find_binding_for_name): New function. 5169169689Skan (binding_for_name): Use it. Adjust local variable type. Simplify. 5170169689Skan (namespace_binding): Simplify. 5171169689Skan (set_namespace_binding): Likewise. 5172169689Skan (set_identifier_type_value_with_scope): Adjust local variable type. 5173169689Skan (lookup_tag): Don't type-abuse of local variable 'old'. 5174169689Skan (lookup_namespace_name): Likewise. Allocate binding on stack. 5175169689Skan (select_decl): Adjust prototype. 5176169689Skan (unqualified_namespace_lookup): Allocate binding on stack. 5177169689Skan Don't type-abuse of local variable 'val'. 5178169689Skan (lookup_name_real): Likewise. 5179169689Skan (maybe_inject_for_scope_var): Adjust local variable type. 5180169689Skan (cp_tree_node_structure): Remove CPLUS_BINDING case label. 5181169689Skan (namespace_binding): Adjust logic, simplify. 5182169689Skan (BINDING_LEVEL): Adjust definition. 5183169689Skan (push_class_level_binding): Adjust local variable type. 5184169689Skan (struct cxx_saved_binding): Adjust field 'binding' type. 5185169689Skan * decl2.c (ambiguous_decl): Adjust prototype. 5186169689Skan (lookup_using_namespace): Adjust local variable type. 5187169689Skan (qualified_lookup_using_namespace): Catch type error and correct 5188169689Skan ensueing logic error. 5189169689Skan (do_nonmember_using_decl): Adjust local variable type. Allocate 5190169689Skan temporary cxx_binding on stack. 5191169689Skan (do_toplevel_using_decl): Adjust local variable type. 5192169689Skan * ptree.c (cxx_print_cxx_binding): New function. 5193169689Skan (cxx_print_identifier): Use it. 5194169689Skan (cxx_print_xnode): Delete CPLUS_BINDING case label. 5195169689Skan 5196169689Skan2003-03-15 Roger Sayle <roger@eyesopen.com> 5197169689Skan 5198169689Skan * tree.c (count_functions): Fix whitespace. 5199169689Skan 5200169689Skan2003-03-15 Neil Booth <neil@daikokuya.co.uk> 5201169689Skan 5202169689Skan * Make-lang.in: Update. 5203169689Skan 5204169689Skan2003-03-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 5205169689Skan 5206169689Skan PR c++/6440 5207169689Skan * pt.c (maybe_process_partial_specialization): Handle 5208169689Skan member class template when enclosing class template is 5209169689Skan explicit specialized. 5210169689Skan (most_general_template): Stop looking when DECL is already 5211169689Skan specialized. 5212169689Skan 5213169689Skan2003-03-13 Jason Merrill <jason@redhat.com> 5214169689Skan 5215169689Skan PR c++/9420 5216169689Skan * search.c (lookup_conversions): Call complete_type here. 5217169689Skan * call.c (implicit_conversion): Not here. 5218169689Skan 5219169689Skan2003-03-13 Mark Mitchell <mark@codesourcery.com> 5220169689Skan 5221169689Skan * decl2.c (do_nonmember_using_decl): Correct handling of 5222169689Skan simultaneous type/non-type bindings. 5223169689Skan 5224169689Skan * call.c (initialize_reference): Remove bogus assertion. 5225169689Skan * decl.c (build_ptrmemfunc_type): Revert change of 2003-03-09. 5226169689Skan 5227169689Skan2003-03-12 Andrew Lewycky <andrew@mxc.ca> 5228169689Skan 5229169689Skan PR c++/7050 5230169689Skan * expr.c (cxx_expand_expr): Return const0_rtx for throw 5231169689Skan expressions. 5232169689Skan 5233169689Skan2003-03-11 Mark Mitchell <mark@codesourcery.com> 5234169689Skan 5235169689Skan PR c++/9474 5236169689Skan * decl2.c (do_nonmember_using_decl): Do not call duplicate decls 5237169689Skan to merge old and new declarations. 5238169689Skan 5239169689Skan2003-03-12 Alexandre Oliva <aoliva@redhat.com> 5240169689Skan 5241169689Skan * g++.1: Remove. 5242169689Skan * Make-lang.in (c++.generated-manpages): Build cp/g++.1. 5243169689Skan (cp/g++.1): Build it from scratch in the build tree. 5244169689Skan (c++.install-man): Depend on it. Install it from the build tree. 5245169689Skan (c++.mostlyclean): Clean it. 5246169689Skan 5247169689Skan2003-03-11 Mark Mitchell <mark@codesourcery.com> 5248169689Skan 5249169689Skan PR c++/9474 5250169689Skan * decl2.c (do_nonmember_using_decl): Do not call duplicate decls 5251169689Skan to merge old and new declarations. 5252169689Skan 5253169689Skan PR c++/9924 5254169689Skan * decl2.c (do_nonmember_using_decl): Ignore anticipated builtins. 5255169689Skan 5256169689Skan2003-03-11 Jason Merrill <jason@redhat.com> 5257169689Skan 5258169689Skan PR c++/9820 5259169689Skan * search.c (lookup_member): Fix handling of functions in a class 5260169689Skan being defined. 5261169689Skan 5262169689Skan2003-03-11 Mark Mitchell <mark@codesourcery.com> 5263169689Skan 5264169689Skan PR c++/8700 5265169689Skan * call.c (convert_class_to_reference): Adjust usage of 5266169689Skan splice_viable. 5267169689Skan (any_viable): Remove. 5268169689Skan (splice_viable): Combine with any_viable. 5269169689Skan (print_z_candidates): Avoid printing duplicates. 5270169689Skan (build_user_type_conversion_1): Adjust usage of splice_viable. 5271169689Skan (build_new_function_call): Likewise. 5272169689Skan (build_operator_new_call): Likewise. 5273169689Skan (build_object_call): Likewise. 5274169689Skan (build_conditional_expr): Likewise. 5275169689Skan (build_new_op): Likewise. 5276169689Skan (build_new_method_call): Likewise. 5277169689Skan (joust): Remove spurious comment. 5278169689Skan * cp-tree.h (DECL_FRIENDLIST): Correct documentation. 5279169689Skan * decl2.c (arg_assoc_class): Simplify. 5280169689Skan * friend.c (add_friend): Likewise. 5281169689Skan 5282169689Skan2003-03-11 Jason Merrill <jason@redhat.com> 5283169689Skan 5284169689Skan PR c++/8660 5285169689Skan * decl2.c (check_classfn): A member template only matches a 5286169689Skan member template. 5287169689Skan 5288169689Skan2003-03-11 Neil Booth <neil@daikokuya.co.uk> 5289169689Skan 5290169689Skan * Make-lang.in (CXX_C_OBJS): Update. 5291169689Skan * lang-specs.h: Don't define __GNUG__ here. 5292169689Skan 5293169689Skan2003-03-10 Mark Mitchell <mark@codesourcery.com> 5294169689Skan 5295169689Skan * call.c (perform_overload_resolution): New function. 5296169689Skan (build_new_function_call): Use it. 5297169689Skan (build_operator_new_call): Likewise. 5298169689Skan (add_candidates): Add explicit_targs and template_only parameters. 5299169689Skan (build_new_op): Adjust accordingly. 5300169689Skan * cp-tree.h (build_operator_new_call): New function. 5301169689Skan (build_function_call_real): Remove. 5302169689Skan (build_function_call_maybe): Likewise. 5303169689Skan * init.c (build_new_1): Use build_operator_new_call. 5304169689Skan * typeck.c (build_function_call_real): Rename to ... 5305169689Skan (build_function_call): ... this. 5306169689Skan 5307169689Skan2003-03-10 Devang Patel <dpatel@apple.com> 5308169689Skan 5309169689Skan PR c++/9394 5310169689Skan * g++spec.c (lang_specific_driver): Use DEFAULT_WORD_SWTCH_TAKES_ARG. 5311169689Skan 5312169689Skan2003-03-10 Jason Merrill <jason@redhat.com> 5313169689Skan 5314169689Skan PR c++/9798 5315169689Skan * decl.c (push_using_directive): Push before recursing. 5316169689Skan 5317169689Skan PR c++/9868, c++/9524 5318169689Skan * call.c (resolve_scoped_fn_name): Handle the case of a function 5319169689Skan pointer member. 5320169689Skan 5321169689Skan * decl2.c (build_offset_ref_call_from_tree): Only mess with 'this' 5322169689Skan argument in the pointer-to-member case. 5323169689Skan 5324169689Skan2003-03-09 Mark Mitchell <mark@codesourcery.com> 5325169689Skan 5326169689Skan PR c++/9373 5327169689Skan * cp-lang.c (cxx_get_alias_set): Use alias set zero for 5328169689Skan pointers to member functions. 5329169689Skan 5330169689Skan PR c++/8534 5331169689Skan * decl.c (build_ptrmemfunc_type): Do not allow default arguments 5332169689Skan in pointer-to-member-function types. 5333169689Skan 5334169689Skan2003-03-10 Gabriel Dos Reis <gdr@integrable-solutions.net> 5335169689Skan 5336169689Skan * expr.c (cplus_expand_constant): Use C90 prototype style. 5337169689Skan (cxx_expand_expr): Likewise. 5338169689Skan 5339169689Skan2003-03-09 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 5340169689Skan 5341169689Skan PR c++/9970 5342169689Skan * decl.c (duplicate_decls): Only copy DECL_THUNKS for virtual 5343169689Skan functions. 5344169689Skan 5345169689Skan2003-03-08 Geoffrey Keating <geoffk@apple.com> 5346169689Skan 5347169689Skan * lang-specs.h (c++-header): Change .pch to .gch. 5348169689Skan 5349169689Skan2003-03-08 Neil Booth <neil@daikokuya.co.uk> 5350169689Skan 5351169689Skan * cp-tree.h (cxx_init): Update prototype. 5352169689Skan * lex.c (cxx_init): Similarly. 5353169689Skan 5354169689Skan2003-03-08 Mark Mitchell <mark@codesourcery.com> 5355169689Skan 5356169689Skan PR c++/9823 5357169689Skan * cp-tree.h (begin_mem_initializers): Remove. 5358169689Skan * parser.c (cp_parser_mem_initializer_list): Inline it here. 5359169689Skan Do not call finish_mem_initializers if not in a constructor. 5360169689Skan (cp_parser_class_head): Fix typo in error message. 5361169689Skan * semantics.c (begin_mem_initializers): Remove. 5362169689Skan * testsuite/g++.dg/parser/constructor1.C: New test. 5363169689Skan 5364169689Skan PR c++/9809 5365169689Skan * call.c (add_function_candidate): Skip builtin fuctions that have 5366169689Skan not yet been declared. 5367169689Skan 5368169689Skan PR c++/9982 5369169689Skan * init.c (build_new_1): Correct logic for determining whether or 5370169689Skan not to use an array cookie. 5371169689Skan 5372169689Skan PR c++/9524 5373169689Skan * parser.c (cp_parser_postfix_expression): Call 5374169689Skan finish_non_static_data_member, even when processing_template_decl. 5375169689Skan 5376169689Skan PR c++/9912 5377169689Skan * cp-tree.h (is_ancestor): New function. 5378169689Skan (handle_class_head): Change prototype. 5379169689Skan * decl2.c (is_namespace_ancestor): Rename to ... 5380169689Skan (namespace_anecestor): ... this. 5381169689Skan (set_decl_namespace): Adjust accordingly. 5382169689Skan (handle_class_head): Remove unnecessary parameters. 5383169689Skan * parser.c (cp_parser_class_head): Check that 5384169689Skan nested-name-specifiers are used appropriately. 5385169689Skan 5386169689Skan2003-03-07 Mark Mitchell <mark@codesourcery.com> 5387169689Skan 5388169689Skan * call.c (reference_binding): Remove REF_IS_VAR parameter. 5389169689Skan (implicit_conversion): Adjust call to reference_binding. 5390169689Skan (make_temporary_var_for_ref_to_type): Add TYPE parameter. 5391169689Skan (initialize_reference): Adjust handling for references bound to 5392169689Skan rvalues. 5393169689Skan * cp-tree.h (make_temporary_var_for_ref_to_temp): Change 5394169689Skan prototype. 5395169689Skan (real_non_cast_lvalue_p): New method. 5396169689Skan * cvt.c (build_up_reference): Adjust use of 5397169689Skan make_temporary_var_for_ref_to_temp. 5398169689Skan * tree.c (real_non_cast_lvalue_p): New method. 5399169689Skan 5400169689Skan2003-03-07 Gabriel Dos Reis <gdr@integrable-solutions.net> 5401169689Skan 5402169689Skan * except.c (init_exception_processing): Use C90 prototype style. 5403169689Skan (cp_protect_cleanup_actions): Likewise. 5404169689Skan (prepare_eh_type): Likewise. 5405169689Skan (build_eh_type_type): Likewise. 5406169689Skan (build_exc_ptr): Likewise. 5407169689Skan (do_begin_catch): Likewise. 5408169689Skan (dtor_nothrow): Likewise. 5409169689Skan (do_end_catch): Likewise. 5410169689Skan (push_eh_cleanup): Likewise. 5411169689Skan (decl_is_java_type): Likewise. 5412169689Skan (choose_personality_routine): Likewise. 5413169689Skan (initialize_handler_parm): Likewise. 5414169689Skan (expand_start_catch_block): Likewise. 5415169689Skan (expand_end_catch_block): Likewise. 5416169689Skan (begin_eh_spec_block): Likewise. 5417169689Skan (finish_eh_spec_block): Likewise. 5418169689Skan (do_allocate_exception): Likewise. 5419169689Skan (do_free_exception): Likewise. 5420169689Skan (wrap_cleanups_r): Likewise. 5421169689Skan (stabilize_throw_expr): Likewise. 5422169689Skan (build_throw): Likewise. 5423169689Skan (complete_ptr_ref_or_void_ptr_p): Likewise. 5424169689Skan (is_admissible_throw_operand): Likewise. 5425169689Skan (nothrow_libfn_p): Likewise. 5426169689Skan (can_convert_eh): Likewise. 5427169689Skan (check_handlers_1): Likewise. 5428169689Skan (check_handlers): Likewise. 5429169689Skan 5430169689Skan2003-03-06 Mark Mitchell <mark@codesourcery.com> 5431169689Skan 5432169689Skan * call.c (merge_conversion_sequences): New function. 5433169689Skan (build_conv): Set ICS_USER_FLAG for USER_CONVs. 5434169689Skan (convert_class_to_reference): Correct handling of second 5435169689Skan standard conversion sequence in a user-defined conversion 5436169689Skan sequence. 5437169689Skan (build_user_type_conversion_1): Use merge_conversion_sequences. 5438169689Skan * cp-tree.def: Add comments for CONV nodes. 5439169689Skan * rtti.c (get_tinfo_decl): Use build_address/build_nop. 5440169689Skan 5441169689Skan2003-03-07 Gabriel Dos Reis <gdr@integrable-solutions.net> 5442169689Skan 5443169689Skan * error.c (init_error): Use C90 prototype style. 5444169689Skan (dump_scope): Likewise. 5445169689Skan (dump_qualifiers): Likewise. 5446169689Skan (dump_template_argument): Likewise. 5447169689Skan (dump_template_argument_list): Likewise. 5448169689Skan (dump_template_parameter): Likewise. 5449169689Skan (dump_template_bindings): Likewise. 5450169689Skan (dump_type): Likewise. 5451169689Skan (dump_typename): Likewise. 5452169689Skan (class_key_or_enum): Likewise. 5453169689Skan (dump_aggr_type): Likewise. 5454169689Skan (dump_type_prefix): Likewise. 5455169689Skan (dump_type_suffix): Likewise. 5456169689Skan (dump_global_iord): Likewise. 5457169689Skan (dump_simple_decl): Likewise. 5458169689Skan (dump_decl): Likewise. 5459169689Skan (dump_template_decl): Likewise. 5460169689Skan (dump_function_decl): Likewise. 5461169689Skan (dump_parameters): Likewise. 5462169689Skan (dump_exception_spec): Likewise. 5463169689Skan (dump_function_name): Likewise. 5464169689Skan (dump_template_parms): Likewise. 5465169689Skan (dump_char): Likewise. 5466169689Skan (dump_expr_list): Likewise. 5467169689Skan (dump_expr): Likewise. 5468169689Skan (dump_binary_op): Likewise. 5469169689Skan (dump_unary_op): Likewise. 5470169689Skan (type_as_string): Likewise. 5471169689Skan (expr_as_string): Likewise. 5472169689Skan (decl_as_string): Likewise. 5473169689Skan (context_as_string): Likewise. 5474169689Skan (lang_decl_name): Likewise. 5475169689Skan (cp_file_of): Likewise. 5476169689Skan (cp_line_of): Likewise. 5477169689Skan (decl_to_string): Likewise. 5478169689Skan (expr_to_string): Likewise. 5479169689Skan (fndecl_to_string): Likewise. 5480169689Skan (code_to_string): Likewise. 5481169689Skan (language_to_string): Likewise. 5482169689Skan (parm_to_string): Likewise. 5483169689Skan (op_to_string): Likewise. 5484169689Skan (type_to_string): Likewise. 5485169689Skan (assop_to_string): Likewise. 5486169689Skan (args_to_string): Likewise. 5487169689Skan (cv_to_string): Likewise. 5488169689Skan (cxx_print_error_function): Likewise. 5489169689Skan (cp_diagnostic_starter): Likewise. 5490169689Skan (cp_diagnostic_finalizer): Likewise. 5491169689Skan (cp_print_error_function): Likewise. 5492169689Skan (function_category): Likewise. 5493169689Skan (print_instantiation_full_context): Likewise. 5494169689Skan (print_instantiation_partial_context): Likewise. 5495169689Skan (maybe_print_instantiation_context): Likewise. 5496169689Skan (print_instantiation_context): Likewise. 5497169689Skan (cp_printer): Likewise. 5498169689Skan (print_integer): Likewise. 5499169689Skan (print_non_consecutive_character): Likewise. 5500169689Skan (locate_error): Likewise. 5501169689Skan 5502169689Skan2003-03-06 Mark Mitchell <mark@codesourcery.com> 5503169689Skan 5504169689Skan PR c++/9965 5505169689Skan * call.c (reference_binding): Add ref_is_var parameter. 5506169689Skan (implicit_conversion): Adjust call to reference_binding. 5507169689Skan (initialize_reference): Likewise. 5508169689Skan 5509169689Skan PR c++/9400 5510169689Skan * decl.c (pushdecl): Don't check for shadowing of DECL_ARTIFICIAL 5511169689Skan PARM_DECLs. 5512169689Skan 5513169689Skan PR c++/9791 5514169689Skan * class.c (get_basefndecls): Use lookup_fnfields_1. 5515169689Skan 5516169689Skan2003-03-06 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 5517169689Skan 5518169689Skan PR c++/9188 5519169689Skan * parser.c (cp_parser_type_parameter): Remove redundant `expect' 5520169689Skan in error message. 5521169689Skan (cp_parser_single_declaration): Likewise. 5522169689Skan 5523169689Skan2003-03-05 Jason Merrill <jason@redhat.com> 5524169689Skan 5525169689Skan PR c++/9440 5526169689Skan * call.c (build_conditional_expr): Use convert rather than an 5527169689Skan explicit NOP_EXPR. 5528169689Skan 5529169689Skan2003-03-02 Matt Austern <austern@apple.com> 5530169689Skan 5531169689Skan * decl.c (cp_binding_level): Add static_decls varray member. 5532169689Skan (add_decl_to_level): Add static/inline namespace scope 5533169689Skan declarations to static_decls array. 5534169689Skan (wrapup_global_for_namespace): Pass static_decls only, instead of 5535169689Skan all decls, to wrapup_global_declarations/check_global_declarations. 5536169689Skan (push_namespace): Initialize static_decls for ordinary namespaces. 5537169689Skan (cxx_init_decl_processing): Initialize static_decls for global 5538169689Skan namespace. 5539169689Skan 5540169689Skan2003-03-05 Mark Mitchell <mark@codesourcery.com> 5541169689Skan 5542169689Skan * class.c (end_of_class): Correct thinko. 5543169689Skan 5544169689Skan2003-03-04 Nathanael Nerode <neroden@gcc.gnu.org> 5545169689Skan 5546169689Skan * config-lang.in: Replace ${libstdcxx_version} by its value. 5547169689Skan 5548169689Skan2003-03-04 Gabriel Dos Reis <gdr@integrable-solutions.net> 5549169689Skan 5550169689Skan * cp-tree.h (cxx_saved_binding): Declare. 5551169689Skan (struct saved_scope): Adjust type of field 'old_binding'. 5552169689Skan * decl.c (cxx_saved_binding_make): New macro. 5553169689Skan (struct cxx_saved_binding): Define. 5554169689Skan (store_bindings): Adjust prototype. Use cxx_saved_binding to save 5555169689Skan C++ bindings. 5556169689Skan (maybe_push_to_top_level): Adjust local variable type. 5557169689Skan (pop_from_top_level): Likewise. 5558169689Skan 5559169689Skan2003-03-04 Tom Tromey <tromey@redhat.com> 5560169689Skan 5561169689Skan * Make-lang.in (c++.tags): New target. 5562169689Skan 5563169689Skan2003-03-04 Neil Booth <neil@daikokuya.co.uk> 5564169689Skan 5565169689Skan * Make-lang.in: Update. 5566169689Skan 5567169689Skan2003-03-03 Jason Merrill <jason@redhat.com> 5568169689Skan 5569169689Skan * decl.c (finish_enum): Do set the type in a template. Simplify. 5570169689Skan * pt.c (tsubst_enum, tsubst_copy): Revert last patch. 5571169689Skan 5572169689Skan2003-03-03 Mark Mitchell <mark@codesourcery.com> 5573169689Skan 5574169689Skan PR c++/9878 5575169689Skan * call.c (convert_class_to_reference): Correct conversion 5576169689Skan sequences. 5577169689Skan (reference_binding): Add ref_bound_directly_to_rvalue_p parameter. 5578169689Skan (implicit_conversion): Adjust call to reference_binding. 5579169689Skan (add_candidate): Change type of candidates parameter. 5580169689Skan (add_function_candidate): Likewise. 5581169689Skan (add_conv_candidate): Likewise. 5582169689Skan (build_builtin_candidate): Likewise. 5583169689Skan (add_builtin_candidate): Likewise. 5584169689Skan (add_builtin_candidates): Likewise. 5585169689Skan (add_template_candidate_real): Likewise. 5586169689Skan (add_template_candidate): Likewise. 5587169689Skan (add_template_conv_candidate): Likewise. 5588169689Skan (build_user_type_conversion_1): Adjust accordingly. 5589169689Skan (build_object_call): Likewise. 5590169689Skan (build_conditional_expr): Likewise. 5591169689Skan (add_candidates): Likewise. 5592169689Skan (build_new_op): Likewise. 5593169689Skan (convert_like_real): Use USER_CONV_CAND. Use build_nop. 5594169689Skan (build_new_method_call): Adjust calls to add_function_candidate. 5595169689Skan (make_temporary_var_for_ref_to_temp): New function. 5596169689Skan (initialize_reference): Add decl parameter. 5597169689Skan * class.c (build_rtti_vtbl_entries): Use build_address and 5598169689Skan build_nop. 5599169689Skan * cp-tree.h (initialize_reference): Change prototype. 5600169689Skan (make_temporary_var_for_ref_to_temp): New function. 5601169689Skan (build_type_conversion): Change prototype. 5602169689Skan (build_address): New function. 5603169689Skan (build_nop): Likewise. 5604169689Skan * cvt.c (cp_convert_to_pointer): Adjust call to 5605169689Skan build_type_conversion. Avoid indicating redundant NOP_EXPRs. 5606169689Skan Use build_nop. 5607169689Skan (convert_to_pointer_force): Use build_nop. 5608169689Skan (build_up_reference): Use make_temporary_var_for_ref_to_temp. 5609169689Skan (convert_to_reference): Adjust call to build_type_conversion. 5610169689Skan (ocp_convert): Likewise. 5611169689Skan (build_type_conversion): Remove for_sure parameter. 5612169689Skan * decl.c (grok_reference_init): Use initialize_reference. 5613169689Skan * typeck.c (build_address): New function. 5614169689Skan (build_nop): Likewise. 5615169689Skan (build_unary_op): Use them. 5616169689Skan (build_ptrmemfunc): Tidy slightly. 5617169689Skan (convert_for_initialization): Adjust call to 5618169689Skan initialize_reference. 5619169689Skan * typeck2.c (store_init_value): Remove #if 0'd code. 5620169689Skan 5621169689Skan2003-03-03 Jason Merrill <jason@redhat.com> 5622169689Skan 5623169689Skan * decl.c (start_function): Clear DECL_NUM_STMTS. 5624169689Skan 5625169689Skan * class.c (get_vtable_decl): Use vtbl_type_node. 5626169689Skan (build_primary_vtable): Check for it. 5627169689Skan 5628169689Skan2003-03-02 Aldy Hernandez <aldyh@redhat.com> 5629169689Skan 5630169689Skan * decl.c (check_initializer): Check for vector_opaque_p. 5631169689Skan 5632169689Skan2003-03-02 Ashif Harji <asharji@uwaterloo.ca> 5633169689Skan 5634169689Skan * lang-specs.h (default_compilers): Add -no-integrated-cpp flag to 5635169689Skan invoke an external cpp during compilation. 5636169689Skan 5637169689Skan2003-03-01 Gabriel Dos Reis <gdr@integrable-solutions.net> 5638169689Skan 5639169689Skan * decl.c (duplicate_decls): Convert use of warning_with_decl() to 5640169689Skan that of warning(). 5641169689Skan (start_decl): Likewise. 5642169689Skan (start_function): Likewise. 5643169689Skan 5644169689Skan2003-03-01 Neil Booth <neil@daikokuya.co.uk> 5645169689Skan 5646169689Skan * Make-lang.in (CXX_C_OBJS): Update. 5647169689Skan 5648169689Skan2003-02-28 Mark Mitchell <mark@codesourcery.com> 5649169689Skan 5650169689Skan PR c++/9892 5651169689Skan * pt.c (instantiate_decl): Clear DECL_RTL for a VAR_DECL when 5652169689Skan instantiating it. 5653169689Skan 5654169689Skan2003-02-28 Aldy Hernandez <aldyh@redhat.com> 5655169689Skan 5656169689Skan * parser.c (cp_parser_init_declarator): Revert opaque 5657169689Skan vector_opaque_p change. 5658169689Skan Do not include target.h. 5659169689Skan 5660169689Skan2003-02-28 Mark Mitchell <mark@codesourcery.com> 5661169689Skan 5662169689Skan PR c++/9879 5663169689Skan * cp-tree.h (build_zero_init): Add parameter. 5664169689Skan * decl.c (cp_finish_decl): Adjust call. 5665169689Skan * init.c (build_zero_init): Add nelts parameter. Adjust recursive 5666169689Skan calls. 5667169689Skan (build_default_init): Add nelts parameter. Adjust calls to 5668169689Skan build_zero_init. 5669169689Skan (build_new_1): Adjust call to build_default_init. 5670169689Skan * typeck2.c (process_init_constructor): Adjust call to build_zero_init. 5671169689Skan 5672169689Skan2003-02-26 Devang Patel <dpatel@apple.com> 5673169689Skan 5674169689Skan * decl.c (finish_enum): Merge two 'for' loops. Copy value node if 5675169689Skan required. Postpone enum setting for template decls. 5676169689Skan (build_enumerator): Delay copying value node until finish_enum 5677169689Skan (). Remove #if 0'ed code. 5678169689Skan * pt.c (tsubst_enum): Set TREE_TYPE and copy value node. 5679169689Skan (tsubst_copy): Add check for enum type. 5680169689Skan 5681169689Skan2003-02-25 Mark Mitchell <mark@codesourcery.com> 5682169689Skan 5683169689Skan PR c++/9683 5684169689Skan * decl2.c (prune_vars_needing_no_initialization): Do not throw 5685169689Skan away initializations for DECL_EXTERNAL VAR_DECLs. 5686169689Skan (finish_file): Adjust accordingly. 5687169689Skan * pt.c (instantiate_decl): Do not defer VAR_DECLs. 5688169689Skan 5689169689Skan2003-02-24 Gabriel Dos Reis <gdr@integrable-solutions.net> 5690169689Skan 5691169689Skan * decl.c (add_binding): Time TV_NAME_LOOKUP. 5692169689Skan (push_class_binding): Likewise. 5693169689Skan (set_namespace_binding): Likewise. 5694169689Skan 5695169689Skan2003-02-24 Mark Mitchell <mark@codesourcery.com> 5696169689Skan 5697169689Skan PR c++/9836 5698169689Skan * cp-tree.h (CLASSTYPE_PRIMARY_TEMPLATE): Do not skip from 5699169689Skan specializations back to the main template. 5700169689Skan * parser.c (cp_parser_diagnose_invalid_type_name):Adjust use. 5701169689Skan * pt.c (resolve_typename_type): Likewise. 5702169689Skan 5703169689Skan2003-02-24 Jeffrey D. Oldham <oldham@codesourcery.com> 5704169689Skan 5705169689Skan PR c++/9778 5706169689Skan * pt.c (tsubst_copy_and_build): For a templated function inside a 5707169689Skan scope, process template arguments. 5708169689Skan 5709169689Skan2003-02-24 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 5710169689Skan 5711169689Skan PR c++/9602 5712169689Skan * typeck2.c (abstract_virtuals_error): Don't check when 5713169689Skan TYPE is still template parameter dependent. 5714169689Skan 5715169689Skan2003-02-23 Mark Mitchell <mark@codesourcery.com> 5716169689Skan 5717169689Skan PR c++/5333 5718169689Skan * cp-tree.h (CLASSTYPE_PRIMARY_TEMPLATE): New macro. 5719169689Skan * parser.c (cp_parser_diagnose_invalid_type_name): Use it. 5720169689Skan * pt.c (instantiate_class_template): Don't try to instantiate 5721169689Skan dependent types. 5722169689Skan (resolve_typename_type): Use CLASSTYPE_PRIMARY_TEMPLATE. 5723169689Skan 5724169689Skan2003-02-21 Mark Mitchell <mark@codesourcery.com> 5725169689Skan 5726169689Skan PR c++/9749 5727169689Skan * decl.c (grokdeclarator): Do not allow parameters with variably 5728169689Skan modified types. 5729169689Skan 5730169689Skan2003-02-21 Nathan Sidwell <nathan@codesourcery.com> 5731169689Skan 5732169689Skan * search.c (grow_bfs_bases): Remove. Fold into ... 5733169689Skan (bfs_walk): ... here, fix fencepost error. Fix merge lossage 5734169689Skan in previous patch. 5735169689Skan 5736169689Skan2003-02-20 Mark Mitchell <mark@codesourcery.com> 5737169689Skan 5738169689Skan PR c++/9729 5739169689Skan * mangle.c (mangle_conv_op_name_for_type): Issue an error message 5740169689Skan when the G++ 3.2 ABI prevents correct compilation. 5741169689Skan 5742169689Skan2003-02-20 Nathan Sidwell <nathan@codesourcery.com> 5743169689Skan 5744169689Skan Change base class access representation. Share virtual base 5745169689Skan binfos. 5746169689Skan * cp/call.c (build_special_member_call): Remove binfo_for_vbase 5747169689Skan call. 5748169689Skan * cp/class.c (build_base_path): Likewise. 5749169689Skan (build_primary_vtable): Adjust BINFO_NEW_VTABLE_MARKED use. 5750169689Skan (build_secondary_vtable): Remove FOR_TYPE arg. Adjust. 5751169689Skan (make_new_vtable): Adjust. 5752169689Skan (force_canonical_binfo_r): Delete. 5753169689Skan (force_canonical_binfo): Delete. 5754169689Skan (mark_primary_virtual_base): Delete. 5755169689Skan (dfs_unshared_virtual_bases): Delete. 5756169689Skan (mark_primary_bases): Adjust. 5757169689Skan (maybe_warn_about_overly_private_class): Adjust. 5758169689Skan (dfs_base_derived_from): Delete. 5759169689Skan (base_derived_from): Follow the inheritance chain. 5760169689Skan (struct find_final_overrider_data): Add vpath member. 5761169689Skan (dfs_find_final_overrider): Adjust. 5762169689Skan (dfs_find_final_overrider_q, dfs_find_final_overrider_post): New. 5763169689Skan (find_final_overrider): Adjust. 5764169689Skan (update_vtable_entry_for_fn): Adjust. 5765169689Skan (modify_all_vtables): Adjust. 5766169689Skan (walk_subobject_offsets): Adjust. 5767169689Skan (layout_nonempty_base_or_field): Adjust. 5768169689Skan (layout_empty_base): Remove last parameter. Adjust. 5769169689Skan (build_base_field): Adjust. 5770169689Skan (build_base_fields): Adjust. 5771169689Skan (propagate_binfo_offsets): Remove last parameter. Adjust. 5772169689Skan (dfs_set_offset_for_unshared_vbases): Delete. 5773169689Skan (layout_virtual_bases): Adjust. 5774169689Skan (finish_struct_1): Adjust. 5775169689Skan (init_class_processing): Don't init access nodes. 5776169689Skan (dfs_get_primary_binfo): Delete. 5777169689Skan (get_primary_binfo): Adjust. 5778169689Skan (dump_class_hierarchy_r): Remove most derived arg, add IGO 5779169689Skan parameter. Adjust. 5780169689Skan (dump_class_hierarchy): Adjust. 5781169689Skan (finish_vtbls): Adjust. 5782169689Skan (get_original_base): Delete. 5783169689Skan (build_vtt_inits): Adjust. 5784169689Skan (dfs_build_secondary_vptr_vtt_inits): Adjust. 5785169689Skan (dfs_ctor_vtable_bases_queue_p): Adjust. 5786169689Skan (build_ctor_vtbl_group): Adjust. 5787169689Skan (dfs_accumulate_vtbl_inits): Adjust. 5788169689Skan (build_vtbl_initializer): Adjust. 5789169689Skan (build_vbase_offset_vtbl_entries): Adjust. 5790169689Skan (add_vcall_offset_vtbl_entries_1): Adjust. 5791169689Skan * cp/cp-tree.h (CPTI_ACCESS_*): Remove. 5792169689Skan (access_*_node): Remove. 5793169689Skan (CANONICAL_BINFO): Delete. 5794169689Skan (BINFO_UNSHARED_MARKED): Remove. 5795169689Skan (BINFO_MARKED): Set LANG_FLAG_0 directly. 5796169689Skan (SET_BINFO_MARKED, CLEAR_BINFO_MARKED): Delete. 5797169689Skan (BINFO_VTABLE_PATH_MARKED): Set LANG_FLAG_3 directly. 5798169689Skan (SET_BINFO_VTABLE_PATH_MARKED, CLEAR_BINFO_VTABLE_PATH_MARKED): 5799169689Skan Delete. 5800169689Skan (BINFO_NEW_VTABLE_MARKED): Set LANG_FLAG_4 directly. 5801169689Skan (SET_BINFO_NEW_VTABLE_MARKED): Adjust. 5802169689Skan (SET_BINFO_PUSHDECLS_MARKED, CLEAR_BINFO_PUSHDECLS_MARKED): 5803169689Skan Delete. 5804169689Skan (BINFO_DEPENDENT_BASE_P): New. 5805169689Skan (dfs_walk, dfs_walk_real): Queue function takes derived binfo and 5806169689Skan index. 5807169689Skan (markedp, unmarkedp): Adjust. 5808169689Skan (dfs_unmarked_real_bases_queue_p, dfs_marked_real_bases_queue_p, 5809169689Skan dfs_skip_vbases, marked_vtable_pathp, unmarked_vtable_pathp, 5810169689Skan find_vbase_instance, binfo_for_vbase): Delete. 5811169689Skan (copied_binfo, original_binfo): Declare. 5812169689Skan (finish_base_specifier): Add virtual_p arg. 5813169689Skan (unshare_base_binfos): Delete. 5814169689Skan (copy_base_binfos): Declare. 5815169689Skan (reverse_path): Delete. 5816169689Skan * cp/decl.c (xref_basetypes): Access and virtuality passed 5817169689Skan differently. Don't copy direct base binfos here. Call 5818169689Skan copy_base_binfos. 5819169689Skan * cp/init.c (dfs_initialize_vtbl_ptrs): Adjust. 5820169689Skan (initialize_vtbl_ptrs): Adjust. 5821169689Skan (expand_member_init): Adjust. 5822169689Skan * cp/parser.c (cp_parser_base_specifier): Adjust. 5823169689Skan * cp/pt.c (instantiate_class_template): Adjust. 5824169689Skan (get_template_base_recursive): Adjust. 5825169689Skan * cp/rtti.c (get_pseudo_ti_init): Adjust. 5826169689Skan (get_pseudo_ti_desc): Adjust. 5827169689Skan * cp/tree.c (unshare_base_binfos): Rename to ... 5828169689Skan (copy_base_binfos): ... here, reimplement. 5829169689Skan (make_binfo): Set BINFO_DEPENDENT_BASE_P. 5830169689Skan (reverse_path): Remove. 5831169689Skan * cp/typeck.c (get_delta_difference): Adjust error messages. 5832169689Skan * cp/semantics.c (finish_base_specifier): Add virtual arg, adjust. 5833169689Skan * cp/search.c (lookup_base_r): Adjust. 5834169689Skan (dynamic_cast_base_recurse): Adjust. 5835169689Skan (canonical_binfo): Remove. 5836169689Skan (dfs_canonical_queue): Remove. 5837169689Skan (dfs_assert_unmarked_p): Remove. 5838169689Skan (assert_canonical_unmarked): Remove. 5839169689Skan (shared_marked_p, shared_unmarked_p): Remove. 5840169689Skan (BINFO_ACCESS, SET_BINFO_ACCESS): Use TREE_PUBLIC & TREE_PRIVATE. 5841169689Skan (dfs_access_in_type): Adjust. 5842169689Skan (access_in_type): Adjust. 5843169689Skan (dfs_accessible_queue_p): Adjust. 5844169689Skan (dfs_accessible_p): Adjust. 5845169689Skan (is_subobject_of_p_1, is_subobject_of_p): Remove. 5846169689Skan (struct lookup_field_info): Remove from_dep_base_p field. 5847169689Skan (lookup_field_queue_p): Adjust, test BINFO_DEPENDENT_BASE_P. 5848169689Skan (lookup_field_r): Remove dependent base code. 5849169689Skan (lookup_member): Likewise. 5850169689Skan (dfs_walk, dfs_walk_real): Add access arg to queue fn. 5851169689Skan (dfs_unmarked_real_bases_queue_p): Remove. 5852169689Skan (dfs_marked_real_bases_queue_p): Remove. 5853169689Skan (dfs_skip_vbases): Remove. 5854169689Skan (dfs_get_pure_virtuals): Adjust. 5855169689Skan (markedp, unmarkedp): Adjust. 5856169689Skan (marked_vtable_pathp, unmarked_vtable_pathp): Remove. 5857169689Skan (marked_pushdecls_p, unmarked_pushdecls_p): Adjust. 5858169689Skan (dfs_unmark): Adjust. 5859169689Skan (dfs_get_vbase_types):Remove. 5860169689Skan (dfs_build_inheritance_graph_order): Remove. 5861169689Skan (get_vbase_types): Remove 5862169689Skan (dfs_find_vbase_instance): Remove. 5863169689Skan (find_vbase_instance): Remove. 5864169689Skan (dfs_debug_unmarkedp): Adjust. 5865169689Skan (dependent_base_p): Remove. 5866169689Skan (dfs_push_type_decls): Adjust. 5867169689Skan (dfs_push_decls): Adjust. 5868169689Skan (dfs_no_overlap_yet): Adjust. 5869169689Skan (copied_binfo): New function. 5870169689Skan (original_binfo): New function. 5871169689Skan (binfo_for_vbase): Remove. 5872169689Skan 5873169689Skan2003-02-18 Zack Weinberg <zack@codesourcery.com> 5874169689Skan 5875169689Skan * cp/search.c (grow_bfs_bases): New subroutine of bfs_walk. 5876169689Skan (bfs_walk): Rewritten using circular queue of BINFO_BASETYPES 5877169689Skan vectors, for speed. 5878169689Skan 5879169689Skan2003-02-18 Mark Mitchell <mark@codesourcery.com> 5880169689Skan 5881169689Skan PR c++/9704 5882169689Skan * class.c (layout_class_type): In the 3.2 ABI, take into account 5883169689Skan trailing bit fields when computing CLASSTYPE_SIZE_UNIT. 5884169689Skan 5885169689Skan2003-02-18 Matt Austern <austern@apple.com> 5886169689Skan 5887169689Skan * cp/cp-lang.c: Change lang hooks so that final_write_globals does 5888169689Skan nothing for C++. 5889169689Skan * cp/decl.c (wrapup_globals_for_namespace): Remove special 5890169689Skan handling of global namespace. 5891169689Skan 5892169689Skan2003-02-18 Geoffrey Keating <geoffk@apple.com> 5893169689Skan 5894169689Skan * cp-tree.h (rid_to_yy): Delete. 5895169689Skan (C_RID_YYCODE): Delete. 5896169689Skan (finish_file): Delete redundant declaration. 5897169689Skan 5898169689Skan2003-02-18 Jason Merrill <jason@redhat.com> 5899169689Skan 5900169689Skan PR c++/9623 5901169689Skan * decl.c (reshape_init): Don't mess with initializer labels. 5902169689Skan 5903169689Skan PR c++/9485 5904169689Skan * parser.c (cp_parser_postfix_expression): Set idk properly for 5905169689Skan object->scope::member. 5906169689Skan 5907169689Skan2003-02-18 Ben Elliston <bje@redhat.com> 5908169689Skan 5909169689Skan PR other/7350 5910169689Skan * decl.c (duplicate_decls): Fix typo in comment. 5911169689Skan 5912169689Skan2003-02-17 Michael Elizabeth Chastain <mec@shout.net> 5913169689Skan 5914169689Skan PR debug/9717 5915169689Skan * class.c (build_base_field): Mark fields for base classes with 5916169689Skan DECL_IGNORED_P. 5917169689Skan 5918169689Skan2003-02-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 5919169689Skan 5920169689Skan PR c++/9457 5921169689Skan * pt.c (tsubst_copy_and_build) [CONSTRUCTOR]: Substitute 5922169689Skan CONSTRUCTOR_ELTS only once. 5923169689Skan 5924169689Skan2003-02-16 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 5925169689Skan 5926169689Skan PR c++/9459 5927169689Skan * error.c (dump_type_prefix): Handle TYPEOF_TYPE. 5928169689Skan (dump_type_suffix): Likewise. 5929169689Skan 5930169689Skan2003-02-14 Nathan Sidwell <nathan@codesourcery.com> 5931169689Skan 5932169689Skan * search.c: ANSIfy function declarations and definitions. 5933169689Skan * cp-tree.h (lookup_field, lookup_member): Last parameter is a bool. 5934169689Skan * call.c (build_method_call, resolve_scoped_fn_name, 5935169689Skan build_java_interface_fn_ref): Adjust lookup_field, lookup_member 5936169689Skan calls. 5937169689Skan * class.c (handle_using_decl): Likewise. 5938169689Skan * decl.c (make_typename_type, make_unmound_class_template, 5939169689Skan start_decl, compute_array_index_type): Likewise. 5940169689Skan * decl2.c (build_expr_from_tree, build_call_from_tree): Likewise. 5941169689Skan * init.c (expand_member_init, build_member_call): Likewise. 5942169689Skan * pt.c (tsubst_copy, tsubst_copy_and_build, do_decl_instantiation, 5943169689Skan resolve_typename_type): Likewise. 5944169689Skan * typeck.c (lookup_destructor, finish_class_member_access_exprm 5945169689Skan build_prememfunc_access_expr): Likewise. 5946169689Skan 5947169689Skan2003-02-13 Gabriel Dos Reis <gdr@integrable-solutions.net> 5948169689Skan 5949169689Skan * decl2.c: Include "timevar.h". 5950169689Skan (namespace_ancestor): Time name lookup. 5951169689Skan (add_using_namespace): Likewise. 5952169689Skan (lookup_using_namespace): Likewise. 5953169689Skan (qualified_lookup_using_namespace): Likewise. 5954169689Skan (decl_namespace): Likewise. 5955169689Skan (lookup_arg_dependent): Likewise. 5956169689Skan * lex.c (do_identifier): Likewise. 5957169689Skan (do_scoped_id): Likewise. 5958169689Skan * pt.c (lookup_template_class): Likewise. 5959169689Skan 5960169689Skan2003-02-14 Andrew Pinski <pinskia@physics.uc.edu> 5961169689Skan 5962169689Skan * decl.c: (define_label): Fix warning for return 0 instead of NULL. 5963169689Skan 5964169689Skan2003-02-13 Gabriel Dos Reis <gdr@integrable-solutions.net> 5965169689Skan 5966169689Skan * decl.c: Include "timevar.h". 5967169689Skan (poplevel): Time name lookup. 5968169689Skan (find_binding): Likewise. 5969169689Skan (push_namespace): Likewise. 5970169689Skan (pop_nested_namespace): Likewise. 5971169689Skan (store_bindings): Likewise. 5972169689Skan (maybe_push_to_top_level): Likewise. 5973169689Skan (pop_from_top_level): Likewise. 5974169689Skan (push_local_name): Likewise. 5975169689Skan (pushtag): Likewise. 5976169689Skan (pushdecl): Likewise. 5977169689Skan (pushdecl_with_scope): Likewise. 5978169689Skan (pushdecl_namespace_level): Likewise. 5979169689Skan (pushdecl_top_level): Likewise. 5980169689Skan (pushdecl_class_level): Likewise. 5981169689Skan (push_class_level_binding): Likewise. 5982169689Skan (push_using_decl): Likewise. 5983169689Skan (push_using_directive): Likewise. 5984169689Skan (push_overloaded_decl): Likewise. 5985169689Skan (lookup_label): Likewise. 5986169689Skan (define_label): Likewise. 5987169689Skan (lookup_tag): Likewise. 5988169689Skan (lookup_tag_reverse): Likewise. 5989169689Skan (lookup_namespace_name): Likewise. 5990169689Skan (select_decl): Likewise. 5991169689Skan (unqualified_namespace_lookup): Likewise. 5992169689Skan (lookup_name_real): Likewise. 5993169689Skan (lookup_name_current_level): Likewise. 5994169689Skan (lookup_type_current_level): Likewise. 5995169689Skan (maybe_inject_for_scope_var): Likewise. 5996169689Skan (xref_tag): Likewise. 5997169689Skan 5998169689Skan * Make-lang.in (cp/decl.o): Add dependency on timevar.h 5999169689Skan 6000169689Skan2003-02-12 Phil Edwards <pme@gcc.gnu.org> 6001169689Skan 6002169689Skan * decl.c (build_enumerator): Remove unneeded test. 6003169689Skan 6004169689Skan2003-02-09 Dan Nicolaescu <dann@ics.uci.edu> 6005169689Skan 6006169689Skan * cp-tree.h (struct lang_type_header): Make all fields unsigned 6007169689Skan char. 6008169689Skan 6009169689Skan2003-02-03 Mark Mitchell <mark@codesourcery.com> 6010169689Skan 6011169689Skan PR c++/7129 6012169689Skan * call.c (z_candidate): Add args. 6013169689Skan (convert_class_to_reference): Set it. 6014169689Skan (implicit_conversion): Tidy. 6015169689Skan (add_candidate): Add args parameter. 6016169689Skan (add_function_candidate): Adjust call to add_candidate. 6017169689Skan (add_conv_candidate): Likewise. 6018169689Skan (build_builtin_candidate): Likewise. 6019169689Skan (build_user_type_conversion_1): Eliminate wasteful tree_cons 6020169689Skan usage. 6021169689Skan (build_new_function_call): Likewise. 6022169689Skan (build_object_call): Likewise. 6023169689Skan (add_candidates): New function. 6024169689Skan (build_new_op): Use it. 6025169689Skan (covert_like_real): Adjust call to build_over_call. 6026169689Skan (build_over_call): Remove args parameter. 6027169689Skan * operators.def: Add <?= and >?=. 6028169689Skan 6029169689Skan2003-02-01 Richard Sandiford <rsandifo@redhat.com> 6030169689Skan 6031169689Skan * typeck.c (build_indirect_ref): Don't check flag_volatile. 6032169689Skan 6033169689Skan2003-01-31 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 6034169689Skan 6035169689Skan PR c++/8849 6036169689Skan * pt.c (resolve_overloaded_unification): Handle FUNCTION_DECL. 6037169689Skan 6038169689Skan2003-01-31 Nathan Sidwell <nathan@codesourcery.com> 6039169689Skan 6040169689Skan * cp-tree.h (BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, 6041169689Skan BINFO_PRIMARY_BASE_OF): Use BINFO_ELTS. 6042169689Skan (BINFO_LANG_ELTS): New #define. 6043169689Skan * tree.c (make_binfo): Use BINFO_LANG_ELTS. 6044169689Skan 6045169689Skan2003-01-30 Geoffrey Keating <geoffk@apple.com> 6046169689Skan 6047169689Skan * cp/Make-lang.in: Remove -Wno-error from cp/decl.o. 6048169689Skan 6049169689Skan2003-01-30 Mark Mitchell <mark@codesourcery.com> 6050169689Skan 6051169689Skan * class.c (check_field_decls): Only check C_TYPE_FIELDS_READONLY 6052169689Skan for class types. 6053169689Skan * cp-tree.h (C_TYPE_FIELDS_READONLY): Use a lang-specific bit 6054169689Skan rather than TYPE_LANG_FLAG_0. 6055169689Skan (TYPE_BUILT_IN): Remove. 6056169689Skan (TYPE_DEPENDENT_P): New macro. 6057169689Skan (TYPE_DEPENDENT_P_VALID): Likewise. 6058169689Skan (lang_type_class): Add fields_readonly. 6059169689Skan * decl.c (record_builtin_type): Don't set TYPE_BUILT_IN. 6060169689Skan * pt.c (dependent_type_p_r): New function, split out from ... 6061169689Skan (dependent_type_p): ... here. Memoize results. 6062169689Skan * search.c (dependent_base_p): Use dependent_type_p, not 6063169689Skan uses_template_parms. 6064169689Skan * typeck.c (build_modify_expr): Only check C_TYPE_FIELDS_READONLY 6065169689Skan for class types. 6066169689Skan 6067169689Skan2003-01-29 Mark Mitchell <mark@codesourcery.com> 6068169689Skan 6069169689Skan * call.c (build_field_call): Use build_new_op, not build_opfncall. 6070169689Skan (prep_operand): New function. 6071169689Skan (build_new_op): Use it. Remove dead code. 6072169689Skan * class.c (pushclass): Change "modify" parameter type from int to 6073169689Skan bool. 6074169689Skan (currently_open_class): Use same_type_p, not pointer equality. 6075169689Skan (push_nested_class): Adjust calls to pushclass, remove modify 6076169689Skan parameter. 6077169689Skan * cp-tree.h (INTEGRAL_OR_ENUMERATION_TYPE_P): New macro. 6078169689Skan (pushclass): Change prototype. 6079169689Skan (push_nested_class): Likewise. 6080169689Skan (grokoptypename): Remove. 6081169689Skan (build_opfncall): Remove. 6082169689Skan (value_dependent_expression_p): Declare. 6083169689Skan (resolve_typename_type): Likewise. 6084169689Skan (resolve_typename_type_in_current_instantiation): Likewise. 6085169689Skan (enter_scope_of): Remove. 6086169689Skan (tsubst): Remove. 6087169689Skan (tsubst_expr): Likewise. 6088169689Skan (tsubst_copy): Likewise. 6089169689Skan (tsubst_copy_and_build): Likewise. 6090169689Skan * decl.c (warn_about_implicit_typename_lookup): Remove. 6091169689Skan (finish_case_label): Return error_mark_node for erroneous labels. 6092169689Skan (start_decl): Adjust calls to push_nested_class. 6093169689Skan (grokfndecl): Call push_scope/pop_scope around call to 6094169689Skan duplicate_decls. 6095169689Skan (grokdeclarator): Do not call tsubst. 6096169689Skan (start_function): Adjust calls to push_nested_class. 6097169689Skan * decl2.c (grok_array_decl): Use build_new_op, not build_opfncall. 6098169689Skan (check_classfn): Use push_scope/pop_scope around type comparisions. 6099169689Skan (grokoptypename): Remove. 6100169689Skan (push_sscope): Adjust call to push_nested_class. 6101169689Skan * error.c (dump_type): Show cv-qualification of typename types. 6102169689Skan * init.c (build_member_call): Use build_new_op, not 6103169689Skan build_opfncall. 6104169689Skan * method.c (build_opfncall): Remove. 6105169689Skan * parser.c (cp_parser): Add allow_non_constant_expression_p and 6106169689Skan non_constant_expression_p. 6107169689Skan (cp_parser_constant_expression): Adjust prototype. 6108169689Skan (cp_parser_resolve_typename_type): Remove. 6109169689Skan (cp_parser_non_constant_expression): New function. 6110169689Skan (cp_parser_non_constant_id_expression): Likewise. 6111169689Skan (cp_parser_new): Set allow_non_constant_expression_p and 6112169689Skan non_constant_expression_p. 6113169689Skan (cp_parser_primary_expression): Reject `this' and `va_arg' in 6114169689Skan constant-expressions. Note that dependent names aren't really 6115169689Skan constant. 6116169689Skan (cp_parser_postfix_expression): Reject conversions to non-integral 6117169689Skan types in constant-expressions. Neither are increments or 6118169689Skan decrements. 6119169689Skan (cp_parser_unary_expression): Reject increments and decrements in 6120169689Skan constant-expressions. 6121169689Skan (cp_parser_direct_new_declarator): Adjust call to 6122169689Skan cp_parser_constant_expression. 6123169689Skan (cp_parser_cast_expression): Reject conversions to non-integral 6124169689Skan types in constant-expressions. 6125169689Skan (cp_parser_assignment_expression): Rejects assignments in 6126169689Skan constant-expressions. 6127169689Skan (cp_parser_expression): Reject commas in constant-expressions. 6128169689Skan (cp_parser_labeled_statement): Adjust call to 6129169689Skan cp_parser_constant_expression. 6130169689Skan (cp_parser_direct_declarator): Simplify array bounds, even in 6131169689Skan templates, when they are non-dependent. Use 6132169689Skan resolve_typename_type, not cp_parser_resolve_typename_type. 6133169689Skan (cp_parser_class_head): Use resolve_typename_type, not 6134169689Skan cp_parser_resolve_typename_type. 6135169689Skan (cp_parser_member_declaration): Adjust call to 6136169689Skan cp_parser_constant_expression. 6137169689Skan (cp_parser_constant_initializer): Likewise. 6138169689Skan (cp_parser_constructor_declarator): Use resolve_typename_type, not 6139169689Skan cp_parser_resolve_typename_type. 6140169689Skan (cp_parser_late_parsing_default_args): Adjust call to 6141169689Skan push_nested_class. 6142169689Skan * pt.c (tsubst): Give it internal linkage. 6143169689Skan (tsubst_expr): Likewise. 6144169689Skan (tsubst_copy): Likewise. 6145169689Skan (tsubst_copy_and_build): Likewise. 6146169689Skan (push_access_scope_real): Likewise. 6147169689Skan (tsubst_friend_class): Likewise. 6148169689Skan (instantiate_class_template): Adjust call to pushclass. 6149169689Skan (value_dependent_expression_p): Give it external linkage. 6150169689Skan Robustify. 6151169689Skan (resolve_typename_type): New function. 6152169689Skan * semantics.c (finish_call_expr): Use build_new_op, not 6153169689Skan build_opfncall. 6154169689Skan (begin_constructor_declarator): Remove. 6155169689Skan (begin_class_definition): Adjust call to pushclass. 6156169689Skan (enter_scope_of): Remove. 6157169689Skan * typeck.c (comptypes): Resolve typename types as appropriate. 6158169689Skan (build_x_indirect_ref): Use build_new_op, not build_opfncall. 6159169689Skan (build_x_compound_expr): Likewise. 6160169689Skan (build_modify_expr): Likewise. 6161169689Skan (build_x_modify_expr): Likewise. 6162169689Skan * typeck2.c (build_x_arrow): Likewise. 6163169689Skan 6164169689Skan2003-01-29 Fariborz Jahanian <fjahanian@apple.com> 6165169689Skan 6166169689Skan * pt.c (last_pending_template) Declare GTY(). 6167169689Skan 6168169689Skan2003-01-29 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 6169169689Skan 6170169689Skan PR c++/8591 6171169689Skan * parser.c (cp_parser_elaborated_type_specifier): Convert 6172169689Skan TEMPLATE_DECL to TYPE_DECL only when processing template friends. 6173169689Skan (cp_parser_maybe_treat_template_as_class): Remove redundant tests. 6174169689Skan 6175169689Skan2003-01-28 Nathan Sidwell <nathan@codesourcery.com> 6176169689Skan 6177169689Skan PR c++/9437 6178169689Skan * pt.c (unify): Don't unify '*T' with 'U C::*'. 6179169689Skan 6180169689Skan PR c++/3902 6181169689Skan * parser.c (cp_parser_decl_specifier_seq): Cannot have constructor 6182169689Skan inside a declarator. 6183169689Skan 6184169689Skan2003-01-27 Nathan Sidwell <nathan@codesourcery.com> 6185169689Skan 6186169689Skan * class.c (update_vtable_entry_for_fn): Add index parameter. 6187169689Skan Generate vcall thunk for covariant overriding from a virtual 6188169689Skan primary base. 6189169689Skan (dfs_modify_vtables): Adjust. 6190169689Skan 6191169689Skan2003-01-25 Nathan Sidwell <nathan@codesourcery.com> 6192169689Skan 6193169689Skan PR c++/9403 6194169689Skan * parser.c (cp_parser_class_or_namespace_name): Reject duplicate 6195169689Skan template keyword. 6196169689Skan (cp_parser_base_specifier): Look for and consume a 6197169689Skan TEMPLATE keyword. Replace switch with array index. 6198169689Skan 6199169689Skan PR c++/795 6200169689Skan * semantics.c (finish_non_static_data_member): Remember the 6201169689Skan field's type even in a template. 6202169689Skan 6203169689Skan PR c++/9415 6204169689Skan * pt.c (tsubst_copy_and_build, CALL_EXPR): BASELINK exprs are 6205169689Skan already scoped. 6206169689Skan 6207169689Skan PR c++/8545 6208169689Skan * parser.c (cp_parser_cast_expression): Be more tentative. 6209169689Skan 6210169689Skan2003-01-25 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 6211169689Skan 6212169689Skan * cp-tree.h (flagged_type_tree_s): Remove. 6213169689Skan (check_for_new_type): Likewise. 6214169689Skan * typeck2.c (check_for_new_type): Likewise. 6215169689Skan 6216169689Skan2003-01-23 Nathanael Nerode <neroden@gcc.gnu.org> 6217169689Skan 6218169689Skan * dump.c: ANSIfy function declarations and definitions. 6219169689Skan 6220169689Skan * cp-tree.h, decl.h: Get rid of PARAMS. Again. 6221169689Skan 6222169689Skan2003-01-22 Mark Mitchell <mark@codesourcery.com> 6223169689Skan 6224169689Skan PR c++/9354 6225169689Skan * init.c (build_new): Set the type of the new-expression, even 6226169689Skan when processing_templte_decl. 6227169689Skan 6228169689Skan PR c++/9216 6229169689Skan * parser.c (cp_parser_primary_expression): Improve error message 6230169689Skan for templates used in an expression context. 6231169689Skan 6232169689Skan PR c++/8696 6233169689Skan * parser.c (cp_parser_decl_specifier_seq): Commit to tentative 6234169689Skan parse when encountering "typedef". 6235169689Skan 6236169689Skan2003-01-22 Nathanael Nerode <neroden@gcc.gnu.org> 6237169689Skan 6238169689Skan * class.c, parser.c: ANSIfy function definitions and declarations. 6239169689Skan 6240169689Skan2003-01-22 Mark Mitchell <mark@codesourcery.com> 6241169689Skan 6242169689Skan PR c++/9328 6243169689Skan * error.c (dump_decl): For an OVERLOAD, just print the name of the 6244169689Skan function; it doesn't make sense to try to print its type. 6245169689Skan * semantics.c (finish_typeof): Issue errors about invalid uses. 6246169689Skan 6247169689Skan PR c++/9298 6248169689Skan * parser.c (cp_parser_consume_semicolon_at_end_of_statement): New 6249169689Skan function. 6250169689Skan (cp_parser_expression_statement): Use it. 6251169689Skan (cp_parser_explicit_instantiation): Likewise. 6252169689Skan * pt.c (do_decl_instantiation): Improve error handling logic. 6253169689Skan 6254169689Skan2003-01-22 Mark Mitchell <mark@codesourcery.com> 6255169689Skan 6256169689Skan PR c++/9384 6257169689Skan * parser.c (cp_parser_using_declaration): Issue error messages 6258169689Skan about name resolution failures here. 6259169689Skan 6260169689Skan PR c++/9388 6261169689Skan * class.c (currently_open_derived_class): Use dependent_type_p. 6262169689Skan * cp-tree.h (dependent_type_p): New function. 6263169689Skan (dependent_template_arg_p): Likewise. 6264169689Skan (dependent_template_p): Likewise. 6265169689Skan (type_dependent_expression_p): Likewise. 6266169689Skan * parser.c (cp_parser_dependent_type_p): Remove. 6267169689Skan (cp_parser_value_dependent_type_p): Likewise. 6268169689Skan (cp_parser_type_dependent_expression_p): Likewise. 6269169689Skan (cp_parser_dependent_template_arg_p): Likewise. 6270169689Skan (cp_parser_dependent_template_id_p): Likewise. 6271169689Skan (cp_parser_dependent_template_p): Likewise. 6272169689Skan (cp_parser_diagnose_invalid_type_name): Replace 6273169689Skan cp_parser_dependent_type_p with dependent_type_p, etc. 6274169689Skan (cp_parser_primary_expresion): Likewise. 6275169689Skan (cp_parser_nested_name_specifier_opt): Likewise. 6276169689Skan (cp_parser_postfix_expression): Likewise. 6277169689Skan (cp_parser_unary_expression): Likewise. 6278169689Skan (cp_parser_template_name): Likewise. 6279169689Skan (cp_parser_class_name): Likewise. 6280169689Skan (cp_parser_lookup_name): Likewise. 6281169689Skan * pt.c (dependent_type_p): New function. 6282169689Skan (value_dependent_expression_p): Likewise. 6283169689Skan (type_dependent_expression_p): Likewise. 6284169689Skan (dependent_template_arg_p): Likewise. 6285169689Skan (dependent_template_id_p): Likewise. 6286169689Skan (dependent_template_p): Likewise. 6287169689Skan 6288169689Skan PR c++/9285 6289169689Skan PR c++/9294 6290169689Skan * parser.c (cp_parser_simple_declaration): Return quickly when 6291169689Skan encountering errors. 6292169689Skan 6293169689Skan2003-01-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 6294169689Skan 6295169689Skan Make-lang.in (cp/decl.o-warn): Add -Wno-error. 6296169689Skan 6297169689Skan2003-01-17 Jason Merrill <jason@redhat.com> 6298169689Skan 6299169689Skan PR c++/9167, c++/9358 6300169689Skan * decl.c (require_complete_types_for_parms): Also update DECL_ARG_TYPE. 6301169689Skan 6302169689Skan2003-01-17 Jason Merrill <jason@redhat.com> 6303169689Skan 6304169689Skan PR c++/9342 6305169689Skan * call.c (build_conditional_expr): Always do lvalue-rvalue 6306169689Skan conversion. 6307169689Skan 6308169689Skan2003-01-17 Mark Mitchell <mark@codesourcery.com> 6309169689Skan 6310169689Skan PR c++/9294 6311169689Skan * cp-tree.def (BASELINK): Make it class 'x', not class 'e'. 6312169689Skan * cp-tree.h (BASELINK_BINFO): Adjust. 6313169689Skan (BASELINK_FUNCTIONS): Likewise. 6314169689Skan (BASELINK_ACCESS_BINFO): Likewise. 6315169689Skan (tree_baselink): New structure. 6316169689Skan (cp_tree_node_structure_enum): Add TS_CP_BASELINK. 6317169689Skan (lang_tree_node): Add baselink. 6318169689Skan * decl.c (cp_tree_node_structure): Add BASELINK case. 6319169689Skan * search.c (build_baselink): Adjust. 6320169689Skan * tree.c (cp_walk_subtrees): Add BASELINK case. Remove BASELINK_P 6321169689Skan test from TREE_LIST case. 6322169689Skan 6323169689Skan PR c++/9272 6324169689Skan * parser.c (cp_parser_constructor_declarator_p): Do not assume 6325169689Skan that a constructor cannot be declared outside of its own class. 6326169689Skan 6327169689Skan * parser.c (cp_parser_resolve_typename_type): If the scope cannot 6328169689Skan be resolved, neither can the qualified name. 6329169689Skan 6330169689Skan * rtti.c (get_pseudo_ti_desc): Fix thinko. 6331169689Skan 6332169689Skan2003-01-16 Jason Merrill <jason@redhat.com> 6333169689Skan 6334169689Skan PR c++/8564 6335169689Skan * init.c (build_vec_init): Re-add maxindex parm. 6336169689Skan (perform_member_init, build_aggr_init): Pass it. 6337169689Skan (build_new_1): Pass it. Use an incomplete array type for full_type. 6338169689Skan * typeck.c (build_modify_expr): Pass it. 6339169689Skan * cp-tree.h: Adjust. 6340169689Skan 6341169689Skan2003-01-16 Jeffrey D. Oldham <oldham@codesourcery.com> 6342169689Skan 6343169689Skan * cp-tree.h (tsubst_copy_and_build): New declaration. 6344169689Skan * pt.c (tsubst_copy): Remove 'build_expr_from_tree' from comment. 6345169689Skan (tsubst_expr): Use 'tsubst_copy_and_build'. Update initial comment. 6346169689Skan (tsubst_copy_and_build): New function. 6347169689Skan 6348169689Skan2003-01-16 Mark Mitchell <mark@codesourcery.com> 6349169689Skan 6350169689Skan * cp-tree.h (lang_type_class): Remove is_partial_instantiation. 6351169689Skan (PARTIAL_INSTANTIATION_P): Remove. 6352169689Skan (IMPLICIT_TYPENAME_P): Likewise. 6353169689Skan (IMPLICIT_TYPENAME_TYPE_DECL_P): Likewise. 6354169689Skan (build_typename_type): Remove declaration. 6355169689Skan (parmlist_is_exprlist): Likewise. 6356169689Skan * decl.c (build_typename_type): Make it static, remove third 6357169689Skan parameter. 6358169689Skan (push_class_binding): Don't do implicit typename stuff. 6359169689Skan (make_typename_type): Likewise. 6360169689Skan (lookup_name_real): Likewise. 6361169689Skan (grokdeclarator): Don't try to convert declarations into 6362169689Skan initializations. Don't do implicit typename stuff. 6363169689Skan (parmlist_is_exprlist): Remove. 6364169689Skan (xref_basetypes): Simplify. 6365169689Skan * decl2.c (grokfield): Don't try to convert declarations into 6366169689Skan initializations. 6367169689Skan (build_anon_union_vars): Do this while processing templates, too. 6368169689Skan (finish_anon_union): Likewise. 6369169689Skan * error.c (dump_type): Remove implicit typename handling. 6370169689Skan * parser.c (cp_parser_diagnose_invalid_type_name): New method. 6371169689Skan (cp_parser_primary_expression): Correct handling of names not 6372169689Skan found by unqualified name lookup in templates. 6373169689Skan (cp_parser_nested_name_specifier_opt): Avoid checking dependency 6374169689Skan of types when possible. 6375169689Skan (cp_parser_simple_declaration): Complain intelligently about some 6376169689Skan invalid declarations. 6377169689Skan (cp_parser_member_declaration): Likewise. 6378169689Skan (cp_parser_constructor_declarator_p): Don't check when we're in a 6379169689Skan function scope. 6380169689Skan * pt.c (instantiate_class_template): Remove 6381169689Skan PARTIAL_INSTANTIATION_P gunk. 6382169689Skan * search.c (lookup_field_r): Don't build implicit typenames. 6383169689Skan (marked_pushdecls_p): Don't enter dependent base types. 6384169689Skan (unmarked_pushdecls_p): Likewise. 6385169689Skan * semantics.c (begin_class_definition): Remove implicit typename 6386169689Skan stuff. 6387169689Skan 6388169689Skan2003-01-16 Nathan Sidwell <nathan@codesourcery.com> 6389169689Skan 6390169689Skan PR c++/9212 6391169689Skan * parser.c (cp_parser_direct_declarator): If accepting either 6392169689Skan abstract or named, the name must be an unqualified-id. 6393169689Skan 6394169689Skan2003-01-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 6395169689Skan 6396169689Skan * class.c (layout_virtual_bases): Avoid signed/unsigned warning. 6397169689Skan 6398169689Skan2003-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 6399169689Skan 6400169689Skan * decl2.c (check_classfn): Fix uninitialized warning. 6401169689Skan (build_anon_union_vars): Likewise. 6402169689Skan * pt.c (tsubst_copy): Likewise. 6403169689Skan 6404169689Skan2003-01-14 Jeffrey D. Oldham <oldham@codesourcery.com> 6405169689Skan 6406169689Skan Further conform g++'s __vmi_class_type_info to the C++ ABI 6407169689Skan specification. 6408169689Skan * rtti.c (dfs_class_hint_mark): Do not set hints not specified by 6409169689Skan the specification. 6410169689Skan (class_hint_flags): Likewise. 6411169689Skan 6412169689Skan2003-01-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 6413169689Skan 6414169689Skan * config-lang.in: Add semantics.c to gtfiles. 6415169689Skan * cp-tree.h (flagged_type_tree_s): Remove lookups field. 6416169689Skan (saved_scope): Likewise. 6417169689Skan (type_lookups): Remove. 6418169689Skan (deferred_access): New structure. 6419169689Skan (type_access_control): Remove. 6420169689Skan (save_type_access_control): Likewise. 6421169689Skan (reset_type_access_control): Likewise. 6422169689Skan (decl_type_access_control): Likewise. 6423169689Skan (push_deferring_access_checks): Declare. 6424169689Skan (resume_deferring_access_checks): Likewise. 6425169689Skan (stop_deferring_access_checks): Likewise. 6426169689Skan (pop_deferring_access_checks): Likewise. 6427169689Skan (get_deferred_access_checks): Likewise. 6428169689Skan (pop_to_parent_deferring_access_checks): Likewise. 6429169689Skan (perform_deferred_access_checks): Likewise. 6430169689Skan (perform_or_defer_access_check): Likewise. 6431169689Skan * decl.c (make_typename_type): Use perform_or_defer_access_check. 6432169689Skan (make_unbound_class_template): Likewise. 6433169689Skan (grokdeclarator): Don't call decl_type_access_control. 6434169689Skan * parser.c (cp_parser_context): Remove deferred_access_checks 6435169689Skan and deferring_access_checks_p fields. 6436169689Skan (cp_parser_context_new): Adjust. 6437169689Skan (cp_parser): Remove access_checks_lists. 6438169689Skan (cp_parser_defer_access_check): Remove. 6439169689Skan (cp_parser_start_deferring_access_checks): Remove. 6440169689Skan (cp_parser_stop_deferring_access_checks): Remove. 6441169689Skan (cp_parser_perform_deferred_access_checks): Remove. 6442169689Skan (cp_parser_nested_name_specifier_opt): Use new deferred access 6443169689Skan functions. 6444169689Skan (cp_parser_simple_declaration): Likewise. 6445169689Skan (cp_parser_template_id): Likewise. 6446169689Skan (cp_parser_function_definition): Likewise. 6447169689Skan (cp_parser_class_specifier): Likewise. 6448169689Skan (cp_parser_lookup_name): Likewise. 6449169689Skan (cp_parser_single_declaration): Likewise. 6450169689Skan (cp_parser_pre_parsed_nested_name_specifier): Likewise. 6451169689Skan (cp_parser_parse_tentatively): Likewise. 6452169689Skan (cp_parser_parse_definitely): Likewise. 6453169689Skan (yyparse): Likewise. 6454169689Skan (cp_parser_init_declarator): Remove access_checks parameter. 6455169689Skan Use new deferred access functions. 6456169689Skan (cp_parser_function_definition_from_specifiers_and_declarator): 6457169689Skan Likewise. 6458169689Skan (cp_parser_class_head): Remove deferring_access_checks_p and 6459169689Skan saved_access_checks parameters. Use new deferred access functions. 6460169689Skan (cp_parser_member_specification_opt): Don't call 6461169689Skan reset_type_access_control. 6462169689Skan * search.c (type_access_control): Remove. 6463169689Skan * semantics.c: Include "gt-cp-semantics.h". 6464169689Skan (deferred_type_access_control): Remove. 6465169689Skan (deferred_access_stack): New variable. 6466169689Skan (deferred_access_free_list): Likewise. 6467169689Skan (push_deferring_access_checks): New function. 6468169689Skan (resume_deferring_access_checks): Likewise. 6469169689Skan (stop_deferring_access_checks): Likewise. 6470169689Skan (pop_deferring_access_checks): Likewise. 6471169689Skan (get_deferred_access_checks): Likewise. 6472169689Skan (pop_to_parent_deferring_access_checks): Likewise. 6473169689Skan (perform_deferred_access_checks): New function, adapted from 6474169689Skan cp_parser_perform_deferred_access_checks. 6475169689Skan (perform_or_defer_access_check): New function, adapted from 6476169689Skan cp_parser_defer_access_check. 6477169689Skan (current_type_lookups): Remove. 6478169689Skan (deferred_type_access_control): Likewise. 6479169689Skan (decl_type_access_control): Likewise. 6480169689Skan (save_type_access_control): Likewise. 6481169689Skan (reset_type_access_control): Likewise. 6482169689Skan (begin_function_definition): Adjust. 6483169689Skan (begin_class_definiton): Likewise. 6484169689Skan 6485169689Skan2003-01-13 Jason Merrill <jason@redhat.com> 6486169689Skan 6487169689Skan PR c++/8748 6488169689Skan * class.c (build_base_path): Take the address before calling save_expr. 6489169689Skan 6490169689Skan * call.c (build_user_type_conversion_1): Do set ICS_BAD_FLAG if 6491169689Skan all the ambiguous conversions are bad. 6492169689Skan 6493169689Skan * class.c (maybe_warn_about_overly_private_class): Don't stop 6494169689Skan searching when we find a nonprivate method. 6495169689Skan 6496169689Skan * typeck.c (build_class_member_access_expr): Use unary_complex_lvalue. 6497169689Skan 6498169689Skan2003-01-12 Mark Mitchell <mark@codesourcery.com> 6499169689Skan 6500169689Skan * cp-tree.h (get_arglist_len_in_bytes): Remove. 6501169689Skan 6502169689Skan PR c++/9264 6503169689Skan * parser.c (cp_parser_elaborated_type_specifier): Handle erroneous 6504169689Skan typeame types more robustly. 6505169689Skan 6506169689Skan2003-01-11 Phil Edwards <pme@gcc.gnu.org> 6507169689Skan 6508169689Skan * parser.c: Fix comment typos. 6509169689Skan 6510169689Skan2003-01-10 Mark Mitchell <mark@codesourcery.com> 6511169689Skan 6512169689Skan PR c++/9099 6513169689Skan * parser.c (cp_parser_scope_through_which_access_occurs): Handle 6514169689Skan an object_type which is not a class type. 6515169689Skan 6516169689Skan2003-01-10 Geoffrey Keating <geoffk@apple.com> 6517169689Skan 6518169689Skan * parser.c (cp_parser_late_parsing_for_member): Don't cast to void. 6519169689Skan (cp_parser_late_parsing_default_args): Likewise. 6520169689Skan 6521169689Skan2003-01-10 Nathanael Nerode <neroden@gcc.gnu.org> 6522169689Skan 6523169689Skan * cfns.gperf: ANSIfy function declarations. 6524169689Skan * cfns.h: Regenerate. 6525169689Skan * cp-tree.h: ANSIfy function declarations. 6526169689Skan 6527169689Skan2003-01-10 Mark Mitchell <mark@codesourcery.com> 6528169689Skan 6529169689Skan * cp-tree.h (reparse_absdcl_as_expr): Remove. 6530169689Skan (reparse_absdcl_as_casts): Likewise. 6531169689Skan (reparse_decl_as_expr): Likewise. 6532169689Skan (finish_decl_parsing): Likewise. 6533169689Skan * decl2.c (reparse_absdcl_as_expr): Remove. 6534169689Skan (reparse_absdcl_as_casts): Likewise. 6535169689Skan (repase_decl_as_expr): Likewise. 6536169689Skan (finish_decl_parsing): Likewise. 6537169689Skan 6538169689Skan PR c++/9128 6539169689Skan PR c++/9153 6540169689Skan PR c++/9171 6541169689Skan * parser.c (cp_parser_pre_parsed_nested_name_specifier): New 6542169689Skan function. 6543169689Skan (cp_parser_nested_name_specifier_opt): Correct the 6544169689Skan check_dependency_p false. 6545169689Skan (cp_parser_postfix_expression): Fix formatting. 6546169689Skan (cp_parser_decl_specifier_seq): Avoid looking for constructor 6547169689Skan declarators when possible. 6548169689Skan (cp_parser_template_id): Avoid performing name-lookup when 6549169689Skan possible. 6550169689Skan (cp_parser_class_head): Do not count specializations when counting 6551169689Skan levels of templates. 6552169689Skan (cp_parser_constructor_declarator_p): Return immediately if 6553169689Skan there's no chance that the tokens form a constructor declarator. 6554169689Skan * rtti.c (throw_bad_typeid): Add comment. Do not return an 6555169689Skan expression with reference type. 6556169689Skan (get_tinfo_decl_dynamic): Do not return an expression with 6557169689Skan reference type. 6558169689Skan (build_typeid): Add comment. Do not return an expression with 6559169689Skan reference type. 6560169689Skan * typeck.c (build_class_member_access_expr): Improve handling of 6561169689Skan conditionals and comma-expressions as objects. 6562169689Skan 6563169689Skan2003-01-09 Nathanael Nerode <neroden@gcc.gnu.org> 6564169689Skan 6565169689Skan * cfns.gperf: ANSIfy function declarations. 6566169689Skan * cfns.h: Regenerate. 6567169689Skan * cp-tree.h: ANSIfy function declarations. 6568169689Skan * parser.c: ANSIfy function declarations & definitions. 6569169689Skan 6570169689Skan * decl.c (bad_specifiers): Fix parameter order error I introduced. 6571169689Skan 6572169689Skan2003-01-09 Geoffrey Keating <geoffk@apple.com> 6573169689Skan 6574169689Skan Merge from pch-branch: 6575169689Skan 6576169689Skan 2003-01-09 Geoffrey Keating <geoffk@apple.com> 6577169689Skan 6578169689Skan Merge to tag pch-merge-20030102: 6579169689Skan 6580169689Skan * semantics.c (finish_translation_unit): Don't call finish_file. 6581169689Skan * parser.c: Don't include ggc.h. 6582169689Skan (cp_lexer_new_main): Rename from cp_lexer_new, only create main lexer, 6583169689Skan read first token here. Don't allow PCH files after the first 6584169689Skan token is read. 6585169689Skan (cp_lexer_new_from_tokens): Duplicate functionality from cp_lexer_new. 6586169689Skan (cp_lexer_get_preprocessor_token): Allow LEXER to be NULL. 6587169689Skan (cp_parser_new): Call cp_lexer_new_main before allocating GCed memory. 6588169689Skan (cp_parser_late_parsing_for_member): Don't duplicate call to 6589169689Skan cp_lexer_set_source_position_from_token. 6590169689Skan (cp_parser_late_parsing_default_args): Likewise. 6591169689Skan (yyparse): Call finish_file after clearing the_parser. 6592169689Skan 6593169689Skan 2002-12-11 Geoffrey Keating <geoffk@apple.com> 6594169689Skan 6595169689Skan * Make-lang.in: Remove $(GGC_H) from all dependencies. 6596169689Skan (CXX_TREE_H): Add $(GGC_H). 6597169689Skan * class.c: Don't include ggc.h. 6598169689Skan (field_decl_cmp): Make parameters be 'const void *' to match qsort. 6599169689Skan (method_name_cmp): Likewise. 6600169689Skan (resort_data): New variable. 6601169689Skan (resort_field_decl_cmp): New. 6602169689Skan (resort_method_name_cmp): New. 6603169689Skan (resort_sorted_fields): New. 6604169689Skan (resort_type_method_vec): New. 6605169689Skan (finish_struct_methods): Delete cast. 6606169689Skan (finish_struct_1): Delete cast. 6607169689Skan * cp-tree.h: Include ggc.h. 6608169689Skan (struct lang_type_class): Add reorder attribute to field `methods'. 6609169689Skan (union lang_decl_u3): Add reorder attribute to field `sorted_fields'. 6610169689Skan (resort_sorted_fields): New prototype. 6611169689Skan (resort_type_method_vec): New prototype. 6612169689Skan * call.c: Don't include ggc.h. 6613169689Skan * decl.c: Likewise. 6614169689Skan * decl2.c: Likewise. 6615169689Skan * init.c: Likewise. 6616169689Skan * lex.c: Likewise. 6617169689Skan * method.c: Likewise. 6618169689Skan * optimize.c: Likewise. 6619169689Skan * parse.y: Likewise. 6620169689Skan * pt.c: Likewise. 6621169689Skan * repo.c: Likewise. 6622169689Skan * search.c: Likewise. 6623169689Skan * semantics.c: Likewise. 6624169689Skan * spew.c: Likewise. 6625169689Skan * tree.c: Likewise. 6626169689Skan 6627169689Skan * lang-specs.h: Remove comment. 6628169689Skan 6629169689Skan 2002-12-03 Geoffrey Keating <geoffk@apple.com> 6630169689Skan 6631169689Skan * cp-tree.h (struct operator_name_info_t): Mark for GTY machinery. 6632169689Skan (operator_name_info): Mark to be saved for PCH, specify size. 6633169689Skan (assignment_operator_name_info): Likewise. 6634169689Skan 6635169689Skan 2002-11-19 Geoffrey Keating <geoffk@apple.com> 6636169689Skan 6637169689Skan * decl.c (anon_cnt): Mark to be saved for PCH. 6638169689Skan 6639169689Skan 2002-10-25 Geoffrey Keating <geoffk@apple.com> 6640169689Skan 6641169689Skan * lex.c (init_reswords): Delete now-untrue comment. 6642169689Skan Allocate ridpointers using GGC. 6643169689Skan 6644169689Skan 2002-10-04 Geoffrey Keating <geoffk@apple.com> 6645169689Skan 6646169689Skan * cp-tree.h (union lang_decl_u2): Add tags to all fields. 6647169689Skan 6648169689Skan * g++spec.c (lang_specific_driver): Don't include standard 6649169689Skan libraries in `added'. 6650169689Skan 6651169689Skan 2002-08-27 Geoffrey Keating <geoffk@redhat.com> 6652169689Skan 6653169689Skan * decl2.c (finish_file): Call c_common_write_pch. 6654169689Skan * Make-lang.in (CXX_C_OBJS): Add c-pch.o. 6655169689Skan 6656169689Skan 2002-08-17 Geoffrey Keating <geoffk@redhat.com> 6657169689Skan 6658169689Skan * g++spec.c (lang_specific_driver): Treat .h files as C++ header 6659169689Skan files when using g++. 6660169689Skan * lang-specs.h: Handle compiling C++ header files. 6661169689Skan 6662169689Skan2003-01-09 Jakub Jelinek <jakub@redhat.com> 6663169689Skan 6664169689Skan * decl.c (start_decl): Only check DECL_THREAD_LOCAL for VAR_DECLs. 6665169689Skan 6666169689Skan2003-01-09 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 6667169689Skan 6668169689Skan * pt.c (push_access_scope_real): Call push_to_top_level for 6669169689Skan function in namespace scope. 6670169689Skan (pop_access_scope): Call pop_from_top_level for function in 6671169689Skan namespace scope. 6672169689Skan 6673169689Skan2003-01-09 Jakub Jelinek <jakub@redhat.com> 6674169689Skan 6675169689Skan * decl.c (start_decl): Don't set DECL_COMMON for __thread variables. 6676169689Skan 6677169689Skan2003-01-09 Christian Cornelssen <ccorn@cs.tu-berlin.de> 6678169689Skan 6679169689Skan * Make-lang.in (c++.install-common, c++.install-man, 6680169689Skan c++.uninstall): Prepend $(DESTDIR) to destination paths in 6681169689Skan all (un)installation commands. 6682169689Skan (c++.install-common): Rewrite $(LN) commands to support 6683169689Skan DESTDIR with "ln" as well as with "ln -s". 6684169689Skan 6685169689Skan2003-01-08 Jason Merrill <jason@redhat.com> 6686169689Skan 6687169689Skan * parser.c (cp_parser_primary_expression): See through explicitly 6688169689Skan scoped ALIAS_DECLs, too. 6689169689Skan 6690169689Skan2003-01-08 Nathanael Nerode <neroden@gcc.gnu.org> 6691169689Skan 6692169689Skan * decl.c: Remove some #if 0 code. 6693169689Skan 6694169689Skan * decl.c: ANSIfy function declarations. 6695169689Skan 6696169689Skan2003-01-07 Mark Mitchell <mark@codesourcery.com> 6697169689Skan 6698169689Skan * parser.c (cp_parser_asm_definition): Correct handling of omitted 6699169689Skan operands. 6700169689Skan 6701169689Skan2003-01-08 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 6702169689Skan 6703169689Skan PR c++/9030 6704169689Skan * decl.c (make_typename_type): Check access only when tf_error. 6705169689Skan (make_unbound_class_template): Likewise. 6706169689Skan * pt.c (saved_access_scope): New variable. 6707169689Skan (push_access_scope_real): New function. 6708169689Skan (push_access_scope): Likewise. 6709169689Skan (pop_access_scope): Likewise. 6710169689Skan (tsubst_default_argument): Use them. 6711169689Skan (instantiate_template): Likewise. 6712169689Skan (regenerate_decl_from_template): Likewise. 6713169689Skan (instantiate_decl): Likewise. 6714169689Skan (get_mostly_instantiated_function_type): Likewise. 6715169689Skan 6716169689Skan2003-01-07 Nathanael Nerode <neroden@gcc.gnu.org> 6717169689Skan 6718169689Skan * tree.c: Delete bogus #if 0 code. 6719169689Skan 6720169689Skan2003-01-07 Andreas Schwab <schwab@suse.de> 6721169689Skan 6722169689Skan * class.c (layout_class_type): Don't use 6723169689Skan PCC_BITFIELD_TYPE_MATTERS if not defined. 6724169689Skan 6725169689Skan2003-01-06 Mark Mitchell <mark@codesourcery.com> 6726169689Skan 6727169689Skan PR c++/9165 6728169689Skan * decl2.c (build_cleanup): Mark the object as used. 6729169689Skan 6730169689Skan * pt.c (retrieve_local_specialization): Revert 2003-01-05 change. 6731169689Skan (hash_local_specialization): New function. 6732169689Skan (register_local_specialization): Revert 2003-01-05 change. 6733169689Skan (instantiate_decl): Use hash_local_specialization when creating 6734169689Skan the local_specializations table. 6735169689Skan 6736169689Skan * decl2.c (mark_used): Do not synthesize thunks. 6737169689Skan 6738169689Skan * class.c (layout_class_type): Correct handling of unnamed 6739169689Skan bitfields wider than their types. 6740169689Skan 6741169689Skan PR c++/9189 6742169689Skan * parser.c (cp_parser): Remove default_arg_types. Update 6743169689Skan documentation for unparsed_functions_queues. 6744169689Skan (cp_parser_late_parsing_default_args): Take a FUNCTION_DECL as the 6745169689Skan parameter. 6746169689Skan (cp_parser_new): Don't set parser->default_arg_types. 6747169689Skan (cp_parser_function_definition): Adjust usage of 6748169689Skan unparsed_funtions_queues. 6749169689Skan (cp_parser_class_specifier): Don't mess with 6750169689Skan parser->default_arg_types. Handle default argument processing in 6751169689Skan a separate phase from function body processing. 6752169689Skan (cp_parser_template_declaration_after_export): Adjust usage of 6753169689Skan unparsed_functions_queues. 6754169689Skan (cp_parser_late_parsing_for_member): Do not handle default 6755169689Skan arguments. 6756169689Skan 6757169689Skan2003-01-06 Nathan Sidwell <nathan@codesourcery.com> 6758169689Skan 6759169689Skan PR c++/9109 6760169689Skan * parser.c (cp_parser_declarator_kind): New enum. 6761169689Skan (cp_parser_declarator): Adjust. 6762169689Skan (cp_parser_direct_declarator): Adjust. Allow for either named or 6763169689Skan abstract declarator. Prefer abstract, if possible. Allow 6764169689Skan parenthesized function name. 6765169689Skan (cp_parser_condition): Adjust cp_parser_declarator call. 6766169689Skan (cp_parser_explicit_instantiation): Likewise. 6767169689Skan (cp_parser_init_declarator): Likewise. 6768169689Skan (cp_parser_type_id): Likewise. 6769169689Skan (cp_parser_function_definition): Likewise. 6770169689Skan (cp_parser_member_declaration): Likewise. 6771169689Skan (cp_parser_parameter_declaration): Use cp_parser_declarator to do 6772169689Skan the tentative parsing. 6773169689Skan (cp_parser_exception_declaration): Likewise. 6774169689Skan 6775169689Skan2003-01-05 Mark Mitchell <mark@codesourcery.com> 6776169689Skan 6777169689Skan * parser.c (cp_parser_template_parameter): Adjust call to 6778169689Skan cp_parser_parameter_declaration. 6779169689Skan (cp_parser_parameter_declaration_list): Likewise. 6780169689Skan (cp_parser_parameter_declaration): Replace 6781169689Skan greater_than_is_operator_p with template_parm_p parameter. Do not 6782169689Skan cache tokens for template default arguments. 6783169689Skan 6784169689Skan * pt.c (retrieve_local_specialization): Use htab_find, not 6785169689Skan htab_find_with_hash. 6786169689Skan (register_local_specialization): Use htab_find_slot, not 6787169689Skan htab_find_slot_with_hash. 6788169689Skan (instantiate_decl): Pass a hash function to htab_create. 6789169689Skan 6790169689Skan2003-01-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 6791169689Skan 6792169689Skan * parser.c (cp_parser_binary_expression, 6793169689Skan cp_parser_multiplicative_expression, 6794169689Skan cp_parser_additive_expression, cp_parser_shift_expression, 6795169689Skan cp_parser_relational_expression, cp_parser_equality_expression, 6796169689Skan cp_parser_and_expression, cp_parser_exclusive_or_expression, 6797169689Skan cp_parser_inclusive_or_expression, 6798169689Skan cp_parser_logical_and_expression, cp_parser_logical_or_expression, 6799169689Skan cp_parser_binary_expression): Const-ify. 6800169689Skan 6801169689Skan2003-01-04 Mark Mitchell <mark@codesourcery.com> 6802169689Skan 6803169689Skan * method.c (use_thunk): Disable access control while building the 6804169689Skan body of the thunk. 6805169689Skan 6806169689Skan2003-01-03 Nathanael Nerode <neroden@gcc.gnu.org> 6807169689Skan 6808169689Skan * cvt.c, decl.c, decl2.c: This is the C++ front end, not the C 6809169689Skan front end. 6810169689Skan 6811169689Skan2003-01-03 Matt Austern <austern@apple.com> 6812169689Skan 6813169689Skan * cp-tree.h (struct lang_type_class): add field for key method 6814169689Skan (cp_global_trees): rename dynamic_classes to keyed_classes 6815169689Skan (key_method): add definition 6816169689Skan * class.c (finish_struct_1): compute class's key method, and add 6817169689Skan the class to keyed_classes list if there is no key method. 6818169689Skan * decl.c (finish_function): add class to keyed_classes list if we 6819169689Skan see a definition of the class's key method. 6820169689Skan * pt.c (instantiate_class_template): add template specialization 6821169689Skan of a dynamic class to keyed_classes list. 6822169689Skan * decl2.c (key_method): remove 6823169689Skan (finish_file): iterate only through keyed_classes list when 6824169689Skan deciding whether to emit vtables, remove class from its list after 6825169689Skan we do the emission. 6826169689Skan 6827169689Skan2003-01-02 Jason Merrill <jason@redhat.com> 6828169689Skan 6829169689Skan * call.c (build_conditional_expr): Stabilize lvalues properly. 6830169689Skan * cvt.c (ocp_convert): Don't build NOP_EXPRs of class type. 6831169689Skan * tree.c (lvalue_p_1): Don't allow sloppy NOP_EXPRs as lvalues. 6832169689Skan Don't allow CALL_EXPR or VA_ARG_EXPR, either. 6833169689Skan 6834169689Skan * call.c (convert_like_real): Call decl_constant_value for an 6835169689Skan IDENTITY_CONV even if there are no more conversions. 6836169689Skan 6837169689Skan * cvt.c (build_up_reference): Don't push unnamed temps. 6838169689Skan 6839169689Skan * decl2.c (do_namespace_alias): Namespace aliases are DECL_EXTERNAL. 6840169689Skan 6841169689Skan * dump.c (cp_dump_tree): Don't try to dump class-specific fields 6842169689Skan for a backend struct. 6843169689Skan 6844169689Skan * except.c (wrap_cleanups_r, build_throw): Make 6845169689Skan MUST_NOT_THROW_EXPRs void. 6846169689Skan * init.c (expand_default_init): Update to handle MUST_NOT_THROW_EXPR. 6847169689Skan 6848169689Skan * init.c (build_vec_delete_1): Pre-evaluate the base address. 6849169689Skan 6850169689Skan * init.c (get_temp_regvar): Simplify logic. 6851169689Skan 6852169689Skan * tree.c (cp_copy_res_decl_for_inlining): Only do debug tweaks if 6853169689Skan our replacement is a decl. 6854169689Skan 6855169689Skan * decl.c (cp_make_fname_decl): Push the decls inside the 6856169689Skan outermost scope. 6857169689Skan 6858169689Skan2003-01-03 Nathan Sidwell <nathan@codesourcery.com> 6859169689Skan 6860169689Skan PR c++/45, c++/3784 6861169689Skan * tree.c (cp_tree_equal, TEMPLATE_PARM_INDEX): The types must be 6862169689Skan the same too. 6863169689Skan 6864169689Skan2003-01-03 Graham Stott <graham.stott@btinternet.com> 6865169689Skan 6866169689Skan * parser.c (struct cp_parser): Add access_checks_lists field 6867169689Skan (cp_parser_simple_declaration): Use. 6868169689Skan (cp_parser_init_declarator): Likewise. 6869169689Skan 6870169689Skan2003-01-02 Mark Mitchell <mark@codesourcery.com> 6871169689Skan 6872169689Skan * parser.c (cp_parser_declaration): Accept the __extension__ 6873169689Skan keyword before the declaration. 6874169689Skan 6875169689Skan PR c++/2843 6876169689Skan * parser.c (cp_parser_parameter_declaration): Allow attributes to 6877169689Skan appear after the declarator. 6878169689Skan 6879169689Skan * call.c (build_new_method_call): Fix typo in message format 6880169689Skan string. 6881169689Skan 6882169689Skan2003-01-02 Mark Mitchell <mark@codesourcery.com> 6883169689Skan 6884169689Skan * parser.c (cp_lexer_next_token_is): Declare it inline. 6885169689Skan (cp_lexer_set_source_position_from_token): Likewise. 6886169689Skan (cp_lexer_debugging_p): Likewise. 6887169689Skan (cp_parser_parsing_tentatively): Likewise. 6888169689Skan (cp_parser_nested_name_specifier_opt): Reduce the number of calls 6889169689Skan to the cp_lexer_peek_token. 6890169689Skan 6891169689Skan * parser.c (cp_parser_sizeof_operand): Do not evaluate the 6892169689Skan expression. 6893169689Skan 6894169689Skan2003-01-02 Steven Bosscher <s.bosscher@student.tudelft.nl> 6895169689Skan 6896169689Skan * cp/except.c, cp/expr.c, cp/friend.c, cp/g++spec.c, 6897169689Skan cp/lang-options.h, cp/lang-specs.h, cp/lex.h, cp/ptree.c, 6898169689Skan cp/repo.c: Fix copyright years. 6899169689Skan 6900169689Skan2003-01-01 Neil Booth <neil@daikokuya.co.uk> 6901169689Skan 6902169689Skan * lex.c: Remove superfluous include of cpplib.h. 6903169689Skan (CONSTRAINT): Define without conditions. 6904169689Skan (init_cp_pragma): Use c_register_pragma. 6905169689Skan 6906