OSDN Git Service

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