OSDN Git Service

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