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