+2007-02-06 Mark Mitchell <mark@codesourcery.com>
+
+ PR target/29487
+ * decl.c (finish_function): Use DECL_REPLACEABLE.
+ * tree.c (cp_cannot_inline_tree_fn): Likewise.
+
+2007-02-10 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ * parser.c (cp_parser_primary_expression): Reformat overly long lines.
+
+2007-02-10 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.
+
+2007-02-07 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/30703
+ * cp-gimplify.c (cp_genericize_r): Don't dereference invisiref
+ parameters and result decls in omp clauses.
+ (cxx_omp_privatize_by_reference): Pass also invisiref PARM_DECLs
+ by reference.
+
+2007-02-05 Dirk Mueller <dmueller@suse.de>
+
+ PR bootstrap/30510
+ * parser.c (cp_parser_class_specifier): Always initialize bases.
+
+2007-02-05 Paolo Bonzini <bonzini@gnu.org>
+
+ * cp-tree.h (OMP_ATOMIC_CODE): Delete.
+ (OMP_ATOMIC_DEPENDENT_P): Rewrite.
+ * pt.c (tsubst_expr): Adjust for new format of dependent OMP_ATOMIC
+ expressions.
+ * semantics.c (finish_omp_atomic): Store a whole expression node
+ in operand 1, and integer_zero_node in operand 0, for dependent
+ OMP_ATOMIC. Rewrite to make flow easier to understand.
+
+2007-02-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ * decl.c (grokdeclarator): Use OPT_Wreturn_type instead of 0.
+
+2007-02-04 Kazu Hirata <kazu@codesourcery.com>
+
+ * class.c, cp-tree.h, decl.c, decl2.c, g++spec.c, init.c,
+ parser.c, pt.c, tree.c, typeck.c: Follow spelling conventions.
+
+2007-02-03 Douglas Gregor <doug.gregor@gmail.com>
+
+ * parser.c (cp_lexer_get_preprocessor_token): Attach the C++0x
+ keyword warning to -Wc++0x-compat.
+
+2007-02-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ * decl.c (grokdeclarator): Update documentation.
+
+2007-02-02 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/30536
+ * decl.c (grokdeclarator): If __thread is used together with
+ a storage class other than extern and static, clear thread_p
+ after issuing diagnostics and fall through to checking the
+ storage class.
+
+2007-01-30 Roger Sayle <roger@eyesopen.com>
+
+ * error.c (dump_type_suffix): Avoid use of cp_build_binary_op when
+ calculating the size of an array (to avoid recursive errors).
+
+2007-01-30 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR c++/24745
+ * typeck.c (build_binary_op): Fix logic for warning. Move warning
+ to -Wpointer-arith.
+ * call.c (convert_like_real): Don't warn when converting to
+ boolean type.
+
+2007-01-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ * decl.c (pop_label): Replace warning with call to
+ warn_for_unused_label.
+
+2007-01-28 Andrew Pinski <pinskia@gmail.com>
+
+ PR C++/28988
+ * semantics.c (finish_pseudo_destructor_expr): Check the
+ destrutor name by calling check_dtor_name.
+
+2007-01-24 Douglas Gregor <dgregor@osl.iu.edu>
+
+ * lex.c (D_CPP0X): Rename.
+ (D_CXX0X): To this.
+ (reswords): D_CPP0X -> D_CXX0X.
+ (init_reswords): Ditto.
+ * parser.c (cp_lexer_get_preprocessor_token): Warn about the use
+ of C++0x keywords as identifiers.
+
+2007-01-23 Simon Martin <simartin@users.sourceforge.net>
+
+ PR c++/27492
+ * decl.c (duplicate_decls): Don't reset DECL_INVALID_OVERRIDER_P for
+ function decls.
+
+2007-01-23 Ian Lance Taylor <iant@google.com>
+
+ * typeck.c (convert_for_assignment): Only warn about a = b = c
+ when converting to bool.
+
+2007-01-23 Roger Sayle <roger@eyesopen.com>
+
+ * call.c (null_ptr_cst_p): Replace use of TREE_CONSTANT_OVERFLOW with
+ TREE_OVERFLOW.
+ * typeck.c (ignore_overflows): Remove the remaining uses of
+ TREE_CONSTANT_OVERFLOW.
+
+2007-01-20 Jan Hubicka <jh@suse.cz>
+
+ * decl2.c (start_objects, start_static_storage_duration_function):
+ Do not make the functions uninlinable.
+
+2007-01-17 Ian Lance Taylor <iant@google.com>
+
+ * class.c (add_method): Call VEC_reserve_exact rather than passing
+ a negative size to VEC_reserve.
+
+2007-01-11 Simon Martin <simartin@users.sourceforge.net>
+
+ PR c++/29573
+ * tree.c (cp_tree_equal): Properly handle MODOP_EXPR trees.
+
+2007-01-10 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/28999
+ * decl.c (make_typename_type): If the qualified name is not a
+ type, issue an error.
+ * parser.c (cp_parser_elaborated_type_specifier): Fix comment
+ formatting.
+
+2007-01-08 Geoffrey Keating <geoffk@apple.com>
+
+ * rtti.c: Include target.h.
+ (emit_support_tinfos): If ! targetm.cxx.library_rtti_comdat (),
+ don't emit typeinfo for fundamental types as weak.
+ * Make-lang.in (cp/rtti.o): Update and correct dependencies.
+
+2007-01-08 Richard Guenther <rguenther@suse.de>
+
+ * cvt.c (cp_convert_to_pointer): Use build_int_cst_type.
+
+2007-01-08 Mark Shinwell <shinwell@codesourcery.com>
+
+ * call.c (standard_conversion): Pass flag to
+ vector_types_convertible_p to disallow emission of note.
+ * typeck.c (convert_for_assignment): Pass flag to
+ vector_types_convertible_p to allow emission of note.
+ (ptr_reasonably_similar): Pass flag to vector_types_convertible_p
+ to disallow emission of note.
+
+2007-01-07 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR c++/28986
+ * typeck.c (build_binary_op): Call overflow_warning if
+ TREE_OVERFLOW_P is true for the result and not for any of the
+ operands.
+
+2007-01-06 Lee Millward <lee.millward@codesourcery.com>
+
+ PR c++/19439
+ * class.c (add_method): Don't wait until template
+ instantiation time to complain about duplicate methods.
+
+2007-01-05 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
+
+ PR c/19978
+ * semantics.c (finish_unary_op_expr): Warn only if result
+ overflowed and operands did not.
+
+2007-01-05 Ian Lance Taylor <iant@google.com>
+
+ * typeck.c (build_binary_op): Warn about comparing a non-weak
+ address to NULL.
+
+2007-01-05 Douglas Gregor <doug.gregor@gmail.com>
+
+ * pt.c (tsubst): Propagate the need for structural equality checks
+ when reducing the level of template parameters.
+
+2007-01-03 Kazu Hirata <kazu@codesourcery.com>
+
+ * pt.c: Fix a comment typo.
+
+2006-01-02 Ian Lance Taylor <iant@google.com>
+
+ * semantics.c (maybe_convert_cond): Optionally warn when using an
+ assignment as a condition.
+ * typeck.c (convert_for_assignment): Optionally warn about
+ assigning the result of an assignment to a bool.
+
+2007-01-02 Douglas Gregor <doug.gregor@gmail.com>
+
+ * pt.c (canonical_template_parms): Correct typo in comment.
+
+2007-01-02 Douglas Gregor <doug.gregor@gmail.com>
+
+ * typeck.c (structural_comptypes): Renamed from "comptypes".
+ (comptypes): Use canonical type information to perform fast type
+ comparison. When VERIFY_CANONICAL_TYPES, verify that the
+ canonical type comparison returns the same results as we would see
+ from the current, structural check. Support COMPARE_STRUCTURAL
+ when we need structural checks.
+ * decl.c (typename_compare): Fix comment.
+ (build_typename_type): TYPENAME_TYPE nodes require structural
+ equality checks, because they resolve different based on the
+ current class type.
+ (make_unbound_class_template): UNBOUND_CLASS_TEMPLATE nodes
+ require structural equality checks (for now).
+ (build_ptrmemfunc_type): Build the canonical pointer to member
+ function type.
+ (compute_array_index_type): Whenever we build a new index type
+ to represent the size of an array in a template, we need to mark
+ this index type as requiring structural equality. This goes for
+ arrays with value-dependent sizes with the current ABI, or all
+ arrays with ABI-1.
+ * tree.c (cplus_array_hash): New.
+ (struct cplus_array_info): New.
+ (cplus_array_compare): New.
+ (cplus_array_htab): New.
+ (build_cplus_array_type_1): Use a hash table to cache the array
+ types we build. Build the canonical array type for each array
+ type.
+ (cp_build_qualified_type_real): When building a cv-qualified array
+ type, use the hash table of array types and build canonical array
+ types as necessary.
+ (bind_template_template_parm): BOUND_TEMPLATE_TEMPLATE_PARM nodes
+ use structural equality (for now).
+ * cp-tree.h (COMPARE_STRUCTURAL): New.
+ * pt.c (canonical_template_parms): New.
+ (canonical_type_parameter): New.
+ (process_template_parm): Find the canonical type parameter.
+ (lookup_template_class): When we have named the primary template
+ type, set the canonical type for our template class to the primary
+ template type. If any of the template arguments need structural
+ equality checks, the template class needs structural equality
+ checks.
+ (tsubst): When reducing the level of a template template
+ parameter, we require structural equality tests for the resulting
+ parameter because its template parameters have not had their types
+ canonicalized. When reducing a template type parameter, find the
+ canonical reduced type parameter.
+ (any_template_arguments_need_structural_equality_p): New.
+
+2006-12-31 Simon Martin <simartin@users.sourceforge.net>
+
+ PR c++/29731
+ * parser.c (cp_parser_primary_expression): Return error_mark_node when
+ a 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 adding
+ it 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 a
+ deferred access check. It replaces the previous representation as a tree.
+ (get_deferred_access_checks): Return a vector of struct
+ deferred_access_check instead of a tree list.
+ (perform_access_checks): Take a vector of struct deferred_access_check
+ instead of a tree list.
+ * semantics.c (struct deferred_access): Store the deferred access checks
+ as a vector of struct deferred_access_check instead of a tree list.
+ (push_deferring_access_checks): Handle the change in struct
+ deferred_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_check
+ instead of a tree list.
+ * parser.c (struct tree_check): New structure to store various data
+ associated 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 to
+ a struct tree_check for CPP_NESTED_NAME_SPECIFIER or CPP_TEMPLATE_ID
+ tokens 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, the
+ associated deferred checks and its qualifying scope.
+ (cp_parser_template_id): Likewise.
+ (cp_parser_template_declaration_after_export): Adjusted the call to
+ get_deferred_access_checks.
+ (cp_parser_init_declarator): Take the access checks as a vector of struct
+ deferred_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 to
+ cp_parser_init_declarator.
+ (cp_parser_explicit_specialization): Adjusted the call to
+ cp_parser_single_declaration.
+
+2006-12-13 Ian Lance Taylor <iant@google.com>
+
+ PR c++/19564
+ PR c++/19756
+ * parser.c (cp_parser_expression_stack_entry): Add field
+ lhs_type.
+ (cp_parser_binary_expression): Track tree code of left hand side
+ of expression. Use it when calling build_x_binary_op.
+ (cp_parser_selection_statement): Add if_p parameter. Change all
+ callers. 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 and
+ arg2_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 C
+ front-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 of
+ template parameters for in-class function definitions.
+ (cp_parser_check_declrator_template_parameters): Stop looking for
+ template classes when we find an explicit specialization.
+
+2006-12-07 Lee Millward <lee.millward@codesourcery.com>
+
+ PR c++/29980
+ * cp_parser_elaborated_type_specifier: Check
+ the 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 of
+ functions.
+
+2006-12-05 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/29729
+ * decl2.c (check_member_template): Move check for member
+ templates 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 not
+ have 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 case
+ size 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 pointer
+ constants 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 eliminating
+ a new definition in favour of an old declaration.
+ (start_preparsed_function): Define and document value of
+ DECL_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 function
+ comparison 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 return
+ type for non-dependent types.
+ * pt.c (tsubst_function_type): Warn for type qualifiers on
+ return type for dependent types.
+
+2006-11-30 Geoffrey Keating <geoffk@apple.com>
+
+ * rtti.c (get_tinfo_decl): Handle return value from
+ pushdecl_top_level_and_finish.
+
+2006-11-29 Lee Millward <lee.millward@codesourcery.com>
+
+ PR c++/29022
+ * parser.c (cp_parser_class_head): Move processing
+ of any base classes to...
+ (cp_parser_class_specifier) ...here. Take an extra
+ tree* parameter for any base classes. Only process
+ them 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 applying
+ attributes, not before.
+
+2006-11-27 Mark Mitchell <mark@codesourcery.com>
+
+ * class.c (build_vcall_offset_vtbl_entries): Do not add vcall
+ entries 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_body
+ instead 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_body
+ instead of at_function_scope_p.
+ (cp_parser_function_body_after_declarator): Set
+ parser->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): Handle
+ STATIC_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 static
+ assertions.
+ (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 enclosed
+ scalar 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 to
+ build_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 an
+ extra argument that represents the declaration to use to print
+ potential error messages.
+ * init.c (build_offset_ref): Adjusted the call to
+ perform_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 the
+ error message.
+ (build_op_delete_call): Adjusted the call to
+ perform_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 of
+ GGC_NEW and memset.
+
+2006-11-13 Roger Sayle <roger@eyesopen.com>
+
+ * rtti.c (get_pseudo_ti_init): Ensure that the offset field of the
+ base 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 while
+ substituting 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 against
+ size_type_node, instead of against the internal type, sizetype.
+ * class.c (type_requires_array_cookie): Likewise.
+ * mangle.c (write_builtin_type) <INTEGER_TYPE>: Remove special
+ handling of TYPE_IS_SIZETYPE.
+ * typeck.c (type_after_usual_arithmetic_conversions): Remove
+ special 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 from
+ cp_finish_file.
+ * cp-lang.c (finish_file): Don't call cp_finish_file.
+ * cp-tree.h (cp_write_global_declarations): Rename from
+ cp_finish_file.
+ * cp-objcp-common.h (LANG_HOOKS_WRITE_GLOBALS): Define to
+ cp_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 of
+ get_file_function_name_long.
+
+2006-10-30 Dirk Mueller <dmueller@suse.de>
+
+ PR c++/28704
+ * decl.c (grokdeclarator): Duplicate diagnostic message
+ for 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 for
+ easier 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 message
+ for easier translation.
+
+2006-10-29 Dirk Mueller <dmueller@suse.de>
+
+ PR c++/16307
+ * typeck.c (build_array_ref): Warn for char subscriptions
+ on 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 to
+ boolean type.
+
+2006-10-29 Dirk Mueller <dmueller@suse.de>
+
+ PR c++/29033
+ * typeck.c (build_binary_op): Duplicate warning message
+ for better translation.
+
+2006-10-23 Rafael Avila de Espindola <rafael.espindola@gmail.com>
+
+ * decl.c (builtin_function_1): Move common code to
+ add_builtin_function.
+ (builtin_function): Rename to cxx_builtin_function.
+ Change the signature.
+ * call.c: Include langhooks.h.
+ (build_java_interface_fn_ref): Replace calls to
+ builtin_function with add_builtin_function.
+ * Make-lang.in (cp/call.o): Depend on langhooks.h.
+ * cp-objcp-common.h (LANG_HOOKS_BUILTIN_FUNCTION): Define as
+ cxx_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-integral
+ types earlier when possible.
+
+2006-10-18 Mark Shinwell <shinwell@codesourcery.com>
+
+ PR c++/26884
+ * typeck2.c (digest_init): Raise error upon attempts to
+ initialize 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 false
+ if the class bases are invalid.
+ * parser.c (cp_parser_class_head): Check the return value
+ from xref_basetypes.
+
2006-10-17 Mark Mitchell <mark@codesourcery.com>
PR c++/28261
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
2006-10-11 Lee Millward <lee.millward@codesourcery.com>
PR c++/29024
- * cp-tree (struct cp_decl_specifier_seq): Rename to
- conflicting_specifiers_p
- * parser.c (cp_parser_set_storage_class): Set
- conflicting_specifiers_p for the input decl specifier
- if a typedef specifier is present. Rename uses of
- multiple_specifiers_p to conflicting_specifiers_p.
- (cp_parser_decl_specifier_seq) <RID_TYPEDEF>: If a storage
- class specifier has already been set for this declaration,
- set conflicting_specifiers_p to true on the decl_specs.
- * decl.c (grokdeclarator): Rename uses of
- multiple_specifiers_p to conflicting_specifiers_p.
+ * cp-tree (struct cp_decl_specifier_seq): Rename to
+ conflicting_specifiers_p
+ * parser.c (cp_parser_set_storage_class): Set
+ conflicting_specifiers_p for the input decl specifier
+ if a typedef specifier is present. Rename uses of
+ multiple_specifiers_p to conflicting_specifiers_p.
+ (cp_parser_decl_specifier_seq) <RID_TYPEDEF>: If a storage
+ class specifier has already been set for this declaration,
+ set conflicting_specifiers_p to true on the decl_specs.
+ * decl.c (grokdeclarator): Rename uses of
+ multiple_specifiers_p to conflicting_specifiers_p.
2006-10-10 Brooks Moses <bmoses@stanford.edu>
PR c++/29080
* parser.c (cp_parser_postfix_dot_deref_expression): Use
BASELINK_ACCESS_BINFO as the qualifying scope when calling
- adjust_result_of_qualified_name_lookup.
+ adjust_result_of_qualified_name_lookup.
2006-09-25 Lee Millward <lee.millward@codesourcery.com>
- PR c++/27329
- PR c++/26938
- * cp-tree.h (redeclare_class_template): Adjust declaration
- to return bool instead of void.
- * pt.c (redeclare_class_template): Update definition.
+ PR c++/27329
+ PR c++/26938
+ * cp-tree.h (redeclare_class_template): Adjust declaration
+ to return bool instead of void.
+ * pt.c (redeclare_class_template): Update definition.
Return false on error.
- * decl.c (xref_tag): Return error_mark_node if
+ * decl.c (xref_tag): Return error_mark_node if
redeclare_class_template returned false.
PR c++/27667
- * cp-tree.h (begin_specialization): Return bool
+ * cp-tree.h (begin_specialization): Return bool
instead of void.
- * pt.c (check_specialization_scope): Likwise.
- Adjust comment. Return false if a specialization
+ * pt.c (check_specialization_scope): Likwise.
+ Adjust comment. Return false if a specialization
isn't permitted in the current scope.
- (begin_specialization): Use the return value of
- check_specialization_scope.
- * parser.c (cp_parser_explicit_specialization): If
- begin_specialization returned false, skip the rest
+ (begin_specialization): Use the return value of
+ check_specialization_scope.
+ * parser.c (cp_parser_explicit_specialization): If
+ begin_specialization returned false, skip the rest
of the specialization.
-
+
2006-09-21 Mark Mitchell <mark@codesourcery.com>
PR c++/29016
PR c++/28861
* decl.c (shadow_tag): Return error_mark_node
- if maybe_process_partial_specialization failed.
+ if maybe_process_partial_specialization failed.
PR c++/28303
- * decl.c (grokdeclarator): Return error_mark_node on
- declaration with two or more data types.
-
+ * decl.c (grokdeclarator): Return error_mark_node on
+ declaration with two or more data types.
+
2006-09-20 Danny Smith <dannysmith@users.sourceforge.net>
PR target/27650
* tree.c (build_cplus_new): Set it.
PR c++/26696
- * cvt.c (convert_to_void): Replace a subexpression with no side
+ * cvt.c (convert_to_void): Replace a subexpression with no side
effects with void_zero_node.
* tree.c (is_overloaded_fn): Look through COMPONENT_REF.
(get_first_fn): Ditto.
where the name is a type used incorrectly.
PR c++/26671
- * typeck.c (maybe_warn_about_returning_address_of_local): Look
- through COMPONENT_REF and ARRAY_REF.
+ * typeck.c (maybe_warn_about_returning_address_of_local): Look
+ through COMPONENT_REF and ARRAY_REF.
PR c++/26102
* name-lookup.c (do_class_using_decl): Try to find the base even
if bases_dependent_p.
- * pt.c (type_dependent_expression_p): A USING_DECL is dependent.
+ * pt.c (type_dependent_expression_p): A USING_DECL is dependent.
PR c++/19809
* pt.c (tsubst_friend_function): Set DECL_INITIAL before pushdecl.
fields can't be packed.
PR c++/26577
- * cvt.c (convert_to_void): Don't automatically load from volatiles
+ * 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>
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
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
2006-08-23 Jason Merrill <jason@redhat.com>
PR c++/27714
- * pt.c (push_template_decl_real): A friend template with class
+ * pt.c (push_template_decl_real): A friend template with class
scope isn't primary.
2006-08-23 Benjamin Smedberg <benjamin@smedbergs.us>
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
+ * 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>
2006-08-22 Jason Merrill <jason@redhat.com>
PR c++/28659
- * typeck.c (merge_types): If either of the types have the right
+ * 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
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
PR c++/28346
* pt.c (tsubst_qualified_id): Do not strip references from
- OFFSET_REFs.
+ OFFSET_REFs.
2006-08-17 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
PR c++/28594
* pt.c (process_template_parm): Robustify.
-
+
2006-08-14 Steve Ellcey <sje@cup.hp.com>
PR c++/28288
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
(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.
* tree.c (decl_linkage): Only return lk_external if it's set.
PR c++/28409
- * decl2.c (constrain_visibility): Ignore the anonymous namespace
+ * 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
+ * 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
+ (determine_visibility): Do copy DECL_VISIBILITY_SPECIFIED from
template.
- (determine_visibility_from_class): Reverse sense of
+ (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
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
* 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
+ 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
* 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
2006-07-01 Jason Merrill <jason@redhat.com>
PR c++/28215
- * method.c (make_thunk): Unset DECL_USE_TEMPLATE and
+ * 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
+ * call.c (build_new_method_call): Force evaluation of the
instance pointer, not the object.
2006-06-30 Kazu Hirata <kazu@codesourcery.com>
2006-06-30 Jason Merrill <jason@redhat.com>
PR c++/18698
- * decl2.c (grokfield): Only try to treat the decl as an access
+ * 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>
2006-06-28 Jason Merrill <jason@redhat.com>
PR c++/27424
- * pt.c (convert_template_argument): Pass all template arguments
+ * pt.c (convert_template_argument): Pass all template arguments
on to coerce_template_template_parms.
2006-06-25 Lee Millward <lee.millward@gmail.com>
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
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
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