OSDN Git Service

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