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: Include cgraph.h.
328         (mangle_decl): If the mangled name will change in a later
329         ABI version, make the later mangled name an alias.
330         * method.c (make_alias_for): Copy DECL_ARGUMENTS.
331         * Make-lang.in (mangle.o): Depend on cgraph.h.
332         * method.c (make_alias_for): Handle VAR_DECL, too.
333         * decl2.c (vague_linkage_p): Rename from vague_linkage_fn_p.
334         * tree.c (no_linkage_check): Adjust.
335         * decl.c (maybe_commonize_var): Adjust.
336         * cp-tree.h: Adjust.
337
338 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
339
340         * pt.c (redeclare_class_template): Use error_n and inform_n.
341
342 2010-02-27  Mark Mitchell  <mark@codesourcery.com>
343
344         PR c++/42748
345         * cp-tree.h (push_tinst_level): Declare.
346         (pop_tinst_level): Likewise.
347         * pt.c (push_tinst_level): Give it external linkage.
348         (pop_tinst_level): Likewise.
349         * mangle.c (mangle_decl_string): Set the source location to that
350         of the decl while mangling.
351
352 2010-02-27  Simon Martin  <simartin@users.sourceforge.net>
353
354         PR c++/42054
355         * pt.c (redeclare_class_template): Return false if there are erroneous
356         template parameters.
357
358 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
359
360         * pt.c (push_tinst_level): Replace -ftemplate-depth- with 
361         -ftemplate-depth=.
362
363 2010-02-24  Jason Merrill  <jason@redhat.com>
364
365         PR c++/12909
366         * mangle.c (write_type): Give -Wabi warning for old vector mangling.
367
368         * class.c (layout_class_type): Don't give -Wabi warning for a bug
369         in a previous ABI version.
370
371 2010-02-23  Jason Merrill  <jason@redhat.com>
372
373         PR c++/43143
374         * typeck2.c (digest_init_r): Accept value init of array.
375
376 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
377
378         PR c++/43126
379         * typeck.c (convert_arguments): Update error message.
380
381 2010-02-22  Mike Stump  <mikestump@comcast.net>
382
383         PR c++/43125
384         * decl.c (duplicate_decls): Merge DECL_PRESERVE_P.
385
386 2010-02-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
387
388         PR c++/23510
389         * error.c (print_instantiation_partial_context_line): New.
390         (print_instantiation_partial_context): Print at most 12 contexts,
391         skip the rest with a message.
392
393 2010-02-21  Dodji Seketeli  <dodji@redhat.com>
394
395         PR c++/42824
396         * pt.c (lookup_template_class): Better support of specialization
397         of member of class template implicit instantiation.
398
399 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
400
401         PR c++/35669
402         * call.c (conversion_null_warnings): Replace -Wconversion with
403         -Wconversion-null.
404         * cvt.c (build_expr_type_conversion): Likewise.
405
406 2010-02-18  Jason Merrill  <jason@redhat.com>
407
408         PR c++/42837
409         * class.c (create_vtable_ptr): Set DECL_PACKED if type is packed.
410
411         PR c++/43108
412         * typeck.c (cp_build_binary_op): Adapt mixed complex/non handling from
413         C build_binary_op.
414         * cp-tree.h (WANT_VECTOR_OR_COMPLEX): Rename from WANT_VECTOR.
415         * cvt.c (build_expr_type_conversion): Allow COMPLEX_TYPE.
416
417         PR c++/43070
418         * semantics.c (finish_goto_stmt): Don't call decay_conversion.
419
420         PR c++/26261
421         PR c++/43101
422         * pt.c (tsubst_qualified_id): Do normal lookup in non-dependent scope.
423         (maybe_update_decl_type): New fn.
424         * parser.c (cp_parser_init_declarator): Use it.
425
426         PR c++/43109
427         * semantics.c (begin_class_definition): Don't crash on unnamed ns.
428
429 2010-02-17  Jason Merrill  <jason@redhat.com>
430
431         PR c++/43075
432         * call.c (build_over_call): Don't create zero-sized assignments.
433         * cp-gimplify.c (cp_genericize_r): Don't remove them here.
434         * cp-objcp-common.c (cp_expr_size): Remove.
435         * cp-tree.h: Remove prototype.
436
437         PR c++/43069
438         * name-lookup.c (set_decl_namespace): Don't copy DECL_CONTEXT if the
439         decl we looked up doesn't match.
440
441         PR c++/43093
442         * cp-gimplify.c (cp_gimplify_expr) [INIT_EXPR]: Return if we don't
443         have an INIT_EXPR anymore.
444
445         PR c++/43079
446         * pt.c (convert_nontype_argument): Change assert to test.
447
448 2010-02-16  Jason Merrill  <jason@redhat.com>
449
450         * cp-gimplify.c (cp_gimplify_expr): Fix error recovery.
451
452         PR c++/43031
453         * cp-gimplify.c (cp_gimplify_expr) [MODIFY_EXPR]: Use
454         VIEW_CONVERT_EXPR for conversions between structural equality types
455         that the back end can't tell are the same.
456
457         PR c++/43036
458         * tree.c (build_cplus_array_type): Set TYPE_MAIN_VARIANT to strip
459         cv-quals from element here.
460         (cp_build_qualified_type_real): Not here.  Preserve typedef name.
461
462 2010-02-14  Jason Merrill  <jason@redhat.com>
463
464         PR c++/41997
465         * semantics.c (finish_compound_literal): Use
466         cp_apply_type_quals_to_decl when creating a static variable.
467
468 2010-02-12  Jason Merrill  <jason@redhat.com>
469
470         PR c++/43024
471         * name-lookup.h (current_binding_level): Check for null
472         cp_function_chain.
473
474 2010-02-12  Jason Merrill  <jason@redhat.com>
475
476         PR c++/43054
477         * tree.c (cp_tree_equal): Correct CALL_EXPR logic.
478
479 2010-02-12  Jakub Jelinek  <jakub@redhat.com>
480
481         PR c++/43033
482         * name-lookup.c (pushdecl_maybe_friend): Check default args of t
483         instead of x.
484
485 2010-02-10  Jason Merrill  <jason@redhat.com>
486
487         PR c++/41896
488         * semantics.c (outer_lambda_capture_p): Revert.
489         (add_capture): Only finish_member_declaration if
490         we're in the lambda class.
491         (register_capture_members): New.
492         * cp-tree.h: Declare it.
493         * parser.c (cp_parser_lambda_expression): Call it.
494
495 2010-02-10  Jason Merrill  <jason@redhat.com>
496
497         PR c++/41896
498         * semantics.c (outer_lambda_capture_p): Use current_function_decl
499         instead of current_class_type.
500
501 2010-02-10  Jason Merrill  <jason@redhat.com>
502
503         PR c++/42983, core issue 906
504         * method.c (defaultable_fn_check): Check virtualness.
505
506 2010-02-10  Jason Merrill  <jason@redhat.com>
507
508         PR c++/43016
509         * semantics.c (maybe_add_lambda_conv_op): Set DECL_INTERFACE_KNOWN.
510
511 2010-02-10  Shujing Zhao  <pearly.zhao@oracle.com>
512
513         * Make-lang.in (cp/cvt.o, cp/parser.o, cp/search.o): Depend on intl.h.
514         * cvt.c (warn_ref_binding): Wrap the messages into G_() for easy
515         translation.
516         * parser.c (cp_parser_postfix_expression, cp_parser_new_type_id)
517         (cp_parser_cast_expression, cp_parser_condition, cp_parser_decltype)
518         (cp_parser_parameter_declaration)
519         (cp_parser_exception_specification_opt)
520         (cp_parser_exception_declaration): Likewise.
521         * pt.c (check_default_tmpl_args): Likewise.
522         * search.c (lookup_field_r): Likewise.
523
524 2010-02-09  Jason Merrill  <jason@redhat.com>
525
526         PR c++/42399
527         * pt.c (tsubst_copy_and_build): Propagate LAMBDA_EXPR_LOCATION.
528
529 2010-02-09  Jason Merrill  <jason@redhat.com>
530
531         PR c++/42370
532         * decl2.c (change_return_type): New fn.
533         * semantics.c (apply_lambda_return_type): Use it.
534         * cp-tree.h: Declare it.
535
536 2010-02-05  Richard Guenther  <rguenther@suse.de>
537
538         * Make-lang.in (cp/cp-lang.o): Depend on gt-cp-cp-lang.h.
539         * cp-lang.c: Include gt-cp-cp-lang.h.
540         * config-lang.in (gtfiles): Add cp/cp-lang.c.
541
542 2010-02-05  Dodji Seketeli  <dodji@redhat.com>
543
544         PR c++/42915
545         * typeck.c (get_template_parms_of_dependent_type): Try getting
546         the template parameters fromt the type itself first.
547
548 2010-02-03  Jason Merrill  <jason@redhat.com>
549
550         PR c++/4926
551         PR c++/38600
552         * mangle.c (write_unqualified_id): Split out from write_expression.
553         (write_unqualified_name): Call it.
554         (write_member_name): Likewise.
555         (write_expression): Support TEMPLATE_ID_EXPR.
556         Disambiguate operator names.
557
558         PR c++/12909
559         * mangle.c (write_type) [VECTOR_TYPE]: Change mangling with
560         -fabi-version=4.
561
562 2010-02-02  Jason Merrill  <jason@redhat.com>
563
564         PR c++/41090
565         * decl.c (cp_finish_decl): Add local statics to cfun->local_decls.
566         * optimize.c (clone_body): Remap their initializers when making base
567         variants.
568         (maybe_clone_body): Complain if multiple clones aren't safe.
569
570 2010-01-29  Dodji Seketeli  <dodji@redhat.com>
571
572         PR c++/42758
573         PR c++/42634
574         PR c++/42336
575         PR c++/42797
576         PR c++/42880
577         * cp-tree.h (NON_DEFAULT_TEMPLATE_ARGS_COUNT,
578         SET_NON_DEFAULT_TEMPLATE_ARGS_COUNT,
579         GET_NON_DEFAULT_TEMPLATE_ARGS_COUNT): New accessor macros.
580         * pt.c (coerce_template_parms, type_unification_real,
581         expand_template_argument_pack, coerce_template_parameter_pack):
582         Set the non default template args count.
583         (current_template_args): Always set non defaulted
584         template args count when compiled with --enable-checking
585         (tsubst_template_args, type_unification_real): Propagate the non
586         defaulted template args count.
587         * error.c (get_non_default_template_args_count): Renamed
588         count_non_default_template_args into this. Don't calculate the
589         non default template argument count anymore. Use the new
590         accessor macros above to get it.
591         (dump_template_argument_list, dump_type, dump_decl,
592         dump_template_parms): Adjust.
593         * parser.c (cp_parser_template_argument_list): Always set defaulted
594         template args count when compiled with --enable-checking.
595
596 2010-01-29  Shujing Zhao  <pearly.zhao@oracle.com>
597
598         * decl.c (redeclaration_error_message): Wrap the return messages into
599         G_() for easy translation.
600
601 2010-01-28  Jason Merrill  <jason@redhat.com>
602
603         PR c++/42880
604         * semantics.c (begin_class_definition): Don't use type_as_string.
605
606 2010-01-28  Dodji Seketeli  <dodji@redhat.com>
607
608         PR c++/42713
609         PR c++/42820
610         * typeck.c (get_template_parms_of_dependent_type): Factorized
611         this out of incompatible_template_type_parms_p
612         (incompatible_dependent_types_p): Renamed
613         incompatible_template_type_parms_p into this. Make it detect
614         two incompatible dependent typedefs too.
615         (structural_comptypes): Use incompatible_dependent_types_p.
616         * pt.c (get_template_info):
617         Handle BOUND_TEMPLATE_TEMPLATE_PARAM.
618
619 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
620             Jason Merrill  <jason@redhat.com>
621
622         * mangle.c (write_type): Mangle transparent record as member type.
623         * semantics.c (begin_class_definition): Recognize decimal classes
624         and set TYPE_TRANSPARENT_AGGR.
625
626 2010-01-20  Jason Merrill  <jason@redhat.com>
627
628         PR c++/42338
629         * mangle.c (write_expression): Handle tree codes that have extra
630         arguments in the middle-end.
631
632 2010-01-20  Paolo Carlini  <paolo.carlini@oracle.com>
633
634         PR c++/42038
635         * except.c (expand_start_catch_block): Deal correctly with
636         do_begin_catch returning error_mark_node.
637
638 2010-01-20  Jason Merrill  <jason@redhat.com>
639
640         PR c++/41788
641         * class.c (layout_class_type): Set packed_maybe_necessary for packed
642         non-PODs.
643
644         PR c++/41920
645         * semantics.c (build_lambda_object): Call mark_used on captured
646         variables.
647
648         PR c++/40750
649         * decl.c (grokdeclarator): Clear type_quals for a member function
650         declared using a typedef.  Don't complain about adding cv-quals
651         to a function typedef in C++0x mode.
652
653 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
654
655         * decl.c (create_array_type_for_decl): Remove set but not used
656         variable error_msg.  Remove break stmts after return stmts.
657
658 2010-01-19  Dodji Seketeli  <dodji@redhat.com>
659
660         * error.c (dump_template_parms, count_non_default_template_args):
661         Revert fix of PR c++/42634.
662
663 2010-01-18  Dodji Seketeli  <dodji@redhat.com>
664
665         PR c++/42634
666         * error.c (dump_template_parms): Use innermost template
667         arguments before calling count_non_default_template_args.
668         (count_non_default_template_args): We are being called with
669         template innermost arguments now. There is no need to ensure
670         that again.
671
672 2010-01-18  Dodji Seketeli  <dodji@redhat.com>
673
674         PR c++/42766
675         * cvt.c (build_expr_type_conversion): Look through OVERLOAD.
676
677 2010-01-17  Dodji Seketeli  <dodji@redhat.com>
678
679         PR c++/42697
680         *pt.c (tsubst_decl):  Revert commit for PR c++/42697.
681
682 2010-01-17  Dodji Seketeli  <dodji@redhat.com>
683
684         PR c++/42697
685         *pt.c (tsubst_decl): Get the arguments of a specialization from
686         the specialization template, not from the most general template.
687
688 2010-01-16  Jason Merrill  <jason@redhat.com>
689
690         PR c++/42761
691         * semantics.c (finish_decltype_type): Within a template, treat
692         unresolved CALL_EXPR as dependent.
693
694 2010-01-15  Dodji Seketeli  <dodji@redhat.com>
695
696         * error.c (dump_template_parms,count_non_default_template_args):
697         Revert changes of PR c++/42634.
698
699 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
700
701         PR middle-end/42674
702         * decl.c (finish_function): Don't emit -Wreturn-type warnings in
703         functions with noreturn attribute.
704
705 2010-01-14  Jason Merrill  <jason@redhat.com>
706
707         PR c++/42701
708         * call.c (build_new_method_call): Don't free the vec here.
709
710         PR c++/42655
711         * call.c (convert_like_real): Do full decay_conversion for ck_rvalue.
712
713 2010-01-13  Dodji Seketeli  <dodji@redhat.com>
714
715         PR c++/42634
716         * error.c (dump_template_parms): Use innermost template
717         arguments before calling count_non_default_template_args.
718         (count_non_default_template_args): We are being called with
719         template innermost arguments now. There is no need to ensure
720         that again.
721
722 2010-01-07  Dodji Seketeli  <dodji@redhat.com>
723
724         c++/40155
725         * pt.c (unify_pack_expansion): In non-deduced contexts, re-use template
726         arguments that were previously deduced.
727
728 2010-01-05  Jason Merrill  <jason@redhat.com>
729
730         * pt.c (unify_pack_expansion): Handle deduction from init-list.
731         * call.c (build_over_call): Don't complain about it.
732
733 2010-01-04  Jason Merrill  <jason@redhat.com>
734
735         PR c++/42555
736         * pt.c (tsubst_decl): Don't apply type attributes in place.
737
738         PR c++/42567
739         * semantics.c (describable_type): Remove decltype comment and
740         semantics.
741
742
743 \f
744 Copyright (C) 2010 Free Software Foundation, Inc.
745
746 Copying and distribution of this file, with or without modification,
747 are permitted in any medium without royalty provided the copyright
748 notice and this notice are preserved.