OSDN Git Service

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