1 2012-06-27 Fabien Chêne <fabien@gcc.gnu.org>
4 * cp-tree.h (insert_late_enum_def_into_classtype_sorted_fields):
6 * class.c (insert_into_classtype_sorted_fields): New.
7 (add_enum_fields_to_record_type): New.
8 (count_fields): Adjust the comment.
9 (add_fields_to_record_type): Likewise.
10 (finish_struct_1): Move the code that inserts the fields for the
11 sorted case, into insert_into_classtype_sorted_fields, and call
13 (insert_late_enum_def_into_classtype_sorted_fields): Define.
14 * decl.c (finish_enum_value_list): Call
15 insert_late_enum_def_into_classtype_sorted_fields if a late enum
16 definition is encountered.
18 2012-06-25 Jason Merrill <jason@redhat.com>
22 * pt.c (tsubst_pack_expansion): Copy before dummy tsubst.
25 * typeck.c (decay_conversion): Don't discard side-effects from
26 expressions of nullptr_t.
29 * semantics.c (build_data_member_initialization): Always keep
30 initializer for empty base.
31 (cxx_eval_bare_aggregate): Discard it here.
33 2012-06-25 Jakub Jelinek <jakub@redhat.com>
36 * class.c (check_bases_and_members): Avoid -Wuninitialized
37 diagnostics for non-static const members or references if they
40 2012-06-19 Jason Merrill <jason@redhat.com>
43 * name-lookup.c (constructor_name_p): Don't try to look at the
44 name of a DECLTYPE_TYPE.
48 * pt.c (instantiate_class_template_1): Set LAMBDA_EXPR_THIS_CAPTURE.
49 (instantiate_decl): Don't push_to_top_level for local class methods.
50 (instantiate_class_template_1): Or for local classes.
53 * pt.c (lookup_template_class_1): Use ts_global.
55 2012-06-14 Richard Guenther <rguenther@suse.de>
57 Backport from mainline
58 2012-06-11 Richard Guenther <rguenther@suse.de>
61 * mangle.c (write_array_type): Use double-ints for array domain
64 2012-06-14 Richard Guenther <rguenther@suse.de>
66 Backport from mainline
67 2012-06-06 Fabien Chêne <fabien@gcc.gnu.org>
70 * parser.c (cp_parser_alias_declaration): Return earlier
73 2012-06-14 Release Manager
77 2012-06-12 Jason Merrill <jason@redhat.com>
82 * pt.c (instantiate_class_template_1): Set LAMBDA_EXPR_THIS_CAPTURE.
83 (instantiate_decl): Don't push_to_top_level for local class methods.
84 (instantiate_class_template_1): Or for local classes.
86 2012-06-04 Paolo Carlini <paolo.carlini@oracle.com>
89 * call.c (build_conditional_expr_1): Use OPT_Wenum_compare
90 to control enumeral mismatch in conditional expression too.
92 2012-06-01 Jason Merrill <jason@redhat.com>
95 * parser.c (cp_parser_class_head): Apply attributes here.
96 * semantics.c (begin_class_definition): Not here.
100 * parser.c (cp_parser_binary_expression): Bail early if we're parsing
101 tentatively and the LHS has a parse error.
103 2012-06-01 Jason Merrill <jason@redhat.com>
106 * pt.c (instantiate_class_template_1): Set LAMBDA_EXPR_THIS_CAPTURE.
107 (instantiate_decl): Don't push_to_top_level for local class methods.
108 (instantiate_class_template_1): Or for local classes.
111 * pt.c (do_auto_deduction): Don't try to deduce from a
112 type-dependent initializer.
114 2012-05-31 Jason Merrill <jason@redhat.com>
118 * call.c (joust): Handle comparing list and non-list ctors.
120 2012-05-30 Jason Merrill <jason@redhat.com>
123 * tree.c (stabilize_init): Side effects make the init unstable.
125 2012-05-30 Jason Merrill <jason@redhat.com>
128 * call.c (convert_like_real) [ck_list]: Take array address directly.
129 * typeck.c (decay_conversion): Reject decay of an array compound
132 2012-05-29 Paolo Carlini <paolo.carlini@oracle.com>
135 * tree.c (stabilize_expr): Handle exp of void type.
137 2012-05-28 Paolo Carlini <paolo.carlini@oracle.com>
140 * semantics.c (potential_constant_expression_1): Handle LTGT_EXPR.
142 2012-05-15 Alexandre Oliva <aoliva@redhat.com>
145 * pt.c (tsubst_decl): Bail out if argvec is error_mark_node.
147 2012-05-10 Paolo Carlini <paolo.carlini@oracle.com>
150 * decl.c (check_default_argument): Fix typo (POINTER_TYPE_P
151 instead of TYPE_PTR_P) in zero-as-null-pointer-constant warning.
153 2012-05-03 Paolo Carlini <paolo.carlini@oracle.com>
156 * call.c (build_over_call): Handle final member functions
158 (build_new_method_call_1): Do not handle here.
160 2012-04-17 Paolo Carlini <paolo.carlini@oracle.com>
163 * parser.c (cp_parser_member_declaration): Check that
164 initializer_token_start is non null before dereferencing it.
166 2012-04-16 Jason Merrill <jason@redhat.com>
169 * pt.c (determine_specialization): Instead of comparing the number
170 of parms, check that tsubst gives the right answer.
173 * pt.c (convert_template_argument): Handle template template
177 * pt.c (tsubst_pack_expansion): Use tsubst_expr for template
180 2012-04-15 Jason Merrill <jason@redhat.com>
184 * pt.c (coerce_template_parms): Even if we aren't converting we
185 want to expand argument packs.
187 2012-04-15 Fabien Chêne <fabien@gcc.gnu.org>
190 * parser.c (cp_parser_class_name): Call strip_using_decl and
191 return the target decl.
192 * name-lookup.c (strip_using_decl): Returns NULL_TREE if the decl
193 to be stripped is NULL_TREE.
194 (qualify_lookup): Call strip_using_decl and perform some checks on
197 2012-04-13 Jason Merrill <jason@redhat.com>
200 * pt.c (any_pack_expanson_args_p): New.
201 (coerce_template_parms): Use it.
203 2012-04-11 Jason Merrill <jason@redhat.com>
206 * decl.c (check_tag_decl): Don't complain about attributes if we
207 don't even have a type.
209 2012-04-05 Jason Merrill <jason@redhat.com>
212 * tree.c (lvalue_kind): Treat a deferred access control SCOPE_REF
215 2012-04-03 Jason Merrill <jason@redhat.com>
218 * pt.c (tsubst_initializer_list): A pack expansion with no elements
219 means value-initialization.
221 2012-03-29 Meador Inge <meadori@codesourcery.com>
224 * semantics.c (cxx_fold_indirect_ref): Don't attempt to fold
225 stripped child trees that are not pointer types.
227 2012-03-29 Paolo Carlini <paolo.carlini@oracle.com>
230 * decl.c (check_default_argument): With -Wzero-as-null-pointer-constant
231 warn for a zero as null pointer constant default argument.
233 2012-03-29 Jason Merrill <jason@redhat.com>
236 * tree.c (copy_binfo): Handle BINFO_DEPENDENT_BASE_P.
238 2012-03-29 Jakub Jelinek <jakub@redhat.com>
241 * decl.c (start_decl): Don't call maybe_apply_pragma_weak
242 if processing_template_decl.
244 2012-03-29 Jason Merrill <jason@redhat.com>
247 * call.c (compare_ics): Handle ck_aggr like ck_list.
249 2012-03-28 Jason Merrill <jason@redhat.com>
252 * typeck.c (lookup_destructor): Clear BASELINK_QUALIFIED_P if
253 we didn't get an explicit scope.
254 * pt.c (tsubst_baselink): Likewise.
256 2012-03-22 Paolo Carlini <paolo.carlini@oracle.com>
259 * class.c (check_field_decls): Call literal_type_p only
262 2012-03-22 Jakub Jelinek <jakub@redhat.com>
265 * decl.c (check_tag_decl): Only use CLASSTYPE_TEMPLATE_INSTANTIATION
266 on CLASS_TYPE_P types.
268 2012-03-22 Jason Merrill <jason@redhat.com>
271 * method.c (implicitly_declare_fn): Set DECL_EXTERNAL.
273 2012-03-22 Jakub Jelinek <jakub@redhat.com>
275 Backported from mainline
276 2012-03-14 Jakub Jelinek <jakub@redhat.com>
279 * parser.c (lookup_literal_operator): Return fn only if
280 processed all arguments from args vector and argtypes is
283 2012-03-22 Release Manager
285 * GCC 4.7.0 released.
287 2012-03-20 Jason Merrill <jason@redhat.com>
289 * mangle.c (write_type): Handle 'auto'.
290 * init.c (build_new): Don't do auto deduction where it might
291 affect template mangling.
293 2012-03-07 Jason Merrill <jason@redhat.com>
296 * mangle.c (write_literal_operator_name): The length comes after the
299 2012-02-29 Jason Merrill <jason@redhat.com>
302 * decl.c (check_tag_decl): Move warning for misplaced attributes here.
303 (shadow_tag): From here.
304 * parser.c (cp_parser_explicit_instantiation): Don't warn here.
306 2012-02-21 Jakub Jelinek <jakub@redhat.com>
309 * typeck.c (check_literal_operator_args): Initialize *long_double_p
310 and *long_long_unsigned_p even if processing_template_decl.
312 2012-02-16 Jason Merrill <jason@redhat.com>
315 * decl.c (define_label): Use timevar_cond_start/stop.
317 2012-02-16 Fabien Chêne <fabien@gcc.gnu.org>
320 * decl.c (xref_basetypes): call dependent_scope_p instead of
323 2012-02-16 Jason Merrill <jason@redhat.com>
326 * error.c (dump_expr): Handle lambda closures specifically.
328 2012-02-14 Jason Merrill <jason@redhat.com>
330 * parser.c (cp_parser_explicit_instantiation): Give a warning
331 for ignored attributes on explicit class instantiation.
333 2012-02-14 Jakub Jelinek <jakub@redhat.com>
336 * pt.c (tsubst_copy_asm_operands): For LABEL_DECL values call
337 lookup_label on label's name and set TREE_USED.
339 2012-02-14 Jason Merrill <jason@redhat.com>
342 * decl.c (local_variable_p_walkfn): Don't check DECL_ARTIFICIAL.
344 2012-02-14 Jakub Jelinek <jakub@redhat.com>
347 * decl.c (duplicate_decls): If olddecl has bigger DECL_ALIGN than
348 newdecl, copy DECL_ALIGN to newdecl and or DECL_USER_ALIGN bits.
350 2012-02-07 Jason Merrill <jason@redhat.com>
353 * semantics.c (cx_check_missing_mem_inits): Handle unions.
354 Fix constexpr default constructor logic.
357 * pt.c (tsubst): Strip uninstantiated typedef.
359 2012-02-06 Jason Merrill <jason@redhat.com>
362 * cvt.c (build_expr_type_conversion): Check for template conversion.
364 2012-01-31 Jason Merrill <jason@redhat.com>
367 * cp-tree.h (PACK_EXPANSION_LOCAL_P): New.
368 * pt.c (make_pack_expansion, tsubst_initializer_list): Set it.
369 (tsubst_pack_expansion): Check it.
371 2012-01-29 Paolo Carlini <paolo.carlini@oracle.com>
374 * class.c (explain_non_literal_class): Correctly handle implicitly
375 deleted constructors.
377 2012-01-27 Jakub Jelinek <jakub@redhat.com>
380 * pt.c (tsubst_pack_expansion): Delete and restore
381 local_specialization whenever need_local_specialization, not just
382 when saved_local_specializations is non-NULL.
384 2012-01-26 Paolo Carlini <paolo.carlini@oracle.com>
387 * error.c (dump_decl, [TEMPLATE_ID_EXPR]): Handle error_mark_node
388 as TREE_OPERAND (t, 1).
390 2012-01-24 Jason Merrill <jason@redhat.com>
393 * decl.c (xref_basetypes): Check VEC_length instead of VEC_space.
396 * tree.c (called_fns_equal): Check template args.
397 (cp_tree_equal): Call it.
399 2012-01-24 Aldy Hernandez <aldyh@redhat.com>
400 Patrick Marlier <patrick.marlier@gmail.com>
403 * class.c (set_method_tm_attributes): Use TARGET_THUNK instead of
404 thunk for set_one_vmethod_tm_attributes.
406 2012-01-24 Paolo Carlini <paolo.carlini@oracle.com>
409 * call.c (build_over_call): Check for error_mark_node as
410 TREE_VALUE when default arguments are processed.
412 2012-01-23 Jason Merrill <jason@redhat.com>
415 * decl2.c (determine_visibility): Check for visibility attribute
416 on template specialization.
418 2012-01-23 Paolo Carlini <paolo.carlini@oracle.com>
421 * pt.c (parameter_of_template_p): Skip error_mark_node parameters.
423 2012-01-23 Jason Merrill <jason@redhat.com>
426 * class.c (add_method): Set OVL_USED for using-decls.
427 * tree.c (ovl_scope): New.
428 * cp-tree.h: Declare it.
429 * parser.c (cp_parser_template_name): Use it.
430 * semantics.c (baselink_for_fns): Likewise.
431 * name-lookup.c (set_inherited_value_binding_p): Likewise.
433 2012-01-20 Paolo Carlini <paolo.carlini@oracle.com>
436 * pt.c (lookup_template_class_1): Check context returned by
437 tsubst for error_mark_node.
439 2012-01-19 Kai Tietz <ktietz@redhat.com>
442 * decl2.c (save_template_attributes): Use merge_attributes
443 instead of chaining up via TREE_CHAIN.
445 2012-01-19 Jason Merrill <jason@redhat.com>
448 * class.c (finish_struct): Call add_method here for function usings.
449 * semantics.c (finish_member_declaration): Not here.
451 2012-01-18 Paolo Carlini <paolo.carlini@oracle.com>
454 * typeck2.c (store_init_value): Within a template guard
455 cxx_constant_value with require_potential_constant_expression.
456 * pt.c (convert_nontype_argument): Likewise.
458 2012-01-16 Jakub Jelinek <jakub@redhat.com>
461 * mangle.c (write_template_arg_literal): Handle complex.
463 2012-01-16 Jason Merrill <jason@redhat.com>
466 * mangle.c (mangle_decl): Don't mangle uninstantiated templates.
469 * typeck.c (build_static_cast_1): Handle bit-fields properly.
471 2012-01-13 Ian Lance Taylor <iant@google.com>
474 * typeck.c (enum_cast_to_int): New static function.
475 (cp_build_binary_op): When handling warn_sign_compare, don't test
476 for TREE_NO_WARNING. Do call enum_cast_to_int.
477 * call.c (avoid_sign_compare_warnings): Remove static function.
478 (build_new_op_1): Don't call avoid_sign_compare_warnings.
480 2012-01-13 Steven Bosscher <steven@gcc.gnu.org>
482 * decl2.c: Do not include tree-mudflap.h
483 * semantics.c: Likewise.
485 2012-01-13 Jason Merrill <jason@redhat.com>
488 * semantics.c (finish_break_stmt): Avoid adding an unreachable
492 * decl2.c (constrain_visibility): Clear DECL_VISIBILITY_SPECIFIED
493 when reducing the visibility.
496 * class.c (build_vtbl_initializer): Use __cxa_deleted_virtual.
498 2012-01-12 Jason Merrill <jason@redhat.com>
501 * pt.c (value_dependent_expression_p): Treat STMT_EXPR as
504 2012-01-13 Dodji Seketeli <dodji@redhat.com>
507 * semantics.c (cp_parser_ctor_initializer_opt_and_function_body):
508 Set the pointer to the last block of the constructor to the
510 (build_constexpr_constructor_member_initializers): Get
511 build_data_member_initialization a chance to deal with more
512 statements before we choke.
514 2012-01-12 Jason Merrill <jason@redhat.com>
517 * mangle.c (write_expression): Mangle BASELINK scope if
518 BASELINK_QUALIFIED_P.
519 * search.c (adjust_result_of_qualified_name_lookup): Set
520 BASELINK_QUALIFIED_P.
521 * tree.c (cp_tree_equal) [BASELINK]: Compare BASELINK_QUALIFIED_P.
522 * parser.c (cp_parser_postfix_dot_deref_expression): Don't call
523 adjust_result_of_qualified_name_lookup for non-qualified names.
526 * pt.c (unify): Handle error_mark_node.
528 2012-01-11 Jason Merrill <jason@redhat.com>
531 * call.c (standard_conversion): For ptrmemfuncs, compare the
535 * mangle.c (find_substitution): A type is only a substitution
536 match if we're looking for a type.
537 (write_nested_name): Use decl_mangling_context.
539 * decl.c (decls_match): Assert that the arguments are decls.
542 * pt.c (resolve_overloaded_unification): Compare types with
543 same_type_p, not decls_match.
545 2012-01-10 Jason Merrill <jason@redhat.com>
548 * class.c (build_base_path): Diagnose ambiguous base.
551 * semantics.c (cxx_eval_call_expression): Always retry previously
552 non-constant expressions.
554 2012-01-06 Jason Merrill <jason@redhat.com>
558 * parser.c (cp_parser_new_expression): Set
559 type_definition_forbidden_message.
565 * mangle.c (write_expression): Support NEW_EXPR, DELETE_EXPR,
566 THROW_EXPR, CONSTRUCTOR, OVERLOAD. Fix PREINCREMENT_EXPR and
568 (write_template_arg): Fix mangling of class-scope functions and
570 (mangle_decl): Update suggested -fabi-version argument.
571 * operators.def: Add DOTSTAR_EXPR, REINTERPRET_CAST_EXPR,
572 DYNAMIC_CAST_EXPR; correct CONST_CAST_EXPR, STATIC_CAST_EXPR.
573 * tree.c (dependent_name): No longer static.
574 * cp-tree.h: Declare it.
575 * pt.c (unify): Defer handling of unconverted functions.
577 * mangle.c (mangle_decl): Don't generate mangling aliases
578 for maybe-in-charge [cd]tors.
580 * error.c (dump_expr): Print type of CONSTRUCTOR.
582 2012-01-05 Dodji Seketeli <dodji@redhat.com>
585 * parser.c (cp_parser_alias_declaration): Get out early upon
586 errors in the identifier or the attributes.
588 2012-01-04 Paolo Carlini <paolo.carlini@oracle.com>
591 * pt.c (tsubst_copy_and_build): Maybe set TREE_NO_WARNING on
592 the tree returned by build_x_binary_op.
594 2012-01-03 Paolo Carlini <paolo.carlini@oracle.com>
597 * parser.c (cp_parser_postfix_open_square_expression): Handle
598 postfix-expression [ braced-init-list ].
600 2012-01-03 Paolo Carlini <paolo.carlini@oracle.com>
603 * rtti.c (build_dynamic_cast_1): In case of T a pointer type,
604 call decay_conversion on v.
606 2012-01-03 Paolo Carlini <paolo.carlini@oracle.com>
609 * decl.c (duplicate_decls): With -Wredundant-decls don't warn for
610 declaration followed by specialization.
612 2012-01-03 Jakub Jelinek <jakub@redhat.com>
615 * semantics.c (finish_omp_clauses): Call fold_build_cleanup_point_expr
616 on OMP_CLAUSE_{IF,FINAL,NUM_THREADS,SCHEDULE_CHUNK}_EXPR.
618 2012-01-02 Jason Merrill <jason@redhat.com>
622 * method.c (walk_field_subobs): Don't check for uninitialized
624 (synthesized_method_walk): Check here.
628 * parser.c (cp_parser_cache_defarg): Split out...
629 (cp_parser_parameter_declaration): ...from here.
630 (cp_parser_save_nsdmi): Use it.
631 (cp_parser_cache_group): Remove CPP_COMMA support.
633 2012-01-02 Dodji Seketeli <dodji@redhat.com>
636 * semantics.c (cx_check_missing_mem_inits): Don't assert in case
639 2012-01-02 Paolo Carlini <paolo.carlini@oracle.com>
642 * typeck2.c (digest_init_r): Use copy_init when initializing
645 2012-01-01 Paolo Carlini <paolo.carlini@oracle.com>
648 * decl.c (build_enumerator): Don't call perform_integral_promotions
651 2012-01-01 Paolo Carlini <paolo.carlini@oracle.com>
654 * typeck.c (build_reinterpret_cast_1): Implement resolution of
657 2012-01-01 Fabien Chêne <fabien@gcc.gnu.org>
659 * parser.c (cp_parser_using_declaration): Add a warning about
660 deprecated access declarations when no errors were encountered
661 while parsing the access declaration. Save the first token in
662 order to emit the warning at the right place.
664 Copyright (C) 2012 Free Software Foundation, Inc.
666 Copying and distribution of this file, with or without modification,
667 are permitted in any medium without royalty provided the copyright
668 notice and this notice are preserved.