OSDN Git Service

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