OSDN Git Service

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