OSDN Git Service

a908e425f8db8b0ec509b4ff672902dd17ebb3f2
[pf3gnuchains/gcc-fork.git] / gcc / cp / ChangeLog
1 2010-03-05  Jason Merrill  <jason@redhat.com>
2
3         * mangle.c (mangle_decl): Give name collision error even without
4         ASM_OUTPUT_DEF.
5
6 2010-03-04  Marco Poletti  <poletti.marco@gmail.com>
7
8         * pt.c (process_partial_specialization): Use error_n instead of
9         error.
10
11 2010-03-03  Jason Merrill  <jason@redhat.com>
12
13         PR c++/12909
14         * mangle.c (mangle_decl): Handle VAR_DECL, too.
15
16 2010-03-03  Jason Merrill  <jason@redhat.com>
17
18         PR c++/12909
19         * mangle.c: Include cgraph.h.
20         (mangle_decl): If the mangled name will change in a later
21         ABI version, make the later mangled name an alias.
22         * method.c (make_alias_for): Copy DECL_ARGUMENTS.
23         * Make-lang.in (mangle.o): Depend on cgraph.h.
24         * method.c (make_alias_for): Handle VAR_DECL, too.
25         * decl2.c (vague_linkage_p): Rename from vague_linkage_fn_p.
26         * tree.c (no_linkage_check): Adjust.
27         * decl.c (maybe_commonize_var): Adjust.
28         * cp-tree.h: Adjust.
29
30 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
31
32         * pt.c (redeclare_class_template): Use error_n and inform_n.
33
34 2010-02-27  Mark Mitchell  <mark@codesourcery.com>
35
36         PR c++/42748
37         * cp-tree.h (push_tinst_level): Declare.
38         (pop_tinst_level): Likewise.
39         * pt.c (push_tinst_level): Give it external linkage.
40         (pop_tinst_level): Likewise.
41         * mangle.c (mangle_decl_string): Set the source location to that
42         of the decl while mangling.
43
44 2010-02-27  Simon Martin  <simartin@users.sourceforge.net>
45
46         PR c++/42054
47         * pt.c (redeclare_class_template): Return false if there are erroneous
48         template parameters.
49
50 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
51
52         * pt.c (push_tinst_level): Replace -ftemplate-depth- with 
53         -ftemplate-depth=.
54
55 2010-02-24  Jason Merrill  <jason@redhat.com>
56
57         PR c++/12909
58         * mangle.c (write_type): Give -Wabi warning for old vector mangling.
59
60         * class.c (layout_class_type): Don't give -Wabi warning for a bug
61         in a previous ABI version.
62
63 2010-02-23  Jason Merrill  <jason@redhat.com>
64
65         PR c++/43143
66         * typeck2.c (digest_init_r): Accept value init of array.
67
68 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
69
70         PR c++/43126
71         * typeck.c (convert_arguments): Update error message.
72
73 2010-02-22  Mike Stump  <mikestump@comcast.net>
74
75         PR c++/43125
76         * decl.c (duplicate_decls): Merge DECL_PRESERVE_P.
77
78 2010-02-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
79
80         PR c++/23510
81         * error.c (print_instantiation_partial_context_line): New.
82         (print_instantiation_partial_context): Print at most 12 contexts,
83         skip the rest with a message.
84
85 2010-02-21  Dodji Seketeli  <dodji@redhat.com>
86
87         PR c++/42824
88         * pt.c (lookup_template_class): Better support of specialization
89         of member of class template implicit instantiation.
90
91 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
92
93         PR c++/35669
94         * call.c (conversion_null_warnings): Replace -Wconversion with
95         -Wconversion-null.
96         * cvt.c (build_expr_type_conversion): Likewise.
97
98 2010-02-18  Jason Merrill  <jason@redhat.com>
99
100         PR c++/42837
101         * class.c (create_vtable_ptr): Set DECL_PACKED if type is packed.
102
103         PR c++/43108
104         * typeck.c (cp_build_binary_op): Adapt mixed complex/non handling from
105         C build_binary_op.
106         * cp-tree.h (WANT_VECTOR_OR_COMPLEX): Rename from WANT_VECTOR.
107         * cvt.c (build_expr_type_conversion): Allow COMPLEX_TYPE.
108
109         PR c++/43070
110         * semantics.c (finish_goto_stmt): Don't call decay_conversion.
111
112         PR c++/26261
113         PR c++/43101
114         * pt.c (tsubst_qualified_id): Do normal lookup in non-dependent scope.
115         (maybe_update_decl_type): New fn.
116         * parser.c (cp_parser_init_declarator): Use it.
117
118         PR c++/43109
119         * semantics.c (begin_class_definition): Don't crash on unnamed ns.
120
121 2010-02-17  Jason Merrill  <jason@redhat.com>
122
123         PR c++/43075
124         * call.c (build_over_call): Don't create zero-sized assignments.
125         * cp-gimplify.c (cp_genericize_r): Don't remove them here.
126         * cp-objcp-common.c (cp_expr_size): Remove.
127         * cp-tree.h: Remove prototype.
128
129         PR c++/43069
130         * name-lookup.c (set_decl_namespace): Don't copy DECL_CONTEXT if the
131         decl we looked up doesn't match.
132
133         PR c++/43093
134         * cp-gimplify.c (cp_gimplify_expr) [INIT_EXPR]: Return if we don't
135         have an INIT_EXPR anymore.
136
137         PR c++/43079
138         * pt.c (convert_nontype_argument): Change assert to test.
139
140 2010-02-16  Jason Merrill  <jason@redhat.com>
141
142         * cp-gimplify.c (cp_gimplify_expr): Fix error recovery.
143
144         PR c++/43031
145         * cp-gimplify.c (cp_gimplify_expr) [MODIFY_EXPR]: Use
146         VIEW_CONVERT_EXPR for conversions between structural equality types
147         that the back end can't tell are the same.
148
149         PR c++/43036
150         * tree.c (build_cplus_array_type): Set TYPE_MAIN_VARIANT to strip
151         cv-quals from element here.
152         (cp_build_qualified_type_real): Not here.  Preserve typedef name.
153
154 2010-02-14  Jason Merrill  <jason@redhat.com>
155
156         PR c++/41997
157         * semantics.c (finish_compound_literal): Use
158         cp_apply_type_quals_to_decl when creating a static variable.
159
160 2010-02-12  Jason Merrill  <jason@redhat.com>
161
162         PR c++/43024
163         * name-lookup.h (current_binding_level): Check for null
164         cp_function_chain.
165
166 2010-02-12  Jason Merrill  <jason@redhat.com>
167
168         PR c++/43054
169         * tree.c (cp_tree_equal): Correct CALL_EXPR logic.
170
171 2010-02-12  Jakub Jelinek  <jakub@redhat.com>
172
173         PR c++/43033
174         * name-lookup.c (pushdecl_maybe_friend): Check default args of t
175         instead of x.
176
177 2010-02-10  Jason Merrill  <jason@redhat.com>
178
179         PR c++/41896
180         * semantics.c (outer_lambda_capture_p): Revert.
181         (add_capture): Only finish_member_declaration if
182         we're in the lambda class.
183         (register_capture_members): New.
184         * cp-tree.h: Declare it.
185         * parser.c (cp_parser_lambda_expression): Call it.
186
187 2010-02-10  Jason Merrill  <jason@redhat.com>
188
189         PR c++/41896
190         * semantics.c (outer_lambda_capture_p): Use current_function_decl
191         instead of current_class_type.
192
193 2010-02-10  Jason Merrill  <jason@redhat.com>
194
195         PR c++/42983, core issue 906
196         * method.c (defaultable_fn_check): Check virtualness.
197
198 2010-02-10  Jason Merrill  <jason@redhat.com>
199
200         PR c++/43016
201         * semantics.c (maybe_add_lambda_conv_op): Set DECL_INTERFACE_KNOWN.
202
203 2010-02-10  Shujing Zhao  <pearly.zhao@oracle.com>
204
205         * Make-lang.in (cp/cvt.o, cp/parser.o, cp/search.o): Depend on intl.h.
206         * cvt.c (warn_ref_binding): Wrap the messages into G_() for easy
207         translation.
208         * parser.c (cp_parser_postfix_expression, cp_parser_new_type_id)
209         (cp_parser_cast_expression, cp_parser_condition, cp_parser_decltype)
210         (cp_parser_parameter_declaration)
211         (cp_parser_exception_specification_opt)
212         (cp_parser_exception_declaration): Likewise.
213         * pt.c (check_default_tmpl_args): Likewise.
214         * search.c (lookup_field_r): Likewise.
215
216 2010-02-09  Jason Merrill  <jason@redhat.com>
217
218         PR c++/42399
219         * pt.c (tsubst_copy_and_build): Propagate LAMBDA_EXPR_LOCATION.
220
221 2010-02-09  Jason Merrill  <jason@redhat.com>
222
223         PR c++/42370
224         * decl2.c (change_return_type): New fn.
225         * semantics.c (apply_lambda_return_type): Use it.
226         * cp-tree.h: Declare it.
227
228 2010-02-05  Richard Guenther  <rguenther@suse.de>
229
230         * Make-lang.in (cp/cp-lang.o): Depend on gt-cp-cp-lang.h.
231         * cp-lang.c: Include gt-cp-cp-lang.h.
232         * config-lang.in (gtfiles): Add cp/cp-lang.c.
233
234 2010-02-05  Dodji Seketeli  <dodji@redhat.com>
235
236         PR c++/42915
237         * typeck.c (get_template_parms_of_dependent_type): Try getting
238         the template parameters fromt the type itself first.
239
240 2010-02-03  Jason Merrill  <jason@redhat.com>
241
242         PR c++/4926
243         PR c++/38600
244         * mangle.c (write_unqualified_id): Split out from write_expression.
245         (write_unqualified_name): Call it.
246         (write_member_name): Likewise.
247         (write_expression): Support TEMPLATE_ID_EXPR.
248         Disambiguate operator names.
249
250         PR c++/12909
251         * mangle.c (write_type) [VECTOR_TYPE]: Change mangling with
252         -fabi-version=4.
253
254 2010-02-02  Jason Merrill  <jason@redhat.com>
255
256         PR c++/41090
257         * decl.c (cp_finish_decl): Add local statics to cfun->local_decls.
258         * optimize.c (clone_body): Remap their initializers when making base
259         variants.
260         (maybe_clone_body): Complain if multiple clones aren't safe.
261
262 2010-01-29  Dodji Seketeli  <dodji@redhat.com>
263
264         PR c++/42758
265         PR c++/42634
266         PR c++/42336
267         PR c++/42797
268         PR c++/42880
269         * cp-tree.h (NON_DEFAULT_TEMPLATE_ARGS_COUNT,
270         SET_NON_DEFAULT_TEMPLATE_ARGS_COUNT,
271         GET_NON_DEFAULT_TEMPLATE_ARGS_COUNT): New accessor macros.
272         * pt.c (coerce_template_parms, type_unification_real,
273         expand_template_argument_pack, coerce_template_parameter_pack):
274         Set the non default template args count.
275         (current_template_args): Always set non defaulted
276         template args count when compiled with --enable-checking
277         (tsubst_template_args, type_unification_real): Propagate the non
278         defaulted template args count.
279         * error.c (get_non_default_template_args_count): Renamed
280         count_non_default_template_args into this. Don't calculate the
281         non default template argument count anymore. Use the new
282         accessor macros above to get it.
283         (dump_template_argument_list, dump_type, dump_decl,
284         dump_template_parms): Adjust.
285         * parser.c (cp_parser_template_argument_list): Always set defaulted
286         template args count when compiled with --enable-checking.
287
288 2010-01-29  Shujing Zhao  <pearly.zhao@oracle.com>
289
290         * decl.c (redeclaration_error_message): Wrap the return messages into
291         G_() for easy translation.
292
293 2010-01-28  Jason Merrill  <jason@redhat.com>
294
295         PR c++/42880
296         * semantics.c (begin_class_definition): Don't use type_as_string.
297
298 2010-01-28  Dodji Seketeli  <dodji@redhat.com>
299
300         PR c++/42713
301         PR c++/42820
302         * typeck.c (get_template_parms_of_dependent_type): Factorized
303         this out of incompatible_template_type_parms_p
304         (incompatible_dependent_types_p): Renamed
305         incompatible_template_type_parms_p into this. Make it detect
306         two incompatible dependent typedefs too.
307         (structural_comptypes): Use incompatible_dependent_types_p.
308         * pt.c (get_template_info):
309         Handle BOUND_TEMPLATE_TEMPLATE_PARAM.
310
311 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
312             Jason Merrill  <jason@redhat.com>
313
314         * mangle.c (write_type): Mangle transparent record as member type.
315         * semantics.c (begin_class_definition): Recognize decimal classes
316         and set TYPE_TRANSPARENT_AGGR.
317
318 2010-01-20  Jason Merrill  <jason@redhat.com>
319
320         PR c++/42338
321         * mangle.c (write_expression): Handle tree codes that have extra
322         arguments in the middle-end.
323
324 2010-01-20  Paolo Carlini  <paolo.carlini@oracle.com>
325
326         PR c++/42038
327         * except.c (expand_start_catch_block): Deal correctly with
328         do_begin_catch returning error_mark_node.
329
330 2010-01-20  Jason Merrill  <jason@redhat.com>
331
332         PR c++/41788
333         * class.c (layout_class_type): Set packed_maybe_necessary for packed
334         non-PODs.
335
336         PR c++/41920
337         * semantics.c (build_lambda_object): Call mark_used on captured
338         variables.
339
340         PR c++/40750
341         * decl.c (grokdeclarator): Clear type_quals for a member function
342         declared using a typedef.  Don't complain about adding cv-quals
343         to a function typedef in C++0x mode.
344
345 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
346
347         * decl.c (create_array_type_for_decl): Remove set but not used
348         variable error_msg.  Remove break stmts after return stmts.
349
350 2010-01-19  Dodji Seketeli  <dodji@redhat.com>
351
352         * error.c (dump_template_parms, count_non_default_template_args):
353         Revert fix of PR c++/42634.
354
355 2010-01-18  Dodji Seketeli  <dodji@redhat.com>
356
357         PR c++/42634
358         * error.c (dump_template_parms): Use innermost template
359         arguments before calling count_non_default_template_args.
360         (count_non_default_template_args): We are being called with
361         template innermost arguments now. There is no need to ensure
362         that again.
363
364 2010-01-18  Dodji Seketeli  <dodji@redhat.com>
365
366         PR c++/42766
367         * cvt.c (build_expr_type_conversion): Look through OVERLOAD.
368
369 2010-01-17  Dodji Seketeli  <dodji@redhat.com>
370
371         PR c++/42697
372         *pt.c (tsubst_decl):  Revert commit for PR c++/42697.
373
374 2010-01-17  Dodji Seketeli  <dodji@redhat.com>
375
376         PR c++/42697
377         *pt.c (tsubst_decl): Get the arguments of a specialization from
378         the specialization template, not from the most general template.
379
380 2010-01-16  Jason Merrill  <jason@redhat.com>
381
382         PR c++/42761
383         * semantics.c (finish_decltype_type): Within a template, treat
384         unresolved CALL_EXPR as dependent.
385
386 2010-01-15  Dodji Seketeli  <dodji@redhat.com>
387
388         * error.c (dump_template_parms,count_non_default_template_args):
389         Revert changes of PR c++/42634.
390
391 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
392
393         PR middle-end/42674
394         * decl.c (finish_function): Don't emit -Wreturn-type warnings in
395         functions with noreturn attribute.
396
397 2010-01-14  Jason Merrill  <jason@redhat.com>
398
399         PR c++/42701
400         * call.c (build_new_method_call): Don't free the vec here.
401
402         PR c++/42655
403         * call.c (convert_like_real): Do full decay_conversion for ck_rvalue.
404
405 2010-01-13  Dodji Seketeli  <dodji@redhat.com>
406
407         PR c++/42634
408         * error.c (dump_template_parms): Use innermost template
409         arguments before calling count_non_default_template_args.
410         (count_non_default_template_args): We are being called with
411         template innermost arguments now. There is no need to ensure
412         that again.
413
414 2010-01-07  Dodji Seketeli  <dodji@redhat.com>
415
416         c++/40155
417         * pt.c (unify_pack_expansion): In non-deduced contexts, re-use template
418         arguments that were previously deduced.
419
420 2010-01-05  Jason Merrill  <jason@redhat.com>
421
422         * pt.c (unify_pack_expansion): Handle deduction from init-list.
423         * call.c (build_over_call): Don't complain about it.
424
425 2010-01-04  Jason Merrill  <jason@redhat.com>
426
427         PR c++/42555
428         * pt.c (tsubst_decl): Don't apply type attributes in place.
429
430         PR c++/42567
431         * semantics.c (describable_type): Remove decltype comment and
432         semantics.
433
434
435 \f
436 Copyright (C) 2010 Free Software Foundation, Inc.
437
438 Copying and distribution of this file, with or without modification,
439 are permitted in any medium without royalty provided the copyright
440 notice and this notice are preserved.