PR c++/53202
[official-gcc.git] / gcc / cp / ChangeLog
blobf87b4d68ec14600a919ead358864f2179d0dc2ff
1 2012-06-25  Jason Merrill  <jason@redhat.com>
3         PR c++/53202
4         * semantics.c (build_data_member_initialization): Always keep
5         initializer for empty base.
6         (cxx_eval_bare_aggregate): Discard it here.
8         PR c++/53565
9         * pt.c (tsubst_omp_for_iterator): Simplify DECL_EXPR handling.
10         (tsubst_expr) [OMP_FOR]: Here, too.
12 2012-06-25  Jakub Jelinek  <jakub@redhat.com>
14         PR c++/53594
15         * class.c (check_bases_and_members): Avoid -Wuninitialized
16         diagnostics for non-static const members or references if they
17         use NSDMI.
19 2012-06-16  Ville Voutilainen  <ville.voutilainen@gmail.com>
21         * parser.c (cp_parser_direct_declarator): Move virt-specifier
22         parsing after late-specified return type parsing.
24 2012-06-14  Jason Merrill  <jason@redhat.com>
26         PR c++/53651
27         * name-lookup.c (constructor_name_p): Don't try to look at the
28         name of a DECLTYPE_TYPE.
30 2012-06-18  Lawrence Crowl  <crowl@google.com>
32         * decl2.c (cp_write_global_declarations): Rename use of TV_PHASE_CGRAPH
33         to TV_PHASE_OPT_GEN.
35 2012-06-18  Steven Bosscher  <steven@gcc.gnu.org>
37         * decl.c (finish_function): Remove code conditional on VMS_TARGET.
39 2012-06-15  Marc Glisse  <marc.glisse@inria.fr>
41         PR c++/51033
42         * semantics.c (literal_type_p): Handle VECTOR_TYPE.
43         (potential_constant_expression_1): Handle VEC_PERM_EXPR.
44         * parser.c (cp_parser_postfix_expression): Handle RID_BUILTIN_SHUFFLE.
46 2012-06-09  Jason Merrill  <jason@redhat.com>
48         * pt.c (tsubst_expr) [TAG_DEFN]: Instantiate local class.
49         * class.c (finish_struct): Don't add a TAG_DEFN for a lambda.
50         * decl2.c (finish_static_data_member_decl): Avoid redundant error.
52         PR c++/53599
53         * name-lookup.c (pushtag_1): Add a DECL_EXPR for a local class.
54         * semantics.c (finish_cond): Build a COMPOUND_EXPR.
55         * pt.c (tsubst_expr) [COMPOUND_EXPR]: Handle.
56         [DECL_EXPR]: Don't call cp_finish_decl for an implicit typedef.
57         Don't return the decl.
59 2012-06-11  Richard Guenther  <rguenther@suse.de>
61         PR c++/53605
62         * mangle.c (write_array_type): Use double-ints for array domain
63         arithmetic.
65 2012-06-07  Fabien Chêne  <fabien@gcc.gnu.org>
67         PR c++/51214
68         * cp-tree.h (insert_late_enum_def_into_classtype_sorted_fields):
69         Declare.
70         * class.c (insert_into_classtype_sorted_fields): New.
71         (add_enum_fields_to_record_type): New.
72         (count_fields): Adjust the comment.
73         (add_fields_to_record_type): Likewise.
74         (finish_struct_1): Move the code that inserts the fields for the
75         sorted case, into insert_into_classtype_sorted_fields, and call
76         it.
77         (insert_late_enum_def_into_classtype_sorted_fields): Define.
78         * decl.c (finish_enum_value_list): Call
79         insert_late_enum_def_into_classtype_sorted_fields if a late enum
80         definition is encountered.
82 2012-06-06  Paolo Carlini  <paolo.carlini@oracle.com>
84         PR c++/53567
85         * typeck.c (cp_perform_integral_promotions): New, like
86         perform_integral_promotions but also takes a tsubst_flags_t parameter.
87         (pointer_diff): Add tsubst_flags_t parameter.
88         (decay_conversion, cp_default_conversion, cp_build_array_ref,
89         cp_build_binary_op, cp_build_unary_op, build_static_cast_1,
90         build_reinterpret_cast_1, cp_build_modify_expr,
91         convert_for_assignment): Adjust.
92         * optimize.c (build_delete_destructor_body): Adjust.
93         * init.c (expand_virtual_init, expand_default_init, build_new_1,
94         build_new, build_vec_delete_1, build_vec_init, build_delete): Adjust.
95         (construct_virtual_base): Adjust LOOKUP_COMPLAIN -> 0.
96         * class.c (build_base_path): Adjust.
97         * decl.c (compute_array_index_type, finish_destructor_body): Likewise.
98         * method.c (synthesized_method_walk): Adjust flag and complain.
99         * rtti.c (ifnonnull): Add tsubst_flags_t parameter.
100         (build_typeid, build_dynamic_cast_1): Adjust.
101         * except.c (initialize_handler_parm): Likewise.
102         * typeck2.c (process_init_constructor_record): Likewise.
103         * pt.c (tsubst_friend_class): Don't change flags.
104         * semantics.c (finish_goto_stmt, handle_omp_for_class_iterator,
105         finish_static_assert): Likewise.
106         * parser.c (cp_parser_lookup_name): Just pass 0 as flags to
107         lookup_name_real.
108         * call.c (build_op_delete_call): Add tsubst_flags_t parameter.
109         (convert_like_real, convert_arg_to_ellipsis, convert_for_arg_passing):
110         Adjust.
111         (standard_conversion): Adjust LOOKUP_COMPLAIN -> 0.
112         (implicit_conversion): Mask out tf_error with a FIXME.
113         (build_user_type_conversion_1, build_new_op_1, build_over_call): Use
114         complain & tf_error instead of flags & LOOKUP_COMPLAIN.
115         * cvt.c (cp_convert_to_pointer, convert_to_pointer_force,
116         build_up_reference, convert_to_reference, cp_convert,
117         cp_convert_and_check, ocp_convert, convert_force): Add tsubst_flags_t
118         parameter.
119         (convert_to_reference, ocp_convert): Use complain & tf_error instead
120         of flags & LOOKUP_COMPLAIN.
121         (convert_force): Adjust LOOKUP_COMPLAIN -> 0.
122         * name-lookup.c (identifier_type_value_1, lookup_qualified_name,
123         lookup_name_real, lookup_function_nonclass, lookup_name,
124         lookup_name_prefer_type): Adjust LOOKUP_COMPLAIN -> 0.
125         * cp-tree.h: Adjust prototypes; remove LOOKUP_COMPLAIN.
127 2012-06-06  Steven Bosscher  <steven@gcc.gnu.org>
129         * decl.c: Do not include output.h.
130         (start_decl): Remove code for flag_conserve_space.
132 2012-06-06  Fabien Chêne  <fabien@gcc.gnu.org>
134         PR c++/52841
135         * parser.c (cp_parser_alias_declaration): Return earlier
136         if an error occured.
138 2012-06-04  Paolo Carlini  <paolo.carlini@oracle.com>
140         PR c++/53524
141         * call.c (build_conditional_expr_1): Use OPT_Wenum_compare
142         to control enumeral mismatch in conditional expression too.
144 2012-06-04   Sterling Augustine  <saugustine@google.com>
146         * cp-tree.h: Declare decl_as_dwarf_string, lang_decl_dwarf_name.
147         * cp-lang.c (cxx_dwarf_name): Call them.
149 2012-06-04  Steven Bosscher  <steven@gcc.gnu.org>
151         * semantics.c: Do not include output.h.
152         * decl2.c: Likewise.
153         * friend.c: Likewise.
154         * typeck.c: Likewise.
155         * typeck2.c: Likewise.
156         * Make-lang.in: Fix dependencies.
158 2012-06-01  Jason Merrill  <jason@redhat.com>
160         PR c++/52973
161         * parser.c (cp_parser_class_head): Apply attributes here.
162         * semantics.c (begin_class_definition): Not here.
163         * cp-tree.h: Adjust.
165         PR c++/52725
166         * parser.c (cp_parser_binary_expression): Bail early if we're parsing
167         tentatively and the LHS has a parse error.
169         PR c++/53137
170         * pt.c (instantiate_class_template_1): Set LAMBDA_EXPR_THIS_CAPTURE.
171         (instantiate_decl): Don't push_to_top_level for local class methods.
172         (instantiate_class_template_1): Or for local classes.
174         PR c++/53484
175         * pt.c (do_auto_deduction): Don't try to deduce from a
176         type-dependent initializer.
178 2012-06-01  Paolo Carlini  <paolo.carlini@oracle.com>
180         PR c++/26155
181         * name-lookup.c (push_namespace): When error recovery is
182         impossible just error out in duplicate_decls.
184 2012-05-31  Steven Bosscher  <steven@gcc.gnu.org>
186         * call.c: Do not include output.h.
187         * class.c: Likewise.
188         * except.c: Likewise.
189         * friend.c: Likewise.
190         * init.c: Likewise.
191         * lex.c: Likewise.
192         * method.c: Likewise.
193         * parser.c: Likewise.
194         * pt.c: Likewise.
195         * rtti.c: Likewise.
196         * search.c: Likewise.
198 2012-05-30  Jason Merrill  <jason@redhat.com>
200         PR c++/53356
201         * tree.c (stabilize_init): Handle stabilizing a TARGET_EXPR
202         representing a bitwise copy of a glvalue.
204         * tree.c (stabilize_expr): Tweak logic.
206         PR c++/53356
207         * tree.c (stabilize_init): Side effects make the init unstable.
209 2012-05-28  Paolo Carlini  <paolo.carlini@oracle.com>
211         PR c++/53503
212         * semantics.c (potential_constant_expression_1): Handle LTGT_EXPR.
214 2012-05-26  Paolo Carlini  <paolo.carlini@oracle.com>
216         PR c++/53491
217         * tree.c (stabilize_expr): Handle exp of void type.
219 2012-05-26  Jason Merrill  <jason@redhat.com>
221         PR c++/53220
222         * call.c (convert_like_real) [ck_list]: Take array address directly.
223         * typeck.c (decay_conversion): Reject decay of an array compound
224         literal.
226 2012-05-25  Paolo Carlini  <paolo.carlini@oracle.com>
228         PR c++/32054
229         * parser.c (cp_parser_member_declaration): A storage class is not
230         allowed in a declaration of an anonymous aggregate in a class scope.
232 2012-05-24  Uros Bizjak  <ubizjak@gmail.com>
234         PR obj-c++/53441
235         * decl.c (grokdeclarator): Check that current_class_type is non-NULL
236         before calling constructor_name_p.
238 2012-05-24  Paolo Carlini  <paolo.carlini@oracle.com>
240         PR c++/32080
241         * parser.c (cp_parser_ctor_initializer_opt_and_function_body,
242         cp_parser_function_body): Add a bool parameter, true when parsing
243         a function-try-block.
244         (cp_parser_function_try_block): Pass true to the above.
245         (cp_parser_function_definition_after_declarator,
246         cp_parser_function_transaction): Adjust.
248 2012-05-23  Paolo Carlini  <paolo.carlini@oracle.com>
250         PR c++/29185
251         * decl2.c (delete_sanity): Extend 'deleting array' warning to
252         any array type.
254 2012-05-21  Paolo Carlini  <paolo.carlini@oracle.com>
256         PR c++/51184
257         * decl.c (grokdeclarator): Diagnose functions returning abstract
258         class types as TYPENAME.
259         * cp-tree.h (ABSTRACT_CLASS_TYPE_P): Add.
260         * except.c (is_admissible_throw_operand_or_catch_parameter): Use it.
261         * pt.c (tsubst): Likewise.
262         * semantics.c (trait_expr_value): Likewise.
264 2012-05-21  Paolo Carlini  <paolo.carlini@oracle.com>
266         PR c++/40821
267         * parser.c (cp_parser_attributes_opt): Enforce error checking of
268         unbalanced parentheses in the presence of tentative parsing.
270 2012-05-17  Paolo Carlini  <paolo.carlini@oracle.com>
272         PR c++/39681
273         * parser.c (cp_parser_new_type_id): Early return error_mark_node
274         if the cp_parser_type_specifier_seq call has type_specifier_seq.type
275         error_mark_node; tidy.
276         (cp_parser_new_expression): Always initialize nelts to NULL_TREE to
277         avoid uninitialized warnings.
278         (cp_parser_init_declarator, cp_parser_late_parse_one_default_arg):
279         Call cp_parser_skip_to_end_of_statement if cp_parser_initializer
280         returns error_mark_node.
282 2012-05-17  Paolo Carlini  <paolo.carlini@oracle.com>
284         PR c++/53371
285         * except.c (is_admissible_throw_operand): Rename to
286         is_admissible_throw_operand_or_catch_parameter and handle
287         catch parameter too.
288         (expand_start_catch_block): Use it.
289         (build_throw): Adjust.
291 2012-05-17  Paolo Carlini  <paolo.carlini@oracle.com>
293         PR c++/44516
294         * typeck.c (build_x_array_ref, build_x_conditional_expr,
295         build_x_compound_expr, build_x_modify_expr): Add location_t parameter.
296         (finish_class_member_access_expr, build_x_indirect_ref,
297         build_x_binary_op, build_x_compound_expr_from_list,
298         build_x_compound_expr_from_vec): Adjust callers.
299         * tree.c (build_min_nt_loc): New.
300         (build_min_nt): Remove.
301         * typeck2.c (build_x_arrow): Adjust callers.
302         * pt.c (tsubst_qualified_id, tsubst_omp_for_iterator,
303         tsubst_copy_and_build): Likewise.
304         * semantics.c (finish_mem_initializers, handle_omp_for_class_iterator,
305          finish_omp_atomic): Likewise.
306         * decl2.c (grok_array_decl, build_anon_union_vars): Adjust.
307         * parser.c (cp_parser_question_colon_clause,
308         cp_parser_assignment_expression, cp_parser_expression,
309         cp_parser_template_id, cp_parser_omp_for_loop): Likewise.
310         * cp-tree.h: Update.
312 2012-05-16  Dodji Seketeli  <dodji@redhat.com>
314         PR preprocessor/7263
315         * cp-tree.h (enum cp_decl_spec): Add new enumerators to cover all
316         the possible declarator specifiers so far.
317         (struct cp_decl_specifier_seq::locations): Declare new member.
318         (cp_decl_specifier_seq::{specs, type_location}): Remove.
319         (decl_spec_seq_has_spec_p): Declare new function.
320         * parser.c (cp_parser_check_decl_spec): Remove.
321         (set_and_check_decl_spec_loc): Define new static function.
322         (decl_spec_seq_has_spec_p): Define new public function.
323         (cp_parser_decl_specifier_seq, cp_parser_function_specifier_opt)
324         (cp_parser_type_specifier, cp_parser_simple_type_specifier)
325         (cp_parser_set_storage_class, cp_parser_set_decl_spec_type)
326         (cp_parser_alias_declaration): Set the locations for each
327         declspec, using set_and_check_decl_spec_loc.
328         (cp_parser_explicit_instantiation, cp_parser_init_declarator)
329         (cp_parser_member_declaration, cp_parser_init_declarator): Use the
330         new declspec location for specifiers.  Use the new
331         decl_spec_seq_has_spec_p.
332         (cp_parser_type_specifier_seq): Use the new
333         set_and_check_decl_spec_loc.  Stop using
334         cp_parser_check_decl_spec.  Use the new decl_spec_seq_has_spec_p.
335         (, cp_parser_init_declarator): Use the new
336         set_and_check_decl_spec_loc.
337         (cp_parser_single_declaration, cp_parser_friend_p)
338         (cp_parser_objc_class_ivars, cp_parser_objc_struct_declaration):
339         Use the new decl_spec_seq_has_spec_p.
340         * decl.c (check_tag_decl): Use new decl_spec_seq_has_spec_p.  Use
341         the more precise ds_redefined_builtin_type_spec location for
342         diagnostics about re-declaring C++ built-in types.
343         (start_decl, grokvardecl, grokdeclarator): Use the new
344         decl_spec_seq_has_spec_p.
346 2012-05-15  Paolo Carlini  <paolo.carlini@oracle.com>
348         PR c++/11856
349         * pt.c (tsubst_copy_and_build): Increase / decrease
350         c_inhibit_evaluation_warnings around build_x_binary_op call.
352 2012-05-12  Paolo Carlini  <paolo.carlini@oracle.com>
354         * cp-tree.h (TYPE_PTRMEM_P): Rename to TYPE_PTRDATAMEM_P.
355         (TYPE_PTR_TO_MEMBER_P): Rename to TYPE_PTRMEM_P.
356         (TYPE_PTR_OR_PTRMEM_P): Add.
357         * typeck.c (composite_pointer_type_r, composite_pointer_type,
358         common_pointer_type, cp_build_indirect_ref, cp_build_binary_op,
359         cp_truthvalue_conversion, convert_ptrmem, build_static_cast_1,
360         build_reinterpret_cast_1, build_const_cast_1, comp_ptr_ttypes_real,
361         casts_away_constness_r, casts_away_constness): Adjust.
362         * init.c (build_zero_init_1): Adjust.
363         * class.c (check_field_decls): Likewise.
364         * decl.c (check_default_argument): Likewise.
365         * rtti.c (target_incomplete_p): Likewise.
366         * tree.c (zero_init_p): Likewise.
367         * cxx-pretty-print.c (pp_cxx_ptr_operator,
368         pp_cxx_abstract_declarator): Likewise.
369         * typeck2.c (build_m_component_ref): Likewise.
370         * pt.c (convert_nontype_argument, invalid_nontype_parm_type_p,
371         dependent_type_p_r): Likewise.
372         * call.c (null_member_pointer_value_p, standard_conversion,
373         add_builtin_candidate, build_conditional_expr_1, compare_ics):
374         Likewise.
375         * cp-objcp-common.c (cp_var_mod_type_p): Likewise.
376         * cvt.c (cp_convert_to_pointer, ocp_convert,
377         perform_qualification_conversions): Likewise.
378         * mangle.c (write_type): Likewise.
379         * name-lookup.c (arg_assoc_type): Likewise.
381 2012-05-12  Paolo Carlini  <paolo.carlini@oracle.com>
383         * parser.c (struct cp_parser_expression_stack_entry): Add location_t
384         field.
385         (cp_parser_binary_expression): Rework to always update at the same
386         time tree_type and loc.
387         * call.c (print_z_candidate): Add location_t parameter.
388         (print_z_candidates, convert_like_real, joust): Adjust.
390 2012-05-11  Alexandre Oliva  <aoliva@redhat.com>
392         PR c++/53209
393         * pt.c (tsubst_decl): Bail out if argvec is error_mark_node.
395 2012-05-11  Paolo Carlini  <paolo.carlini@oracle.com>
397         PR c++/53305
398         * pt.c (tsubst_copy: case PARM_DECL): Return error_mark_node if
399         tsubst_decl returns NULL_TREE.
400         * cxx-pretty-print.c (pp_cxx_simple_type_specifier): Handle
401         BOUND_TEMPLATE_TEMPLATE_PARM.
403 2012-05-10  Paolo Carlini  <paolo.carlini@oracle.com>
405         PR c++/53158
406         * cvt.c (ocp_convert): Error out early for void -> bool conversions.
407         * typeck.c (decay_conversion): Use error_at.
408         * call.c (build_integral_nontype_arg_conv, convert_like_real,
409         convert_arg_to_ellipsis, perform_implicit_conversion_flags,
410         initialize_reference): Likewise.
411         * cvt.c (warn_ref_binding): Add location_t parameter.
412         (cp_convert_to_pointer, convert_to_reference, ocp_convert,
413         convert_to_void, ): Use error_at and warning_at.
415 2012-05-10  Paolo Carlini  <paolo.carlini@oracle.com>
417         PR c++/53301
418         * decl.c (check_default_argument): Fix typo (POINTER_TYPE_P
419         instead of TYPE_PTR_P) in zero-as-null-pointer-constant warning.
421 2012-05-06  Paolo Carlini  <paolo.carlini@oracle.com>
423         PR c++/53152
424         * call.c (op_error, build_new_op_1, build_new_op): Add location_t
425         parameter.
426         (build_conditional_expr_1): Adjust.
427         * typeck.c (build_x_indirect_ref, build_x_binary_op,
428         build_x_unary_op): Add location_t parameter.
429         (rationalize_conditional_expr, build_x_array_ref,
430         build_x_compound_expr, cp_build_modify_expr, build_x_modify_expr):
431         Adjust.
432         * typeck2.c (build_x_arrow): Add location_t parameter.
433         * semantics.c (finish_unary_op_expr): Likewise.
434         (finish_increment_expr, handle_omp_for_class_iterator): Adjust.
435         * decl2.c (grok_array_decl): Add location_t parameter.
436         * parser.c (cp_parser_postfix_open_square_expression,
437         cp_parser_postfix_dot_deref_expression, cp_parser_unary_expression,
438         cp_parser_binary_expression, cp_parser_builtin_offsetof,
439         do_range_for_auto_deduction, cp_convert_range_for,
440         cp_parser_template_argument, cp_parser_omp_for_cond): Pass the
441         location, adjust.
442         * pt.c (tsubst_copy_and_build): Adjust.
443         * tree.c (maybe_dummy_object): Likewise.
444         * cp-tree.h: Update declarations.
446 2012-05-04  Paolo Carlini  <paolo.carlini@oracle.com>
448         * semantics.c (cxx_eval_constant_expression, case CONVERT_EXPR): Tidy.
450 2012-05-04  Paolo Carlini  <paolo.carlini@oracle.com>
452         PR c++/53166
453         * pt.c (instantiate_class_template_1): Increase / decrease
454         c_inhibit_evaluation_warnings around the tsubst_expr call
455         for STATIC_ASSERT_CONDITION.
456         (tsubst_expr, case STATIC_ASSERT): Likewise.
457         * typeck.c (cp_build_binary_op, case EQ_EXPR/NE_EXPR): Check
458         c_inhibit_evaluation_warnings in the OPT_Waddress warnings.
460 2012-05-03  Paolo Carlini  <paolo.carlini@oracle.com>
462         PR c++/53186
463         * call.c (build_over_call): Handle final member functions
464         and class types.
465         (build_new_method_call_1): Do not handle here.
467 2012-05-02  Richard Guenther  <rguenther@suse.de>
469         * decl.c (grokdeclarator): Properly check for sizes that
470         cover more than half of the address-space.
472 2012-04-30  Marc Glisse  <marc.glisse@inria.fr>
474         PR c++/51033
475         * typeck.c (cp_build_array_ref): Handle VECTOR_TYPE.
476         * decl2.c (grok_array_decl): Likewise.
478         PR c++/51314
479         * parser.c (cp_parser_sizeof_operand): Require parentheses for
480         sizeof...
482 2012-04-30  Dodji Seketeli  <dodji@redhat.com>
484         Fix location for static class members
485         * decl.c (grokdeclarator): Use the location carried by the
486         declarator for the DECL of the static class member.
488         Fix va_arg type location
489         * cp-tree.h (build_x_va_arg): Take an additional location
490         parameter.
491         * call.c (build_x_va_arg): Take a loc parameter for the location
492         of the type of the va_arg expression.
493         * parser.c (cp_parser_primary_expression): Pass the type of the
494         type in the va_arg expression to build_x_va_arg.
495         * pt.c (tsubst_copy): Adjust calls to build_x_va_arg.
497         Make conversion warnings work on NULL with -ftrack-macro-expansion
498         * call.c (conversion_null_warnings): Use the new
499         expansion_point_location_if_in_system_header.
500         * cvt.c (build_expr_type_conversion): Likewise.
501         * typeck.c (cp_build_binary_op): Likewise.
503 2012-04-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
505         * typeck.c (convert_for_assignment):  Replace
506         Wmissing-format-attribute with Wsuggest-attribute=format.
507         * call.c (convert_for_arg_passing): Likewise.
509 2012-04-26  Paolo Carlini  <paolo.carlini@oracle.com>
511         PR c++/53096
512         * class.c (check_bases_and_members): Implement core/1333, do not
513         disallow defaulted in the class body non-const ref special members.
515 2012-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
517         PR c++/52363
518         * call.c (tourney, perform_overload_resolution,
519         build_operator_new_call, build_user_type_conversion_1,
520         build_user_type_conversion, perform_overload_resolution,
521         add_template_candidate, add_template_candidate_real,
522         add_template_conv_candidate, add_builtin_candidates,
523         add_builtin_candidate, build_builtin_candidate,
524         add_conv_candidate, add_function_candidate, implicit_conversion,
525         reference_binding, build_list_conv, conditional_conversion,
526         add_candidates, can_convert_array, build_aggr_conv,
527         build_array_conv, build_complex_conv, conditional_conversion):
528         Add tsubst_flags_t parameter.
529         (joust): Likewise, use it to handle SFINAE as if pedantic.
530         (add_list_candidates, build_integral_nontype_arg_conv,
531         perform_overload_resolution, build_new_function_call,
532         build_operator_new_call, build_op_call_1,
533         build_conditional_expr_1, build_new_op_1, convert_like_real,
534         convert_arg_to_ellipsis, convert_default_arg,
535         convert_for_arg_passing, build_over_call,
536         build_new_method_call_1, can_convert_arg, can_convert_arg_bad,
537         perform_implicit_conversion_flags,
538         perform_direct_initialization_if_possible,
539         initialize_reference): Adjust.
540         * typeck.c (casts_away_constness, casts_away_constness_r):
541         Add tsubst_flags_t parameter.
542         (convert_arguments, check_for_casting_away_constness,
543         build_static_cast_1, build_ptrmemfunc, convert_for_assignment):
544         Adjust.
545         * decl.c (reshape_init_r, check_default_argument): Likewise.
546         * cp-gimplify.c (cxx_omp_clause_apply_fn): Likewise.
547         * pt.c (convert_nontype_argument, check_non_deducible_conversion):
548         Likewise.
549         * init.c (build_new_1): Likewise.
550         * cvt.c (convert_to_reference, ocp_convert, build_type_conversion,
551         build_expr_type_conversion, ): Likewise.
552         * search.c (check_final_overrider): Likewise.
553         * cp-tree.h (build_user_type_conversion,
554         build_operator_new_call, can_convert, can_convert_arg,
555         can_convert_arg_bad, convert_default_arg,
556         convert_arg_to_ellipsis, convert_for_arg_passing):
557         Adjust declaration.
559 2012-04-22  Jan Hubicka  <jh@suse.cz>
561         * decl2.c (maybe_make_one_only): Mark keyed COMDATs as USED so they
562         gets finalized.
564 2012-04-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
566         PR c/44774
567         * typeck.c (composite_pointer_type): Likewise.
568         (cxx_sizeof_or_alignof_type): Likewise.
569         (cp_build_array_ref): Likewise.
570         (cp_build_function_call_vec): Likewise.
571         (cp_build_addr_expr_1): Likewise.
572         (convert_member_func_to_ptr): Likewise.
573         * decl.c (check_tag_decl): Likewise.
574         (check_static_variable_definition): Likewise.
575         (compute_array_index_type): Likewise.
576         (create_array_type_for_decl): Likewise.
577         (grokdeclarator): Likewise.
578         (grok_op_properties): Likewise.
579         * error.c (maybe_warn_cpp0x): Likewise.
580         * pt.c (maybe_process_partial_specialization): Likewise.
581         (convert_template_argument): Likewise.
582         (do_decl_instantiation): Likewise.
583         (do_type_instantiation): Likewise.
584         * parser.c (cp_parser_primary_expression): Likewise.
585         (cp_parser_postfix_expression): Likewise.
586         (cp_parser_unary_expression): Likewise.
587         (cp_parser_question_colon_clause): Likewise.
588         (cp_parser_lambda_introducer): Likewise.
589         (cp_parser_lambda_declarator_opt): Likewise.
590         (cp_parser_compound_statement): Likewise.
591         (cp_parser_jump_statement): Likewise.
592         (cp_parser_declaration_seq_opt): Likewise.
593         (cp_parser_enum_specifier): Likewise.
594         (cp_parser_enumerator_list): Likewise.
595         (cp_parser_initializer_list): Likewise.
596         (cp_parser_member_declaration): Likewise.
597         * call.c (build_conditional_expr_1): Likewise.
598         * friend.c (make_friend_class): Likewise.
599         * name-lookup.c (pushdecl_maybe_friend_1): Likewise.
601 2012-04-21  Jan Hubicka  <jh@suse.cz>
603         * method.c (make_alias_for): Do not set TREE_SYMBOL_REFERENCED.
604         * decl2.c (mark_needed): Likewise.
605         (decl_needed_p): Do not test TREE_SYMBOL_REFERENCED.
607         * decl2.c (cxx_callgraph_analyze_expr): Remove.
608         * cp-objcp-common.h (LANG_HOOKS_CALLGRAPH_ANALYZE_EXPR): Remove.
609         * cp-tree.h (cxx_callgraph_analyze_expr): Remove.
611 2012-04-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
613         PR 35441
614         * typeck.c (cp_build_function_call_vec): Do not pretty-print
615         expressions when caret is enabled.
617 2012-04-20  Jan Hubicka  <jh@suse.cz>
619         PR target/53042
620         * decl2.c (maybe_emit_vtables): Do not initialize same_comdat_group
621         list when target has no support for it.
623 2012-04-20  Michael Matz  <matz@suse.de>
625         * error.c (pedwarn_cxx98): Move va_end call after user
626         of the va_list.
628 2012-04-18  Paolo Carlini  <paolo.carlini@oracle.com>
630         PR c++/52422
631         * cp-tree.h (build_addr_func, decay_conversion,
632         get_member_function_from_ptrfunc,
633         build_m_component_ref, convert_member_func_to_ptr):
634         Add tsubst_flags_t parameter.
635         * typeck.c (cp_default_conversion): Add.
636         (decay_conversion, default_conversion,
637         get_member_function_from_ptrfunc, convert_member_func_to_ptr):
638         Add tsubst_flags_t parameter and use it throughout.
639         (cp_build_indirect_ref, cp_build_array_ref,
640         cp_build_function_call_vec, convert_arguments, build_x_binary_op,
641         cp_build_binary_op, cp_build_unary_op, build_reinterpret_cast_1,
642         build_const_cast_1, expand_ptrmemfunc_cst,
643         convert_for_initialization): Adjust.
644         * init.c (build_vec_init): Adjust.
645         * decl.c (grok_reference_init, get_atexit_node): Likewise.
646         * rtti.c (build_dynamic_cast_1, tinfo_base_init): Likewise.
647         * except.c (build_throw): Likewise.
648         * typeck2.c (build_x_arrow): Likewise.
649         (build_m_component_ref): Add tsubst_flags_t parameter and
650         use it throughout.
651         * pt.c (convert_nontype_argument): Adjust.
652         * semantics.c (finish_asm_stmt, maybe_add_lambda_conv_op): Likewise.
653         * decl2.c (build_offset_ref_call_from_tree): Likewise.
654         * call.c (build_addr_func): Add tsubst_flags_t parameter and
655         use it throughout.
656         (build_call_a, build_conditional_expr_1, build_new_op_1,
657         convert_like_real, convert_arg_to_ellipsis, build_over_call,
658         build_special_member_call): Adjust.
659         * cvt.c (cp_convert_to_pointer, force_rvalue,
660         build_expr_type_conversion): Likewise.
662 2012-04-17  Tom de Vries  <tom@codesourcery.com>
664         * cp-gimplify.c (begin_bc_block): Add location parameter and use as
665         location argument to create_artificial_label.
666         (finish_bc_block): Change return type to void.  Remove body_seq
667         parameter, and add block parameter.  Append label to STMT_LIST and
668         return in block.
669         (gimplify_cp_loop, gimplify_for_stmt, gimplify_while_stmt)
670         (gimplify_do_stmt, gimplify_switch_stmt): Remove function.
671         (genericize_cp_loop, genericize_for_stmt, genericize_while_stmt)
672         (genericize_do_stmt, genericize_switch_stmt, genericize_continue_stmt)
673         (genericize_break_stmt, genericize_omp_for_stmt): New function.
674         (cp_gimplify_omp_for): Remove bc_continue processing.
675         (cp_gimplify_expr): Genericize VEC_INIT_EXPR.
676         (cp_gimplify_expr): Mark FOR_STMT, WHILE_STMT, DO_STMT, SWITCH_STMT,
677         CONTINUE_STMT, and BREAK_STMT as unreachable.
678         (cp_genericize_r): Genericize FOR_STMT, WHILE_STMT, DO_STMT,
679         SWITCH_STMT, CONTINUE_STMT, BREAK_STMT and OMP_FOR.
680         (cp_genericize_tree): New function, factored out of ...
681         (cp_genericize): ... this function.
683 2012-04-17  Paolo Carlini  <paolo.carlini@oracle.com>
685         PR c++/52599
686         * semantics.c (build_constexpr_constructor_member_initializers):
687         Check for function-try-block as function-body.
689 2012-04-17  Paolo Carlini  <paolo.carlini@oracle.com>
691         PR c++/53003
692         * parser.c (cp_parser_member_declaration): Check that
693         initializer_token_start is non null before dereferencing it.
695 2012-04-16  Jason Merrill  <jason@redhat.com>
697         PR c++/38543
698         * pt.c (determine_specialization): Instead of comparing the number
699         of parms, check that tsubst gives the right answer.
701         PR c++/52008
702         * pt.c (process_partial_specialization): Complain about a partial
703         specialization with fewer args than primary template parms.
705         PR c++/50830
706         * pt.c (convert_template_argument): Handle template template
707         argument packs.
709         PR c++/50303
710         * pt.c (tsubst_pack_expansion): Use tsubst_expr for template
711         template parameters.
713 2012-04-16  Paolo Carlini  <paolo.carlini@oracle.com>
715         PR c++/49152
716         * call.c (op_error): Print types; when flag_diagnostics_show_caret
717         is false print expressions too.
718         (op_error_string): Add.
720 2012-04-16  Jason Merrill  <jason@redhat.com>
722         PR c++/51148
723         * friend.c (make_friend_class): Call check_for_bare_parameter_packs.
725 2012-04-16  Jan Hubicka  <jh@suse.cz>
727         * decl2.c (collect_candidates_for_java_method_alias): Use FOR_EACH
728         walkers to walk cgraph and varpool.
730 2012-04-15  Jason Merrill  <jason@redhat.com>
732         PR c++/47220
733         * pt.c (coerce_template_parameter_pack): Check for error_mark_node.
735         PR c++/52292
736         PR c++/52380
737         * pt.c (coerce_template_parms): Even if we aren't converting we
738         want to expand argument packs.
740         PR c++/52706
741         * mangle.c (write_type): nullptr_t is a builtin type.
743 2012-04-14  Jan Hubicka  <jh@suse.cz>
745         * tree.c: Update field referenced for new cgraph/varpool layout.
746         * decl2.c: Likewise.
748 2012-04-13  Jason Merrill  <jason@redhat.com>
750         PR c++/52824
751         * pt.c (any_pack_expanson_args_p): New.
752         (coerce_template_parms): Use it.
754         PR c++/52905
755         * call.c (joust): Handle comparing list and non-list ctors.
757         PR c++/52915
758         * decl2.c (finish_anon_union): Use cp_finish_decl.
759         * error.c (dump_function_name): Avoid showing anonymous "name".
761 2012-04-11  Fabien Chêne  <fabien@gcc.gnu.org>
763         PR c++/52465
764         * parser.c (cp_parser_class_name): Call strip_using_decl and
765         return the target decl.
766         * name-lookup.c (strip_using_decl): Returns NULL_TREE if the decl
767         to be stripped is NULL_TREE.
768         (qualify_lookup): Call strip_using_decl and perform some checks on
769         the target decl.
771 2012-04-11  Jason Merrill  <jason@redhat.com>
773         PR debug/45088
774         * decl.c (grokdeclarator): Strip the injected-class-name typedef
775         if we are building a declaration or compound type.
777         PR c++/52906
778         * decl.c (check_tag_decl): Don't complain about attributes if we
779         don't even have a type.
781 2012-04-10  Manuel López-Ibáñez  <manu@gcc.gnu.org>
783         * cvt.c (convert_to_void): Update comment.
785 2012-04-05  Jason Merrill  <jason@redhat.com>
787         PR c++/52596
788         * semantics.c (finish_non_static_data_member): In templates, pass
789         the decl to build_qualified_name.
790         * tree.c (lvalue_kind) [SCOPE_REF]: Handle FIELD_DECL.
792 2012-04-04  Jason Merrill  <jason@redhat.com>
794         PR c++/52845
795         * decl.c (finish_function): Update fntype after deducing return type.
797 2012-04-03  Jason Merrill  <jason@redhat.com>
799         PR c++/52796
800         * pt.c (tsubst_initializer_list): A pack expansion with no elements
801         means value-initialization.
803 2012-04-01  Paolo Carlini  <paolo.carlini@oracle.com>
805         PR c++/50043
806         * class.c (deduce_noexcept_on_destructor,
807         deduce_noexcept_on_destructors): New.
808         (check_bases_and_members): Call the latter.
809         * decl.c (grokfndecl): Call the former.
810         * method.c (implicitly_declare_fn): Not static.
811         * cp-tree.h (deduce_noexcept_on_destructor, implicitly_declare_fn):
812         Declare
814 2012-03-29  Paolo Carlini  <paolo.carlini@oracle.com>
816         PR c++/52718
817         * decl.c (check_default_argument): With -Wzero-as-null-pointer-constant
818         warn for a zero as null pointer constant default argument.
820 2012-03-29  Jason Merrill  <jason@redhat.com>
822         PR c++/52685
823         * tree.c (copy_binfo): Handle BINFO_DEPENDENT_BASE_P.
825 2012-03-29  Jakub Jelinek  <jakub@redhat.com>
827         PR c++/52759
828         * decl.c (start_decl): Don't call maybe_apply_pragma_weak
829         if processing_template_decl.
831 2012-03-29  Jason Merrill  <jason@redhat.com>
833         PR c++/52743
834         * call.c (compare_ics): Handle ck_aggr like ck_list.
836 2012-03-28  Jason Merrill  <jason@redhat.com>
838         PR c++/52746
839         * typeck.c (lookup_destructor): Clear BASELINK_QUALIFIED_P if
840         we didn't get an explicit scope.
841         * pt.c (tsubst_baselink): Likewise.
843 2012-03-28  Richard Guenther  <rguenther@suse.de>
845         * typeck2.c (process_init_constructor_array): Use the proper
846         type for computing the array length.
848 2012-03-27  Meador Inge  <meadori@codesourcery.com>
850         PR c++/52672
851         * semantics.c (cxx_fold_indirect_ref): Don't attempt to fold
852         stripped child trees that are not pointer types.
854 2012-03-21  Jason Merrill  <jason@redhat.com>
856         Implement return type deduction for normal functions with -std=c++1y.
857         * cp-tree.h (FNDECL_USED_AUTO): New macro.
858         (LAMBDA_EXPR_DEDUCE_RETURN_TYPE_P): Remove.
859         (dependent_lambda_return_type_node): Remove.
860         (CPTI_DEPENDENT_LAMBDA_RETURN_TYPE): Remove.
861         (struct language_function): Add x_auto_return_pattern field.
862         (current_function_auto_return_pattern): New.
863         (enum tsubst_flags): Add tf_partial.
864         * decl.c (decls_match): Handle auto return comparison.
865         (duplicate_decls): Adjust error message for auto return.
866         (cxx_init_decl_processing): Remove dependent_lambda_return_type_node.
867         (cp_finish_decl): Don't do auto deduction for functions.
868         (grokdeclarator): Allow auto return without trailing return type in
869         C++1y mode.
870         (check_function_type): Defer checking of deduced return type.
871         (start_preparsed_function): Set current_function_auto_return_pattern.
872         (finish_function): Set deduced return type to void if not previously
873         deduced.
874         * decl2.c (change_return_type): Handle error_mark_node.
875         (mark_used): Always instantiate functions with deduced return type.
876         Complain about use if deduction isn't done.
877         * parser.c (cp_parser_lambda_declarator_opt): Use 'auto' for
878         initial return type.
879         (cp_parser_lambda_body): Don't deduce return type in a template.
880         (cp_parser_conversion_type_id): Allow auto in C++1y.
881         * pt.c (instantiate_class_template_1): Don't mess with
882         LAMBDA_EXPR_DEDUCE_RETURN_TYPE_P.
883         (tsubst_copy_and_build): Likewise.
884         (fn_type_unification, tsubst): Don't reduce the template parm level
885         of 'auto' during deduction.
886         (unify): Compare 'auto' specially.
887         (get_bindings): Change test.
888         (always_instantiate_p): Always instantiate functions with deduced
889         return type.
890         (do_auto_deduction): Handle error_mark_node and lambda context.
891         Don't check for use in initializer.
892         (contains_auto_r): Remove.
893         * search.c (lookup_conversions_r): Handle auto conversion function.
894         * semantics.c (lambda_return_type): Handle null return.  Don't mess
895         with dependent_lambda_return_type_node.
896         (apply_deduced_return_type): Rename from apply_lambda_return_type.
897         * typeck.c (merge_types): Handle auto.
898         (check_return_expr): Do auto deduction.
899         * typeck2.c (add_exception_specifier): Fix complain check.
901 2012-03-22  Paolo Carlini  <paolo.carlini@oracle.com>
903         PR c++/52487
904         * class.c (check_field_decls): Call literal_type_p only
905         on complete types.
907 2012-03-22  Jakub Jelinek  <jakub@redhat.com>
909         PR c++/52671
910         * decl.c (check_tag_decl): Only use CLASSTYPE_TEMPLATE_INSTANTIATION
911         on CLASS_TYPE_P types.
913 2012-03-20  Jason Merrill  <jason@redhat.com>
915         * lex.c (init_reswords): Use >= for cxx_dialect test.
916         * parser.c (cp_parser_exception_specification_opt): Likewise.
918         * mangle.c (write_type): Handle 'auto'.
919         * init.c (build_new): Don't do auto deduction where it might
920         affect template mangling.
922         PR c++/52510
923         * decl.c (reshape_init_class): Handle repeated reshaping.
924         * search.c (lookup_field_1): Add sanity check.
926 2012-03-19  Paolo Carlini  <paolo.carlini@oracle.com>
928         PR c++/14710
929         * cp-tree.h (xvalue_p, maybe_warn_about_useless_cast): Declare.
930         * tree.c (xvalue_p): Define.
931         * typeck.c (maybe_warn_about_useless_cast): Define.
932         (build_reinterpret_cast, build_const_cast,
933         build_static_cast, cp_build_c_cast): Use maybe_warn_about_useless_cast.
934         * rtti.c (build_dynamic_cast): Likewise.
935         * pt.c (tsubst_copy_and_build, case CAST_EXPR): Increment/decrement
936         c_inhibit_evaluation_warnings before/after the build_* calls.
938 2012-03-15  Jason Merrill  <jason@redhat.com>
940         PR c++/52582
941         * method.c (implicitly_declare_fn): Set DECL_EXTERNAL.
943 2012-03-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
945         PR c++/44783
946         * error.c (print_instantiation_partial_context): Use
947         template_backtrace_limit.
949 2012-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
951         * Make-lang.in (doc/g++.1): Remove IRIX 6.5 reference.
953 2012-03-14  Jakub Jelinek  <jakub@redhat.com>
955         PR c++/52521
956         * parser.c (lookup_literal_operator): Return fn only if
957         processed all arguments from args vector and argtypes is
958         void_list_node.
960 2012-01-30  Dodji Seketeli  <dodji@redhat.com>
962         PR c++/51641
963         * cp-tree.h (template_type_parameter_p): Declare new function.
964         (parameter_of_template_p): Remove.
965         * pt.c (template_type_parameter_p): Define new function.
966         (parameter_of_template_p): Remove.
967         * name-lookup.c (binding_to_template_parms_of_scope_p): Don't rely
968         on parameter_of_template_p anymore.  Compare the level of the
969         template parameter to the depth of the template.
971 2011-12-15  Dodji Seketeli  <dodji@redhat.com>
973         * call.c (standard_conversion, build_integral_nontype_arg_conv)
974         (build_new_op_1, convert_like_real, is_subseq)
975         (maybe_handle_implicit_object, maybe_handle_ref_bind, compare_ics)
976         (joust): Use next_conversion instead of accessing fields of struct
977         conversion directly.
979 2012-03-12  Paolo Carlini  <paolo.carlini@oracle.com>
981         PR c++/52299
982         * pt.c (tsubst_copy_and_build, case COND_EXPR): Avoid bogus
983         division by zero warnings.
985 2012-03-08  Paolo Carlini  <paolo.carlini@oracle.com>
987         * typeck.c (build_array_ref, cp_build_addr_expr_1, convert_ptrmem,
988         build_ptrmemfunc): Consistently forward the tsubst_flags_t
989         parameter.
990         * call.c (resolve_args): Likewise.
992 2012-03-07  Jason Merrill  <jason@redhat.com>
994         PR c++/52521
995         * mangle.c (write_literal_operator_name): The length comes after the
996         operator prefix.
998 2012-03-05  Jakub Jelinek  <jakub@redhat.com>
1000         * pt.c (local_specializations): Change from htab_t into
1001         struct pointer_map_t *.
1002         (retrieve_local_specializations, register_local_specialization,
1003         tsubst_pack_expansion, instantiate_decl): Adjust users.
1004         (eq_local_specializations, hash_local_specialization): Remove.
1006 2012-03-05  Jason Merrill  <jason@redhat.com>
1008         PR c++/51930
1009         * decl2.c (determine_visibility): Correct calculation of class
1010         args depth.
1011         * decl.c (check_tag_decl): Adjust warning.
1013         * method.c (synthesized_method_walk): Cleanups don't affect the EH
1014         spec either.
1016 2012-03-03  Jason Merrill  <jason@redhat.com>
1018         * init.c (perform_member_init): Cope with uninstantiated NSDMI.
1020         Core 1270
1021         * call.c (build_aggr_conv): Call reshape_init.
1022         (convert_like_real): Likewise.
1023         * typeck2.c (process_init_constructor): Clear TREE_CONSTANT if
1024         not all constant.
1026         * mangle.c (write_nested_name): Use decl_mangling_context.
1027         (write_prefix, write_template_prefix): Likewise.
1029         PR c++/36797
1030         * mangle.c (write_expression): Improve diagnostic for TRAIT_EXPR.
1032         * class.c (add_method): Always build an OVERLOAD for using-decls.
1033         * search.c (lookup_member): Handle getting an OVERLOAD for a
1034         single function.
1036 2012-03-02  Paolo Carlini  <paolo.carlini@oracle.com>
1038         PR c++/51989
1039         * typeck2.c (build_x_arrow): Take a tsubst_flags_t argument and
1040         propagate it.
1041         * cp-tree.h (build_x_arrow): Adjust prototype.
1042         * pt.c (tsubst_copy_and_build): Adjust call.
1043         * parser.c (cp_parser_postfix_dot_deref_expression): Likewise.
1045 2012-03-02  Paolo Carlini  <paolo.carlini@oracle.com>
1047         * name-lookup.c (binding_to_template_parms_of_scope_p): Clean up.
1049 2012-02-29  Jason Merrill  <jason@redhat.com>
1051         PR c++/51930
1052         * decl.c (check_tag_decl): Move warning for misplaced attributes here.
1053         (shadow_tag): From here.
1054         * parser.c (cp_parser_explicit_instantiation): Don't warn here.
1056 2012-02-21  Jakub Jelinek  <jakub@redhat.com>
1058         PR c++/52312
1059         * typeck.c (check_literal_operator_args): Initialize *long_double_p
1060         and *long_long_unsigned_p even if processing_template_decl.
1062 2012-02-16  Jason Merrill  <jason@redhat.com>
1064         PR c++/52248
1065         * decl.c (define_label): Use timevar_cond_start/stop.
1067 2012-02-16  Fabien Chêne  <fabien@gcc.gnu.org>
1069         PR c++/52126
1070         * decl.c (xref_basetypes): call dependent_scope_p instead of
1071         dependent_type_p.
1073 2012-02-16  Jason Merrill  <jason@redhat.com>
1075         PR c++/51415
1076         * error.c (dump_expr): Handle lambda closures specifically.
1078 2012-02-14  Jason Merrill  <jason@redhat.com>
1080         * parser.c (cp_parser_explicit_instantiation): Give a warning
1081         for ignored attributes on explicit class instantiation.
1083 2012-02-14  Jakub Jelinek  <jakub@redhat.com>
1085         PR c++/52247
1086         * pt.c (tsubst_copy_asm_operands): For LABEL_DECL values call
1087         lookup_label on label's name and set TREE_USED.
1089 2012-02-14  Jason Merrill  <jason@redhat.com>
1091         PR c++/39055
1092         * decl.c (local_variable_p_walkfn): Don't check DECL_ARTIFICIAL.
1094 2012-02-14  Jakub Jelinek  <jakub@redhat.com>
1096         PR c/52181
1097         * decl.c (duplicate_decls): If olddecl has bigger DECL_ALIGN than
1098         newdecl, copy DECL_ALIGN to newdecl and or DECL_USER_ALIGN bits.
1100 2012-02-07  Jason Merrill  <jason@redhat.com>
1102         PR c++/51675
1103         * semantics.c (cx_check_missing_mem_inits): Handle unions.
1104         Fix constexpr default constructor logic.
1106         PR c++/52035
1107         * pt.c (tsubst): Strip uninstantiated typedef.
1109 2012-02-06  Jason Merrill  <jason@redhat.com>
1111         PR c++/52088
1112         * cvt.c (build_expr_type_conversion): Check for template conversion.
1114 2012-01-31  Jason Merrill  <jason@redhat.com>
1116         PR c++/52043
1117         * cp-tree.h (PACK_EXPANSION_LOCAL_P): New.
1118         * pt.c (make_pack_expansion, tsubst_initializer_list): Set it.
1119         (tsubst_pack_expansion): Check it.
1121 2012-01-29  Paolo Carlini  <paolo.carlini@oracle.com>
1123         PR c++/51327
1124         * class.c (explain_non_literal_class): Correctly handle implicitly
1125         deleted constructors.
1127 2012-01-27  Jakub Jelinek  <jakub@redhat.com>
1129         PR c++/51852
1130         * pt.c (tsubst_pack_expansion): Delete and restore
1131         local_specialization whenever need_local_specialization, not just
1132         when saved_local_specializations is non-NULL.
1134 2012-01-26  Paolo Carlini  <paolo.carlini@oracle.com>
1136         PR c++/51370
1137         * error.c (dump_decl, [TEMPLATE_ID_EXPR]): Handle error_mark_node
1138         as TREE_OPERAND (t, 1).
1140 2012-01-24  Jason Merrill  <jason@redhat.com>
1142         PR c++/51917
1143         * decl.c (xref_basetypes): Check VEC_length instead of VEC_space.
1145         PR c++/51973
1146         * tree.c (called_fns_equal): Check template args.
1147         (cp_tree_equal): Call it.
1149 2012-01-24  Aldy Hernandez  <aldyh@redhat.com>
1150             Patrick Marlier  <patrick.marlier@gmail.com>
1152         PR c++/51928
1153         * class.c (set_method_tm_attributes): Use TARGET_THUNK instead of
1154         thunk for set_one_vmethod_tm_attributes.
1156 2012-01-24  Paolo Carlini  <paolo.carlini@oracle.com>
1158         PR c++/51223
1159         * call.c (build_over_call): Check for error_mark_node as
1160         TREE_VALUE when default arguments are processed.
1162 2012-01-23  Jason Merrill  <jason@redhat.com>
1164         PR c++/51930
1165         * decl2.c (determine_visibility): Check for visibility attribute
1166         on template specialization.
1168 2012-01-23  Paolo Carlini  <paolo.carlini@oracle.com>
1170         PR c++/51398
1171         * pt.c (parameter_of_template_p): Skip error_mark_node parameters.
1173 2012-01-23  Jason Merrill  <jason@redhat.com>
1175         PR c++/51925
1176         * class.c (add_method): Set OVL_USED for using-decls.
1177         * tree.c (ovl_scope): New.
1178         * cp-tree.h: Declare it.
1179         * parser.c (cp_parser_template_name): Use it.
1180         * semantics.c (baselink_for_fns): Likewise.
1181         * name-lookup.c (set_inherited_value_binding_p): Likewise.
1183 2012-01-20  Paolo Carlini  <paolo.carlini@oracle.com>
1185         PR c++/51402
1186         * pt.c (lookup_template_class_1): Check context returned by
1187         tsubst for error_mark_node.
1189 2012-01-19  Kai Tietz  <ktietz@redhat.com>
1191         PR c++/51344
1192         * decl2.c (save_template_attributes): Use merge_attributes
1193         instead of chaining up via TREE_CHAIN.
1195 2012-01-19  Jason Merrill  <jason@redhat.com>
1197         PR c++/51889
1198         * class.c (finish_struct): Call add_method here for function usings.
1199         * semantics.c (finish_member_declaration): Not here.
1201 2012-01-18  Paolo Carlini  <paolo.carlini@oracle.com>
1203         PR c++/51225
1204         * typeck2.c (store_init_value): Within a template guard
1205         cxx_constant_value with require_potential_constant_expression.
1206         * pt.c (convert_nontype_argument): Likewise.
1208 2012-01-16  Jakub Jelinek  <jakub@redhat.com>
1210         PR c++/51854
1211         * mangle.c (write_template_arg_literal): Handle complex.
1213 2012-01-16  Jason Merrill  <jason@redhat.com>
1215         PR c++/51827
1216         * mangle.c (mangle_decl): Don't mangle uninstantiated templates.
1218         PR c++/51868
1219         * typeck.c (build_static_cast_1): Handle bit-fields properly.
1221 2012-01-13  Ian Lance Taylor  <iant@google.com>
1223         PR c++/50012
1224         * typeck.c (enum_cast_to_int): New static function.
1225         (cp_build_binary_op): When handling warn_sign_compare, don't test
1226         for TREE_NO_WARNING.  Do call enum_cast_to_int.
1227         * call.c (avoid_sign_compare_warnings): Remove static function.
1228         (build_new_op_1): Don't call avoid_sign_compare_warnings.
1230 2012-01-13  Steven Bosscher  <steven@gcc.gnu.org>
1232         * decl2.c: Do not include tree-mudflap.h
1233         * semantics.c: Likewise.
1235 2012-01-13  Jason Merrill  <jason@redhat.com>
1237         PR c++/20681
1238         * semantics.c (finish_break_stmt): Avoid adding an unreachable
1239         BREAK_STMT.
1241         PR c++/51813
1242         * decl2.c (constrain_visibility): Clear DECL_VISIBILITY_SPECIFIED
1243         when reducing the visibility.
1245         PR c++/51620
1246         * class.c (build_vtbl_initializer): Use __cxa_deleted_virtual.
1248 2012-01-12  Jason Merrill  <jason@redhat.com>
1250         PR c++/51714
1251         * pt.c (value_dependent_expression_p): Treat STMT_EXPR as
1252         value-dependent.
1254 2012-01-13  Dodji Seketeli  <dodji@redhat.com>
1256         PR c++/51633
1257         * semantics.c (cp_parser_ctor_initializer_opt_and_function_body):
1258         Set the pointer to the last block of the constructor to the
1259         current statement.
1260         (build_constexpr_constructor_member_initializers): Get
1261         build_data_member_initialization a chance to deal with more
1262         statements before we choke.
1264 2012-01-12  Jason Merrill  <jason@redhat.com>
1266         PR c++/48051
1267         * mangle.c (write_expression): Mangle BASELINK scope if
1268         BASELINK_QUALIFIED_P.
1269         * search.c (adjust_result_of_qualified_name_lookup): Set
1270         BASELINK_QUALIFIED_P.
1271         * tree.c (cp_tree_equal) [BASELINK]: Compare BASELINK_QUALIFIED_P.
1272         * parser.c (cp_parser_postfix_dot_deref_expression): Don't call
1273         adjust_result_of_qualified_name_lookup for non-qualified names.
1275         PR c++/51403
1276         * pt.c (unify): Handle error_mark_node.
1278 2012-01-11  Jason Merrill  <jason@redhat.com>
1280         PR c++/51565
1281         * call.c (standard_conversion): For ptrmemfuncs, compare the
1282         static_fn_types.
1284         PR c++/51818
1285         * mangle.c (find_substitution): A type is only a substitution
1286         match if we're looking for a type.
1287         (write_nested_name): Use decl_mangling_context.
1289         * decl.c (decls_match): Assert that the arguments are decls.
1291         PR c++/51613
1292         * pt.c (resolve_overloaded_unification): Compare types with
1293         same_type_p, not decls_match.
1295 2012-01-10  Jason Merrill  <jason@redhat.com>
1297         PR c++/51614
1298         * class.c (build_base_path): Diagnose ambiguous base.
1300         PR c++/51433
1301         * semantics.c (cxx_eval_call_expression): Always retry previously
1302         non-constant expressions.
1304 2012-01-06  Jason Merrill  <jason@redhat.com>
1306         DR 686
1307         PR c++/47450
1308         * parser.c (cp_parser_new_expression): Set
1309         type_definition_forbidden_message.
1311         PR c++/6057
1312         PR c++/48051
1313         PR c++/50855
1314         PR c++/51322
1315         * mangle.c (write_expression): Support NEW_EXPR, DELETE_EXPR,
1316         THROW_EXPR, CONSTRUCTOR, OVERLOAD.  Fix PREINCREMENT_EXPR and
1317         PREDECREMENT_EXPR.
1318         (write_template_arg): Fix mangling of class-scope functions and
1319         argument packs.
1320         (mangle_decl): Update suggested -fabi-version argument.
1321         * operators.def: Add DOTSTAR_EXPR, REINTERPRET_CAST_EXPR,
1322         DYNAMIC_CAST_EXPR; correct CONST_CAST_EXPR, STATIC_CAST_EXPR.
1323         * tree.c (dependent_name): No longer static.
1324         * cp-tree.h: Declare it.
1325         * pt.c (unify): Defer handling of unconverted functions.
1327         * mangle.c (mangle_decl): Don't generate mangling aliases
1328         for maybe-in-charge [cd]tors.
1330         * error.c (dump_expr): Print type of CONSTRUCTOR.
1332 2012-01-05  Dodji Seketeli  <dodji@redhat.com>
1334         PR c++/51541
1335         * parser.c (cp_parser_alias_declaration): Get out early upon
1336         errors in the identifier or the attributes.
1338 2012-01-04  Paolo Carlini  <paolo.carlini@oracle.com>
1340         PR c++/51064
1341         * pt.c (tsubst_copy_and_build): Maybe set TREE_NO_WARNING on
1342         the tree returned by build_x_binary_op.
1344 2012-01-03  Paolo Carlini  <paolo.carlini@oracle.com>
1346         PR c++/51738
1347         * parser.c (cp_parser_postfix_open_square_expression): Handle
1348         postfix-expression [ braced-init-list ].
1350 2012-01-03  Paolo Carlini  <paolo.carlini@oracle.com>
1352         PR c++/29273
1353         * rtti.c (build_dynamic_cast_1): In case of T a pointer type,
1354         call decay_conversion on v.
1356 2012-01-03  Paolo Carlini  <paolo.carlini@oracle.com>
1358         PR c++/15867
1359         * decl.c (duplicate_decls): With -Wredundant-decls don't warn for
1360         declaration followed by specialization.
1362 2012-01-03  Jakub Jelinek  <jakub@redhat.com>
1364         PR c++/51669
1365         * semantics.c (finish_omp_clauses): Call fold_build_cleanup_point_expr
1366         on OMP_CLAUSE_{IF,FINAL,NUM_THREADS,SCHEDULE_CHUNK}_EXPR.
1368 2012-01-02  Jason Merrill  <jason@redhat.com>
1370         DR 1359
1371         PR c++/51675
1372         * method.c (walk_field_subobs): Don't check for uninitialized
1373         fields in a union.
1374         (synthesized_method_walk): Check here.
1376         DR 325
1377         PR c++/51666
1378         * parser.c (cp_parser_cache_defarg): Split out...
1379         (cp_parser_parameter_declaration): ...from here.
1380         (cp_parser_save_nsdmi): Use it.
1381         (cp_parser_cache_group): Remove CPP_COMMA support.
1383 2012-01-02  Dodji Seketeli  <dodji@redhat.com>
1385         PR c++/51462
1386         * semantics.c (cx_check_missing_mem_inits): Don't assert in case
1387         of error.
1389 2012-01-02  Paolo Carlini  <paolo.carlini@oracle.com>
1391         PR c++/20140
1392         * typeck2.c (digest_init_r): Use copy_init when initializing
1393         an array of chars.
1395 2012-01-01  Paolo Carlini  <paolo.carlini@oracle.com>
1397         PR c++/16603
1398         * decl.c (build_enumerator): Don't call perform_integral_promotions
1399         on the value.
1401 2012-01-01  Paolo Carlini  <paolo.carlini@oracle.com>
1403         PR c++/51379
1404         * typeck.c (build_reinterpret_cast_1): Implement resolution of
1405         DR 799.
1407 2012-01-01  Fabien Chêne  <fabien@gcc.gnu.org>
1409         * parser.c (cp_parser_using_declaration): Add a warning about
1410         deprecated access declarations when no errors were encountered
1411         while parsing the access declaration. Save the first token in
1412         order to emit the warning at the right place.
1414 Copyright (C) 2012 Free Software Foundation, Inc.
1416 Copying and distribution of this file, with or without modification,
1417 are permitted in any medium without royalty provided the copyright
1418 notice and this notice are preserved.