OSDN Git Service

gcc/cp/ChangeLog:
[pf3gnuchains/gcc-fork.git] / gcc / cp / ChangeLog
index fa48f7c..e609de4 100644 (file)
@@ -1,5 +1,253 @@
+2008-02-06  Alexandre Oliva  <aoliva@redhat.com>
+
+       PR c++/35056
+       * tree.c: Include tree-flow.h.
+       (build_target_expr): Check type compatibility.
+       * Make-lang.in (cp/tree.o): Depend on $(TREE_FLOW_H).
+       * call.c (convert_like_real): Convert bitfield to expected type.
+
+2008-02-06  Douglas Gregor  <doug.gregor@gmail.com>
+
+       PR c++/35049
+       PR c++/35096
+       * typeck.c (structural_comptypes): Call cp_comptypes.
+       (comptypes): New; called from the C/C++ common bits to perform
+       strict checks.
+       (cp_comptypes): Renamed from comptypes, which is already used,
+       with a different signature, by the C++ front end.
+       (build_reinterpret_cast_1): Call cp_comptypes.
+       (ptr_reasonably_similar): Ditto.
+       * decl.c (decls_match): Ditto.
+       * cvt.c (convert_to_reference): Ditto.
+       * cp-tree.h (same_type_p): Ditto.
+       (same_or_base_type_p): Ditto.
+       (comptypes): Rename to cp_comptypes.
+       * pt.c (canonical_type_parameter): Call cp_comptypes.
+
+2008-02-05  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/33553
+       * pt.c (tsubst) <case INTEGER_TYPE>: Don't issue error if max is
+       value dependent expression.
+
+2008-02-05  Douglas Gregor  <doug.gregor@gmail.com>
+
+       PR c++/35074
+       * decl2.c (save_template_attributes): When we're modifying the
+       TYPE_MAIN_VARIANT to add new attributes, be sure to also modify
+       all of the other variants to add those same attributes. Otherwise,
+       the main variant will be inconsistent with those other variants.
+       
+2008-02-04  Richard Guenther  <rguenther@suse.de>
+
+       PR java/35035
+       * decl.c (record_builtin_java_type): Make jboolean a
+       integer type again where its mode doesn't match that of bool.
+
+2008-02-02  Jason Merrill  <jason@redhat.com>
+           Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/33916
+       * init.c (build_value_init_1): New function.
+       (build_value_init): New function.
+       * typeck2.c (build_functional_cast): Call it.
+       * cp-gimplify.c (cp_gimplify_init_expr): Handle its output.
+
+       * cp-tree.h (TYPE_HAS_USER_CONSTRUCTOR): Rename from 
+       TYPE_HAS_CONSTRUCTOR.
+       * class.c (finish_struct_bits, maybe_warn_about_overly_private_class,
+       add_implicitly_declared_members): Adjust.
+       (check_field_decls): Adjust. Remove warnings about reference/const
+       in class without constructor.
+       (check_bases_and_members): Adjust.  Give those warnings here instead.
+       * decl.c (fixup_anonymous_aggr): Adjust.
+       (check_initializer): Adjust, clarify logic slightly.
+       (grok_special_member_properties): Adjust, only set if user-provided.
+       * rtti.c (create_tinfo_types): Don't set.
+       * cvt.c (ocp_convert): Remove exception for vtable_entry_type et al.
+       Use same_type_ignoring_top_level_qualifiers_p.
+       * pt.c (check_explicit_specialization): Adjust.
+       (instantiate_class_template): Adjust.
+
+2008-01-31  Douglas Gregor  <doug.gregor@gmail.com>
+           Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/34935
+       PR c++/34936
+       * typeck.c (structural_comptypes): Handle comparisons of
+       VOID_TYPE, BOOLEAN_TYPE, INTEGER_TYPE, FIXED_POINT_TYPE, and
+       REAL_TYPE nodes.
+       * mangle.c (write_builtin_type): Map down to the canonical type,
+       which will be one of the predefined type nodes.
+
+2008-01-29  Michael Meissner  <michael.meissner@amd.com>
+
+       PR 35004
+       * cp-tree.h (struct full_lang_decl): Make tree_code bitfield 16
+       bits to allow for expansion of the number of middle end tree
+       codes.
+
+2008-01-29  Douglas Gregor  <doug.gregor@gmail.com>
+
+       PR c++/34055
+       PR c++/34103
+       PR c++/34219
+       PR c++/34606
+       PR c++/34753
+       PR c++/34754
+       PR c++/34755
+       PR c++/34919
+       PR c++/34961
+       * typeck.c (check_return_expr): Tweak call to
+       check_for_bare_parameter_packs.
+       * class.c (add_method): Be careful with error_mark_nodes.
+       * cp-tree.h (check_for_bare_parameter_packs): Remove "*" from
+       signature.
+       * pt.c (struct find_parameter_pack_data): Remove
+       SET_PACKS_TO_ERROR.
+       (find_parameter_packs_r): Don't use SET_PACKS_TO_ERROR.
+       (uses_parameter_packs): Don't set SET_PACKS_TO_ERROR.
+       (make_pack_expansion): Ditto.
+       (check_for_bare_parameter_packs): Parameter is now a tree, not a
+       tree*.
+       (process_template_parm): Tweak call to
+       check_for_bare_parameter_packs.  
+       (push_template_decl_real): Tweak calls to
+       check_for_bare_parameter_packs. If bare parameter packs are found
+       in the list of exceptions, clear out that list after giving an
+       error.
+       * semantics.c (finish_cond): Tweak call to
+       check_for_bare_parameter_packs.
+       (finish_expr_stmt): Ditto.
+       (finish_for_expr): Ditto.
+       (finish_switch_cond): Ditto.
+       (finish_mem_initializers): Ditto.
+       (finish_member_declaration): Ditto.
+       (finish_static_assert): Check for bare parameter packs in the
+       condition.
+       * decl2.c (cplus_decl_attributes): Check for bare parameter packs in the
+       attributes of a declaration.
+       * parser.c (cp_parser_using_declaration): Tweak call to
+       check_for_bare_parameter_packs.
+       (cp_parser_base_clause): Ditto.
+
+2008-01-28  Jason Merrill  <jason@redhat.com>
+
+       PR c++/35007
+       * class.c (build_base_path): Fix !want_pointer case.
+
+2008-01-27  Jason Merrill  <jason@redhat.com>
+
+       PR c++/27177
+       * class.c (build_base_path): Fix previous change.
+
+2008-01-26  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/34965
+       * error.c (dump_expr): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
+       and TRUTH_XOR_EXPR.
+
+2008-01-26  Richard Guenther  <rguenther@suse.de>
+
+       PR c++/34235
+       * typeck.c (build_binary_op): Remove code to shorten compares.
+
+2008-01-25  Richard Guenther  <rguenther@suse.de>
+
+       PR c++/33887
+       * decl.c (record_builtin_java_type): Make __java_boolean
+       a variant of bool.
+       * typeck.c (structural_comptypes): Move TYPE_FOR_JAVA check
+       after TYPE_MAIN_VARIANT check.
+
+2008-01-25  Jason Merrill  <jason@redhat.com>
+
+       PR c++/27177
+       * class.c (build_base_path): Don't mess with virtual access if
+       skip_evaluation.
+       * call.c (standard_conversion): Don't check whether source type
+       is complete.
+
+       * decl2.c (is_late_template_attribute): Don't defer attribute
+       visibility just because the type is dependent.
+
+2008-01-25  Jason Merrill  <jason@redhat.com>
+           Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/31780
+       * call.c (standard_conversion): Allow conversion from integer/real
+       to complex.
+       (compare_ics): Such a conversion is worse than a normal arithmetic
+       conversion.
+       
+2008-01-25  Richard Guenther  <rguenther@suse.de>
+
+       PR c++/33887
+       * cp-lang.c (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Define
+       to true.
+
+2008-01-24  Paolo Carlini  <pcarlini@suse.de>
+
+        PR c++/34603
+        * pt.c (push_template_decl_real): Return error_mark_node in case
+       of template definition of non-template.
+
+2008-01-24  Jason Merrill  <jason@redhat.com>
+
+       PR c++/34913
+       * decl2.c (is_late_template_attribute): Defer any attribute with 
+       dependent args.  Also defer type attributes if the type is dependent.
+
+2008-01-22  Jakub Jelinek  <jakub@redhat.com>
+           Alexandre Oliva  <aoliva@redhat.com>
+
+       PR c++/33984
+       * call.c (reference_binding): For bitfields use the declared bitfield
+       type.
+       (add_builtin_candidates): Likewise.
+       * class.c (layout_class_type): For bitfields copy over the
+       original type quals.
+
+2008-01-22  Jason Merrill  <jason@redhat.com>
+
+       PR c++/28560
+       * decl.c (groktypename): Also ignore attributes on dependent 
+       possibly-class types.
+
+       PR c++/34912
+       * friend.c (do_friend): Check for prior declaration of a friend 
+       function of a local class.
+       * name-lookup.c (lookup_name_innermost_nonclass_level): 
+       No longer static.
+       * name-lookup.h: Declare it.
+
+2008-01-22  Tom Tromey  <tromey@redhat.com>
+
+       PR c++/34829:
+       * init.c (build_new_1): Only disallow Java aggregates.
+
+2008-01-22  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/34607
+       * semantics.c (finish_omp_for): Don't call c_finish_omp_for
+       if decl or init is error_mark_node.
+
+       PR c++/34918
+       * error.c (dump_expr): Handle VECTOR_CST.
+
 2008-01-21  Jason Merrill  <jason@redhat.com>
 
+       PR c++/33959
+       * pt.c (tsubst_aggr_type): Make sure our context is complete.
+
+       PR c++/34573
+       * pt.c (retrieve_local_specialization): Robustify.
+       (tsubst_pack_expansion, tsubst_decl): Remove redundant checks.
+
+       PR c++/34846
+       * pt.c (tsubst): Only call retrieve_local_specialization if the
+       original typedef was in a function template.
+
        PR c++/34196
        * decl.c (wrap_cleanups_r): Set TRY_CATCH_IS_CLEANUP.