OSDN Git Service

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