1 2012-07-17 Jason Merrill <jason@redhat.com>
4 * tree.c (build_cplus_array_type): Also add TYPE_CANONICAL
5 to the list of variants.
7 2012-07-17 Jason Merrill <jason@redhat.com>
10 * parser.c (cp_parser_class_head): Call xref_basetypes here.
11 (cp_parser_class_specifier_1): Not here.
12 * pt.c (tsubst_decl) [USING_DECL]: Check uses_template_parms
13 as well as DECL_DEPENDENT_P.
15 2012-07-13 Jason Merrill <jason@redhat.com>
18 * method.c (synthesized_method_walk): Initialize no_implicit_p sooner.
20 2012-07-10 Jason Merrill <jason@redhat.com>
24 * cp-tree.h (FNDECL_SUPPRESS_IMPLICIT_DECL): New.
25 (struct lang_decl_fn): Add suppress_implicit_decl field.
26 * method.c (implicitly_declare_fn): Check it.
27 (process_subob_fn): Add no_implicit_p parm.
28 (walk_field_subobs, synthesized_method_walk): Likewise.
29 (maybe_explain_implicit_delete): Adjust.
30 (explain_implicit_non_constexpr): Adjust.
32 * method.c (synthesized_method_walk): Cleanups don't affect the EH
35 2012-07-02 Jason Merrill <jason@redhat.com>
38 * class.c (resolves_to_fixed_type_p): Check uses_template_parms
39 (current_function_decl) instead of processing_template_decl.
42 * semantics.c (maybe_add_lambda_conv_op): Don't set
45 2012-06-27 Fabien Chêne <fabien@gcc.gnu.org>
48 * cp-tree.h (insert_late_enum_def_into_classtype_sorted_fields):
50 * class.c (insert_into_classtype_sorted_fields): New.
51 (add_enum_fields_to_record_type): New.
52 (count_fields): Adjust the comment.
53 (add_fields_to_record_type): Likewise.
54 (finish_struct_1): Move the code that inserts the fields for the
55 sorted case, into insert_into_classtype_sorted_fields, and call
57 (insert_late_enum_def_into_classtype_sorted_fields): Define.
58 * decl.c (finish_enum_value_list): Call
59 insert_late_enum_def_into_classtype_sorted_fields if a late enum
60 definition is encountered.
62 2012-06-25 Jason Merrill <jason@redhat.com>
66 * pt.c (tsubst_pack_expansion): Copy before dummy tsubst.
69 * typeck.c (decay_conversion): Don't discard side-effects from
70 expressions of nullptr_t.
73 * semantics.c (build_data_member_initialization): Always keep
74 initializer for empty base.
75 (cxx_eval_bare_aggregate): Discard it here.
77 2012-06-25 Jakub Jelinek <jakub@redhat.com>
80 * class.c (check_bases_and_members): Avoid -Wuninitialized
81 diagnostics for non-static const members or references if they
84 2012-06-19 Jason Merrill <jason@redhat.com>
87 * name-lookup.c (constructor_name_p): Don't try to look at the
88 name of a DECLTYPE_TYPE.
92 * pt.c (instantiate_class_template_1): Set LAMBDA_EXPR_THIS_CAPTURE.
93 (instantiate_decl): Don't push_to_top_level for local class methods.
94 (instantiate_class_template_1): Or for local classes.
97 * pt.c (lookup_template_class_1): Use ts_global.
99 2012-06-14 Richard Guenther <rguenther@suse.de>
101 Backport from mainline
102 2012-06-11 Richard Guenther <rguenther@suse.de>
105 * mangle.c (write_array_type): Use double-ints for array domain
108 2012-06-14 Richard Guenther <rguenther@suse.de>
110 Backport from mainline
111 2012-06-06 Fabien Chêne <fabien@gcc.gnu.org>
114 * parser.c (cp_parser_alias_declaration): Return earlier
117 2012-06-14 Release Manager
119 * GCC 4.7.1 released.
121 2012-06-12 Jason Merrill <jason@redhat.com>
126 * pt.c (instantiate_class_template_1): Set LAMBDA_EXPR_THIS_CAPTURE.
127 (instantiate_decl): Don't push_to_top_level for local class methods.
128 (instantiate_class_template_1): Or for local classes.
130 2012-06-04 Paolo Carlini <paolo.carlini@oracle.com>
133 * call.c (build_conditional_expr_1): Use OPT_Wenum_compare
134 to control enumeral mismatch in conditional expression too.
136 2012-06-01 Jason Merrill <jason@redhat.com>
139 * parser.c (cp_parser_class_head): Apply attributes here.
140 * semantics.c (begin_class_definition): Not here.
144 * parser.c (cp_parser_binary_expression): Bail early if we're parsing
145 tentatively and the LHS has a parse error.
147 2012-06-01 Jason Merrill <jason@redhat.com>
150 * pt.c (instantiate_class_template_1): Set LAMBDA_EXPR_THIS_CAPTURE.
151 (instantiate_decl): Don't push_to_top_level for local class methods.
152 (instantiate_class_template_1): Or for local classes.
155 * pt.c (do_auto_deduction): Don't try to deduce from a
156 type-dependent initializer.
158 2012-05-31 Jason Merrill <jason@redhat.com>
162 * call.c (joust): Handle comparing list and non-list ctors.
164 2012-05-30 Jason Merrill <jason@redhat.com>
167 * tree.c (stabilize_init): Side effects make the init unstable.
169 2012-05-30 Jason Merrill <jason@redhat.com>
172 * call.c (convert_like_real) [ck_list]: Take array address directly.
173 * typeck.c (decay_conversion): Reject decay of an array compound
176 2012-05-29 Paolo Carlini <paolo.carlini@oracle.com>
179 * tree.c (stabilize_expr): Handle exp of void type.
181 2012-05-28 Paolo Carlini <paolo.carlini@oracle.com>
184 * semantics.c (potential_constant_expression_1): Handle LTGT_EXPR.
186 2012-05-15 Alexandre Oliva <aoliva@redhat.com>
189 * pt.c (tsubst_decl): Bail out if argvec is error_mark_node.
191 2012-05-10 Paolo Carlini <paolo.carlini@oracle.com>
194 * decl.c (check_default_argument): Fix typo (POINTER_TYPE_P
195 instead of TYPE_PTR_P) in zero-as-null-pointer-constant warning.
197 2012-05-03 Paolo Carlini <paolo.carlini@oracle.com>
200 * call.c (build_over_call): Handle final member functions
202 (build_new_method_call_1): Do not handle here.
204 2012-04-17 Paolo Carlini <paolo.carlini@oracle.com>
207 * parser.c (cp_parser_member_declaration): Check that
208 initializer_token_start is non null before dereferencing it.
210 2012-04-16 Jason Merrill <jason@redhat.com>
213 * pt.c (determine_specialization): Instead of comparing the number
214 of parms, check that tsubst gives the right answer.
217 * pt.c (convert_template_argument): Handle template template
221 * pt.c (tsubst_pack_expansion): Use tsubst_expr for template
224 2012-04-15 Jason Merrill <jason@redhat.com>
228 * pt.c (coerce_template_parms): Even if we aren't converting we
229 want to expand argument packs.
231 2012-04-15 Fabien Chêne <fabien@gcc.gnu.org>
234 * parser.c (cp_parser_class_name): Call strip_using_decl and
235 return the target decl.
236 * name-lookup.c (strip_using_decl): Returns NULL_TREE if the decl
237 to be stripped is NULL_TREE.
238 (qualify_lookup): Call strip_using_decl and perform some checks on
241 2012-04-13 Jason Merrill <jason@redhat.com>
244 * pt.c (any_pack_expanson_args_p): New.
245 (coerce_template_parms): Use it.
247 2012-04-11 Jason Merrill <jason@redhat.com>
250 * decl.c (check_tag_decl): Don't complain about attributes if we
251 don't even have a type.
253 2012-04-05 Jason Merrill <jason@redhat.com>
256 * tree.c (lvalue_kind): Treat a deferred access control SCOPE_REF
259 2012-04-03 Jason Merrill <jason@redhat.com>
262 * pt.c (tsubst_initializer_list): A pack expansion with no elements
263 means value-initialization.
265 2012-03-29 Meador Inge <meadori@codesourcery.com>
268 * semantics.c (cxx_fold_indirect_ref): Don't attempt to fold
269 stripped child trees that are not pointer types.
271 2012-03-29 Paolo Carlini <paolo.carlini@oracle.com>
274 * decl.c (check_default_argument): With -Wzero-as-null-pointer-constant
275 warn for a zero as null pointer constant default argument.
277 2012-03-29 Jason Merrill <jason@redhat.com>
280 * tree.c (copy_binfo): Handle BINFO_DEPENDENT_BASE_P.
282 2012-03-29 Jakub Jelinek <jakub@redhat.com>
285 * decl.c (start_decl): Don't call maybe_apply_pragma_weak
286 if processing_template_decl.
288 2012-03-29 Jason Merrill <jason@redhat.com>
291 * call.c (compare_ics): Handle ck_aggr like ck_list.
293 2012-03-28 Jason Merrill <jason@redhat.com>
296 * typeck.c (lookup_destructor): Clear BASELINK_QUALIFIED_P if
297 we didn't get an explicit scope.
298 * pt.c (tsubst_baselink): Likewise.
300 2012-03-22 Paolo Carlini <paolo.carlini@oracle.com>
303 * class.c (check_field_decls): Call literal_type_p only
306 2012-03-22 Jakub Jelinek <jakub@redhat.com>
309 * decl.c (check_tag_decl): Only use CLASSTYPE_TEMPLATE_INSTANTIATION
310 on CLASS_TYPE_P types.
312 2012-03-22 Jason Merrill <jason@redhat.com>
315 * method.c (implicitly_declare_fn): Set DECL_EXTERNAL.
317 2012-03-22 Jakub Jelinek <jakub@redhat.com>
319 Backported from mainline
320 2012-03-14 Jakub Jelinek <jakub@redhat.com>
323 * parser.c (lookup_literal_operator): Return fn only if
324 processed all arguments from args vector and argtypes is
327 2012-03-22 Release Manager
329 * GCC 4.7.0 released.
331 2012-03-20 Jason Merrill <jason@redhat.com>
333 * mangle.c (write_type): Handle 'auto'.
334 * init.c (build_new): Don't do auto deduction where it might
335 affect template mangling.
337 2012-03-07 Jason Merrill <jason@redhat.com>
340 * mangle.c (write_literal_operator_name): The length comes after the
343 2012-02-29 Jason Merrill <jason@redhat.com>
346 * decl.c (check_tag_decl): Move warning for misplaced attributes here.
347 (shadow_tag): From here.
348 * parser.c (cp_parser_explicit_instantiation): Don't warn here.
350 2012-02-21 Jakub Jelinek <jakub@redhat.com>
353 * typeck.c (check_literal_operator_args): Initialize *long_double_p
354 and *long_long_unsigned_p even if processing_template_decl.
356 2012-02-16 Jason Merrill <jason@redhat.com>
359 * decl.c (define_label): Use timevar_cond_start/stop.
361 2012-02-16 Fabien Chêne <fabien@gcc.gnu.org>
364 * decl.c (xref_basetypes): call dependent_scope_p instead of
367 2012-02-16 Jason Merrill <jason@redhat.com>
370 * error.c (dump_expr): Handle lambda closures specifically.
372 2012-02-14 Jason Merrill <jason@redhat.com>
374 * parser.c (cp_parser_explicit_instantiation): Give a warning
375 for ignored attributes on explicit class instantiation.
377 2012-02-14 Jakub Jelinek <jakub@redhat.com>
380 * pt.c (tsubst_copy_asm_operands): For LABEL_DECL values call
381 lookup_label on label's name and set TREE_USED.
383 2012-02-14 Jason Merrill <jason@redhat.com>
386 * decl.c (local_variable_p_walkfn): Don't check DECL_ARTIFICIAL.
388 2012-02-14 Jakub Jelinek <jakub@redhat.com>
391 * decl.c (duplicate_decls): If olddecl has bigger DECL_ALIGN than
392 newdecl, copy DECL_ALIGN to newdecl and or DECL_USER_ALIGN bits.
394 2012-02-07 Jason Merrill <jason@redhat.com>
397 * semantics.c (cx_check_missing_mem_inits): Handle unions.
398 Fix constexpr default constructor logic.
401 * pt.c (tsubst): Strip uninstantiated typedef.
403 2012-02-06 Jason Merrill <jason@redhat.com>
406 * cvt.c (build_expr_type_conversion): Check for template conversion.
408 2012-01-31 Jason Merrill <jason@redhat.com>
411 * cp-tree.h (PACK_EXPANSION_LOCAL_P): New.
412 * pt.c (make_pack_expansion, tsubst_initializer_list): Set it.
413 (tsubst_pack_expansion): Check it.
415 2012-01-29 Paolo Carlini <paolo.carlini@oracle.com>
418 * class.c (explain_non_literal_class): Correctly handle implicitly
419 deleted constructors.
421 2012-01-27 Jakub Jelinek <jakub@redhat.com>
424 * pt.c (tsubst_pack_expansion): Delete and restore
425 local_specialization whenever need_local_specialization, not just
426 when saved_local_specializations is non-NULL.
428 2012-01-26 Paolo Carlini <paolo.carlini@oracle.com>
431 * error.c (dump_decl, [TEMPLATE_ID_EXPR]): Handle error_mark_node
432 as TREE_OPERAND (t, 1).
434 2012-01-24 Jason Merrill <jason@redhat.com>
437 * decl.c (xref_basetypes): Check VEC_length instead of VEC_space.
440 * tree.c (called_fns_equal): Check template args.
441 (cp_tree_equal): Call it.
443 2012-01-24 Aldy Hernandez <aldyh@redhat.com>
444 Patrick Marlier <patrick.marlier@gmail.com>
447 * class.c (set_method_tm_attributes): Use TARGET_THUNK instead of
448 thunk for set_one_vmethod_tm_attributes.
450 2012-01-24 Paolo Carlini <paolo.carlini@oracle.com>
453 * call.c (build_over_call): Check for error_mark_node as
454 TREE_VALUE when default arguments are processed.
456 2012-01-23 Jason Merrill <jason@redhat.com>
459 * decl2.c (determine_visibility): Check for visibility attribute
460 on template specialization.
462 2012-01-23 Paolo Carlini <paolo.carlini@oracle.com>
465 * pt.c (parameter_of_template_p): Skip error_mark_node parameters.
467 2012-01-23 Jason Merrill <jason@redhat.com>
470 * class.c (add_method): Set OVL_USED for using-decls.
471 * tree.c (ovl_scope): New.
472 * cp-tree.h: Declare it.
473 * parser.c (cp_parser_template_name): Use it.
474 * semantics.c (baselink_for_fns): Likewise.
475 * name-lookup.c (set_inherited_value_binding_p): Likewise.
477 2012-01-20 Paolo Carlini <paolo.carlini@oracle.com>
480 * pt.c (lookup_template_class_1): Check context returned by
481 tsubst for error_mark_node.
483 2012-01-19 Kai Tietz <ktietz@redhat.com>
486 * decl2.c (save_template_attributes): Use merge_attributes
487 instead of chaining up via TREE_CHAIN.
489 2012-01-19 Jason Merrill <jason@redhat.com>
492 * class.c (finish_struct): Call add_method here for function usings.
493 * semantics.c (finish_member_declaration): Not here.
495 2012-01-18 Paolo Carlini <paolo.carlini@oracle.com>
498 * typeck2.c (store_init_value): Within a template guard
499 cxx_constant_value with require_potential_constant_expression.
500 * pt.c (convert_nontype_argument): Likewise.
502 2012-01-16 Jakub Jelinek <jakub@redhat.com>
505 * mangle.c (write_template_arg_literal): Handle complex.
507 2012-01-16 Jason Merrill <jason@redhat.com>
510 * mangle.c (mangle_decl): Don't mangle uninstantiated templates.
513 * typeck.c (build_static_cast_1): Handle bit-fields properly.
515 2012-01-13 Ian Lance Taylor <iant@google.com>
518 * typeck.c (enum_cast_to_int): New static function.
519 (cp_build_binary_op): When handling warn_sign_compare, don't test
520 for TREE_NO_WARNING. Do call enum_cast_to_int.
521 * call.c (avoid_sign_compare_warnings): Remove static function.
522 (build_new_op_1): Don't call avoid_sign_compare_warnings.
524 2012-01-13 Steven Bosscher <steven@gcc.gnu.org>
526 * decl2.c: Do not include tree-mudflap.h
527 * semantics.c: Likewise.
529 2012-01-13 Jason Merrill <jason@redhat.com>
532 * semantics.c (finish_break_stmt): Avoid adding an unreachable
536 * decl2.c (constrain_visibility): Clear DECL_VISIBILITY_SPECIFIED
537 when reducing the visibility.
540 * class.c (build_vtbl_initializer): Use __cxa_deleted_virtual.
542 2012-01-12 Jason Merrill <jason@redhat.com>
545 * pt.c (value_dependent_expression_p): Treat STMT_EXPR as
548 2012-01-13 Dodji Seketeli <dodji@redhat.com>
551 * semantics.c (cp_parser_ctor_initializer_opt_and_function_body):
552 Set the pointer to the last block of the constructor to the
554 (build_constexpr_constructor_member_initializers): Get
555 build_data_member_initialization a chance to deal with more
556 statements before we choke.
558 2012-01-12 Jason Merrill <jason@redhat.com>
561 * mangle.c (write_expression): Mangle BASELINK scope if
562 BASELINK_QUALIFIED_P.
563 * search.c (adjust_result_of_qualified_name_lookup): Set
564 BASELINK_QUALIFIED_P.
565 * tree.c (cp_tree_equal) [BASELINK]: Compare BASELINK_QUALIFIED_P.
566 * parser.c (cp_parser_postfix_dot_deref_expression): Don't call
567 adjust_result_of_qualified_name_lookup for non-qualified names.
570 * pt.c (unify): Handle error_mark_node.
572 2012-01-11 Jason Merrill <jason@redhat.com>
575 * call.c (standard_conversion): For ptrmemfuncs, compare the
579 * mangle.c (find_substitution): A type is only a substitution
580 match if we're looking for a type.
581 (write_nested_name): Use decl_mangling_context.
583 * decl.c (decls_match): Assert that the arguments are decls.
586 * pt.c (resolve_overloaded_unification): Compare types with
587 same_type_p, not decls_match.
589 2012-01-10 Jason Merrill <jason@redhat.com>
592 * class.c (build_base_path): Diagnose ambiguous base.
595 * semantics.c (cxx_eval_call_expression): Always retry previously
596 non-constant expressions.
598 2012-01-06 Jason Merrill <jason@redhat.com>
602 * parser.c (cp_parser_new_expression): Set
603 type_definition_forbidden_message.
609 * mangle.c (write_expression): Support NEW_EXPR, DELETE_EXPR,
610 THROW_EXPR, CONSTRUCTOR, OVERLOAD. Fix PREINCREMENT_EXPR and
612 (write_template_arg): Fix mangling of class-scope functions and
614 (mangle_decl): Update suggested -fabi-version argument.
615 * operators.def: Add DOTSTAR_EXPR, REINTERPRET_CAST_EXPR,
616 DYNAMIC_CAST_EXPR; correct CONST_CAST_EXPR, STATIC_CAST_EXPR.
617 * tree.c (dependent_name): No longer static.
618 * cp-tree.h: Declare it.
619 * pt.c (unify): Defer handling of unconverted functions.
621 * mangle.c (mangle_decl): Don't generate mangling aliases
622 for maybe-in-charge [cd]tors.
624 * error.c (dump_expr): Print type of CONSTRUCTOR.
626 2012-01-05 Dodji Seketeli <dodji@redhat.com>
629 * parser.c (cp_parser_alias_declaration): Get out early upon
630 errors in the identifier or the attributes.
632 2012-01-04 Paolo Carlini <paolo.carlini@oracle.com>
635 * pt.c (tsubst_copy_and_build): Maybe set TREE_NO_WARNING on
636 the tree returned by build_x_binary_op.
638 2012-01-03 Paolo Carlini <paolo.carlini@oracle.com>
641 * parser.c (cp_parser_postfix_open_square_expression): Handle
642 postfix-expression [ braced-init-list ].
644 2012-01-03 Paolo Carlini <paolo.carlini@oracle.com>
647 * rtti.c (build_dynamic_cast_1): In case of T a pointer type,
648 call decay_conversion on v.
650 2012-01-03 Paolo Carlini <paolo.carlini@oracle.com>
653 * decl.c (duplicate_decls): With -Wredundant-decls don't warn for
654 declaration followed by specialization.
656 2012-01-03 Jakub Jelinek <jakub@redhat.com>
659 * semantics.c (finish_omp_clauses): Call fold_build_cleanup_point_expr
660 on OMP_CLAUSE_{IF,FINAL,NUM_THREADS,SCHEDULE_CHUNK}_EXPR.
662 2012-01-02 Jason Merrill <jason@redhat.com>
666 * method.c (walk_field_subobs): Don't check for uninitialized
668 (synthesized_method_walk): Check here.
672 * parser.c (cp_parser_cache_defarg): Split out...
673 (cp_parser_parameter_declaration): ...from here.
674 (cp_parser_save_nsdmi): Use it.
675 (cp_parser_cache_group): Remove CPP_COMMA support.
677 2012-01-02 Dodji Seketeli <dodji@redhat.com>
680 * semantics.c (cx_check_missing_mem_inits): Don't assert in case
683 2012-01-02 Paolo Carlini <paolo.carlini@oracle.com>
686 * typeck2.c (digest_init_r): Use copy_init when initializing
689 2012-01-01 Paolo Carlini <paolo.carlini@oracle.com>
692 * decl.c (build_enumerator): Don't call perform_integral_promotions
695 2012-01-01 Paolo Carlini <paolo.carlini@oracle.com>
698 * typeck.c (build_reinterpret_cast_1): Implement resolution of
701 2012-01-01 Fabien Chêne <fabien@gcc.gnu.org>
703 * parser.c (cp_parser_using_declaration): Add a warning about
704 deprecated access declarations when no errors were encountered
705 while parsing the access declaration. Save the first token in
706 order to emit the warning at the right place.
708 Copyright (C) 2012 Free Software Foundation, Inc.
710 Copying and distribution of this file, with or without modification,
711 are permitted in any medium without royalty provided the copyright
712 notice and this notice are preserved.