OSDN Git Service

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