OSDN Git Service

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