OSDN Git Service

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