OSDN Git Service

afe99a280a8500636754020b047a11ca1acfb0cb
[pf3gnuchains/gcc-fork.git] / gcc / cp / ChangeLog
1 2012-10-03  Jakub Jelinek  <jakub@redhat.com>
2
3         PR c++/54777
4         * semantics.c (cxx_eval_constant_expression) <case COMPOUND_EXPR>: If
5         not ignoring the second operand, pass the original second operand
6         and not one with stripped nops to cxx_eval_constant_expression.
7
8 2012-09-20  Release Manager
9
10         * GCC 4.7.2 released.
11
12 2012-09-14  Jason Merrill  <jason@redhat.com>
13
14         PR c++/53661
15         * typeck2.c (check_narrowing): Avoid false positives on conversion
16         from enumeral type.
17
18 2012-09-13  Jason Merrill  <jason@redhat.com>
19
20         PR c++/53839
21         * semantics.c (cxx_eval_indirect_ref): If we aren't looking for an
22         address, make sure the value is constant.
23
24 2012-09-13  Jason Merrill  <jason@redhat.com>
25
26         PR c++/54511
27         * pt.c (tsubst_decl) [VAR_DECL]: Handle DECL_ANON_UNION_VAR_P.
28
29 2012-09-13  Jason Merrill  <jason@redhat.com>
30
31         PR c++/53836
32         * pt.c (value_dependent_expression_p): A TREE_LIST initializer must
33         be dependent.
34
35 2012-09-10  Jason Merrill  <jason@redhat.com>
36
37         PR c++/54506
38         * decl.c (move_signature_fn_p): Split out from move_fn_p.
39         * method.c (process_subob_fn): Use it.
40         * cp-tree.h: Declare it.
41
42         PR c++/54341
43         PR c++/54253
44         * semantics.c (sort_constexpr_mem_initializers): New.
45         (build_constexpr_constructor_member_initializers): Use it.
46         (cx_check_missing_mem_inits): Skip artificial fields.
47         * init.c (expand_aggr_init_1): Don't zero out a class
48         with no data.
49
50         PR c++/54086
51         * decl.c (grokdeclarator): Allow const and constexpr together.
52
53 2012-08-31  Ollie Wild  <aaw@google.com>
54
55         PR c++/54197
56         * call.c (extend_ref_init_temps_1): Handle COMPOUND_EXPR trees.
57
58 2012-07-20  Jason Merrill  <jason@redhat.com>
59
60         PR c++/54038
61         * tree.c (build_cplus_array_type): Use build_cplus_array_type to build
62         canonical array type rather than mess with its TYPE_*_VARIANT.
63
64 2012-07-19  Jason Merrill  <jason@redhat.com>
65
66         PR c++/54026
67         * typeck.c (cp_apply_type_quals_to_decl): Check COMPLETE_TYPE_P.
68
69 2012-07-18  Jason Merrill  <jason@redhat.com>
70
71         * method.c (process_subob_fn): Make sure no_implicit_p is non-null
72         before trying to store through it.
73
74 2012-07-17  Jason Merrill  <jason@redhat.com>
75
76         PR c++/53995
77         * decl.c (finish_enum_value_list): Only call
78         insert_late_enum_def_into_classtype_sorted_fields in class scope.
79
80 2012-07-17  Jason Merrill  <jason@redhat.com>
81
82         PR c++/53989
83         * tree.c (build_cplus_array_type): Also add TYPE_CANONICAL
84         to the list of variants.
85
86 2012-07-17  Jason Merrill  <jason@redhat.com>
87
88         PR c++/53549
89         * parser.c (cp_parser_class_head): Call xref_basetypes here.
90         (cp_parser_class_specifier_1): Not here.
91         * pt.c (tsubst_decl) [USING_DECL]: Check uses_template_parms
92         as well as DECL_DEPENDENT_P.
93
94 2012-07-13  Jason Merrill  <jason@redhat.com>
95
96         PR c++/53953
97         * method.c (synthesized_method_walk): Initialize no_implicit_p sooner.
98
99 2012-07-10  Jason Merrill  <jason@redhat.com>
100
101         DR 1402
102         PR c++/53733
103         * cp-tree.h (FNDECL_SUPPRESS_IMPLICIT_DECL): New.
104         (struct lang_decl_fn): Add suppress_implicit_decl field.
105         * method.c (implicitly_declare_fn): Check it.
106         (process_subob_fn): Add no_implicit_p parm.
107         (walk_field_subobs, synthesized_method_walk): Likewise.
108         (maybe_explain_implicit_delete): Adjust.
109         (explain_implicit_non_constexpr): Adjust.
110
111         * method.c (synthesized_method_walk): Cleanups don't affect the EH
112         spec either.
113
114 2012-07-02  Jason Merrill  <jason@redhat.com>
115
116         PR c++/53816
117         * class.c (resolves_to_fixed_type_p): Check uses_template_parms
118         (current_function_decl) instead of processing_template_decl.
119
120         PR c++/53821
121         * semantics.c (maybe_add_lambda_conv_op): Don't set
122         DECL_INTERFACE_KNOWN.
123
124 2012-06-27  Fabien Chêne  <fabien@gcc.gnu.org>
125
126         PR c++/51214
127         * cp-tree.h (insert_late_enum_def_into_classtype_sorted_fields):
128         Declare.
129         * class.c (insert_into_classtype_sorted_fields): New.
130         (add_enum_fields_to_record_type): New.
131         (count_fields): Adjust the comment.
132         (add_fields_to_record_type): Likewise.
133         (finish_struct_1): Move the code that inserts the fields for the
134         sorted case, into insert_into_classtype_sorted_fields, and call
135         it.
136         (insert_late_enum_def_into_classtype_sorted_fields): Define.
137         * decl.c (finish_enum_value_list): Call
138         insert_late_enum_def_into_classtype_sorted_fields if a late enum
139         definition is encountered.
140
141 2012-06-25  Jason Merrill  <jason@redhat.com>
142
143         PR c++/53498
144         PR c++/53305
145         * pt.c (tsubst_pack_expansion): Copy before dummy tsubst.
146
147         PR c++/52988
148         * typeck.c (decay_conversion): Don't discard side-effects from
149         expressions of nullptr_t.
150
151         PR c++/53202
152         * semantics.c (build_data_member_initialization): Always keep
153         initializer for empty base.
154         (cxx_eval_bare_aggregate): Discard it here.
155
156 2012-06-25  Jakub Jelinek  <jakub@redhat.com>
157
158         PR c++/53594
159         * class.c (check_bases_and_members): Avoid -Wuninitialized
160         diagnostics for non-static const members or references if they
161         use NSDMI.
162
163 2012-06-19  Jason Merrill  <jason@redhat.com>
164
165         PR c++/53651
166         * name-lookup.c (constructor_name_p): Don't try to look at the
167         name of a DECLTYPE_TYPE.
168
169         Reapply:
170         PR c++/53137
171         * pt.c (instantiate_class_template_1): Set LAMBDA_EXPR_THIS_CAPTURE.
172         (instantiate_decl): Don't push_to_top_level for local class methods.
173         (instantiate_class_template_1): Or for local classes.
174
175         PR c++/53599
176         * pt.c (lookup_template_class_1): Use ts_global.
177
178 2012-06-14  Richard Guenther  <rguenther@suse.de>
179
180         Backport from mainline
181         2012-06-11  Richard Guenther  <rguenther@suse.de>
182
183         PR c++/53616
184         * mangle.c (write_array_type): Use double-ints for array domain
185         arithmetic.
186
187 2012-06-14  Richard Guenther  <rguenther@suse.de>
188
189         Backport from mainline
190         2012-06-06  Fabien Chêne  <fabien@gcc.gnu.org>
191
192         PR c++/52841
193         * parser.c (cp_parser_alias_declaration): Return earlier
194         if an error occured.
195
196 2012-06-14  Release Manager
197
198         * GCC 4.7.1 released.
199
200 2012-06-12  Jason Merrill  <jason@redhat.com>
201
202         PR c++/53599
203         Revert:
204         PR c++/53137
205         * pt.c (instantiate_class_template_1): Set LAMBDA_EXPR_THIS_CAPTURE.
206         (instantiate_decl): Don't push_to_top_level for local class methods.
207         (instantiate_class_template_1): Or for local classes.
208
209 2012-06-04  Paolo Carlini  <paolo.carlini@oracle.com>
210
211         PR c++/53524
212         * call.c (build_conditional_expr_1): Use OPT_Wenum_compare
213         to control enumeral mismatch in conditional expression too.
214
215 2012-06-01  Jason Merrill  <jason@redhat.com>
216
217         PR c++/52973
218         * parser.c (cp_parser_class_head): Apply attributes here.
219         * semantics.c (begin_class_definition): Not here.
220         * cp-tree.h: Adjust.
221
222         PR c++/52725
223         * parser.c (cp_parser_binary_expression): Bail early if we're parsing
224         tentatively and the LHS has a parse error.
225
226 2012-06-01  Jason Merrill  <jason@redhat.com>
227
228         PR c++/53137
229         * pt.c (instantiate_class_template_1): Set LAMBDA_EXPR_THIS_CAPTURE.
230         (instantiate_decl): Don't push_to_top_level for local class methods.
231         (instantiate_class_template_1): Or for local classes.
232
233         PR c++/53484
234         * pt.c (do_auto_deduction): Don't try to deduce from a
235         type-dependent initializer.
236
237 2012-05-31  Jason Merrill  <jason@redhat.com>
238
239         PR c++/53500
240         PR c++/52905
241         * call.c (joust): Handle comparing list and non-list ctors.
242
243 2012-05-30  Jason Merrill  <jason@redhat.com>
244
245         PR c++/53356
246         * tree.c (stabilize_init): Side effects make the init unstable.
247
248 2012-05-30  Jason Merrill  <jason@redhat.com>
249
250         PR c++/53220
251         * call.c (convert_like_real) [ck_list]: Take array address directly.
252         * typeck.c (decay_conversion): Reject decay of an array compound
253         literal.
254
255 2012-05-29  Paolo Carlini  <paolo.carlini@oracle.com>
256
257         PR c++/53491
258         * tree.c (stabilize_expr): Handle exp of void type.
259
260 2012-05-28  Paolo Carlini  <paolo.carlini@oracle.com>
261
262         PR c++/53503
263         * semantics.c (potential_constant_expression_1): Handle LTGT_EXPR.
264
265 2012-05-15  Alexandre Oliva  <aoliva@redhat.com>
266
267         PR c++/53209
268         * pt.c (tsubst_decl): Bail out if argvec is error_mark_node.
269
270 2012-05-10  Paolo Carlini  <paolo.carlini@oracle.com>
271
272         PR c++/53301
273         * decl.c (check_default_argument): Fix typo (POINTER_TYPE_P
274         instead of TYPE_PTR_P) in zero-as-null-pointer-constant warning.
275
276 2012-05-03  Paolo Carlini  <paolo.carlini@oracle.com>
277
278         PR c++/53186
279         * call.c (build_over_call): Handle final member functions
280         and class types.
281         (build_new_method_call_1): Do not handle here.
282
283 2012-04-17  Paolo Carlini  <paolo.carlini@oracle.com>
284
285         PR c++/53003
286         * parser.c (cp_parser_member_declaration): Check that
287         initializer_token_start is non null before dereferencing it.
288
289 2012-04-16  Jason Merrill  <jason@redhat.com>
290
291         PR c++/38543
292         * pt.c (determine_specialization): Instead of comparing the number
293         of parms, check that tsubst gives the right answer.
294
295         PR c++/50830
296         * pt.c (convert_template_argument): Handle template template
297         argument packs.
298
299         PR c++/50303
300         * pt.c (tsubst_pack_expansion): Use tsubst_expr for template
301         template parameters.
302
303 2012-04-15  Jason Merrill  <jason@redhat.com>
304
305         PR c++/52292
306         PR c++/52380
307         * pt.c (coerce_template_parms): Even if we aren't converting we
308         want to expand argument packs.
309
310 2012-04-15  Fabien Chêne  <fabien@gcc.gnu.org>
311
312         PR c++/52465
313         * parser.c (cp_parser_class_name): Call strip_using_decl and
314         return the target decl.
315         * name-lookup.c (strip_using_decl): Returns NULL_TREE if the decl
316         to be stripped is NULL_TREE.
317         (qualify_lookup): Call strip_using_decl and perform some checks on
318         the target decl.
319
320 2012-04-13  Jason Merrill  <jason@redhat.com>
321
322         PR c++/52824
323         * pt.c (any_pack_expanson_args_p): New.
324         (coerce_template_parms): Use it.
325
326 2012-04-11  Jason Merrill  <jason@redhat.com>
327
328         PR c++/52906
329         * decl.c (check_tag_decl): Don't complain about attributes if we
330         don't even have a type.
331
332 2012-04-05  Jason Merrill  <jason@redhat.com>
333
334         PR c++/52596
335         * tree.c (lvalue_kind): Treat a deferred access control SCOPE_REF
336         as an lvalue.
337
338 2012-04-03  Jason Merrill  <jason@redhat.com>
339
340         PR c++/52796
341         * pt.c (tsubst_initializer_list): A pack expansion with no elements
342         means value-initialization.
343
344 2012-03-29  Meador Inge  <meadori@codesourcery.com>
345
346         PR c++/52672
347         * semantics.c (cxx_fold_indirect_ref): Don't attempt to fold
348         stripped child trees that are not pointer types.
349
350 2012-03-29  Paolo Carlini  <paolo.carlini@oracle.com>
351
352         PR c++/52718
353         * decl.c (check_default_argument): With -Wzero-as-null-pointer-constant
354         warn for a zero as null pointer constant default argument.
355
356 2012-03-29  Jason Merrill  <jason@redhat.com>
357
358         PR c++/52685
359         * tree.c (copy_binfo): Handle BINFO_DEPENDENT_BASE_P.
360
361 2012-03-29  Jakub Jelinek  <jakub@redhat.com>
362
363         PR c++/52759
364         * decl.c (start_decl): Don't call maybe_apply_pragma_weak
365         if processing_template_decl.
366
367 2012-03-29  Jason Merrill  <jason@redhat.com>
368
369         PR c++/52743
370         * call.c (compare_ics): Handle ck_aggr like ck_list.
371
372 2012-03-28  Jason Merrill  <jason@redhat.com>
373
374         PR c++/52746
375         * typeck.c (lookup_destructor): Clear BASELINK_QUALIFIED_P if
376         we didn't get an explicit scope.
377         * pt.c (tsubst_baselink): Likewise.
378
379 2012-03-22  Paolo Carlini  <paolo.carlini@oracle.com>
380
381         PR c++/52487
382         * class.c (check_field_decls): Call literal_type_p only
383         on complete types.
384
385 2012-03-22  Jakub Jelinek  <jakub@redhat.com>
386
387         PR c++/52671
388         * decl.c (check_tag_decl): Only use CLASSTYPE_TEMPLATE_INSTANTIATION
389         on CLASS_TYPE_P types.
390
391 2012-03-22  Jason Merrill  <jason@redhat.com>
392
393         PR c++/52582
394         * method.c (implicitly_declare_fn): Set DECL_EXTERNAL.
395
396 2012-03-22  Jakub Jelinek  <jakub@redhat.com>
397
398         Backported from mainline
399         2012-03-14  Jakub Jelinek  <jakub@redhat.com>
400
401         PR c++/52521
402         * parser.c (lookup_literal_operator): Return fn only if
403         processed all arguments from args vector and argtypes is
404         void_list_node.
405
406 2012-03-22  Release Manager
407
408         * GCC 4.7.0 released.
409
410 2012-03-20  Jason Merrill  <jason@redhat.com>
411
412         * mangle.c (write_type): Handle 'auto'.
413         * init.c (build_new): Don't do auto deduction where it might
414         affect template mangling.
415
416 2012-03-07  Jason Merrill  <jason@redhat.com>
417
418         PR c++/52521
419         * mangle.c (write_literal_operator_name): The length comes after the
420         operator prefix.
421
422 2012-02-29  Jason Merrill  <jason@redhat.com>
423
424         PR c++/51930
425         * decl.c (check_tag_decl): Move warning for misplaced attributes here.
426         (shadow_tag): From here.
427         * parser.c (cp_parser_explicit_instantiation): Don't warn here.
428
429 2012-02-21  Jakub Jelinek  <jakub@redhat.com>
430
431         PR c++/52312
432         * typeck.c (check_literal_operator_args): Initialize *long_double_p
433         and *long_long_unsigned_p even if processing_template_decl.
434
435 2012-02-16  Jason Merrill  <jason@redhat.com>
436
437         PR c++/52248
438         * decl.c (define_label): Use timevar_cond_start/stop.
439
440 2012-02-16  Fabien Chêne  <fabien@gcc.gnu.org>
441
442         PR c++/52126
443         * decl.c (xref_basetypes): call dependent_scope_p instead of
444         dependent_type_p.
445
446 2012-02-16  Jason Merrill  <jason@redhat.com>
447
448         PR c++/51415
449         * error.c (dump_expr): Handle lambda closures specifically.
450
451 2012-02-14  Jason Merrill  <jason@redhat.com>
452
453         * parser.c (cp_parser_explicit_instantiation): Give a warning
454         for ignored attributes on explicit class instantiation.
455
456 2012-02-14  Jakub Jelinek  <jakub@redhat.com>
457
458         PR c++/52247
459         * pt.c (tsubst_copy_asm_operands): For LABEL_DECL values call
460         lookup_label on label's name and set TREE_USED.
461
462 2012-02-14  Jason Merrill  <jason@redhat.com>
463
464         PR c++/39055
465         * decl.c (local_variable_p_walkfn): Don't check DECL_ARTIFICIAL.
466
467 2012-02-14  Jakub Jelinek  <jakub@redhat.com>
468
469         PR c/52181
470         * decl.c (duplicate_decls): If olddecl has bigger DECL_ALIGN than
471         newdecl, copy DECL_ALIGN to newdecl and or DECL_USER_ALIGN bits.
472
473 2012-02-07  Jason Merrill  <jason@redhat.com>
474
475         PR c++/51675
476         * semantics.c (cx_check_missing_mem_inits): Handle unions.
477         Fix constexpr default constructor logic.
478
479         PR c++/52035
480         * pt.c (tsubst): Strip uninstantiated typedef.
481
482 2012-02-06  Jason Merrill  <jason@redhat.com>
483
484         PR c++/52088
485         * cvt.c (build_expr_type_conversion): Check for template conversion.
486
487 2012-01-31  Jason Merrill  <jason@redhat.com>
488
489         PR c++/52043
490         * cp-tree.h (PACK_EXPANSION_LOCAL_P): New.
491         * pt.c (make_pack_expansion, tsubst_initializer_list): Set it.
492         (tsubst_pack_expansion): Check it.
493
494 2012-01-29  Paolo Carlini  <paolo.carlini@oracle.com>
495
496         PR c++/51327
497         * class.c (explain_non_literal_class): Correctly handle implicitly
498         deleted constructors.
499
500 2012-01-27  Jakub Jelinek  <jakub@redhat.com>
501
502         PR c++/51852
503         * pt.c (tsubst_pack_expansion): Delete and restore
504         local_specialization whenever need_local_specialization, not just
505         when saved_local_specializations is non-NULL.
506
507 2012-01-26  Paolo Carlini  <paolo.carlini@oracle.com>
508
509         PR c++/51370
510         * error.c (dump_decl, [TEMPLATE_ID_EXPR]): Handle error_mark_node
511         as TREE_OPERAND (t, 1).
512
513 2012-01-24  Jason Merrill  <jason@redhat.com>
514
515         PR c++/51917
516         * decl.c (xref_basetypes): Check VEC_length instead of VEC_space.
517
518         PR c++/51973
519         * tree.c (called_fns_equal): Check template args.
520         (cp_tree_equal): Call it.
521
522 2012-01-24  Aldy Hernandez  <aldyh@redhat.com>
523             Patrick Marlier  <patrick.marlier@gmail.com>
524
525         PR c++/51928
526         * class.c (set_method_tm_attributes): Use TARGET_THUNK instead of
527         thunk for set_one_vmethod_tm_attributes.
528
529 2012-01-24  Paolo Carlini  <paolo.carlini@oracle.com>
530
531         PR c++/51223
532         * call.c (build_over_call): Check for error_mark_node as
533         TREE_VALUE when default arguments are processed.
534
535 2012-01-23  Jason Merrill  <jason@redhat.com>
536
537         PR c++/51930
538         * decl2.c (determine_visibility): Check for visibility attribute
539         on template specialization.
540
541 2012-01-23  Paolo Carlini  <paolo.carlini@oracle.com>
542
543         PR c++/51398
544         * pt.c (parameter_of_template_p): Skip error_mark_node parameters.
545
546 2012-01-23  Jason Merrill  <jason@redhat.com>
547
548         PR c++/51925
549         * class.c (add_method): Set OVL_USED for using-decls.
550         * tree.c (ovl_scope): New.
551         * cp-tree.h: Declare it.
552         * parser.c (cp_parser_template_name): Use it.
553         * semantics.c (baselink_for_fns): Likewise.
554         * name-lookup.c (set_inherited_value_binding_p): Likewise.
555
556 2012-01-20  Paolo Carlini  <paolo.carlini@oracle.com>
557
558         PR c++/51402
559         * pt.c (lookup_template_class_1): Check context returned by
560         tsubst for error_mark_node.
561
562 2012-01-19  Kai Tietz  <ktietz@redhat.com>
563
564         PR c++/51344
565         * decl2.c (save_template_attributes): Use merge_attributes
566         instead of chaining up via TREE_CHAIN.
567
568 2012-01-19  Jason Merrill  <jason@redhat.com>
569
570         PR c++/51889
571         * class.c (finish_struct): Call add_method here for function usings.
572         * semantics.c (finish_member_declaration): Not here.
573
574 2012-01-18  Paolo Carlini  <paolo.carlini@oracle.com>
575
576         PR c++/51225
577         * typeck2.c (store_init_value): Within a template guard
578         cxx_constant_value with require_potential_constant_expression.
579         * pt.c (convert_nontype_argument): Likewise.
580
581 2012-01-16  Jakub Jelinek  <jakub@redhat.com>
582
583         PR c++/51854
584         * mangle.c (write_template_arg_literal): Handle complex.
585
586 2012-01-16  Jason Merrill  <jason@redhat.com>
587
588         PR c++/51827
589         * mangle.c (mangle_decl): Don't mangle uninstantiated templates.
590
591         PR c++/51868
592         * typeck.c (build_static_cast_1): Handle bit-fields properly.
593
594 2012-01-13  Ian Lance Taylor  <iant@google.com>
595
596         PR c++/50012
597         * typeck.c (enum_cast_to_int): New static function.
598         (cp_build_binary_op): When handling warn_sign_compare, don't test
599         for TREE_NO_WARNING.  Do call enum_cast_to_int.
600         * call.c (avoid_sign_compare_warnings): Remove static function.
601         (build_new_op_1): Don't call avoid_sign_compare_warnings.
602
603 2012-01-13  Steven Bosscher  <steven@gcc.gnu.org>
604
605         * decl2.c: Do not include tree-mudflap.h
606         * semantics.c: Likewise.
607
608 2012-01-13  Jason Merrill  <jason@redhat.com>
609
610         PR c++/20681
611         * semantics.c (finish_break_stmt): Avoid adding an unreachable
612         BREAK_STMT.
613
614         PR c++/51813
615         * decl2.c (constrain_visibility): Clear DECL_VISIBILITY_SPECIFIED
616         when reducing the visibility.
617
618         PR c++/51620
619         * class.c (build_vtbl_initializer): Use __cxa_deleted_virtual.
620
621 2012-01-12  Jason Merrill  <jason@redhat.com>
622
623         PR c++/51714
624         * pt.c (value_dependent_expression_p): Treat STMT_EXPR as
625         value-dependent.
626
627 2012-01-13  Dodji Seketeli  <dodji@redhat.com>
628
629         PR c++/51633
630         * semantics.c (cp_parser_ctor_initializer_opt_and_function_body):
631         Set the pointer to the last block of the constructor to the
632         current statement.
633         (build_constexpr_constructor_member_initializers): Get
634         build_data_member_initialization a chance to deal with more
635         statements before we choke.
636
637 2012-01-12  Jason Merrill  <jason@redhat.com>
638
639         PR c++/48051
640         * mangle.c (write_expression): Mangle BASELINK scope if
641         BASELINK_QUALIFIED_P.
642         * search.c (adjust_result_of_qualified_name_lookup): Set
643         BASELINK_QUALIFIED_P.
644         * tree.c (cp_tree_equal) [BASELINK]: Compare BASELINK_QUALIFIED_P.
645         * parser.c (cp_parser_postfix_dot_deref_expression): Don't call
646         adjust_result_of_qualified_name_lookup for non-qualified names.
647
648         PR c++/51403
649         * pt.c (unify): Handle error_mark_node.
650
651 2012-01-11  Jason Merrill  <jason@redhat.com>
652
653         PR c++/51565
654         * call.c (standard_conversion): For ptrmemfuncs, compare the
655         static_fn_types.
656
657         PR c++/51818
658         * mangle.c (find_substitution): A type is only a substitution
659         match if we're looking for a type.
660         (write_nested_name): Use decl_mangling_context.
661
662         * decl.c (decls_match): Assert that the arguments are decls.
663
664         PR c++/51613
665         * pt.c (resolve_overloaded_unification): Compare types with
666         same_type_p, not decls_match.
667
668 2012-01-10  Jason Merrill  <jason@redhat.com>
669
670         PR c++/51614
671         * class.c (build_base_path): Diagnose ambiguous base.
672
673         PR c++/51433
674         * semantics.c (cxx_eval_call_expression): Always retry previously
675         non-constant expressions.
676
677 2012-01-06  Jason Merrill  <jason@redhat.com>
678
679         DR 686
680         PR c++/47450
681         * parser.c (cp_parser_new_expression): Set
682         type_definition_forbidden_message.
683
684         PR c++/6057
685         PR c++/48051
686         PR c++/50855
687         PR c++/51322
688         * mangle.c (write_expression): Support NEW_EXPR, DELETE_EXPR,
689         THROW_EXPR, CONSTRUCTOR, OVERLOAD.  Fix PREINCREMENT_EXPR and
690         PREDECREMENT_EXPR.
691         (write_template_arg): Fix mangling of class-scope functions and
692         argument packs.
693         (mangle_decl): Update suggested -fabi-version argument.
694         * operators.def: Add DOTSTAR_EXPR, REINTERPRET_CAST_EXPR,
695         DYNAMIC_CAST_EXPR; correct CONST_CAST_EXPR, STATIC_CAST_EXPR.
696         * tree.c (dependent_name): No longer static.
697         * cp-tree.h: Declare it.
698         * pt.c (unify): Defer handling of unconverted functions.
699
700         * mangle.c (mangle_decl): Don't generate mangling aliases
701         for maybe-in-charge [cd]tors.
702
703         * error.c (dump_expr): Print type of CONSTRUCTOR.
704
705 2012-01-05  Dodji Seketeli  <dodji@redhat.com>
706
707         PR c++/51541
708         * parser.c (cp_parser_alias_declaration): Get out early upon
709         errors in the identifier or the attributes.
710
711 2012-01-04  Paolo Carlini  <paolo.carlini@oracle.com>
712
713         PR c++/51064
714         * pt.c (tsubst_copy_and_build): Maybe set TREE_NO_WARNING on
715         the tree returned by build_x_binary_op.
716
717 2012-01-03  Paolo Carlini  <paolo.carlini@oracle.com>
718
719         PR c++/51738
720         * parser.c (cp_parser_postfix_open_square_expression): Handle
721         postfix-expression [ braced-init-list ].
722
723 2012-01-03  Paolo Carlini  <paolo.carlini@oracle.com>
724
725         PR c++/29273
726         * rtti.c (build_dynamic_cast_1): In case of T a pointer type,
727         call decay_conversion on v.
728
729 2012-01-03  Paolo Carlini  <paolo.carlini@oracle.com>
730
731         PR c++/15867
732         * decl.c (duplicate_decls): With -Wredundant-decls don't warn for
733         declaration followed by specialization.
734
735 2012-01-03  Jakub Jelinek  <jakub@redhat.com>
736
737         PR c++/51669
738         * semantics.c (finish_omp_clauses): Call fold_build_cleanup_point_expr
739         on OMP_CLAUSE_{IF,FINAL,NUM_THREADS,SCHEDULE_CHUNK}_EXPR.
740
741 2012-01-02  Jason Merrill  <jason@redhat.com>
742
743         DR 1359
744         PR c++/51675
745         * method.c (walk_field_subobs): Don't check for uninitialized
746         fields in a union.
747         (synthesized_method_walk): Check here.
748
749         DR 325
750         PR c++/51666
751         * parser.c (cp_parser_cache_defarg): Split out...
752         (cp_parser_parameter_declaration): ...from here.
753         (cp_parser_save_nsdmi): Use it.
754         (cp_parser_cache_group): Remove CPP_COMMA support.
755
756 2012-01-02  Dodji Seketeli  <dodji@redhat.com>
757
758         PR c++/51462
759         * semantics.c (cx_check_missing_mem_inits): Don't assert in case
760         of error.
761
762 2012-01-02  Paolo Carlini  <paolo.carlini@oracle.com>
763
764         PR c++/20140
765         * typeck2.c (digest_init_r): Use copy_init when initializing
766         an array of chars.
767
768 2012-01-01  Paolo Carlini  <paolo.carlini@oracle.com>
769
770         PR c++/16603
771         * decl.c (build_enumerator): Don't call perform_integral_promotions
772         on the value.
773
774 2012-01-01  Paolo Carlini  <paolo.carlini@oracle.com>
775
776         PR c++/51379
777         * typeck.c (build_reinterpret_cast_1): Implement resolution of
778         DR 799.
779
780 2012-01-01  Fabien Chêne  <fabien@gcc.gnu.org>
781
782         * parser.c (cp_parser_using_declaration): Add a warning about
783         deprecated access declarations when no errors were encountered
784         while parsing the access declaration. Save the first token in
785         order to emit the warning at the right place.
786 \f
787 Copyright (C) 2012 Free Software Foundation, Inc.
788
789 Copying and distribution of this file, with or without modification,
790 are permitted in any medium without royalty provided the copyright
791 notice and this notice are preserved.