OSDN Git Service

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