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