OSDN Git Service

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