OSDN Git Service

PR c++/43790
[pf3gnuchains/gcc-fork.git] / gcc / cp / ChangeLog
1 2010-04-27  Jason Merrill  <jason@redhat.com>
2
3         PR c++/43790
4         * tree.c (cv_unqualified): Handle error_mark_node.
5
6         PR c++/41468
7         * call.c (convert_like_real) [ck_ambig]: Just return error_mark_node
8         if we don't want errors.
9
10         PR c++/41468
11         * class.c (convert_to_base): Add complain parameter.  Pass
12         ba_quiet to lookup_base if we don't want errors.
13         (build_vfield_ref): Pass complain to convert_to_base.
14         * call.c (convert_like_real): Likewise.
15         (initialize_reference): Likewise.
16         (perform_direct_initialization_if_possible): Pass complain to
17         convert_like_real.
18         * cp-tree.h: Adjust.
19
20 2010-04-27  Fabien Chêne  <fabien.chene@gmail.com>
21             Jason Merrill  <jason@redhat.com>
22
23         PR c++/42844
24         * decl.c (check_for_uninitialized_const_var): Handle classes that need
25         constructing, too.
26         (check_initializer): Call it for classes that need constructing, too.
27         * class.c (in_class_defaulted_default_constructor): New.
28         * cp-tree.h: Declare it.
29
30 2010-04-20  Jason Merrill  <jason@redhat.com>
31
32         PR c++/9335
33         * init.c (constant_value_1): Treat error_mark_node as a constant
34         if DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P is set.
35         * cvt.c (ocp_convert): Handle getting error_mark_node from
36         integral_constant_value.
37         * decl.c (compute_array_index_type): Likewise.
38
39 2010-04-20  Dodji Seketeli  <dodji@redhat.com>
40
41         PR c++/43800
42         PR c++/43704
43         * typeck.c (incompatible_dependent_types_p): If one of the
44         compared types if not a typedef then honour their main variant
45         equivalence.
46
47 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
48
49         * cp-tree.h (TYPE_REF_IS_RVALUE): Remove.
50
51 2010-04-19  Dodji Seketeli  <dodji@redhat.com>
52
53         PR c++/43704
54         * typeck.c (structural_comptypes): Test dependent typedefs
55         incompatibility before testing for their main variant based
56         equivalence.
57
58 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
59
60         * cp-tree.h (SCOPED_ENUM_P, UNSCOPED_ENUM_P, SET_SCOPED_ENUM_P): Use
61         ENUM_IS_SCOPED bit instead of TYPE_LANG_FLAG_5.
62
63 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
64
65         * decl.c (cxx_init_decl_processing): Remove second argument in call to
66         build_common_tree_nodes.
67
68 2010-04-14  Jason Merrill  <jason@redhat.com>
69
70         PR c++/36625
71         * parser.c (cp_parser_parenthesized_expression_list): Change
72         is_attribute_list parm to int to indicate whether or not to
73         handle initial identifier specially.
74         (cp_parser_attribute_list): Use attribute_takes_identifier_p.
75
76 2010-04-13  Jason Merrill  <jason@redhat.com>
77
78         * call.c (type_decays_to): Check MAYBE_CLASS_TYPE_P instead of
79         CLASS_TYPE_P.
80         * parser.c (cp_parser_lambda_expression): Complain about lambda in
81         unevaluated context.
82         * pt.c (iterative_hash_template_arg): Don't crash on lambda.
83
84 2010-04-12  Jason Merrill  <jason@redhat.com>
85
86         PR c++/43641
87         * semantics.c (maybe_add_lambda_conv_op): Use build_call_a and tweak
88         return value directly.
89
90         * call.c (type_decays_to): Call cv_unqualified for non-class type.
91
92 2010-04-12  Fabien Chene  <fabien.chene@gmail.com>
93
94         PR c++/25811
95         * cp-tree.h (diagnose_uninitialized_cst_or_ref_member): Declare.
96         * init.c (build_new_1): Check for uninitialized const members and
97         uninitialized reference members, when using new without
98         new-initializer. Call diagnose_uninitialized_cst_or_ref_member.
99         (diagnose_uninitialized_cst_or_ref_member): Define, call
100         diagnose_uninitialized_cst_or_ref_member_1.
101         (diagnose_uninitialized_cst_or_ref_member_1): New function.
102
103 2010-04-12  Richard Guenther  <rguenther@suse.de>
104
105         PR c++/43611
106         * semantics.c (expand_or_defer_fn_1): Do not keep extern
107         template inline functions.
108
109 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
110
111         PR c++/28584
112         * typeck.c (cp_build_c_cast): Warn for casting integer to larger
113         pointer type.
114
115 2010-04-07  Jason Merrill  <jason@redhat.com>
116
117         PR c++/43016
118         * decl.c (start_preparsed_function): Do defer nested functions.
119
120         PR c++/11094, DR 408
121         * cp-tree.h (VAR_HAD_UNKNOWN_BOUND, SET_VAR_HAD_UNKNOWN_BOUND): New.
122         * decl2.c (finish_static_data_member_decl): Set it.
123         * decl.c (duplicate_decls): Propagate it.
124         * pt.c (tsubst_decl): Don't substitute the domain of an array
125         VAR_DECL if it's set.
126         (regenerate_decl_from_template): Substitute it here.
127         (type_dependent_expression_p): Return true if it's set.
128         * semantics.c (finish_decltype_type): Instantiate such a variable.
129         * typeck.c (cxx_sizeof_expr): Likewise.
130         (strip_array_domain): New.
131
132         * name-lookup.c (current_decl_namespace): Non-static.
133         (pop_nested_namespace): Sanity check.
134         * cp-tree.h: Declare current_decl_namespace.
135         * decl.c (grokvardecl): Use it instead of current_namespace.
136         (grokfndecl): Likewise.
137
138         PR c++/38392
139         * pt.c (tsubst_friend_function): Instatiate a friend that has already
140         been used.
141
142         * pt.c (print_template_statistics): New.
143         * cp-tree.h: Declare it.
144         * tree.c (cxx_print_statistics): Call it.
145
146         PR c++/41970
147         * decl.c (grokvardecl): Tweak warning message.
148         (grokfndecl): Likewise.
149
150 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
151
152         PR c++/42697
153         *pt.c (tsubst_decl): Get the arguments of a specialization from
154         the specialization template, not from the most general template.
155
156 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
157
158         PR c++/40239
159         * typeck2.c (process_init_constructor_record):
160         value-initialize members that are are not explicitely
161         initialized.
162
163 2010-04-07  Jie Zhang  <jie@codesourcery.com>
164
165         PR c++/42556
166         * typeck2.c (split_nonconstant_init_1): Drop empty CONSTRUCTOR
167         when all of its elements are non-constant and have been split out.
168
169 2010-04-06  Taras Glek  <taras@mozilla.com>
170             Jason Merrill  <jason@redhat.com>
171
172         * parser.c (cp_parser_class_specifier): Set class location to that
173         of IDENTIFIER_NODE instead of '{' when possible.
174         * semantics.c (begin_class_definition): Do not overide locations
175         with less precise ones.
176
177 2010-04-06  Jason Merrill  <jason@redhat.com>
178
179         PR c++/43648
180         * name-lookup.c (constructor_name_p): Allow X::~X even for typedefs.
181
182         PR c++/43621
183         * pt.c (maybe_update_decl_type): Check the return value from
184         push_scope.
185
186 2010-04-01  Jason Merrill  <jason@redhat.com>
187
188         * decl.c (next_initializable_field): No longer static.
189         * cp-tree.h: Declare it.
190         * call.c (build_aggr_conv): Fail if there are more initializers
191         than initializable fields.
192
193         * semantics.c (maybe_add_lambda_conv_op): Use null_pointer_node
194         instead of void_zero_node.
195
196 2010-03-31  Dodji Seketeli  <dodji@redhat.com>
197
198         PR c++/43558
199         * cp-tree.h (TEMPLATE_TYPE_PARM_SIBLING_PARMS): New accessor macro.
200         * pt.c (end_template_parm_list): Store sibling template parms of
201         each TEMPLATE_TYPE_PARMs into its TEMPLATE_TYPE_PARM_SIBLING_PARMS.
202         (push_template_decl_real): Don't store the containing template decl
203         into the DECL_CONTEXT of TEMPLATE_TYPE_PARMs anymore.
204         * typeck.c (get_template_parms_of_dependent_type): Get sibling parms
205         of a TEMPLATE_TYPE_PARM from TEMPLATE_TYPE_PARM_SIBLING_PARMS.
206         Simplify the logic.
207
208 2010-03-30  Jason Merrill  <jason@redhat.com>
209
210         PR c++/43076
211         * pt.c (push_template_decl_real): Deal better with running out of
212         scopes before running out of template parms.
213
214         PR c++/41185
215         PR c++/41786
216         * parser.c (cp_parser_direct_declarator): Don't allow VLAs in
217         function parameter context.  Don't print an error if parsing
218         tentatively.
219
220         PR c++/43559
221         * pt.c (more_specialized_fn): Don't control cv-qualifier check
222         with same_type_p.
223
224 2010-03-26  Jason Merrill  <jason@redhat.com>
225
226         PR c++/43509
227         * parser.c (cp_parser_qualifying_entity): Do accept enum names in
228         c++0x mode, but not other type-names.
229
230 2010-03-26  Dodji Seketeli  <dodji@redhat.com>
231
232         PR c++/43327
233         * pt.c (add_to_template_args): Support NULL ARGS;
234         (most_specialized_class): call coerce_template_parms on
235         template arguments passed to get_class_bindings. Use
236         add_to_template_args.
237         (unify): Handle VAR_DECLs.
238
239 2010-03-26  Dodji Seketeli  <dodji@redhat.com>
240
241         * cp-tree.h (get_template_parms_at_level): Change unsigned parm
242         into int.
243         * pt.c (get_template_parms_at_level): Adjust.
244
245 2010-03-25  Dodji Seketeli  <dodji@redhat.com>
246
247         PR c++/43206
248         * cp-tree.h (get_template_parms_at_level): Declare ...
249         * pt.c (get_template_parms_at_level): ... new function.
250         * typeck.c (get_template_parms_of_dependent_type): If a template
251         type parm's DECL_CONTEXT isn't yet set, get its siblings from
252         current_template_parms. Use get_template_parms_at_level. Remove
253         useless test.
254         (incompatible_dependent_types_p): If we get empty parms from just one
255         of the template type parms we are comparing then the template parms are
256         incompatible.
257
258 2010-03-24  Jason Merrill  <jason@redhat.com>
259
260         PR c++/43502
261         * parser.c (make_declarator): Initialize id_loc.
262         (cp_parser_lambda_declarator_opt): And set it.
263
264 2010-03-23  Jason Merrill  <jason@redhat.com>
265
266         Make lambda conversion op and op() non-static.
267         * semantics.c (maybe_add_lambda_conv_op): Make non-static.
268         Also add the thunk function returned by the conversion op.
269         Mark the conversion deleted if the op() is variadic.
270         * decl2.c (mark_used): Give helpful message about deleted conversion.
271         * parser.c (cp_parser_lambda_declarator_opt): Don't make op() static.
272         * semantics.c (finish_this_expr): Adjust.
273         * mangle.c (write_closure_type_name): Adjust.
274         * decl.c (grok_op_properties): Don't allow it.
275         * call.c (build_user_type_conversion_1): No static conversion ops.
276         (build_op_call): Or op().
277
278         * decl2.c (change_return_type): Fix 'this' quals.
279
280 2010-03-22  Jason Merrill  <jason@redhat.com>
281
282         PR c++/43333
283         * tree.c (pod_type_p): Use old meaning in C++98 mode.
284
285         PR c++/43281
286         * pt.c (contains_auto_r): New fn.
287         (do_auto_deduction): Use it.
288         (tsubst): Don't look at TREE_TYPE of a TEMPLATE_TYPE_PARM.
289
290 2010-03-20  Simon Martin  <simartin@users.sourceforge.net>
291
292         PR c++/43081:
293         * decl2.c (grokfield): Handle invalid initializers for member
294         functions.
295
296 2010-03-20  Dodji Seketeli  <dodji@redhat.com>
297
298         PR c++/43375
299         * method.c (make_alias_for): Avoid crashing when DECL_LANG_SPECIFIC
300         is NULL.
301         * decl2.c (vague_linkage_p): Likewise.
302
303 2010-03-18  Paolo Carlini  <paolo.carlini@oracle.com>
304
305         PR c++/43418
306         * parser.c (cp_parser_for_init_statement): Use NULL_TREE, not
307         false, in the cp_parser_expression_statement call.
308
309 2010-03-05  Jason Merrill  <jason@redhat.com>
310
311         * mangle.c (mangle_decl): Give name collision error even without
312         ASM_OUTPUT_DEF.
313
314 2010-03-04  Marco Poletti  <poletti.marco@gmail.com>
315
316         * pt.c (process_partial_specialization): Use error_n instead of
317         error.
318
319 2010-03-03  Jason Merrill  <jason@redhat.com>
320
321         PR c++/12909
322         * mangle.c (mangle_decl): Handle VAR_DECL, too.
323
324 2010-03-03  Jason Merrill  <jason@redhat.com>
325
326         PR c++/12909
327         * mangle.c (mangle_decl): Handle VAR_DECL, too.
328
329 2010-03-03  Jason Merrill  <jason@redhat.com>
330
331         PR c++/12909
332         * mangle.c: Include cgraph.h.
333         (mangle_decl): If the mangled name will change in a later
334         ABI version, make the later mangled name an alias.
335         * method.c (make_alias_for): Copy DECL_ARGUMENTS.
336         * Make-lang.in (mangle.o): Depend on cgraph.h.
337         * method.c (make_alias_for): Handle VAR_DECL, too.
338         * decl2.c (vague_linkage_p): Rename from vague_linkage_fn_p.
339         * tree.c (no_linkage_check): Adjust.
340         * decl.c (maybe_commonize_var): Adjust.
341         * cp-tree.h: Adjust.
342
343 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
344
345         * pt.c (redeclare_class_template): Use error_n and inform_n.
346
347 2010-02-27  Mark Mitchell  <mark@codesourcery.com>
348
349         PR c++/42748
350         * cp-tree.h (push_tinst_level): Declare.
351         (pop_tinst_level): Likewise.
352         * pt.c (push_tinst_level): Give it external linkage.
353         (pop_tinst_level): Likewise.
354         * mangle.c (mangle_decl_string): Set the source location to that
355         of the decl while mangling.
356
357 2010-02-27  Simon Martin  <simartin@users.sourceforge.net>
358
359         PR c++/42054
360         * pt.c (redeclare_class_template): Return false if there are erroneous
361         template parameters.
362
363 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
364
365         * pt.c (push_tinst_level): Replace -ftemplate-depth- with 
366         -ftemplate-depth=.
367
368 2010-02-24  Jason Merrill  <jason@redhat.com>
369
370         PR c++/12909
371         * mangle.c (write_type): Give -Wabi warning for old vector mangling.
372
373         * class.c (layout_class_type): Don't give -Wabi warning for a bug
374         in a previous ABI version.
375
376 2010-02-23  Jason Merrill  <jason@redhat.com>
377
378         PR c++/43143
379         * typeck2.c (digest_init_r): Accept value init of array.
380
381 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
382
383         PR c++/43126
384         * typeck.c (convert_arguments): Update error message.
385
386 2010-02-22  Mike Stump  <mikestump@comcast.net>
387
388         PR c++/43125
389         * decl.c (duplicate_decls): Merge DECL_PRESERVE_P.
390
391 2010-02-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
392
393         PR c++/23510
394         * error.c (print_instantiation_partial_context_line): New.
395         (print_instantiation_partial_context): Print at most 12 contexts,
396         skip the rest with a message.
397
398 2010-02-21  Dodji Seketeli  <dodji@redhat.com>
399
400         PR c++/42824
401         * pt.c (lookup_template_class): Better support of specialization
402         of member of class template implicit instantiation.
403
404 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
405
406         PR c++/35669
407         * call.c (conversion_null_warnings): Replace -Wconversion with
408         -Wconversion-null.
409         * cvt.c (build_expr_type_conversion): Likewise.
410
411 2010-02-18  Jason Merrill  <jason@redhat.com>
412
413         PR c++/42837
414         * class.c (create_vtable_ptr): Set DECL_PACKED if type is packed.
415
416         PR c++/43108
417         * typeck.c (cp_build_binary_op): Adapt mixed complex/non handling from
418         C build_binary_op.
419         * cp-tree.h (WANT_VECTOR_OR_COMPLEX): Rename from WANT_VECTOR.
420         * cvt.c (build_expr_type_conversion): Allow COMPLEX_TYPE.
421
422         PR c++/43070
423         * semantics.c (finish_goto_stmt): Don't call decay_conversion.
424
425         PR c++/26261
426         PR c++/43101
427         * pt.c (tsubst_qualified_id): Do normal lookup in non-dependent scope.
428         (maybe_update_decl_type): New fn.
429         * parser.c (cp_parser_init_declarator): Use it.
430
431         PR c++/43109
432         * semantics.c (begin_class_definition): Don't crash on unnamed ns.
433
434 2010-02-17  Jason Merrill  <jason@redhat.com>
435
436         PR c++/43075
437         * call.c (build_over_call): Don't create zero-sized assignments.
438         * cp-gimplify.c (cp_genericize_r): Don't remove them here.
439         * cp-objcp-common.c (cp_expr_size): Remove.
440         * cp-tree.h: Remove prototype.
441
442         PR c++/43069
443         * name-lookup.c (set_decl_namespace): Don't copy DECL_CONTEXT if the
444         decl we looked up doesn't match.
445
446         PR c++/43093
447         * cp-gimplify.c (cp_gimplify_expr) [INIT_EXPR]: Return if we don't
448         have an INIT_EXPR anymore.
449
450         PR c++/43079
451         * pt.c (convert_nontype_argument): Change assert to test.
452
453 2010-02-16  Jason Merrill  <jason@redhat.com>
454
455         * cp-gimplify.c (cp_gimplify_expr): Fix error recovery.
456
457         PR c++/43031
458         * cp-gimplify.c (cp_gimplify_expr) [MODIFY_EXPR]: Use
459         VIEW_CONVERT_EXPR for conversions between structural equality types
460         that the back end can't tell are the same.
461
462         PR c++/43036
463         * tree.c (build_cplus_array_type): Set TYPE_MAIN_VARIANT to strip
464         cv-quals from element here.
465         (cp_build_qualified_type_real): Not here.  Preserve typedef name.
466
467 2010-02-14  Jason Merrill  <jason@redhat.com>
468
469         PR c++/41997
470         * semantics.c (finish_compound_literal): Use
471         cp_apply_type_quals_to_decl when creating a static variable.
472
473 2010-02-12  Jason Merrill  <jason@redhat.com>
474
475         PR c++/43024
476         * name-lookup.h (current_binding_level): Check for null
477         cp_function_chain.
478
479 2010-02-12  Jason Merrill  <jason@redhat.com>
480
481         PR c++/43054
482         * tree.c (cp_tree_equal): Correct CALL_EXPR logic.
483
484 2010-02-12  Jakub Jelinek  <jakub@redhat.com>
485
486         PR c++/43033
487         * name-lookup.c (pushdecl_maybe_friend): Check default args of t
488         instead of x.
489
490 2010-02-10  Jason Merrill  <jason@redhat.com>
491
492         PR c++/41896
493         * semantics.c (outer_lambda_capture_p): Revert.
494         (add_capture): Only finish_member_declaration if
495         we're in the lambda class.
496         (register_capture_members): New.
497         * cp-tree.h: Declare it.
498         * parser.c (cp_parser_lambda_expression): Call it.
499
500 2010-02-10  Jason Merrill  <jason@redhat.com>
501
502         PR c++/41896
503         * semantics.c (outer_lambda_capture_p): Use current_function_decl
504         instead of current_class_type.
505
506 2010-02-10  Jason Merrill  <jason@redhat.com>
507
508         PR c++/42983, core issue 906
509         * method.c (defaultable_fn_check): Check virtualness.
510
511 2010-02-10  Jason Merrill  <jason@redhat.com>
512
513         PR c++/43016
514         * semantics.c (maybe_add_lambda_conv_op): Set DECL_INTERFACE_KNOWN.
515
516 2010-02-10  Shujing Zhao  <pearly.zhao@oracle.com>
517
518         * Make-lang.in (cp/cvt.o, cp/parser.o, cp/search.o): Depend on intl.h.
519         * cvt.c (warn_ref_binding): Wrap the messages into G_() for easy
520         translation.
521         * parser.c (cp_parser_postfix_expression, cp_parser_new_type_id)
522         (cp_parser_cast_expression, cp_parser_condition, cp_parser_decltype)
523         (cp_parser_parameter_declaration)
524         (cp_parser_exception_specification_opt)
525         (cp_parser_exception_declaration): Likewise.
526         * pt.c (check_default_tmpl_args): Likewise.
527         * search.c (lookup_field_r): Likewise.
528
529 2010-02-09  Jason Merrill  <jason@redhat.com>
530
531         PR c++/42399
532         * pt.c (tsubst_copy_and_build): Propagate LAMBDA_EXPR_LOCATION.
533
534 2010-02-09  Jason Merrill  <jason@redhat.com>
535
536         PR c++/42370
537         * decl2.c (change_return_type): New fn.
538         * semantics.c (apply_lambda_return_type): Use it.
539         * cp-tree.h: Declare it.
540
541 2010-02-05  Richard Guenther  <rguenther@suse.de>
542
543         * Make-lang.in (cp/cp-lang.o): Depend on gt-cp-cp-lang.h.
544         * cp-lang.c: Include gt-cp-cp-lang.h.
545         * config-lang.in (gtfiles): Add cp/cp-lang.c.
546
547 2010-02-05  Dodji Seketeli  <dodji@redhat.com>
548
549         PR c++/42915
550         * typeck.c (get_template_parms_of_dependent_type): Try getting
551         the template parameters fromt the type itself first.
552
553 2010-02-03  Jason Merrill  <jason@redhat.com>
554
555         PR c++/4926
556         PR c++/38600
557         * mangle.c (write_unqualified_id): Split out from write_expression.
558         (write_unqualified_name): Call it.
559         (write_member_name): Likewise.
560         (write_expression): Support TEMPLATE_ID_EXPR.
561         Disambiguate operator names.
562
563         PR c++/12909
564         * mangle.c (write_type) [VECTOR_TYPE]: Change mangling with
565         -fabi-version=4.
566
567 2010-02-02  Jason Merrill  <jason@redhat.com>
568
569         PR c++/41090
570         * decl.c (cp_finish_decl): Add local statics to cfun->local_decls.
571         * optimize.c (clone_body): Remap their initializers when making base
572         variants.
573         (maybe_clone_body): Complain if multiple clones aren't safe.
574
575 2010-01-29  Dodji Seketeli  <dodji@redhat.com>
576
577         PR c++/42758
578         PR c++/42634
579         PR c++/42336
580         PR c++/42797
581         PR c++/42880
582         * cp-tree.h (NON_DEFAULT_TEMPLATE_ARGS_COUNT,
583         SET_NON_DEFAULT_TEMPLATE_ARGS_COUNT,
584         GET_NON_DEFAULT_TEMPLATE_ARGS_COUNT): New accessor macros.
585         * pt.c (coerce_template_parms, type_unification_real,
586         expand_template_argument_pack, coerce_template_parameter_pack):
587         Set the non default template args count.
588         (current_template_args): Always set non defaulted
589         template args count when compiled with --enable-checking
590         (tsubst_template_args, type_unification_real): Propagate the non
591         defaulted template args count.
592         * error.c (get_non_default_template_args_count): Renamed
593         count_non_default_template_args into this. Don't calculate the
594         non default template argument count anymore. Use the new
595         accessor macros above to get it.
596         (dump_template_argument_list, dump_type, dump_decl,
597         dump_template_parms): Adjust.
598         * parser.c (cp_parser_template_argument_list): Always set defaulted
599         template args count when compiled with --enable-checking.
600
601 2010-01-29  Shujing Zhao  <pearly.zhao@oracle.com>
602
603         * decl.c (redeclaration_error_message): Wrap the return messages into
604         G_() for easy translation.
605
606 2010-01-28  Jason Merrill  <jason@redhat.com>
607
608         PR c++/42880
609         * semantics.c (begin_class_definition): Don't use type_as_string.
610
611 2010-01-28  Dodji Seketeli  <dodji@redhat.com>
612
613         PR c++/42713
614         PR c++/42820
615         * typeck.c (get_template_parms_of_dependent_type): Factorized
616         this out of incompatible_template_type_parms_p
617         (incompatible_dependent_types_p): Renamed
618         incompatible_template_type_parms_p into this. Make it detect
619         two incompatible dependent typedefs too.
620         (structural_comptypes): Use incompatible_dependent_types_p.
621         * pt.c (get_template_info):
622         Handle BOUND_TEMPLATE_TEMPLATE_PARAM.
623
624 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
625             Jason Merrill  <jason@redhat.com>
626
627         * mangle.c (write_type): Mangle transparent record as member type.
628         * semantics.c (begin_class_definition): Recognize decimal classes
629         and set TYPE_TRANSPARENT_AGGR.
630
631 2010-01-20  Jason Merrill  <jason@redhat.com>
632
633         PR c++/42338
634         * mangle.c (write_expression): Handle tree codes that have extra
635         arguments in the middle-end.
636
637 2010-01-20  Paolo Carlini  <paolo.carlini@oracle.com>
638
639         PR c++/42038
640         * except.c (expand_start_catch_block): Deal correctly with
641         do_begin_catch returning error_mark_node.
642
643 2010-01-20  Jason Merrill  <jason@redhat.com>
644
645         PR c++/41788
646         * class.c (layout_class_type): Set packed_maybe_necessary for packed
647         non-PODs.
648
649         PR c++/41920
650         * semantics.c (build_lambda_object): Call mark_used on captured
651         variables.
652
653         PR c++/40750
654         * decl.c (grokdeclarator): Clear type_quals for a member function
655         declared using a typedef.  Don't complain about adding cv-quals
656         to a function typedef in C++0x mode.
657
658 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
659
660         * decl.c (create_array_type_for_decl): Remove set but not used
661         variable error_msg.  Remove break stmts after return stmts.
662
663 2010-01-19  Dodji Seketeli  <dodji@redhat.com>
664
665         * error.c (dump_template_parms, count_non_default_template_args):
666         Revert fix of PR c++/42634.
667
668 2010-01-18  Dodji Seketeli  <dodji@redhat.com>
669
670         PR c++/42634
671         * error.c (dump_template_parms): Use innermost template
672         arguments before calling count_non_default_template_args.
673         (count_non_default_template_args): We are being called with
674         template innermost arguments now. There is no need to ensure
675         that again.
676
677 2010-01-18  Dodji Seketeli  <dodji@redhat.com>
678
679         PR c++/42766
680         * cvt.c (build_expr_type_conversion): Look through OVERLOAD.
681
682 2010-01-17  Dodji Seketeli  <dodji@redhat.com>
683
684         PR c++/42697
685         *pt.c (tsubst_decl):  Revert commit for PR c++/42697.
686
687 2010-01-17  Dodji Seketeli  <dodji@redhat.com>
688
689         PR c++/42697
690         *pt.c (tsubst_decl): Get the arguments of a specialization from
691         the specialization template, not from the most general template.
692
693 2010-01-16  Jason Merrill  <jason@redhat.com>
694
695         PR c++/42761
696         * semantics.c (finish_decltype_type): Within a template, treat
697         unresolved CALL_EXPR as dependent.
698
699 2010-01-15  Dodji Seketeli  <dodji@redhat.com>
700
701         * error.c (dump_template_parms,count_non_default_template_args):
702         Revert changes of PR c++/42634.
703
704 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
705
706         PR middle-end/42674
707         * decl.c (finish_function): Don't emit -Wreturn-type warnings in
708         functions with noreturn attribute.
709
710 2010-01-14  Jason Merrill  <jason@redhat.com>
711
712         PR c++/42701
713         * call.c (build_new_method_call): Don't free the vec here.
714
715         PR c++/42655
716         * call.c (convert_like_real): Do full decay_conversion for ck_rvalue.
717
718 2010-01-13  Dodji Seketeli  <dodji@redhat.com>
719
720         PR c++/42634
721         * error.c (dump_template_parms): Use innermost template
722         arguments before calling count_non_default_template_args.
723         (count_non_default_template_args): We are being called with
724         template innermost arguments now. There is no need to ensure
725         that again.
726
727 2010-01-07  Dodji Seketeli  <dodji@redhat.com>
728
729         c++/40155
730         * pt.c (unify_pack_expansion): In non-deduced contexts, re-use template
731         arguments that were previously deduced.
732
733 2010-01-05  Jason Merrill  <jason@redhat.com>
734
735         * pt.c (unify_pack_expansion): Handle deduction from init-list.
736         * call.c (build_over_call): Don't complain about it.
737
738 2010-01-04  Jason Merrill  <jason@redhat.com>
739
740         PR c++/42555
741         * pt.c (tsubst_decl): Don't apply type attributes in place.
742
743         PR c++/42567
744         * semantics.c (describable_type): Remove decltype comment and
745         semantics.
746
747
748 \f
749 Copyright (C) 2010 Free Software Foundation, Inc.
750
751 Copying and distribution of this file, with or without modification,
752 are permitted in any medium without royalty provided the copyright
753 notice and this notice are preserved.