OSDN Git Service

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