URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [cp/] [ChangeLog-2006] - Rev 778
Go to most recent revision | Compare with Previous | Blame | View Log
2006-12-31 Simon Martin <simartin@users.sourceforge.net>PR c++/29731* parser.c (cp_parser_primary_expression): Return error_mark_node whena statement-expression is found outside of a function body.2006-12-28 Kazu Hirata <kazu@codesourcery.com>* cp-tree.h (TYPE_NAMESPACE_SCOPE_P, TYPE_FUNCTION_SCOPE_P):Remove.* decl2.c: Fix a comment typo.2006-12-21 Andrew Pinski <pinskia@gmail.com>PR C++/30225* decl.c (cxx_builtin_function): Only copy the decl if addingit to the std namespace.2006-12-21 Andrew Pinski <pinskia@gmail.com>PR C++/30168* optimize.c (update_cloned_parm): Copy DECL_GIMPLE_REG_P also.2006-12-22 Kazu Hirata <kazu@codesourcery.com>* decl.c: Fix a coment typo.2006-12-18 Ian Lance Taylor <iant@google.com>* decl.c (start_preparsed_function): Add support for-Wmissing-declarations.2006-12-16 Simon Martin <simartin@users.sourceforge.net>PR c++/29475* cp-tree.h (struct deferred_access_check): New structure to represent adeferred access check. It replaces the previous representation as a tree.(get_deferred_access_checks): Return a vector of structdeferred_access_check instead of a tree list.(perform_access_checks): Take a vector of struct deferred_access_checkinstead of a tree list.* semantics.c (struct deferred_access): Store the deferred access checksas a vector of struct deferred_access_check instead of a tree list.(push_deferring_access_checks): Handle the change in structdeferred_access.(get_deferred_access_checks): Likewise.(pop_to_parent_deferring_access_checks): Likewise.(perform_or_defer_access_check): Likewise.(perform_access_checks): Take a vector of struct deferred_access_checkinstead of a tree list.* parser.c (struct tree_check): New structure to store various dataassociated with a CPP_NESTED_NAME_SPECIFIER or CPP_TEMPLATE_ID token.(struct cp_token): Changed the value field to be a union with a pointer toa struct tree_check for CPP_NESTED_NAME_SPECIFIER or CPP_TEMPLATE_IDtokens and a tree field for all other tokens.(eof_token): Adjusted due to the change in struct cp_token.(cp_lexer_get_preprocessor_token): Likewise.(cp_lexer_purge_token): Likewise.(cp_lexer_purge_tokens_after): Likewise.(cp_lexer_print_token): Likewise.(cp_parser_error): Likewise.(cp_parser_identifier): Likewise.(cp_parser_string_literal): Likewise.(cp_parser_primary_expression): Likewise.(cp_parser_unqualified_id): Likewise.(cp_parser_parenthesized_expression_list): Likewise.(cp_parser_storage_class_specifier_opt): Likewise.(cp_parser_function_specifier_opt): Likewise.(cp_parser_type_specifier): Likewise.(cp_parser_simple_type_specifier): Likewise.(cp_parser_initializer_list): Likewise.(cp_parser_member_specification_opt): Likewise.(cp_parser_attribute_list): Likewise.(cp_parser_objc_expression): Likewise.(cp_parser_objc_protocol_qualifiers): Likewise.(cp_parser_objc_selector): Likewise.(cp_parser_objc_declaration): Likewise.(cp_parser_objc_statement): Likewise.(cp_parser_omp_clause_name): Likewise.(cp_parser_omp_clause_default): Likewise.(cp_parser_omp_clause_schedule): Likewise.(cp_parser_omp_parallel): Likewise.(cp_parser_initial_pragma): Likewise.(pragma_lex): Likewise.(cp_parser_pre_parsed_nested_name_specifier): Likewise.(cp_parser_nested_name_specifier_opt): Likewise.Use cp_token::u::tree_check_value to save the token's value, theassociated deferred checks and its qualifying scope.(cp_parser_template_id): Likewise.(cp_parser_template_declaration_after_export): Adjusted the call toget_deferred_access_checks.(cp_parser_init_declarator): Take the access checks as a vector of structdeferred_access_check instead of a tree list.(cp_parser_single_declaration): Likewise.(cp_parser_perform_template_parameter_access_checks): Likewise.(cp_parser_simple_declaration): Adjusted the call tocp_parser_init_declarator.(cp_parser_explicit_specialization): Adjusted the call tocp_parser_single_declaration.2006-12-13 Ian Lance Taylor <iant@google.com>PR c++/19564PR c++/19756* parser.c (cp_parser_expression_stack_entry): Add fieldlhs_type.(cp_parser_binary_expression): Track tree code of left hand sideof expression. Use it when calling build_x_binary_op.(cp_parser_selection_statement): Add if_p parameter. Change allcallers. Warn about ambiguous else.(cp_parser_statement): Add if_p parameter. Change all callers.(cp_parser_implicitly_scoped_statement): Likewise.* typeck.c (build_x_binary_op): Add parameters arg1_code andarg2_code. Change all callers. Call warn_about_parentheses.* cp-tree.h (build_x_binary_op): Update declaration.2006-12-12 Manuel Lopez-Ibanez <manu@gcc.gnu.org>* decl.c (build_enumerator): Update error message to match Cfront-end.2006-12-11 Jan Hubicka <jh@suse.cz>* decl2.c (var_finalized_p): Update for renamed varpool functions.2006-12-09 Zack Weinberg <zackw@panix.com>* parser.c (yydebug, enum pragma_omp_clause): Delete.2006-12-07 Mark Mitchell <mark@codesourcery.com>PR c++/29732* cp-tree.h (DECL_USE_TEMPLATE): Mention partial specializations.(explicit_class_specialization_p): Declare.* pt.c (explicit_class_specialization_p): New function.* parser.c (cp_parser_init_declarator): Check correct number oftemplate parameters for in-class function definitions.(cp_parser_check_declrator_template_parameters): Stop looking fortemplate classes when we find an explicit specialization.2006-12-07 Lee Millward <lee.millward@codesourcery.com>PR c++/29980* cp_parser_elaborated_type_specifier: Checkthe return value of check_elaborated_type_specifier.2006-12-06 Mark Mitchell <mark@codesourcery.com>PR c++/29730* parser.c (cp_parser_init_declarator): Reject initialization offunctions.2006-12-05 Mark Mitchell <mark@codesourcery.com>PR c++/29729* decl2.c (check_member_template): Move check for membertemplates in local classes to ...* parser.c (cp_parser_template_declaration_after_export):... here.PR c++/29728* decl.c (check_array_designated_initializer): New function.(maybe_deduce_size_from_array_init): Use it.(reshape_init_array): Likewise.2006-12-05 Aldy Hernandez <aldyh@redhat.com>Merge from gimple-tuples-branch.2006-10-05 Aldy Hernandez <aldyh@redhat.com>* cp-gimplify.c (cp_gimplify_expr): Adjust for GIMPLE_MODIFY_STMT.(cxx_omp_clause_apply_fn): Adjust for GIMPLE_MODIFY_STMT.(cxx_omp_clause_copy_ctor): Same.(cxx_omp_clause_assign_op): Same.2006-09-28 Aldy Hernandez <aldyh@redhat.com>* cp-tree.h (union lang_tree_node): Gimple statements do nothave a TREE_CHAIN.(TREE_INDIRECT_USING): Look in base.2006-12-04 Jan Hubicka <jh@suse.cz>* cp-objcp-common.c (cp_expr_size): Return NULL in the casesize is undefined.2006-12-04 Mark Mitchell <mark@codesourcery.com>PR c++/29733* pt.c (tsubst_decl): Disallow variables of function type.PR c++/29632* call.c (add_builtin_candidate): Do not permit NULL pointerconstants to be compared with template parameters.2006-12-04 Eric Botcazou <ebotcazou@adacore.com>* pt.c (for_each_template_parm_r) <INTEGER_TYPE>: New case.Call for_each_template_parm on TYPE_MIN_VALUE and TYPE_MAX_VALUE.2006-12-03 Richard Henderson <rth@redhat.com>Andrew Pinski <pinskia@gmail.com>PR C++/14329* error.c (cp_printer) <'D'>: Handle DECL_DEBUG_EXPR.2006-12-02 Andrew Pinski <andrew_pinski@playstation.sony.com>PR C++/30033* decl.c (cp_tree_node_structure): Handle STATIC_ASSERT.2006-12-02 Kazu Hirata <kazu@codesourcery.com>* name-lookup.c: Follow spelling conventions.2006-12-01 Geoffrey Keating <geoffk@apple.com>* decl.c (poplevel): Check DECL_INITIAL invariant.(duplicate_decls): Preserve DECL_INITIAL when eliminatinga new definition in favour of an old declaration.(start_preparsed_function): Define and document value ofDECL_INITIAL before and after routine.(finish_function): Check DECL_INITIAL invariant.* parser.c(cp_parser_function_definition_from_specifiers_and_declarator):Skip duplicate function definitions.2006-12-01 Volker Reichelt <reichelt@igpm.rwth-aachen.de>PR c++/30022* typeck.c (type_after_usual_arithmetic_conversions):Fix assertion for vector types.(build_binary_op): Use temporary for inner type of vector types.2006-12-01 Ryan Mansfield <rmansfield@qnx.com>PR c++/29066* typeck.c (build_binary_op): Fix pointer to member functioncomparison for ptrmemfunc_vbit_in_delta targets.2006-12-01 Dirk Mueller <dmueller@suse.de>PR c++/18313* decl.c (grokdeclarator): Warn for type qualifiers on returntype for non-dependent types.* pt.c (tsubst_function_type): Warn for type qualifiers onreturn type for dependent types.2006-11-30 Geoffrey Keating <geoffk@apple.com>* rtti.c (get_tinfo_decl): Handle return value frompushdecl_top_level_and_finish.2006-11-29 Lee Millward <lee.millward@codesourcery.com>PR c++/29022* parser.c (cp_parser_class_head): Move processingof any base classes to...(cp_parser_class_specifier) ...here. Take an extratree* parameter for any base classes. Only processthem if the opening brace was found.2006-11-28 Jakub Jelinek <jakub@redhat.com>PR c++/29735* decl.c (grokfndecl): Check main's type after applyingattributes, not before.2006-11-27 Mark Mitchell <mark@codesourcery.com>* class.c (build_vcall_offset_vtbl_entries): Do not add vcallentries for a primary construction virtual table.2006-11-26 Mark Mitchell <mark@codesourcery.com>PR c++/29886* parser.c (cp_parser): Add in_function_body.(cp_parser_new): Initialize it.(cp_parser_primary_expression): Use parser->in_function_bodyinstead of at_function_scope_p.(cp_parser_asm_definition): Likewise.(cp_parser_direct_declarator): Likewise.(cp_parser_class_specifier): Clear parser->in_function_body.(cp_parser_constructor_declarator_p): Use parser->in_function_bodyinstead of at_function_scope_p.(cp_parser_function_body_after_declarator): Setparser->in_function_body.2006-11-21 Douglas Gregor <doug.gregor@gmail.com>* cp-tree.def (STATIC_ASSERT): New.* cp-objcp-common.c (cp_tree_size): Handle STATIC_ASSERT.* error.c (dump_decl): Handle STATIC_ASSERT.* cp-tree.h (STATIC_ASSERT_CONDITION): New.(STATIC_ASSERT_MESSAGE): New.(STATIC_ASSERT_SOURCE_LOCATION): New.(struct tree_static_assert): New.(enum cp_tree_node_structure_enum): Add TS_CP_STATIC_ASSERT.(union lang_tree_node): Add static_assertion.(finish_static_assert): Declare.* cxx-pretty-print.c (pp_cxx_statement): Handle STATIC_ASSERT.(pp_cxx_declaration): Handle STATIC_ASSERT.* pt.c (instantiate_class_template): HandleSTATIC_ASSERT members.(tsubst_expr): Handle STATIC_ASSERT statements.* semantics.c (finish_static_assert): New.* lex.c (D_CPP0X): New.(reswords): Add static_assert keyword.(init_reswords): If not flag_cpp0x, mask out C++0x keywords.* parser.c (cp_parser_block_declaration): Parse staticassertions.(cp_parser_static_assert): New.(cp_parser_member_declaration): Parse static assertions.2006-11-21 Jakub Jelinek <jakub@redhat.com>PR c++/29570* decl.c (cp_finish_decl): Check for value dependent brace enclosedscalar initializer.PR c++/29734* cp-tree.h (WANT_VECTOR): Define.(WANT_ARITH): Add WANT_VECTOR.* cvt.c (build_expr_type_conversion): Handle vector types.* typeck.c (build_unary_op): Add WANT_VECTOR tobuild_expr_type_conversion flags.2006-11-20 Simon Martin <simartin@users.sourceforge.net>PR c++/29475* cp-tree.h (enforce_access, perform_or_defer_access_check): Added anextra argument that represents the declaration to use to printpotential error messages.* init.c (build_offset_ref): Adjusted the call toperform_or_defer_access_check.* class.c (alter_access, resolve_address_of_overloaded_function):Likewise.* decl.c (make_typename_type, make_unbound_class_template): Likewise.* search.c (lookup_member): Likewise.* friend.c (add_friend): Likewise.* parser.c (cp_parser_template_id,cp_parser_pre_parsed_nested_name_specifier): Likewise.* semantics.c (finish_non_static_data_member,check_accessibility_of_qualified_id, finish_id_expression): Likewise.(pop_to_parent_deferring_access_checks, perform_access_checks,perform_or_defer_access_check): Adjusted the call to enforce_access.* call.c (enforce_access): Use the new extra argument to build theerror message.(build_op_delete_call): Adjusted the call toperform_or_defer_access_check.(build_over_call): Likewise.2006-11-16 Dirk Mueller <dmueller@suse.de>* name-lookup.c (begin_scope): Use GGC_CNEW instead ofGGC_NEW and memset.2006-11-13 Roger Sayle <roger@eyesopen.com>* rtti.c (get_pseudo_ti_init): Ensure that the offset field of thebase type info initializer has the correct type.2006-11-13 Mark Mitchell <mark@codesourcery.com>PR c++/29518* pt.c (coerce_template_parms): Do not skip_evaluation whilesubstituting template arguments.2006-11-11 Richard Guenther <rguenther@suse.de>* typeck.c (build_unary_op): Remove handling of FIX_CEIL_EXPR,FIX_FLOOR_EXPR and FIX_ROUND_EXPR.2006-11-03 Roger Sayle <roger@eyesopen.com>* call.c (build_op_delete_call): Test user-visible type againstsize_type_node, instead of against the internal type, sizetype.* class.c (type_requires_array_cookie): Likewise.* mangle.c (write_builtin_type) <INTEGER_TYPE>: Remove specialhandling of TYPE_IS_SIZETYPE.* typeck.c (type_after_usual_arithmetic_conversions): Removespecial case handling of TYPE_IS_SIZETYPE.(comptypes): Likewise.2006-11-01 Danny Smith <dannysmith@users.sourceforge.net>* decl.c (get_atexit_node): Reference atexit, not __cxa_exit.if targetm.cxx.use_atexit_for cxa_atexit.(start_cleanup_fn): Likewise.(register_dtor_fn): Likewise.2006-09-25 Geoffrey Keating <geoffk@apple.com>* decl2.c (cp_write_global_declarations): Rename fromcp_finish_file.* cp-lang.c (finish_file): Don't call cp_finish_file.* cp-tree.h (cp_write_global_declarations): Rename fromcp_finish_file.* cp-objcp-common.h (LANG_HOOKS_WRITE_GLOBALS): Define tocp_write_global_declarations.2006-10-31 Geoffrey Keating <geoffk@apple.com>* name-lookup.c (get_anonymous_namespace_name): New.(push_namespace_with_attribs): Use get_anonymous_namespace_name.* decl2.c (start_objects): Update for rename ofget_file_function_name_long.2006-10-30 Dirk Mueller <dmueller@suse.de>PR c++/28704* decl.c (grokdeclarator): Duplicate diagnostic messagefor easier translation.* decl.c (grokdeclarator): Fix line-wrapping.2006-10-30 Dirk Mueller <dmueller@suse.de>PR c++/6321* decl.c (grokfndecl): Use check_main_parameter_types.2006-10-30 Dirk Mueller <dmueller@suse.de>PR c++/28669* decl.c (grokfndecl): Duplicate warning message foreasier translation.2006-10-30 Dirk Mueller <dmueller@suse.de>* typeck.c (build_unary_op): Fix indenting. Use G_().2006-10-29 Dirk Mueller <dmueller@suse.de>PR c++/29089* typeck.c (build_unary_op): Duplicate warning messagefor easier translation.2006-10-29 Dirk Mueller <dmueller@suse.de>PR c++/16307* typeck.c (build_array_ref): Warn for char subscriptionson pointers.2006-10-29 Kazu Hirata <kazu@codesourcery.com>* decl.c: Fix a comment typo.2006-10-28 Andrew Pinski <andrew_pinski@playstation.sony.com>PR C++/29295* typeck.c (build_unary_op): Use same_type_p when comparing toboolean type.2006-10-29 Dirk Mueller <dmueller@suse.de>PR c++/29033* typeck.c (build_binary_op): Duplicate warning messagefor better translation.2006-10-23 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>* decl.c (builtin_function_1): Move common code toadd_builtin_function.(builtin_function): Rename to cxx_builtin_function.Change the signature.* call.c: Include langhooks.h.(build_java_interface_fn_ref): Replace calls tobuiltin_function with add_builtin_function.* Make-lang.in (cp/call.o): Depend on langhooks.h.* cp-objcp-common.h (LANG_HOOKS_BUILTIN_FUNCTION): Define ascxx_builtin_function.* cp-tree.h (builtin_function): Rename to cxx_builtin_function.Change the signature.2006-10-22 Nathan Sidwell <nathan@codesourcery.com>PR c++/20647* rtti.c (tinfo_base_init): The type info string is always global.2006-10-20 Lee Millward <lee.millward@codesourcery.com>Mark Mitchell <mark@codesourcery.com>PR c++/28053* decl2.c (grokbitfield): Detect invalid non-integraltypes earlier when possible.2006-10-18 Mark Shinwell <shinwell@codesourcery.com>PR c++/26884* typeck2.c (digest_init): Raise error upon attempts toinitialize arrays with variables.2006-10-17 Lee Millward <lee.millward@codesourcery.com>PR c++/27952* cp-tree.h (xref_basetypes): Return bool instead of void.* decl.c (xref_basetypes): Adjust definition. Return falseif the class bases are invalid.* parser.c (cp_parser_class_head): Check the return valuefrom xref_basetypes.2006-10-17 Mark Mitchell <mark@codesourcery.com>PR c++/28261* parser.c (cp_lexer_next_token_is_decl_specifier_keyword): Addcomment.PR c++/28261* parser.c (cp_lexer_next_token_is_decl_specifier_keyword): Newfunction.(cp_parser_constructor_declarator_p): Use it.(cp_parser_check_type_definition): Return a value indicatingwhether or not the definition is valid.(cp_parser_enum_specifier): Skip invalid enum definitions.2006-10-17 Mark Mitchell <mark@codesourcery.com>PR c++/29039* typeck2.c (build_functional_cast): Don't zero-initializenon-PODs; instead, call their constructors.* method.c (synthesize_method): Always build mem-initializers, ifwe're synthesizing the default constructor.2006-10-17 Mark Mitchell <mark@codesourcery.com>PR c++/27270* decl.c (reshape_init_class): Move check for designatedto ...* parser.c (cp_parser_initializer_list): ... here.* pt.c (tsubst_copy_and_build): Use finish_compound_literal.2006-10-16 Mark Mitchell <mark@codesourcery.com>PR c++/27270* typeck2.c (process_init_constructor_array): Reword comment.* pt.c (tsubst_copy_and_built): Call reshape_init before callingdigest_init.PR c++/29408* parser.c (cp_parser_using_declaration): Stop parsing whensomething goes wrong with an access declaration.PR c++/29435* typeck.c (cxx_sizeof_or_alignof_type): Complete non-dependenttypes when their sizes are required. Refine test for VLAs.PR c++/28211* parser.c (cp_parser_template_argument): Don't consider "&var" apossible constant-expression.* pt.c (convert_nontype_argument): Refine handling of arguments ofpointer type.2006-10-13 Mark Mitchell <mark@codesourcery.com>PR c++/28506* parser.c (function_declarator_p): New function.(cp_parser_init_declarator): Use it.(cp_parser_member_declaration): Likewise.2006-10-12 Mark Mitchell <mark@codesourcery.com>PR c++/29318* rtti.c (get_tinfo_decl): Refuse to create type info objects forvariably modified types.2006-10-12 Lee Millward <lee.millward@codesourcery.com>PR c++/27961* decl.c (start_decl): Return error_mark_node if afunction is initialized like a variable.(check_var_type): If a variable of field is declared void,set the type to error_mark_node.(grokdeclarator): Check the return type of check_var_type.* class.c (finish_struct_1): Robustify.2006-10-11 Mark Mitchell <mark@codesourcery.com>PR c++/29175* decl.c (check_initializer): Issue errors about trying toinitialize arrays whose elements have variable size.2006-10-11 Lee Millward <lee.millward@codesourcery.com>PR c++/29024* cp-tree (struct cp_decl_specifier_seq): Rename toconflicting_specifiers_p* parser.c (cp_parser_set_storage_class): Setconflicting_specifiers_p for the input decl specifierif a typedef specifier is present. Rename uses ofmultiple_specifiers_p to conflicting_specifiers_p.(cp_parser_decl_specifier_seq) <RID_TYPEDEF>: If a storageclass specifier has already been set for this declaration,set conflicting_specifiers_p to true on the decl_specs.* decl.c (grokdeclarator): Rename uses ofmultiple_specifiers_p to conflicting_specifiers_p.2006-10-10 Brooks Moses <bmoses@stanford.edu>* Make-lang.in: Added "c++.pdf" target support.2006-10-10 Richard Guenther <rguenther@suse.de>PR rtl-optimization/29323* decl.c (finish_function): Set TREE_NOTHROW only forfunctions that bind local.2006-10-09 Richard Henderson <rth@redhat.com>Revert emutls patch.2006-10-04 Richard Henderson <rth@redhat.com>Jakub Jelinek <jakub@redhat.com>* decl.c (grokvardecl): Don't error if !have_tls.(grokdeclarator): Likewise.* parser.c (cp_parser_omp_threadprivate): Likewise.2006-10-03 Mark Mitchell <mark@codesourcery.com>PR c++/29020* friend.c (do_friend): Improve comments; add assertion.* parser.c (cp_parser_nested_name_specifier_opt): Resolvetypenames for qualified names used in declarations, even whencaching qualified name lookup.PR c++/29138* decl2.c (grokfield): Don't handle access declarations here.* parser.c (cp_parser_using_declaration): Handle accessdeclarations too.(cp_parser_block_declaration): Adjust calls tocp_parser_using_declaration.(cp_parser_member_declaration): Likewise. Usecp_parser_using_declaration to look for access_declarations.2006-10-03 Volker Reichelt <reichelt@igpm.rwth-aachen.de>PR c++/29291* init.c (build_new): Check for invalid init.2006-10-02 Mark Mitchell <mark@codesourcery.com>PR c++/29226* typeck.c (cxx_sizeof_or_alignof_type): Tidy. In templates, donot try to actually evaluate sizeof for a VLA type.2006-10-01 Mark Mitchell <mark@codesourcery.com>PR c++/29105* pt.c (tsubst_baselink): Substituteinto the qualifying scope.* semantics.c (baselink_for_fns): Build a baselink, even whenprocessing a template.PR c++/29080* parser.c (cp_parser_postfix_dot_deref_expression): UseBASELINK_ACCESS_BINFO as the qualifying scope when callingadjust_result_of_qualified_name_lookup.2006-09-25 Lee Millward <lee.millward@codesourcery.com>PR c++/27329PR c++/26938* cp-tree.h (redeclare_class_template): Adjust declarationto return bool instead of void.* pt.c (redeclare_class_template): Update definition.Return false on error.* decl.c (xref_tag): Return error_mark_node ifredeclare_class_template returned false.PR c++/27667* cp-tree.h (begin_specialization): Return boolinstead of void.* pt.c (check_specialization_scope): Likwise.Adjust comment. Return false if a specializationisn't permitted in the current scope.(begin_specialization): Use the return value ofcheck_specialization_scope.* parser.c (cp_parser_explicit_specialization): Ifbegin_specialization returned false, skip the restof the specialization.2006-09-21 Mark Mitchell <mark@codesourcery.com>PR c++/29016* typeck.c (build_unary_op): Don't form an ADDR_EXPR around aBASELINK.2006-09-21 Lee Millward <lee.millward@codesourcery.com>PR c++/28861* decl.c (shadow_tag): Return error_mark_nodeif maybe_process_partial_specialization failed.PR c++/28303* decl.c (grokdeclarator): Return error_mark_node ondeclaration with two or more data types.2006-09-20 Danny Smith <dannysmith@users.sourceforge.net>PR target/27650* class.c (check_for_override): Remove dllimport from virtualmethods.2006-09-18 Steven Bosscher <steven@gcc.gnu.org>PR c++/29087* parser.c (cp_parser_labeled_statement): Return nothing. Donot take in_statement_expr and in_compound as arguments. Renameto cp_parser_label_for_labeled_statement. Parse only the label,not the statement.(cp_parser_statement): Parse the statement of a labeled-statementfrom here, using tail recursion.2006-09-14 Andrew Pinski <pinskia@physics.uc.edu>PR C++/29002* init.c (build_zero_init): If we have an error mark node forthe array size, return.2006-09-10 Mark Mitchell <mark@codesourcery.com>PR c++/28991* cp-objcp-common.c (cxx_staticp): New function.* cp-objcp-common.h (LANG_HOOOKS_STATICP): Use it.* cp-tree.h (cxx_staticp): New function.2006-09-09 Jason Merrill <jason@redhat.com>PR c++/28996* cvt.c (convert_to_void): Strip COMPONENT_REF to functions.2006-09-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>PR c++/28858* parser.c (cp_parser_skip_until_found): Rename tocp_parser_skip_to_end_of_template_parameter_list. Remove last twoparameters. Track levels of '< ... >'. Stop at '{', '}', or ';'.Reorganize. Adjust comment.(cp_parser_template_declaration_after_export): Adjust call.(cp_parser_enclosed_template_argument_list): Likewise.2006-09-07 Andrew Pinski <pinskia@physics.uc.edu>PR C++/28906* init.c (build_new_1): Build a distinct type copyfor the array type that was returned frombuild_cplus_array_type.2006-09-07 Jason Merrill <jason@redhat.com>PR c++/27371* cvt.c (convert_to_void): Enable previous change.PR c++/26957* method.c (use_thunk): Clear DECL_HAS_VALUE_EXPR_P on copiedparms.2006-09-07 Simon Martin <simartin@users.sourceforge.net>PR c++/28284* pt.c (fold_non_dependent_expr): Make sure expr is notdereferenced if it is NULL.2006-09-06 Zak Kipling <zak@transversal.com>PR c++/26195* decl.c (make_rtl_for_nonlocal_decl),(start_preparsed_function): Don't use lbasename oninput_filename when calling get_fileinfo.* semantics.c (begin_class_definition): Likewise.* lex.c (cxx_make_type): Likewise.(handle_pragma_interface): Call get_fileinfo on input_filename,not on the parameter to the directive.2006-09-06 Mark Mitchell <mark@codesourcery.com>PR c++/28903* pt.c (tsubst): Use fold_non_dependent_expr to fold arraydimensions.PR c++/28886* pt.c (unify): Avoid unnecessary calls to fold_build2 for arraydimensions.2006-09-06 Jason Merrill <jason@redhat.com>PR c++/27371* cvt.c (convert_to_void): Strip useless TARGET_EXPR.* cp-tree.h (TARGET_EXPR_IMPLICIT_P): New macro.* tree.c (build_cplus_new): Set it.PR c++/26696* cvt.c (convert_to_void): Replace a subexpression with no sideeffects with void_zero_node.* tree.c (is_overloaded_fn): Look through COMPONENT_REF.(get_first_fn): Ditto.* decl.c (grokdeclarator): No need to look through COMPONENT_REF.2006-09-05 Jason Merrill <jason@redhat.com>PR c++/26571* parser.c (cp_parser_diagnose_invalid_type_name): Handle the casewhere the name is a type used incorrectly.PR c++/26671* typeck.c (maybe_warn_about_returning_address_of_local): Lookthrough COMPONENT_REF and ARRAY_REF.PR c++/26102* name-lookup.c (do_class_using_decl): Try to find the base evenif bases_dependent_p.* pt.c (type_dependent_expression_p): A USING_DECL is dependent.PR c++/19809* pt.c (tsubst_friend_function): Set DECL_INITIAL before pushdecl.2006-09-04 Nathan Sidwell <nathan@codesourcery.com>PR 23287 Revert my 2006-09-01 patch.* parser.c: Reverted.* pt.c: Reverted.2006-09-02 Lee Millward <lee.millward@codesourcery.com>PR c++/27670PR c++/27493PR c++/27494PR c++/27397* parser.c (cp_parser_template_parameter_list): Addinvalid template parameters to the parameter list aserror_mark_node.2006-09-02 Jakub Jelinek <jakub@redhat.com>PR c++/28878* except.c (build_throw): Only set current_function_returns_abnormallyif cfun is not NULL.PR c++/26917* repo.c (repo_file): Remove.(open_repo_file, reopen_repo_file_for_write): Return fopenedFILE * instead of setting global repo_file variable.(init_repo): Adjust caller.(finish_repo): Likewise. Return instead of goto out beforereopen_repo_file_for_write has been called.2006-09-01 Nathan Sidwell <nathan@codesourcery.com>PR c++/28705* semantics.c (finish_call_expr): Add assert.* name-lookup.c (lookup_arg_dependent): Check we found an overloador an object.PR c++/23287* parser.c (cp_parser_id_expression): Add member_pargument. Update all callers.(cp_parser_unqualified_id): Likewise. Lookup a destructor name inthe object's scope, if valid.(cp_parser_global_scope_opt): Add object_scope_valid_p. Updatecallers.(cp_parser_postfix_dot_deref_expression): Set object_scope.* pt.c (tsubst_copy_and_build): Lookup dependent dtor name here.2006-08-30 Jason Merrill <jason@redhat.com>PR c++/26670* class.c (check_field_decls): Don't unset TYPE_PACKED until allthe fields have been processed.2006-08-29 Andrew Pinski <pinskia@physics.uc.edu>PR C++/28349* call.c (build_x_va_arg): Remove the reference typefrom the type before creating the pointer type.2006-08-29 J"orn Rennecke <joern.rennecke@st.com>PR c++/28139* except.c (expand_start_catch_block): Use correct types for bitwisecopy.2006-08-28 Jason Merrill <jason@redhat.com>PR c++/26670* class.c (check_field_decls): Unset TYPE_PACKED (t) if one of thefields can't be packed.PR c++/26577* cvt.c (convert_to_void): Don't automatically load from volatilesof TREE_ADDRESSABLE type.2006-08-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de>PR c++/28860* cp-tree.h (maybe_process_partial_specialization): Returntree instead of void.* parser.c (cp_parser_class_head): Use return value ofmaybe_process_partial_specialization.* pt.c (maybe_process_partial_specialization): Return error_mark_nodefor broken specializations, TYPE otherwise. Check for templatetemplate parameters.2006-08-27 Mark Mitchell <mark@codesourcery.com>PR c++/28058* pt.c (register_specialization): Return error_mark_node forspecialization-after-instantiation.* decl2.c (mark_used): Mark the main function used when one of itsclones is used.2006-08-27 Lee Millward <lee.millward@codesourcery.com>PR c++/26573* class.c (check_field_decls): Don't issue error aboutlocal classes containing static data members.2006-08-26 Joseph S. Myers <joseph@codesourcery.com>PR c++/24009* parser.c (struct cp_token): Add input_file_stack_index.(eof_token): Update.(cp_lexer_get_preprocessor_token): Save input_file_stack_tick.(cp_lexer_set_source_position_from_token): Restore input filestack.2006-08-26 Lee Millward <lee.millward@codesourcery.com>PR c++/28736PR c++/28737PR c++/28738* pt.c (process_template_parm): Store invalid templateparameters as a TREE_LIST with a TREE_VALUE of error_mark_node.(push_inline_template_parms_recursive): Check for templateparameters having a TREE_VALUE of error_mark_node rather thancheck the parameter itself.(mangle_class_name_for_template): Likewise.(comp_template_parms): When comparing the individual templateparameters, return 1 if either is error_mark_node.(current_template_args): Robustify.(redeclare_class_template): Likewise.2006-08-26 Mark Mitchell <mark@codesourcery.com>PR c++/28588* class.c (resolve_address_of_overloaded_function): Addaccess_path parameter. Perform access checks.(instantiate_type): Adjust call toresolve_address_of_overloaded_function. Remove unnecessary code.* tree.c (is_overloaded_fn): Document. Return 2 when there areacutally multiple functions.(really_overloaded_fn): Use is_overloaded_fn.* mangle.c (write_expression): Handle BASELINKs.* cp-tree.h (really_overloaded_fn): Return bool.(baselink_for_fns): Declare.* search.c (lookup_member): Check access for single staticfunctions here.* pt.c (convert_nontype_argument_function): Handle BASELINKs.(tsubst_copy_and_build): Generate BASELINKs for template-ids.* semantics.c (finish_call_expr): Use baselink_for_fns.(baselink_for_fns): New function.(finish_id_expression): Use it.* parser.c (cp_parser_template_argument): Don't strip BASELINKs.PR c++/28595* pt.c (tsubst): Issue errors about attempts to create VLAs attemplate-instantiation time.2006-08-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>PR c++/28853* typeck2.c (cxx_incomplete_type_diagnostic): Handle templatetemplate parameters. Improve error message for template typeparameters.PR c++/28852* cp-tree.h (grok_op_properties): Return bool instead of void.* decl.c (grokfndecl): Discard invalid operator declarations.(copy_fn_p): Revert change for PR 27547.(grok_op_properties): Return error status (true on success).* pt.c (tsubst_decl): Discard invalid operator declarations.2006-08-25 Mark Mitchell <mark@codesourcery.com>PR c++/28056* decl.c (grokdeclarator): Disallow declarations with qualifiednames in local scopes.2006-08-25 Nathan Sidwell <nathan@codesourcery.com>PR c++/27787* decl.c (make_typename_type): Only try and resolve it whencontext is not dependent. Refactor.* decl2.c (check_classfn): Push to class scope before looking forthe function.2006-08-24 Danny Smith <dannysmith@users.sourceforge.net>PR driver/28528* g++spec.c (lang_specific_driver): Always check if we need toswallow a space-separated arg to '-x'.* lang-specs.h: Don't create ouput files for '-xc++-header'if -fsyntax-only.2006-08-23 Jason Merrill <jason@redhat.com>PR c++/27714* pt.c (push_template_decl_real): A friend template with classscope isn't primary.2006-08-23 Benjamin Smedberg <benjamin@smedbergs.us>PR c++/28687* rtti.c (build_dynamic_cast, build_dynamic_cast_1):Move -fno-rtti check to be more specific.2006-08-22 Jason Merrill <jason@redhat.com>PR c++/23372* call.c (build_over_call): Don't make a copy here if build_callwill make one too.2006-08-22 Andrew Pinski <pinskia@physics.uc.edu>PR C++/28450* cp/init.c (build_zero_init): Handle VECTOR_TYPE andCOMPLEX_TYPEs.2006-08-22 Simon Martin <simartin@users.sourceforge.net>PR c++/28420* parser.c (cp_parser_postfix_expression): Make sure that thesaved value for parser->type_definition_forbidden_message isrestored before returning to avoid an invalid free().2006-08-22 Jason Merrill <jason@redhat.com>PR c++/28659* typeck.c (merge_types): If either of the types have the rightattributes, return that one.* tree.c (cp_build_type_attribute_variant): Make sure we aren'tdoing this to class types.* typeck.c (original_type): Deal with type quals properly.2006-08-21 Jason Merrill <jason@redhat.com>PR c++/27115* semantics.c (finish_stmt_expr_expr): Don't try to voidify here,just leave the expression as it is.(finish_stmt_expr): If the statement-expression has class type,wrap it in a TARGET_EXPR.* cp-gimplify.c (cp_gimplify_init_expr): Don't bother withCLEANUP_POINT_EXPR.* except.c (build_throw): Give the CLEANUP_POINT_EXPR void type.2006-08-21 Lee Millward <lee.millward@codesourcery.com>PR c++/26269* decl.c (duplicate_decls): Return early if eithernewdecl or olddecl is error_mark_node.PR c++/28505* decl.c (grokdeclarator): Return early afterissuing diagnostic about an incomplete type.PR c++/28741* tree.c (decl_anon_ns_mem_p): Robustify.* decl2.c (determine_visibility): Likewise.2006-08-20 Mark Mitchell <mark@codesourcery.com>PR c++/28341* tree.c (cast_valid_in_integral_constant_expression_p): Newfunction.* cp-tree.h (tsubst_copy_and_build): Adjust prototype.* pt.c (tsubst_expr): Add integral_constant_expression_pparameter.(fold_non_dependent_expr): Adjust callers oftsubst_{expr,copy_and_build}.(tsubst_friend_function): Likewise.(tsubst_template_arg): Likewise.(tsubst_default_argument): Likewise.(tsubst_decl): Likewise.(tsubst): Likewise.(tsubst_omp_clasuses): Likewise.(regenerate_decl_fromp_template): Likewise.(instantiate_decl): Likewise.(tsubst_initializer_list): Likewise.(tsubst_enum): Likewise.(tsubst_expr): Use RECUR throughout.(tsubst_copy_and_build): Change definition of RECUR. Do not allowinvalid casts in integral constant expressions.* parser.c (cp_parser_postfix_expression): Usecast_valid_in_integral_constant_expression_p.(cp_parser_cast_expression): Likewise.(cp_parser_functional_cast): Likewise.PR c++/28346* pt.c (tsubst_qualified_id): Do not strip references fromOFFSET_REFs.2006-08-17 Volker Reichelt <reichelt@igpm.rwth-aachen.de>PR c++/28606* parser.c (cp_parser_diagnose_invalid_type_name): Handle BIT_NOT_EXPR.Fix formatting.(cp_parser_parse_and_diagnose_invalid_type_name): Tighten conditionfor valid type-names.(cp_parser_unqualified_id): Fix error handling for destructors.PR c++/28710* decl.c (xref_tag): Improve error message. Return early on error.PR c++/28711* pt.c (tsubst_copy_and_build) <case CONSTRUCTOR>: Robustify.2006-08-17 Paolo Bonzini <bonzini@gnu.org>PR c++/28573* semantics.c (finish_offsetof): Add new argument to fold_offsetof.2006-08-16 Andrew Pinski <pinskia@physics.uc.edu>PR c++/28302* typeck.c (build_unary_op <case BIT_NOT_EXPR:>): Don't callperform_integral_promotions for non integral type.2006-08-16 Jason Merrill <jason@redhat.com>PR c++/28385* pt.c (tsubst) [TEMPLATE_TYPE_PARM]: Ignore quals from templateif arg is a function.2006-08-16 Volker Reichelt <reichelt@igpm.rwth-aachen.de>PR c++/28593* init.c (build_new): Return early on invalid placement.2006-08-15 Lee Millward <lee.millward@codesourcery.com>PR c++/28594* pt.c (process_template_parm): Robustify.2006-08-14 Steve Ellcey <sje@cup.hp.com>PR c++/28288PR c++/14556* operators.def: Remove <?, ?>, <?=, and >?= operators.* parser.c: Remove CPP_MIN, CPP_MAX, CPP_MIN_EQ, and CPP_MAX_EQ.(cp_parser_warn_min_max): Remove.2006-08-11 Jason Merrill <jason@redhat.com>PR c++/28559* parser.c (cp_parser_elaborated_type_specifier): Also ignoreattributes applied to a TYPENAME_TYPE.2006-08-09 Lee Millward <lee.millward@codesourcery.com>PR c++/28637* pt.c (coerce_template_parms): Copy across theinvalid template arguments to the new template inner arguments.(retrieve_specialization): Robustify.PR c++/28638* pt.c (coerce_template_template_parms): Robustify.PR c++/28639* error.c (dump_template_parms): Robustify.PR c++/28640* pt.c (redeclare_class_template): Robustify.PR c++/28641* pt.c (type_unification_real): Robustify.2006-08-03 Lee Millward <lee.millward@codesourcery.com>PR c++/28347* decl.c (start_decl): Return error_mark_node if adiagnostic was issed for an invalid typedef initialization.2006-08-03 Volker Reichelt <reichelt@igpm.rwth-aachen.de>PR c++/27508* parser.c (cp_parser_unqualified_id): Check for invalid scopeswhen parsing destructor names.PR c++/28274* decl.c (duplicate_decls): Call check_default_args here.(start_preparsed_function): Do not call check_default_args.* name-lookup.c (pushdecl_maybe_friend): Only callcheck_default_args if duplicate_decls got bypassed.2006-08-02 Richard Guenther <rguenther@suse.de>PR c++/28479Revert2006-07-05 Richard Guenther <rguenther@suse.de>Andrew Pinski <pinskia@gcc.gnu.org>PR c++/27084* cp-objcp-common.c (cxx_types_compatible_p): Ignoretop level qualifiers for pointer type comparisons.2006-08-02 Mark Mitchell <mark@codesourcery.com>PR c++/28557* pt.c (tsubst_baselink): Substitute into BASELINK_OPTYPE.2006-07-31 Mark Mitchell <mark@codesourcery.com>PR c++/28523* tree.c (stabilize_expr): Tweak documentation. Add assertion.(stabilize_call): Tweak documentation.(stabilize_init): Only call stabilize_call for calls.2006-08-01 Steve Ellcey <sje@cup.hp.com>PR c++/28432* decl2.c (check_classfn): Remove early return.* search.c (lookup_member): Return NULL with bad type.2006-08-01 Steve Ellcey <sje@cup.hp.com>PR c++/28256* decl.c (check_initializer): Check for 1 initializer on scalar types.2006-08-01 Daniel Jacobowitz <dan@codesourcery.com>PR debug/23336* pt.c (tsubst_copy_and_build): Mark used enum types.* semantics.c (finish_id_expression): Likewise.2006-07-31 Volker Reichelt <reichelt@igpm.rwth-aachen.de>PR c++/6634* decl.c (grokdeclarator): Check whether "long" or "short" wasspecified for non-integral types.2006-07-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de>* Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.2006-07-28 Lee Millward <lee.millward@codesourcery.com>PR c++/27668PR c++/27962* pt.c (process_template_parm) Store invalid templateparameters as error_mark_node in the paramater list.(push_inline_template_parms_recursive): Handle invalidtemplate parameters.(comp_template_parms): Likewise.(check_default_tmpl_arg): Likewise.(coerce_template_template_parms): Likewise.(mangle_class_name_for_template): Likewise.(tsubst_template_parms): Likewise.* error.c (dump_template_argument_list): Likewise.2006-07-28 Kazu Hirata <kazu@codesourcery.com>* cp-tree.h: Fix a comment typo.2006-07-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de>PR c++/27572* decl.c (grokdeclarator): Return error_mark_node after invalidtypedef.2006-07-23 Daniel Jacobowitz <dan@codesourcery.com>PR c++/28460* decl.c (grokvardecl): Use FROB_CONTEXT.* pt.c (register_specialization): Likewise.2006-07-23 Mark Mitchell <mark@codesourcery.com>PR c++/28025* cp-tree.h (LOOKUP_HIDDEN): New macro. Reformat comments.* name-lookup.c (unqualified_namespace_lookup): There is no way tohave a hidden name in non-namespace scopes.* pt.c (tsubst_friend_class): Look for hidden names.* decl.c (lookup_and_check_tag): Fix typo in comment.* semantics.c (finish_compound_literal): Fix typo in comment.2006-07-21 Jason Merrill <jason@redhat.com>* decl2.c (determine_visibility): Don't propagate visibility fromtype to decl.(constrain_class_visibility): Don't warn in system headers.Don't warn about pointer fields.2006-07-20 Mike Stump <mrs@apple.com>* decl2.c (determine_visibility_from_class): Don't use hiddenvisibility for explicit instantiations.2006-07-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de>PR c++/28250* pt.c (tsubst_expr): Only apply DECL_TEMPLATE_INSTANTIATED tovalid decls. Cleanup.PR c++/28363* semantics.c (check_template_template_default_arg): Simplifyerror handling.2006-07-20 Jason Merrill <jason@redhat.com>PR c++/28407* decl.c (grokvardecl): Set DECL_THIS_STATIC on file-scopeconst variables with implicit internal linkage.* tree.c (decl_linkage): Only return lk_external if it's set.PR c++/28409* decl2.c (constrain_visibility): Ignore the anonymous namespacefor extern "C" decls.(VISIBILITY_STATIC): Rename to VISIBILITY_ANON.* decl2.c (constrain_visibility): Remove specified and reasonparameters. Don't touch decls that already have explicit visibility.(determine_visibility): Do copy DECL_VISIBILITY_SPECIFIED fromtemplate.(determine_visibility_from_class): Reverse sense ofDECL_VISIBILITY_SPECIFIED test for target-specific visibility rules.(constrain_class_visibility): Only complain about member visibilityif the member type is another class. Don't change visibility of thecurrent class.2006-07-19 Mark Mitchell <mark@codesourcery.com>PR c++/28338* decl.c (layout_var_decl): Don't call push_local_name here.(initialize_artificial_var): Assert artificiality.(cp_finish_decl): Call push_local_name here.2006-07-18 Mark Mitchell <mark@codesourcery.com>PR c++/28337* typeck.c (build_binary_op): Short-circuit pointer arithmetic intemplates.2006-07-18 Mark Mitchell <mark@codesourcery.com>PR c++/28048* semantics.c (check_accessibility_of_qualified_id): Robustify.PR c++/28235* pt.c (tsubst_decl): Handling substitutions into a static datamember from within the scope of the tempalte itself.2006-07-18 Lee Millward <lee.millward@gmail.com>PR c++/28258* method.c (locate_copy): Check for non_referencereturning error_mark_node.PR c++/28260* decl.c (duplicate_decls): Return error_mark_nodeon ambiguous declaration.2006-07-18 Steve Ellcey <sje@cup.hp.com>PR c++/27495* search.c (adjust_result_of_qualified_name_lookup): Changeassert to part of if statement.2006-07-17 Steve Ellcey <sje@cup.hp.com>PR c++/28291* decl.c (reshape_init_class): Return error_mark_node on error.2006-07-17 Steve Ellcey <sje@cup.hp.com>PR c++/28304* decl2.c (check_classfn): Return NULL_TREE on error.2006-07-17 Volker Reichelt <reichelt@igpm.rwth-aachen.de>PR c++/28250* name-lookup.c (pushdecl_maybe_friend): Return early onerror_mark_node.* except.c (expand_start_catch_block): Use error_mark_node insteadof NULL_TREE for invalid decls.* parser.c (cp_parser_exception_declaration): Return error_mark_nodeon invalid catch parameter. Simplify.2006-07-16 Jakub Jelinek <jakub@redhat.com>PR c++/28370* decl2.c (note_vague_linkage_var): Removed.(finish_static_data_member_decl): Add decl to pending_statics vectordirectly. Do it even for non-public decls.2006-07-15 Lee Millward <lee.millward@gmail.com>PR c++/28292* decl2.c (acceptable_java_type): Robustify. Useproper Boolean return type instead of return 1.(check_java_method): Don't issue error abouttype not being an acceptable Java parameter ifit's error_mark_node.PR c++/28269* parser.c (cp_parser_elaborated_type_specifier):Return early if an invalid type was detected.2006-07-15 Volker Reichelt <reichelt@igpm.rwth-aachen.de>PR c++/28249* parser.c (cp_parser_check_decl_spec): New function.(cp_parser_decl_specifier_seq): Factor out check for repeateddecl-specifiers into cp_parser_check_decl_spec. Use it.(cp_parser_type_specifier_seq): Use it.PR c++/28294* semantics.c (finish_offsetof): Use TREE_OPERAND for COMPONENT_REFsonly.PR c++/28387* decl2.c (cplus_decl_attributes): Check for invalid decls.2006-07-14 Volker Reichelt <reichelt@igpm.rwth-aachen.de>PR c++/28343* decl.c (cp_finish_decl): Check asmspec_tree for error_mark_node.* decl2.c (grokfield): Likewise.2006-07-12 Geoffrey Keating <geoffk@apple.com>* decl2.c (determine_visibility): Don't change visibility offunction locals because of -fvisibility-inlines-hidden.2006-07-12 Jason Merrill <jason@redhat.com>PR c++/28217* semantics.c (note_decl_for_pch): Don't premangle templates.2006-07-12 Martin Michlmayr <tbm@cyrius.com>* typeck.c (string_conv_p): Remove spurious quotation mark inwarning.2006-07-07 Lee Millward <lee.millward@gmail.com>Andrew Pinski <pinskia@gmail.com>PR c++/27820* decl.c (define_label): Return error_mark_node on error.* semantics.c (finish_label_stmt): Don't calladd_stmt for invalid labels.2006-07-06 Jason Merrill <jason@redhat.com>PR c++/28279* decl2.c (finish_static_data_member_decl): Don't assertTREE_PUBLIC.2006-07-05 Jason Merrill <jason@redhat.com>PR c++/13983PR c++/17519* class.c (check_field_decls): Check TYPE_PACKED afterstripping array types.(finish_struct_bits): Don't copy TYPE_SIZE here.PR c++/18681* friend.c (is_friend): Fix DR 45 implementation.2006-07-05 Richard Guenther <rguenther@suse.de>Andrew Pinski <pinskia@gcc.gnu.org>PR c++/27084* cp-objcp-common.c (cxx_types_compatible_p): Ignoretop level qualifiers for pointer type comparisons.2006-07-01 Jason Merrill <jason@redhat.com>PR c++/28215* method.c (make_thunk): Unset DECL_USE_TEMPLATE andDECL_TEMPLATE_INFO.2006-06-30 Jason Merrill <jason@redhat.com>PR c++/26577* call.c (build_new_method_call): Force evaluation of theinstance pointer, not the object.2006-06-30 Kazu Hirata <kazu@codesourcery.com>* decl2.c: Fix a comment typo.2006-06-30 Jason Merrill <jason@redhat.com>PR c++/18698* decl2.c (grokfield): Only try to treat the decl as an accessdeclaration if the scope is a class.2006-06-29 Jason Merrill <jason@redhat.com>PR c++/26905PR c++/26612PR c++/27000PR c++/26984PR c++/19134* decl2.c (determine_visibility): Overhaul.(determine_visibility_from_class): Likewise.(min_vis_r, type_visibility, constrain_visibility): New fns.(constrain_visibility_for_template): Likewise.(constrain_class_visibility): Likewise.* decl.c (cp_finish_decl): Call determine_visibility for functiondecls, too.* name-lookup.c (pushtag): Call determine_visibility.* decl.c (duplicate_decls): Don't copy visibility from template tospecialization.* pt.c (check_explicit_specialization): Likewise.(lookup_template_class, tsubst_decl): Call determine_visibility.* class.c (finish_struct_1): Call constrain_class_visibility.PR c++/26905PR c++/21675PR c++/17470* parser.c (cp_parser_explicit_instantiation): Pass the attributesto grokdeclarator.(cp_parser_type_specifier): Allow 'enum __attribute ((...)) E'.(cp_parser_enum_specifier): Likewise.(cp_parser_elaborated_type_specifier): Apply attributes if thisdeclares only the class.(cp_parser_class_specifier): Apply leading attributes immediately.* semantics.c (begin_class_definition): Add attributes parameter,apply them to the type.PR c++/21581PR c++/25915* tree.c (decl_anon_ns_mem_p): New function.* cp-tree.h: Declare it.* decl2.c (determine_visibility): Make anonymous namespacemembers static.(min_vis_r, constrain_visibility): Likewise.* rtti.c (create_pseudo_type_info): Set TREE_PUBLIC onpseudo-types.* decl.c (cxx_init_decl_processing): Set TREE_PUBLIC onglobal_namespace.* name-lookup.c (push_namespace_with_attribs): Don't set TREE_PUBLICon anonymous namespaces.2006-06-28 Jason Merrill <jason@redhat.com>PR c++/27424* pt.c (convert_template_argument): Pass all template argumentson to coerce_template_template_parms.2006-06-25 Lee Millward <lee.millward@gmail.com>Mark Mitchell <mark@codesuorcery.com>PR c++/28054* decl2.c (grokbitfied): Remove check for grokdeclaratorreturning NULL_TREE, instead check for error_mark_nodeto indicate failure.* decl.c (grokdeclarator): Adjust block comment.2006-06-25 Lee Millward <lee.millward@gmail.com>PR c++/28051* mangle.c (mangle_conv_op_name_for_type): Check forinvalid types.* name-lookup.c (push_class_level_binding): Robustify.(do_class_using_decl): Return early if name is error_mark_node.2006-06-23 Steve Ellcey <sje@cup.hp.com>PR c++/28114* name-lookup.c (pushtag): Return if we have error_mark_node.2006-06-23 Steve Ellcey <sje@cup.hp.com>PR c++/27019* typeck2.c (process_init_constructor_array): Set ce->value on errors.2006-06-23 Volker Reichelt <reichelt@igpm.rwth-aachen.de>PR c++/28112* parser.c (cp_parser_attribute_list): Skip attributes with invalidarguments. Fix comment.PR c++/11468* init.c (build_new_1): Handle error_mark_nodes returned bybuild_java_class_ref.(build_java_class_ref): Do not abort compilation, but returnerror_mark_node. Improve error message. Fix indentation.2006-06-23 Danny Smith <dannysmith@users.sourceforge.net>PR target/27789* decl.c (start_decl): Check that dllimports are not initialized.2006-06-22 Lee Millward <lee.millward@gmail.com>PR c++/27805* typeck2.c (build_m_component_ref): Use error_operand_p.PR c++/27821* decl.c (grokdeclarator): Return error_mark_node oninvalid uses of the scope resolution operator.2006-06-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>PR c++/28111* pt.c (determine_specialization): Check for invalid decls.PR c++/28110* pt.c (unify) <case TEMPLATE_PARM_INDEX>: Check for invalidparameters.PR c++/28109* rtti.c (get_tinfo_decl_dynamic): Robustify.2006-06-20 Volker Reichelt <reichelt@igpm.rwth-aachen.de>PR c++/28052* init.c (push_base_cleanups): Skip members with invalid types.* typeck.c (build_class_member_access_expr): Robustify.2006-06-19 Mark Mitchell <mark@codesourcery.com>* pt.c (instantiate_template): Fix typo in comment.2006-06-19 Richard Guenther <rguenther@suse.de>* parser.c (CP_LEXER_BUFFER_SIZE): Adjust to assure nearpower-of-two token vector size.2006-06-16 Mark Mitchell <mark@codesourcery.com>PR c++/28016* decl.c (cp_finsh_decl): Do not emit uninstantiated static datamembers.PR c++/27979* call.c (standard_conversion): Strip cv-qualifiers from bitfieldtypes.PR c++/27884* decl.c (have_extern_spec): Remove.(start_decl): Do not check have_extern_spec.(start_function): Likewise.* cp-tree.h (have_extern_spec): Remove.* parser.c (cp_parser_linkage_specification): Don't sethave_extern_spec.(cp_parser_init_declarator): Likewise.(cp_parser_parameter_declaration): Do not treat parameters aswithin the scope of an unbraced linkage specification.2006-06-15 Mark Mitchell <mark@codesourcery.com>PR c++/27689* cp-tree.h (CLASSTYPE_SPECIALIZATION_OF_PRIMARY_TEMPLATE_P): Newmacro.* pt.c (unify): Use it.PR c++/27666* call.c (build_conditional_expr): Robustify.PR c++/27640* pt.c (instantiate_template): Set processing_template_decl tozero while performing substitutions.2006-06-14 Mark Mitchell <mark@codesourcery.com>PR c++/27665* parser.c (cp_parser_unqualified_id): Use constructor_name_p toidentify destructors.(cp_parser_nested_name_specifier_opt): Remove invalidoptimization.(cp_parser_template_id): Refine heuristic for determining whetherwe are entering a scope.PR c++/27648* parser.c (cp_parser_declarator): Robustify.PR c++/26559* pt.c (tsubst_expr): Use finish_omp_atomic.(value_dependent_expression_p): All CALL_EXPRs are dependent.* semantics.c (finish_omp_atomic): Rework to use standardparadigms for handling non-dependent expressions.2006-06-14 Gabriel Dos Reis <gdr@integrable-solutions.net>* typeck.c (build_modify_expr): Tidy diagnostic message.2006-06-14 Mark Mitchell <mark@codesourcery.com>PR c++/28018* typeck.c (build_modify_expr): Disallow array assignment.2006-06-14 Gabriel Dos Reis <gdr@integrable-solutions.net>* cp-tree.def: Fix typo.2006-06-13 Mark Mitchell <mark@codesourcery.com>PR c++/27227* decl.c (decls_match): Allow an extern "C" variable declarationsfrom different namespaces to match.(duplicate_decls): Disallow redeclaring a variable with adifferent linkage specification.2006-06-13 Jakub Jelinek <jakub@redhat.com>PR middle-end/27793* cp-tree.h (cxx_int_tree_map): New struct.(struct language_function): Add extern_decl_map field.* name-lookup.c (pushdecl_maybe_friend): Add x -> t mappingto cp_function_chain->extern_decl_map hash table instead ofcopying over DECL_UID.* cp-gimplify.c (cxx_int_tree_map_eq, cxx_int_tree_map_hash): Newfunctions.(cp_genericize_r): Remap DECL_EXTERN local decls usingcp_function_chain->extern_decl_map hash table.* decl.c (finish_function): Clear extern_decl_map.2006-06-12 Volker Reichelt <reichelt@igpm.rwth-aachen.de>PR c++/27601* semantics.c (finish_offsetof): Handle pseudo-destructors.PR c++/27933* name-lookup.c (lookup_qualified_name): Always return error_mark_nodeif lookup fails.PR c++/27951* decl2.c (finish_anon_union): Return early if build_anon_union_varsfails.2006-06-12 Roger Sayle <roger@eyesopen.com>PR c++/21210* typeck2.c (build_functional_cast): Use cp_convert to constructnon-aggregate initializers instead of the user-level build_c_cast.2006-06-07 Volker Reichelt <reichelt@igpm.rwth-aachen.de>PR c++/27601* cp-tree.h (finish_offsetof): Add prototype.* semantics.c (finish_offsetof): New function.* parser.c (cp_parser_builtin_offsetof): Call it instead offold_offsetof.* pt.c (tsubst_copy_and_build): Likewise.2006-06-06 Mark Mitchell <mark@codesourcery.com>PR c++/27177* call.c (standard_conversion): Require that the derived type becomplete when performing a derived-to-base conversion.2006-06-04 Mark Mitchell <mark@codesourcery.com>PR c++/27819* decl.c (cp_finish_decl): Process initializers for static datamembers with non-dependent initializers, even in templates.PR c++/27722* decl.c (maybe_deduce_size_from_array_init): If the declarationis erroneous, give it an erroneous type.(layout_var_decl): If the type is erroneous, give up.(check_initializer): Likewise.PR c++/27807* cp-tree.h (TYPE_OBJ_P): New macro.(TYPE_PTROB_P): Use it.(TYPE_REF_OBJ_P): Likewise.* semantics.c (finish_compound_literal): Do not permit compoundliterals of non-object types.PR c++/27806* typeck.c (original_type): Robustify.2006-06-05 Volker Reichelt <reichelt@igpm.rwth-aachen.de>PR c++/27804* init.c (constant_value_1): Return decl instead of error_mark_nodefor invalid initializers.2006-06-01 Andrew Pinski <pinskia@physics.uc.edu>PR c++/27592* rtti.c (build_dynamic_cast_1): Call c_common_truthvalue_conversionon operand of the COND_EXPR for the null pointer check.2006-06-01 Andrew Pinski <pinskia@physics.uc.edu>PR c++/26740* typeck.c (build_unary_op): Mark the function as being used.2006-06-01 Alexandre Oliva <aoliva@redhat.com>PR c++/26660* parser.c (cp_parser_initial_pragma): Read one more token forcaller after reading PCH file in.2006-05-31 Mark Mitchell <mark@codesourcery.com>PR c++/27801* call.c (perform_implicit_conversion): Do not actually performconversions in templates.PR c++/26496* call.c (resolve_args): Check for invalid uses of boundnon-static member functions.* init.c (build_offset_ref): Return error_mark_node for errors.PR c++/27385* decl.c (reshape_init): Robustify.(reshape_init_array_1): Likewise.2006-05-30 Mark Mitchell <mark@codesourcery.com>PR c++/27808* parser.c (cp_parser_decl_specifier_seq): Issue errors about"friend" specifiers that do not appear in class scopes.PR c++/27803* class.c (check_bitfield_decl): Ensure that all bitfields haveintegral type.2006-05-29 Kazu Hirata <kazu@codesourcery.com>* pt.c (convert_nontype_argument): Fix a typo in an errormessage.2006-05-28 Kazu Hirata <kazu@codesourcery.com>* decl.c, decl2.c, parser.c: Fix comment typos. Followspelling conventions.2006-05-24 Mark Mitchell <mark@codesourcery.com>PR c++/20103* decl.c (cp_make_fname_decl): Don't set DECL_INITIAL toerror_mark_node to indicate an initialization is OK.(start_decl): Likewise. Adjust call to start_decl_1.(start_decl_1): Add initialized parameter. Simplify.* except.c (initialize_handler_parm): Adjust call tosetart_decl_1.(expand_start_catch_block): Let cp_finish_decl initialize catchparameters.* cp-tree.h (start_decl_1): Adjust prototype.* pt.c (tsubst_expr): Don't set DECL_INITIAL to error_mark_node.(instantiate_decl): Let cp_finish_decl handle initialization.* semantics.c (finish_compound_literal): Create a temporaryvariable for the literal.* typeck.c (build_unary_op): Remove COMPOUND_LITERAL_P specialcases.* decl2.c (finish_static_data_member_decl): Don't setDECL_INITIAL.(grokfield): Do not try to initialize functions.2006-05-23 Mark Mitchell <mark@codesourcery.com>PR c++/20173* pt.c (determine_specialization): Disallow partialspecializations of templates.2006-05-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>PR c++/27716* typeck.c (build_modify_expr): Test arguments for error_operand_p.* decl.c (grokdeclarator): Return error_mark_node instead of NULL_TREE.2006-05-21 Mark Mitchell <mark@codesourcery.com>PR c++/27210* cp-tree.h (cp_save_expr): New function.* init.c (build_new): Correct logic for zero-element arraywarning. Use cp_save_expr.* tree.c (cp_save_expr): New function.2006-05-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de>PR c++/27398* decl.c (grokdeclarator): Return error_mark_node instead of NULL_TREEor void_type_node.2006-05-19 Mike Stump <mrs@apple.com>* typeck.c (default_conversion): Remove static.2006-05-19 Mark Mitchell <mark@codesourcery.com>PR c++/26433* cp-tree.h (begin_function_try_block): Change prototype.(finish_function_handler_sequence): Likewise.* parser.c (cp_parser_function_try_block): Adjust calls.* pt.c (tsubst_expr): Adjust calls.* semantics.c (begin_function_try_block): Create an artificialouter scope.(finish_function_handler_sequence): Close it.2006-05-18 Mark Mitchell <mark@codesourcery.com>PR c++/27471PR c++/27506* typeck.c (decay_conversion): Convert bitfields to their declaredtypes here. Improve documentation. Avoid use of cp_convert.(default_conversion): Make it static. Perform integral promotionsbefore lvalue-to-rvalue, function-to-pointer, and array-to-pointerconversions.* init.c (build_init): Remove.(expand_default_init): Do not call rvalue.* call.c (null_ptr_cst_p): Robustify.(build_conditional_expr): Tidy.* except.c (build_throw): Do not perform lvalue-to-rvalueconversion on operand before initializing temporary.* tree.c (convert.h): Include it.(convert_bitfield_to_declared_type): Use convert_to_integer, notcp_convert.(rvalue): Don't convert bitfields to their declared type here.* cp-tree.h (build_init): Remove.(default_conversion): Likewise.* typeck2.c (build_m_component_ref): Do not performlvalue-to-rvalue, function-to-pointer, or array-to-pointerconversions here. Correct error message.2006-05-17 Mark Mitchell <mark@codesourcery.com>PR c++/26122* decl2.c (check_member_template): Remove checks for virtualfunctions.* parser.c (cp_parser_function_specifier_opt): Complain aboutvirtual templates.(cp_parser_pure_specifier): Likewise.PR c++/26068* parser.c (cp_parser_set_storage_class): Check forinvalid uses of storage classes on unbraced linkagespecifications.(cp_parser_decl_specifier_seq): Pass keywords, not storage classes,to cp_parser_set_storage_class.2006-05-17 Jakub Jelinek <jakub@redhat.com>PR c++/27491* semantics.c (finish_compound_literal): Only set TREE_HAS_CONSTRUCTORon CONSTRUCTORs.PR middle-end/27415* parser.c (cp_parser_omp_parallel): Set OMP_PARALLEL_COMBINEDon combined parallel workshare constructs.* pt.c (tsubst_expr): Copy OMP_PARALLEL_COMBINED flag.2006-05-16 H.J. Lu <hongjiu.lu@intel.com>PR driver/26885* Make-lang.in (GXX_OBJS): Replace gcc.o with $(GCC_OBJS).2006-05-15 Mark Mitchell <mark@codesourcery.com>PR c++/27339* cp-tree.h (perform_access_checks): New function.* semantics.c (perform_access_checks): New function.(perform_deferred_access_checks): Use it.* parser.c (cp_parser_simple_declaration): Adjust call tocp_parser_init_declarator.(cp_parser_type_parameter): Do not defer checks in defaultarguments.(cp_parser_explicit_specialization): Adjust call tocp_parser_single_declaration.(cp_parser_init_declarator): Perform template-parameter accesschecks.(cp_parser_parameter_declaration): Do not defer checks fortemplate parameter default arguments.(cp_parser_template_declaration_after_export): Gather accesschecks for template parameters, and pass them tocp_parser_single_declaration.(cp_parser_template_parameter_access_checks): New function.(cp_parser_single_declaration): Add checks parameter.PR c++/27505* call.c (convert_like_real): Convert bitfields to their declaredtypes when forming an rvalue.* tree.c (convert_bitfield_to_declared_type): New function.(rvalue): Use it.* cp-tree.h (convert_bitfield_to_declare_type): Declare it.2006-05-15 Volker Reichelt <reichelt@igpm.rwth-aachen.de>PR c++/27582* pt.c (any_dependent_template_arguments_p): Return early on invalidargument list.PR c++/27581* search.c (adjust_result_of_qualified_name_lookup): Skip oninvalid context_class.PR c++/27315* pt.c (do_decl_instantiation): Return early on invalid decl.PR c++/27559* pt.c (push_template_decl_real): Return error_mark_node insteadof broken decl.PR c++/27496* pt.c (tsubst_friend_class): Return early on invalid frienddeclarations.2006-05-14 H.J. Lu <hongjiu.lu@intel.com>* Make-lang.in (cp/decl.o): Add dependency on $(TARGET_H).(cp/decl2.o): Likewise.(cp/typeck.o): Likewise.(cp/cvt.o): Likewise.(cp/parser.o): Likewise.(cp/call.o): Replace target.h with $(TARGET_H).2006-05-14 Alexandre Oliva <aoliva@redhat.com>* pt.c (build_non_dependent_expr): Leave ADDR_EXPR ofCOMPONENT_REF alone.2006-05-11 Volker Reichelt <reichelt@igpm.rwth-aachen.de>PR c++/27547* decl.c (copy_fn_p): Return early on non-member functions.2006-05-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>PR c++/27447* decl2.c (build_memfn_type): Skip invalid functions and class types.2006-05-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de>PR c++/27427* pt.c (convert_nontype_argument): Return early on invalid arguments.* pt.c (process_template_parm): Remove superfluous temporary.PR c++/27430* pt.c (process_template_parm): Handle erroneous non-type parameters.PR c++/27423* typeck.c (convert_for_initialization): Skip erroneous types.PR c++/27422* typeck.c (convert_arguments): Return early on args withinvalid types.2006-05-03 Aldy Hernandez <aldyh@redhat.com>PR/21391* typeck.c (build_static_cast_1): Save casted types in used typeshash table.(build_reinterpret_cast_1): Same.* rtti.c (build_dynamic_cast_1): Same.2006-05-04 Jakub Jelinek <jakub@redhat.com>PR c++/27359* parser.c (cp_parser_omp_for_loop): Only callcp_parser_abort_tentative_parse if cp_parser_parse_definitely was notcalled.2006-05-02 Mark Mitchell <mark@codesourcery.com>PR c++/27102* decl.c (grokdeclarator): Robustify checks for defining membersof incomplete types.PR c++/27309* class.c (add_method): Call grok_special_member_properties.* decl.c (grokdeclarator): Don't call it here.(copy_fn_p): A TEMPLATE_DECL is never a copy constructor orassignment operator. Set TYPE_HAS_CONSTURCTOR if DECL is aconstructor.(start_method): Don't call grok_special_member_properties.* method.c (implicitly_declare_fn): Likewise.* pt.c (instantiate_class_template): Likewise.* decl2.c (grokfield): Likewise.2006-05-02 Jakub Jelinek <jakub@redhat.com>PR middle-end/27337* cp-gimplify.c (cxx_omp_privatize_by_reference): New function.* cp-tree.h (cxx_omp_privatize_by_reference): New prototype.* cp-objcp-common.h (LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE): Define.2006-04-30 Mark Mitchell <mark@codesourcery.com>PR c++/27094* pt.c (tsubst_default_argument): Increment function_depth aroundcall to tsubst_expr.* parser.c (cp_parser_parameter_declaration): Likewise.* decl2.c (mark_used): Tidy.2006-04-30 Volker Reichelt <reichelt@igpm.rwth-aachen.de>PR c++/27278* decl.c (grok_op_properties): Skip operators with invalid argswhen checking for class-type or enum-type args.2006-04-29 Volker Reichelt <reichelt@igpm.rwth-aachen.de>PR c++/27279* decl.c (copy_fn_p): Skip functions with invalid first arg.2006-04-27 Mark Mitchell <mark@codesourcery.com>PR c++/27292* tree.c (rvalue): Convert bitfields to their declared types.PR c++/27102* typeck2.c (cxx_incomplete_type_diagnostic): HandleTYPENAME_TYPE.2006-04-24 Mark Mitchell <mark@codesourcery.com>PR c++/27292* typeck.c (decay_conversion): Don't adjust bitfield types.(perform_integral_promotions): Treat bitfield enums as enums, notas short integer types.* tree.c (rvalue): Convert bitfields to their correct types.2006-04-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de>PR c++/19963* class.c (layout_class_type): Skip fields with invalid types.2006-04-23 Mark Mitchell <mark@codesourcery.com>PR c++/26912* cp-tree.h (build_this_parm): Declare.(grok_method_quals): Remove.(build_memfn_type): Declare.(build_artificial_parm): Declare.(do_friend): Remove quals parameter.* decl.c (build_this_parm): New function.(grokfndecl): Use it. Do not pass quals to grokclassfn.(grokdeclarator): Rename quals to memfn_quals. Avoid allocatingunnecessary TYPE_DECLs. Correct qualification of member functiontypes. Tidy.* method.c (implicitly_declare_fn): Use build_this_parm.* friend.c (do_friend): Remove quals parameter.* decl2.c (grok_method_quals): Remove.(build_memfn_type): New function.(build_artificial_parm): Give it external linkage.(grokclassfn): Remove quals parameter. Do not build "this"PARM_DECL here.PR c++/26534* cp-tree.h (is_bitfield_expr_with_lowered_type): New function.* typeck.c (is_bitfield_expr_with_lowered_type): New function.(decay_conversion): Convert bitfield expressions to the correcttype.(build_modify_expr): Remove spurious conversions.* class.c (layout_class_type): Modify the type of bitfields toindicate a limited range.* call.c (standard_conversion): Adjust the type of bitfieldexpressions used in an rvalue context.(build_conditional_expr): Likewise.2006-04-22 Kazu Hirata <kazu@codesourcery.com>* decl.c: Fix comment typos.2006-04-21 Eric Christopher <echristo@apple.com>* decl.c: Fix typo in function name.2006-04-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de>PR c++/26558* parser.c (cp_parser_class_name): Check for invalid typenames.Rearrange code.PR c++/26739* pt.c (tsubst_friend_function): Return early ifpushdecl_namespace_level fails.PR c++/26036* typeck.c (convert_arguments): Return error_mark_node instead oferror_mark_list.* cp-tree.h (error_mark_list): Remove declaration.* decl.c (error_mark_list): Remove definition.(cxx_init_decl_processing): Do not initialize error_mark_list.PR c++/10385* rtti.c (build_dynamic_cast_1): Check for invalid conversionsbefore calling convert_to_reference.* cvt.c (convert_to_reference): Assert that reftype is aREFERENCE_TYPE.2006-04-19 Mark Mitchell <mark@codesourcery.com>PR c++/27102* class.c (currently_open_class): Tidy.* decl.c (grokdeclarator): If we encounter an erroneousdeclarator, assume that we have already issued an error messageand return. Return error_mark_node instead of NULL_TREE in moreplaces. Issue errors about function definitions that do not havea function declarator. Check for complete types for all functiondefinitions.* cp-tree.h (cp_error_declarator): Remove.(currently_open_class): Change return type.* parser.c (cp_parser_id_expression): Add optional_p parameter.(cp_parser_parse_diagnose_invalid_type_name): Adjust calls.(cp_parser_id_expression): Likewise.(cp_parser_unqualified_id): If the name is optional, returnNULL_TREE.(cp_parser_postfix_dot_deref_expression): Adjust calls.(cp_parser_type_parameter): Likewise.(cp_parser_unqualified_id): Likewise.(cp_parser_direct_declarator): Likewise.(cp_parser_declarator_id): Add optional_p parameter.(cp_parser_function_definition_from_specifiers_and_declarator):Assume that start_function indicates failure only if it has issuedan error.(cp_parser_omp_var_list_no_open): Adjust calls.2006-04-17 Janis Johnson <janis187@us.ibm.com>PR c++/26114, c++/26115* typeck.c (cxx_mark_addressable): Restore check for extra_warnings.* class.c (check_field_decls): Ditto.2006-04-17 Volker Reichelt <reichelt@igpm.rwth-aachen.de>* init.c (build_offset_ref): Remove superfluous temporary.2006-04-16 Mark Mitchell <mark@codesourcery.com>PR c++/26365* typeck.c (finish_class_member_access_expr): Robustify2006-04-15 Kazu Hirata <kazu@codesourcery.com>* Make-lang.in (cp/pt.o): Depend on vecprim.h.* pt.c: Include vecprim.h.(inline_parm_levels): Change the type to VEC(int,heap) *.(inline_parm_levels_used): Remove.(maybe_begin_member_template_processing,maybe_end_member_template_processing): Use VEC instead ofVARRAY.* cp/call.c: Fix comment typos.2006-04-12 Mark Mitchell <mark@codesourcery.com>* parser.c (cp_parser_init_declarator): Initialize local variablesaggressively.2006-04-12 Roger Sayle <roger@eyesopen.com>* parser.c (cp_parser_init_declarator): Initialiseis_parenthesized_init to false to avoid compiler warning.2006-04-11 Mark Mitchell <mark@codesourcery.com>* cp-tree.h (build_operator_new_call): Adjust prototype.(build_new_method_call): Likewise.(build_op_delete_call): Likewise.* init.c (build_raw_new_expr): New function.(build_new_1): Pass information as parameters, rather thanbundling it into a NEW_EXPR.(build_new): Adjust accordingly.(build_vec_delete_1): Adjust for changes to build_op_delete_call.(build_delete): Likewise.* decl.c (finish_destructor_body): Likewise.* call.c (build_operator_new_call): Return the allocation functionused.(build_op_delete_call): Take allocation function as parameter.(build_special_member_call): Adjust call to build_new_method_call.(build_new_method_call): Return function called.* pt.c (tsubst_copy_and_build): Adjust call tobuild_new_method_call.* semantics.c (finish_call_expr): Likewise.* parser.c (cp_parser_postfix_expression): Likewise.* typeck2.c (cxx_incomplete_type_diagnostic): Refer to"incomplete", not "undefined", types.PR c++/26295* decl.c (grokdeclarator): Remove namespace-handling code forpointers-to-members.* parser.c (cp_parser_ptr_operator): Check for qualified namesusing namespaces.PR c++/26122* parser.c (cp_parser_init_declarator): Adjust logic for decidingwhether or not to look for a pure-specifier.(cp_parser_member_declaration): Likewise.2006-04-08 Kazu Hirata <kazu@codesourcery.com>* decl2.c, pt.c, semantics.c: Fix comment typos.2006-04-06 Roger Sayle <roger@eyesopen.com>* call.c (null_ptr_cst_p): Add explicit TREE_CONSTANT_OVERFLOW check.2006-04-05 Jason Merrill <jason@redhat.com>* name-lookup.c (push_namespace_with_attribs): Temporarily disabledefault hidden visibility for anonymous namespace.2006-03-29 Roger Sayle <roger@eyesopen.com>PR c++/22494* init.c (build_vec_delete_1): Convert BASE pointer's type tothe base pointer type to avoid a type mismatch in the EQ_EXPR.2006-03-24 Carlos O'Donell <carlos@codesourcery.com>* search.c (maybe_suppress_debug_info): Ifflag_emit_class_debug_always then don't suppress.2006-03-22 Jason Merrill <jason@redhat.com>* name-lookup.c (push_namespace_with_attribs): Only apply hiddenvisibility to anonymous namespaces if HAVE_GAS_HIDDEN.2006-03-21 Jakub Jelinek <jakub@redhat.com>PR c++/26691* cp-gimplify.c (cxx_omp_clause_apply_fn): Handle default arguments.2006-03-21 Jason Merrill <jason@redhat.com>PR c++/21581* parser.c (cp_parser_declaration): Support attributes onanonymous namespaces.* name-lookup.c (push_namespace_with_attribs): Anonymousnamespaces default to hidden visibility.2006-03-20 Jason Merrill <jason@redhat.com>PR c++/21764, c++/19238* decl.c (cp_finish_decl): Call determine_visibility later.(start_preparsed_function): Likewise.* cp-tree.h (CP_TYPE_CONTEXT, TYPE_NAMESPACE_SCOPE_P): New macros.(TYPE_CLASS_SCOPE_P, TYPE_FUNCTION_SCOPE_P): New macros.* name-lookup.h (struct cp_binding_level): Add has_visibilitybitfield.* name-lookup.c: Include c-pragma.h.(push_namespace_with_attribs): Split out from push_namespace.Push visibility if appropriate. Set TREE_PUBLIC on namespaces.(leave_scope): Pop visibility if appropriate.* decl2.c (determine_visibility_from_class): Split out from...(determine_visibility): ...here. Handle function scope andnested classes.(import_export_decl): Move visibility handling todetermine_visibility_from_class.* parser.c (cp_parser_declaration, cp_parser_namespace_name): Allowattributes on namespace declarations.2006-03-15 Volker Reichelt <reichelt@igpm.rwth-aachen.de>PR c++/6634* decl.c (grokdeclarator): Do not accept long long double.Reorganize checks for invalid (combinations of) type modifiers.Quote modifiers in messages.2006-03-09 Jason Merrill <jason@redhat.com>PR c++/16387, c++/16389* typeck.c (cxx_alignof_expr, cxx_sizeof_expr): New functions.(cxx_sizeof_or_alignof_expr): Split out from here.2006-03-09 Diego Novillo <dnovillo@redhat.com>Merge from gomp-20050608-branch2006-02-02 Diego Novillo <dnovillo@redhat.com>* decl.c (pop_labels_1): Use appropriate pointer casting.(poplevel_named_label_1): Likewise.(named_label_entry_hash): Likewise.(named_label_entry_eq): Likewise.(check_goto): Likewise.(define_label): Likewise.2006-01-26 Diego Novillo <dnovillo@redhat.com>* cp-tree.h (CP_OMP_CLAUSE_INFO): Use TREE_TYPE insteadof TREE_BLOCK.* pt.c: Use OMP_CLAUSE_CODE and OMP_CLAUSE_OPERANDinstead of TREE_CODE/TREE_OPERAND.* semantics.c: Likewise.* parser.c: Likewise.2005-11-10 Diego Novillo <dnovillo@redhat.com>* parser.c (cp_parser_omp_threadprivate): Emit diagnostic iftarget does not support TLS.2005-11-09 Jakub Jelinek <jakub@redhat.com>* decl.c (redeclaration_error_message): Don't error aboutDECL_THREAD_LOCAL_P mismatches if CP_DECL_THREADPRIVATE_P(olddecl).2005-11-08 Jakub Jelinek <jakub@redhat.com>PR c++/24735* semantics.c (finish_omp_barrier, finish_omp_flush): Newfunctions.* parser.c (cp_parser_omp_barrier): Call finish_omp_barrier.(cp_parser_omp_flush): Call finish_omp_flush.* cp-tree.h (finish_omp_barrier, finish_omp_flush): Newprototypes.PR c++/24734* pt.c (tsubst_expr): Handle OMP_MASTER and OMP_ORDERED.2005-11-03 Jakub Jelinek <jakub@redhat.com>* semantics.c (finish_omp_threadprivate): Error on class-scopevariables.2005-11-02 Jakub Jelinek <jakub@redhat.com>* parser.c (cp_parser_omp_all_clauses): If some clausetype is not allowed, don't remove just one of theclauses, but all clauses added in that loop round.* semantics.c (finish_omp_clauses): Fix functioncomment. Don't handle non-const or mutable specially,as const and not mutable is predetermined shared andthat leads to double error. Don't ICE if copyin var isPARM_DECL.PR c++/24613* parser.c (cp_parser_pragma): DiagnosePRAGMA_OMP_SECTION outside of PRAGMA_OMP_SECTIONSconstruct.* semantics.c (finish_omp_threadprivate): Error if Vis automatic variable or has incomplete type.2005-11-01 Diego Novillo <dnovillo@redhat.com>* parser.c (cp_parser_omp_all_clauses): UseOMP_CLAUSE_CHAIN instead of TREE_CHAIN.2005-11-01 Diego Novillo <dnovillo@redhat.com>* parser.c (cp_parser_omp_all_clauses): When emitting anerror message, remove the invalid clause from the list.2005-10-31 Diego Novillo <dnovillo@redhat.com>* parser.c (cp_parser_omp_parallel): Do not allow 'nowait' incombined parallel+workshare directives.2005-10-31 Richard Henderson <rth@redhat.com>* cp-objcp-common.h (LANG_HOOKS_OMP_CLAUSE_DTOR):Use cxx_omp_clause_dtor.* cp-tree.h (CP_OMP_CLAUSE_INFO): New.(cxx_omp_clause_dtor): New.* cp-gimplify.c (cxx_omp_clause_apply_fn): New.(cxx_omp_clause_default_ctor): Use it.(cxx_omp_clause_copy_ctor, cxx_omp_clause_assign_op):Likewise.(cxx_omp_clause_dtor): New.* semantics.c (finish_omp_clauses): Rewrite cdtorchecking to fill in CP_OMP_CLAUSE_INFO. Don'tspecialcase LASTPRIVATE for removal.(cxx_omp_clause_default_ctor, cxx_omp_clause_copy_ctor,cxx_omp_clause_assign_op): Move to cp-gimplify.c.2005-10-28 Jakub Jelinek <jakub@redhat.com>* semantics.c (finish_omp_threadprivate): IfDECL_RTL_SET_P, call make_decl_rtl again so thatencode_section_info can update SYMBOL_REF's flags.2005-10-26 Jakub Jelinek <jakub@redhat.com>* semantics.c (finish_omp_for): Don't segfault if CONDor INCR is NULL. If not calling c_finish_omp_forright away and one of COND and INCR is NULL, issueerror and don't expand anything.PR c++/24512* cp-tree.h (finish_omp_for): Add PRE_BODY argument.* semantics.c (finish_omp_for): Likewise. SetOMP_FOR_PRE_BODY to PRE_BODY if deferring, add itinto the current statement list if not processingtemplate decl or pass it to c_finish_omp_for.* parser.c (cp_parser_omp_for_loop): Expand optional DECL_EXPRsinto PRE_BODY statement list. Pass it to finish_omp_for.* pt.c (tsubst_expr) <case OMP_FOR>: tsubst_expr alsoOMP_FOR_PRE_BODY into PRE_BODY stmt list, pass it tofinish_omp_for. Put all the statements into sk_ompscope.2005-10-25 Jakub Jelinek <jakub@redhat.com>PR c++/24516* parser.c (struct cp_parser): Rename in_iteration_statementfield to in_statement.(IN_SWITCH_STMT, IN_ITERATION_STMT): Define.(IN_OMP_BLOCK, IN_OMP_FOR): Change values.(cp_parser_new, cp_parser_begin_omp_structured_block,cp_parser_end_omp_structured_block,cp_parser_omp_for_loop): Adjust forin_iteration_statement renaming.(cp_parser_selection_statement): Saveparser->in_iteration, or it temporarily withIN_SWITCH_STMT for thecp_parser_implicitly_scoped_statement call.(cp_parser_iteration_statement): Adjust forin_iteration_statement renaming. UseIN_ITERATION_STMT rather than true.(cp_parser_jump_statement): Adjust forin_iteration_statement renaming and new values. Don'terror on break in a switch statement within OMP_FOR orOpenMP structured block.PR c++/24513* parser.c (cp_parser_cache_group): Don't stop if nexttoken is CPP_PRAGMA_EOL and end is CPP_PRAGMA_EOL aswell. If current token is CPP_PRAGMA, consumeeverything until CPP_PRAGMA_EOL inclusive.2005-10-24 Jakub Jelinek <jakub@redhat.com>PR c++/24502* semantics.c (finish_omp_for): Handle MODOP_EXPR inaddition to MODIFY_EXPR.2005-10-23 Richard Henderson <rth@redhat.com>* cp-gimplify.c (struct cp_gimplify_ctx): Remove.(bc_label): New.(begin_bc_block, finish_bc_block): Use it.(push_context, pop_context): Remove.(cp_genericize): Don't use them. Assert bc_label is null.* semantics.c (finish_omp_clauses): Create a fake dataelement of TYPE for probing ctors.2005-10-23 Richard Henderson <rth@redhat.com>* cp-objcp-common.h (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): New.(LANG_HOOKS_OMP_CLAUSE_COPY_CTOR): New.(LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP): New.(LANG_HOOKS_OMP_CLAUSE_DTOR): New.* semantics.c (finish_omp_clauses): Look througharrays when looking up special member calls. Alsoremove FIRSTPRIVATE when LASTPRIVATE fails.(cxx_omp_clause_default_ctor, cxx_omp_clause_copy_ctor): New.(cxx_omp_clause_assign_op): New.* cp-tree.h: Declare them.2005-10-21 Richard Henderson <rth@redhat.com>* decl.c (check_previous_goto_1): Return false if error.(check_switch_goto): Likewise.(finish_case_label): Don't emit the case label on error.* parser.c (struct cp_parser): Revertin_switch_statement_p changes.(cp_parser_labeled_statement,cp_parser_selection_statement): Likewise.(cp_parser_begin_omp_structured_block): Don't save...(cp_parser_end_omp_structured_block): or restorein_switch_statement_p.2005-10-21 Richard Henderson <rth@redhat.com>* semantics.c (finish_omp_threadprivate): Setdecl_flags.u2sel when necessary.2005-10-21 Richard Henderson <rth@redhat.com>* decl.c (poplevel_named_label_1): Restore creation of thebad_decls list.(decl_jump_unsafe): Check for error_mark_node types.(check_goto): Don't check cdtor_label. Don't use identify_goto.* semantics.c (finish_return_stmt): Do check_omp_return beforeconverting to cdtor_label goto.2005-10-21 Richard Henderson <rth@redhat.com>PR c++/24451* decl.c (check_omp_return): Return false on error.* cp-tree.h (check_omp_return): Update decl.* semantics.c (finish_return_stmt): Avoid addingreturn on error.2005-10-21 Richard Henderson <rth@redhat.com>* cp-tree.h (struct language_function): Removex_named_label_uses.Change x_named_labels to a hashtable.(check_omp_return): Declare.* decl.c (struct named_label_use_entry): Rename fromnamed_label_use_list. Remove label_decl.(struct named_label_entry): Rename fromnamed_label_list. Remove old_value and next. Changein_try_scope and in_catch_scope to bool. Addin_omp_scope.(pop_labels_1): New.(pop_labels): Use it.(pop_local_label, poplevel_named_label_1): New.(poplevel): Use them.(named_label_entry_hash, named_label_entry_eq): New.(make_label_decl): Create named_labels. Move labelcreation bits from lookup_label.(declare_local_label): Tidy.(identify_goto): Split out from ...(check_previous_goto_1): Add exited_omp argument.Handle omp scopes.(use_label): Merge into...(check_goto): ... here. Handle omp scopes.(check_omp_return): New.(check_previous_gotos): Merge into...(define_label): ... here.(save_function_data): Remove x_named_label_uses reference.(finish_function): Likewise.* name-lookup.h (sk_omp): New.* name-lookup.c (begin_scope): Handle it.* parser.c (cp_parser_omp_for): Don't create extracompound stmt.(cp_parser_omp_sections): Likewise.* semantics.c (finish_return_stmt): Call check_omp_return.(begin_omp_structured_block): Use sk_omp.(finish_omp_structured_block): Use do_poplevel. Don't build aMUST_NOT_THROW expression here.(begin_omp_parallel, finish_omp_parallel): Don't create extracompound statements.2005-10-21 Diego Novillo <dnovillo@redhat.com>PR 24455* cp/cp-tree.h (struct lang_decl_flags): Add fieldthreadprivate_p.(CP_DECL_IS_THREADPRIVATE): Define.* cp/semantics.c (finish_omp_threadprivate): Set. Donot error out if CP_DECL_IS_THREADPRIVATE is setalready.* cp/decl.c (duplicate_decls): MergeCP_DECL_THREADPRIVATE_P.2005-10-20 Richard Henderson <rth@redhat.com>* cp-gimplify.c (cp_gimplify_omp_for): New.(cp_gimplify_expr): Call it.* cp-tree.h (OMP_FOR_GIMPLIFYING_P): New.* parser.c (struct cp_parser): Renamein_iteration_statement_p to in_iteration_statement andchange to unsigned char. Similarly within_switch_statement. Update all users.(IN_OMP_BLOCK, IN_OMP_FOR): New.(cp_parser_labeled_statement): Diagnose case labelsbinding closer to an openmp block nested than theswitch.(cp_parser_jump_statement): Diagnose break andcontinue labels binding closer to an openmp block thanan iteration or switch.(cp_parser_omp_for_loop): Mark in_iteration_statementfor an omp for.(cp_parser_begin_omp_structured_block): New.(cp_parser_end_omp_structured_block): New.(cp_parser_omp_structured_block): Use them.(cp_parser_omp_for, cp_parser_omp_sections_scope): Likewise.(cp_parser_omp_parallel): Likewise.2005-10-20 Richard Henderson <rth@redhat.com>* semantics.c (begin_omp_structured_block): New.(finish_omp_structured_block): New.(begin_omp_parallel, finish_omp_parallel): Use them.* parser.c (cp_parser_omp_structured_block): Likewise.(cp_parser_omp_for): Likewise.(cp_parser_omp_sections_scope): Likewise.* cp-tree.h: Declare them.2005-10-20 Richard Henderson <rth@redhat.com>* parser.c (cp_parser_omp_master): Return the statement.(cp_parser_omp_ordered): Likewise.(cp_parser_omp_construct): Set the locus for them.2005-10-19 Richard Henderson <rth@redhat.com>* semantics.c (finish_omp_atomic): Revert touses_template_parms.2005-10-19 Richard Henderson <rth@redhat.com>* semantics.c (finish_omp_clauses): AvoidDECL_THREAD_LOCAL_P on a PARM_DECL. Remove somestub asserts guaranteed to fail.2005-10-19 Richard Henderson <rth@redhat.com>* cp-tree.h (OMP_ATOMIC_DEPENDENT_P, OMP_ATOMIC_CODE): New.(finish_omp_clauses, finish_omp_for, finish_omp_atomic): New.* parser.c (cp_parser_omp_clause_copyin): Remove.(cp_parser_omp_all_clauses): Use cp_parser_omp_var_list instead.Call finish_omp_clauses.(cp_parser_omp_clause_if): Don't do error checking here.(cp_parser_omp_clause_num_threads): Likewise.(cp_parser_omp_clause_schedule): Likewise.(cp_parser_omp_atomic): Use finish_omp_atomic.(cp_parser_omp_for_loop): Don't discard DECL_EXPR.Don't decompose assignment statment here. Usefinish_omp_for.* pt.c (tsubst_omp_clauses): New.(tsubst_expr): Handle OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,OMP_SINGLE, OMP_SECTION, OMP_CRITICAL, OMP_ATOMIC.* semantics.c (finish_omp_clauses): New.(begin_omp_parallel, finish_omp_parallel): Know Less about theinternals of the stmt_list stack.(finish_omp_for, finish_omp_atomic): New.2005-10-18 Jakub Jelinek <jakub@redhat.com>* semantics.c (cxx_omp_predetermined_sharing): New function.* cp-tree.h (cxx_omp_predetermined_sharing): New prototype.* cp-objcp-common.h(LANG_HOOKS_OMP_PREDETERMINED_SHARING): Redefine.2005-10-18 Richard Henderson <rth@redhat.com>* parser.c (cp_parser_omp_single): Use make_node and accessorsinstead of build.2005-10-17 Richard Henderson <rth@redhat.com>* parser.c (cp_parser_omp_for_loop): Handle declarations.2005-10-12 Richard Henderson <rth@redhat.com>* Make-lang.in (CXX_C_OBJS): Add c-omp.o.* cp-tree.h (begin_omp_parallel, finish_omp_parallel): Declare.(finish_omp_threadprivate): Declare.* parser.c (struct cp_lexer): Add in_pragma.(cp_lexer_consume_token): Don't consume a PRAGMA_EOLwhen in_pragma.(cp_parser_skip_to_closing_parenthesis): Stop at PRAGMA_EOL.(cp_parser_skip_to_end_of_statement): Likewise.(cp_parser_skip_to_end_of_block_or_statement): Likewise.(cp_parser_skip_to_closing_brace): Likewise.(cp_parser_skip_to_pragma_eol): Reset in_pragma.(cp_parser_require_pragma_eol): New.(cp_parser_statement): Add in_compound argument;update all callers.Restart if a non-statement pragma seen outside acompound.(cp_parser_statement_seq_opt): Stop at PRAGMA_EOL.(cp_parser_declaration_seq_opt): Likewise.(cp_parser_member_specification_opt): Likewise.(cp_parser_function_definition_after_decl): Likewise.(cp_parser_skip_until_found): Likewise.(cp_parser_cache_group): Likewise.(enum pragma_omp_clause, cp_parser_omp_clause_name,check_no_duplicate_clause,cp_parser_omp_var_list_no_open,cp_parser_omp_var_list, cp_parser_omp_clause_copyin,cp_parser_omp_clause_default, cp_parser_omp_clause_if,cp_parser_omp_clause_nowait,cp_parser_omp_clause_num_threads,cp_parser_omp_clause_ordered,cp_parser_omp_clause_reduction,cp_parser_omp_clause_schedule,cp_parser_omp_all_clauses,cp_parser_omp_structured_block, cp_parser_omp_atomic,cp_parser_omp_barrier, cp_parser_omp_critical,cp_parser_omp_flush, cp_parser_omp_for_loop,cp_parser_omp_for, cp_parser_omp_master,cp_parser_omp_ordered, cp_parser_omp_sections_scope,cp_parser_omp_sections, cp_parser_omp_parallel,cp_parser_omp_single, cp_parser_omp_threadprivate,cp_parser_omp_construct): New.(cp_parser_pragma): Handle OpenMP pragmas.* semantics.c (finish_omp_threadprivate): New.(begin_omp_parallel, finish_omp_parallel): New.2005-10-11 Richard Henderson <rth@redhat.com>* parser.c (struct cp_token): Add pragma_kind.(eof_token): Initialize it.(cp_lexer_handle_pragma): Remove.(cp_parser_initial_pragma): New.(cp_lexer_new_main): Use it.(cp_lexer_get_preprocessor_token): Initialize pragma_kind.(cp_lexer_print_token): Don't handle CPP_PRAGMA.(cp_parser_skip_to_pragma_eol): New.(cp_parser_error): Use it.(pragma_lex): New.2005-10-09 Richard Henderson <rth@redhat.com>* lex.c (parse_strconst_pragma): Update for c_lex name change.(handle_pragma_java_exceptions): Likewise.* parser.c (cp_lexer_new_main): Likewise.2005-10-06 Richard Henderson <rth@redhat.com>* parser.c (cp_lexer_new_main): Comment out defer_pragmas.(cp_lexer_handle_pragma): Comment outcpp_handle_deferred_pragma.2005-10-01 Richard Henderson <rth@redhat.com>* name-lookup.c (lookup_name): Remove prefer_type argument.(lookup_name_prefer_type): New function.* name-lookup.h (lookup_name_prefer_type): Declare it.* decl.c (lookup_and_check_tag): Use it.* pt.c (tsubst_friend_class): Likewise. Update forlookup_name change.(lookup_template_class, tsubst_copy_and_build): Likewise.2006-03-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de>PR c++/15759* tree.c (bot_manip): Don't call mark_used.2006-03-02 Mike Stump <mrs@apple.com>* decl2.c (import_export_decl): Remove redundant call totargetm.cxx.key_method_may_be_inline ().2006-03-02 Richard Sandiford <richard@codesourcery.com>* decl.c (start_decl): Use have_global_bss_p when decidingwhether to make the decl common.2006-03-01 Mike Stump <mrs@apple.com>PR darwin/25908* decl2.c (import_export_decl): Fix ABI breakage on darwin.2006-02-24 Geoffrey Keating <geoffk@apple.com>* except.c (expand_start_catch_block): Handleflag_use_cxa_get_exception_ptr.2006-02-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>PR c++/26291* decl.c (grok_op_properties): Check for ellipsis in arguments ofoperators.2006-02-20 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>* Make-lang.in (C++): Remove.(.PHONY): Remove C++.2006-02-18 Mark Mitchell <mark@codesourcery.com>PR c++/26266* cp-tree.h (cp_finish_decl): Adjust declaration.(grokbitfield): Likewise.(finish_static_data_member_decl): Likewise.* init.c (constant_value_1): Ensure processing_template_decl whenfolding non-dependent initializers for static data members ofdependent types. Return error_mark_node for erroneousinitailizers.* class.c (get_vtable_decl): Use finish_decl, not cp_finish_decl.* decl.c (cp_make_fname_decl): Adjust call to cp_finish_decl.(cp_finish_decl): Add init_const_expr_p parameter. SetDECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P here.(finish_decl): Adjust call to cp_finish_decl.(compute_array_index_type): Robustify.(start_method): Use finish_decl, not cp_finish_decl.* rtti.c (emit_tinfo_decl): Likewise.* except.c (initialize_handler_parm): Adjust call tocp_finish_decl.(expand_start_catch_block): Likewise.* cvt.c (build_up_reference): Adjust call to cp_finish_decl.* pt.c (instantiate_class_template): Adjust call tofinish_static_data_member_decl.(tsubst_expr): Use finish_decl, not cp_finish_decl.(instantiate_decl): Adjust call to cp_finish_decl.* name-lookup.c (pushdecl_top_level_1): Use finish_decl, notcp_finish_decl.* decl2.c (finish_static_data_member_decl): Add init_const_expr_pparameter.(grokfield): Likewise.* parser.c (cp_parser_condition): Check for constant initializers.(cp_parser_init_declarator): Adjust calls to grokfield andcp_finish_decl. Don't setDECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P here.(cp_parser_member_declaration): Likewise.(cp_parser_objc_class_ivars): Likewise.2006-02-14 Volker Reichelt <reichelt@igpm.rwth-aachen.de>* call.c (standard_conversion): Return NULL instead of 0.(build_user_type_conversion_1): Likewise.(tourney): Likewise.* decl.c (redeclaration_error_message): Likewise.* error.c (language_to_string): Likewise.2006-02-13 Volker Reichelt <reichelt@igpm.rwth-aachen.de>* cp-tree.h (warn_hidden): Remove prototype.* class.c (warn_hidden): Make static.* cp-tree.h (build_type_conversion): Remove prototype.* cvt.c (build_type_conversion): Add prototype, make static.* cp-tree.h (push_tinst_level): Remove prototype.(pop_tinst_level): Likewise.* pt.c (push_tinst_level): Add prototype, make static.(pop_tinst_level): Likewise.2006-02-13 Volker Reichelt <reichelt@igpm.rwth-aachen.de>* decl.c (grokdeclarator): Return NULL_TREE instead of 0.* typeck.c (unary_complex_lvalue): Likewise.2006-02-13 Volker Reichelt <reichelt@igpm.rwth-aachen.de>* lex.c (parse_strconst_pragma): Return error_mark_node instead of"(tree)-1" to indicate failure. Simplify.(handle_pragma_interface): Test for error_mark_node instead of"(tree)-1".(handle_pragma_implementation): Likewise.2006-02-13 Volker Reichelt <reichelt@igpm.rwth-aachen.de>PR c++/26151* parser.c (cp_parser_decl_specifier_seq): Check for duplicatedecl-specifiers. Remove extra check for duplicate 'friend'.* decl.c (grokdeclarator): Remove check for duplicatedecl-specifiers. Set longlong together with long_p.2006-02-12 Jason Merrill <jason@redhat.com>PR c++/24996* except.c (build_throw): Add a CLEANUP_POINT_EXPR inside theTRY_CATCH_EXPR or MUST_NOT_THROW_EXPR.2006-02-10 Volker Reichelt <reichelt@igpm.rwth-aachen.de>* class.c (debug_class): Remove extern.(debug_thunks): Likewise.2006-02-09 Gabriel Dos Reis <gdr@integrable-solutions.net>* typeck.c (string_conv_p): Don't test for flag_const_strings.2006-02-08 Jason Merrill <jason@redhat.com>PR c++/25979* cp-gimplify.c (cp_gimplify_expr): Don't callcp_gimplify_init_expr for MODIFY_EXPRs.* typeck2.c (split_nonconstant_init_1): Use INIT_EXPR.2006-02-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>PR c++/26071* decl.c (grokdeclarator): Set dname also for destructor.PR c++/26070* decl.c (grokdeclarator): Clear storage_class together with staticp.2006-02-07 Gabriel Dos Reis <gdr@integrable-solutions.net>* cp-tree.h (tf_warning_or_error): Renamed from tf_warn_or_error.(cp_build_qualified_type): Propogate renaming.* call.c (convert_like_real): Likewise.* cvt.c (cp_convert_to_pointer, convert_to_reference): Likewise.* decl.c (make_typename_type, grokdeclarator): Likewise.* pt.c (tsubst_friend_function, instantiate_class_template,tsubst_default_argument, instantiate_decl,tsubst_initializer_list, tsubst_enum): Likewise.* semantics.c (finish_template_type): Likewise.* typeck.c (build_ptrmemfunc, convert_for_assignment): Likewise.2006-02-07 Dirk Mueller <dmueller@suse.com>* typeck.c (build_binary_op): Annotate div-by-zerowarnings to make -Wno-div-by-zero have an effect.2006-02-07 Mark Mitchell <mark@codesourcery.com>PR c++/9737* pt.c (coerce_template_template_parms): Do not templates withexcess default arguments to match template template parameterswith fewer parameters.(coerce_template_parms): Add use_default_args parameter; usedefault arguments only when true.(lookup_template_class): Adjust call to coerce_template_parms.(fn_type_unification): Likewise.(unify): Likewise.(get_bindings): Likewise.(dependent_type_p): Add assertions.2006-02-06 Roger Sayle <roger@eyesopen.com>* decl.c (grokdeclarator): Don't bother checking for CHAR_TYPE.* rtti.c (typeinfo_in_lib_p): Likewise.* cp-tree.h (INTEGRAL_CODE_P, CP_INTEGRAL_TYPE_P): Likewise.* name-lookup.c (arg_assoc_type): Likewise.2006-02-04 Gabriel Dos Reis <gdr@integrable-solutions.net>* cp-tree.h (tf_warn_or_error): New substituion flag.(cp_build_qualified_type): Use it.* call.c (convert_like_real): Likewise.* cvt.c (cp_convert_to_pointer): Likewise.(convert_to_reference): Likewise.* decl.c (make_typename_type): Likewise.(grokdeclarator): Likewise.* pt.c (tsubst_friend_function): Likewise.(tsubst_friend_class): Likewise.(instantiate_class_template): Likewise.(tsubst_default_argument): Likewise.(instantiate_decl): Likewise.(tsubst_initializer_list): Likewise.(tsubst_enum): Likewise.* semantics.c (finish_template_type): Likewise.* typeck.c (build_ptrmemfunc): Likewise.(convert_for_assignment): Likewise.2006-02-03 Lee Millward <lee.millward@gmail.com>* typeck.c (string_conv_p): Pass appropiateOPT_Wxxxx values when calling warning().(build_array_ref, cxx_mark_addressable): Likewise.(check_return_expr): Likewise.* init.c (perform_member_init): Likewise.(sort_mem_initializers, emit_mem_initializers): Likewise.* class.c (check_field_decls): Likewise.(warn_about_ambiguous_bases): Likewise.* decl.c (pop_label, poplevel): Likewise.(duplicate_decls, grok_op_properties): Likewise.(start_preparsed_function, finish_function): Likewise.* name-lookup.c (pushdecl_maybe_friend): Likewise.(pushdecl_maybe_friend): Likewise.* parser.c (cp_parser_warn_min_max): Likewise.(cp_parser_cast_expression): Likewise.* method.c (lazily_declare_fn): Likewise.* cvt.c (convert_to_void): Likewise.* mangle.c (finish_mangling): Likewise.* cp-gimplify.c (gimplify_expr_stmt): Likewise.2006-02-03 Mark Mitchell <mark@codesourcery.com>* name-lookup.c (do_class_using_decl): Use IDENTIFIER_TYPENAME_P,not IDENTIFIER_OPNAME_P.2006-01-31 Mark Mitchell <mark@codesourcery.com>PR c++/25342* cp-tree.h (DECL_TEMPLATE_SPECIALIZATIONS): Revisedocumentation.* pt.c (determine_specialization): Use INNERMOST_TEMPLATE_PARMS,not TREE_VALUE.(instantiate_class_template): Simplify.(verify_class_unification): Remove.(unify): Document parameters. Use INNERMOST_TEMPLATE_ARGS topermit multiple levels of template arguments.(more_specialized_class): Simplify.(get_class_bindings): Pass full arguments to unify. Foldverify_class_unification into this function. Return fullarguments.(most_specialized_class): Adjust for changes toget_class_bindings. Issue errors here for ambiguity. Return thefully deduced arguments for the most specialized class, inaddition to the partial specialization.2006-01-31 Ben Elliston <bje@au.ibm.com>* mangle.c: Comment fix.2006-01-29 Gabriel Dos Reis <gdr@integrable-solutions.net>* Make-lang.in (cp-warn): Include CXX_COMPAT_WARN.* repo.c (extract_string, afgets): Use cast when converting fromvoid *.2006-01-29 Gabriel Dos Reis <gdr@integrable-solutions.net>* call.c (alloc_conversion): Use cast when converting from void *.(alloc_conversions): Likewise.(add_candidate): Likewise.(print_z_candidates): Likewise.(add_warning): Likewise.* pt.c (retrieve_local_specialization): Likewise.(process_partial_specialization): Likewise.(mangle_class_name_for_template): Likewise.(tsubst_template_args): Likewise.* typeck2.c (pat_calc_hash): Likewise.(pat_compare): Likewise.(abstract_virtuals_error): Likewise.* class.c (method_name_cmp): Likewise.(resort_method_name_cmp): Likewise.(get_vfield_name): Likewise.* decl2.c (generate_ctor_and_dtor_functions_for_priority): Likewise.* lex.c (init_reswords): Likewise.* rtti.c (create_pseudo_type_info): Likewise.* search.c (dfs_lookup_base): Likewise.(dfs_dcast_hint_pre): Likewise.(dfs_dcast_hint_post): Likewise.* tree.c (hash_tree_cons): Likewise.* repo.c (extract_string): Likewise.(afgets): Likewise.* cp-objcp-common.c (decl_shadowed_for_var_lookup): Likewise.* g++spec.c (lang_specific_driver): Likewise.2006-01-28 Gabriel Dos Reis <gdr@integrable-solutions.net>* call.c (joust): Pass option code to warning. Use inform forexplanation.* class.c (check_bases): Likewise.(maybe_warn_about_overly_private_class): Likewise.(check_field_decls): Likewise.(layout_empty_base): Likewise.(layout_virtual_bases): Likewise.(layout_class_type): Likewise.2006-01-28 Mark Mitchell <mark@codesourcery.com>PR c++/25999* decl.c (start_preparsed_function): Call maybe_apply_pragma_weakhere, not ...(start_function): ... here.2006-01-28 Mark Mitchell <mark@codesourcery.com>PR c++/25855* class.c (resolve_address_of_overloaded_function): Adjust use ofreturn value from most_specialized_instantiation.* pt.c (determine_specialization): Avoid multiple calls toget_bindings.(most_specialized_instantiation): When a tie occurs, set thecurrent presumed champion to the next template. Return theTREE_LIST node containing the template, rather than the templateitself.(most_specialized): Remove.* name-lookup.c (push_overloaded_decl): When duplicate_declsindicates a failed redeclaration, report that to callers.2006-01-26 Jason Merrill <jason@redhat.com>PR c++/16021* name-lookup.c (parse_using_directive): Require strong using toname a nested namespace.2006-01-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>Revert:* cp-tree.h (do_poplevel): Remove prototype.* semantics.c (do_poplevel): Add prototype. Make static.Revert:* cp-tree.h (default_conversion): Remove prototype.* typeck.c (default_conversion): Make static.2006-01-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>* cp-tree.h (get_primary_binfo): Remove prototype.(push_using_decl): Likewise.(current_template_args): Likewise.(more_specialized_class): Likewise.(mark_class_instantiated): Likewise.(default_conversion): Likewise.(pfn_from_ptrmemfunc): Likewise.* class.c (get_primary_binfo): Add prototype, make static, simplify.* name-lookup.c (push_using_decl): Make static.* pt.c (current_template_args): Likewise.(more_specialized_class): Likewise.(mark_class_instantiated): Likewise.* typeck.c (default_conversion): Make static.(pfn_from_ptrmemfunc): Add prototype, make static.2006-01-24 Dirk Mueller <dmueller@suse.de>* typeck.c (build_binary_op): Use OPT_Wfloat_equal in warning().2006-01-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de>PR c++/25552* parser.c (cp_parser_unqualified_id): Check that destructor nameand scope match.* call.c (check_dtor_name): Do not expect a BIT_NOT_EXPR.Adjust comment. Return early if possible.Use same_type_p to compare types.* typeck.c (lookup_destructor): Adjust call to check_dtor_name.2006-01-24 Mark Mitchell <mark@codesourcery.com>* semantics.c: Remove outdated comment.2006-01-23 Volker Reichelt <reichelt@igpm.rwth-aachen.de>* cp-tree.h (do_poplevel): Remove prototype.* semantics.c (do_poplevel): Add prototype. Make static.* cp-tree.h (original_type): Remove prototype.* typeck.c (original_type): Make static.* cp-tree.h (declare_global_var): Remove prototype.* decl.c (declare_global_var): Make static.* cp-tree.h (implicitly_declare_fn): Remove prototype.* method.c (implicitly_declare_fn): Make static.* cp-tree.h (fold_decl_constant_value): Remove prototype.* pt.c (fold_decl_constant_value): Make static.* cp-tree.h (build_x_delete): Remove prototype.* init.c (build_vec_delete_1): Call build_op_delete_call directlyand not via build_x_delete.(build_x_delete): Remove.* cp-tree.h (get_vtt_name): Remove prototype.* class.c (get_vtt_name): Remove.(build_vtt): Call mangle_vtt_for_type instead of get_vtt_name.2006-01-22 Gabriel Dos Reis <gdr@integrable-solutions.net>* rtti.c (build_dynamic_cast): Fix comment.2006-01-22 Gabriel Dos Reis <gdr@integrable-solutions.net>PR c++/10891* rtti.c (build_dynamic_cast): Reject dynamic_cast use if-fno-rtti.2006-01-21 Mark Mitchell <mark@codesourcery.com>PR c++/25895* class.c (build_base_path): Generate a NOP_EXPR instead of aCOMPONENT_REF if the base and derived classes are at the sameaddress.PR c++/25856* decl.c (begin_destructor_body): Robustify.PR c++/25858* parser.c (cp_parser_direct_declarator): Robustify.2006-01-20 Volker Reichelt <reichelt@igpm.rwth-aachen.de>* parser.c (cp_lexer_next_token_is_keyword): Simplify.* parser.c (clear_decl_specs): Remove prototype.* parser.c (cp_parser_expression_fn): Remove.* call.c (add_builtin_candidates): Remove superfluous return.* name-lookup.c (do_toplevel_using_decl): Likewise.* parser.c (cp_parser_type_specifier_seq): Likewise.(cp_parser_save_default_args): Likewise.2006-01-20 Dirk Mueller <dmueller@suse.com>PR c++/5520* semantics.c (finish_if_stmt): Call empty_body_warning.* parser.c (cp_parser_implicitly_scoped_statement):Mark empty statement with an empty stmt.2006-01-19 Mark Mitchell <mark@codesourcery.com>PR c++/22136* name-lookup.c (do_class_using_decl): Don't try to look up baseclasses in templates with dependent base types.2006-01-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de>PR c++/25854* pt.c (maybe_process_partial_specialization): Return early onerror_mark_node.2006-01-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de>PR c++/16829* decl.c (start_preparsed_function): Check default argumentsunconditionally.* name-lookup.c (pushdecl_maybe_friend): Check default argumentsof all functions and function templates.* parser.c (cp_parser_late_parsing_default_args): Check defaultarguments.* decl2.c (check_default_args): Set missing default arguments toerror_mark_node.2006-01-18 Mark Mitchell <mark@codesourcery.com>PR c++/25836* cp-tree.h (push_class_stack): New function.(pop_class_stack): Likewise.* class.c (class_stack_node): Add hidden field.(pushclass): Clear it.(push_class_stack): New function.(pop_class_stack): Likewise.(currently_open_class): Ignore hidden classes.(currently_open_derived_class): Likewise.* name-lookup.c (push_to_top_level): Call push_class_stack.(pop_from_top_level): Call pop_class_stack.2006-01-18 Kazu Hirata <kazu@codesourcery.com>* tree.c (find_tree_t, find_tree): Remove.* cp-tree.h: Remove the prototype for find_tree.2006-01-18 Jakub Jelinek <jakub@redhat.com>* search.c (lookup_conversions_r): Fix a pasto.2006-01-17 Eric Christopher <echristo@apple.com>* call.c (convert_like_real): When issuing conversionwarnings, depend on OPT_Wconversion.* cvt.c (build_expr_type_conversion): Ditto.2006-01-17 Kazu Hirata <kazu@codesourcery.com>* name-lookup.c (lookup_namespace_name): Remove.* name-lookup.h: Remove the prototype forlookup_namespace_name.2006-01-17 Jakub Jelinek <jakub@redhat.com>PR c/25682* decl.c (compute_array_index_type): After issuing not an integralconstant-expression error, set size to 1 to avoid ICEs later on.2006-01-16 Ian Lance Taylor <ian@airs.com>* parser.c: Include "cgraph.h".(cp_parser_asm_definition): Call cgraph_add_asm_node rather thanassemble_asm.2006-01-16 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>* g++spec.c (lang_specific_spec_functions): Remove.2006-01-15 Gabriel Dos Reis <gdr@integrable-solutions.net>* decl.c (check_initializer): Fix thinko.2006-01-14 Mark Mitchell <mark@codesourcery.com>PR c++/25663* parser.c (cp_parser_direct_declarator): Use cp_parser_errorinstead of error.2006-01-13 Jason Merrill <jason@redhat.com>* pt.c (check_explicit_specialization): Use CP_DECL_CONTEXT even more.* name-lookup.c (set_decl_namespace): Use CP_DECL_CONTEXT.* pt.c (check_explicit_specialization): Likewise.2006-01-12 Jason Merrill <jason@redhat.com>PR libstdc++/24660* pt.c (check_explicit_specialization): Handle namespaceassociation.* name-lookup.c (set_decl_namespace): Likewise.2006-01-12 Nathan Sidwell <nathan@codesourcery.com>PR c++/24824* class.c (handle_using_decl): Pass correct scope tocp_emit_debug_info_for_using.2006-01-11 Nathan Sidwell <nathan@codesourcery.com>PR c++/25386* tree.c (lvalue_p_1): Any part of a COMPONENT_REF affectspackedness.2006-01-06 Gabriel Dos Reis <gdr@integrablesolutions.net>* parser.c (cp_parser_primary_expression): Document the grammarfor the built-in offsetof, a GNU extension.2006-01-04 Zdenek Dvorak <dvorakz@suse.cz>PR c++/25632* init.c (constant_value_1): Unshare use of DECL_INITIAL. Fix a typoin condition.2006-01-04 Chris Lattner <sabre@gnu.org>* typeck2.c: update copyright to 2006(split_nonconstant_init_1): Set TREE_CONSTANT to true.2006-01-04 Mark Mitchell <mark@codesourcery.com>PR c++/24782* parser.c (cp_parser_nested_name_specifier_opt): Preserve accesschecks, even when parsing tentatively.2006-01-04 Richard Henderson <rth@redhat.com>Merge from gomp branch.* lex.c (handle_pragma_java_exceptions): Fix whitespace.* parser.c (struct cp_token): Add pragma_kind.(eof_token): Update to match.(struct cp_lexer): Add in_pragma; rearrange next for better packing.(cp_parser_initial_pragma): New.(cp_lexer_new_main): Use it. Don't bother clearingc_lex_return_raw_strings.(cp_lexer_get_preprocessor_token): Always initialize keywordand pragma_kind fields. Handle CPP_PRAGMA.(cp_lexer_consume_token): Don't allow CPP_PRAGMA_EOL whenin_pragma is set.(cp_lexer_handle_pragma): Remove. Update callers to cp_parser_pragma.(cp_lexer_print_token) <CPP_PRAGMA>: Don't print as a string.(cp_parser_skip_to_pragma_eol): New.(cp_parser_error): Use it.(cp_parser_skip_to_closing_parenthesis): Stop at CPP_PRAGMA_EOL;rearrange with switch statement.(cp_parser_skip_to_end_of_statement): Likewise.(cp_parser_skip_to_end_of_block_or_statement): Likewise.(cp_parser_skip_to_closing_brace): Likewise.(cp_parser_skip_until_found): Likewise.(cp_parser_statement): Add in_compound argument; update callers.Use it to decide how to handle pragma parsing.(cp_parser_labeled_statement): Add in_compound argument; passit on to cp_parser_statement.(cp_parser_statement_seq_opt): Stop at CPP_PRAGMA_EOL.(cp_parser_declaration_seq_opt): Likewise.(cp_parser_parameter_declaration): Likewise.(cp_parser_member_specification_opt): Likewise.(cp_parser_function_definition_after_decl): Likewise.(cp_parser_cache_group): Handle CPP_PRAGMA/CPP_PRAGMA_EOL pairs.(cp_parser_pragma): New.(pragma_lex): New.2006-01-04 Dirk Mueller <dmueller@suse.com>* decl.c (finish_constructor_body): create simplecompound stmt instead of a if(1) { } construct.2006-01-03 Mark Mitchell <mark@codesourcery.com>PR c++/25492* name-lookup.c (push_class_level_binding): When a derived classprovides a type binding, eliminate any type binding from a baseclass.PR c++/25625* repo.c (repo_emit_p): Always instantiate static data membersinitialized by constant expressions, so that there values areavailable.2006-01-02 Mark Mitchell <mark@codesourcery.com>PR c++/25635* class.c (add_method): Set TYPE_HAS_CONVERSION for classes with aconversion operator.* decl.c (grokdeclarator): Do not set TYPE_HAS_CONVERSION here.PR c++/25638* class.c (add_method): Never associate more than one destructorwith a single class.PR c++/25637* cp-tree.h (do_friend): Adjust prototype.* decl.c (grokfndecl): Make funcdef_flag a bool, not an int.(grokdeclarator): Likewise. Refine check for invaliddeclarations/definitions of member functions outside of their ownclass.* friend.c (do_friend): Make funcdef_flag a bool, not an int.PR c++/25633* parser.c (cp_parser_mem_initializer_list): Check result ofcp_parser_mem_initializer against error_mark_node, not NULL_TREE.(cp_parser_mem_initializer): Return error_mark_node for failure.PR c++/25634* parser.c (cp_parser_template_parameter_list): Callbegin_template_parm_list and end_template_parm_list here.(cp_parser_type_parameter): Not here.(cp_parser_template_declaration_after_export): Or here.(cp_parser_elaborated_type_specifier): Callcp_parser_check_template_parameters.* tree.c (build_target_expr_with_type): Use force_target_expr.* decl2.c (mark_used): Fix typo in comment.2006-01-02 Volker Reichelt <reichelt@igpm.rwth-aachen.de>* parser.c (cp_parser_using_declaration): Skip name-lookup oninvalid scope.Copyright (C) 2006 Free Software Foundation, Inc.Copying and distribution of this file, with or without modification,are permitted in any medium without royalty provided the copyrightnotice and this notice are preserved.
Go to most recent revision | Compare with Previous | Blame | View Log
