OSDN Git Service

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