OSDN Git Service

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