OSDN Git Service

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