OSDN Git Service

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