OSDN Git Service

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