OSDN Git Service

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