OSDN Git Service

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