OSDN Git Service

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