OSDN Git Service

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