+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
+ * 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): Robustify
+
+2006-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 of
+ VARRAY.
+
+ * cp/call.c: Fix comment typos.
+
+2006-04-12 Mark Mitchell <mark@codesourcery.com>
+
+ * parser.c (cp_parser_init_declarator): Initialize local variables
+ aggressively.
+
+2006-04-12 Roger Sayle <roger@eyesopen.com>
+
+ * parser.c (cp_parser_init_declarator): Initialise
+ is_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 than
+ bundling 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 function
+ used.
+ (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 to
+ build_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 for
+ pointers-to-members.
+ * parser.c (cp_parser_ptr_operator): Check for qualified names
+ using namespaces.
+
+ PR c++/26122
+ * parser.c (cp_parser_init_declarator): Adjust logic for deciding
+ whether 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.
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.
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>
* 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.
* pt.c (instantiate_class_template,
resolve_typename_type): Likewise.
-2005-01-03 Volker Reichelt <reichelt@igpm.rwth-aaachen.de>
+2005-01-03 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
PR c++/14136
* parser.c (cp_parser_unqualified_id): Do not issue error message