OSDN Git Service

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