2012-07-06 Tom de Vries <tom@codesourcery.com>
[official-gcc.git] / gcc / cp / ChangeLog
blob4d1fc5ce27c1170e88078e34c81c8c2d87f0d3b6
1 2012-07-05  Jason Merrill  <jason@redhat.com>
3         PR c++/53039
4         * pt.c (arg_from_parm_pack_p): Go back to using same_type_p or
5         cp_tree_equal.
7         * cp-tree.h (TEMPLATE_PARM_NUM_SIBLINGS): Remove.
8         (struct template_parm_index_s): Remove num_siblings.
9         * pt.c (fixup_template_parms, fixup_template_parm_index): Remove.
10         (fixup_template_type_parm_type): Remove.
11         (build_template_parm_index): Remove num_siblings parm.
12         (process_template_parm): Likewise.
13         * parser.c (cp_parser_template_parameter_list): Adjust.
14         * tree.c (cp_tree_equal): Don't compare num_siblings.
15         * typeck.c (comp_template_parms_position): Likewise.
17         PR c++/50852
18         PR c++/53039
19         * tree.c (strip_typedefs_expr): New.
20         * cp-tree.h: Declare it.
21         * pt.c (convert_template_argument, unify): Use it.
22         * parser.c (cp_parser_template_declaration_after_export): Don't call
23         fixup_template_parms.
25 2012-07-04  Jason Merrill  <jason@redhat.com>
27         PR c++/53848
28         PR c++/53524
29         * decl.c (build_enumerator): Don't use build_lang_decl_loc.
31 2012-07-03  Jakub Jelinek  <jakub@redhat.com>
33         PR c++/53812
34         * semantics.c (finish_goto_stmt): Surround computed goto argument
35         with CLEANUP_POINT_EXPR if needed.
37 2012-07-02  Jason Merrill  <jason@redhat.com>
39         PR c++/53619
40         * pt.c (in_template_function): New.
41         * cp-tree.h: Declare it.
42         * class.c (build_base_path, resolves_to_fixed_type_p): Use it.
44         PR c++/53783
45         * pt.c (tsubst_copy_and_build) [LAMBDA_EXPR]: Use tsubst
46         for LAMBDA_EXPR_EXTRA_SCOPE.
48         PR c++/53788
49         * pt.c (build_non_dependent_expr): Don't wrap a dummy object.
51         PR c++/53816
52         * class.c (resolves_to_fixed_type_p): Check uses_template_parms
53         (current_function_decl) instead of processing_template_decl.
55         PR c++/53821
56         * semantics.c (maybe_add_lambda_conv_op): Don't set
57         DECL_INTERFACE_KNOWN.
59         PR c++/53524
60         * call.c (build_conditional_expr_1): Don't warn about comparison of
61         two enumerators before their enumeration is complete.
62         (build_new_op_1): Call decay_conversion before warn_logical_operator.
63         * decl.c (build_enumerator): Set DECL_CONTEXT of an enumerator to
64         its enumeration.
65         * decl2.c (mark_used): Call used_types_insert for enums.
66         * semantics.c (finish_id_expression): Don't decay CONST_DECL.
67         (finish_member_declaration): Don't change DECL_CONTEXT of enumerators.
68         * class.c (check_field_decls): Don't change DECL_CONTEXT of enums.
69         * typeck.c (convert_for_assignment): Don't decay CONST_DECL.
70         (build_class_member_access_expr): Look through unscoped enums.
71         * search.c (context_for_name_lookup): Look through unscoped enums.
72         * pt.c (tsubst_copy_and_build): Don't decay CONST_DECL.
73         (tsubst_copy): Use DECL_CONTEXT to find the enumeration.
74         * tree.c (decl_linkage): Likewise.
75         * cvt.c (ocp_convert): Check decayed expr for enum range warning.
77 2012-06-29  Steven Bosscher  <steven@gcc.gnu.org>
79         * Make-lang.in: Remove tree-mudflap.o from CXX_AND_OBJCXX_OBJS.
81 2012-06-27  Jason Merrill  <jason@redhat.com>
83         * parser.c (cp_parser_check_for_invalid_template_id): tag_type parm.
84         (cp_parser_simple_type_specifier, cp_parser_class_head): Adjust.
85         (cp_parser_elaborated_type_specifier): Adjust.
86         * decl.c (duplicate_decls): Return error_mark_node on template
87         mismatch.
89         PR c++/53563
90         * parser.c (cp_parser_template_id): Add tag_type parm.
91         (cp_parser_template_name): Likewise.
92         (cp_parser_id_expression, cp_parser_unqualified_id): Adjust.
93         (cp_parser_pseudo_destructor_name, cp_parser_type_name): Adjust.
94         (cp_parser_simple_type_specifier, cp_parser_class_name): Adjust.
95         (cp_parser_elaborated_type_specifier, cp_parser_class_head): Adjust.
97 2012-06-27  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
99         PR C++/51033
100         * semantics.c (constexpr_call): Fix typo in comment.
101         (cxx_eval_vec_perm_expr): New.
102         (cxx_eval_constant_expression): Fold VEC_PERM_EXPRs.
104 2012-06-26  Richard Guenther  <rguenther@suse.de>
106         PR c++/53752
107         * mangle.c (write_array_type): Truncate the number-of-elements
108         result.
110 2012-06-25  Jason Merrill  <jason@redhat.com>
112         PR c++/53498
113         PR c++/53305
114         * pt.c (tsubst_decl) [PARM_DECL]: Don't recurse into DECL_CHAIN
115         if cp_unevaluated_operand is set.
116         (tsubst_copy) [PARM_DECL]: Don't copy before tsubsting.
118         PR c++/52988
119         * typeck.c (decay_conversion): Don't discard side-effects from
120         expressions of nullptr_t.
122 2012-06-25  Florian Weimer  <fweimer@redhat.com>
124         * init.c (build_new_1): Warn about (T[N]) for variable N, and
125         reject T[M][N].
127         * parser.c (cp_parser_direct_new_declarator): Accept non-constant
128         expressions.  Handled now in build_new_1.
130 2012-06-25  Jason Merrill  <jason@redhat.com>
132         PR c++/53202
133         * semantics.c (build_data_member_initialization): Always keep
134         initializer for empty base.
135         (cxx_eval_bare_aggregate): Discard it here.
137         PR c++/53565
138         * pt.c (tsubst_omp_for_iterator): Simplify DECL_EXPR handling.
139         (tsubst_expr) [OMP_FOR]: Here, too.
141 2012-06-25  Jakub Jelinek  <jakub@redhat.com>
143         PR c++/53594
144         * class.c (check_bases_and_members): Avoid -Wuninitialized
145         diagnostics for non-static const members or references if they
146         use NSDMI.
148 2012-06-16  Ville Voutilainen  <ville.voutilainen@gmail.com>
150         * parser.c (cp_parser_direct_declarator): Move virt-specifier
151         parsing after late-specified return type parsing.
153 2012-06-14  Jason Merrill  <jason@redhat.com>
155         PR c++/53651
156         * name-lookup.c (constructor_name_p): Don't try to look at the
157         name of a DECLTYPE_TYPE.
159 2012-06-18  Lawrence Crowl  <crowl@google.com>
161         * decl2.c (cp_write_global_declarations): Rename use of TV_PHASE_CGRAPH
162         to TV_PHASE_OPT_GEN.
164 2012-06-18  Steven Bosscher  <steven@gcc.gnu.org>
166         * decl.c (finish_function): Remove code conditional on VMS_TARGET.
168 2012-06-15  Marc Glisse  <marc.glisse@inria.fr>
170         PR c++/51033
171         * semantics.c (literal_type_p): Handle VECTOR_TYPE.
172         (potential_constant_expression_1): Handle VEC_PERM_EXPR.
173         * parser.c (cp_parser_postfix_expression): Handle RID_BUILTIN_SHUFFLE.
175 2012-06-09  Jason Merrill  <jason@redhat.com>
177         * pt.c (tsubst_expr) [TAG_DEFN]: Instantiate local class.
178         * class.c (finish_struct): Don't add a TAG_DEFN for a lambda.
179         * decl2.c (finish_static_data_member_decl): Avoid redundant error.
181         PR c++/53599
182         * name-lookup.c (pushtag_1): Add a DECL_EXPR for a local class.
183         * semantics.c (finish_cond): Build a COMPOUND_EXPR.
184         * pt.c (tsubst_expr) [COMPOUND_EXPR]: Handle.
185         [DECL_EXPR]: Don't call cp_finish_decl for an implicit typedef.
186         Don't return the decl.
188 2012-06-11  Richard Guenther  <rguenther@suse.de>
190         PR c++/53605
191         * mangle.c (write_array_type): Use double-ints for array domain
192         arithmetic.
194 2012-06-07  Fabien ChĂȘne  <fabien@gcc.gnu.org>
196         PR c++/51214
197         * cp-tree.h (insert_late_enum_def_into_classtype_sorted_fields):
198         Declare.
199         * class.c (insert_into_classtype_sorted_fields): New.
200         (add_enum_fields_to_record_type): New.
201         (count_fields): Adjust the comment.
202         (add_fields_to_record_type): Likewise.
203         (finish_struct_1): Move the code that inserts the fields for the
204         sorted case, into insert_into_classtype_sorted_fields, and call
205         it.
206         (insert_late_enum_def_into_classtype_sorted_fields): Define.
207         * decl.c (finish_enum_value_list): Call
208         insert_late_enum_def_into_classtype_sorted_fields if a late enum
209         definition is encountered.
211 2012-06-06  Paolo Carlini  <paolo.carlini@oracle.com>
213         PR c++/53567
214         * typeck.c (cp_perform_integral_promotions): New, like
215         perform_integral_promotions but also takes a tsubst_flags_t parameter.
216         (pointer_diff): Add tsubst_flags_t parameter.
217         (decay_conversion, cp_default_conversion, cp_build_array_ref,
218         cp_build_binary_op, cp_build_unary_op, build_static_cast_1,
219         build_reinterpret_cast_1, cp_build_modify_expr,
220         convert_for_assignment): Adjust.
221         * optimize.c (build_delete_destructor_body): Adjust.
222         * init.c (expand_virtual_init, expand_default_init, build_new_1,
223         build_new, build_vec_delete_1, build_vec_init, build_delete): Adjust.
224         (construct_virtual_base): Adjust LOOKUP_COMPLAIN -> 0.
225         * class.c (build_base_path): Adjust.
226         * decl.c (compute_array_index_type, finish_destructor_body): Likewise.
227         * method.c (synthesized_method_walk): Adjust flag and complain.
228         * rtti.c (ifnonnull): Add tsubst_flags_t parameter.
229         (build_typeid, build_dynamic_cast_1): Adjust.
230         * except.c (initialize_handler_parm): Likewise.
231         * typeck2.c (process_init_constructor_record): Likewise.
232         * pt.c (tsubst_friend_class): Don't change flags.
233         * semantics.c (finish_goto_stmt, handle_omp_for_class_iterator,
234         finish_static_assert): Likewise.
235         * parser.c (cp_parser_lookup_name): Just pass 0 as flags to
236         lookup_name_real.
237         * call.c (build_op_delete_call): Add tsubst_flags_t parameter.
238         (convert_like_real, convert_arg_to_ellipsis, convert_for_arg_passing):
239         Adjust.
240         (standard_conversion): Adjust LOOKUP_COMPLAIN -> 0.
241         (implicit_conversion): Mask out tf_error with a FIXME.
242         (build_user_type_conversion_1, build_new_op_1, build_over_call): Use
243         complain & tf_error instead of flags & LOOKUP_COMPLAIN.
244         * cvt.c (cp_convert_to_pointer, convert_to_pointer_force,
245         build_up_reference, convert_to_reference, cp_convert,
246         cp_convert_and_check, ocp_convert, convert_force): Add tsubst_flags_t
247         parameter.
248         (convert_to_reference, ocp_convert): Use complain & tf_error instead
249         of flags & LOOKUP_COMPLAIN.
250         (convert_force): Adjust LOOKUP_COMPLAIN -> 0.
251         * name-lookup.c (identifier_type_value_1, lookup_qualified_name,
252         lookup_name_real, lookup_function_nonclass, lookup_name,
253         lookup_name_prefer_type): Adjust LOOKUP_COMPLAIN -> 0.
254         * cp-tree.h: Adjust prototypes; remove LOOKUP_COMPLAIN.
256 2012-06-06  Steven Bosscher  <steven@gcc.gnu.org>
258         * decl.c: Do not include output.h.
259         (start_decl): Remove code for flag_conserve_space.
261 2012-06-06  Fabien ChĂȘne  <fabien@gcc.gnu.org>
263         PR c++/52841
264         * parser.c (cp_parser_alias_declaration): Return earlier
265         if an error occured.
267 2012-06-04  Paolo Carlini  <paolo.carlini@oracle.com>
269         PR c++/53524
270         * call.c (build_conditional_expr_1): Use OPT_Wenum_compare
271         to control enumeral mismatch in conditional expression too.
273 2012-06-04   Sterling Augustine  <saugustine@google.com>
275         * cp-tree.h: Declare decl_as_dwarf_string, lang_decl_dwarf_name.
276         * cp-lang.c (cxx_dwarf_name): Call them.
278 2012-06-04  Steven Bosscher  <steven@gcc.gnu.org>
280         * semantics.c: Do not include output.h.
281         * decl2.c: Likewise.
282         * friend.c: Likewise.
283         * typeck.c: Likewise.
284         * typeck2.c: Likewise.
285         * Make-lang.in: Fix dependencies.
287 2012-06-01  Jason Merrill  <jason@redhat.com>
289         PR c++/52973
290         * parser.c (cp_parser_class_head): Apply attributes here.
291         * semantics.c (begin_class_definition): Not here.
292         * cp-tree.h: Adjust.
294         PR c++/52725
295         * parser.c (cp_parser_binary_expression): Bail early if we're parsing
296         tentatively and the LHS has a parse error.
298         PR c++/53137
299         * pt.c (instantiate_class_template_1): Set LAMBDA_EXPR_THIS_CAPTURE.
300         (instantiate_decl): Don't push_to_top_level for local class methods.
301         (instantiate_class_template_1): Or for local classes.
303         PR c++/53484
304         * pt.c (do_auto_deduction): Don't try to deduce from a
305         type-dependent initializer.
307 2012-06-01  Paolo Carlini  <paolo.carlini@oracle.com>
309         PR c++/26155
310         * name-lookup.c (push_namespace): When error recovery is
311         impossible just error out in duplicate_decls.
313 2012-05-31  Steven Bosscher  <steven@gcc.gnu.org>
315         * call.c: Do not include output.h.
316         * class.c: Likewise.
317         * except.c: Likewise.
318         * friend.c: Likewise.
319         * init.c: Likewise.
320         * lex.c: Likewise.
321         * method.c: Likewise.
322         * parser.c: Likewise.
323         * pt.c: Likewise.
324         * rtti.c: Likewise.
325         * search.c: Likewise.
327 2012-05-30  Jason Merrill  <jason@redhat.com>
329         PR c++/53356
330         * tree.c (stabilize_init): Handle stabilizing a TARGET_EXPR
331         representing a bitwise copy of a glvalue.
333         * tree.c (stabilize_expr): Tweak logic.
335         PR c++/53356
336         * tree.c (stabilize_init): Side effects make the init unstable.
338 2012-05-28  Paolo Carlini  <paolo.carlini@oracle.com>
340         PR c++/53503
341         * semantics.c (potential_constant_expression_1): Handle LTGT_EXPR.
343 2012-05-26  Paolo Carlini  <paolo.carlini@oracle.com>
345         PR c++/53491
346         * tree.c (stabilize_expr): Handle exp of void type.
348 2012-05-26  Jason Merrill  <jason@redhat.com>
350         PR c++/53220
351         * call.c (convert_like_real) [ck_list]: Take array address directly.
352         * typeck.c (decay_conversion): Reject decay of an array compound
353         literal.
355 2012-05-25  Paolo Carlini  <paolo.carlini@oracle.com>
357         PR c++/32054
358         * parser.c (cp_parser_member_declaration): A storage class is not
359         allowed in a declaration of an anonymous aggregate in a class scope.
361 2012-05-24  Uros Bizjak  <ubizjak@gmail.com>
363         PR obj-c++/53441
364         * decl.c (grokdeclarator): Check that current_class_type is non-NULL
365         before calling constructor_name_p.
367 2012-05-24  Paolo Carlini  <paolo.carlini@oracle.com>
369         PR c++/32080
370         * parser.c (cp_parser_ctor_initializer_opt_and_function_body,
371         cp_parser_function_body): Add a bool parameter, true when parsing
372         a function-try-block.
373         (cp_parser_function_try_block): Pass true to the above.
374         (cp_parser_function_definition_after_declarator,
375         cp_parser_function_transaction): Adjust.
377 2012-05-23  Paolo Carlini  <paolo.carlini@oracle.com>
379         PR c++/29185
380         * decl2.c (delete_sanity): Extend 'deleting array' warning to
381         any array type.
383 2012-05-21  Paolo Carlini  <paolo.carlini@oracle.com>
385         PR c++/51184
386         * decl.c (grokdeclarator): Diagnose functions returning abstract
387         class types as TYPENAME.
388         * cp-tree.h (ABSTRACT_CLASS_TYPE_P): Add.
389         * except.c (is_admissible_throw_operand_or_catch_parameter): Use it.
390         * pt.c (tsubst): Likewise.
391         * semantics.c (trait_expr_value): Likewise.
393 2012-05-21  Paolo Carlini  <paolo.carlini@oracle.com>
395         PR c++/40821
396         * parser.c (cp_parser_attributes_opt): Enforce error checking of
397         unbalanced parentheses in the presence of tentative parsing.
399 2012-05-17  Paolo Carlini  <paolo.carlini@oracle.com>
401         PR c++/39681
402         * parser.c (cp_parser_new_type_id): Early return error_mark_node
403         if the cp_parser_type_specifier_seq call has type_specifier_seq.type
404         error_mark_node; tidy.
405         (cp_parser_new_expression): Always initialize nelts to NULL_TREE to
406         avoid uninitialized warnings.
407         (cp_parser_init_declarator, cp_parser_late_parse_one_default_arg):
408         Call cp_parser_skip_to_end_of_statement if cp_parser_initializer
409         returns error_mark_node.
411 2012-05-17  Paolo Carlini  <paolo.carlini@oracle.com>
413         PR c++/53371
414         * except.c (is_admissible_throw_operand): Rename to
415         is_admissible_throw_operand_or_catch_parameter and handle
416         catch parameter too.
417         (expand_start_catch_block): Use it.
418         (build_throw): Adjust.
420 2012-05-17  Paolo Carlini  <paolo.carlini@oracle.com>
422         PR c++/44516
423         * typeck.c (build_x_array_ref, build_x_conditional_expr,
424         build_x_compound_expr, build_x_modify_expr): Add location_t parameter.
425         (finish_class_member_access_expr, build_x_indirect_ref,
426         build_x_binary_op, build_x_compound_expr_from_list,
427         build_x_compound_expr_from_vec): Adjust callers.
428         * tree.c (build_min_nt_loc): New.
429         (build_min_nt): Remove.
430         * typeck2.c (build_x_arrow): Adjust callers.
431         * pt.c (tsubst_qualified_id, tsubst_omp_for_iterator,
432         tsubst_copy_and_build): Likewise.
433         * semantics.c (finish_mem_initializers, handle_omp_for_class_iterator,
434          finish_omp_atomic): Likewise.
435         * decl2.c (grok_array_decl, build_anon_union_vars): Adjust.
436         * parser.c (cp_parser_question_colon_clause,
437         cp_parser_assignment_expression, cp_parser_expression,
438         cp_parser_template_id, cp_parser_omp_for_loop): Likewise.
439         * cp-tree.h: Update.
441 2012-05-16  Dodji Seketeli  <dodji@redhat.com>
443         PR preprocessor/7263
444         * cp-tree.h (enum cp_decl_spec): Add new enumerators to cover all
445         the possible declarator specifiers so far.
446         (struct cp_decl_specifier_seq::locations): Declare new member.
447         (cp_decl_specifier_seq::{specs, type_location}): Remove.
448         (decl_spec_seq_has_spec_p): Declare new function.
449         * parser.c (cp_parser_check_decl_spec): Remove.
450         (set_and_check_decl_spec_loc): Define new static function.
451         (decl_spec_seq_has_spec_p): Define new public function.
452         (cp_parser_decl_specifier_seq, cp_parser_function_specifier_opt)
453         (cp_parser_type_specifier, cp_parser_simple_type_specifier)
454         (cp_parser_set_storage_class, cp_parser_set_decl_spec_type)
455         (cp_parser_alias_declaration): Set the locations for each
456         declspec, using set_and_check_decl_spec_loc.
457         (cp_parser_explicit_instantiation, cp_parser_init_declarator)
458         (cp_parser_member_declaration, cp_parser_init_declarator): Use the
459         new declspec location for specifiers.  Use the new
460         decl_spec_seq_has_spec_p.
461         (cp_parser_type_specifier_seq): Use the new
462         set_and_check_decl_spec_loc.  Stop using
463         cp_parser_check_decl_spec.  Use the new decl_spec_seq_has_spec_p.
464         (, cp_parser_init_declarator): Use the new
465         set_and_check_decl_spec_loc.
466         (cp_parser_single_declaration, cp_parser_friend_p)
467         (cp_parser_objc_class_ivars, cp_parser_objc_struct_declaration):
468         Use the new decl_spec_seq_has_spec_p.
469         * decl.c (check_tag_decl): Use new decl_spec_seq_has_spec_p.  Use
470         the more precise ds_redefined_builtin_type_spec location for
471         diagnostics about re-declaring C++ built-in types.
472         (start_decl, grokvardecl, grokdeclarator): Use the new
473         decl_spec_seq_has_spec_p.
475 2012-05-15  Paolo Carlini  <paolo.carlini@oracle.com>
477         PR c++/11856
478         * pt.c (tsubst_copy_and_build): Increase / decrease
479         c_inhibit_evaluation_warnings around build_x_binary_op call.
481 2012-05-12  Paolo Carlini  <paolo.carlini@oracle.com>
483         * cp-tree.h (TYPE_PTRMEM_P): Rename to TYPE_PTRDATAMEM_P.
484         (TYPE_PTR_TO_MEMBER_P): Rename to TYPE_PTRMEM_P.
485         (TYPE_PTR_OR_PTRMEM_P): Add.
486         * typeck.c (composite_pointer_type_r, composite_pointer_type,
487         common_pointer_type, cp_build_indirect_ref, cp_build_binary_op,
488         cp_truthvalue_conversion, convert_ptrmem, build_static_cast_1,
489         build_reinterpret_cast_1, build_const_cast_1, comp_ptr_ttypes_real,
490         casts_away_constness_r, casts_away_constness): Adjust.
491         * init.c (build_zero_init_1): Adjust.
492         * class.c (check_field_decls): Likewise.
493         * decl.c (check_default_argument): Likewise.
494         * rtti.c (target_incomplete_p): Likewise.
495         * tree.c (zero_init_p): Likewise.
496         * cxx-pretty-print.c (pp_cxx_ptr_operator,
497         pp_cxx_abstract_declarator): Likewise.
498         * typeck2.c (build_m_component_ref): Likewise.
499         * pt.c (convert_nontype_argument, invalid_nontype_parm_type_p,
500         dependent_type_p_r): Likewise.
501         * call.c (null_member_pointer_value_p, standard_conversion,
502         add_builtin_candidate, build_conditional_expr_1, compare_ics):
503         Likewise.
504         * cp-objcp-common.c (cp_var_mod_type_p): Likewise.
505         * cvt.c (cp_convert_to_pointer, ocp_convert,
506         perform_qualification_conversions): Likewise.
507         * mangle.c (write_type): Likewise.
508         * name-lookup.c (arg_assoc_type): Likewise.
510 2012-05-12  Paolo Carlini  <paolo.carlini@oracle.com>
512         * parser.c (struct cp_parser_expression_stack_entry): Add location_t
513         field.
514         (cp_parser_binary_expression): Rework to always update at the same
515         time tree_type and loc.
516         * call.c (print_z_candidate): Add location_t parameter.
517         (print_z_candidates, convert_like_real, joust): Adjust.
519 2012-05-11  Alexandre Oliva  <aoliva@redhat.com>
521         PR c++/53209
522         * pt.c (tsubst_decl): Bail out if argvec is error_mark_node.
524 2012-05-11  Paolo Carlini  <paolo.carlini@oracle.com>
526         PR c++/53305
527         * pt.c (tsubst_copy: case PARM_DECL): Return error_mark_node if
528         tsubst_decl returns NULL_TREE.
529         * cxx-pretty-print.c (pp_cxx_simple_type_specifier): Handle
530         BOUND_TEMPLATE_TEMPLATE_PARM.
532 2012-05-10  Paolo Carlini  <paolo.carlini@oracle.com>
534         PR c++/53158
535         * cvt.c (ocp_convert): Error out early for void -> bool conversions.
536         * typeck.c (decay_conversion): Use error_at.
537         * call.c (build_integral_nontype_arg_conv, convert_like_real,
538         convert_arg_to_ellipsis, perform_implicit_conversion_flags,
539         initialize_reference): Likewise.
540         * cvt.c (warn_ref_binding): Add location_t parameter.
541         (cp_convert_to_pointer, convert_to_reference, ocp_convert,
542         convert_to_void, ): Use error_at and warning_at.
544 2012-05-10  Paolo Carlini  <paolo.carlini@oracle.com>
546         PR c++/53301
547         * decl.c (check_default_argument): Fix typo (POINTER_TYPE_P
548         instead of TYPE_PTR_P) in zero-as-null-pointer-constant warning.
550 2012-05-06  Paolo Carlini  <paolo.carlini@oracle.com>
552         PR c++/53152
553         * call.c (op_error, build_new_op_1, build_new_op): Add location_t
554         parameter.
555         (build_conditional_expr_1): Adjust.
556         * typeck.c (build_x_indirect_ref, build_x_binary_op,
557         build_x_unary_op): Add location_t parameter.
558         (rationalize_conditional_expr, build_x_array_ref,
559         build_x_compound_expr, cp_build_modify_expr, build_x_modify_expr):
560         Adjust.
561         * typeck2.c (build_x_arrow): Add location_t parameter.
562         * semantics.c (finish_unary_op_expr): Likewise.
563         (finish_increment_expr, handle_omp_for_class_iterator): Adjust.
564         * decl2.c (grok_array_decl): Add location_t parameter.
565         * parser.c (cp_parser_postfix_open_square_expression,
566         cp_parser_postfix_dot_deref_expression, cp_parser_unary_expression,
567         cp_parser_binary_expression, cp_parser_builtin_offsetof,
568         do_range_for_auto_deduction, cp_convert_range_for,
569         cp_parser_template_argument, cp_parser_omp_for_cond): Pass the
570         location, adjust.
571         * pt.c (tsubst_copy_and_build): Adjust.
572         * tree.c (maybe_dummy_object): Likewise.
573         * cp-tree.h: Update declarations.
575 2012-05-04  Paolo Carlini  <paolo.carlini@oracle.com>
577         * semantics.c (cxx_eval_constant_expression, case CONVERT_EXPR): Tidy.
579 2012-05-04  Paolo Carlini  <paolo.carlini@oracle.com>
581         PR c++/53166
582         * pt.c (instantiate_class_template_1): Increase / decrease
583         c_inhibit_evaluation_warnings around the tsubst_expr call
584         for STATIC_ASSERT_CONDITION.
585         (tsubst_expr, case STATIC_ASSERT): Likewise.
586         * typeck.c (cp_build_binary_op, case EQ_EXPR/NE_EXPR): Check
587         c_inhibit_evaluation_warnings in the OPT_Waddress warnings.
589 2012-05-03  Paolo Carlini  <paolo.carlini@oracle.com>
591         PR c++/53186
592         * call.c (build_over_call): Handle final member functions
593         and class types.
594         (build_new_method_call_1): Do not handle here.
596 2012-05-02  Richard Guenther  <rguenther@suse.de>
598         * decl.c (grokdeclarator): Properly check for sizes that
599         cover more than half of the address-space.
601 2012-04-30  Marc Glisse  <marc.glisse@inria.fr>
603         PR c++/51033
604         * typeck.c (cp_build_array_ref): Handle VECTOR_TYPE.
605         * decl2.c (grok_array_decl): Likewise.
607         PR c++/51314
608         * parser.c (cp_parser_sizeof_operand): Require parentheses for
609         sizeof...
611 2012-04-30  Dodji Seketeli  <dodji@redhat.com>
613         Fix location for static class members
614         * decl.c (grokdeclarator): Use the location carried by the
615         declarator for the DECL of the static class member.
617         Fix va_arg type location
618         * cp-tree.h (build_x_va_arg): Take an additional location
619         parameter.
620         * call.c (build_x_va_arg): Take a loc parameter for the location
621         of the type of the va_arg expression.
622         * parser.c (cp_parser_primary_expression): Pass the type of the
623         type in the va_arg expression to build_x_va_arg.
624         * pt.c (tsubst_copy): Adjust calls to build_x_va_arg.
626         Make conversion warnings work on NULL with -ftrack-macro-expansion
627         * call.c (conversion_null_warnings): Use the new
628         expansion_point_location_if_in_system_header.
629         * cvt.c (build_expr_type_conversion): Likewise.
630         * typeck.c (cp_build_binary_op): Likewise.
632 2012-04-30  Manuel LĂłpez-Ibåñez  <manu@gcc.gnu.org>
634         * typeck.c (convert_for_assignment):  Replace
635         Wmissing-format-attribute with Wsuggest-attribute=format.
636         * call.c (convert_for_arg_passing): Likewise.
638 2012-04-26  Paolo Carlini  <paolo.carlini@oracle.com>
640         PR c++/53096
641         * class.c (check_bases_and_members): Implement core/1333, do not
642         disallow defaulted in the class body non-const ref special members.
644 2012-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
646         PR c++/52363
647         * call.c (tourney, perform_overload_resolution,
648         build_operator_new_call, build_user_type_conversion_1,
649         build_user_type_conversion, perform_overload_resolution,
650         add_template_candidate, add_template_candidate_real,
651         add_template_conv_candidate, add_builtin_candidates,
652         add_builtin_candidate, build_builtin_candidate,
653         add_conv_candidate, add_function_candidate, implicit_conversion,
654         reference_binding, build_list_conv, conditional_conversion,
655         add_candidates, can_convert_array, build_aggr_conv,
656         build_array_conv, build_complex_conv, conditional_conversion):
657         Add tsubst_flags_t parameter.
658         (joust): Likewise, use it to handle SFINAE as if pedantic.
659         (add_list_candidates, build_integral_nontype_arg_conv,
660         perform_overload_resolution, build_new_function_call,
661         build_operator_new_call, build_op_call_1,
662         build_conditional_expr_1, build_new_op_1, convert_like_real,
663         convert_arg_to_ellipsis, convert_default_arg,
664         convert_for_arg_passing, build_over_call,
665         build_new_method_call_1, can_convert_arg, can_convert_arg_bad,
666         perform_implicit_conversion_flags,
667         perform_direct_initialization_if_possible,
668         initialize_reference): Adjust.
669         * typeck.c (casts_away_constness, casts_away_constness_r):
670         Add tsubst_flags_t parameter.
671         (convert_arguments, check_for_casting_away_constness,
672         build_static_cast_1, build_ptrmemfunc, convert_for_assignment):
673         Adjust.
674         * decl.c (reshape_init_r, check_default_argument): Likewise.
675         * cp-gimplify.c (cxx_omp_clause_apply_fn): Likewise.
676         * pt.c (convert_nontype_argument, check_non_deducible_conversion):
677         Likewise.
678         * init.c (build_new_1): Likewise.
679         * cvt.c (convert_to_reference, ocp_convert, build_type_conversion,
680         build_expr_type_conversion, ): Likewise.
681         * search.c (check_final_overrider): Likewise.
682         * cp-tree.h (build_user_type_conversion,
683         build_operator_new_call, can_convert, can_convert_arg,
684         can_convert_arg_bad, convert_default_arg,
685         convert_arg_to_ellipsis, convert_for_arg_passing):
686         Adjust declaration.
688 2012-04-22  Jan Hubicka  <jh@suse.cz>
690         * decl2.c (maybe_make_one_only): Mark keyed COMDATs as USED so they
691         gets finalized.
693 2012-04-22  Manuel LĂłpez-Ibåñez  <manu@gcc.gnu.org>
695         PR c/44774
696         * typeck.c (composite_pointer_type): Likewise.
697         (cxx_sizeof_or_alignof_type): Likewise.
698         (cp_build_array_ref): Likewise.
699         (cp_build_function_call_vec): Likewise.
700         (cp_build_addr_expr_1): Likewise.
701         (convert_member_func_to_ptr): Likewise.
702         * decl.c (check_tag_decl): Likewise.
703         (check_static_variable_definition): Likewise.
704         (compute_array_index_type): Likewise.
705         (create_array_type_for_decl): Likewise.
706         (grokdeclarator): Likewise.
707         (grok_op_properties): Likewise.
708         * error.c (maybe_warn_cpp0x): Likewise.
709         * pt.c (maybe_process_partial_specialization): Likewise.
710         (convert_template_argument): Likewise.
711         (do_decl_instantiation): Likewise.
712         (do_type_instantiation): Likewise.
713         * parser.c (cp_parser_primary_expression): Likewise.
714         (cp_parser_postfix_expression): Likewise.
715         (cp_parser_unary_expression): Likewise.
716         (cp_parser_question_colon_clause): Likewise.
717         (cp_parser_lambda_introducer): Likewise.
718         (cp_parser_lambda_declarator_opt): Likewise.
719         (cp_parser_compound_statement): Likewise.
720         (cp_parser_jump_statement): Likewise.
721         (cp_parser_declaration_seq_opt): Likewise.
722         (cp_parser_enum_specifier): Likewise.
723         (cp_parser_enumerator_list): Likewise.
724         (cp_parser_initializer_list): Likewise.
725         (cp_parser_member_declaration): Likewise.
726         * call.c (build_conditional_expr_1): Likewise.
727         * friend.c (make_friend_class): Likewise.
728         * name-lookup.c (pushdecl_maybe_friend_1): Likewise.
730 2012-04-21  Jan Hubicka  <jh@suse.cz>
732         * method.c (make_alias_for): Do not set TREE_SYMBOL_REFERENCED.
733         * decl2.c (mark_needed): Likewise.
734         (decl_needed_p): Do not test TREE_SYMBOL_REFERENCED.
736         * decl2.c (cxx_callgraph_analyze_expr): Remove.
737         * cp-objcp-common.h (LANG_HOOKS_CALLGRAPH_ANALYZE_EXPR): Remove.
738         * cp-tree.h (cxx_callgraph_analyze_expr): Remove.
740 2012-04-21  Manuel LĂłpez-Ibåñez  <manu@gcc.gnu.org>
742         PR 35441
743         * typeck.c (cp_build_function_call_vec): Do not pretty-print
744         expressions when caret is enabled.
746 2012-04-20  Jan Hubicka  <jh@suse.cz>
748         PR target/53042
749         * decl2.c (maybe_emit_vtables): Do not initialize same_comdat_group
750         list when target has no support for it.
752 2012-04-20  Michael Matz  <matz@suse.de>
754         * error.c (pedwarn_cxx98): Move va_end call after user
755         of the va_list.
757 2012-04-18  Paolo Carlini  <paolo.carlini@oracle.com>
759         PR c++/52422
760         * cp-tree.h (build_addr_func, decay_conversion,
761         get_member_function_from_ptrfunc,
762         build_m_component_ref, convert_member_func_to_ptr):
763         Add tsubst_flags_t parameter.
764         * typeck.c (cp_default_conversion): Add.
765         (decay_conversion, default_conversion,
766         get_member_function_from_ptrfunc, convert_member_func_to_ptr):
767         Add tsubst_flags_t parameter and use it throughout.
768         (cp_build_indirect_ref, cp_build_array_ref,
769         cp_build_function_call_vec, convert_arguments, build_x_binary_op,
770         cp_build_binary_op, cp_build_unary_op, build_reinterpret_cast_1,
771         build_const_cast_1, expand_ptrmemfunc_cst,
772         convert_for_initialization): Adjust.
773         * init.c (build_vec_init): Adjust.
774         * decl.c (grok_reference_init, get_atexit_node): Likewise.
775         * rtti.c (build_dynamic_cast_1, tinfo_base_init): Likewise.
776         * except.c (build_throw): Likewise.
777         * typeck2.c (build_x_arrow): Likewise.
778         (build_m_component_ref): Add tsubst_flags_t parameter and
779         use it throughout.
780         * pt.c (convert_nontype_argument): Adjust.
781         * semantics.c (finish_asm_stmt, maybe_add_lambda_conv_op): Likewise.
782         * decl2.c (build_offset_ref_call_from_tree): Likewise.
783         * call.c (build_addr_func): Add tsubst_flags_t parameter and
784         use it throughout.
785         (build_call_a, build_conditional_expr_1, build_new_op_1,
786         convert_like_real, convert_arg_to_ellipsis, build_over_call,
787         build_special_member_call): Adjust.
788         * cvt.c (cp_convert_to_pointer, force_rvalue,
789         build_expr_type_conversion): Likewise.
791 2012-04-17  Tom de Vries  <tom@codesourcery.com>
793         * cp-gimplify.c (begin_bc_block): Add location parameter and use as
794         location argument to create_artificial_label.
795         (finish_bc_block): Change return type to void.  Remove body_seq
796         parameter, and add block parameter.  Append label to STMT_LIST and
797         return in block.
798         (gimplify_cp_loop, gimplify_for_stmt, gimplify_while_stmt)
799         (gimplify_do_stmt, gimplify_switch_stmt): Remove function.
800         (genericize_cp_loop, genericize_for_stmt, genericize_while_stmt)
801         (genericize_do_stmt, genericize_switch_stmt, genericize_continue_stmt)
802         (genericize_break_stmt, genericize_omp_for_stmt): New function.
803         (cp_gimplify_omp_for): Remove bc_continue processing.
804         (cp_gimplify_expr): Genericize VEC_INIT_EXPR.
805         (cp_gimplify_expr): Mark FOR_STMT, WHILE_STMT, DO_STMT, SWITCH_STMT,
806         CONTINUE_STMT, and BREAK_STMT as unreachable.
807         (cp_genericize_r): Genericize FOR_STMT, WHILE_STMT, DO_STMT,
808         SWITCH_STMT, CONTINUE_STMT, BREAK_STMT and OMP_FOR.
809         (cp_genericize_tree): New function, factored out of ...
810         (cp_genericize): ... this function.
812 2012-04-17  Paolo Carlini  <paolo.carlini@oracle.com>
814         PR c++/52599
815         * semantics.c (build_constexpr_constructor_member_initializers):
816         Check for function-try-block as function-body.
818 2012-04-17  Paolo Carlini  <paolo.carlini@oracle.com>
820         PR c++/53003
821         * parser.c (cp_parser_member_declaration): Check that
822         initializer_token_start is non null before dereferencing it.
824 2012-04-16  Jason Merrill  <jason@redhat.com>
826         PR c++/38543
827         * pt.c (determine_specialization): Instead of comparing the number
828         of parms, check that tsubst gives the right answer.
830         PR c++/52008
831         * pt.c (process_partial_specialization): Complain about a partial
832         specialization with fewer args than primary template parms.
834         PR c++/50830
835         * pt.c (convert_template_argument): Handle template template
836         argument packs.
838         PR c++/50303
839         * pt.c (tsubst_pack_expansion): Use tsubst_expr for template
840         template parameters.
842 2012-04-16  Paolo Carlini  <paolo.carlini@oracle.com>
844         PR c++/49152
845         * call.c (op_error): Print types; when flag_diagnostics_show_caret
846         is false print expressions too.
847         (op_error_string): Add.
849 2012-04-16  Jason Merrill  <jason@redhat.com>
851         PR c++/51148
852         * friend.c (make_friend_class): Call check_for_bare_parameter_packs.
854 2012-04-16  Jan Hubicka  <jh@suse.cz>
856         * decl2.c (collect_candidates_for_java_method_alias): Use FOR_EACH
857         walkers to walk cgraph and varpool.
859 2012-04-15  Jason Merrill  <jason@redhat.com>
861         PR c++/47220
862         * pt.c (coerce_template_parameter_pack): Check for error_mark_node.
864         PR c++/52292
865         PR c++/52380
866         * pt.c (coerce_template_parms): Even if we aren't converting we
867         want to expand argument packs.
869         PR c++/52706
870         * mangle.c (write_type): nullptr_t is a builtin type.
872 2012-04-14  Jan Hubicka  <jh@suse.cz>
874         * tree.c: Update field referenced for new cgraph/varpool layout.
875         * decl2.c: Likewise.
877 2012-04-13  Jason Merrill  <jason@redhat.com>
879         PR c++/52824
880         * pt.c (any_pack_expanson_args_p): New.
881         (coerce_template_parms): Use it.
883         PR c++/52905
884         * call.c (joust): Handle comparing list and non-list ctors.
886         PR c++/52915
887         * decl2.c (finish_anon_union): Use cp_finish_decl.
888         * error.c (dump_function_name): Avoid showing anonymous "name".
890 2012-04-11  Fabien ChĂȘne  <fabien@gcc.gnu.org>
892         PR c++/52465
893         * parser.c (cp_parser_class_name): Call strip_using_decl and
894         return the target decl.
895         * name-lookup.c (strip_using_decl): Returns NULL_TREE if the decl
896         to be stripped is NULL_TREE.
897         (qualify_lookup): Call strip_using_decl and perform some checks on
898         the target decl.
900 2012-04-11  Jason Merrill  <jason@redhat.com>
902         PR debug/45088
903         * decl.c (grokdeclarator): Strip the injected-class-name typedef
904         if we are building a declaration or compound type.
906         PR c++/52906
907         * decl.c (check_tag_decl): Don't complain about attributes if we
908         don't even have a type.
910 2012-04-10  Manuel LĂłpez-Ibåñez  <manu@gcc.gnu.org>
912         * cvt.c (convert_to_void): Update comment.
914 2012-04-05  Jason Merrill  <jason@redhat.com>
916         PR c++/52596
917         * semantics.c (finish_non_static_data_member): In templates, pass
918         the decl to build_qualified_name.
919         * tree.c (lvalue_kind) [SCOPE_REF]: Handle FIELD_DECL.
921 2012-04-04  Jason Merrill  <jason@redhat.com>
923         PR c++/52845
924         * decl.c (finish_function): Update fntype after deducing return type.
926 2012-04-03  Jason Merrill  <jason@redhat.com>
928         PR c++/52796
929         * pt.c (tsubst_initializer_list): A pack expansion with no elements
930         means value-initialization.
932 2012-04-01  Paolo Carlini  <paolo.carlini@oracle.com>
934         PR c++/50043
935         * class.c (deduce_noexcept_on_destructor,
936         deduce_noexcept_on_destructors): New.
937         (check_bases_and_members): Call the latter.
938         * decl.c (grokfndecl): Call the former.
939         * method.c (implicitly_declare_fn): Not static.
940         * cp-tree.h (deduce_noexcept_on_destructor, implicitly_declare_fn):
941         Declare
943 2012-03-29  Paolo Carlini  <paolo.carlini@oracle.com>
945         PR c++/52718
946         * decl.c (check_default_argument): With -Wzero-as-null-pointer-constant
947         warn for a zero as null pointer constant default argument.
949 2012-03-29  Jason Merrill  <jason@redhat.com>
951         PR c++/52685
952         * tree.c (copy_binfo): Handle BINFO_DEPENDENT_BASE_P.
954 2012-03-29  Jakub Jelinek  <jakub@redhat.com>
956         PR c++/52759
957         * decl.c (start_decl): Don't call maybe_apply_pragma_weak
958         if processing_template_decl.
960 2012-03-29  Jason Merrill  <jason@redhat.com>
962         PR c++/52743
963         * call.c (compare_ics): Handle ck_aggr like ck_list.
965 2012-03-28  Jason Merrill  <jason@redhat.com>
967         PR c++/52746
968         * typeck.c (lookup_destructor): Clear BASELINK_QUALIFIED_P if
969         we didn't get an explicit scope.
970         * pt.c (tsubst_baselink): Likewise.
972 2012-03-28  Richard Guenther  <rguenther@suse.de>
974         * typeck2.c (process_init_constructor_array): Use the proper
975         type for computing the array length.
977 2012-03-27  Meador Inge  <meadori@codesourcery.com>
979         PR c++/52672
980         * semantics.c (cxx_fold_indirect_ref): Don't attempt to fold
981         stripped child trees that are not pointer types.
983 2012-03-21  Jason Merrill  <jason@redhat.com>
985         Implement return type deduction for normal functions with -std=c++1y.
986         * cp-tree.h (FNDECL_USED_AUTO): New macro.
987         (LAMBDA_EXPR_DEDUCE_RETURN_TYPE_P): Remove.
988         (dependent_lambda_return_type_node): Remove.
989         (CPTI_DEPENDENT_LAMBDA_RETURN_TYPE): Remove.
990         (struct language_function): Add x_auto_return_pattern field.
991         (current_function_auto_return_pattern): New.
992         (enum tsubst_flags): Add tf_partial.
993         * decl.c (decls_match): Handle auto return comparison.
994         (duplicate_decls): Adjust error message for auto return.
995         (cxx_init_decl_processing): Remove dependent_lambda_return_type_node.
996         (cp_finish_decl): Don't do auto deduction for functions.
997         (grokdeclarator): Allow auto return without trailing return type in
998         C++1y mode.
999         (check_function_type): Defer checking of deduced return type.
1000         (start_preparsed_function): Set current_function_auto_return_pattern.
1001         (finish_function): Set deduced return type to void if not previously
1002         deduced.
1003         * decl2.c (change_return_type): Handle error_mark_node.
1004         (mark_used): Always instantiate functions with deduced return type.
1005         Complain about use if deduction isn't done.
1006         * parser.c (cp_parser_lambda_declarator_opt): Use 'auto' for
1007         initial return type.
1008         (cp_parser_lambda_body): Don't deduce return type in a template.
1009         (cp_parser_conversion_type_id): Allow auto in C++1y.
1010         * pt.c (instantiate_class_template_1): Don't mess with
1011         LAMBDA_EXPR_DEDUCE_RETURN_TYPE_P.
1012         (tsubst_copy_and_build): Likewise.
1013         (fn_type_unification, tsubst): Don't reduce the template parm level
1014         of 'auto' during deduction.
1015         (unify): Compare 'auto' specially.
1016         (get_bindings): Change test.
1017         (always_instantiate_p): Always instantiate functions with deduced
1018         return type.
1019         (do_auto_deduction): Handle error_mark_node and lambda context.
1020         Don't check for use in initializer.
1021         (contains_auto_r): Remove.
1022         * search.c (lookup_conversions_r): Handle auto conversion function.
1023         * semantics.c (lambda_return_type): Handle null return.  Don't mess
1024         with dependent_lambda_return_type_node.
1025         (apply_deduced_return_type): Rename from apply_lambda_return_type.
1026         * typeck.c (merge_types): Handle auto.
1027         (check_return_expr): Do auto deduction.
1028         * typeck2.c (add_exception_specifier): Fix complain check.
1030 2012-03-22  Paolo Carlini  <paolo.carlini@oracle.com>
1032         PR c++/52487
1033         * class.c (check_field_decls): Call literal_type_p only
1034         on complete types.
1036 2012-03-22  Jakub Jelinek  <jakub@redhat.com>
1038         PR c++/52671
1039         * decl.c (check_tag_decl): Only use CLASSTYPE_TEMPLATE_INSTANTIATION
1040         on CLASS_TYPE_P types.
1042 2012-03-20  Jason Merrill  <jason@redhat.com>
1044         * lex.c (init_reswords): Use >= for cxx_dialect test.
1045         * parser.c (cp_parser_exception_specification_opt): Likewise.
1047         * mangle.c (write_type): Handle 'auto'.
1048         * init.c (build_new): Don't do auto deduction where it might
1049         affect template mangling.
1051         PR c++/52510
1052         * decl.c (reshape_init_class): Handle repeated reshaping.
1053         * search.c (lookup_field_1): Add sanity check.
1055 2012-03-19  Paolo Carlini  <paolo.carlini@oracle.com>
1057         PR c++/14710
1058         * cp-tree.h (xvalue_p, maybe_warn_about_useless_cast): Declare.
1059         * tree.c (xvalue_p): Define.
1060         * typeck.c (maybe_warn_about_useless_cast): Define.
1061         (build_reinterpret_cast, build_const_cast,
1062         build_static_cast, cp_build_c_cast): Use maybe_warn_about_useless_cast.
1063         * rtti.c (build_dynamic_cast): Likewise.
1064         * pt.c (tsubst_copy_and_build, case CAST_EXPR): Increment/decrement
1065         c_inhibit_evaluation_warnings before/after the build_* calls.
1067 2012-03-15  Jason Merrill  <jason@redhat.com>
1069         PR c++/52582
1070         * method.c (implicitly_declare_fn): Set DECL_EXTERNAL.
1072 2012-03-15  Manuel LĂłpez-Ibåñez  <manu@gcc.gnu.org>
1074         PR c++/44783
1075         * error.c (print_instantiation_partial_context): Use
1076         template_backtrace_limit.
1078 2012-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1080         * Make-lang.in (doc/g++.1): Remove IRIX 6.5 reference.
1082 2012-03-14  Jakub Jelinek  <jakub@redhat.com>
1084         PR c++/52521
1085         * parser.c (lookup_literal_operator): Return fn only if
1086         processed all arguments from args vector and argtypes is
1087         void_list_node.
1089 2012-01-30  Dodji Seketeli  <dodji@redhat.com>
1091         PR c++/51641
1092         * cp-tree.h (template_type_parameter_p): Declare new function.
1093         (parameter_of_template_p): Remove.
1094         * pt.c (template_type_parameter_p): Define new function.
1095         (parameter_of_template_p): Remove.
1096         * name-lookup.c (binding_to_template_parms_of_scope_p): Don't rely
1097         on parameter_of_template_p anymore.  Compare the level of the
1098         template parameter to the depth of the template.
1100 2011-12-15  Dodji Seketeli  <dodji@redhat.com>
1102         * call.c (standard_conversion, build_integral_nontype_arg_conv)
1103         (build_new_op_1, convert_like_real, is_subseq)
1104         (maybe_handle_implicit_object, maybe_handle_ref_bind, compare_ics)
1105         (joust): Use next_conversion instead of accessing fields of struct
1106         conversion directly.
1108 2012-03-12  Paolo Carlini  <paolo.carlini@oracle.com>
1110         PR c++/52299
1111         * pt.c (tsubst_copy_and_build, case COND_EXPR): Avoid bogus
1112         division by zero warnings.
1114 2012-03-08  Paolo Carlini  <paolo.carlini@oracle.com>
1116         * typeck.c (build_array_ref, cp_build_addr_expr_1, convert_ptrmem,
1117         build_ptrmemfunc): Consistently forward the tsubst_flags_t
1118         parameter.
1119         * call.c (resolve_args): Likewise.
1121 2012-03-07  Jason Merrill  <jason@redhat.com>
1123         PR c++/52521
1124         * mangle.c (write_literal_operator_name): The length comes after the
1125         operator prefix.
1127 2012-03-05  Jakub Jelinek  <jakub@redhat.com>
1129         * pt.c (local_specializations): Change from htab_t into
1130         struct pointer_map_t *.
1131         (retrieve_local_specializations, register_local_specialization,
1132         tsubst_pack_expansion, instantiate_decl): Adjust users.
1133         (eq_local_specializations, hash_local_specialization): Remove.
1135 2012-03-05  Jason Merrill  <jason@redhat.com>
1137         PR c++/51930
1138         * decl2.c (determine_visibility): Correct calculation of class
1139         args depth.
1140         * decl.c (check_tag_decl): Adjust warning.
1142         * method.c (synthesized_method_walk): Cleanups don't affect the EH
1143         spec either.
1145 2012-03-03  Jason Merrill  <jason@redhat.com>
1147         * init.c (perform_member_init): Cope with uninstantiated NSDMI.
1149         Core 1270
1150         * call.c (build_aggr_conv): Call reshape_init.
1151         (convert_like_real): Likewise.
1152         * typeck2.c (process_init_constructor): Clear TREE_CONSTANT if
1153         not all constant.
1155         * mangle.c (write_nested_name): Use decl_mangling_context.
1156         (write_prefix, write_template_prefix): Likewise.
1158         PR c++/36797
1159         * mangle.c (write_expression): Improve diagnostic for TRAIT_EXPR.
1161         * class.c (add_method): Always build an OVERLOAD for using-decls.
1162         * search.c (lookup_member): Handle getting an OVERLOAD for a
1163         single function.
1165 2012-03-02  Paolo Carlini  <paolo.carlini@oracle.com>
1167         PR c++/51989
1168         * typeck2.c (build_x_arrow): Take a tsubst_flags_t argument and
1169         propagate it.
1170         * cp-tree.h (build_x_arrow): Adjust prototype.
1171         * pt.c (tsubst_copy_and_build): Adjust call.
1172         * parser.c (cp_parser_postfix_dot_deref_expression): Likewise.
1174 2012-03-02  Paolo Carlini  <paolo.carlini@oracle.com>
1176         * name-lookup.c (binding_to_template_parms_of_scope_p): Clean up.
1178 2012-02-29  Jason Merrill  <jason@redhat.com>
1180         PR c++/51930
1181         * decl.c (check_tag_decl): Move warning for misplaced attributes here.
1182         (shadow_tag): From here.
1183         * parser.c (cp_parser_explicit_instantiation): Don't warn here.
1185 2012-02-21  Jakub Jelinek  <jakub@redhat.com>
1187         PR c++/52312
1188         * typeck.c (check_literal_operator_args): Initialize *long_double_p
1189         and *long_long_unsigned_p even if processing_template_decl.
1191 2012-02-16  Jason Merrill  <jason@redhat.com>
1193         PR c++/52248
1194         * decl.c (define_label): Use timevar_cond_start/stop.
1196 2012-02-16  Fabien ChĂȘne  <fabien@gcc.gnu.org>
1198         PR c++/52126
1199         * decl.c (xref_basetypes): call dependent_scope_p instead of
1200         dependent_type_p.
1202 2012-02-16  Jason Merrill  <jason@redhat.com>
1204         PR c++/51415
1205         * error.c (dump_expr): Handle lambda closures specifically.
1207 2012-02-14  Jason Merrill  <jason@redhat.com>
1209         * parser.c (cp_parser_explicit_instantiation): Give a warning
1210         for ignored attributes on explicit class instantiation.
1212 2012-02-14  Jakub Jelinek  <jakub@redhat.com>
1214         PR c++/52247
1215         * pt.c (tsubst_copy_asm_operands): For LABEL_DECL values call
1216         lookup_label on label's name and set TREE_USED.
1218 2012-02-14  Jason Merrill  <jason@redhat.com>
1220         PR c++/39055
1221         * decl.c (local_variable_p_walkfn): Don't check DECL_ARTIFICIAL.
1223 2012-02-14  Jakub Jelinek  <jakub@redhat.com>
1225         PR c/52181
1226         * decl.c (duplicate_decls): If olddecl has bigger DECL_ALIGN than
1227         newdecl, copy DECL_ALIGN to newdecl and or DECL_USER_ALIGN bits.
1229 2012-02-07  Jason Merrill  <jason@redhat.com>
1231         PR c++/51675
1232         * semantics.c (cx_check_missing_mem_inits): Handle unions.
1233         Fix constexpr default constructor logic.
1235         PR c++/52035
1236         * pt.c (tsubst): Strip uninstantiated typedef.
1238 2012-02-06  Jason Merrill  <jason@redhat.com>
1240         PR c++/52088
1241         * cvt.c (build_expr_type_conversion): Check for template conversion.
1243 2012-01-31  Jason Merrill  <jason@redhat.com>
1245         PR c++/52043
1246         * cp-tree.h (PACK_EXPANSION_LOCAL_P): New.
1247         * pt.c (make_pack_expansion, tsubst_initializer_list): Set it.
1248         (tsubst_pack_expansion): Check it.
1250 2012-01-29  Paolo Carlini  <paolo.carlini@oracle.com>
1252         PR c++/51327
1253         * class.c (explain_non_literal_class): Correctly handle implicitly
1254         deleted constructors.
1256 2012-01-27  Jakub Jelinek  <jakub@redhat.com>
1258         PR c++/51852
1259         * pt.c (tsubst_pack_expansion): Delete and restore
1260         local_specialization whenever need_local_specialization, not just
1261         when saved_local_specializations is non-NULL.
1263 2012-01-26  Paolo Carlini  <paolo.carlini@oracle.com>
1265         PR c++/51370
1266         * error.c (dump_decl, [TEMPLATE_ID_EXPR]): Handle error_mark_node
1267         as TREE_OPERAND (t, 1).
1269 2012-01-24  Jason Merrill  <jason@redhat.com>
1271         PR c++/51917
1272         * decl.c (xref_basetypes): Check VEC_length instead of VEC_space.
1274         PR c++/51973
1275         * tree.c (called_fns_equal): Check template args.
1276         (cp_tree_equal): Call it.
1278 2012-01-24  Aldy Hernandez  <aldyh@redhat.com>
1279             Patrick Marlier  <patrick.marlier@gmail.com>
1281         PR c++/51928
1282         * class.c (set_method_tm_attributes): Use TARGET_THUNK instead of
1283         thunk for set_one_vmethod_tm_attributes.
1285 2012-01-24  Paolo Carlini  <paolo.carlini@oracle.com>
1287         PR c++/51223
1288         * call.c (build_over_call): Check for error_mark_node as
1289         TREE_VALUE when default arguments are processed.
1291 2012-01-23  Jason Merrill  <jason@redhat.com>
1293         PR c++/51930
1294         * decl2.c (determine_visibility): Check for visibility attribute
1295         on template specialization.
1297 2012-01-23  Paolo Carlini  <paolo.carlini@oracle.com>
1299         PR c++/51398
1300         * pt.c (parameter_of_template_p): Skip error_mark_node parameters.
1302 2012-01-23  Jason Merrill  <jason@redhat.com>
1304         PR c++/51925
1305         * class.c (add_method): Set OVL_USED for using-decls.
1306         * tree.c (ovl_scope): New.
1307         * cp-tree.h: Declare it.
1308         * parser.c (cp_parser_template_name): Use it.
1309         * semantics.c (baselink_for_fns): Likewise.
1310         * name-lookup.c (set_inherited_value_binding_p): Likewise.
1312 2012-01-20  Paolo Carlini  <paolo.carlini@oracle.com>
1314         PR c++/51402
1315         * pt.c (lookup_template_class_1): Check context returned by
1316         tsubst for error_mark_node.
1318 2012-01-19  Kai Tietz  <ktietz@redhat.com>
1320         PR c++/51344
1321         * decl2.c (save_template_attributes): Use merge_attributes
1322         instead of chaining up via TREE_CHAIN.
1324 2012-01-19  Jason Merrill  <jason@redhat.com>
1326         PR c++/51889
1327         * class.c (finish_struct): Call add_method here for function usings.
1328         * semantics.c (finish_member_declaration): Not here.
1330 2012-01-18  Paolo Carlini  <paolo.carlini@oracle.com>
1332         PR c++/51225
1333         * typeck2.c (store_init_value): Within a template guard
1334         cxx_constant_value with require_potential_constant_expression.
1335         * pt.c (convert_nontype_argument): Likewise.
1337 2012-01-16  Jakub Jelinek  <jakub@redhat.com>
1339         PR c++/51854
1340         * mangle.c (write_template_arg_literal): Handle complex.
1342 2012-01-16  Jason Merrill  <jason@redhat.com>
1344         PR c++/51827
1345         * mangle.c (mangle_decl): Don't mangle uninstantiated templates.
1347         PR c++/51868
1348         * typeck.c (build_static_cast_1): Handle bit-fields properly.
1350 2012-01-13  Ian Lance Taylor  <iant@google.com>
1352         PR c++/50012
1353         * typeck.c (enum_cast_to_int): New static function.
1354         (cp_build_binary_op): When handling warn_sign_compare, don't test
1355         for TREE_NO_WARNING.  Do call enum_cast_to_int.
1356         * call.c (avoid_sign_compare_warnings): Remove static function.
1357         (build_new_op_1): Don't call avoid_sign_compare_warnings.
1359 2012-01-13  Steven Bosscher  <steven@gcc.gnu.org>
1361         * decl2.c: Do not include tree-mudflap.h
1362         * semantics.c: Likewise.
1364 2012-01-13  Jason Merrill  <jason@redhat.com>
1366         PR c++/20681
1367         * semantics.c (finish_break_stmt): Avoid adding an unreachable
1368         BREAK_STMT.
1370         PR c++/51813
1371         * decl2.c (constrain_visibility): Clear DECL_VISIBILITY_SPECIFIED
1372         when reducing the visibility.
1374         PR c++/51620
1375         * class.c (build_vtbl_initializer): Use __cxa_deleted_virtual.
1377 2012-01-12  Jason Merrill  <jason@redhat.com>
1379         PR c++/51714
1380         * pt.c (value_dependent_expression_p): Treat STMT_EXPR as
1381         value-dependent.
1383 2012-01-13  Dodji Seketeli  <dodji@redhat.com>
1385         PR c++/51633
1386         * semantics.c (cp_parser_ctor_initializer_opt_and_function_body):
1387         Set the pointer to the last block of the constructor to the
1388         current statement.
1389         (build_constexpr_constructor_member_initializers): Get
1390         build_data_member_initialization a chance to deal with more
1391         statements before we choke.
1393 2012-01-12  Jason Merrill  <jason@redhat.com>
1395         PR c++/48051
1396         * mangle.c (write_expression): Mangle BASELINK scope if
1397         BASELINK_QUALIFIED_P.
1398         * search.c (adjust_result_of_qualified_name_lookup): Set
1399         BASELINK_QUALIFIED_P.
1400         * tree.c (cp_tree_equal) [BASELINK]: Compare BASELINK_QUALIFIED_P.
1401         * parser.c (cp_parser_postfix_dot_deref_expression): Don't call
1402         adjust_result_of_qualified_name_lookup for non-qualified names.
1404         PR c++/51403
1405         * pt.c (unify): Handle error_mark_node.
1407 2012-01-11  Jason Merrill  <jason@redhat.com>
1409         PR c++/51565
1410         * call.c (standard_conversion): For ptrmemfuncs, compare the
1411         static_fn_types.
1413         PR c++/51818
1414         * mangle.c (find_substitution): A type is only a substitution
1415         match if we're looking for a type.
1416         (write_nested_name): Use decl_mangling_context.
1418         * decl.c (decls_match): Assert that the arguments are decls.
1420         PR c++/51613
1421         * pt.c (resolve_overloaded_unification): Compare types with
1422         same_type_p, not decls_match.
1424 2012-01-10  Jason Merrill  <jason@redhat.com>
1426         PR c++/51614
1427         * class.c (build_base_path): Diagnose ambiguous base.
1429         PR c++/51433
1430         * semantics.c (cxx_eval_call_expression): Always retry previously
1431         non-constant expressions.
1433 2012-01-06  Jason Merrill  <jason@redhat.com>
1435         DR 686
1436         PR c++/47450
1437         * parser.c (cp_parser_new_expression): Set
1438         type_definition_forbidden_message.
1440         PR c++/6057
1441         PR c++/48051
1442         PR c++/50855
1443         PR c++/51322
1444         * mangle.c (write_expression): Support NEW_EXPR, DELETE_EXPR,
1445         THROW_EXPR, CONSTRUCTOR, OVERLOAD.  Fix PREINCREMENT_EXPR and
1446         PREDECREMENT_EXPR.
1447         (write_template_arg): Fix mangling of class-scope functions and
1448         argument packs.
1449         (mangle_decl): Update suggested -fabi-version argument.
1450         * operators.def: Add DOTSTAR_EXPR, REINTERPRET_CAST_EXPR,
1451         DYNAMIC_CAST_EXPR; correct CONST_CAST_EXPR, STATIC_CAST_EXPR.
1452         * tree.c (dependent_name): No longer static.
1453         * cp-tree.h: Declare it.
1454         * pt.c (unify): Defer handling of unconverted functions.
1456         * mangle.c (mangle_decl): Don't generate mangling aliases
1457         for maybe-in-charge [cd]tors.
1459         * error.c (dump_expr): Print type of CONSTRUCTOR.
1461 2012-01-05  Dodji Seketeli  <dodji@redhat.com>
1463         PR c++/51541
1464         * parser.c (cp_parser_alias_declaration): Get out early upon
1465         errors in the identifier or the attributes.
1467 2012-01-04  Paolo Carlini  <paolo.carlini@oracle.com>
1469         PR c++/51064
1470         * pt.c (tsubst_copy_and_build): Maybe set TREE_NO_WARNING on
1471         the tree returned by build_x_binary_op.
1473 2012-01-03  Paolo Carlini  <paolo.carlini@oracle.com>
1475         PR c++/51738
1476         * parser.c (cp_parser_postfix_open_square_expression): Handle
1477         postfix-expression [ braced-init-list ].
1479 2012-01-03  Paolo Carlini  <paolo.carlini@oracle.com>
1481         PR c++/29273
1482         * rtti.c (build_dynamic_cast_1): In case of T a pointer type,
1483         call decay_conversion on v.
1485 2012-01-03  Paolo Carlini  <paolo.carlini@oracle.com>
1487         PR c++/15867
1488         * decl.c (duplicate_decls): With -Wredundant-decls don't warn for
1489         declaration followed by specialization.
1491 2012-01-03  Jakub Jelinek  <jakub@redhat.com>
1493         PR c++/51669
1494         * semantics.c (finish_omp_clauses): Call fold_build_cleanup_point_expr
1495         on OMP_CLAUSE_{IF,FINAL,NUM_THREADS,SCHEDULE_CHUNK}_EXPR.
1497 2012-01-02  Jason Merrill  <jason@redhat.com>
1499         DR 1359
1500         PR c++/51675
1501         * method.c (walk_field_subobs): Don't check for uninitialized
1502         fields in a union.
1503         (synthesized_method_walk): Check here.
1505         DR 325
1506         PR c++/51666
1507         * parser.c (cp_parser_cache_defarg): Split out...
1508         (cp_parser_parameter_declaration): ...from here.
1509         (cp_parser_save_nsdmi): Use it.
1510         (cp_parser_cache_group): Remove CPP_COMMA support.
1512 2012-01-02  Dodji Seketeli  <dodji@redhat.com>
1514         PR c++/51462
1515         * semantics.c (cx_check_missing_mem_inits): Don't assert in case
1516         of error.
1518 2012-01-02  Paolo Carlini  <paolo.carlini@oracle.com>
1520         PR c++/20140
1521         * typeck2.c (digest_init_r): Use copy_init when initializing
1522         an array of chars.
1524 2012-01-01  Paolo Carlini  <paolo.carlini@oracle.com>
1526         PR c++/16603
1527         * decl.c (build_enumerator): Don't call perform_integral_promotions
1528         on the value.
1530 2012-01-01  Paolo Carlini  <paolo.carlini@oracle.com>
1532         PR c++/51379
1533         * typeck.c (build_reinterpret_cast_1): Implement resolution of
1534         DR 799.
1536 2012-01-01  Fabien ChĂȘne  <fabien@gcc.gnu.org>
1538         * parser.c (cp_parser_using_declaration): Add a warning about
1539         deprecated access declarations when no errors were encountered
1540         while parsing the access declaration. Save the first token in
1541         order to emit the warning at the right place.
1543 Copyright (C) 2012 Free Software Foundation, Inc.
1545 Copying and distribution of this file, with or without modification,
1546 are permitted in any medium without royalty provided the copyright
1547 notice and this notice are preserved.