OSDN Git Service

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