+2006-09-02 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/28878
+ * except.c (build_throw): Only set current_function_returns_abnormally
+ if cfun is not NULL.
+
+ PR c++/26917
+ * repo.c (repo_file): Remove.
+ (open_repo_file, reopen_repo_file_for_write): Return fopened
+ FILE * instead of setting global repo_file variable.
+ (init_repo): Adjust caller.
+ (finish_repo): Likewise. Return instead of goto out before
+ reopen_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 overload
+ or an object.
+
+ PR c++/23287
+ * parser.c (cp_parser_id_expression): Add member_p
+ argument. Update all callers.
+ (cp_parser_unqualified_id): Likewise. Lookup a destructor name in
+ the object's scope, if valid.
+ (cp_parser_global_scope_opt): Add object_scope_valid_p. Update
+ callers.
+ (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 all
+ the 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 type
+ from 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 bitwise
+ copy.
+
+2006-08-28 Jason Merrill <jason@redhat.com>
+
+ PR c++/26670
+ * class.c (check_field_decls): Unset TYPE_PACKED (t) if one of the
+ fields can't be packed.
+
+ PR c++/26577
+ * cvt.c (convert_to_void): Don't automatically load from volatiles
+ of TREE_ADDRESSABLE type.
+
+2006-08-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+ PR c++/28860
+ * cp-tree.h (maybe_process_partial_specialization): Return
+ tree instead of void.
+ * parser.c (cp_parser_class_head): Use return value of
+ maybe_process_partial_specialization.
+ * pt.c (maybe_process_partial_specialization): Return error_mark_node
+ for broken specializations, TYPE otherwise. Check for template
+ template parameters.
+
+2006-08-27 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/28058
+ * pt.c (register_specialization): Return error_mark_node for
+ specialization-after-instantiation.
+ * decl2.c (mark_used): Mark the main function used when one of its
+ clones is used.
+
+2006-08-27 Lee Millward <lee.millward@codesourcery.com>
+
+ PR c++/26573
+ * class.c (check_field_decls): Don't issue error about
+ local 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 file
+ stack.
+
+2006-08-26 Lee Millward <lee.millward@codesourcery.com>
+
+ PR c++/28736
+ PR c++/28737
+ PR c++/28738
+ * pt.c (process_template_parm): Store invalid template
+ parameters as a TREE_LIST with a TREE_VALUE of error_mark_node.
+ (push_inline_template_parms_recursive): Check for template
+ parameters having a TREE_VALUE of error_mark_node rather than
+ check the parameter itself.
+ (mangle_class_name_for_template): Likewise.
+ (comp_template_parms): When comparing the individual template
+ parameters, 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): Add
+ access_path parameter. Perform access checks.
+ (instantiate_type): Adjust call to
+ resolve_address_of_overloaded_function. Remove unnecessary code.
+ * tree.c (is_overloaded_fn): Document. Return 2 when there are
+ acutally 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 static
+ functions 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 at
+ template-instantiation time.
+
+2006-08-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+ PR c++/28853
+ * typeck2.c (cxx_incomplete_type_diagnostic): Handle template
+ template parameters. Improve error message for template type
+ parameters.
+
+ 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 qualified
+ names in local scopes.
+
+2006-08-25 Nathan Sidwell <nathan@codesourcery.com>
+
+ PR c++/27787
+ * decl.c (make_typename_type): Only try and resolve it when
+ context is not dependent. Refactor.
+ * decl2.c (check_classfn): Push to class scope before looking for
+ the function.
+
+2006-08-24 Danny Smith <dannysmith@users.sourceforge.net>
+
+ PR driver/28528
+ * g++spec.c (lang_specific_driver): Always check if we need to
+ swallow 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 class
+ scope 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_call
+ will make one too.
+
+2006-08-22 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR C++/28450
+ * cp/init.c (build_zero_init): Handle VECTOR_TYPE and
+ COMPLEX_TYPEs.
+
+2006-08-22 Simon Martin <simartin@users.sourceforge.net>
+
+ PR c++/28420
+ * parser.c (cp_parser_postfix_expression): Make sure that the
+ saved value for parser->type_definition_forbidden_message is
+ restored 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 right
+ attributes, return that one.
+
+ * tree.c (cp_build_type_attribute_variant): Make sure we aren't
+ doing 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 with
+ CLEANUP_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 either
+ newdecl or olddecl is error_mark_node.
+
+ PR c++/28505
+ * decl.c (grokdeclarator): Return early after
+ issuing 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): New
+ function.
+ * cp-tree.h (tsubst_copy_and_build): Adjust prototype.
+ * pt.c (tsubst_expr): Add integral_constant_expression_p
+ parameter.
+ (fold_non_dependent_expr): Adjust callers of
+ tsubst_{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 allow
+ invalid casts in integral constant expressions.
+ * parser.c (cp_parser_postfix_expression): Use
+ cast_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 from
+ OFFSET_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 condition
+ for 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 call
+ perform_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 template
+ if 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++/28288
+ PR 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 ignore
+ attributes applied to a TYPENAME_TYPE.
+
+2006-08-09 Lee Millward <lee.millward@codesourcery.com>
+
+ PR c++/28637
+ * pt.c (coerce_template_parms): Copy across the
+ invalid 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 a
+ diagnostic 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 scopes
+ when 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 call
+ check_default_args if duplicate_decls got bypassed.
+
+2006-08-02 Richard Guenther <rguenther@suse.de>
+
+ PR c++/28479
+ Revert
+ 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): Ignore
+ top 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" was
+ specified 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++/27668
+ PR c++/27962
+ * pt.c (process_template_parm) Store invalid template
+ parameters as error_mark_node in the paramater list.
+ (push_inline_template_parms_recursive): Handle invalid
+ template 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 invalid
+ typedef.
+
+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 to
+ have 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 from
+ type 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 hidden
+ visibility 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 to
+ valid decls. Cleanup.
+
+ PR c++/28363
+ * semantics.c (check_template_template_default_arg): Simplify
+ error handling.
+
+2006-07-20 Jason Merrill <jason@redhat.com>
+
+ PR c++/28407
+ * decl.c (grokvardecl): Set DECL_THIS_STATIC on file-scope
+ const 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 namespace
+ for extern "C" decls.
+ (VISIBILITY_STATIC): Rename to VISIBILITY_ANON.
+
+ * decl2.c (constrain_visibility): Remove specified and reason
+ parameters. Don't touch decls that already have explicit visibility.
+ (determine_visibility): Do copy DECL_VISIBILITY_SPECIFIED from
+ template.
+ (determine_visibility_from_class): Reverse sense of
+ DECL_VISIBILITY_SPECIFIED test for target-specific visibility rules.
+ (constrain_class_visibility): Only complain about member visibility
+ if the member type is another class. Don't change visibility of the
+ current 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 in
+ templates.
+
+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 data
+ member 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_reference
+ returning error_mark_node.
+
+ PR c++/28260
+ * decl.c (duplicate_decls): Return error_mark_node
+ on ambiguous declaration.
+
+2006-07-18 Steve Ellcey <sje@cup.hp.com>
+
+ PR c++/27495
+ * search.c (adjust_result_of_qualified_name_lookup): Change
+ assert 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 on
+ error_mark_node.
+ * except.c (expand_start_catch_block): Use error_mark_node instead
+ of NULL_TREE for invalid decls.
+ * parser.c (cp_parser_exception_declaration): Return error_mark_node
+ on 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 vector
+ directly. 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. Use
+ proper Boolean return type instead of return 1.
+ (check_java_method): Don't issue error about
+ type not being an acceptable Java parameter if
+ it'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 repeated
+ decl-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_REFs
+ only.
+
+ 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 of
+ function 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 in
+ warning.
+
+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 call
+ add_stmt for invalid labels.
+
+2006-07-06 Jason Merrill <jason@redhat.com>
+
+ PR c++/28279
+ * decl2.c (finish_static_data_member_decl): Don't assert
+ TREE_PUBLIC.
+
+2006-07-05 Jason Merrill <jason@redhat.com>
+
+ PR c++/13983
+ PR c++/17519
+ * class.c (check_field_decls): Check TYPE_PACKED after
+ stripping 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): Ignore
+ top 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 and
+ DECL_TEMPLATE_INFO.
+
+2006-06-30 Jason Merrill <jason@redhat.com>
+
+ PR c++/26577
+ * call.c (build_new_method_call): Force evaluation of the
+ instance 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 access
+ declaration if the scope is a class.
+
+2006-06-29 Jason Merrill <jason@redhat.com>
+
+ PR c++/26905
+ PR c++/26612
+ PR c++/27000
+ PR c++/26984
+ PR 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 function
+ decls, too.
+ * name-lookup.c (pushtag): Call determine_visibility.
+ * decl.c (duplicate_decls): Don't copy visibility from template to
+ specialization.
+ * 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++/26905
+ PR c++/21675
+ PR c++/17470
+ * parser.c (cp_parser_explicit_instantiation): Pass the attributes
+ to grokdeclarator.
+ (cp_parser_type_specifier): Allow 'enum __attribute ((...)) E'.
+ (cp_parser_enum_specifier): Likewise.
+ (cp_parser_elaborated_type_specifier): Apply attributes if this
+ declares 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++/21581
+ PR c++/25915
+ * tree.c (decl_anon_ns_mem_p): New function.
+ * cp-tree.h: Declare it.
+ * decl2.c (determine_visibility): Make anonymous namespace
+ members static.
+ (min_vis_r, constrain_visibility): Likewise.
+ * rtti.c (create_pseudo_type_info): Set TREE_PUBLIC on
+ pseudo-types.
+ * decl.c (cxx_init_decl_processing): Set TREE_PUBLIC on
+ global_namespace.
+ * name-lookup.c (push_namespace_with_attribs): Don't set TREE_PUBLIC
+ on anonymous namespaces.
+
+2006-06-28 Jason Merrill <jason@redhat.com>
+
+ PR c++/27424
+ * pt.c (convert_template_argument): Pass all template arguments
+ on 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 grokdeclarator
+ returning NULL_TREE, instead check for error_mark_node
+ to 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 for
+ invalid 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 invalid
+ arguments. Fix comment.
+
+ PR c++/11468
+ * init.c (build_new_1): Handle error_mark_nodes returned by
+ build_java_class_ref.
+ (build_java_class_ref): Do not abort compilation, but return
+ error_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 on
+ invalid 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 invalid
+ parameters.
+
+ 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 near
+ power-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 data
+ members.
+
+ PR c++/27979
+ * call.c (standard_conversion): Strip cv-qualifiers from bitfield
+ types.
+
+ 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 set
+ have_extern_spec.
+ (cp_parser_init_declarator): Likewise.
+ (cp_parser_parameter_declaration): Do not treat parameters as
+ within 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): New
+ macro.
+ * 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 to
+ zero while performing substitutions.
+
+2006-06-14 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/27665
+ * parser.c (cp_parser_unqualified_id): Use constructor_name_p to
+ identify destructors.
+ (cp_parser_nested_name_specifier_opt): Remove invalid
+ optimization.
+ (cp_parser_template_id): Refine heuristic for determining whether
+ we 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 standard
+ paradigms 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 declarations
+ from different namespaces to match.
+ (duplicate_decls): Disallow redeclaring a variable with a
+ different 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 mapping
+ to cp_function_chain->extern_decl_map hash table instead of
+ copying over DECL_UID.
+ * cp-gimplify.c (cxx_int_tree_map_eq, cxx_int_tree_map_hash): New
+ functions.
+ (cp_genericize_r): Remap DECL_EXTERN local decls using
+ cp_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_node
+ if lookup fails.
+
+ PR c++/27951
+ * decl2.c (finish_anon_union): Return early if build_anon_union_vars
+ fails.
+
+2006-06-12 Roger Sayle <roger@eyesopen.com>
+
+ PR c++/21210
+ * typeck2.c (build_functional_cast): Use cp_convert to construct
+ non-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 of
+ fold_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 be
+ complete 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 data
+ members with non-dependent initializers, even in templates.
+
+ PR c++/27722
+ * decl.c (maybe_deduce_size_from_array_init): If the declaration
+ is 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 compound
+ literals 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_node
+ for invalid initializers.
+
+2006-06-01 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR c++/27592
+ * rtti.c (build_dynamic_cast_1): Call c_common_truthvalue_conversion
+ on 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 for
+ caller after reading PCH file in.
+
+2006-05-31 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/27801
+ * call.c (perform_implicit_conversion): Do not actually perform
+ conversions in templates.
+
+ PR c++/26496
+ * call.c (resolve_args): Check for invalid uses of bound
+ non-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 have
+ integral type.
+
+2006-05-29 Kazu Hirata <kazu@codesourcery.com>
+
+ * pt.c (convert_nontype_argument): Fix a typo in an error
+ message.
+
+2006-05-28 Kazu Hirata <kazu@codesourcery.com>
+
+ * decl.c, decl2.c, parser.c: Fix comment typos. Follow
+ spelling conventions.
+
+2006-05-24 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/20103
+ * decl.c (cp_make_fname_decl): Don't set DECL_INITIAL to
+ error_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 to
+ setart_decl_1.
+ (expand_start_catch_block): Let cp_finish_decl initialize catch
+ parameters.
+ * 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 temporary
+ variable for the literal.
+ * typeck.c (build_unary_op): Remove COMPOUND_LITERAL_P special
+ cases.
+ * decl2.c (finish_static_data_member_decl): Don't set
+ DECL_INITIAL.
+ (grokfield): Do not try to initialize functions.
+
+2006-05-23 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/20173
+ * pt.c (determine_specialization): Disallow partial
+ specializations 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 array
+ warning. 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_TREE
+ or 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 artificial
+ outer scope.
+ (finish_function_handler_sequence): Close it.
+
+2006-05-18 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/27471
+ PR c++/27506
+ * typeck.c (decay_conversion): Convert bitfields to their declared
+ types here. Improve documentation. Avoid use of cp_convert.
+ (default_conversion): Make it static. Perform integral promotions
+ before lvalue-to-rvalue, function-to-pointer, and array-to-pointer
+ conversions.
+ * 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-rvalue
+ conversion on operand before initializing temporary.
+ * tree.c (convert.h): Include it.
+ (convert_bitfield_to_declared_type): Use convert_to_integer, not
+ cp_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 perform
+ lvalue-to-rvalue, function-to-pointer, or array-to-pointer
+ conversions here. Correct error message.
+
+2006-05-17 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/26122
+ * decl2.c (check_member_template): Remove checks for virtual
+ functions.
+ * parser.c (cp_parser_function_specifier_opt): Complain about
+ virtual templates.
+ (cp_parser_pure_specifier): Likewise.
+
+ PR c++/26068
+ * parser.c (cp_parser_set_storage_class): Check for
+ invalid uses of storage classes on unbraced linkage
+ specifications.
+ (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_CONSTRUCTOR
+ on CONSTRUCTORs.
+
+ PR middle-end/27415
+ * parser.c (cp_parser_omp_parallel): Set OMP_PARALLEL_COMBINED
+ on 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 to
+ cp_parser_init_declarator.
+ (cp_parser_type_parameter): Do not defer checks in default
+ arguments.
+ (cp_parser_explicit_specialization): Adjust call to
+ cp_parser_single_declaration.
+ (cp_parser_init_declarator): Perform template-parameter access
+ checks.
+ (cp_parser_parameter_declaration): Do not defer checks for
+ template parameter default arguments.
+ (cp_parser_template_declaration_after_export): Gather access
+ checks for template parameters, and pass them to
+ cp_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 declared
+ types 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 invalid
+ argument list.
+
+ PR c++/27581
+ * search.c (adjust_result_of_qualified_name_lookup): Skip on
+ invalid 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 instead
+ of broken decl.
+
+ PR c++/27496
+ * pt.c (tsubst_friend_class): Return early on invalid friend
+ declarations.
+
+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 of
+ COMPONENT_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 with
+ invalid types.
+
+2006-05-03 Aldy Hernandez <aldyh@redhat.com>
+
+ PR/21391
+ * typeck.c (build_static_cast_1): Save casted types in used types
+ hash 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 call
+ cp_parser_abort_tentative_parse if cp_parser_parse_definitely was not
+ called.
+
+2006-05-02 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/27102
+ * decl.c (grokdeclarator): Robustify checks for defining members
+ of 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 or
+ assignment operator. Set TYPE_HAS_CONSTURCTOR if DECL is a
+ constructor.
+ (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 around
+ call 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 args
+ when 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): Handle
+ TYPENAME_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, not
+ as 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 allocating
+ unnecessary TYPE_DECLs. Correct qualification of member function
+ types. 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 correct
+ type.
+ (build_modify_expr): Remove spurious conversions.
+ * class.c (layout_class_type): Modify the type of bitfields to
+ indicate a limited range.
+ * call.c (standard_conversion): Adjust the type of bitfield
+ expressions 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 if
+ pushdecl_namespace_level fails.
+
+ PR c++/26036
+ * typeck.c (convert_arguments): Return error_mark_node instead of
+ error_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 conversions
+ before calling convert_to_reference.
+ * cvt.c (convert_to_reference): Assert that reftype is a
+ REFERENCE_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 erroneous
+ declarator, assume that we have already issued an error message
+ and return. Return error_mark_node instead of NULL_TREE in more
+ places. Issue errors about function definitions that do not have
+ a function declarator. Check for complete types for all function
+ definitions.
+ * 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, return
+ NULL_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 issued
+ an error.
+ (cp_parser_omp_var_list_no_open): Adjust calls.
+
2006-04-17 Janis Johnson <janis187@us.ibm.com>
PR c++/26114, c++/26115
* 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.
+ "incomplete", not "undefined", types.
PR c++/26295
* decl.c (grokdeclarator): Remove namespace-handling code for
- pointers-to-members.
+ pointers-to-members.
* parser.c (cp_parser_ptr_operator): Check for qualified names
using namespaces.
2006-03-22 Jason Merrill <jason@redhat.com>
- * name-lookup.c (push_namespace_with_attribs): Only apply hidden
- visibility to anonymous namespaces if HAVE_GAS_HIDDEN.
+ * name-lookup.c (push_namespace_with_attribs): Only apply hidden
+ visibility to anonymous namespaces if HAVE_GAS_HIDDEN.
2006-03-21 Jakub Jelinek <jakub@redhat.com>
PR c++/21581
* parser.c (cp_parser_declaration): Support attributes on
anonymous namespaces.
- * name-lookup.c (push_namespace_with_attribs): Anonymous
+ * name-lookup.c (push_namespace_with_attribs): Anonymous
namespaces default to hidden visibility.
2006-03-20 Jason Merrill <jason@redhat.com>
(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_visibility
+ * name-lookup.h (struct cp_binding_level): Add has_visibility
bitfield.
* 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 and
+ (determine_visibility): ...here. Handle function scope and
nested classes.
- (import_export_decl): Move visibility handling to
+ (import_export_decl): Move visibility handling to
determine_visibility_from_class.
* parser.c (cp_parser_declaration, cp_parser_namespace_name): Allow
attributes on namespace declarations.
bad_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 before
+ * semantics.c (finish_return_stmt): Do check_omp_return before
converting to cdtor_label goto.
2005-10-21 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_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.
2006-02-12 Jason Merrill <jason@redhat.com>
PR c++/24996
- * except.c (build_throw): Add a CLEANUP_POINT_EXPR inside the
+ * except.c (build_throw): Add a CLEANUP_POINT_EXPR inside the
TRY_CATCH_EXPR or MUST_NOT_THROW_EXPR.
2006-02-10 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2006-02-03 Lee Millward <lee.millward@gmail.com>
- * typeck.c (string_conv_p): Pass appropiate
- OPT_Wxxxx values when calling warning().
- (build_array_ref, cxx_mark_addressable): Likewise.
- (check_return_expr): Likewise.
+ * typeck.c (string_conv_p): Pass appropiate
+ OPT_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.
+ * init.c (perform_member_init): Likewise.
+ (sort_mem_initializers, emit_mem_initializers): Likewise.
- * class.c (check_field_decls): Likewise.
- (warn_about_ambiguous_bases): 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.
+ * 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.
+ * name-lookup.c (pushdecl_maybe_friend): Likewise.
+ (pushdecl_maybe_friend): Likewise.
- * parser.c (cp_parser_warn_min_max): Likewise.
- (cp_parser_cast_expression): 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.
+ * 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>
* Make-lang.in (cp-warn): Include CXX_COMPAT_WARN.
* repo.c (extract_string, afgets): Use cast when converting from
- void *.
+ void *.
2006-01-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
2006-01-28 Gabriel Dos Reis <gdr@integrable-solutions.net>
* call.c (joust): Pass option code to warning. Use inform for
- explanation.
+ explanation.
* class.c (check_bases): Likewise.
(maybe_warn_about_overly_private_class): Likewise.
(check_field_decls): Likewise.
(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++/10891
* rtti.c (build_dynamic_cast): Reject dynamic_cast use if
- -fno-rtti.
+ -fno-rtti.
2006-01-21 Mark Mitchell <mark@codesourcery.com>
PR c++/25856
* decl.c (begin_destructor_body): Robustify.
- PR c++/25858
+ 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.
2005-12-06 Aldy Hernandez <aldyh@redhat.com>
- PR C++/24138
+ PR C++/24138
* decl.c (reshape_init_array_1): Handle max_index of -1.
2005-12-06 Roger Sayle <roger@eyesopen.com>