OSDN Git Service

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