OSDN Git Service

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