OSDN Git Service

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