OSDN Git Service

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