OSDN Git Service

2d31ce78bbae223a7025e35e80ceb7f5d90800f7
[pf3gnuchains/gcc-fork.git] / gcc / cp / ChangeLog
1 2012-06-14  Release Manager
2
3         * GCC 4.7.1 released.
4
5 2012-06-12  Jason Merrill  <jason@redhat.com>
6
7         PR c++/53599
8         Revert:
9         PR c++/53137
10         * pt.c (instantiate_class_template_1): Set LAMBDA_EXPR_THIS_CAPTURE.
11         (instantiate_decl): Don't push_to_top_level for local class methods.
12         (instantiate_class_template_1): Or for local classes.
13
14 2012-06-04  Paolo Carlini  <paolo.carlini@oracle.com>
15
16         PR c++/53524
17         * call.c (build_conditional_expr_1): Use OPT_Wenum_compare
18         to control enumeral mismatch in conditional expression too.
19
20 2012-06-01  Jason Merrill  <jason@redhat.com>
21
22         PR c++/52973
23         * parser.c (cp_parser_class_head): Apply attributes here.
24         * semantics.c (begin_class_definition): Not here.
25         * cp-tree.h: Adjust.
26
27         PR c++/52725
28         * parser.c (cp_parser_binary_expression): Bail early if we're parsing
29         tentatively and the LHS has a parse error.
30
31 2012-06-01  Jason Merrill  <jason@redhat.com>
32
33         PR c++/53137
34         * pt.c (instantiate_class_template_1): Set LAMBDA_EXPR_THIS_CAPTURE.
35         (instantiate_decl): Don't push_to_top_level for local class methods.
36         (instantiate_class_template_1): Or for local classes.
37
38         PR c++/53484
39         * pt.c (do_auto_deduction): Don't try to deduce from a
40         type-dependent initializer.
41
42 2012-05-31  Jason Merrill  <jason@redhat.com>
43
44         PR c++/53500
45         PR c++/52905
46         * call.c (joust): Handle comparing list and non-list ctors.
47
48 2012-05-30  Jason Merrill  <jason@redhat.com>
49
50         PR c++/53356
51         * tree.c (stabilize_init): Side effects make the init unstable.
52
53 2012-05-30  Jason Merrill  <jason@redhat.com>
54
55         PR c++/53220
56         * call.c (convert_like_real) [ck_list]: Take array address directly.
57         * typeck.c (decay_conversion): Reject decay of an array compound
58         literal.
59
60 2012-05-29  Paolo Carlini  <paolo.carlini@oracle.com>
61
62         PR c++/53491
63         * tree.c (stabilize_expr): Handle exp of void type.
64
65 2012-05-28  Paolo Carlini  <paolo.carlini@oracle.com>
66
67         PR c++/53503
68         * semantics.c (potential_constant_expression_1): Handle LTGT_EXPR.
69
70 2012-05-15  Alexandre Oliva  <aoliva@redhat.com>
71
72         PR c++/53209
73         * pt.c (tsubst_decl): Bail out if argvec is error_mark_node.
74
75 2012-05-10  Paolo Carlini  <paolo.carlini@oracle.com>
76
77         PR c++/53301
78         * decl.c (check_default_argument): Fix typo (POINTER_TYPE_P
79         instead of TYPE_PTR_P) in zero-as-null-pointer-constant warning.
80
81 2012-05-03  Paolo Carlini  <paolo.carlini@oracle.com>
82
83         PR c++/53186
84         * call.c (build_over_call): Handle final member functions
85         and class types.
86         (build_new_method_call_1): Do not handle here.
87
88 2012-04-17  Paolo Carlini  <paolo.carlini@oracle.com>
89
90         PR c++/53003
91         * parser.c (cp_parser_member_declaration): Check that
92         initializer_token_start is non null before dereferencing it.
93
94 2012-04-16  Jason Merrill  <jason@redhat.com>
95
96         PR c++/38543
97         * pt.c (determine_specialization): Instead of comparing the number
98         of parms, check that tsubst gives the right answer.
99
100         PR c++/50830
101         * pt.c (convert_template_argument): Handle template template
102         argument packs.
103
104         PR c++/50303
105         * pt.c (tsubst_pack_expansion): Use tsubst_expr for template
106         template parameters.
107
108 2012-04-15  Jason Merrill  <jason@redhat.com>
109
110         PR c++/52292
111         PR c++/52380
112         * pt.c (coerce_template_parms): Even if we aren't converting we
113         want to expand argument packs.
114
115 2012-04-15  Fabien Chêne  <fabien@gcc.gnu.org>
116
117         PR c++/52465
118         * parser.c (cp_parser_class_name): Call strip_using_decl and
119         return the target decl.
120         * name-lookup.c (strip_using_decl): Returns NULL_TREE if the decl
121         to be stripped is NULL_TREE.
122         (qualify_lookup): Call strip_using_decl and perform some checks on
123         the target decl.
124
125 2012-04-13  Jason Merrill  <jason@redhat.com>
126
127         PR c++/52824
128         * pt.c (any_pack_expanson_args_p): New.
129         (coerce_template_parms): Use it.
130
131 2012-04-11  Jason Merrill  <jason@redhat.com>
132
133         PR c++/52906
134         * decl.c (check_tag_decl): Don't complain about attributes if we
135         don't even have a type.
136
137 2012-04-05  Jason Merrill  <jason@redhat.com>
138
139         PR c++/52596
140         * tree.c (lvalue_kind): Treat a deferred access control SCOPE_REF
141         as an lvalue.
142
143 2012-04-03  Jason Merrill  <jason@redhat.com>
144
145         PR c++/52796
146         * pt.c (tsubst_initializer_list): A pack expansion with no elements
147         means value-initialization.
148
149 2012-03-29  Meador Inge  <meadori@codesourcery.com>
150
151         PR c++/52672
152         * semantics.c (cxx_fold_indirect_ref): Don't attempt to fold
153         stripped child trees that are not pointer types.
154
155 2012-03-29  Paolo Carlini  <paolo.carlini@oracle.com>
156
157         PR c++/52718
158         * decl.c (check_default_argument): With -Wzero-as-null-pointer-constant
159         warn for a zero as null pointer constant default argument.
160
161 2012-03-29  Jason Merrill  <jason@redhat.com>
162
163         PR c++/52685
164         * tree.c (copy_binfo): Handle BINFO_DEPENDENT_BASE_P.
165
166 2012-03-29  Jakub Jelinek  <jakub@redhat.com>
167
168         PR c++/52759
169         * decl.c (start_decl): Don't call maybe_apply_pragma_weak
170         if processing_template_decl.
171
172 2012-03-29  Jason Merrill  <jason@redhat.com>
173
174         PR c++/52743
175         * call.c (compare_ics): Handle ck_aggr like ck_list.
176
177 2012-03-28  Jason Merrill  <jason@redhat.com>
178
179         PR c++/52746
180         * typeck.c (lookup_destructor): Clear BASELINK_QUALIFIED_P if
181         we didn't get an explicit scope.
182         * pt.c (tsubst_baselink): Likewise.
183
184 2012-03-22  Paolo Carlini  <paolo.carlini@oracle.com>
185
186         PR c++/52487
187         * class.c (check_field_decls): Call literal_type_p only
188         on complete types.
189
190 2012-03-22  Jakub Jelinek  <jakub@redhat.com>
191
192         PR c++/52671
193         * decl.c (check_tag_decl): Only use CLASSTYPE_TEMPLATE_INSTANTIATION
194         on CLASS_TYPE_P types.
195
196 2012-03-22  Jason Merrill  <jason@redhat.com>
197
198         PR c++/52582
199         * method.c (implicitly_declare_fn): Set DECL_EXTERNAL.
200
201 2012-03-22  Jakub Jelinek  <jakub@redhat.com>
202
203         Backported from mainline
204         2012-03-14  Jakub Jelinek  <jakub@redhat.com>
205
206         PR c++/52521
207         * parser.c (lookup_literal_operator): Return fn only if
208         processed all arguments from args vector and argtypes is
209         void_list_node.
210
211 2012-03-22  Release Manager
212
213         * GCC 4.7.0 released.
214
215 2012-03-20  Jason Merrill  <jason@redhat.com>
216
217         * mangle.c (write_type): Handle 'auto'.
218         * init.c (build_new): Don't do auto deduction where it might
219         affect template mangling.
220
221 2012-03-07  Jason Merrill  <jason@redhat.com>
222
223         PR c++/52521
224         * mangle.c (write_literal_operator_name): The length comes after the
225         operator prefix.
226
227 2012-02-29  Jason Merrill  <jason@redhat.com>
228
229         PR c++/51930
230         * decl.c (check_tag_decl): Move warning for misplaced attributes here.
231         (shadow_tag): From here.
232         * parser.c (cp_parser_explicit_instantiation): Don't warn here.
233
234 2012-02-21  Jakub Jelinek  <jakub@redhat.com>
235
236         PR c++/52312
237         * typeck.c (check_literal_operator_args): Initialize *long_double_p
238         and *long_long_unsigned_p even if processing_template_decl.
239
240 2012-02-16  Jason Merrill  <jason@redhat.com>
241
242         PR c++/52248
243         * decl.c (define_label): Use timevar_cond_start/stop.
244
245 2012-02-16  Fabien Chêne  <fabien@gcc.gnu.org>
246
247         PR c++/52126
248         * decl.c (xref_basetypes): call dependent_scope_p instead of
249         dependent_type_p.
250
251 2012-02-16  Jason Merrill  <jason@redhat.com>
252
253         PR c++/51415
254         * error.c (dump_expr): Handle lambda closures specifically.
255
256 2012-02-14  Jason Merrill  <jason@redhat.com>
257
258         * parser.c (cp_parser_explicit_instantiation): Give a warning
259         for ignored attributes on explicit class instantiation.
260
261 2012-02-14  Jakub Jelinek  <jakub@redhat.com>
262
263         PR c++/52247
264         * pt.c (tsubst_copy_asm_operands): For LABEL_DECL values call
265         lookup_label on label's name and set TREE_USED.
266
267 2012-02-14  Jason Merrill  <jason@redhat.com>
268
269         PR c++/39055
270         * decl.c (local_variable_p_walkfn): Don't check DECL_ARTIFICIAL.
271
272 2012-02-14  Jakub Jelinek  <jakub@redhat.com>
273
274         PR c/52181
275         * decl.c (duplicate_decls): If olddecl has bigger DECL_ALIGN than
276         newdecl, copy DECL_ALIGN to newdecl and or DECL_USER_ALIGN bits.
277
278 2012-02-07  Jason Merrill  <jason@redhat.com>
279
280         PR c++/51675
281         * semantics.c (cx_check_missing_mem_inits): Handle unions.
282         Fix constexpr default constructor logic.
283
284         PR c++/52035
285         * pt.c (tsubst): Strip uninstantiated typedef.
286
287 2012-02-06  Jason Merrill  <jason@redhat.com>
288
289         PR c++/52088
290         * cvt.c (build_expr_type_conversion): Check for template conversion.
291
292 2012-01-31  Jason Merrill  <jason@redhat.com>
293
294         PR c++/52043
295         * cp-tree.h (PACK_EXPANSION_LOCAL_P): New.
296         * pt.c (make_pack_expansion, tsubst_initializer_list): Set it.
297         (tsubst_pack_expansion): Check it.
298
299 2012-01-29  Paolo Carlini  <paolo.carlini@oracle.com>
300
301         PR c++/51327
302         * class.c (explain_non_literal_class): Correctly handle implicitly
303         deleted constructors.
304
305 2012-01-27  Jakub Jelinek  <jakub@redhat.com>
306
307         PR c++/51852
308         * pt.c (tsubst_pack_expansion): Delete and restore
309         local_specialization whenever need_local_specialization, not just
310         when saved_local_specializations is non-NULL.
311
312 2012-01-26  Paolo Carlini  <paolo.carlini@oracle.com>
313
314         PR c++/51370
315         * error.c (dump_decl, [TEMPLATE_ID_EXPR]): Handle error_mark_node
316         as TREE_OPERAND (t, 1).
317
318 2012-01-24  Jason Merrill  <jason@redhat.com>
319
320         PR c++/51917
321         * decl.c (xref_basetypes): Check VEC_length instead of VEC_space.
322
323         PR c++/51973
324         * tree.c (called_fns_equal): Check template args.
325         (cp_tree_equal): Call it.
326
327 2012-01-24  Aldy Hernandez  <aldyh@redhat.com>
328             Patrick Marlier  <patrick.marlier@gmail.com>
329
330         PR c++/51928
331         * class.c (set_method_tm_attributes): Use TARGET_THUNK instead of
332         thunk for set_one_vmethod_tm_attributes.
333
334 2012-01-24  Paolo Carlini  <paolo.carlini@oracle.com>
335
336         PR c++/51223
337         * call.c (build_over_call): Check for error_mark_node as
338         TREE_VALUE when default arguments are processed.
339
340 2012-01-23  Jason Merrill  <jason@redhat.com>
341
342         PR c++/51930
343         * decl2.c (determine_visibility): Check for visibility attribute
344         on template specialization.
345
346 2012-01-23  Paolo Carlini  <paolo.carlini@oracle.com>
347
348         PR c++/51398
349         * pt.c (parameter_of_template_p): Skip error_mark_node parameters.
350
351 2012-01-23  Jason Merrill  <jason@redhat.com>
352
353         PR c++/51925
354         * class.c (add_method): Set OVL_USED for using-decls.
355         * tree.c (ovl_scope): New.
356         * cp-tree.h: Declare it.
357         * parser.c (cp_parser_template_name): Use it.
358         * semantics.c (baselink_for_fns): Likewise.
359         * name-lookup.c (set_inherited_value_binding_p): Likewise.
360
361 2012-01-20  Paolo Carlini  <paolo.carlini@oracle.com>
362
363         PR c++/51402
364         * pt.c (lookup_template_class_1): Check context returned by
365         tsubst for error_mark_node.
366
367 2012-01-19  Kai Tietz  <ktietz@redhat.com>
368
369         PR c++/51344
370         * decl2.c (save_template_attributes): Use merge_attributes
371         instead of chaining up via TREE_CHAIN.
372
373 2012-01-19  Jason Merrill  <jason@redhat.com>
374
375         PR c++/51889
376         * class.c (finish_struct): Call add_method here for function usings.
377         * semantics.c (finish_member_declaration): Not here.
378
379 2012-01-18  Paolo Carlini  <paolo.carlini@oracle.com>
380
381         PR c++/51225
382         * typeck2.c (store_init_value): Within a template guard
383         cxx_constant_value with require_potential_constant_expression.
384         * pt.c (convert_nontype_argument): Likewise.
385
386 2012-01-16  Jakub Jelinek  <jakub@redhat.com>
387
388         PR c++/51854
389         * mangle.c (write_template_arg_literal): Handle complex.
390
391 2012-01-16  Jason Merrill  <jason@redhat.com>
392
393         PR c++/51827
394         * mangle.c (mangle_decl): Don't mangle uninstantiated templates.
395
396         PR c++/51868
397         * typeck.c (build_static_cast_1): Handle bit-fields properly.
398
399 2012-01-13  Ian Lance Taylor  <iant@google.com>
400
401         PR c++/50012
402         * typeck.c (enum_cast_to_int): New static function.
403         (cp_build_binary_op): When handling warn_sign_compare, don't test
404         for TREE_NO_WARNING.  Do call enum_cast_to_int.
405         * call.c (avoid_sign_compare_warnings): Remove static function.
406         (build_new_op_1): Don't call avoid_sign_compare_warnings.
407
408 2012-01-13  Steven Bosscher  <steven@gcc.gnu.org>
409
410         * decl2.c: Do not include tree-mudflap.h
411         * semantics.c: Likewise.
412
413 2012-01-13  Jason Merrill  <jason@redhat.com>
414
415         PR c++/20681
416         * semantics.c (finish_break_stmt): Avoid adding an unreachable
417         BREAK_STMT.
418
419         PR c++/51813
420         * decl2.c (constrain_visibility): Clear DECL_VISIBILITY_SPECIFIED
421         when reducing the visibility.
422
423         PR c++/51620
424         * class.c (build_vtbl_initializer): Use __cxa_deleted_virtual.
425
426 2012-01-12  Jason Merrill  <jason@redhat.com>
427
428         PR c++/51714
429         * pt.c (value_dependent_expression_p): Treat STMT_EXPR as
430         value-dependent.
431
432 2012-01-13  Dodji Seketeli  <dodji@redhat.com>
433
434         PR c++/51633
435         * semantics.c (cp_parser_ctor_initializer_opt_and_function_body):
436         Set the pointer to the last block of the constructor to the
437         current statement.
438         (build_constexpr_constructor_member_initializers): Get
439         build_data_member_initialization a chance to deal with more
440         statements before we choke.
441
442 2012-01-12  Jason Merrill  <jason@redhat.com>
443
444         PR c++/48051
445         * mangle.c (write_expression): Mangle BASELINK scope if
446         BASELINK_QUALIFIED_P.
447         * search.c (adjust_result_of_qualified_name_lookup): Set
448         BASELINK_QUALIFIED_P.
449         * tree.c (cp_tree_equal) [BASELINK]: Compare BASELINK_QUALIFIED_P.
450         * parser.c (cp_parser_postfix_dot_deref_expression): Don't call
451         adjust_result_of_qualified_name_lookup for non-qualified names.
452
453         PR c++/51403
454         * pt.c (unify): Handle error_mark_node.
455
456 2012-01-11  Jason Merrill  <jason@redhat.com>
457
458         PR c++/51565
459         * call.c (standard_conversion): For ptrmemfuncs, compare the
460         static_fn_types.
461
462         PR c++/51818
463         * mangle.c (find_substitution): A type is only a substitution
464         match if we're looking for a type.
465         (write_nested_name): Use decl_mangling_context.
466
467         * decl.c (decls_match): Assert that the arguments are decls.
468
469         PR c++/51613
470         * pt.c (resolve_overloaded_unification): Compare types with
471         same_type_p, not decls_match.
472
473 2012-01-10  Jason Merrill  <jason@redhat.com>
474
475         PR c++/51614
476         * class.c (build_base_path): Diagnose ambiguous base.
477
478         PR c++/51433
479         * semantics.c (cxx_eval_call_expression): Always retry previously
480         non-constant expressions.
481
482 2012-01-06  Jason Merrill  <jason@redhat.com>
483
484         DR 686
485         PR c++/47450
486         * parser.c (cp_parser_new_expression): Set
487         type_definition_forbidden_message.
488
489         PR c++/6057
490         PR c++/48051
491         PR c++/50855
492         PR c++/51322
493         * mangle.c (write_expression): Support NEW_EXPR, DELETE_EXPR,
494         THROW_EXPR, CONSTRUCTOR, OVERLOAD.  Fix PREINCREMENT_EXPR and
495         PREDECREMENT_EXPR.
496         (write_template_arg): Fix mangling of class-scope functions and
497         argument packs.
498         (mangle_decl): Update suggested -fabi-version argument.
499         * operators.def: Add DOTSTAR_EXPR, REINTERPRET_CAST_EXPR,
500         DYNAMIC_CAST_EXPR; correct CONST_CAST_EXPR, STATIC_CAST_EXPR.
501         * tree.c (dependent_name): No longer static.
502         * cp-tree.h: Declare it.
503         * pt.c (unify): Defer handling of unconverted functions.
504
505         * mangle.c (mangle_decl): Don't generate mangling aliases
506         for maybe-in-charge [cd]tors.
507
508         * error.c (dump_expr): Print type of CONSTRUCTOR.
509
510 2012-01-05  Dodji Seketeli  <dodji@redhat.com>
511
512         PR c++/51541
513         * parser.c (cp_parser_alias_declaration): Get out early upon
514         errors in the identifier or the attributes.
515
516 2012-01-04  Paolo Carlini  <paolo.carlini@oracle.com>
517
518         PR c++/51064
519         * pt.c (tsubst_copy_and_build): Maybe set TREE_NO_WARNING on
520         the tree returned by build_x_binary_op.
521
522 2012-01-03  Paolo Carlini  <paolo.carlini@oracle.com>
523
524         PR c++/51738
525         * parser.c (cp_parser_postfix_open_square_expression): Handle
526         postfix-expression [ braced-init-list ].
527
528 2012-01-03  Paolo Carlini  <paolo.carlini@oracle.com>
529
530         PR c++/29273
531         * rtti.c (build_dynamic_cast_1): In case of T a pointer type,
532         call decay_conversion on v.
533
534 2012-01-03  Paolo Carlini  <paolo.carlini@oracle.com>
535
536         PR c++/15867
537         * decl.c (duplicate_decls): With -Wredundant-decls don't warn for
538         declaration followed by specialization.
539
540 2012-01-03  Jakub Jelinek  <jakub@redhat.com>
541
542         PR c++/51669
543         * semantics.c (finish_omp_clauses): Call fold_build_cleanup_point_expr
544         on OMP_CLAUSE_{IF,FINAL,NUM_THREADS,SCHEDULE_CHUNK}_EXPR.
545
546 2012-01-02  Jason Merrill  <jason@redhat.com>
547
548         DR 1359
549         PR c++/51675
550         * method.c (walk_field_subobs): Don't check for uninitialized
551         fields in a union.
552         (synthesized_method_walk): Check here.
553
554         DR 325
555         PR c++/51666
556         * parser.c (cp_parser_cache_defarg): Split out...
557         (cp_parser_parameter_declaration): ...from here.
558         (cp_parser_save_nsdmi): Use it.
559         (cp_parser_cache_group): Remove CPP_COMMA support.
560
561 2012-01-02  Dodji Seketeli  <dodji@redhat.com>
562
563         PR c++/51462
564         * semantics.c (cx_check_missing_mem_inits): Don't assert in case
565         of error.
566
567 2012-01-02  Paolo Carlini  <paolo.carlini@oracle.com>
568
569         PR c++/20140
570         * typeck2.c (digest_init_r): Use copy_init when initializing
571         an array of chars.
572
573 2012-01-01  Paolo Carlini  <paolo.carlini@oracle.com>
574
575         PR c++/16603
576         * decl.c (build_enumerator): Don't call perform_integral_promotions
577         on the value.
578
579 2012-01-01  Paolo Carlini  <paolo.carlini@oracle.com>
580
581         PR c++/51379
582         * typeck.c (build_reinterpret_cast_1): Implement resolution of
583         DR 799.
584
585 2012-01-01  Fabien Chêne  <fabien@gcc.gnu.org>
586
587         * parser.c (cp_parser_using_declaration): Add a warning about
588         deprecated access declarations when no errors were encountered
589         while parsing the access declaration. Save the first token in
590         order to emit the warning at the right place.
591 \f
592 Copyright (C) 2012 Free Software Foundation, Inc.
593
594 Copying and distribution of this file, with or without modification,
595 are permitted in any medium without royalty provided the copyright
596 notice and this notice are preserved.