+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
+ * parser.c (cp_lexer_next_token_is_decl_specifier_keyword): Add
+ comment.
+
+ PR c++/28261
+ * parser.c (cp_lexer_next_token_is_decl_specifier_keyword): New
+ function.
+ (cp_parser_constructor_declarator_p): Use it.
+ (cp_parser_check_type_definition): Return a value indicating
+ whether or not the definition is valid.
+ (cp_parser_enum_specifier): Skip invalid enum definitions.
+
+2006-10-17 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/29039
+ * typeck2.c (build_functional_cast): Don't zero-initialize
+ non-PODs; instead, call their constructors.
+ * method.c (synthesize_method): Always build mem-initializers, if
+ we're synthesizing the default constructor.
+
+2006-10-17 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/27270
+ * decl.c (reshape_init_class): Move check for designated
+ to ...
+ * parser.c (cp_parser_initializer_list): ... here.
+ * pt.c (tsubst_copy_and_build): Use finish_compound_literal.
+
+2006-10-16 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/27270
+ * typeck2.c (process_init_constructor_array): Reword comment.
+ * pt.c (tsubst_copy_and_built): Call reshape_init before calling
+ digest_init.
+
+ PR c++/29408
+ * parser.c (cp_parser_using_declaration): Stop parsing when
+ something goes wrong with an access declaration.
+
+ PR c++/29435
+ * typeck.c (cxx_sizeof_or_alignof_type): Complete non-dependent
+ types when their sizes are required. Refine test for VLAs.
+
+ PR c++/28211
+ * parser.c (cp_parser_template_argument): Don't consider "&var" a
+ possible constant-expression.
+ * pt.c (convert_nontype_argument): Refine handling of arguments of
+ pointer type.
+
+2006-10-13 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/28506
+ * parser.c (function_declarator_p): New function.
+ (cp_parser_init_declarator): Use it.
+ (cp_parser_member_declaration): Likewise.
+
+2006-10-12 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/29318
+ * rtti.c (get_tinfo_decl): Refuse to create type info objects for
+ variably modified types.
+
+2006-10-12 Lee Millward <lee.millward@codesourcery.com>
+
+ PR c++/27961
+ * decl.c (start_decl): Return error_mark_node if a
+ function is initialized like a variable.
+ (check_var_type): If a variable of field is declared void,
+ set the type to error_mark_node.
+ (grokdeclarator): Check the return type of check_var_type.
+ * class.c (finish_struct_1): Robustify.
+
+2006-10-11 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/29175
+ * decl.c (check_initializer): Issue errors about trying to
+ initialize arrays whose elements have variable size.
+
+2006-10-11 Lee Millward <lee.millward@codesourcery.com>
+
+ PR c++/29024
+ * cp-tree (struct cp_decl_specifier_seq): Rename 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>
+
+ * Make-lang.in: Added "c++.pdf" target support.
+
+2006-10-10 Richard Guenther <rguenther@suse.de>
+
+ PR rtl-optimization/29323
+ * decl.c (finish_function): Set TREE_NOTHROW only for
+ functions that bind local.
+
+2006-10-09 Richard Henderson <rth@redhat.com>
+
+ Revert emutls patch.
+
+2006-10-04 Richard Henderson <rth@redhat.com>
+ Jakub Jelinek <jakub@redhat.com>
+
+ * decl.c (grokvardecl): Don't error if !have_tls.
+ (grokdeclarator): Likewise.
+ * parser.c (cp_parser_omp_threadprivate): Likewise.
+
+2006-10-03 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/29020
+ * friend.c (do_friend): Improve comments; add assertion.
+ * parser.c (cp_parser_nested_name_specifier_opt): Resolve
+ typenames for qualified names used in declarations, even when
+ caching qualified name lookup.
+
+ PR c++/29138
+ * decl2.c (grokfield): Don't handle access declarations here.
+ * parser.c (cp_parser_using_declaration): Handle access
+ declarations too.
+ (cp_parser_block_declaration): Adjust calls to
+ cp_parser_using_declaration.
+ (cp_parser_member_declaration): Likewise. Use
+ cp_parser_using_declaration to look for access_declarations.
+
+2006-10-03 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+ PR c++/29291
+ * init.c (build_new): Check for invalid init.
+
+2006-10-02 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/29226
+ * typeck.c (cxx_sizeof_or_alignof_type): Tidy. In templates, do
+ not try to actually evaluate sizeof for a VLA type.
+
+2006-10-01 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/29105
+ * pt.c (tsubst_baselink): Substituteinto the qualifying scope.
+ * semantics.c (baselink_for_fns): Build a baselink, even when
+ processing a template.
+
+ 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.
+
+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.
+ Return false on error.
+ * decl.c (xref_tag): Return error_mark_node if
+ redeclare_class_template returned false.
+
+ PR c++/27667
+ * cp-tree.h (begin_specialization): Return bool
+ instead of void.
+ * 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
+ of the specialization.
+
+2006-09-21 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/29016
+ * typeck.c (build_unary_op): Don't form an ADDR_EXPR around a
+ BASELINK.
+
+2006-09-21 Lee Millward <lee.millward@codesourcery.com>
+
+ PR c++/28861
+ * decl.c (shadow_tag): Return error_mark_node
+ if maybe_process_partial_specialization failed.
+
+ PR c++/28303
+ * 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
+ * class.c (check_for_override): Remove dllimport from virtual
+ methods.
+
+2006-09-18 Steven Bosscher <steven@gcc.gnu.org>
+
+ PR c++/29087
+ * parser.c (cp_parser_labeled_statement): Return nothing. Do
+ not take in_statement_expr and in_compound as arguments. Rename
+ to cp_parser_label_for_labeled_statement. Parse only the label,
+ not the statement.
+ (cp_parser_statement): Parse the statement of a labeled-statement
+ from here, using tail recursion.
+
+2006-09-14 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR C++/29002
+ * init.c (build_zero_init): If we have an error mark node for
+ the array size, return.
+
+2006-09-10 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/28991
+ * cp-objcp-common.c (cxx_staticp): New function.
+ * cp-objcp-common.h (LANG_HOOOKS_STATICP): Use it.
+ * cp-tree.h (cxx_staticp): New function.
+
+2006-09-09 Jason Merrill <jason@redhat.com>
+
+ PR c++/28996
+ * cvt.c (convert_to_void): Strip COMPONENT_REF to functions.
+
+2006-09-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+ PR c++/28858
+ * parser.c (cp_parser_skip_until_found): Rename to
+ cp_parser_skip_to_end_of_template_parameter_list. Remove last two
+ parameters. Track levels of '< ... >'. Stop at '{', '}', or ';'.
+ Reorganize. Adjust comment.
+ (cp_parser_template_declaration_after_export): Adjust call.
+ (cp_parser_enclosed_template_argument_list): Likewise.
+
+2006-09-07 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR C++/28906
+ * init.c (build_new_1): Build a distinct type copy
+ for the array type that was returned from
+ build_cplus_array_type.
+
+2006-09-07 Jason Merrill <jason@redhat.com>
+
+ PR c++/27371
+ * cvt.c (convert_to_void): Enable previous change.
+
+ PR c++/26957
+ * method.c (use_thunk): Clear DECL_HAS_VALUE_EXPR_P on copied
+ parms.
+
+2006-09-07 Simon Martin <simartin@users.sourceforge.net>
+
+ PR c++/28284
+ * pt.c (fold_non_dependent_expr): Make sure expr is not
+ dereferenced if it is NULL.
+
+2006-09-06 Zak Kipling <zak@transversal.com>
+
+ PR c++/26195
+ * decl.c (make_rtl_for_nonlocal_decl),
+ (start_preparsed_function): Don't use lbasename on
+ input_filename when calling get_fileinfo.
+ * semantics.c (begin_class_definition): Likewise.
+ * lex.c (cxx_make_type): Likewise.
+ (handle_pragma_interface): Call get_fileinfo on input_filename,
+ not on the parameter to the directive.
+
+2006-09-06 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/28903
+ * pt.c (tsubst): Use fold_non_dependent_expr to fold array
+ dimensions.
+
+ PR c++/28886
+ * pt.c (unify): Avoid unnecessary calls to fold_build2 for array
+ dimensions.
+
+2006-09-06 Jason Merrill <jason@redhat.com>
+
+ PR c++/27371
+ * cvt.c (convert_to_void): Strip useless TARGET_EXPR.
+ * cp-tree.h (TARGET_EXPR_IMPLICIT_P): New macro.
+ * tree.c (build_cplus_new): Set it.
+
+ PR c++/26696
+ * cvt.c (convert_to_void): Replace a subexpression with no side
+ effects with void_zero_node.
+ * tree.c (is_overloaded_fn): Look through COMPONENT_REF.
+ (get_first_fn): Ditto.
+ * decl.c (grokdeclarator): No need to look through COMPONENT_REF.
+
+2006-09-05 Jason Merrill <jason@redhat.com>
+
+ PR c++/26571
+ * parser.c (cp_parser_diagnose_invalid_type_name): Handle the case
+ 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.
+
+ 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.
+
+ PR c++/19809
+ * pt.c (tsubst_friend_function): Set DECL_INITIAL before pushdecl.
+
+2006-09-04 Nathan Sidwell <nathan@codesourcery.com>
+
+ PR 23287 Revert my 2006-09-01 patch.
+ * parser.c: Reverted.
+ * pt.c: Reverted.
+
+2006-09-02 Lee Millward <lee.millward@codesourcery.com>
+
+ PR c++/27670
+ PR c++/27493
+ PR c++/27494
+ PR c++/27397
+ * parser.c (cp_parser_template_parameter_list): Add
+ invalid template parameters to the parameter list as
+ error_mark_node.
+
+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.
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.
+ 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>
* method.c (locate_copy): Check for non_reference
returning error_mark_node.
- PR c++/28260
+ PR c++/28260
* decl.c (duplicate_decls): Return error_mark_node
on ambiguous declaration.
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>
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-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>
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>