OSDN Git Service

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