OSDN Git Service

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