OSDN Git Service

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