OSDN Git Service

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