Merge DECL_PRESERVE_P for C++.
[official-gcc.git] / gcc / cp / ChangeLog
blob3c967b3622ecbb373199b9432a97aa9e2f9fd59e
1 2010-02-22  Mike Stump  <mikestump@comcast.net>
3         PR c++/43125
4         * decl.c (duplicate_decls): Merge DECL_PRESERVE_P.
6 2010-02-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8         PR c++/23510
9         * error.c (print_instantiation_partial_context_line): New.
10         (print_instantiation_partial_context): Print at most 12 contexts,
11         skip the rest with a message.
13 2010-02-21  Dodji Seketeli  <dodji@redhat.com>
15         PR c++/42824
16         * pt.c (lookup_template_class): Better support of specialization
17         of member of class template implicit instantiation.
19 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21         PR c++/35669
22         * call.c (conversion_null_warnings): Replace -Wconversion with
23         -Wconversion-null.
24         * cvt.c (build_expr_type_conversion): Likewise.
26 2010-02-18  Jason Merrill  <jason@redhat.com>
28         PR c++/42837
29         * class.c (create_vtable_ptr): Set DECL_PACKED if type is packed.
31         PR c++/43108
32         * typeck.c (cp_build_binary_op): Adapt mixed complex/non handling from
33         C build_binary_op.
34         * cp-tree.h (WANT_VECTOR_OR_COMPLEX): Rename from WANT_VECTOR.
35         * cvt.c (build_expr_type_conversion): Allow COMPLEX_TYPE.
37         PR c++/43070
38         * semantics.c (finish_goto_stmt): Don't call decay_conversion.
40         PR c++/26261
41         PR c++/43101
42         * pt.c (tsubst_qualified_id): Do normal lookup in non-dependent scope.
43         (maybe_update_decl_type): New fn.
44         * parser.c (cp_parser_init_declarator): Use it.
46         PR c++/43109
47         * semantics.c (begin_class_definition): Don't crash on unnamed ns.
49 2010-02-17  Jason Merrill  <jason@redhat.com>
51         PR c++/43075
52         * call.c (build_over_call): Don't create zero-sized assignments.
53         * cp-gimplify.c (cp_genericize_r): Don't remove them here.
54         * cp-objcp-common.c (cp_expr_size): Remove.
55         * cp-tree.h: Remove prototype.
57         PR c++/43069
58         * name-lookup.c (set_decl_namespace): Don't copy DECL_CONTEXT if the
59         decl we looked up doesn't match.
61         PR c++/43093
62         * cp-gimplify.c (cp_gimplify_expr) [INIT_EXPR]: Return if we don't
63         have an INIT_EXPR anymore.
65         PR c++/43079
66         * pt.c (convert_nontype_argument): Change assert to test.
68 2010-02-16  Jason Merrill  <jason@redhat.com>
70         * cp-gimplify.c (cp_gimplify_expr): Fix error recovery.
72         PR c++/43031
73         * cp-gimplify.c (cp_gimplify_expr) [MODIFY_EXPR]: Use
74         VIEW_CONVERT_EXPR for conversions between structural equality types
75         that the back end can't tell are the same.
77         PR c++/43036
78         * tree.c (build_cplus_array_type): Set TYPE_MAIN_VARIANT to strip
79         cv-quals from element here.
80         (cp_build_qualified_type_real): Not here.  Preserve typedef name.
82 2010-02-14  Jason Merrill  <jason@redhat.com>
84         PR c++/41997
85         * semantics.c (finish_compound_literal): Use
86         cp_apply_type_quals_to_decl when creating a static variable.
88 2010-02-12  Jason Merrill  <jason@redhat.com>
90         PR c++/43024
91         * name-lookup.h (current_binding_level): Check for null
92         cp_function_chain.
94 2010-02-12  Jason Merrill  <jason@redhat.com>
96         PR c++/43054
97         * tree.c (cp_tree_equal): Correct CALL_EXPR logic.
99 2010-02-12  Jakub Jelinek  <jakub@redhat.com>
101         PR c++/43033
102         * name-lookup.c (pushdecl_maybe_friend): Check default args of t
103         instead of x.
105 2010-02-10  Jason Merrill  <jason@redhat.com>
107         PR c++/41896
108         * semantics.c (outer_lambda_capture_p): Revert.
109         (add_capture): Only finish_member_declaration if
110         we're in the lambda class.
111         (register_capture_members): New.
112         * cp-tree.h: Declare it.
113         * parser.c (cp_parser_lambda_expression): Call it.
115 2010-02-10  Jason Merrill  <jason@redhat.com>
117         PR c++/41896
118         * semantics.c (outer_lambda_capture_p): Use current_function_decl
119         instead of current_class_type.
121 2010-02-10  Jason Merrill  <jason@redhat.com>
123         PR c++/42983, core issue 906
124         * method.c (defaultable_fn_check): Check virtualness.
126 2010-02-10  Jason Merrill  <jason@redhat.com>
128         PR c++/43016
129         * semantics.c (maybe_add_lambda_conv_op): Set DECL_INTERFACE_KNOWN.
131 2010-02-10  Shujing Zhao  <pearly.zhao@oracle.com>
133         * Make-lang.in (cp/cvt.o, cp/parser.o, cp/search.o): Depend on intl.h.
134         * cvt.c (warn_ref_binding): Wrap the messages into G_() for easy
135         translation.
136         * parser.c (cp_parser_postfix_expression, cp_parser_new_type_id)
137         (cp_parser_cast_expression, cp_parser_condition, cp_parser_decltype)
138         (cp_parser_parameter_declaration)
139         (cp_parser_exception_specification_opt)
140         (cp_parser_exception_declaration): Likewise.
141         * pt.c (check_default_tmpl_args): Likewise.
142         * search.c (lookup_field_r): Likewise.
144 2010-02-09  Jason Merrill  <jason@redhat.com>
146         PR c++/42399
147         * pt.c (tsubst_copy_and_build): Propagate LAMBDA_EXPR_LOCATION.
149 2010-02-09  Jason Merrill  <jason@redhat.com>
151         PR c++/42370
152         * decl2.c (change_return_type): New fn.
153         * semantics.c (apply_lambda_return_type): Use it.
154         * cp-tree.h: Declare it.
156 2010-02-05  Richard Guenther  <rguenther@suse.de>
158         * Make-lang.in (cp/cp-lang.o): Depend on gt-cp-cp-lang.h.
159         * cp-lang.c: Include gt-cp-cp-lang.h.
160         * config-lang.in (gtfiles): Add cp/cp-lang.c.
162 2010-02-05  Dodji Seketeli  <dodji@redhat.com>
164         PR c++/42915
165         * typeck.c (get_template_parms_of_dependent_type): Try getting
166         the template parameters fromt the type itself first.
168 2010-02-03  Jason Merrill  <jason@redhat.com>
170         PR c++/4926
171         PR c++/38600
172         * mangle.c (write_unqualified_id): Split out from write_expression.
173         (write_unqualified_name): Call it.
174         (write_member_name): Likewise.
175         (write_expression): Support TEMPLATE_ID_EXPR.
176         Disambiguate operator names.
178         PR c++/12909
179         * mangle.c (write_type) [VECTOR_TYPE]: Change mangling with
180         -fabi-version=4.
182 2010-02-02  Jason Merrill  <jason@redhat.com>
184         PR c++/41090
185         * decl.c (cp_finish_decl): Add local statics to cfun->local_decls.
186         * optimize.c (clone_body): Remap their initializers when making base
187         variants.
188         (maybe_clone_body): Complain if multiple clones aren't safe.
190 2010-01-29  Dodji Seketeli  <dodji@redhat.com>
192         PR c++/42758
193         PR c++/42634
194         PR c++/42336
195         PR c++/42797
196         PR c++/42880
197         * cp-tree.h (NON_DEFAULT_TEMPLATE_ARGS_COUNT,
198         SET_NON_DEFAULT_TEMPLATE_ARGS_COUNT,
199         GET_NON_DEFAULT_TEMPLATE_ARGS_COUNT): New accessor macros.
200         * pt.c (coerce_template_parms, type_unification_real,
201         expand_template_argument_pack, coerce_template_parameter_pack):
202         Set the non default template args count.
203         (current_template_args): Always set non defaulted
204         template args count when compiled with --enable-checking
205         (tsubst_template_args, type_unification_real): Propagate the non
206         defaulted template args count.
207         * error.c (get_non_default_template_args_count): Renamed
208         count_non_default_template_args into this. Don't calculate the
209         non default template argument count anymore. Use the new
210         accessor macros above to get it.
211         (dump_template_argument_list, dump_type, dump_decl,
212         dump_template_parms): Adjust.
213         * parser.c (cp_parser_template_argument_list): Always set defaulted
214         template args count when compiled with --enable-checking.
216 2010-01-29  Shujing Zhao  <pearly.zhao@oracle.com>
218         * decl.c (redeclaration_error_message): Wrap the return messages into
219         G_() for easy translation.
221 2010-01-28  Jason Merrill  <jason@redhat.com>
223         PR c++/42880
224         * semantics.c (begin_class_definition): Don't use type_as_string.
226 2010-01-28  Dodji Seketeli  <dodji@redhat.com>
228         PR c++/42713
229         PR c++/42820
230         * typeck.c (get_template_parms_of_dependent_type): Factorized
231         this out of incompatible_template_type_parms_p
232         (incompatible_dependent_types_p): Renamed
233         incompatible_template_type_parms_p into this. Make it detect
234         two incompatible dependent typedefs too.
235         (structural_comptypes): Use incompatible_dependent_types_p.
236         * pt.c (get_template_info):
237         Handle BOUND_TEMPLATE_TEMPLATE_PARAM.
239 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
240             Jason Merrill  <jason@redhat.com>
242         * mangle.c (write_type): Mangle transparent record as member type.
243         * semantics.c (begin_class_definition): Recognize decimal classes
244         and set TYPE_TRANSPARENT_AGGR.
246 2010-01-20  Jason Merrill  <jason@redhat.com>
248         PR c++/42338
249         * mangle.c (write_expression): Handle tree codes that have extra
250         arguments in the middle-end.
252 2010-01-20  Paolo Carlini  <paolo.carlini@oracle.com>
254         PR c++/42038
255         * except.c (expand_start_catch_block): Deal correctly with
256         do_begin_catch returning error_mark_node.
258 2010-01-20  Jason Merrill  <jason@redhat.com>
260         PR c++/41788
261         * class.c (layout_class_type): Set packed_maybe_necessary for packed
262         non-PODs.
264         PR c++/41920
265         * semantics.c (build_lambda_object): Call mark_used on captured
266         variables.
268         PR c++/40750
269         * decl.c (grokdeclarator): Clear type_quals for a member function
270         declared using a typedef.  Don't complain about adding cv-quals
271         to a function typedef in C++0x mode.
273 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
275         * decl.c (create_array_type_for_decl): Remove set but not used
276         variable error_msg.  Remove break stmts after return stmts.
278 2010-01-19  Dodji Seketeli  <dodji@redhat.com>
280         * error.c (dump_template_parms, count_non_default_template_args):
281         Revert fix of PR c++/42634.
283 2010-01-18  Dodji Seketeli  <dodji@redhat.com>
285         PR c++/42634
286         * error.c (dump_template_parms): Use innermost template
287         arguments before calling count_non_default_template_args.
288         (count_non_default_template_args): We are being called with
289         template innermost arguments now. There is no need to ensure
290         that again.
292 2010-01-18  Dodji Seketeli  <dodji@redhat.com>
294         PR c++/42766
295         * cvt.c (build_expr_type_conversion): Look through OVERLOAD.
297 2010-01-17  Dodji Seketeli  <dodji@redhat.com>
299         PR c++/42697
300         *pt.c (tsubst_decl):  Revert commit for PR c++/42697.
302 2010-01-17  Dodji Seketeli  <dodji@redhat.com>
304         PR c++/42697
305         *pt.c (tsubst_decl): Get the arguments of a specialization from
306         the specialization template, not from the most general template.
308 2010-01-16  Jason Merrill  <jason@redhat.com>
310         PR c++/42761
311         * semantics.c (finish_decltype_type): Within a template, treat
312         unresolved CALL_EXPR as dependent.
314 2010-01-15  Dodji Seketeli  <dodji@redhat.com>
316         * error.c (dump_template_parms,count_non_default_template_args):
317         Revert changes of PR c++/42634.
319 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
321         PR middle-end/42674
322         * decl.c (finish_function): Don't emit -Wreturn-type warnings in
323         functions with noreturn attribute.
325 2010-01-14  Jason Merrill  <jason@redhat.com>
327         PR c++/42701
328         * call.c (build_new_method_call): Don't free the vec here.
330         PR c++/42655
331         * call.c (convert_like_real): Do full decay_conversion for ck_rvalue.
333 2010-01-13  Dodji Seketeli  <dodji@redhat.com>
335         PR c++/42634
336         * error.c (dump_template_parms): Use innermost template
337         arguments before calling count_non_default_template_args.
338         (count_non_default_template_args): We are being called with
339         template innermost arguments now. There is no need to ensure
340         that again.
342 2010-01-07  Dodji Seketeli  <dodji@redhat.com>
344         c++/40155
345         * pt.c (unify_pack_expansion): In non-deduced contexts, re-use template
346         arguments that were previously deduced.
348 2010-01-05  Jason Merrill  <jason@redhat.com>
350         * pt.c (unify_pack_expansion): Handle deduction from init-list.
351         * call.c (build_over_call): Don't complain about it.
353 2010-01-04  Jason Merrill  <jason@redhat.com>
355         PR c++/42555
356         * pt.c (tsubst_decl): Don't apply type attributes in place.
358         PR c++/42567
359         * semantics.c (describable_type): Remove decltype comment and
360         semantics.
364 Copyright (C) 2010 Free Software Foundation, Inc.
366 Copying and distribution of this file, with or without modification,
367 are permitted in any medium without royalty provided the copyright
368 notice and this notice are preserved.