OSDN Git Service

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