1 2012-07-18 Jason Merrill <jason@redhat.com>
3 * method.c (process_subob_fn): Make sure no_implicit_p is non-null
4 before trying to store through it.
6 2012-07-17 Jason Merrill <jason@redhat.com>
9 * decl.c (finish_enum_value_list): Only call
10 insert_late_enum_def_into_classtype_sorted_fields in class scope.
12 2012-07-17 Jason Merrill <jason@redhat.com>
15 * tree.c (build_cplus_array_type): Also add TYPE_CANONICAL
16 to the list of variants.
18 2012-07-17 Jason Merrill <jason@redhat.com>
21 * parser.c (cp_parser_class_head): Call xref_basetypes here.
22 (cp_parser_class_specifier_1): Not here.
23 * pt.c (tsubst_decl) [USING_DECL]: Check uses_template_parms
24 as well as DECL_DEPENDENT_P.
26 2012-07-13 Jason Merrill <jason@redhat.com>
29 * method.c (synthesized_method_walk): Initialize no_implicit_p sooner.
31 2012-07-10 Jason Merrill <jason@redhat.com>
35 * cp-tree.h (FNDECL_SUPPRESS_IMPLICIT_DECL): New.
36 (struct lang_decl_fn): Add suppress_implicit_decl field.
37 * method.c (implicitly_declare_fn): Check it.
38 (process_subob_fn): Add no_implicit_p parm.
39 (walk_field_subobs, synthesized_method_walk): Likewise.
40 (maybe_explain_implicit_delete): Adjust.
41 (explain_implicit_non_constexpr): Adjust.
43 * method.c (synthesized_method_walk): Cleanups don't affect the EH
46 2012-07-02 Jason Merrill <jason@redhat.com>
49 * class.c (resolves_to_fixed_type_p): Check uses_template_parms
50 (current_function_decl) instead of processing_template_decl.
53 * semantics.c (maybe_add_lambda_conv_op): Don't set
56 2012-06-27 Fabien Chêne <fabien@gcc.gnu.org>
59 * cp-tree.h (insert_late_enum_def_into_classtype_sorted_fields):
61 * class.c (insert_into_classtype_sorted_fields): New.
62 (add_enum_fields_to_record_type): New.
63 (count_fields): Adjust the comment.
64 (add_fields_to_record_type): Likewise.
65 (finish_struct_1): Move the code that inserts the fields for the
66 sorted case, into insert_into_classtype_sorted_fields, and call
68 (insert_late_enum_def_into_classtype_sorted_fields): Define.
69 * decl.c (finish_enum_value_list): Call
70 insert_late_enum_def_into_classtype_sorted_fields if a late enum
71 definition is encountered.
73 2012-06-25 Jason Merrill <jason@redhat.com>
77 * pt.c (tsubst_pack_expansion): Copy before dummy tsubst.
80 * typeck.c (decay_conversion): Don't discard side-effects from
81 expressions of nullptr_t.
84 * semantics.c (build_data_member_initialization): Always keep
85 initializer for empty base.
86 (cxx_eval_bare_aggregate): Discard it here.
88 2012-06-25 Jakub Jelinek <jakub@redhat.com>
91 * class.c (check_bases_and_members): Avoid -Wuninitialized
92 diagnostics for non-static const members or references if they
95 2012-06-19 Jason Merrill <jason@redhat.com>
98 * name-lookup.c (constructor_name_p): Don't try to look at the
99 name of a DECLTYPE_TYPE.
103 * pt.c (instantiate_class_template_1): Set LAMBDA_EXPR_THIS_CAPTURE.
104 (instantiate_decl): Don't push_to_top_level for local class methods.
105 (instantiate_class_template_1): Or for local classes.
108 * pt.c (lookup_template_class_1): Use ts_global.
110 2012-06-14 Richard Guenther <rguenther@suse.de>
112 Backport from mainline
113 2012-06-11 Richard Guenther <rguenther@suse.de>
116 * mangle.c (write_array_type): Use double-ints for array domain
119 2012-06-14 Richard Guenther <rguenther@suse.de>
121 Backport from mainline
122 2012-06-06 Fabien Chêne <fabien@gcc.gnu.org>
125 * parser.c (cp_parser_alias_declaration): Return earlier
128 2012-06-14 Release Manager
130 * GCC 4.7.1 released.
132 2012-06-12 Jason Merrill <jason@redhat.com>
137 * pt.c (instantiate_class_template_1): Set LAMBDA_EXPR_THIS_CAPTURE.
138 (instantiate_decl): Don't push_to_top_level for local class methods.
139 (instantiate_class_template_1): Or for local classes.
141 2012-06-04 Paolo Carlini <paolo.carlini@oracle.com>
144 * call.c (build_conditional_expr_1): Use OPT_Wenum_compare
145 to control enumeral mismatch in conditional expression too.
147 2012-06-01 Jason Merrill <jason@redhat.com>
150 * parser.c (cp_parser_class_head): Apply attributes here.
151 * semantics.c (begin_class_definition): Not here.
155 * parser.c (cp_parser_binary_expression): Bail early if we're parsing
156 tentatively and the LHS has a parse error.
158 2012-06-01 Jason Merrill <jason@redhat.com>
161 * pt.c (instantiate_class_template_1): Set LAMBDA_EXPR_THIS_CAPTURE.
162 (instantiate_decl): Don't push_to_top_level for local class methods.
163 (instantiate_class_template_1): Or for local classes.
166 * pt.c (do_auto_deduction): Don't try to deduce from a
167 type-dependent initializer.
169 2012-05-31 Jason Merrill <jason@redhat.com>
173 * call.c (joust): Handle comparing list and non-list ctors.
175 2012-05-30 Jason Merrill <jason@redhat.com>
178 * tree.c (stabilize_init): Side effects make the init unstable.
180 2012-05-30 Jason Merrill <jason@redhat.com>
183 * call.c (convert_like_real) [ck_list]: Take array address directly.
184 * typeck.c (decay_conversion): Reject decay of an array compound
187 2012-05-29 Paolo Carlini <paolo.carlini@oracle.com>
190 * tree.c (stabilize_expr): Handle exp of void type.
192 2012-05-28 Paolo Carlini <paolo.carlini@oracle.com>
195 * semantics.c (potential_constant_expression_1): Handle LTGT_EXPR.
197 2012-05-15 Alexandre Oliva <aoliva@redhat.com>
200 * pt.c (tsubst_decl): Bail out if argvec is error_mark_node.
202 2012-05-10 Paolo Carlini <paolo.carlini@oracle.com>
205 * decl.c (check_default_argument): Fix typo (POINTER_TYPE_P
206 instead of TYPE_PTR_P) in zero-as-null-pointer-constant warning.
208 2012-05-03 Paolo Carlini <paolo.carlini@oracle.com>
211 * call.c (build_over_call): Handle final member functions
213 (build_new_method_call_1): Do not handle here.
215 2012-04-17 Paolo Carlini <paolo.carlini@oracle.com>
218 * parser.c (cp_parser_member_declaration): Check that
219 initializer_token_start is non null before dereferencing it.
221 2012-04-16 Jason Merrill <jason@redhat.com>
224 * pt.c (determine_specialization): Instead of comparing the number
225 of parms, check that tsubst gives the right answer.
228 * pt.c (convert_template_argument): Handle template template
232 * pt.c (tsubst_pack_expansion): Use tsubst_expr for template
235 2012-04-15 Jason Merrill <jason@redhat.com>
239 * pt.c (coerce_template_parms): Even if we aren't converting we
240 want to expand argument packs.
242 2012-04-15 Fabien Chêne <fabien@gcc.gnu.org>
245 * parser.c (cp_parser_class_name): Call strip_using_decl and
246 return the target decl.
247 * name-lookup.c (strip_using_decl): Returns NULL_TREE if the decl
248 to be stripped is NULL_TREE.
249 (qualify_lookup): Call strip_using_decl and perform some checks on
252 2012-04-13 Jason Merrill <jason@redhat.com>
255 * pt.c (any_pack_expanson_args_p): New.
256 (coerce_template_parms): Use it.
258 2012-04-11 Jason Merrill <jason@redhat.com>
261 * decl.c (check_tag_decl): Don't complain about attributes if we
262 don't even have a type.
264 2012-04-05 Jason Merrill <jason@redhat.com>
267 * tree.c (lvalue_kind): Treat a deferred access control SCOPE_REF
270 2012-04-03 Jason Merrill <jason@redhat.com>
273 * pt.c (tsubst_initializer_list): A pack expansion with no elements
274 means value-initialization.
276 2012-03-29 Meador Inge <meadori@codesourcery.com>
279 * semantics.c (cxx_fold_indirect_ref): Don't attempt to fold
280 stripped child trees that are not pointer types.
282 2012-03-29 Paolo Carlini <paolo.carlini@oracle.com>
285 * decl.c (check_default_argument): With -Wzero-as-null-pointer-constant
286 warn for a zero as null pointer constant default argument.
288 2012-03-29 Jason Merrill <jason@redhat.com>
291 * tree.c (copy_binfo): Handle BINFO_DEPENDENT_BASE_P.
293 2012-03-29 Jakub Jelinek <jakub@redhat.com>
296 * decl.c (start_decl): Don't call maybe_apply_pragma_weak
297 if processing_template_decl.
299 2012-03-29 Jason Merrill <jason@redhat.com>
302 * call.c (compare_ics): Handle ck_aggr like ck_list.
304 2012-03-28 Jason Merrill <jason@redhat.com>
307 * typeck.c (lookup_destructor): Clear BASELINK_QUALIFIED_P if
308 we didn't get an explicit scope.
309 * pt.c (tsubst_baselink): Likewise.
311 2012-03-22 Paolo Carlini <paolo.carlini@oracle.com>
314 * class.c (check_field_decls): Call literal_type_p only
317 2012-03-22 Jakub Jelinek <jakub@redhat.com>
320 * decl.c (check_tag_decl): Only use CLASSTYPE_TEMPLATE_INSTANTIATION
321 on CLASS_TYPE_P types.
323 2012-03-22 Jason Merrill <jason@redhat.com>
326 * method.c (implicitly_declare_fn): Set DECL_EXTERNAL.
328 2012-03-22 Jakub Jelinek <jakub@redhat.com>
330 Backported from mainline
331 2012-03-14 Jakub Jelinek <jakub@redhat.com>
334 * parser.c (lookup_literal_operator): Return fn only if
335 processed all arguments from args vector and argtypes is
338 2012-03-22 Release Manager
340 * GCC 4.7.0 released.
342 2012-03-20 Jason Merrill <jason@redhat.com>
344 * mangle.c (write_type): Handle 'auto'.
345 * init.c (build_new): Don't do auto deduction where it might
346 affect template mangling.
348 2012-03-07 Jason Merrill <jason@redhat.com>
351 * mangle.c (write_literal_operator_name): The length comes after the
354 2012-02-29 Jason Merrill <jason@redhat.com>
357 * decl.c (check_tag_decl): Move warning for misplaced attributes here.
358 (shadow_tag): From here.
359 * parser.c (cp_parser_explicit_instantiation): Don't warn here.
361 2012-02-21 Jakub Jelinek <jakub@redhat.com>
364 * typeck.c (check_literal_operator_args): Initialize *long_double_p
365 and *long_long_unsigned_p even if processing_template_decl.
367 2012-02-16 Jason Merrill <jason@redhat.com>
370 * decl.c (define_label): Use timevar_cond_start/stop.
372 2012-02-16 Fabien Chêne <fabien@gcc.gnu.org>
375 * decl.c (xref_basetypes): call dependent_scope_p instead of
378 2012-02-16 Jason Merrill <jason@redhat.com>
381 * error.c (dump_expr): Handle lambda closures specifically.
383 2012-02-14 Jason Merrill <jason@redhat.com>
385 * parser.c (cp_parser_explicit_instantiation): Give a warning
386 for ignored attributes on explicit class instantiation.
388 2012-02-14 Jakub Jelinek <jakub@redhat.com>
391 * pt.c (tsubst_copy_asm_operands): For LABEL_DECL values call
392 lookup_label on label's name and set TREE_USED.
394 2012-02-14 Jason Merrill <jason@redhat.com>
397 * decl.c (local_variable_p_walkfn): Don't check DECL_ARTIFICIAL.
399 2012-02-14 Jakub Jelinek <jakub@redhat.com>
402 * decl.c (duplicate_decls): If olddecl has bigger DECL_ALIGN than
403 newdecl, copy DECL_ALIGN to newdecl and or DECL_USER_ALIGN bits.
405 2012-02-07 Jason Merrill <jason@redhat.com>
408 * semantics.c (cx_check_missing_mem_inits): Handle unions.
409 Fix constexpr default constructor logic.
412 * pt.c (tsubst): Strip uninstantiated typedef.
414 2012-02-06 Jason Merrill <jason@redhat.com>
417 * cvt.c (build_expr_type_conversion): Check for template conversion.
419 2012-01-31 Jason Merrill <jason@redhat.com>
422 * cp-tree.h (PACK_EXPANSION_LOCAL_P): New.
423 * pt.c (make_pack_expansion, tsubst_initializer_list): Set it.
424 (tsubst_pack_expansion): Check it.
426 2012-01-29 Paolo Carlini <paolo.carlini@oracle.com>
429 * class.c (explain_non_literal_class): Correctly handle implicitly
430 deleted constructors.
432 2012-01-27 Jakub Jelinek <jakub@redhat.com>
435 * pt.c (tsubst_pack_expansion): Delete and restore
436 local_specialization whenever need_local_specialization, not just
437 when saved_local_specializations is non-NULL.
439 2012-01-26 Paolo Carlini <paolo.carlini@oracle.com>
442 * error.c (dump_decl, [TEMPLATE_ID_EXPR]): Handle error_mark_node
443 as TREE_OPERAND (t, 1).
445 2012-01-24 Jason Merrill <jason@redhat.com>
448 * decl.c (xref_basetypes): Check VEC_length instead of VEC_space.
451 * tree.c (called_fns_equal): Check template args.
452 (cp_tree_equal): Call it.
454 2012-01-24 Aldy Hernandez <aldyh@redhat.com>
455 Patrick Marlier <patrick.marlier@gmail.com>
458 * class.c (set_method_tm_attributes): Use TARGET_THUNK instead of
459 thunk for set_one_vmethod_tm_attributes.
461 2012-01-24 Paolo Carlini <paolo.carlini@oracle.com>
464 * call.c (build_over_call): Check for error_mark_node as
465 TREE_VALUE when default arguments are processed.
467 2012-01-23 Jason Merrill <jason@redhat.com>
470 * decl2.c (determine_visibility): Check for visibility attribute
471 on template specialization.
473 2012-01-23 Paolo Carlini <paolo.carlini@oracle.com>
476 * pt.c (parameter_of_template_p): Skip error_mark_node parameters.
478 2012-01-23 Jason Merrill <jason@redhat.com>
481 * class.c (add_method): Set OVL_USED for using-decls.
482 * tree.c (ovl_scope): New.
483 * cp-tree.h: Declare it.
484 * parser.c (cp_parser_template_name): Use it.
485 * semantics.c (baselink_for_fns): Likewise.
486 * name-lookup.c (set_inherited_value_binding_p): Likewise.
488 2012-01-20 Paolo Carlini <paolo.carlini@oracle.com>
491 * pt.c (lookup_template_class_1): Check context returned by
492 tsubst for error_mark_node.
494 2012-01-19 Kai Tietz <ktietz@redhat.com>
497 * decl2.c (save_template_attributes): Use merge_attributes
498 instead of chaining up via TREE_CHAIN.
500 2012-01-19 Jason Merrill <jason@redhat.com>
503 * class.c (finish_struct): Call add_method here for function usings.
504 * semantics.c (finish_member_declaration): Not here.
506 2012-01-18 Paolo Carlini <paolo.carlini@oracle.com>
509 * typeck2.c (store_init_value): Within a template guard
510 cxx_constant_value with require_potential_constant_expression.
511 * pt.c (convert_nontype_argument): Likewise.
513 2012-01-16 Jakub Jelinek <jakub@redhat.com>
516 * mangle.c (write_template_arg_literal): Handle complex.
518 2012-01-16 Jason Merrill <jason@redhat.com>
521 * mangle.c (mangle_decl): Don't mangle uninstantiated templates.
524 * typeck.c (build_static_cast_1): Handle bit-fields properly.
526 2012-01-13 Ian Lance Taylor <iant@google.com>
529 * typeck.c (enum_cast_to_int): New static function.
530 (cp_build_binary_op): When handling warn_sign_compare, don't test
531 for TREE_NO_WARNING. Do call enum_cast_to_int.
532 * call.c (avoid_sign_compare_warnings): Remove static function.
533 (build_new_op_1): Don't call avoid_sign_compare_warnings.
535 2012-01-13 Steven Bosscher <steven@gcc.gnu.org>
537 * decl2.c: Do not include tree-mudflap.h
538 * semantics.c: Likewise.
540 2012-01-13 Jason Merrill <jason@redhat.com>
543 * semantics.c (finish_break_stmt): Avoid adding an unreachable
547 * decl2.c (constrain_visibility): Clear DECL_VISIBILITY_SPECIFIED
548 when reducing the visibility.
551 * class.c (build_vtbl_initializer): Use __cxa_deleted_virtual.
553 2012-01-12 Jason Merrill <jason@redhat.com>
556 * pt.c (value_dependent_expression_p): Treat STMT_EXPR as
559 2012-01-13 Dodji Seketeli <dodji@redhat.com>
562 * semantics.c (cp_parser_ctor_initializer_opt_and_function_body):
563 Set the pointer to the last block of the constructor to the
565 (build_constexpr_constructor_member_initializers): Get
566 build_data_member_initialization a chance to deal with more
567 statements before we choke.
569 2012-01-12 Jason Merrill <jason@redhat.com>
572 * mangle.c (write_expression): Mangle BASELINK scope if
573 BASELINK_QUALIFIED_P.
574 * search.c (adjust_result_of_qualified_name_lookup): Set
575 BASELINK_QUALIFIED_P.
576 * tree.c (cp_tree_equal) [BASELINK]: Compare BASELINK_QUALIFIED_P.
577 * parser.c (cp_parser_postfix_dot_deref_expression): Don't call
578 adjust_result_of_qualified_name_lookup for non-qualified names.
581 * pt.c (unify): Handle error_mark_node.
583 2012-01-11 Jason Merrill <jason@redhat.com>
586 * call.c (standard_conversion): For ptrmemfuncs, compare the
590 * mangle.c (find_substitution): A type is only a substitution
591 match if we're looking for a type.
592 (write_nested_name): Use decl_mangling_context.
594 * decl.c (decls_match): Assert that the arguments are decls.
597 * pt.c (resolve_overloaded_unification): Compare types with
598 same_type_p, not decls_match.
600 2012-01-10 Jason Merrill <jason@redhat.com>
603 * class.c (build_base_path): Diagnose ambiguous base.
606 * semantics.c (cxx_eval_call_expression): Always retry previously
607 non-constant expressions.
609 2012-01-06 Jason Merrill <jason@redhat.com>
613 * parser.c (cp_parser_new_expression): Set
614 type_definition_forbidden_message.
620 * mangle.c (write_expression): Support NEW_EXPR, DELETE_EXPR,
621 THROW_EXPR, CONSTRUCTOR, OVERLOAD. Fix PREINCREMENT_EXPR and
623 (write_template_arg): Fix mangling of class-scope functions and
625 (mangle_decl): Update suggested -fabi-version argument.
626 * operators.def: Add DOTSTAR_EXPR, REINTERPRET_CAST_EXPR,
627 DYNAMIC_CAST_EXPR; correct CONST_CAST_EXPR, STATIC_CAST_EXPR.
628 * tree.c (dependent_name): No longer static.
629 * cp-tree.h: Declare it.
630 * pt.c (unify): Defer handling of unconverted functions.
632 * mangle.c (mangle_decl): Don't generate mangling aliases
633 for maybe-in-charge [cd]tors.
635 * error.c (dump_expr): Print type of CONSTRUCTOR.
637 2012-01-05 Dodji Seketeli <dodji@redhat.com>
640 * parser.c (cp_parser_alias_declaration): Get out early upon
641 errors in the identifier or the attributes.
643 2012-01-04 Paolo Carlini <paolo.carlini@oracle.com>
646 * pt.c (tsubst_copy_and_build): Maybe set TREE_NO_WARNING on
647 the tree returned by build_x_binary_op.
649 2012-01-03 Paolo Carlini <paolo.carlini@oracle.com>
652 * parser.c (cp_parser_postfix_open_square_expression): Handle
653 postfix-expression [ braced-init-list ].
655 2012-01-03 Paolo Carlini <paolo.carlini@oracle.com>
658 * rtti.c (build_dynamic_cast_1): In case of T a pointer type,
659 call decay_conversion on v.
661 2012-01-03 Paolo Carlini <paolo.carlini@oracle.com>
664 * decl.c (duplicate_decls): With -Wredundant-decls don't warn for
665 declaration followed by specialization.
667 2012-01-03 Jakub Jelinek <jakub@redhat.com>
670 * semantics.c (finish_omp_clauses): Call fold_build_cleanup_point_expr
671 on OMP_CLAUSE_{IF,FINAL,NUM_THREADS,SCHEDULE_CHUNK}_EXPR.
673 2012-01-02 Jason Merrill <jason@redhat.com>
677 * method.c (walk_field_subobs): Don't check for uninitialized
679 (synthesized_method_walk): Check here.
683 * parser.c (cp_parser_cache_defarg): Split out...
684 (cp_parser_parameter_declaration): ...from here.
685 (cp_parser_save_nsdmi): Use it.
686 (cp_parser_cache_group): Remove CPP_COMMA support.
688 2012-01-02 Dodji Seketeli <dodji@redhat.com>
691 * semantics.c (cx_check_missing_mem_inits): Don't assert in case
694 2012-01-02 Paolo Carlini <paolo.carlini@oracle.com>
697 * typeck2.c (digest_init_r): Use copy_init when initializing
700 2012-01-01 Paolo Carlini <paolo.carlini@oracle.com>
703 * decl.c (build_enumerator): Don't call perform_integral_promotions
706 2012-01-01 Paolo Carlini <paolo.carlini@oracle.com>
709 * typeck.c (build_reinterpret_cast_1): Implement resolution of
712 2012-01-01 Fabien Chêne <fabien@gcc.gnu.org>
714 * parser.c (cp_parser_using_declaration): Add a warning about
715 deprecated access declarations when no errors were encountered
716 while parsing the access declaration. Save the first token in
717 order to emit the warning at the right place.
719 Copyright (C) 2012 Free Software Foundation, Inc.
721 Copying and distribution of this file, with or without modification,
722 are permitted in any medium without royalty provided the copyright
723 notice and this notice are preserved.