OSDN Git Service

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