/cp
[official-gcc.git] / gcc / cp / ChangeLog
blobe8a11f31321843fbc91b9daf193298de65e1f580
1 2012-06-06  Paolo Carlini  <paolo.carlini@oracle.com>
3         PR c++/53567
4         * typeck.c (cp_perform_integral_promotions): New, like
5         perform_integral_promotions but also takes a tsubst_flags_t parameter.
6         (pointer_diff): Add tsubst_flags_t parameter.
7         (decay_conversion, cp_default_conversion, cp_build_array_ref,
8         cp_build_binary_op, cp_build_unary_op, build_static_cast_1,
9         build_reinterpret_cast_1, cp_build_modify_expr,
10         convert_for_assignment): Adjust.
11         * optimize.c (build_delete_destructor_body): Adjust.
12         * init.c (expand_virtual_init, expand_default_init, build_new_1,
13         build_new, build_vec_delete_1, build_vec_init, build_delete): Adjust.
14         (construct_virtual_base): Adjust LOOKUP_COMPLAIN -> 0.
15         * class.c (build_base_path): Adjust.
16         * decl.c (compute_array_index_type, finish_destructor_body): Likewise.
17         * method.c (synthesized_method_walk): Adjust flag and complain.
18         * rtti.c (ifnonnull): Add tsubst_flags_t parameter.
19         (build_typeid, build_dynamic_cast_1): Adjust.
20         * except.c (initialize_handler_parm): Likewise.
21         * typeck2.c (process_init_constructor_record): Likewise.
22         * pt.c (tsubst_friend_class): Don't change flags.
23         * semantics.c (finish_goto_stmt, handle_omp_for_class_iterator,
24         finish_static_assert): Likewise.
25         * parser.c (cp_parser_lookup_name): Just pass 0 as flags to
26         lookup_name_real.
27         * call.c (build_op_delete_call): Add tsubst_flags_t parameter.
28         (convert_like_real, convert_arg_to_ellipsis, convert_for_arg_passing):
29         Adjust.
30         (standard_conversion): Adjust LOOKUP_COMPLAIN -> 0.
31         (implicit_conversion): Mask out tf_error with a FIXME.
32         (build_user_type_conversion_1, build_new_op_1, build_over_call): Use
33         complain & tf_error instead of flags & LOOKUP_COMPLAIN.
34         * cvt.c (cp_convert_to_pointer, convert_to_pointer_force,
35         build_up_reference, convert_to_reference, cp_convert,
36         cp_convert_and_check, ocp_convert, convert_force): Add tsubst_flags_t
37         parameter.
38         (convert_to_reference, ocp_convert): Use complain & tf_error instead
39         of flags & LOOKUP_COMPLAIN.
40         (convert_force): Adjust LOOKUP_COMPLAIN -> 0.
41         * name-lookup.c (identifier_type_value_1, lookup_qualified_name,
42         lookup_name_real, lookup_function_nonclass, lookup_name,
43         lookup_name_prefer_type): Adjust LOOKUP_COMPLAIN -> 0.
44         * cp-tree.h: Adjust prototypes; remove LOOKUP_COMPLAIN.
46 2012-06-06  Steven Bosscher  <steven@gcc.gnu.org>
48         * decl.c: Do not include output.h.
49         (start_decl): Remove code for flag_conserve_space.
51 2012-06-06  Fabien ChĂȘne  <fabien@gcc.gnu.org>
53         PR c++/52841
54         * parser.c (cp_parser_alias_declaration): Return earlier
55         if an error occured.
57 2012-06-04  Paolo Carlini  <paolo.carlini@oracle.com>
59         PR c++/53524
60         * call.c (build_conditional_expr_1): Use OPT_Wenum_compare
61         to control enumeral mismatch in conditional expression too.
63 2012-06-04  Steven Bosscher  <steven@gcc.gnu.org>
65         * semantics.c: Do not include output.h.
66         * decl2.c: Likewise.
67         * friend.c: Likewise.
68         * typeck.c: Likewise.
69         * typeck2.c: Likewise.
70         * Make-lang.in: Fix dependencies.
72 2012-06-01  Jason Merrill  <jason@redhat.com>
74         PR c++/52973
75         * parser.c (cp_parser_class_head): Apply attributes here.
76         * semantics.c (begin_class_definition): Not here.
77         * cp-tree.h: Adjust.
79         PR c++/52725
80         * parser.c (cp_parser_binary_expression): Bail early if we're parsing
81         tentatively and the LHS has a parse error.
83         PR c++/53137
84         * pt.c (instantiate_class_template_1): Set LAMBDA_EXPR_THIS_CAPTURE.
85         (instantiate_decl): Don't push_to_top_level for local class methods.
86         (instantiate_class_template_1): Or for local classes.
88         PR c++/53484
89         * pt.c (do_auto_deduction): Don't try to deduce from a
90         type-dependent initializer.
92 2012-06-01  Paolo Carlini  <paolo.carlini@oracle.com>
94         PR c++/26155
95         * name-lookup.c (push_namespace): When error recovery is
96         impossible just error out in duplicate_decls.
98 2012-05-31  Steven Bosscher  <steven@gcc.gnu.org>
100         * call.c: Do not include output.h.
101         * class.c: Likewise.
102         * except.c: Likewise.
103         * friend.c: Likewise.
104         * init.c: Likewise.
105         * lex.c: Likewise.
106         * method.c: Likewise.
107         * parser.c: Likewise.
108         * pt.c: Likewise.
109         * rtti.c: Likewise.
110         * search.c: Likewise.
112 2012-05-30  Jason Merrill  <jason@redhat.com>
114         PR c++/53356
115         * tree.c (stabilize_init): Handle stabilizing a TARGET_EXPR
116         representing a bitwise copy of a glvalue.
118         * tree.c (stabilize_expr): Tweak logic.
120         PR c++/53356
121         * tree.c (stabilize_init): Side effects make the init unstable.
123 2012-05-28  Paolo Carlini  <paolo.carlini@oracle.com>
125         PR c++/53503
126         * semantics.c (potential_constant_expression_1): Handle LTGT_EXPR.
128 2012-05-26  Paolo Carlini  <paolo.carlini@oracle.com>
130         PR c++/53491
131         * tree.c (stabilize_expr): Handle exp of void type.
133 2012-05-26  Jason Merrill  <jason@redhat.com>
135         PR c++/53220
136         * call.c (convert_like_real) [ck_list]: Take array address directly.
137         * typeck.c (decay_conversion): Reject decay of an array compound
138         literal.
140 2012-05-25  Paolo Carlini  <paolo.carlini@oracle.com>
142         PR c++/32054
143         * parser.c (cp_parser_member_declaration): A storage class is not
144         allowed in a declaration of an anonymous aggregate in a class scope.
146 2012-05-24  Uros Bizjak  <ubizjak@gmail.com>
148         PR obj-c++/53441
149         * decl.c (grokdeclarator): Check that current_class_type is non-NULL
150         before calling constructor_name_p.
152 2012-05-24  Paolo Carlini  <paolo.carlini@oracle.com>
154         PR c++/32080
155         * parser.c (cp_parser_ctor_initializer_opt_and_function_body,
156         cp_parser_function_body): Add a bool parameter, true when parsing
157         a function-try-block.
158         (cp_parser_function_try_block): Pass true to the above.
159         (cp_parser_function_definition_after_declarator,
160         cp_parser_function_transaction): Adjust.
162 2012-05-23  Paolo Carlini  <paolo.carlini@oracle.com>
164         PR c++/29185
165         * decl2.c (delete_sanity): Extend 'deleting array' warning to
166         any array type.
168 2012-05-21  Paolo Carlini  <paolo.carlini@oracle.com>
170         PR c++/51184
171         * decl.c (grokdeclarator): Diagnose functions returning abstract
172         class types as TYPENAME.
173         * cp-tree.h (ABSTRACT_CLASS_TYPE_P): Add.
174         * except.c (is_admissible_throw_operand_or_catch_parameter): Use it.
175         * pt.c (tsubst): Likewise.
176         * semantics.c (trait_expr_value): Likewise.
178 2012-05-21  Paolo Carlini  <paolo.carlini@oracle.com>
180         PR c++/40821
181         * parser.c (cp_parser_attributes_opt): Enforce error checking of
182         unbalanced parentheses in the presence of tentative parsing.
184 2012-05-17  Paolo Carlini  <paolo.carlini@oracle.com>
186         PR c++/39681
187         * parser.c (cp_parser_new_type_id): Early return error_mark_node
188         if the cp_parser_type_specifier_seq call has type_specifier_seq.type
189         error_mark_node; tidy.
190         (cp_parser_new_expression): Always initialize nelts to NULL_TREE to
191         avoid uninitialized warnings.
192         (cp_parser_init_declarator, cp_parser_late_parse_one_default_arg):
193         Call cp_parser_skip_to_end_of_statement if cp_parser_initializer
194         returns error_mark_node.
196 2012-05-17  Paolo Carlini  <paolo.carlini@oracle.com>
198         PR c++/53371
199         * except.c (is_admissible_throw_operand): Rename to
200         is_admissible_throw_operand_or_catch_parameter and handle
201         catch parameter too.
202         (expand_start_catch_block): Use it.
203         (build_throw): Adjust.
205 2012-05-17  Paolo Carlini  <paolo.carlini@oracle.com>
207         PR c++/44516
208         * typeck.c (build_x_array_ref, build_x_conditional_expr,
209         build_x_compound_expr, build_x_modify_expr): Add location_t parameter.
210         (finish_class_member_access_expr, build_x_indirect_ref,
211         build_x_binary_op, build_x_compound_expr_from_list,
212         build_x_compound_expr_from_vec): Adjust callers.
213         * tree.c (build_min_nt_loc): New.
214         (build_min_nt): Remove.
215         * typeck2.c (build_x_arrow): Adjust callers.
216         * pt.c (tsubst_qualified_id, tsubst_omp_for_iterator,
217         tsubst_copy_and_build): Likewise.
218         * semantics.c (finish_mem_initializers, handle_omp_for_class_iterator,
219          finish_omp_atomic): Likewise.
220         * decl2.c (grok_array_decl, build_anon_union_vars): Adjust.
221         * parser.c (cp_parser_question_colon_clause,
222         cp_parser_assignment_expression, cp_parser_expression,
223         cp_parser_template_id, cp_parser_omp_for_loop): Likewise.
224         * cp-tree.h: Update.
226 2012-05-16  Dodji Seketeli  <dodji@redhat.com>
228         PR preprocessor/7263
229         * cp-tree.h (enum cp_decl_spec): Add new enumerators to cover all
230         the possible declarator specifiers so far.
231         (struct cp_decl_specifier_seq::locations): Declare new member.
232         (cp_decl_specifier_seq::{specs, type_location}): Remove.
233         (decl_spec_seq_has_spec_p): Declare new function.
234         * parser.c (cp_parser_check_decl_spec): Remove.
235         (set_and_check_decl_spec_loc): Define new static function.
236         (decl_spec_seq_has_spec_p): Define new public function.
237         (cp_parser_decl_specifier_seq, cp_parser_function_specifier_opt)
238         (cp_parser_type_specifier, cp_parser_simple_type_specifier)
239         (cp_parser_set_storage_class, cp_parser_set_decl_spec_type)
240         (cp_parser_alias_declaration): Set the locations for each
241         declspec, using set_and_check_decl_spec_loc.
242         (cp_parser_explicit_instantiation, cp_parser_init_declarator)
243         (cp_parser_member_declaration, cp_parser_init_declarator): Use the
244         new declspec location for specifiers.  Use the new
245         decl_spec_seq_has_spec_p.
246         (cp_parser_type_specifier_seq): Use the new
247         set_and_check_decl_spec_loc.  Stop using
248         cp_parser_check_decl_spec.  Use the new decl_spec_seq_has_spec_p.
249         (, cp_parser_init_declarator): Use the new
250         set_and_check_decl_spec_loc.
251         (cp_parser_single_declaration, cp_parser_friend_p)
252         (cp_parser_objc_class_ivars, cp_parser_objc_struct_declaration):
253         Use the new decl_spec_seq_has_spec_p.
254         * decl.c (check_tag_decl): Use new decl_spec_seq_has_spec_p.  Use
255         the more precise ds_redefined_builtin_type_spec location for
256         diagnostics about re-declaring C++ built-in types.
257         (start_decl, grokvardecl, grokdeclarator): Use the new
258         decl_spec_seq_has_spec_p.
260 2012-05-15  Paolo Carlini  <paolo.carlini@oracle.com>
262         PR c++/11856
263         * pt.c (tsubst_copy_and_build): Increase / decrease
264         c_inhibit_evaluation_warnings around build_x_binary_op call.
266 2012-05-12  Paolo Carlini  <paolo.carlini@oracle.com>
268         * cp-tree.h (TYPE_PTRMEM_P): Rename to TYPE_PTRDATAMEM_P.
269         (TYPE_PTR_TO_MEMBER_P): Rename to TYPE_PTRMEM_P.
270         (TYPE_PTR_OR_PTRMEM_P): Add.
271         * typeck.c (composite_pointer_type_r, composite_pointer_type,
272         common_pointer_type, cp_build_indirect_ref, cp_build_binary_op,
273         cp_truthvalue_conversion, convert_ptrmem, build_static_cast_1,
274         build_reinterpret_cast_1, build_const_cast_1, comp_ptr_ttypes_real,
275         casts_away_constness_r, casts_away_constness): Adjust.
276         * init.c (build_zero_init_1): Adjust.
277         * class.c (check_field_decls): Likewise.
278         * decl.c (check_default_argument): Likewise.
279         * rtti.c (target_incomplete_p): Likewise.
280         * tree.c (zero_init_p): Likewise.
281         * cxx-pretty-print.c (pp_cxx_ptr_operator,
282         pp_cxx_abstract_declarator): Likewise.
283         * typeck2.c (build_m_component_ref): Likewise.
284         * pt.c (convert_nontype_argument, invalid_nontype_parm_type_p,
285         dependent_type_p_r): Likewise.
286         * call.c (null_member_pointer_value_p, standard_conversion,
287         add_builtin_candidate, build_conditional_expr_1, compare_ics):
288         Likewise.
289         * cp-objcp-common.c (cp_var_mod_type_p): Likewise.
290         * cvt.c (cp_convert_to_pointer, ocp_convert,
291         perform_qualification_conversions): Likewise.
292         * mangle.c (write_type): Likewise.
293         * name-lookup.c (arg_assoc_type): Likewise.
295 2012-05-12  Paolo Carlini  <paolo.carlini@oracle.com>
297         * parser.c (struct cp_parser_expression_stack_entry): Add location_t
298         field.
299         (cp_parser_binary_expression): Rework to always update at the same
300         time tree_type and loc.
301         * call.c (print_z_candidate): Add location_t parameter.
302         (print_z_candidates, convert_like_real, joust): Adjust.
304 2012-05-11  Alexandre Oliva  <aoliva@redhat.com>
306         PR c++/53209
307         * pt.c (tsubst_decl): Bail out if argvec is error_mark_node.
309 2012-05-11  Paolo Carlini  <paolo.carlini@oracle.com>
311         PR c++/53305
312         * pt.c (tsubst_copy: case PARM_DECL): Return error_mark_node if
313         tsubst_decl returns NULL_TREE.
314         * cxx-pretty-print.c (pp_cxx_simple_type_specifier): Handle
315         BOUND_TEMPLATE_TEMPLATE_PARM.
317 2012-05-10  Paolo Carlini  <paolo.carlini@oracle.com>
319         PR c++/53158
320         * cvt.c (ocp_convert): Error out early for void -> bool conversions.
321         * typeck.c (decay_conversion): Use error_at.
322         * call.c (build_integral_nontype_arg_conv, convert_like_real,
323         convert_arg_to_ellipsis, perform_implicit_conversion_flags,
324         initialize_reference): Likewise.
325         * cvt.c (warn_ref_binding): Add location_t parameter.
326         (cp_convert_to_pointer, convert_to_reference, ocp_convert,
327         convert_to_void, ): Use error_at and warning_at.
329 2012-05-10  Paolo Carlini  <paolo.carlini@oracle.com>
331         PR c++/53301
332         * decl.c (check_default_argument): Fix typo (POINTER_TYPE_P
333         instead of TYPE_PTR_P) in zero-as-null-pointer-constant warning.
335 2012-05-06  Paolo Carlini  <paolo.carlini@oracle.com>
337         PR c++/53152
338         * call.c (op_error, build_new_op_1, build_new_op): Add location_t
339         parameter.
340         (build_conditional_expr_1): Adjust.
341         * typeck.c (build_x_indirect_ref, build_x_binary_op,
342         build_x_unary_op): Add location_t parameter.
343         (rationalize_conditional_expr, build_x_array_ref,
344         build_x_compound_expr, cp_build_modify_expr, build_x_modify_expr):
345         Adjust.
346         * typeck2.c (build_x_arrow): Add location_t parameter.
347         * semantics.c (finish_unary_op_expr): Likewise.
348         (finish_increment_expr, handle_omp_for_class_iterator): Adjust.
349         * decl2.c (grok_array_decl): Add location_t parameter.
350         * parser.c (cp_parser_postfix_open_square_expression,
351         cp_parser_postfix_dot_deref_expression, cp_parser_unary_expression,
352         cp_parser_binary_expression, cp_parser_builtin_offsetof,
353         do_range_for_auto_deduction, cp_convert_range_for,
354         cp_parser_template_argument, cp_parser_omp_for_cond): Pass the
355         location, adjust.
356         * pt.c (tsubst_copy_and_build): Adjust.
357         * tree.c (maybe_dummy_object): Likewise.
358         * cp-tree.h: Update declarations.
360 2012-05-04  Paolo Carlini  <paolo.carlini@oracle.com>
362         * semantics.c (cxx_eval_constant_expression, case CONVERT_EXPR): Tidy.
364 2012-05-04  Paolo Carlini  <paolo.carlini@oracle.com>
366         PR c++/53166
367         * pt.c (instantiate_class_template_1): Increase / decrease
368         c_inhibit_evaluation_warnings around the tsubst_expr call
369         for STATIC_ASSERT_CONDITION.
370         (tsubst_expr, case STATIC_ASSERT): Likewise.
371         * typeck.c (cp_build_binary_op, case EQ_EXPR/NE_EXPR): Check
372         c_inhibit_evaluation_warnings in the OPT_Waddress warnings.
374 2012-05-03  Paolo Carlini  <paolo.carlini@oracle.com>
376         PR c++/53186
377         * call.c (build_over_call): Handle final member functions
378         and class types.
379         (build_new_method_call_1): Do not handle here.
381 2012-05-02  Richard Guenther  <rguenther@suse.de>
383         * decl.c (grokdeclarator): Properly check for sizes that
384         cover more than half of the address-space.
386 2012-04-30  Marc Glisse  <marc.glisse@inria.fr>
388         PR c++/51033
389         * typeck.c (cp_build_array_ref): Handle VECTOR_TYPE.
390         * decl2.c (grok_array_decl): Likewise.
392         PR c++/51314
393         * parser.c (cp_parser_sizeof_operand): Require parentheses for
394         sizeof...
396 2012-04-30  Dodji Seketeli  <dodji@redhat.com>
398         Fix location for static class members
399         * decl.c (grokdeclarator): Use the location carried by the
400         declarator for the DECL of the static class member.
402         Fix va_arg type location
403         * cp-tree.h (build_x_va_arg): Take an additional location
404         parameter.
405         * call.c (build_x_va_arg): Take a loc parameter for the location
406         of the type of the va_arg expression.
407         * parser.c (cp_parser_primary_expression): Pass the type of the
408         type in the va_arg expression to build_x_va_arg.
409         * pt.c (tsubst_copy): Adjust calls to build_x_va_arg.
411         Make conversion warnings work on NULL with -ftrack-macro-expansion
412         * call.c (conversion_null_warnings): Use the new
413         expansion_point_location_if_in_system_header.
414         * cvt.c (build_expr_type_conversion): Likewise.
415         * typeck.c (cp_build_binary_op): Likewise.
417 2012-04-30  Manuel LĂłpez-Ibåñez  <manu@gcc.gnu.org>
419         * typeck.c (convert_for_assignment):  Replace
420         Wmissing-format-attribute with Wsuggest-attribute=format.
421         * call.c (convert_for_arg_passing): Likewise.
423 2012-04-26  Paolo Carlini  <paolo.carlini@oracle.com>
425         PR c++/53096
426         * class.c (check_bases_and_members): Implement core/1333, do not
427         disallow defaulted in the class body non-const ref special members.
429 2012-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
431         PR c++/52363
432         * call.c (tourney, perform_overload_resolution,
433         build_operator_new_call, build_user_type_conversion_1,
434         build_user_type_conversion, perform_overload_resolution,
435         add_template_candidate, add_template_candidate_real,
436         add_template_conv_candidate, add_builtin_candidates,
437         add_builtin_candidate, build_builtin_candidate,
438         add_conv_candidate, add_function_candidate, implicit_conversion,
439         reference_binding, build_list_conv, conditional_conversion,
440         add_candidates, can_convert_array, build_aggr_conv,
441         build_array_conv, build_complex_conv, conditional_conversion):
442         Add tsubst_flags_t parameter.
443         (joust): Likewise, use it to handle SFINAE as if pedantic.
444         (add_list_candidates, build_integral_nontype_arg_conv,
445         perform_overload_resolution, build_new_function_call,
446         build_operator_new_call, build_op_call_1,
447         build_conditional_expr_1, build_new_op_1, convert_like_real,
448         convert_arg_to_ellipsis, convert_default_arg,
449         convert_for_arg_passing, build_over_call,
450         build_new_method_call_1, can_convert_arg, can_convert_arg_bad,
451         perform_implicit_conversion_flags,
452         perform_direct_initialization_if_possible,
453         initialize_reference): Adjust.
454         * typeck.c (casts_away_constness, casts_away_constness_r):
455         Add tsubst_flags_t parameter.
456         (convert_arguments, check_for_casting_away_constness,
457         build_static_cast_1, build_ptrmemfunc, convert_for_assignment):
458         Adjust.
459         * decl.c (reshape_init_r, check_default_argument): Likewise.
460         * cp-gimplify.c (cxx_omp_clause_apply_fn): Likewise.
461         * pt.c (convert_nontype_argument, check_non_deducible_conversion):
462         Likewise.
463         * init.c (build_new_1): Likewise.
464         * cvt.c (convert_to_reference, ocp_convert, build_type_conversion,
465         build_expr_type_conversion, ): Likewise.
466         * search.c (check_final_overrider): Likewise.
467         * cp-tree.h (build_user_type_conversion,
468         build_operator_new_call, can_convert, can_convert_arg,
469         can_convert_arg_bad, convert_default_arg,
470         convert_arg_to_ellipsis, convert_for_arg_passing):
471         Adjust declaration.
473 2012-04-22  Jan Hubicka  <jh@suse.cz>
475         * decl2.c (maybe_make_one_only): Mark keyed COMDATs as USED so they
476         gets finalized.
478 2012-04-22  Manuel LĂłpez-Ibåñez  <manu@gcc.gnu.org>
480         PR c/44774
481         * typeck.c (composite_pointer_type): Likewise.
482         (cxx_sizeof_or_alignof_type): Likewise.
483         (cp_build_array_ref): Likewise.
484         (cp_build_function_call_vec): Likewise.
485         (cp_build_addr_expr_1): Likewise.
486         (convert_member_func_to_ptr): Likewise.
487         * decl.c (check_tag_decl): Likewise.
488         (check_static_variable_definition): Likewise.
489         (compute_array_index_type): Likewise.
490         (create_array_type_for_decl): Likewise.
491         (grokdeclarator): Likewise.
492         (grok_op_properties): Likewise.
493         * error.c (maybe_warn_cpp0x): Likewise.
494         * pt.c (maybe_process_partial_specialization): Likewise.
495         (convert_template_argument): Likewise.
496         (do_decl_instantiation): Likewise.
497         (do_type_instantiation): Likewise.
498         * parser.c (cp_parser_primary_expression): Likewise.
499         (cp_parser_postfix_expression): Likewise.
500         (cp_parser_unary_expression): Likewise.
501         (cp_parser_question_colon_clause): Likewise.
502         (cp_parser_lambda_introducer): Likewise.
503         (cp_parser_lambda_declarator_opt): Likewise.
504         (cp_parser_compound_statement): Likewise.
505         (cp_parser_jump_statement): Likewise.
506         (cp_parser_declaration_seq_opt): Likewise.
507         (cp_parser_enum_specifier): Likewise.
508         (cp_parser_enumerator_list): Likewise.
509         (cp_parser_initializer_list): Likewise.
510         (cp_parser_member_declaration): Likewise.
511         * call.c (build_conditional_expr_1): Likewise.
512         * friend.c (make_friend_class): Likewise.
513         * name-lookup.c (pushdecl_maybe_friend_1): Likewise.
515 2012-04-21  Jan Hubicka  <jh@suse.cz>
517         * method.c (make_alias_for): Do not set TREE_SYMBOL_REFERENCED.
518         * decl2.c (mark_needed): Likewise.
519         (decl_needed_p): Do not test TREE_SYMBOL_REFERENCED.
521         * decl2.c (cxx_callgraph_analyze_expr): Remove.
522         * cp-objcp-common.h (LANG_HOOKS_CALLGRAPH_ANALYZE_EXPR): Remove.
523         * cp-tree.h (cxx_callgraph_analyze_expr): Remove.
525 2012-04-21  Manuel LĂłpez-Ibåñez  <manu@gcc.gnu.org>
527         PR 35441
528         * typeck.c (cp_build_function_call_vec): Do not pretty-print
529         expressions when caret is enabled.
531 2012-04-20  Jan Hubicka  <jh@suse.cz>
533         PR target/53042
534         * decl2.c (maybe_emit_vtables): Do not initialize same_comdat_group
535         list when target has no support for it.
537 2012-04-20  Michael Matz  <matz@suse.de>
539         * error.c (pedwarn_cxx98): Move va_end call after user
540         of the va_list.
542 2012-04-18  Paolo Carlini  <paolo.carlini@oracle.com>
544         PR c++/52422
545         * cp-tree.h (build_addr_func, decay_conversion,
546         get_member_function_from_ptrfunc,
547         build_m_component_ref, convert_member_func_to_ptr):
548         Add tsubst_flags_t parameter.
549         * typeck.c (cp_default_conversion): Add.
550         (decay_conversion, default_conversion,
551         get_member_function_from_ptrfunc, convert_member_func_to_ptr):
552         Add tsubst_flags_t parameter and use it throughout.
553         (cp_build_indirect_ref, cp_build_array_ref,
554         cp_build_function_call_vec, convert_arguments, build_x_binary_op,
555         cp_build_binary_op, cp_build_unary_op, build_reinterpret_cast_1,
556         build_const_cast_1, expand_ptrmemfunc_cst,
557         convert_for_initialization): Adjust.
558         * init.c (build_vec_init): Adjust.
559         * decl.c (grok_reference_init, get_atexit_node): Likewise.
560         * rtti.c (build_dynamic_cast_1, tinfo_base_init): Likewise.
561         * except.c (build_throw): Likewise.
562         * typeck2.c (build_x_arrow): Likewise.
563         (build_m_component_ref): Add tsubst_flags_t parameter and
564         use it throughout.
565         * pt.c (convert_nontype_argument): Adjust.
566         * semantics.c (finish_asm_stmt, maybe_add_lambda_conv_op): Likewise.
567         * decl2.c (build_offset_ref_call_from_tree): Likewise.
568         * call.c (build_addr_func): Add tsubst_flags_t parameter and
569         use it throughout.
570         (build_call_a, build_conditional_expr_1, build_new_op_1,
571         convert_like_real, convert_arg_to_ellipsis, build_over_call,
572         build_special_member_call): Adjust.
573         * cvt.c (cp_convert_to_pointer, force_rvalue,
574         build_expr_type_conversion): Likewise.
576 2012-04-17  Tom de Vries  <tom@codesourcery.com>
578         * cp-gimplify.c (begin_bc_block): Add location parameter and use as
579         location argument to create_artificial_label.
580         (finish_bc_block): Change return type to void.  Remove body_seq
581         parameter, and add block parameter.  Append label to STMT_LIST and
582         return in block.
583         (gimplify_cp_loop, gimplify_for_stmt, gimplify_while_stmt)
584         (gimplify_do_stmt, gimplify_switch_stmt): Remove function.
585         (genericize_cp_loop, genericize_for_stmt, genericize_while_stmt)
586         (genericize_do_stmt, genericize_switch_stmt, genericize_continue_stmt)
587         (genericize_break_stmt, genericize_omp_for_stmt): New function.
588         (cp_gimplify_omp_for): Remove bc_continue processing.
589         (cp_gimplify_expr): Genericize VEC_INIT_EXPR.
590         (cp_gimplify_expr): Mark FOR_STMT, WHILE_STMT, DO_STMT, SWITCH_STMT,
591         CONTINUE_STMT, and BREAK_STMT as unreachable.
592         (cp_genericize_r): Genericize FOR_STMT, WHILE_STMT, DO_STMT,
593         SWITCH_STMT, CONTINUE_STMT, BREAK_STMT and OMP_FOR.
594         (cp_genericize_tree): New function, factored out of ...
595         (cp_genericize): ... this function.
597 2012-04-17  Paolo Carlini  <paolo.carlini@oracle.com>
599         PR c++/52599
600         * semantics.c (build_constexpr_constructor_member_initializers):
601         Check for function-try-block as function-body.
603 2012-04-17  Paolo Carlini  <paolo.carlini@oracle.com>
605         PR c++/53003
606         * parser.c (cp_parser_member_declaration): Check that
607         initializer_token_start is non null before dereferencing it.
609 2012-04-16  Jason Merrill  <jason@redhat.com>
611         PR c++/38543
612         * pt.c (determine_specialization): Instead of comparing the number
613         of parms, check that tsubst gives the right answer.
615         PR c++/52008
616         * pt.c (process_partial_specialization): Complain about a partial
617         specialization with fewer args than primary template parms.
619         PR c++/50830
620         * pt.c (convert_template_argument): Handle template template
621         argument packs.
623         PR c++/50303
624         * pt.c (tsubst_pack_expansion): Use tsubst_expr for template
625         template parameters.
627 2012-04-16  Paolo Carlini  <paolo.carlini@oracle.com>
629         PR c++/49152
630         * call.c (op_error): Print types; when flag_diagnostics_show_caret
631         is false print expressions too.
632         (op_error_string): Add.
634 2012-04-16  Jason Merrill  <jason@redhat.com>
636         PR c++/51148
637         * friend.c (make_friend_class): Call check_for_bare_parameter_packs.
639 2012-04-16  Jan Hubicka  <jh@suse.cz>
641         * decl2.c (collect_candidates_for_java_method_alias): Use FOR_EACH
642         walkers to walk cgraph and varpool.
644 2012-04-15  Jason Merrill  <jason@redhat.com>
646         PR c++/47220
647         * pt.c (coerce_template_parameter_pack): Check for error_mark_node.
649         PR c++/52292
650         PR c++/52380
651         * pt.c (coerce_template_parms): Even if we aren't converting we
652         want to expand argument packs.
654         PR c++/52706
655         * mangle.c (write_type): nullptr_t is a builtin type.
657 2012-04-14  Jan Hubicka  <jh@suse.cz>
659         * tree.c: Update field referenced for new cgraph/varpool layout.
660         * decl2.c: Likewise.
662 2012-04-13  Jason Merrill  <jason@redhat.com>
664         PR c++/52824
665         * pt.c (any_pack_expanson_args_p): New.
666         (coerce_template_parms): Use it.
668         PR c++/52905
669         * call.c (joust): Handle comparing list and non-list ctors.
671         PR c++/52915
672         * decl2.c (finish_anon_union): Use cp_finish_decl.
673         * error.c (dump_function_name): Avoid showing anonymous "name".
675 2012-04-11  Fabien ChĂȘne  <fabien@gcc.gnu.org>
677         PR c++/52465
678         * parser.c (cp_parser_class_name): Call strip_using_decl and
679         return the target decl.
680         * name-lookup.c (strip_using_decl): Returns NULL_TREE if the decl
681         to be stripped is NULL_TREE.
682         (qualify_lookup): Call strip_using_decl and perform some checks on
683         the target decl.
685 2012-04-11  Jason Merrill  <jason@redhat.com>
687         PR debug/45088
688         * decl.c (grokdeclarator): Strip the injected-class-name typedef
689         if we are building a declaration or compound type.
691         PR c++/52906
692         * decl.c (check_tag_decl): Don't complain about attributes if we
693         don't even have a type.
695 2012-04-10  Manuel LĂłpez-Ibåñez  <manu@gcc.gnu.org>
697         * cvt.c (convert_to_void): Update comment.
699 2012-04-05  Jason Merrill  <jason@redhat.com>
701         PR c++/52596
702         * semantics.c (finish_non_static_data_member): In templates, pass
703         the decl to build_qualified_name.
704         * tree.c (lvalue_kind) [SCOPE_REF]: Handle FIELD_DECL.
706 2012-04-04  Jason Merrill  <jason@redhat.com>
708         PR c++/52845
709         * decl.c (finish_function): Update fntype after deducing return type.
711 2012-04-03  Jason Merrill  <jason@redhat.com>
713         PR c++/52796
714         * pt.c (tsubst_initializer_list): A pack expansion with no elements
715         means value-initialization.
717 2012-04-01  Paolo Carlini  <paolo.carlini@oracle.com>
719         PR c++/50043
720         * class.c (deduce_noexcept_on_destructor,
721         deduce_noexcept_on_destructors): New.
722         (check_bases_and_members): Call the latter.
723         * decl.c (grokfndecl): Call the former.
724         * method.c (implicitly_declare_fn): Not static.
725         * cp-tree.h (deduce_noexcept_on_destructor, implicitly_declare_fn):
726         Declare
728 2012-03-29  Paolo Carlini  <paolo.carlini@oracle.com>
730         PR c++/52718
731         * decl.c (check_default_argument): With -Wzero-as-null-pointer-constant
732         warn for a zero as null pointer constant default argument.
734 2012-03-29  Jason Merrill  <jason@redhat.com>
736         PR c++/52685
737         * tree.c (copy_binfo): Handle BINFO_DEPENDENT_BASE_P.
739 2012-03-29  Jakub Jelinek  <jakub@redhat.com>
741         PR c++/52759
742         * decl.c (start_decl): Don't call maybe_apply_pragma_weak
743         if processing_template_decl.
745 2012-03-29  Jason Merrill  <jason@redhat.com>
747         PR c++/52743
748         * call.c (compare_ics): Handle ck_aggr like ck_list.
750 2012-03-28  Jason Merrill  <jason@redhat.com>
752         PR c++/52746
753         * typeck.c (lookup_destructor): Clear BASELINK_QUALIFIED_P if
754         we didn't get an explicit scope.
755         * pt.c (tsubst_baselink): Likewise.
757 2012-03-28  Richard Guenther  <rguenther@suse.de>
759         * typeck2.c (process_init_constructor_array): Use the proper
760         type for computing the array length.
762 2012-03-27  Meador Inge  <meadori@codesourcery.com>
764         PR c++/52672
765         * semantics.c (cxx_fold_indirect_ref): Don't attempt to fold
766         stripped child trees that are not pointer types.
768 2012-03-21  Jason Merrill  <jason@redhat.com>
770         Implement return type deduction for normal functions with -std=c++1y.
771         * cp-tree.h (FNDECL_USED_AUTO): New macro.
772         (LAMBDA_EXPR_DEDUCE_RETURN_TYPE_P): Remove.
773         (dependent_lambda_return_type_node): Remove.
774         (CPTI_DEPENDENT_LAMBDA_RETURN_TYPE): Remove.
775         (struct language_function): Add x_auto_return_pattern field.
776         (current_function_auto_return_pattern): New.
777         (enum tsubst_flags): Add tf_partial.
778         * decl.c (decls_match): Handle auto return comparison.
779         (duplicate_decls): Adjust error message for auto return.
780         (cxx_init_decl_processing): Remove dependent_lambda_return_type_node.
781         (cp_finish_decl): Don't do auto deduction for functions.
782         (grokdeclarator): Allow auto return without trailing return type in
783         C++1y mode.
784         (check_function_type): Defer checking of deduced return type.
785         (start_preparsed_function): Set current_function_auto_return_pattern.
786         (finish_function): Set deduced return type to void if not previously
787         deduced.
788         * decl2.c (change_return_type): Handle error_mark_node.
789         (mark_used): Always instantiate functions with deduced return type.
790         Complain about use if deduction isn't done.
791         * parser.c (cp_parser_lambda_declarator_opt): Use 'auto' for
792         initial return type.
793         (cp_parser_lambda_body): Don't deduce return type in a template.
794         (cp_parser_conversion_type_id): Allow auto in C++1y.
795         * pt.c (instantiate_class_template_1): Don't mess with
796         LAMBDA_EXPR_DEDUCE_RETURN_TYPE_P.
797         (tsubst_copy_and_build): Likewise.
798         (fn_type_unification, tsubst): Don't reduce the template parm level
799         of 'auto' during deduction.
800         (unify): Compare 'auto' specially.
801         (get_bindings): Change test.
802         (always_instantiate_p): Always instantiate functions with deduced
803         return type.
804         (do_auto_deduction): Handle error_mark_node and lambda context.
805         Don't check for use in initializer.
806         (contains_auto_r): Remove.
807         * search.c (lookup_conversions_r): Handle auto conversion function.
808         * semantics.c (lambda_return_type): Handle null return.  Don't mess
809         with dependent_lambda_return_type_node.
810         (apply_deduced_return_type): Rename from apply_lambda_return_type.
811         * typeck.c (merge_types): Handle auto.
812         (check_return_expr): Do auto deduction.
813         * typeck2.c (add_exception_specifier): Fix complain check.
815 2012-03-22  Paolo Carlini  <paolo.carlini@oracle.com>
817         PR c++/52487
818         * class.c (check_field_decls): Call literal_type_p only
819         on complete types.
821 2012-03-22  Jakub Jelinek  <jakub@redhat.com>
823         PR c++/52671
824         * decl.c (check_tag_decl): Only use CLASSTYPE_TEMPLATE_INSTANTIATION
825         on CLASS_TYPE_P types.
827 2012-03-20  Jason Merrill  <jason@redhat.com>
829         * lex.c (init_reswords): Use >= for cxx_dialect test.
830         * parser.c (cp_parser_exception_specification_opt): Likewise.
832         * mangle.c (write_type): Handle 'auto'.
833         * init.c (build_new): Don't do auto deduction where it might
834         affect template mangling.
836         PR c++/52510
837         * decl.c (reshape_init_class): Handle repeated reshaping.
838         * search.c (lookup_field_1): Add sanity check.
840 2012-03-19  Paolo Carlini  <paolo.carlini@oracle.com>
842         PR c++/14710
843         * cp-tree.h (xvalue_p, maybe_warn_about_useless_cast): Declare.
844         * tree.c (xvalue_p): Define.
845         * typeck.c (maybe_warn_about_useless_cast): Define.
846         (build_reinterpret_cast, build_const_cast,
847         build_static_cast, cp_build_c_cast): Use maybe_warn_about_useless_cast.
848         * rtti.c (build_dynamic_cast): Likewise.
849         * pt.c (tsubst_copy_and_build, case CAST_EXPR): Increment/decrement
850         c_inhibit_evaluation_warnings before/after the build_* calls.
852 2012-03-15  Jason Merrill  <jason@redhat.com>
854         PR c++/52582
855         * method.c (implicitly_declare_fn): Set DECL_EXTERNAL.
857 2012-03-15  Manuel LĂłpez-Ibåñez  <manu@gcc.gnu.org>
859         PR c++/44783
860         * error.c (print_instantiation_partial_context): Use
861         template_backtrace_limit.
863 2012-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
865         * Make-lang.in (doc/g++.1): Remove IRIX 6.5 reference.
867 2012-03-14  Jakub Jelinek  <jakub@redhat.com>
869         PR c++/52521
870         * parser.c (lookup_literal_operator): Return fn only if
871         processed all arguments from args vector and argtypes is
872         void_list_node.
874 2012-01-30  Dodji Seketeli  <dodji@redhat.com>
876         PR c++/51641
877         * cp-tree.h (template_type_parameter_p): Declare new function.
878         (parameter_of_template_p): Remove.
879         * pt.c (template_type_parameter_p): Define new function.
880         (parameter_of_template_p): Remove.
881         * name-lookup.c (binding_to_template_parms_of_scope_p): Don't rely
882         on parameter_of_template_p anymore.  Compare the level of the
883         template parameter to the depth of the template.
885 2011-12-15  Dodji Seketeli  <dodji@redhat.com>
887         * call.c (standard_conversion, build_integral_nontype_arg_conv)
888         (build_new_op_1, convert_like_real, is_subseq)
889         (maybe_handle_implicit_object, maybe_handle_ref_bind, compare_ics)
890         (joust): Use next_conversion instead of accessing fields of struct
891         conversion directly.
893 2012-03-12  Paolo Carlini  <paolo.carlini@oracle.com>
895         PR c++/52299
896         * pt.c (tsubst_copy_and_build, case COND_EXPR): Avoid bogus
897         division by zero warnings.
899 2012-03-08  Paolo Carlini  <paolo.carlini@oracle.com>
901         * typeck.c (build_array_ref, cp_build_addr_expr_1, convert_ptrmem,
902         build_ptrmemfunc): Consistently forward the tsubst_flags_t
903         parameter.
904         * call.c (resolve_args): Likewise.
906 2012-03-07  Jason Merrill  <jason@redhat.com>
908         PR c++/52521
909         * mangle.c (write_literal_operator_name): The length comes after the
910         operator prefix.
912 2012-03-05  Jakub Jelinek  <jakub@redhat.com>
914         * pt.c (local_specializations): Change from htab_t into
915         struct pointer_map_t *.
916         (retrieve_local_specializations, register_local_specialization,
917         tsubst_pack_expansion, instantiate_decl): Adjust users.
918         (eq_local_specializations, hash_local_specialization): Remove.
920 2012-03-05  Jason Merrill  <jason@redhat.com>
922         PR c++/51930
923         * decl2.c (determine_visibility): Correct calculation of class
924         args depth.
925         * decl.c (check_tag_decl): Adjust warning.
927         * method.c (synthesized_method_walk): Cleanups don't affect the EH
928         spec either.
930 2012-03-03  Jason Merrill  <jason@redhat.com>
932         * init.c (perform_member_init): Cope with uninstantiated NSDMI.
934         Core 1270
935         * call.c (build_aggr_conv): Call reshape_init.
936         (convert_like_real): Likewise.
937         * typeck2.c (process_init_constructor): Clear TREE_CONSTANT if
938         not all constant.
940         * mangle.c (write_nested_name): Use decl_mangling_context.
941         (write_prefix, write_template_prefix): Likewise.
943         PR c++/36797
944         * mangle.c (write_expression): Improve diagnostic for TRAIT_EXPR.
946         * class.c (add_method): Always build an OVERLOAD for using-decls.
947         * search.c (lookup_member): Handle getting an OVERLOAD for a
948         single function.
950 2012-03-02  Paolo Carlini  <paolo.carlini@oracle.com>
952         PR c++/51989
953         * typeck2.c (build_x_arrow): Take a tsubst_flags_t argument and
954         propagate it.
955         * cp-tree.h (build_x_arrow): Adjust prototype.
956         * pt.c (tsubst_copy_and_build): Adjust call.
957         * parser.c (cp_parser_postfix_dot_deref_expression): Likewise.
959 2012-03-02  Paolo Carlini  <paolo.carlini@oracle.com>
961         * name-lookup.c (binding_to_template_parms_of_scope_p): Clean up.
963 2012-02-29  Jason Merrill  <jason@redhat.com>
965         PR c++/51930
966         * decl.c (check_tag_decl): Move warning for misplaced attributes here.
967         (shadow_tag): From here.
968         * parser.c (cp_parser_explicit_instantiation): Don't warn here.
970 2012-02-21  Jakub Jelinek  <jakub@redhat.com>
972         PR c++/52312
973         * typeck.c (check_literal_operator_args): Initialize *long_double_p
974         and *long_long_unsigned_p even if processing_template_decl.
976 2012-02-16  Jason Merrill  <jason@redhat.com>
978         PR c++/52248
979         * decl.c (define_label): Use timevar_cond_start/stop.
981 2012-02-16  Fabien ChĂȘne  <fabien@gcc.gnu.org>
983         PR c++/52126
984         * decl.c (xref_basetypes): call dependent_scope_p instead of
985         dependent_type_p.
987 2012-02-16  Jason Merrill  <jason@redhat.com>
989         PR c++/51415
990         * error.c (dump_expr): Handle lambda closures specifically.
992 2012-02-14  Jason Merrill  <jason@redhat.com>
994         * parser.c (cp_parser_explicit_instantiation): Give a warning
995         for ignored attributes on explicit class instantiation.
997 2012-02-14  Jakub Jelinek  <jakub@redhat.com>
999         PR c++/52247
1000         * pt.c (tsubst_copy_asm_operands): For LABEL_DECL values call
1001         lookup_label on label's name and set TREE_USED.
1003 2012-02-14  Jason Merrill  <jason@redhat.com>
1005         PR c++/39055
1006         * decl.c (local_variable_p_walkfn): Don't check DECL_ARTIFICIAL.
1008 2012-02-14  Jakub Jelinek  <jakub@redhat.com>
1010         PR c/52181
1011         * decl.c (duplicate_decls): If olddecl has bigger DECL_ALIGN than
1012         newdecl, copy DECL_ALIGN to newdecl and or DECL_USER_ALIGN bits.
1014 2012-02-07  Jason Merrill  <jason@redhat.com>
1016         PR c++/51675
1017         * semantics.c (cx_check_missing_mem_inits): Handle unions.
1018         Fix constexpr default constructor logic.
1020         PR c++/52035
1021         * pt.c (tsubst): Strip uninstantiated typedef.
1023 2012-02-06  Jason Merrill  <jason@redhat.com>
1025         PR c++/52088
1026         * cvt.c (build_expr_type_conversion): Check for template conversion.
1028 2012-01-31  Jason Merrill  <jason@redhat.com>
1030         PR c++/52043
1031         * cp-tree.h (PACK_EXPANSION_LOCAL_P): New.
1032         * pt.c (make_pack_expansion, tsubst_initializer_list): Set it.
1033         (tsubst_pack_expansion): Check it.
1035 2012-01-29  Paolo Carlini  <paolo.carlini@oracle.com>
1037         PR c++/51327
1038         * class.c (explain_non_literal_class): Correctly handle implicitly
1039         deleted constructors.
1041 2012-01-27  Jakub Jelinek  <jakub@redhat.com>
1043         PR c++/51852
1044         * pt.c (tsubst_pack_expansion): Delete and restore
1045         local_specialization whenever need_local_specialization, not just
1046         when saved_local_specializations is non-NULL.
1048 2012-01-26  Paolo Carlini  <paolo.carlini@oracle.com>
1050         PR c++/51370
1051         * error.c (dump_decl, [TEMPLATE_ID_EXPR]): Handle error_mark_node
1052         as TREE_OPERAND (t, 1).
1054 2012-01-24  Jason Merrill  <jason@redhat.com>
1056         PR c++/51917
1057         * decl.c (xref_basetypes): Check VEC_length instead of VEC_space.
1059         PR c++/51973
1060         * tree.c (called_fns_equal): Check template args.
1061         (cp_tree_equal): Call it.
1063 2012-01-24  Aldy Hernandez  <aldyh@redhat.com>
1064             Patrick Marlier  <patrick.marlier@gmail.com>
1066         PR c++/51928
1067         * class.c (set_method_tm_attributes): Use TARGET_THUNK instead of
1068         thunk for set_one_vmethod_tm_attributes.
1070 2012-01-24  Paolo Carlini  <paolo.carlini@oracle.com>
1072         PR c++/51223
1073         * call.c (build_over_call): Check for error_mark_node as
1074         TREE_VALUE when default arguments are processed.
1076 2012-01-23  Jason Merrill  <jason@redhat.com>
1078         PR c++/51930
1079         * decl2.c (determine_visibility): Check for visibility attribute
1080         on template specialization.
1082 2012-01-23  Paolo Carlini  <paolo.carlini@oracle.com>
1084         PR c++/51398
1085         * pt.c (parameter_of_template_p): Skip error_mark_node parameters.
1087 2012-01-23  Jason Merrill  <jason@redhat.com>
1089         PR c++/51925
1090         * class.c (add_method): Set OVL_USED for using-decls.
1091         * tree.c (ovl_scope): New.
1092         * cp-tree.h: Declare it.
1093         * parser.c (cp_parser_template_name): Use it.
1094         * semantics.c (baselink_for_fns): Likewise.
1095         * name-lookup.c (set_inherited_value_binding_p): Likewise.
1097 2012-01-20  Paolo Carlini  <paolo.carlini@oracle.com>
1099         PR c++/51402
1100         * pt.c (lookup_template_class_1): Check context returned by
1101         tsubst for error_mark_node.
1103 2012-01-19  Kai Tietz  <ktietz@redhat.com>
1105         PR c++/51344
1106         * decl2.c (save_template_attributes): Use merge_attributes
1107         instead of chaining up via TREE_CHAIN.
1109 2012-01-19  Jason Merrill  <jason@redhat.com>
1111         PR c++/51889
1112         * class.c (finish_struct): Call add_method here for function usings.
1113         * semantics.c (finish_member_declaration): Not here.
1115 2012-01-18  Paolo Carlini  <paolo.carlini@oracle.com>
1117         PR c++/51225
1118         * typeck2.c (store_init_value): Within a template guard
1119         cxx_constant_value with require_potential_constant_expression.
1120         * pt.c (convert_nontype_argument): Likewise.
1122 2012-01-16  Jakub Jelinek  <jakub@redhat.com>
1124         PR c++/51854
1125         * mangle.c (write_template_arg_literal): Handle complex.
1127 2012-01-16  Jason Merrill  <jason@redhat.com>
1129         PR c++/51827
1130         * mangle.c (mangle_decl): Don't mangle uninstantiated templates.
1132         PR c++/51868
1133         * typeck.c (build_static_cast_1): Handle bit-fields properly.
1135 2012-01-13  Ian Lance Taylor  <iant@google.com>
1137         PR c++/50012
1138         * typeck.c (enum_cast_to_int): New static function.
1139         (cp_build_binary_op): When handling warn_sign_compare, don't test
1140         for TREE_NO_WARNING.  Do call enum_cast_to_int.
1141         * call.c (avoid_sign_compare_warnings): Remove static function.
1142         (build_new_op_1): Don't call avoid_sign_compare_warnings.
1144 2012-01-13  Steven Bosscher  <steven@gcc.gnu.org>
1146         * decl2.c: Do not include tree-mudflap.h
1147         * semantics.c: Likewise.
1149 2012-01-13  Jason Merrill  <jason@redhat.com>
1151         PR c++/20681
1152         * semantics.c (finish_break_stmt): Avoid adding an unreachable
1153         BREAK_STMT.
1155         PR c++/51813
1156         * decl2.c (constrain_visibility): Clear DECL_VISIBILITY_SPECIFIED
1157         when reducing the visibility.
1159         PR c++/51620
1160         * class.c (build_vtbl_initializer): Use __cxa_deleted_virtual.
1162 2012-01-12  Jason Merrill  <jason@redhat.com>
1164         PR c++/51714
1165         * pt.c (value_dependent_expression_p): Treat STMT_EXPR as
1166         value-dependent.
1168 2012-01-13  Dodji Seketeli  <dodji@redhat.com>
1170         PR c++/51633
1171         * semantics.c (cp_parser_ctor_initializer_opt_and_function_body):
1172         Set the pointer to the last block of the constructor to the
1173         current statement.
1174         (build_constexpr_constructor_member_initializers): Get
1175         build_data_member_initialization a chance to deal with more
1176         statements before we choke.
1178 2012-01-12  Jason Merrill  <jason@redhat.com>
1180         PR c++/48051
1181         * mangle.c (write_expression): Mangle BASELINK scope if
1182         BASELINK_QUALIFIED_P.
1183         * search.c (adjust_result_of_qualified_name_lookup): Set
1184         BASELINK_QUALIFIED_P.
1185         * tree.c (cp_tree_equal) [BASELINK]: Compare BASELINK_QUALIFIED_P.
1186         * parser.c (cp_parser_postfix_dot_deref_expression): Don't call
1187         adjust_result_of_qualified_name_lookup for non-qualified names.
1189         PR c++/51403
1190         * pt.c (unify): Handle error_mark_node.
1192 2012-01-11  Jason Merrill  <jason@redhat.com>
1194         PR c++/51565
1195         * call.c (standard_conversion): For ptrmemfuncs, compare the
1196         static_fn_types.
1198         PR c++/51818
1199         * mangle.c (find_substitution): A type is only a substitution
1200         match if we're looking for a type.
1201         (write_nested_name): Use decl_mangling_context.
1203         * decl.c (decls_match): Assert that the arguments are decls.
1205         PR c++/51613
1206         * pt.c (resolve_overloaded_unification): Compare types with
1207         same_type_p, not decls_match.
1209 2012-01-10  Jason Merrill  <jason@redhat.com>
1211         PR c++/51614
1212         * class.c (build_base_path): Diagnose ambiguous base.
1214         PR c++/51433
1215         * semantics.c (cxx_eval_call_expression): Always retry previously
1216         non-constant expressions.
1218 2012-01-06  Jason Merrill  <jason@redhat.com>
1220         DR 686
1221         PR c++/47450
1222         * parser.c (cp_parser_new_expression): Set
1223         type_definition_forbidden_message.
1225         PR c++/6057
1226         PR c++/48051
1227         PR c++/50855
1228         PR c++/51322
1229         * mangle.c (write_expression): Support NEW_EXPR, DELETE_EXPR,
1230         THROW_EXPR, CONSTRUCTOR, OVERLOAD.  Fix PREINCREMENT_EXPR and
1231         PREDECREMENT_EXPR.
1232         (write_template_arg): Fix mangling of class-scope functions and
1233         argument packs.
1234         (mangle_decl): Update suggested -fabi-version argument.
1235         * operators.def: Add DOTSTAR_EXPR, REINTERPRET_CAST_EXPR,
1236         DYNAMIC_CAST_EXPR; correct CONST_CAST_EXPR, STATIC_CAST_EXPR.
1237         * tree.c (dependent_name): No longer static.
1238         * cp-tree.h: Declare it.
1239         * pt.c (unify): Defer handling of unconverted functions.
1241         * mangle.c (mangle_decl): Don't generate mangling aliases
1242         for maybe-in-charge [cd]tors.
1244         * error.c (dump_expr): Print type of CONSTRUCTOR.
1246 2012-01-05  Dodji Seketeli  <dodji@redhat.com>
1248         PR c++/51541
1249         * parser.c (cp_parser_alias_declaration): Get out early upon
1250         errors in the identifier or the attributes.
1252 2012-01-04  Paolo Carlini  <paolo.carlini@oracle.com>
1254         PR c++/51064
1255         * pt.c (tsubst_copy_and_build): Maybe set TREE_NO_WARNING on
1256         the tree returned by build_x_binary_op.
1258 2012-01-03  Paolo Carlini  <paolo.carlini@oracle.com>
1260         PR c++/51738
1261         * parser.c (cp_parser_postfix_open_square_expression): Handle
1262         postfix-expression [ braced-init-list ].
1264 2012-01-03  Paolo Carlini  <paolo.carlini@oracle.com>
1266         PR c++/29273
1267         * rtti.c (build_dynamic_cast_1): In case of T a pointer type,
1268         call decay_conversion on v.
1270 2012-01-03  Paolo Carlini  <paolo.carlini@oracle.com>
1272         PR c++/15867
1273         * decl.c (duplicate_decls): With -Wredundant-decls don't warn for
1274         declaration followed by specialization.
1276 2012-01-03  Jakub Jelinek  <jakub@redhat.com>
1278         PR c++/51669
1279         * semantics.c (finish_omp_clauses): Call fold_build_cleanup_point_expr
1280         on OMP_CLAUSE_{IF,FINAL,NUM_THREADS,SCHEDULE_CHUNK}_EXPR.
1282 2012-01-02  Jason Merrill  <jason@redhat.com>
1284         DR 1359
1285         PR c++/51675
1286         * method.c (walk_field_subobs): Don't check for uninitialized
1287         fields in a union.
1288         (synthesized_method_walk): Check here.
1290         DR 325
1291         PR c++/51666
1292         * parser.c (cp_parser_cache_defarg): Split out...
1293         (cp_parser_parameter_declaration): ...from here.
1294         (cp_parser_save_nsdmi): Use it.
1295         (cp_parser_cache_group): Remove CPP_COMMA support.
1297 2012-01-02  Dodji Seketeli  <dodji@redhat.com>
1299         PR c++/51462
1300         * semantics.c (cx_check_missing_mem_inits): Don't assert in case
1301         of error.
1303 2012-01-02  Paolo Carlini  <paolo.carlini@oracle.com>
1305         PR c++/20140
1306         * typeck2.c (digest_init_r): Use copy_init when initializing
1307         an array of chars.
1309 2012-01-01  Paolo Carlini  <paolo.carlini@oracle.com>
1311         PR c++/16603
1312         * decl.c (build_enumerator): Don't call perform_integral_promotions
1313         on the value.
1315 2012-01-01  Paolo Carlini  <paolo.carlini@oracle.com>
1317         PR c++/51379
1318         * typeck.c (build_reinterpret_cast_1): Implement resolution of
1319         DR 799.
1321 2012-01-01  Fabien ChĂȘne  <fabien@gcc.gnu.org>
1323         * parser.c (cp_parser_using_declaration): Add a warning about
1324         deprecated access declarations when no errors were encountered
1325         while parsing the access declaration. Save the first token in
1326         order to emit the warning at the right place.
1328 Copyright (C) 2012 Free Software Foundation, Inc.
1330 Copying and distribution of this file, with or without modification,
1331 are permitted in any medium without royalty provided the copyright
1332 notice and this notice are preserved.