re PR c++/41468 (SFINAE for expressions doesn't consider ambiguous conversion sequences)
[gcc.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.