OSDN Git Service

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