OSDN Git Service

PR c++/33501
[pf3gnuchains/gcc-fork.git] / gcc / cp / ChangeLog
index 1acce71..d62d29d 100644 (file)
@@ -1,3 +1,125 @@
+2007-11-07  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/33501
+       * call.c (build_over_call): Don't check TREE_ADDRESSABLE
+       on incomplete type.
+
+2007-11-06  Douglas Gregor  <doug.gregor@gmail.com>
+
+       PR c++/33977
+       PR c++/33886
+       * tree.c (c_build_qualified_type): Define bridge to
+       cp_build_qualified_type.
+
+2007-11-06  Douglas Gregor  <doug.gregor@gmail.com>
+
+       PR c++/31439
+       PR c++/32114
+       PR c++/32115
+       PR c++/32125
+       PR c++/32126
+       PR c++/32127
+       PR c++/32128
+       PR c++/32253
+       PR c++/32566
+       * typeck.c (check_return_expr): Pass address of retval to
+       check_for_bare_parameter_packs.
+       * class.c (build_base_field): Tolerate bases that have no layout
+       due to errors.
+       (end_of_base): Ditto.
+       * tree.c (canonical_type_variant): Be careful with
+       ERROR_MARK_NODE.
+       * cp-tree.h (check_for_bare_parameter_packs): Now accepts a
+       tree*.
+       * pt.c (find_parameter_pack_data): Add set_packs_to_error field,
+       which states whether parameter packs should be replaced with
+       ERROR_MARK_NODE.
+       (find_parameter_packs_r): Pass addresses to cp_walk_tree wherever
+       possible. If set_packs_to_error is set true, replace the parameter
+       pack with ERROR_MARK_NODE. Manage our own pointer sets.
+       (uses_parameter_packs): Don't set parameter packs to
+       ERROR_MARK_NODE.
+       (check_for_bare_parameter_packs): Now takes a pointer to a tree,
+       which may be modified (if it is a parameter pack). Instructs
+       find_parameter_packs_r to replace parameter packs with
+       ERROR_MARK_NODE (so that they won't cause errors later on).
+       (process_template_parm): Pass pointer to
+       check_for_bare_parameter_packs.
+       (process_partial_specialization): Replace pack expansions before
+       the end of the template argument list with ERROR_MARK_NODE.
+       (push_template_decl_real): Pass pointer to
+       check_for_bare_parameter_packs. Replace parameter packs not at the
+       end of the template parameter list with ERROR_MARK_NODE.
+       (convert_template_argument): Be more careful about using DECL_NAME
+       on only declarations.
+       (unify): Can't unify against ERROR_MARK_NODE.
+       * semantics.c (finish_cond): Pass pointer to
+       check_for_bare_parameter_packs.
+       (finish_expr_stmt): Ditto.
+       (finish_for_expr): Ditto.
+       (finish_switch_cond): Pass pointer to
+       check_for_bare_parameter_packs, and call it before we put the
+       condition into the statement.
+       (finish_mem_initializers): Pass pointer to
+       check_for_bare_parameter_packs.
+       (finish_member_declaration): Ditto.
+       * parser.c (cp_parser_base_clause): Ditto.
+       
+2007-11-06  Jakub Jelinek  <jakub@redhat.com>
+
+       PR target/33168
+       * decl.c (cp_finish_decl): Call make_rtl_for_nonlocal_decl already
+       with the final TREE_READONLY flag in place.  processing_template_decl
+       is known to be 0 in this part of function.
+
+       PR c++/33894
+       * cp-tree.h: Update comment - TYPE_LANG_FLAG_0 is not
+       OMP_ATOMIC_DEPENDENT_P in OMP_ATOMIC.
+       * pt.c (tsubst_expr): Assert OMP_ATOMIC_DEPENDENT_P.
+       * semantics.c (finish_omp_atomic): Revert most of the
+       2007-02-05 changes, just keep the new representation of
+       OMP_ATOMIC_DEPENDENT_P OMP_ATOMIC.
+
+2007-11-05  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR c++/33871
+       * decl2.c (constrain_visibility): Clear DECL_ONE_ONLY if marked
+       local.
+
+2007-11-05  Douglas Gregor  <doug.gregor@gmail.com>
+
+       PR c++/33996
+       PR c++/33235
+       PR c++/33930
+       * typeck.c (merge_types): Don't lose rvalue references when
+       merging types.
+       * call.c (build_over_call): Don't elide move constructors just
+       because the copy constructor is trivial (!).
+       (compare_ics): If comparing cv-qualifiers fails, we can still order
+       based on binding lvalues vs. rvalues.
+
+2007-11-05  Douglas Gregor  <doug.gregor@gmail.com>
+
+       PR c++/33939
+       * pt.c (unify_pack_expansion): bring handling of function call
+       arguments into line with type_unification_real. 
+
+2007-11-05  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
+
+       * typeck.c (build_binary_op): Use pedwarn instead of error for
+       consistency.
+
+2007-11-05  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/33836
+       * parser.c (cp_parser_unary_expression): For &&label call
+       cp_parser_non_integral_constant_expression and return error_mark_node
+       if it returned true.
+
+       PR c++/33969
+       * decl.c (grokdeclarator): Don't call build_memfn_type if type
+       is neither FUNCTION_TYPE nor METHOD_TYPE.
+
 2007-11-02  Jakub Jelinek  <jakub@redhat.com>
 
        PR c++/33516