OSDN Git Service

PR c++/44967
[pf3gnuchains/gcc-fork.git] / gcc / cp / ChangeLog
1 2010-07-20  Jason Merrill  <jason@redhat.com>
2
3         PR c++/44967
4         * pt.c (tsubst_copy_and_build): Rework last change.
5
6         PR c++/44967
7         * pt.c (tsubst_copy_and_build): Handle partial substitution of
8         CALL_EXPR.
9
10 2010-07-19  Jason Merrill  <jason@redhat.com>
11
12         PR c++/44996
13         * semantics.c (finish_decltype_type): Correct decltype
14         of parenthesized rvalue reference variable.
15
16         PR c++/44969
17         * tree.c (cp_tree_equal): Compare type of *CAST_EXPR.
18         * pt.c (iterative_hash_template_arg): Hash type of *CAST_EXPR.
19
20 2010-07-19  Paolo Carlini  <paolo.carlini@oracle.com>
21
22         PR c++/44969
23         * typeck.c (build_x_compound_expr_from_list): Add tsubst_flags_t
24         parameter.
25         * cp-tree.h: Adjust declaration.
26         * init.c (perform_member_init): Adjust caller.
27         * decl.c (grok_reference_init, cp_finish_decl): Likewise.
28         * typeck2.c (store_init_value): Likewise.
29         (build_functional_cast): Pass complain argument to
30         build_x_compound_expr_from_list.
31
32 2010-07-16  Jason Merrill  <jason@redhat.com>
33
34         PR c++/32505
35         * pt.c (process_partial_specialization): Diagnose partial
36         specialization after instantiation.
37         (most_specialized_class): Add complain parm.
38
39         * ptree.c (cxx_print_xnode): Handle TEMPLATE_INFO.
40
41 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
42
43         * init.c (build_new_1): Use cp_build_function_call_nary instead of
44         cp_build_function_call.
45
46 2010-07-15  Jason Merrill  <jason@redhat.com>
47
48         PR c++/44909
49         * call.c (add_function_candidate): If we're working on an implicit
50         declaration, don't consider candidates that won't match.
51         * typeck.c (same_type_ignoring_top_level_qualifiers_p): Now a fn.
52         * cp-tree.h (same_type_ignoring_top_level_qualifiers_p): Adjust.
53
54         Revert:
55         * cp-tree.h (struct lang_type_class): Add has_user_opeq.
56         (TYPE_HAS_USER_OPEQ): New.
57         * decl.c (grok_special_member_properties): Set it.
58         * class.c (add_implicitly_declared_members): Don't lazily declare
59         constructors/operator= if a base or member has a user-declared one.
60         (check_bases_and_members, check_bases): Adjust.
61         (check_field_decls, check_field_decl): Adjust.
62
63 2010-07-15  Anatoly Sokolov  <aesok@post.ru>
64
65         * decl.c (integer_three_node): Remove.
66         (cxx_init_decl_processing): Do not initialize the integer_three_node.
67         * cp-tree.h (integer_three_node): Remove.
68
69 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
70
71         * cp-tree.h: Carefully replace TREE_CHAIN with DECL_CHAIN.
72         * call.c: Likewise.
73         * class.c: Likewise.
74         * cp-gimplify.c: Likewise.
75         * decl.c: Likewise.
76         * decl2.c: Likewise.
77         * init.c: Likewise.
78         * mangle.c: Likewise.
79         * name-lookup.c: Likewise.
80         * optimize.c: Likewise.
81         * parser.c: Likewise.
82         * pt.c: Likewise.
83         * rtti.c: Likewise.
84         * search.c: Likewise.
85         * semantics.c: Likewise.
86         * typeck.c: Likewise.
87         * typeck2.c: Likewise.
88
89 2010-07-14  Jason Merrill  <jason@redhat.com>
90
91         * init.c (sort_mem_initializers): Rename "field_type" to "ctx".
92         (build_field_list): Cache field type.
93
94         Implement C++0x unrestricted unions (N2544)
95         * class.c (check_field_decl): Loosen union handling in C++0x.
96         * method.c (walk_field_subobs): Split out from...
97         (synthesized_method_walk): ...here.  Set msg before loops.
98         (process_subob_fn): Check for triviality in union members.
99         * init.c (sort_mem_initializers): Splice out uninitialized
100         anonymous unions and union members.
101         (push_base_cleanups): Don't automatically destroy anonymous unions
102         and union members.
103
104 2010-07-13  Jason Merrill  <jason@redhat.com>
105
106         PR c++/44909
107         * cp-tree.h (struct lang_type_class): Add has_user_opeq.
108         (TYPE_HAS_USER_OPEQ): New.
109         * decl.c (grok_special_member_properties): Set it.
110         * class.c (add_implicitly_declared_members): Don't lazily declare
111         constructors/operator= if a base or member has a user-declared one.
112         (check_bases_and_members, check_bases): Adjust.
113         (check_field_decls, check_field_decl): Adjust.
114         * method.c (synthesized_method_walk): Initialize check_vdtor.
115
116         PR c++/44540
117         * mangle.c (write_type): Canonicalize.
118         (canonicalize_for_substitution): Retain cv-quals on FUNCTION_TYPE.
119         (write_CV_qualifiers_for_type): Ignore them in abi>=5.
120
121 2010-07-13  Paolo Carlini  <paolo.carlini@oracle.com>
122
123         PR c++/44908
124         * call.c (convert_like_real): Adjust convert_ptrmem call, pass
125         complain argument.
126         * typeck.c (get_delta_difference): Update prototype, add a
127         tsubst_flags_t parameter; update get_delta_difference_1 calls and
128         add checks for error_mark_node.
129         (get_delta_difference_1): Update prototype, add a tsubst_flags_t
130         parameter; update lookup_base call.
131         (build_ptrmemfunc): Update prototype, add a tsubst_flags_t
132         parameter; update get_delta_difference call and add check for
133         error_mark_node.
134         (convert_ptrmem): Update prototype, add a tsubst_flags_t
135         parameter; update get_delta_difference call and add check for
136         error_mark_node;  update build_ptrmemfunc call.
137         (build_static_cast_1): Adjust convert_ptrmem call.
138         (expand_ptrmemfunc_cst): Adjust get_delta_difference call.
139         (cp_build_unary_op): Adjust build_ptrmemfunc call.
140         * cvt.c (cp_convert_to_pointer, convert_force): Adjust convert_ptrmem
141         and build_ptrmemfunc calls.
142         * cp-tree.h: Update build_ptrmemfunc and convert_ptrmem prototypes.
143
144 2010-07-12  Paolo Carlini  <paolo.carlini@oracle.com>
145
146         PR c++/44907
147         * call.c (build_temp): Add tsubst_flags_t complain parameter;
148         adjust build_special_member_call call, pass complain.
149         (convert_like_real): Adjust build_temp call, pass complain.
150
151 2010-07-09  Jason Merrill  <jason@redhat.com>
152
153         PR c++/43120
154         * cp-tree.h (BV_LOST_PRIMARY): New macro.
155         * class.c (update_vtable_entry_for_fn): Fix covariant thunk logic.
156         Set BV_LOST_PRIMARY.
157         (build_vtbl_initializer): Check BV_LOST_PRIMARY.
158
159 2010-07-08  Jason Merrill  <jason@redhat.com>
160
161         PR c++/43120
162         * class.c (update_vtable_entry_for_fn): Fix handling of dummy
163         virtual bases for covariant thunks.
164
165 2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
166
167         * cp-tree.h: Do not include toplev.h.
168
169 2010-07-06  Jason Merrill  <jason@redhat.com>
170
171         PR c++/44703
172         * call.c (is_std_init_list): Look through typedefs.
173
174         PR c++/44778
175         * init.c (build_offset_ref): If scope isn't dependent,
176         don't exit early.  Look at TYPE_MAIN_VARIANT.
177         * pt.c (tsubst_copy) [OFFSET_REF]: Do substitution.
178
179         * error.c (dump_function_decl): Don't crash on null DECL_NAME.
180
181 2010-07-06  Shujing Zhao  <pearly.zhao@oracle.com>
182
183         * cp-tree.h (impl_conv_void): New type.
184         (convert_to_void): Adjust prototype.
185         * cvt.c (convert_to_void): Use impl_conv_void, emit and adjust the
186         diagnostic for easy translation. Change caller.
187         * typeck.c: Update call to convert_to_void.
188         * semantics.c: Likewise.
189         * init.c: Likewise.
190
191 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
192
193         * decl.c (cp_finish_decl): Call add_local_decl.
194         * optimize.c (clone_body): Adjust for new type of cfun->local_decls.
195
196 2010-07-05  Paolo Carlini  <paolo.carlini@oracle.com>
197
198         * pt.c (tsubst): Early declare code = TREE_CODE (t) and use it
199         throughout.
200
201 2010-07-05  Shujing Zhao  <pearly.zhao@oracle.com>
202
203         PR c++/22138
204         * parser.c (cp_parser_primary_expression): Error if local template is
205         declared.
206
207 2010-07-02  Le-Chun Wu  <lcwu@google.com>
208
209         PR/44128
210         * name-lookup.c (pushdecl_maybe_friend): Warn when a local decl
211         (variable or type) shadows another type.
212
213 2010-07-02  Jakub Jelinek  <jakub@redhat.com>
214
215         PR c++/44780
216         * typeck.c (convert_for_assignment): When converting a convertible
217         vector type or objc++ types, call mark_rvalue_use.
218         * typeck2.c (build_m_component_ref): Use return values from
219         mark_rvalue_use or mark_lvalue_use.
220         * class.c (build_base_path): Likewise.
221         * call.c (build_conditional_expr): Likewise.
222
223 2010-07-02  Paolo Carlini  <paolo.carlini@oracle.com>
224
225         PR c++/44039
226         * pt.c (tsubst_baselink): Return error_mark_node if lookup_fnfields
227         returns NULL_TREE.
228
229 2010-07-01  Richard Guenther  <rguenther@suse.de>
230
231         * cp-gimplify.c (cp_gimplify_expr): Open-code the rhs
232         predicate we are looking for, allow non-gimplified
233         INDIRECT_REFs.
234
235 2010-06-30  Paolo Carlini  <paolo.carlini@oracle.com>
236
237         PR c++/44628
238         * typeck.c (cp_build_unary_op): Early return error_mark_node when
239         arg is NULL_TREE too.
240         * call.c (convert_class_to_reference): Return error_mark_node when
241         expr is NULL_TREE.
242
243 2010-06-30  Michael Matz  <matz@suse.de>
244
245         * repo.c (finish_repo): Fix typo.
246
247 2010-06-30  Nathan Froyd  <froydnj@codesourcery.com>
248
249         * parser.c (cp_parser_omp_for_loop): Use a VEC for for_block.
250
251 2010-06-30  Nathan Froyd  <froydnj@codesourcery.com>
252
253         * repo.c (pending_repo): Change type to a VEC.
254         (finish_repo): Adjust for new type of pending_repo.
255         (repo_emit_p): Likewise.
256
257 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
258
259         * tree.c: Include gimple.h. Do not include tree-flow.h
260         * decl.c: Do not include tree-flow.h
261         * Make-lang.in: Adjust dependencies.
262
263 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
264
265         * decl.c (incomplete_var): Declare.  Declare VECs containing them.
266         (incomplete_vars): Adjust comment.  Change type to a VEC.
267         (maybe_register_incomplete_var): Adjust for new type.
268         (complete_vars): Adjust iteration over incomplete_vars.
269
270 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
271
272         * decl.c (struct named_label_entry): Change type of bad_decls field
273         to a VEC.
274         (poplevel_named_label_1): Adjust for new type of bad_decls.
275         (check_goto): Likewise.
276
277 2010-06-29  Jason Merrill  <jason@redhat.com>
278
279         Enable implicitly declared move constructor/operator= (N3053).
280         * class.c (add_implicitly_declared_members): A class with no
281         explicitly declared copy or move constructor gets both declared
282         implicitly, and similarly for operator=.
283         (check_bases): A type with no copy ctor does not inhibit
284         a const copy ctor in a derived class.  It does mean the derived
285         one is non-trivial.
286         (check_field_decl): Likewise.
287         (check_bases_and_members): A nonexistent copy ctor/op= is non-trivial.
288         * tree.c (type_has_nontrivial_copy_init): Adjust semantics.
289         (trivially_copyable_p): Likewise.
290         * call.c (convert_like_real): Use type_has_nontrivial_copy_init.
291         * class.c (finish_struct_bits): Likewise.
292         * tree.c (build_target_expr_with_type): Likewise.
293         * typeck2.c (store_init_value): Likewise.
294
295         Enable implicitly deleted functions (N2346)
296         * class.c (check_bases_and_members): Adjust lambda flags.
297         * method.c (implicitly_declare_fn): Set DECL_DELETED_FN if appropriate.
298
299         * decl2.c (mark_used): Adjust error for use of deleted function.
300
301         Machinery to support implicit delete/move.
302         * cp-tree.h: (struct lang_type_class): Add lazy_move_assign,
303         has_complex_move_ctor, has_complex_move_assign bitfields.
304         (CLASSTYPE_LAZY_MOVE_ASSIGN): New.
305         (TYPE_HAS_COMPLEX_MOVE_ASSIGN): New.
306         (TYPE_HAS_COMPLEX_MOVE_CTOR): New.
307         (enum special_function_kind): Add sfk_move_assignment.
308         (LOOKUP_SPECULATIVE): New.
309         * call.c (build_over_call): Return early if it's set.
310         (build_over_call): Use trivial_fn_p.
311         * class.c (check_bases): If the base has no default constructor,
312         the derived one is non-trivial.  Handle move ctor/op=.
313         (check_field_decl): Likewise.
314         (check_bases_and_members): Handle move ctor/op=.
315         (add_implicitly_declared_members): Handle CLASSTYPE_LAZY_MOVE_ASSIGN.
316         (type_has_move_constructor, type_has_move_assign): New.
317         * decl.c (grok_special_member_properties): Handle move ctor/op=.
318         * method.c (type_has_trivial_fn, type_set_nontrivial_flag): New.
319         (trivial_fn_p): New.
320         (do_build_copy_constructor): Use it.
321         (do_build_assign_ref): Likewise.  Handle move assignment.
322         (build_stub_type, build_stub_object, locate_fn_flags): New.
323         (locate_ctor): Use locate_fn_flags.
324         (locate_copy, locate_dtor): Remove.
325         (get_dtor, get_default_ctor, get_copy_ctor, get_copy_assign): New.
326         (process_subob_fn, synthesized_method_walk): New.
327         (maybe_explain_implicit_delete): New.
328         (implicitly_declare_fn): Use synthesized_method_walk,
329         type_has_trivial_fn, and type_set_nontrivial_flag.
330         (defaulted_late_check): Set DECL_DELETED_FN.
331         (defaultable_fn_check): Handle sfk_move_assignment.
332         (lazily_declare_fn): Clear CLASSTYPE_LAZY_* early.  Don't declare
333         implicitly deleted move ctor/op=.
334         * search.c (lookup_fnfields_1): Handle sfk_move_assignment.
335         (lookup_fnfields_slot): New.
336         * semantics.c (omp_clause_info_fndecl): Remove.
337         (cxx_omp_create_clause_info): Use get_default_ctor, get_copy_ctor,
338         get_copy_assign, trivial_fn_p.
339         (trait_expr_value): Adjust call to locate_ctor.
340         * tree.c (special_function_p): Handle sfk_move_assignment.
341
342         * class.c (type_has_virtual_destructor): New.
343         * cp-tree.h: Declare it.
344         * semantics.c (trait_expr_value): Use it.
345
346         * call.c (build_over_call): Only give warnings with tf_warning.
347
348         * name-lookup.c (pop_scope): Handle NULL_TREE.
349
350         * cp-tree.h (TYPE_HAS_ASSIGN_REF): Rename to TYPE_HAS_COPY_ASSIGN.
351         (TYPE_HAS_CONST_ASSIGN_REF): Rename to TYPE_HAS_CONST_COPY_ASSIGN.
352         (TYPE_HAS_INIT_REF): Rename to TYPE_HAS_COPY_CTOR.
353         (TYPE_HAS_CONST_INIT_REF): Rename to TYPE_HAS_CONST_COPY_CTOR.
354         (TYPE_HAS_COMPLEX_ASSIGN_REF): Rename to TYPE_HAS_COMPLEX_COPY_ASSIGN.
355         (TYPE_HAS_COMPLEX_INIT_REF): Rename to TYPE_HAS_COMPLEX_COPY_CTOR.
356         (TYPE_HAS_TRIVIAL_ASSIGN_REF): Rename to TYPE_HAS_TRIVIAL_COPY_ASSIGN.
357         (TYPE_HAS_TRIVIAL_INIT_REF): Rename to TYPE_HAS_TRIVIAL_COPY_CTOR.
358         (CLASSTYPE_LAZY_ASSIGNMENT_OP): Rename to CLASSTYPE_LAZY_COPY_ASSIGN.
359         (sfk_assignment_operator): Rename to sfk_copy_assignment.
360         * decl.c, call.c, class.c, init.c, method.c, pt.c, ptree.c: Adjust.
361         * search.c, semantics.c, tree.c: Adjust.
362
363         * pt.c (dependent_scope_ref_p): Remove.
364         (value_dependent_expression_p): Don't call it.
365         (type_dependent_expression_p): Here either.
366         * init.c (build_offset_ref): Set TREE_TYPE on a qualified-id
367         if the scope isn't dependent.
368
369         * pt.c (convert_nontype_argument): Use mark_lvalue_use if we want
370         a reference.
371
372         PR c++/44587
373         * pt.c (has_value_dependent_address): New.
374         (value_dependent_expression_p): Check it.
375         (convert_nontype_argument): Likewise.  Call decay_conversion before
376         folding if we want a pointer.
377         * semantics.c (finish_id_expression): Don't add SCOPE_REF if the
378         scope is the current instantiation.
379
380 2010-06-28  Jakub Jelinek  <jakub@redhat.com>
381
382         PR c++/44682
383         * class.c (build_base_path): If want_pointer, call mark_rvalue_use
384         on expr.
385
386 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
387
388         * init.c: Do not include except.h.
389         * decl.c: Likewise.
390         * expr.c: Likewise.
391         * cp-lang.c: Likewise.
392         * pt.c: Likewise.
393         * semantics.c: Likewise.
394         * decl2.c: Likewise.
395         * except.c: Likewise.
396         (init_exception_processing): Do not set the removed
397         lang_protect_cleanup_actions here.
398         (cp_protect_cleanup_actions): Make non-static and remove prototype.
399         (doing_eh): New, moved from except.c but removed the do_warning flag.
400         (expand_start_catch_block): Update doing_eh call.
401         (expand_end_catch_block): Likewise.
402         (build_throw): Likewise.
403         * cp-tree.h: Prototype cp_protect_cleanup_actions.
404         * cp-objcp-common.h: Set LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS to
405         cp_protect_cleanup_actions.
406         * Make-lang.in: Update dependencies.
407
408 2010-06-26  Jason Merrill  <jason@redhat.com>
409
410         * call.c (add_function_candidate): Set LOOKUP_COPY_PARM for any
411         constructor called with a single argument that takes a reference
412         to the constructor's class.
413         (BAD_CONVERSION_RANK): New.
414         (compare_ics): Use it to compare bad ICSes.
415
416 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
417
418         * lang-specs.h: Remove +e handling.
419
420 2010-06-24  Andi Kleen  <ak@linux.intel.com>
421
422         * parser.c: (cp_parser_question_colon_clause):
423         Switch to use cp_lexer_peek_token.
424         Call warn_for_omitted_condop. Call pedwarn for omitted
425         middle operand.
426
427 2010-06-22  Jakub Jelinek  <jakub@redhat.com>
428
429         PR c++/44619
430         * typeck2.c (build_m_component_ref): Call mark_lvalue_use on
431         datum and mark_rvalue_use on component.
432
433         PR c++/44627
434         * error.c (dump_expr): Don't look at CALL_EXPR_ARG (t, 0) if
435         the CALL_EXPR has no arguments.
436
437 2010-06-21  Jason Merrill  <jason@redhat.com>
438
439         * typeck.c (comp_except_specs): Fix ce_derived with noexcept.
440
441         * semantics.c (check_trait_type): Check COMPLETE_TYPE_P for array
442         element type.
443
444 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
445
446         * name-lookup.c (struct arg_lookup): Convert namespaces and
447         classes fields to VEC.
448         (arg_assoc_namespace): Adjust for new type of namespaces.
449         (arg_assoc_class): Adjust for new type of classes.
450         (lookup_arg_dependent): Use make_tree_vector and
451         release_tree_vector.
452         * typeck2.c (build_x_arrow): Use vec_member.
453
454 2010-06-17  Manuel López-Ibáñez  <manu@gcc.gnu.org>
455
456         PR c++/44486
457         * error.c (dump_decl): Better wording for anonymous namespace.
458
459 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
460
461         * class.c (build_vtbl_initializer): Adjust computation of new_position
462         and which entry to add padding for.
463
464 2010-06-16  Jason Merrill  <jason@redhat.com>
465
466         * except.c (check_noexcept_r): Return the problematic function.
467         (finish_noexcept_expr): Give -Wnoexcept warning.  Add complain parm.
468         * pt.c (tsubst_copy_and_build): Pass it.
469         * parser.c (cp_parser_unary_expression): Likewise.
470         * cp-tree.h: Adjust prototype.
471
472         * method.c (defaulted_late_check): Give the defaulted method
473         the same exception specification as the implicit declaration.
474
475 2010-06-15  Jason Merrill  <jason@redhat.com>
476
477         * class.c (add_implicitly_declared_members): Implicit assignment
478         operators can also be virtual overriders.
479         * method.c (lazily_declare_fn): Likewise.
480
481         * call.c (convert_like_real): Give "initializing argument of"
482         information for ambiguous conversion.  Give source position
483         of function.
484
485         * call.c (print_z_candidates): Do print viable deleted candidates.
486         (joust): Don't choose a deleted function just because its worst
487         conversion is better than another candidate's worst.
488
489         * call.c (convert_like_real): Don't complain about
490         list-value-initialization from an explicit constructor.
491
492         * decl.c (duplicate_decls): Use DECL_IS_BUILTIN rather than test
493         DECL_SOURCE_LOCATION directly.
494
495         * class.c (type_has_user_provided_default_constructor): Use
496         sufficient_parms_p.
497
498         * call.c (is_subseq): Handle ck_aggr, ck_list.
499         (compare_ics): Treat an aggregate or ambiguous conversion to the
500         same type as involving the same function.
501
502 2010-06-13  Shujing Zhao  <pearly.zhao@oracle.com>
503
504         * typeck.c (convert_for_assignment): Fix comment. Change message
505         format from %d to %qP.
506         (convert_for_initialization): Fix comment. 
507
508 2010-06-11  Shujing Zhao  <pearly.zhao@oracle.com>
509
510         * cp-tree.h (expr_list_kind): New type.
511         (impl_conv_rhs): New type.
512         (build_x_compound_expr_from_list, convert_for_initialization): Adjust
513         prototype.
514         (typeck.c (convert_arguments): Use impl_conv_rhs and emit the
515         diagnostics for easy translation. Change caller.
516         (convert_for_initialization): Use impl_conv_rhs and change caller.
517         (build_x_compound_expr_from_list): Use expr_list_kind and emit the
518         diagnostics for easy translation. Change caller.
519         * decl.c (bad_spec_place): New enum.
520         (bad_specifiers): Use it and emit the diagnostics for easy
521         translation. Change caller.
522         * pt.c (coerce_template_parms): Put the diagnostics in full sentence.
523
524 2010-06-09  Nathan Froyd  <froydnj@codesourcery.com>
525
526         * cp-tree.h (struct saved_scope): Change decl_ns_list field type
527         to a VEC.
528         * decl2.c (cp_write_global_declarations): Adjust for new type of
529         decl_namespace_list.
530         * name-lookup.c (current_decl_namespace): Likewise.
531         (push_decl_namespace): Likewise.
532         (pop_decl_namespace): Likewise.
533
534 2010-06-09  Nathan Froyd  <froydnj@codesourcery.com>
535
536         * call.c (build_java_interface_fn_ref): Call build_function_type_list
537         instead of build_function_type.
538         * decl.c (cxx_init_decl_processing): Likewise.
539         (declare_global_var): Likewise.
540         (get_atexit_node): Likewise.
541         (expand_static_init): Likewise.
542         * decl2.c (start_objects): Likewise.
543         (start_static_storage_duration_function): Likewise.
544         * except.c (init_exception_processing): Likewise.
545         (build_exc_ptr): Likewise.
546         (build_throw): Likewise.
547         * rtti.c (throw_bad_cast): Likewise.
548         (throw_bad_typeid): Likewise.
549         (build_dynamic_cast_1): Likewise.
550
551 2010-06-09  Nathan Froyd  <froydnj@codesourcery.com>
552
553         * call.c (build_call_n): Call XALLOCAVEC instead of alloca.
554         (build_op_delete_call): Likewise.
555         (build_over_call): Likewise.
556         * cp-gimplify.c (cxx_omp_clause_apply_fn): Likewise.
557         * pt.c (process_partial_specialization): Likewise.
558         (tsubst_template_args): Likewise.
559         * semantics.c (finish_asm_stmt): Likewise.
560
561 2010-06-08  Nathan Sidwell  <nathan@codesourcery.com>
562
563         * decl.c (record_key_method_defined): New, broken out of ...
564         (finish_function): ... here.  Call it.  
565         (start_decl): Treat aliases as definitions.
566
567 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
568
569         * typeck2.c (abstract_virtuals_error): Use typed GC allocation.
570
571         * pt.c (maybe_process_partial_specialization): Likewise.
572         (register_specialization): Likewise.
573         (add_pending_template): Likewise.
574         (lookup_template_class): Likewise.
575         (push_tinst_level): Likewise.
576
577         * parser.c (cp_lexer_new_main): Likewise.
578         (cp_lexer_new_from_tokens): Likewise.
579         (cp_token_cache_new): Likewise.
580         (cp_parser_context_new): Likewise.
581         (cp_parser_new): Likewise.
582         (cp_parser_nested_name_specifier_opt): Likewise.
583         (cp_parser_template_id): Likewise.
584
585         * name-lookup.c (binding_entry_make): Likewise.
586         (binding_table_construct): Likewise.
587         (binding_table_new): Likewise.
588         (cxx_binding_make): Likewise.
589         (pushdecl_maybe_friend): Likewise.
590         (begin_scope): Likewise.
591         (push_to_top_level): Likewise.
592
593         * lex.c (init_reswords): Likewise.
594         (retrofit_lang_decl): Likewise.
595         (cxx_dup_lang_specific_decl): Likewise.
596         (copy_lang_type): Likewise.
597         (cxx_make_type): Likewise.
598
599         * decl.c (make_label_decl): Likewise.
600         (check_goto): Likewise.
601         (start_preparsed_function): Likewise.
602         (save_function_data): Likewise.
603
604         * cp-tree.h (TYPE_SET_PTRMEMFUNC_TYPE): Likewise.
605
606         * cp-objcp-common.c (decl_shadowed_for_var_insert): Likewise.
607
608         * class.c (finish_struct_1): Likewise.
609
610         * cp-tree.h (struct lang_type): Add variable_size GTY option.
611         (struct lang_decl): Likewise.
612
613         * parser.c (cp_parser_new): Update comment to not reference
614         ggc_alloc.
615
616 2010-06-07  Jason Merrill  <jason@redhat.com>
617
618         PR c++/44366
619         * error.c (dump_parameters): Mask out TFF_SCOPE.
620         (dump_simple_decl): Don't print the scope of a PARM_DECL.
621         (dump_scope): Remove no-op mask.
622
623         PR c++/44401
624         * parser.c (cp_parser_lookup_name): Fix naming the constructor.
625
626         * cp-tree.h (COMPLETE_OR_OPEN_TYPE_P): New macro.
627         * init.c (build_offset_ref): Use it.
628         * pt.c (maybe_process_partial_specialization): Use it.
629         (instantiate_class_template): Use it.
630         * search.c (lookup_base): Use it.
631
632 2010-06-07  Jakub Jelinek  <jakub@redhat.com>
633
634         PR c++/44444
635         * expr.c (mark_exp_read): Handle INDIRECT_REF.
636         * cvt.c (convert_to_void): Handle INDIRECT_REF like
637         handled_component_p.
638
639         PR c++/44443
640         * decl.c (initialize_local_var): If TREE_USED is set on the type,
641         set also DECL_READ_P on the decl.
642
643 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
644
645         PR c++/44188
646         * cp-tree.h (typedef_variant_p): Move this declaration to
647         gcc/tree.h.
648         * tree.c (typedef_variant_p): Move this definition to gcc/tree.c.
649         * decl.c (grokdeclarator): Do not rename debug info of an
650         anonymous tagged type named by a typedef.
651
652 2010-06-05  Fabien Chêne  <fabien@gcc.gnu.org>
653
654         PR c++/44086
655         * class.c (check_field_decls): Move the call to
656         check_bitfield_decl before trying to set the
657         CLASSTYPE_READONLY_FIELDS_NEED_INIT flag.
658
659 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
660
661         * typeck.c: Update include path for moved files.
662         * decl.c: Likewise.
663         * rtti.c: Likewise.
664         * cp-gimplify.c: Likewise.
665         * cp-lang.c: Likewise.
666         * pt.c: Likewise.
667         * semantics.c: Likewise.
668         * cxx-pretty-print.h: Likewise.
669         * decl2.c: Likewise.
670         * parser.c: Likewise.
671         * cp-objcp-common.c: Likewise.
672         * cp-tree.h: Likewise.
673         * name-lookup.c: Likewise.
674         * lex.c: Likewise.
675         * name-lookup.h: Likewise.
676         * config-lang.in: Update paths in gtfiles for files in c-family/.
677         * Make-lang.in: Likewise.
678
679 2010-06-04  Magnus Fromreide  <magfr@lysator.liu.se>
680
681         * cvt.c (cp_convert_to_pointer): Use null_ptr_cst_p.
682         * typeck.c (build_ptrmemfunc): Likewise.
683
684 2010-06-04  Jason Merrill  <jason@redhat.com>
685
686         * typeck2.c (merge_exception_specifiers): Adjust merging of
687         throw() and noexcept(true).
688
689         * pt.c (value_dependent_expression_p) [NOEXCEPT_EXPR]: Avoid
690         using an uninitialized variable.
691
692         * cxx-pretty-print.c (pp_cxx_unary_expression): Handle NOEXCEPT_EXPR.
693         (pp_cxx_expression): Likewise.
694
695         Implement noexcept-specification (15.4)
696         * parser.c (cp_parser_exception_specification_opt): Parse it.
697         Give -Wdeprecated warning about throw() specs.
698         * pt.c (tsubst_exception_specification): Handle it.
699         * error.c (dump_exception_spec): Handle it.
700         (dump_expr): Handle NOEXCEPT_EXPR.
701         * cxx-pretty-print.c (pp_cxx_exception_specification): Likewise.
702         * typeck.c (comp_except_specs): Handle compatibility rules.
703         Change exact parm to take an enum.
704         * typeck2.c (merge_exception_specifiers): Handle noexcept.
705         * except.c (nothrow_spec_p, type_noexcept_p): New fns.
706         (type_throw_all_p, build_noexcept_spec): New fns.
707         * cp-tree.h (TYPE_NOTHROW_P, TYPE_NOEXCEPT_P): Use them.
708         (comp_except_specs): Define ce_derived, ce_normal, ce_exact enums.
709         (cp_tree_index): Add CPTI_NOEXCEPT_TRUE_SPEC, CPTI_NOEXCEPT_FALSE_SPEC.
710         (noexcept_true_spec, noexcept_false_spec): New macros.
711         * name-lookup.c (pushdecl_maybe_friend): Adjust.
712         * search.c (check_final_overrider): Adjust.
713         * decl.c (check_redeclaration_exception_specification): Adjust.
714         (use_eh_spec_block): Use type_throw_all_p.
715         (cxx_init_decl_processing): Set noexcept_false_spec,noexcept_true_spec.
716         Give operator new a noexcept-specification in C++0x mode.
717         * tree.c (build_exception_variant, cxx_type_hash_eq): Adjust.
718         (cp_build_type_attribute_variant): Don't test TYPE_RAISES_EXCEPTIONS.
719
720         Implement noexcept operator (5.3.7)
721         * cp-tree.def (NOEXCEPT_EXPR): New.
722         * except.c (check_noexcept_r, finish_noexcept_expr): New.
723         * cp-tree.h: Declare finish_noexcept_expr.
724         * parser.c (cp_parser_unary_expression): Parse noexcept-expression.
725         * pt.c (tsubst_copy_and_build): And tsubst it.
726         (type_dependent_expression_p): Handle it.
727         (value_dependent_expression_p): Handle it.
728
729         * call.c (build_conditional_expr): Never fold in unevaluated context.
730         * tree.c (build_aggr_init_expr): Propagate TREE_NOTHROW.
731         * semantics.c (simplify_aggr_init_expr): Likewise.
732         * typeck.c (merge_types): Call merge_exception_specifiers.
733         * decl.c (duplicate_decls): Check DECL_SOURCE_LOCATION rather than
734         DECL_ANTICIPATED for preferring new type.
735
736 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
737
738         * g++spec.c (lang_specific_driver): Use GCC-specific formats in
739         diagnostics.
740
741 2010-06-04  Jakub Jelinek  <jakub@redhat.com>
742
743         PR c++/44412
744         * typeck.c (build_class_member_access_expr): Call mark_exp_read
745         on object for static data members.
746
747 2010-06-04  Jakub Jelinek  <jakub@redhat.com>
748             Jason Merrill  <jason@redhat.com>
749
750         PR c++/44362
751         * call.c (build_conditional_expr): If both arg2 and arg3 are lvalues
752         with the same type, call mark_lvalue_use on both.
753
754 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
755
756         * class.c (struct vtbl_init_data_s): Remove last_init field.
757         (struct secondary_vptr_vtt_init_data_s): Change type of inits field
758         to a VEC.
759         (finish_vtbls): Use a VEC rather than a TREE_LIST for the accumulated
760         initializers.
761         (build_vtt): Likewise.
762         (initialize_vtable): Take a VEC instead of a tree.
763         (build_vtt_inits): Change return type to void.  Take a VEC **
764         instead of a tree *; accumulate results into said VEC.
765         (build_ctor_vtbl_group): Use a VEC rather than a TREE_LIST for the
766         accumulated initializers.  Pass the vtable to accumulate_vtbl_inits.
767         (accumulate_vtbl_inits): Add extra vtable tree parameter; take a VEC
768         instead of a tree.
769         (dfs_accumulate_vtbl_inits): Likewise.  Change return type to void.
770         (build_vtbl_initializer): Add VEC parameter; accumulate initializers
771         into it.
772         (dfs_build_secondary_vptr_vtt_inits): Use CONSTRUCTOR_APPEND_ELT
773         rather than tree_cons.
774         (build_vbase_offset_vtbl_entries): Likewise.
775         (add_vcall_offset): Likewise.
776         (build_rtti_vtbl_entries): Likewise.
777         * cp-tree.h (initialize_artificial_var): Take a VEC instead of a tree.
778         * decl.c (initialize_artificial_var): Use build_constructor instead
779         of build_constructor_from_list.
780
781 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
782
783         PR c++/44294
784         * class.c (layout_class_type): Check MAX_FIXED_MODE_SIZE on
785         bit-field.
786
787 2010-06-02  Jonathan Wakely  <jwakely.gcc@gmail.com>
788
789         * parser.c (cp_parser_mem_initializer_list): Change error text.
790
791 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
792
793         * cp-objcp-common.c (shadowed_var_for_decl): Change into
794         tree_decl_map hashtab from tree_map.
795         (decl_shadowed_for_var_lookup, decl_shadowed_for_var_insert): Adjust.
796         (init_shadowed_var_for_decl): Adjust initialization.
797
798         PR c++/44361
799         * cvt.c (convert_to_void): If implicit is NULL, call mark_rvalue_use
800         instead of calling mark_exp_read only when not an assignment.
801
802         PR debug/44367
803         * semantics.c (finalize_nrv): Don't copy DECL_ARTIFICIAL, DECL_IGNORED_P,
804         DECL_SOURCE_LOCATION and DECL_ABSTRACT_ORIGIN from var to result.
805         Set DECL_VALUE_EXPR on var.
806
807 2010-06-02  Jason Merrill  <jason@redhat.com>
808
809         * error.c (dump_type): Improve typedef handling.
810
811         PR c++/9726
812         PR c++/23594
813         PR c++/44333
814         * name-lookup.c (same_entity_p): New.
815         (ambiguous_decl): Multiple declarations of the same entity
816         are not ambiguous.
817
818 2010-06-01  Jason Merrill  <jason@redhat.com>
819
820         DR 990
821         * call.c (add_list_candidates): Prefer the default constructor.
822         (build_aggr_conv): Treat missing initializers like { }.
823         * typeck2.c (process_init_constructor_record): Likewise.
824         * init.c (expand_default_init): Use digest_init for
825         direct aggregate initialization, too.
826
827         * call.c (add_list_candidates): Split out...
828         (build_user_type_conversion_1): ...from here.
829         (build_new_method_call): And here.
830         (implicit_conversion): Propagate LOOKUP_NO_NARROWING.
831
832         PR c++/44358
833         * call.c (build_list_conv): Set list-initialization flags properly.
834
835 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
836
837         * typeck2.c (build_x_arrow): Make types_memoized a VEC.
838
839 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
840             Matthew Gingell  <gingell@adacore.com>
841
842         * Make-lang.in (CXX_C_OBJS): Add c-ada-spec.o.
843         * decl2.c: Include langhooks.h and c-ada-spec.h.
844         (cpp_check, collect_source_refs, collect_ada_namespace,
845         collect_all_refs): New functions.
846         (cp_write_global_declarations): Add handling of -fdump-ada-spec.
847         * lang-specs.h: Ditto.
848
849 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
850
851         * cp-tree.h (cp_build_function_call_nary): Declare.
852         * typeck.c (cp_build_function_call_nary): Define.
853         * decl.c (register_dtor_fn): Use it instead of
854         cp_build_function_call.
855         (cxx_maybe_build_cleanup): Likewise.
856         * decl2.c (generate_ctor_or_dtor_function): Likewise.
857         * except.c (do_get_exception_ptr): Likewise.
858         (do_begin_catch): Likewise.
859         (do_allocate_exception): Likewise.
860         (do_free_exception): Likewise.
861         (build_throw): Likewise.  Use cp_build_function_call_vec instead
862         of cp_build_function_call.
863         (do_end_catch): Likewise.
864
865 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
866
867         * cp-tree.h (struct cp_decl_specifier_seq): Move type_location field up.
868         (struct cp_declarator): Move id_loc field up.
869
870 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
871
872         * cp-tree.h (ATTRIBUTE_GCC_CXXDIAG): Remove.  Require that
873         this file is included before c-common.h.  Define GCC_DIAG_STYLE
874         before including diagnostic-core.h and toplev.h.
875         (pedwarn_cxx98): Use ATTRIBUTE_GCC_DIAG.
876         * pt.c: Include cp-tree.h before c-common.h.
877
878 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
879
880         * tree.c (c_register_addr_space): Add stub.
881
882 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
883
884         * g++spec.c (lang_specific_driver): Use fatal_error instead of
885         fatal.
886
887 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
888
889         Revert fix of PR c++/44188
890         * cp-tree.h (typedef_variant_p): Revert moving this declaration to
891         gcc/tree.h.
892         * tree.c (typedef_variant_p): Revert moving this definition to
893         gcc/tree.c.
894         * decl.c (grokdeclarator): Revert naming typedef handling.
895
896 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
897
898         * call.c: Include diagnostic-core.h instead of diagnostic.h.
899         * cp-lang.c: Don't include diagnostic.h
900         * name-lookup.c: Include diagnostic-core.h instead of
901         diagnostic.h.
902         (cp_emit_debug_info_for_using): Use seen_error.
903         * optimize.c: Include diagnostic-core.h instead of diagnostic.h.
904         * parser.c: Include diagnostic-core.h instead of diagnostic.h.
905         * pt.c (iterative_hash_template_arg): Use seen_error.
906         * repo.c: Include diagnostic-core.h instead of diagnostic.h.
907         * typeck2.c: Include diagnostic-core.h instead of diagnostic.h.
908         * Make-lang.in (cp/cp-lang.o, cp/typeck2.o, cp/call.o, cp/repo.o,
909         cp/optimize.o, cp/parser.o, cp/name-lookup.o): Update
910         dependencies.
911
912 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
913
914         PR c++/44188
915         * cp-tree.h (typedef_variant_p): Move this declaration to
916         gcc/tree.h.
917         * tree.c (typedef_variant_p): Move this definition to gcc/tree.c.
918         * decl.c (grokdeclarator): Do not rename debug info of an
919         anonymous tagged type named by a typedef.
920
921 2010-05-27  Jason Merrill  <jason@redhat.com>
922
923         PR c++/43555
924         * decl.c (grokdeclarator) [cdk_pointer et al]: Force evaluation of
925         anonymous VLA size.
926
927 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
928
929         PR bootstrap/44287
930         * rtti.c (emit_support_tinfos): Check for NULL_TREE.
931         * class.c (layout_class_type): Likewise.
932         * decl.c (finish_enum): Likewise.
933         * mangle.c (write_builitin_type): Likewise.
934
935 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
936
937         * cp-tree.h (cp_decl_specifier_seq): Add new bifield
938         explicit_int128_p.
939         * decl.c (grokdeclarator): Handle __int128.
940         * parser.c (cp_lexer_next_token_is_decl_specifier_ke): Likewise.
941         (cp_parser_simple_type_specifier): Likewise.
942         * rtti.c (emit_support_tinfos): Add int128 nodes for rtti.
943         * typeck.c (cp_common_type): Handle __int128.
944         * mangle.c (integer_type_codes): Add itk_int128 and
945         itk_unsigned_int128.
946
947 2010-05-26  Jason Merrill  <jason@redhat.com>
948
949         PR c++/43382
950         * pt.c (tsubst_pack_expansion): Don't get confused by recursive
951         unification.
952
953 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
954
955         * cp-lang.c: Do not include expr.h.
956
957 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
958
959         * decl.c: Do not include rtl.h
960         * semantics.c: Likewise.
961
962 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
963
964         * cp-tree.h: Do not include splay-tree.h.
965         (struct prtmem_cst): Remove unused field and false comment.
966         * typeck.c: Do not include rtl.h, expr.h, and tm_p.h.
967         * optimize.c: Do not inclde rtl.h, insn-config.h, and integrate.h.
968         * init.c: Do not include rtl.h and expr.h.
969         * class.c: Do not include rtl.h.  Include splay-tree.h.
970         (build_clone): Use plain NULL instead of NULL_RTX.
971         * decl.c: Do not include expr.h.  Explain why rtl.h has to be
972         included.  Include splay-tree.h.
973         * method.c: Do not include rtl.h and expr.h.
974         (use_thunk): Use plain NULL instead of NULL_RTX.
975         * except.c: Do not include rtl.h, expr.h, and libfuncs.h.
976         * tree.c: Do not include rtl.h, insn-config.h, integrate.h,
977         and target.h.  Include splay-tree.h.
978         * expr.c: Do not include rtl.h and expr.h.
979         * pt.c: Do not include obstack.h and rtl.h.
980         (tsubst_friend_function): Use plain NULL instead of NULL_RTX.
981         (tsubst_decl): Likewise.
982         (instantiate_decl): Likewise.
983         * semantics.c: Do not include exprt.h and debug.h.  Explain why
984         rtl.h has to be included.
985         * decl2.c: Do not include rtl.h and expr.h.  Include splay-tree.h.
986         * call.c: Do not include rtl.h and expr.h.
987         * search.c: Do not include obstack.h and rtl.h.
988         * friend.c: Do not include rtl.h and expr.h.
989         * Make-lang.in: Update dependencies.
990
991 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
992
993         PR c++/18249
994         * parser.c (non_integral_constant): Add NIC_NONE.
995         (required_token): Add RT_NONE.
996         (cp_parser_unary_expression): Initialize non_constant_p
997         to NIC_NONE.
998         (cp_parser_asm_definition): Initialize missing to RT_NONE.
999         (cp_parser_primary_expression, cp_parser_postfix_expression,
1000         cp_parser_cast_expression, cp_parser_binary_expression,
1001         cp_parser_functional_cast): Fix formatting.
1002
1003 2010-05-25  Shujing Zhao  <pearly.zhao@oracle.com>
1004         
1005         PR c++/18249
1006         * parser.c: Remove inclusion of dyn-string.h.
1007         (non_integral_constant): New enum.
1008         (name_lookup_error): New enum.
1009         (required_token): New enum.
1010         (cp_parser_required_error): New function.
1011         (cp_parser_require): Change the type of variable token_desc to
1012         required_token and use cp_parser_required_error.
1013         (cp_parser_require_keyword): Likewise.
1014         (cp_parser_error): Use gmsgid as parameter.
1015         (cp_parser_name_lookup_error): Change the type of variable desired to
1016         name_lookup_error and put the diagnostic in the full sentences. Change
1017         caller.
1018         (cp_parser_non_integral_constant_expression): Change the type of the
1019         variable thing to non_integral_constant and put the diagnostics in
1020         full sentences. Change caller.
1021
1022 2010-05-24  Eric Botcazou  <ebotcazou@adacore.com>
1023
1024         PR middle-end/44100
1025         * typeck.c (cp_build_unary_op): Fold offsetof-like computations.
1026
1027 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
1028
1029         * error.c (cp_diagnostic_starter): Update call to
1030         diagnostic_build_prefix.
1031         (cp_print_error_function,
1032         print_instantiation_partial_context_line): Check show_column flag
1033         in context.
1034
1035 2010-05-24  Jason Merrill  <jason@redhat.com>
1036
1037         PR c++/41510
1038         * decl.c (check_initializer): Don't wrap an init-list in a
1039         TREE_LIST.
1040         * init.c (build_aggr_init): Don't assume copy-initialization if
1041         init has CONSTRUCTOR_IS_DIRECT_INIT.
1042         * call.c (build_new_method_call): Sanity check.
1043
1044 2010-05-24  Nathan Froyd  <froydnj@codesourcery.com>
1045
1046         * rtti.c (tinfo_base_init): Use build_constructor instead of
1047         build_constructor_from_list.  Don't cons a tree node for
1048         returning.
1049         (generic_initializer): Use build_constructor_single instead of
1050         build_constructor_from_list.
1051         (ptr_initializer): Use build_constructor instead of
1052         build_constructor_from_list
1053         (ptm_initializer): Likewise.
1054         (class_initializer): Likewise.  Take varargs instead of TRAIL.
1055         (get_pseudo_ti_init): Adjust calls to class_initializer.  Use
1056         build_constructor instead of build_constructor_from_list.
1057
1058 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
1059
1060         * semantics.c: Include bitmap.h.
1061         * Make-lang.in: Update dependencies.
1062
1063 2010-05-22  Jan Hubicka  <jh@suse.cz>
1064
1065         * decl2.c (maybe_emit_vtables): Produce same comdat group when outputting
1066         comdat vtables.
1067         (cxx_callgraph_analyze_expr): Remove code marking vtables needed.
1068
1069 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
1070
1071         * cxx-pretty-print.c: Correct merge error.
1072
1073 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
1074
1075         * error.c: Include tree-diagnostic.h and tree-pretty-print.h.
1076         (cp_print_error_function): Use diagnostic_abstract_origin macro.
1077         (cp_printer): Handle %K here using percent_K_format.
1078         * cxx-pretty-print.c: Include tree-pretty-print.h.
1079         * Make-lang.in (cp/error.o, cp/cxx-pretty-print.o): Update
1080         dependencies.
1081
1082 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
1083
1084         * error.c, tree.c, typeck2.c, cxx-pretty-print.c, mangle.c:
1085         Clean up redundant includes.
1086
1087 2010-05-20  Paolo Carlini  <paolo.carlini@oracle.com>
1088
1089         PR c++/30298
1090         * decl.c (xref_basetypes): Return false in case of ill-formed
1091         redefinition.
1092
1093 2010-05-19  Jason Merrill  <jason@redhat.com>
1094
1095         * call.c (reference_binding): Use cp_build_qualified_type_real
1096         and cp_type_quals consistently.
1097         (add_function_candidate): Likewise.
1098         (build_conditional_expr): Likewise.
1099         (convert_like_real): Likewise.
1100         (type_passed_as): Likewise.
1101         * class.c (add_method): Likewise.
1102         (same_signature_p): Likewise.
1103         (layout_class_type): Likewise.
1104         * decl.c (cxx_init_decl_processing): Likewise.
1105         (cp_fname_init): Likewise.
1106         (grokdeclarator): Likewise.
1107         * decl2.c (cp_reconstruct_complex_type): Likewise.
1108         * init.c (build_new_1): Likewise.
1109         * method.c (do_build_copy_constructor): Likewise.
1110         (implicitly_declare_fn): Likewise.
1111         * pt.c (tsubst_aggr_type): Likewise.
1112         (tsubst): Likewise.
1113         * rtti.c (init_rtti_processing): Likewise.
1114         (build_headof): Likewise.
1115         (build_dynamic_cast_1): Likewise.
1116         (tinfo_base_init): Likewise.
1117         (emit_support_tinfos): Likewise.
1118         * semantics.c (capture_decltype): Likewise.
1119         * tree.c (cv_unqualified): Likewise.
1120         * typeck.c (composite_pointer_type): Likewise.
1121         (string_conv_p): Likewise.
1122
1123         * mangle.c (write_CV_qualifiers_for_type): Tweak.
1124
1125         * call.c (initialize_reference): Use CP_TYPE_CONST_P.
1126         * decl.c (start_decl): Likewise.
1127         * semantics.c (finish_compound_literal): Likewise.
1128         * typeck.c (check_return_expr): Use CP_TYPE_VOLATILE_P.
1129         (cp_type_readonly): Remove.
1130         * cp-tree.h: Remove declaration.
1131
1132         * typeck.c (merge_types): Preserve memfn quals.
1133
1134         * decl.c (grokdeclarator): Don't check quals on fn type.
1135         * typeck.c (cp_apply_type_quals_to_decl): Likewise.
1136         * tree.c (cp_build_qualified_type_real): Simplify qualifier checking.
1137
1138         PR c++/44193
1139         * typeck.c (type_memfn_quals): New fn.
1140         (apply_memfn_quals): New fn.
1141         (cp_type_quals): Return TYPE_UNQUALIFIED for FUNCTION_TYPE.
1142         (cp_type_readonly): Use cp_type_quals.
1143         * cp-tree.h: Add declarations.
1144         * tree.c (cp_build_qualified_type_real): Don't set, but do
1145         preserve, quals on FUNCTION_TYPE.
1146         (strip_typedefs): Use apply_memfn_quals and type_memfn_quals.
1147         * decl.c (build_ptrmem_type): Likewise.
1148         (grokdeclarator): Likewise.
1149         (static_fn_type): Likewise.
1150         * decl2.c (change_return_type): Likewise.
1151         (cp_reconstruct_complex_type): Likewise.
1152         * pt.c (tsubst_function_type): Likewise.
1153         (unify): Likewise.
1154         (tsubst): Likewise.  Drop special FUNCTION_TYPE substitution code.
1155
1156 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
1157
1158         * tree.c (build_min_non_dep_call_vec): Update comment.
1159
1160 2010-05-17  Jason Merrill  <jason@redhat.com>
1161
1162         * call.c (struct z_candidate): Add explicit_targs field.
1163         (add_template_candidate_real): Set it.
1164         (build_over_call): Use it to control init-list warning.
1165
1166         PR c++/44157
1167         * call.c (build_over_call): Limit init-list deduction warning to
1168         cases where the argument is actually an init-list.
1169
1170         PR c++/44158
1171         * call.c (build_over_call): Don't do bitwise copy for move ctor.
1172
1173 2010-05-17  Dodji Seketeli  <dodji@redhat.com>
1174             Jason Merrill  <jason@redhat.com>
1175
1176         PR c++/44108
1177         * decl.c (compute_array_index_type): Call mark_rvalue_use.
1178
1179 2010-05-15  Jason Merrill  <jason@redhat.com>
1180
1181         * cp-tree.h (TYPE_NOEXCEPT_P): New macro.
1182         * except.c (begin_eh_spec_block): Use MUST_NOT_THROW_EXPR if
1183         TYPE_NOEXCEPT_P.
1184         (finish_eh_spec_block): Adjust.
1185
1186 2010-05-15  Jakub Jelinek  <jakub@redhat.com>
1187
1188         PR c++/44148
1189         * pt.c (tsubst): Unshare template argument.
1190
1191 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
1192
1193         * decl.c: Include tree-iterator.h, as fixup for tree-inline.h changes.
1194         * Make-lang.in: Fix dependencies accordingly.
1195
1196 2010-05-14  Jason Merrill  <jason@redhat.com>
1197
1198         C++ DR 475
1199         * except.c (build_throw): Simplify, adjust for DR 475.
1200
1201         PR c++/44127
1202         * except.c (dtor_nothrow): Return nonzero for type with
1203         trivial destructor.
1204
1205         PR c++/44127
1206         * cp-gimplify.c (gimplify_must_not_throw_expr): Use
1207         gimple_build_eh_must_not_throw.
1208
1209 2010-05-14  Martin Jambor  <mjambor@suse.cz>
1210
1211         * cp-lang.c (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove both its undef
1212         and define.
1213
1214 2010-05-14  Jonathan Wakely  <jwakely.gcc@gmail.com>
1215
1216         * call.c (build_new_method_call): Change warning text.
1217         * typeck2.c (build_functional_cast): Change error text.
1218
1219 2010-05-14  Shujing Zhao  <pearly.zhao@oracle.com>
1220
1221         PR c++/30566
1222         * name-lookup.c (pushdecl_maybe_friend): Avoid the warnings about
1223         shadowing the outer parameter or variables by the declaration of
1224         nested function in nested structure or class. Warn the shadowing by
1225         the declaration of nested lambda expression.
1226
1227 2010-05-13  Jason Merrill  <jason@redhat.com>
1228
1229         * typeck.c (cp_build_array_ref): Factor out from...
1230         (build_array_ref): ...here.  Drop complain parm.
1231         (build_new_op): Adjust.
1232         * class.c (build_vtbl_ref_1): Adjust.
1233         * decl2.c (grok_array_decl): Adjust.
1234         * cp-tree.h: Adjust prototypes.
1235
1236 2010-05-13  Jan Hubicka  <jh@suse.cz>
1237
1238         * decl.c (cp_finish_decl): Do not worry about used attribute.
1239
1240 2010-05-12  Jason Merrill  <jason@redhat.com>
1241
1242         * typeck.c (build_array_ref): Take complain parm.
1243         * cp-tree.h: Add it to prototype.
1244         * call.c (build_new_op): Pass it.
1245         * class.c (build_vtbl_ref): Pass it.
1246         * decl2.c (grok_array_decl): Pass it.
1247
1248         PR bootstrap/44048
1249         PR target/44099
1250         * cp-tree.def (NULLPTR_TYPE): Remove.
1251         * cp-tree.h (NULLPTR_TYPE_P): New.
1252         (SCALAR_TYPE_P): Use it.
1253         (nullptr_type_node): New.
1254         (cp_tree_index): Add CPTI_NULLPTR_TYPE.
1255         * decl.c (cxx_init_decl_processing): Call record_builtin_type on
1256         nullptr_type_node.
1257         * cvt.c (ocp_convert): Use NULLPTR_TYPE_P instead of NULLPTR_TYPE.
1258         * cxx-pretty-print.c (pp_cxx_constant): Likewise.
1259         * error.c (dump_type, dump_type_prefix, dump_type_suffix): Likewise.
1260         * mangle.c (write_type): Likewise.
1261         * name-lookup.c (arg_assoc_type): Likewise.
1262         * typeck.c (build_reinterpret_cast_1): Likewise.
1263         * rtti.c (typeinfo_in_lib_p): Likewise.
1264         (emit_support_tinfos): Remove local nullptr_type_node.
1265
1266         * cp-tree.h (UNKNOWN_TYPE): Remove.
1267         * decl.c (cxx_init_decl_processing): Use LANG_TYPE instead.
1268         * error.c (dumy_type, dump_type_prefix, dump_type_suffix): Likewise.
1269         * typeck2.c (cxx_incomplete_type_diagnostic): Likewise.
1270         * class.c (instantiate_type): Check unknown_type_node rather than
1271         UNKNOWN_TYPE.
1272         * name-lookup.c (maybe_push_decl): Likewise.
1273         * rtti.c (get_tinfo_decl_dynamic): Likewise.
1274         (get_typeid): Likewise.
1275         * semantics.c (finish_offsetof): Likewise.
1276
1277         PR c++/20669
1278         * call.c (add_template_candidate_real): If deduction fails, still
1279         add the template as a non-viable candidate.
1280         (equal_functions): Handle template candidates.
1281         (print_z_candidate): Likewise.
1282         (print_z_candidates): Likewise.
1283         (build_new_function_call): Likewise.
1284
1285         * cp-tree.h (LOOKUP_LIST_ONLY): New.
1286         * call.c (add_candidates): Enforce it.
1287         (build_new_method_call): Try non-list ctor if no viable list ctor.
1288         (build_user_type_conversion_1): Likewise.
1289
1290         * call.c (add_candidates): Distinguish between type(x) and
1291         x.operator type().
1292         (convert_class_to_reference): Set LOOKUP_NO_CONVERSION.
1293         (build_new_method_call): Give better error for conversion op.
1294
1295         * call.c (add_candidates): Add first_arg and return_type parms.
1296         Add special constructor/conversion op handling.
1297         (convert_class_to_reference): Use it.
1298         (build_user_type_conversion_1): Likewise.
1299         (build_op_call): Likewise.
1300         (build_new_method_call): Likewise.
1301         (build_new_op): Adjust.
1302         (perform_overload_resolution): Adjust.
1303
1304 2010-05-11  Paolo Carlini  <paolo.carlini@oracle.com>
1305
1306         PR c++/34272
1307         PR c++/43630
1308         PR c++/34491
1309         * pt.c (process_partial_specialization): Return error_mark_node
1310         in case of unused template parameters in partial specialization.
1311
1312 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
1313
1314         PR c++/44062
1315         * semantics.c (finish_expr_stmt): Don't call mark_exp_read here...
1316         * cvt.c (convert_to_void): ... but here.  If expr is a COMPOUND_EXPR,
1317         look at its second operand.
1318
1319 2010-05-10  Jason Merrill  <jason@redhat.com>
1320
1321         PR c++/44017
1322         * semantics.c (baselink_for_fns): Revert earlier change.
1323
1324         PR c++/44045
1325         * typeck.c (cp_build_modify_expr): Complain about assignment to
1326         array from init list.
1327
1328 2010-05-10  Fabien Chêne  <fabien.chene@gmail.com>
1329
1330         PR c++/43719
1331         * decl.c (check_initializer): strip array type before checking for
1332         uninitialized const or ref members.
1333
1334 2010-05-07  Fabien Chêne  <fabien.chene@gmail.com>
1335
1336         PR c++/43951
1337         * init.c (diagnose_uninitialized_cst_or_ref_member_1): Returns the
1338         error count. Emit errors only if compain is true.
1339         (build_new_1): Do not return error_mark_node if
1340         diagnose_uninitialized_cst_or_ref_member_1 does not diagnose any
1341         errors. Delay the check for user-provided constructor.
1342         (perform_member_init): Adjust.
1343         * cp-tree.h (diagnose_uninitialized_cst_or_ref_member): Change the
1344         prototype.
1345
1346 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
1347             Jason Merrill  <jason@redhat.com>
1348
1349         Add support for C++0x nullptr.
1350         * cp-tree.def: Add NULLPTR_TYPE.
1351         * cp-tree.h: Add nullptr_node.
1352         (cp_tree_index): Add CPTI_NULLPTR.
1353         (SCALAR_TYPE_P): Add NULLPTR_TYPE.
1354         * call.c (null_ptr_cst_p): Handle nullptr.
1355         (standard_conversion): Likewise.
1356         (convert_arg_to_ellipsis): Likewise.
1357         * mangle.c (write_type): Likewise.
1358         * name-lookup.c (arg_assoc_type): Likewise.
1359         * parser.c (cp_parser_primary_expression): Likewise.
1360         * typeck.c (cp_build_binary_op): Likewise.
1361         (build_reinterpret_cast_1): Likewise.
1362         * error.c (dump_type): Likewise.
1363         (dump_type_prefix, dump_type_suffix): Likewise.
1364         * decl.c (cxx_init_decl_processing): Likewise.
1365         * cxx-pretty-print.c (pp_cxx_constant): Likewise.
1366         * cvt.c (ocp_convert): Likewise.
1367         * rtti.c (typeinfo_in_lib_p, emit_support_tinfos): Put
1368         nullptr_t tinfo in libsupc++.
1369
1370 2010-05-06  Jason Merrill  <jason@redhat.com>
1371
1372         * semantics.c (simplify_aggr_init_expr): Use INIT_EXPR.
1373
1374 2010-04-22  Jakub Jelinek <jakub@redhat.com>
1375             Dodji Seketeli <dodji@redhat.com>
1376
1377         PR c/18624
1378         * cp-tree.h (mark_exp_read, rvalue_use, lvalue_use, type_use):
1379         Declare ...
1380         * expr.c (mark_exp_read, rvalue_use, lvalue_use, type_use): ... new fns.
1381         * typeck.c (cxx_sizeof_expr, cxx_alignof_expr): Call type_use.
1382         (decay_conversion, perform_integral_promotions): Call rvalue_use.
1383         (cp_build_unary_op): Call lvalue_use.
1384         * decl.c (unused_but_set_errorcount): New variable.
1385         (poplevel): Issue -Wunused-but-set-variable diagnostics.
1386         (duplicate_decls): Merge DECL_READ_P flags.
1387         (start_cleanup_fn): Set DECL_READ_P flag.
1388         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
1389         * tree.c (rvalue): Call rvalue_use.
1390         * pt.c (convert_nontype_argument): Likewise.
1391         * semantics.c (finish_expr_stmt, finish_asm_stmt, finish_typeof,
1392         finish_decltype_type): Likewise.
1393         * call.c (convert_like_real) <ck_identity, ck_user>: Call rvalue use.
1394         (build_x_va_arg, build_new_method_call, build_over_call): Call lvalue_use
1395         or rvalue_use depending on the expr.
1396         * init.c (build_new, build_delete): Likewise.
1397         * rtti.c (build_typeid, build_dynamic_cast_1): Likewise.
1398
1399 2010-05-05  Jason Merrill  <jason@redhat.com>
1400
1401         PR c++/43787
1402         * cp-gimplify.c (cp_gimplify_expr): Remove copies of empty classes.
1403         * call.c (build_over_call): Don't try to avoid INIT_EXPR copies here.
1404
1405 2010-05-04  Paolo Carlini  <paolo.carlini@oracle.com>
1406
1407         PR c++/43028
1408         * pt.c (unify): Check each elt for error_mark_node.
1409
1410 2010-05-04  Jason Merrill  <jason@redhat.com>
1411
1412         PR c++/38064
1413         * typeck.c (cp_build_binary_op): Allow enums for <> as well.
1414
1415 2010-05-04  Paolo Carlini  <paolo.carlini@oracle.com>
1416
1417         PR c++/43705
1418         * call.c (build_new_method_call): Return error_mark_node if fns is
1419         NULL_TREE.
1420
1421 2010-05-03  Dodji Seketeli  <dodji@redhat.com>
1422
1423         PR c++/43953
1424         * pt.c (most_specialized_class): Pretend we are processing
1425         a template decl during the call to coerce_template_parms.
1426
1427 2010-05-03  Jason Merrill  <jason@redhat.com>
1428
1429         PR c++/42810
1430         PR c++/43680
1431         * decl.c (finish_enum): Use the TYPE_MIN_VALUE and TYPE_MAX_VALUE
1432         from the selected underlying type unless -fstrict-enums.  Set
1433         ENUM_UNDERLYING_TYPE to have the restricted range.
1434         * cvt.c (type_promotes_to): Use ENUM_UNDERLYING_TYPE.
1435         * class.c (check_bitfield_decl): Likewise.
1436
1437 2010-05-01  H.J. Lu  <hongjiu.lu@intel.com>
1438
1439         PR c++/43951
1440         * init.c (build_new_1): Revert the accidental checkin in
1441         revision 158918.
1442
1443 2010-04-30  Jason Merrill  <jason@redhat.com>
1444
1445         PR c++/43868
1446         * cxx-pretty-print.c (pp_cxx_decl_specifier_seq): Move pmf handling...
1447         (pp_cxx_type_specifier_seq): ...here.
1448
1449 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
1450
1451         * optimize.c, parser.c, mangle.c, cp-tree.h: Do not include varray.h.
1452         * Make-lang.in: Don't include varray.h dependency in CXX_TREE_H.
1453
1454 2010-04-30  Shujing Zhao  <pearly.zhao@oracle.com>
1455
1456         PR c++/43779
1457         * typeck.c (warn_args_num): New function.
1458         (convert_arguments): Use warn_args_num to print the diagnostic
1459         messages. 
1460
1461 2010-04-29  Fabien Chêne  <fabien.chene@gmail.com>
1462
1463         PR c++/43890
1464         * init.c (diagnose_uninitialized_cst_or_ref_member): check for
1465         user-provided constructor while recursing.
1466
1467 2010-04-28  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1468
1469         PR c++/9335
1470         * error.c (print_instantiation_partial_context_line): Handle
1471         recursive instantiation.
1472         (print_instantiation_partial_context): Likewise.
1473
1474 2010-04-27  Jason Merrill  <jason@redhat.com>
1475
1476         * init.c (perform_member_init): Check CLASS_TYPE_P.
1477
1478 2010-04-27  Fabien Chêne  <fabien.chene@gmail.com>
1479
1480         PR c++/29043
1481         * init.c (perform_member_init): check for uninitialized const or
1482         reference members, including array types.
1483
1484 2010-04-24  Jason Merrill  <jason@redhat.com>
1485
1486         * tree.c (get_fns): Split out from get_first_fn.
1487         * cp-tree.h: Declare it.
1488         * search.c (shared_member_p): Use it.
1489         * semantics.c (finish_qualified_id_expr): Simplify.
1490         (finish_id_expression): Simplify.
1491
1492         * semantics.c (finish_non_static_data_member): Call maybe_dummy_object
1493         whenever object is NULL_TREE.  Don't do 'this' capture here.
1494         (finish_qualified_id_expr): Pass NULL_TREE.
1495         (finish_id_expression): Likewise.
1496         (lambda_expr_this_capture): Likewise.
1497
1498         * semantics.c (finish_qualified_id_expr): Use maybe_dummy_object
1499         rather than checking current_class_ref directly.
1500         (finish_call_expr): Likewise.
1501
1502         PR c++/43856
1503         * name-lookup.c (qualify_lookup): Disqualify lambda op().
1504         * class.c (current_nonlambda_class_type): New fn.
1505         * semantics.c (nonlambda_method_basetype): New.
1506         * cp-tree.h: Declare them.
1507         * tree.c (maybe_dummy_object): Handle implicit 'this' capture.
1508
1509         * semantics.c (baselink_for_fns): Correct BASELINK_BINFO.
1510
1511         PR c++/43875
1512         * semantics.c (lambda_return_type): Complain about
1513         braced-init-list.
1514
1515         PR c++/43790
1516         * tree.c (cv_unqualified): Handle error_mark_node.
1517
1518         PR c++/41468
1519         * call.c (convert_like_real) [ck_ambig]: Just return error_mark_node
1520         if we don't want errors.
1521
1522         PR c++/41468
1523         * class.c (convert_to_base): Add complain parameter.  Pass
1524         ba_quiet to lookup_base if we don't want errors.
1525         (build_vfield_ref): Pass complain to convert_to_base.
1526         * call.c (convert_like_real): Likewise.
1527         (initialize_reference): Likewise.
1528         (perform_direct_initialization_if_possible): Pass complain to
1529         convert_like_real.
1530         * cp-tree.h: Adjust.
1531
1532 2010-04-27  Fabien Chêne  <fabien.chene@gmail.com>
1533             Jason Merrill  <jason@redhat.com>
1534
1535         PR c++/42844
1536         * decl.c (check_for_uninitialized_const_var): Handle classes that need
1537         constructing, too.
1538         (check_initializer): Call it for classes that need constructing, too.
1539         * class.c (in_class_defaulted_default_constructor): New.
1540         * cp-tree.h: Declare it.
1541
1542 2010-04-20  Jason Merrill  <jason@redhat.com>
1543
1544         PR c++/9335
1545         * init.c (constant_value_1): Treat error_mark_node as a constant
1546         if DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P is set.
1547         * cvt.c (ocp_convert): Handle getting error_mark_node from
1548         integral_constant_value.
1549         * decl.c (compute_array_index_type): Likewise.
1550
1551 2010-04-20  Dodji Seketeli  <dodji@redhat.com>
1552
1553         PR c++/43800
1554         PR c++/43704
1555         * typeck.c (incompatible_dependent_types_p): If one of the
1556         compared types if not a typedef then honour their main variant
1557         equivalence.
1558
1559 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
1560
1561         * cp-tree.h (TYPE_REF_IS_RVALUE): Remove.
1562
1563 2010-04-19  Dodji Seketeli  <dodji@redhat.com>
1564
1565         PR c++/43704
1566         * typeck.c (structural_comptypes): Test dependent typedefs
1567         incompatibility before testing for their main variant based
1568         equivalence.
1569
1570 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
1571
1572         * cp-tree.h (SCOPED_ENUM_P, UNSCOPED_ENUM_P, SET_SCOPED_ENUM_P): Use
1573         ENUM_IS_SCOPED bit instead of TYPE_LANG_FLAG_5.
1574
1575 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
1576
1577         * decl.c (cxx_init_decl_processing): Remove second argument in call to
1578         build_common_tree_nodes.
1579
1580 2010-04-14  Jason Merrill  <jason@redhat.com>
1581
1582         PR c++/36625
1583         * parser.c (cp_parser_parenthesized_expression_list): Change
1584         is_attribute_list parm to int to indicate whether or not to
1585         handle initial identifier specially.
1586         (cp_parser_attribute_list): Use attribute_takes_identifier_p.
1587
1588 2010-04-13  Jason Merrill  <jason@redhat.com>
1589
1590         * call.c (type_decays_to): Check MAYBE_CLASS_TYPE_P instead of
1591         CLASS_TYPE_P.
1592         * parser.c (cp_parser_lambda_expression): Complain about lambda in
1593         unevaluated context.
1594         * pt.c (iterative_hash_template_arg): Don't crash on lambda.
1595
1596 2010-04-12  Jason Merrill  <jason@redhat.com>
1597
1598         PR c++/43641
1599         * semantics.c (maybe_add_lambda_conv_op): Use build_call_a and tweak
1600         return value directly.
1601
1602         * call.c (type_decays_to): Call cv_unqualified for non-class type.
1603
1604 2010-04-12  Fabien Chene  <fabien.chene@gmail.com>
1605
1606         PR c++/25811
1607         * cp-tree.h (diagnose_uninitialized_cst_or_ref_member): Declare.
1608         * init.c (build_new_1): Check for uninitialized const members and
1609         uninitialized reference members, when using new without
1610         new-initializer. Call diagnose_uninitialized_cst_or_ref_member.
1611         (diagnose_uninitialized_cst_or_ref_member): Define, call
1612         diagnose_uninitialized_cst_or_ref_member_1.
1613         (diagnose_uninitialized_cst_or_ref_member_1): New function.
1614
1615 2010-04-12  Richard Guenther  <rguenther@suse.de>
1616
1617         PR c++/43611
1618         * semantics.c (expand_or_defer_fn_1): Do not keep extern
1619         template inline functions.
1620
1621 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1622
1623         PR c++/28584
1624         * typeck.c (cp_build_c_cast): Warn for casting integer to larger
1625         pointer type.
1626
1627 2010-04-07  Jason Merrill  <jason@redhat.com>
1628
1629         PR c++/43016
1630         * decl.c (start_preparsed_function): Do defer nested functions.
1631
1632         PR c++/11094, DR 408
1633         * cp-tree.h (VAR_HAD_UNKNOWN_BOUND, SET_VAR_HAD_UNKNOWN_BOUND): New.
1634         * decl2.c (finish_static_data_member_decl): Set it.
1635         * decl.c (duplicate_decls): Propagate it.
1636         * pt.c (tsubst_decl): Don't substitute the domain of an array
1637         VAR_DECL if it's set.
1638         (regenerate_decl_from_template): Substitute it here.
1639         (type_dependent_expression_p): Return true if it's set.
1640         * semantics.c (finish_decltype_type): Instantiate such a variable.
1641         * typeck.c (cxx_sizeof_expr): Likewise.
1642         (strip_array_domain): New.
1643
1644         PR c++/43145
1645         * name-lookup.c (current_decl_namespace): Non-static.
1646         (pop_nested_namespace): Sanity check.
1647         * cp-tree.h: Declare current_decl_namespace.
1648         * decl.c (grokvardecl): Use it instead of current_namespace.
1649         (grokfndecl): Likewise.
1650
1651         PR c++/38392
1652         * pt.c (tsubst_friend_function): Instatiate a friend that has already
1653         been used.
1654
1655         * pt.c (print_template_statistics): New.
1656         * cp-tree.h: Declare it.
1657         * tree.c (cxx_print_statistics): Call it.
1658
1659         PR c++/41970
1660         * decl.c (grokvardecl): Tweak warning message.
1661         (grokfndecl): Likewise.
1662
1663 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
1664
1665         PR c++/42697
1666         *pt.c (tsubst_decl): Get the arguments of a specialization from
1667         the specialization template, not from the most general template.
1668
1669 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
1670
1671         PR c++/40239
1672         * typeck2.c (process_init_constructor_record):
1673         value-initialize members that are are not explicitely
1674         initialized.
1675
1676 2010-04-07  Jie Zhang  <jie@codesourcery.com>
1677
1678         PR c++/42556
1679         * typeck2.c (split_nonconstant_init_1): Drop empty CONSTRUCTOR
1680         when all of its elements are non-constant and have been split out.
1681
1682 2010-04-06  Taras Glek  <taras@mozilla.com>
1683             Jason Merrill  <jason@redhat.com>
1684
1685         * parser.c (cp_parser_class_specifier): Set class location to that
1686         of IDENTIFIER_NODE instead of '{' when possible.
1687         * semantics.c (begin_class_definition): Do not overide locations
1688         with less precise ones.
1689
1690 2010-04-06  Jason Merrill  <jason@redhat.com>
1691
1692         PR c++/43648
1693         * name-lookup.c (constructor_name_p): Allow X::~X even for typedefs.
1694
1695         PR c++/43621
1696         * pt.c (maybe_update_decl_type): Check the return value from
1697         push_scope.
1698
1699 2010-04-01  Jason Merrill  <jason@redhat.com>
1700
1701         * decl.c (next_initializable_field): No longer static.
1702         * cp-tree.h: Declare it.
1703         * call.c (build_aggr_conv): Fail if there are more initializers
1704         than initializable fields.
1705
1706         * semantics.c (maybe_add_lambda_conv_op): Use null_pointer_node
1707         instead of void_zero_node.
1708
1709 2010-03-31  Dodji Seketeli  <dodji@redhat.com>
1710
1711         PR c++/43558
1712         * cp-tree.h (TEMPLATE_TYPE_PARM_SIBLING_PARMS): New accessor macro.
1713         * pt.c (end_template_parm_list): Store sibling template parms of
1714         each TEMPLATE_TYPE_PARMs into its TEMPLATE_TYPE_PARM_SIBLING_PARMS.
1715         (push_template_decl_real): Don't store the containing template decl
1716         into the DECL_CONTEXT of TEMPLATE_TYPE_PARMs anymore.
1717         * typeck.c (get_template_parms_of_dependent_type): Get sibling parms
1718         of a TEMPLATE_TYPE_PARM from TEMPLATE_TYPE_PARM_SIBLING_PARMS.
1719         Simplify the logic.
1720
1721 2010-03-30  Jason Merrill  <jason@redhat.com>
1722
1723         PR c++/43076
1724         * pt.c (push_template_decl_real): Deal better with running out of
1725         scopes before running out of template parms.
1726
1727         PR c++/41185
1728         PR c++/41786
1729         * parser.c (cp_parser_direct_declarator): Don't allow VLAs in
1730         function parameter context.  Don't print an error if parsing
1731         tentatively.
1732
1733         PR c++/43559
1734         * pt.c (more_specialized_fn): Don't control cv-qualifier check
1735         with same_type_p.
1736
1737 2010-03-26  Jason Merrill  <jason@redhat.com>
1738
1739         PR c++/43509
1740         * parser.c (cp_parser_qualifying_entity): Do accept enum names in
1741         c++0x mode, but not other type-names.
1742
1743 2010-03-26  Dodji Seketeli  <dodji@redhat.com>
1744
1745         PR c++/43327
1746         * pt.c (add_to_template_args): Support NULL ARGS;
1747         (most_specialized_class): call coerce_template_parms on
1748         template arguments passed to get_class_bindings. Use
1749         add_to_template_args.
1750         (unify): Handle VAR_DECLs.
1751
1752 2010-03-26  Dodji Seketeli  <dodji@redhat.com>
1753
1754         * cp-tree.h (get_template_parms_at_level): Change unsigned parm
1755         into int.
1756         * pt.c (get_template_parms_at_level): Adjust.
1757
1758 2010-03-25  Dodji Seketeli  <dodji@redhat.com>
1759
1760         PR c++/43206
1761         * cp-tree.h (get_template_parms_at_level): Declare ...
1762         * pt.c (get_template_parms_at_level): ... new function.
1763         * typeck.c (get_template_parms_of_dependent_type): If a template
1764         type parm's DECL_CONTEXT isn't yet set, get its siblings from
1765         current_template_parms. Use get_template_parms_at_level. Remove
1766         useless test.
1767         (incompatible_dependent_types_p): If we get empty parms from just one
1768         of the template type parms we are comparing then the template parms are
1769         incompatible.
1770
1771 2010-03-24  Jason Merrill  <jason@redhat.com>
1772
1773         PR c++/43502
1774         * parser.c (make_declarator): Initialize id_loc.
1775         (cp_parser_lambda_declarator_opt): And set it.
1776
1777 2010-03-23  Jason Merrill  <jason@redhat.com>
1778
1779         Make lambda conversion op and op() non-static.
1780         * semantics.c (maybe_add_lambda_conv_op): Make non-static.
1781         Also add the thunk function returned by the conversion op.
1782         Mark the conversion deleted if the op() is variadic.
1783         * decl2.c (mark_used): Give helpful message about deleted conversion.
1784         * parser.c (cp_parser_lambda_declarator_opt): Don't make op() static.
1785         * semantics.c (finish_this_expr): Adjust.
1786         * mangle.c (write_closure_type_name): Adjust.
1787         * decl.c (grok_op_properties): Don't allow it.
1788         * call.c (build_user_type_conversion_1): No static conversion ops.
1789         (build_op_call): Or op().
1790
1791         * decl2.c (change_return_type): Fix 'this' quals.
1792
1793 2010-03-22  Jason Merrill  <jason@redhat.com>
1794
1795         PR c++/43333
1796         * tree.c (pod_type_p): Use old meaning in C++98 mode.
1797
1798         PR c++/43281
1799         * pt.c (contains_auto_r): New fn.
1800         (do_auto_deduction): Use it.
1801         (tsubst): Don't look at TREE_TYPE of a TEMPLATE_TYPE_PARM.
1802
1803 2010-03-20  Simon Martin  <simartin@users.sourceforge.net>
1804
1805         PR c++/43081:
1806         * decl2.c (grokfield): Handle invalid initializers for member
1807         functions.
1808
1809 2010-03-20  Dodji Seketeli  <dodji@redhat.com>
1810
1811         PR c++/43375
1812         * method.c (make_alias_for): Avoid crashing when DECL_LANG_SPECIFIC
1813         is NULL.
1814         * decl2.c (vague_linkage_p): Likewise.
1815
1816 2010-03-18  Paolo Carlini  <paolo.carlini@oracle.com>
1817
1818         PR c++/43418
1819         * parser.c (cp_parser_for_init_statement): Use NULL_TREE, not
1820         false, in the cp_parser_expression_statement call.
1821
1822 2010-03-05  Jason Merrill  <jason@redhat.com>
1823
1824         * mangle.c (mangle_decl): Give name collision error even without
1825         ASM_OUTPUT_DEF.
1826
1827 2010-03-04  Marco Poletti  <poletti.marco@gmail.com>
1828
1829         * pt.c (process_partial_specialization): Use error_n instead of
1830         error.
1831
1832 2010-03-03  Jason Merrill  <jason@redhat.com>
1833
1834         PR c++/12909
1835         * mangle.c (mangle_decl): Handle VAR_DECL, too.
1836
1837 2010-03-03  Jason Merrill  <jason@redhat.com>
1838
1839         PR c++/12909
1840         * mangle.c: Include cgraph.h.
1841         (mangle_decl): If the mangled name will change in a later
1842         ABI version, make the later mangled name an alias.
1843         * method.c (make_alias_for): Copy DECL_ARGUMENTS.
1844         * Make-lang.in (mangle.o): Depend on cgraph.h.
1845         * method.c (make_alias_for): Handle VAR_DECL, too.
1846         * decl2.c (vague_linkage_p): Rename from vague_linkage_fn_p.
1847         * tree.c (no_linkage_check): Adjust.
1848         * decl.c (maybe_commonize_var): Adjust.
1849         * cp-tree.h: Adjust.
1850
1851 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
1852
1853         * pt.c (redeclare_class_template): Use error_n and inform_n.
1854
1855 2010-02-27  Mark Mitchell  <mark@codesourcery.com>
1856
1857         PR c++/42748
1858         * cp-tree.h (push_tinst_level): Declare.
1859         (pop_tinst_level): Likewise.
1860         * pt.c (push_tinst_level): Give it external linkage.
1861         (pop_tinst_level): Likewise.
1862         * mangle.c (mangle_decl_string): Set the source location to that
1863         of the decl while mangling.
1864
1865 2010-02-27  Simon Martin  <simartin@users.sourceforge.net>
1866
1867         PR c++/42054
1868         * pt.c (redeclare_class_template): Return false if there are erroneous
1869         template parameters.
1870
1871 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1872
1873         * pt.c (push_tinst_level): Replace -ftemplate-depth- with 
1874         -ftemplate-depth=.
1875
1876 2010-02-24  Jason Merrill  <jason@redhat.com>
1877
1878         PR c++/12909
1879         * mangle.c (write_type): Give -Wabi warning for old vector mangling.
1880
1881         * class.c (layout_class_type): Don't give -Wabi warning for a bug
1882         in a previous ABI version.
1883
1884 2010-02-23  Jason Merrill  <jason@redhat.com>
1885
1886         PR c++/43143
1887         * typeck2.c (digest_init_r): Accept value init of array.
1888
1889 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1890
1891         PR c++/43126
1892         * typeck.c (convert_arguments): Update error message.
1893
1894 2010-02-22  Mike Stump  <mikestump@comcast.net>
1895
1896         PR c++/43125
1897         * decl.c (duplicate_decls): Merge DECL_PRESERVE_P.
1898
1899 2010-02-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1900
1901         PR c++/23510
1902         * error.c (print_instantiation_partial_context_line): New.
1903         (print_instantiation_partial_context): Print at most 12 contexts,
1904         skip the rest with a message.
1905
1906 2010-02-21  Dodji Seketeli  <dodji@redhat.com>
1907
1908         PR c++/42824
1909         * pt.c (lookup_template_class): Better support of specialization
1910         of member of class template implicit instantiation.
1911
1912 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1913
1914         PR c++/35669
1915         * call.c (conversion_null_warnings): Replace -Wconversion with
1916         -Wconversion-null.
1917         * cvt.c (build_expr_type_conversion): Likewise.
1918
1919 2010-02-18  Jason Merrill  <jason@redhat.com>
1920
1921         PR c++/42837
1922         * class.c (create_vtable_ptr): Set DECL_PACKED if type is packed.
1923
1924         PR c++/43108
1925         * typeck.c (cp_build_binary_op): Adapt mixed complex/non handling from
1926         C build_binary_op.
1927         * cp-tree.h (WANT_VECTOR_OR_COMPLEX): Rename from WANT_VECTOR.
1928         * cvt.c (build_expr_type_conversion): Allow COMPLEX_TYPE.
1929
1930         PR c++/43070
1931         * semantics.c (finish_goto_stmt): Don't call decay_conversion.
1932
1933         PR c++/26261
1934         PR c++/43101
1935         * pt.c (tsubst_qualified_id): Do normal lookup in non-dependent scope.
1936         (maybe_update_decl_type): New fn.
1937         * parser.c (cp_parser_init_declarator): Use it.
1938
1939         PR c++/43109
1940         * semantics.c (begin_class_definition): Don't crash on unnamed ns.
1941
1942 2010-02-17  Jason Merrill  <jason@redhat.com>
1943
1944         PR c++/43075
1945         * call.c (build_over_call): Don't create zero-sized assignments.
1946         * cp-gimplify.c (cp_genericize_r): Don't remove them here.
1947         * cp-objcp-common.c (cp_expr_size): Remove.
1948         * cp-tree.h: Remove prototype.
1949
1950         PR c++/43069
1951         * name-lookup.c (set_decl_namespace): Don't copy DECL_CONTEXT if the
1952         decl we looked up doesn't match.
1953
1954         PR c++/43093
1955         * cp-gimplify.c (cp_gimplify_expr) [INIT_EXPR]: Return if we don't
1956         have an INIT_EXPR anymore.
1957
1958         PR c++/43079
1959         * pt.c (convert_nontype_argument): Change assert to test.
1960
1961 2010-02-16  Jason Merrill  <jason@redhat.com>
1962
1963         * cp-gimplify.c (cp_gimplify_expr): Fix error recovery.
1964
1965         PR c++/43031
1966         * cp-gimplify.c (cp_gimplify_expr) [MODIFY_EXPR]: Use
1967         VIEW_CONVERT_EXPR for conversions between structural equality types
1968         that the back end can't tell are the same.
1969
1970         PR c++/43036
1971         * tree.c (build_cplus_array_type): Set TYPE_MAIN_VARIANT to strip
1972         cv-quals from element here.
1973         (cp_build_qualified_type_real): Not here.  Preserve typedef name.
1974
1975 2010-02-14  Jason Merrill  <jason@redhat.com>
1976
1977         PR c++/41997
1978         * semantics.c (finish_compound_literal): Use
1979         cp_apply_type_quals_to_decl when creating a static variable.
1980
1981 2010-02-12  Jason Merrill  <jason@redhat.com>
1982
1983         PR c++/43024
1984         * name-lookup.h (current_binding_level): Check for null
1985         cp_function_chain.
1986
1987 2010-02-12  Jason Merrill  <jason@redhat.com>
1988
1989         PR c++/43054
1990         * tree.c (cp_tree_equal): Correct CALL_EXPR logic.
1991
1992 2010-02-12  Jakub Jelinek  <jakub@redhat.com>
1993
1994         PR c++/43033
1995         * name-lookup.c (pushdecl_maybe_friend): Check default args of t
1996         instead of x.
1997
1998 2010-02-10  Jason Merrill  <jason@redhat.com>
1999
2000         PR c++/41896
2001         * semantics.c (outer_lambda_capture_p): Revert.
2002         (add_capture): Only finish_member_declaration if
2003         we're in the lambda class.
2004         (register_capture_members): New.
2005         * cp-tree.h: Declare it.
2006         * parser.c (cp_parser_lambda_expression): Call it.
2007
2008 2010-02-10  Jason Merrill  <jason@redhat.com>
2009
2010         PR c++/41896
2011         * semantics.c (outer_lambda_capture_p): Use current_function_decl
2012         instead of current_class_type.
2013
2014 2010-02-10  Jason Merrill  <jason@redhat.com>
2015
2016         PR c++/42983, core issue 906
2017         * method.c (defaultable_fn_check): Check virtualness.
2018
2019 2010-02-10  Jason Merrill  <jason@redhat.com>
2020
2021         PR c++/43016
2022         * semantics.c (maybe_add_lambda_conv_op): Set DECL_INTERFACE_KNOWN.
2023
2024 2010-02-10  Shujing Zhao  <pearly.zhao@oracle.com>
2025
2026         * Make-lang.in (cp/cvt.o, cp/parser.o, cp/search.o): Depend on intl.h.
2027         * cvt.c (warn_ref_binding): Wrap the messages into G_() for easy
2028         translation.
2029         * parser.c (cp_parser_postfix_expression, cp_parser_new_type_id)
2030         (cp_parser_cast_expression, cp_parser_condition, cp_parser_decltype)
2031         (cp_parser_parameter_declaration)
2032         (cp_parser_exception_specification_opt)
2033         (cp_parser_exception_declaration): Likewise.
2034         * pt.c (check_default_tmpl_args): Likewise.
2035         * search.c (lookup_field_r): Likewise.
2036
2037 2010-02-09  Jason Merrill  <jason@redhat.com>
2038
2039         PR c++/42399
2040         * pt.c (tsubst_copy_and_build): Propagate LAMBDA_EXPR_LOCATION.
2041
2042 2010-02-09  Jason Merrill  <jason@redhat.com>
2043
2044         PR c++/42370
2045         * decl2.c (change_return_type): New fn.
2046         * semantics.c (apply_lambda_return_type): Use it.
2047         * cp-tree.h: Declare it.
2048
2049 2010-02-05  Richard Guenther  <rguenther@suse.de>
2050
2051         * Make-lang.in (cp/cp-lang.o): Depend on gt-cp-cp-lang.h.
2052         * cp-lang.c: Include gt-cp-cp-lang.h.
2053         * config-lang.in (gtfiles): Add cp/cp-lang.c.
2054
2055 2010-02-05  Dodji Seketeli  <dodji@redhat.com>
2056
2057         PR c++/42915
2058         * typeck.c (get_template_parms_of_dependent_type): Try getting
2059         the template parameters fromt the type itself first.
2060
2061 2010-02-03  Jason Merrill  <jason@redhat.com>
2062
2063         PR c++/4926
2064         PR c++/38600
2065         * mangle.c (write_unqualified_id): Split out from write_expression.
2066         (write_unqualified_name): Call it.
2067         (write_member_name): Likewise.
2068         (write_expression): Support TEMPLATE_ID_EXPR.
2069         Disambiguate operator names.
2070
2071         PR c++/12909
2072         * mangle.c (write_type) [VECTOR_TYPE]: Change mangling with
2073         -fabi-version=4.
2074
2075 2010-02-02  Jason Merrill  <jason@redhat.com>
2076
2077         PR c++/41090
2078         * decl.c (cp_finish_decl): Add local statics to cfun->local_decls.
2079         * optimize.c (clone_body): Remap their initializers when making base
2080         variants.
2081         (maybe_clone_body): Complain if multiple clones aren't safe.
2082
2083 2010-01-29  Dodji Seketeli  <dodji@redhat.com>
2084
2085         PR c++/42758
2086         PR c++/42634
2087         PR c++/42336
2088         PR c++/42797
2089         PR c++/42880
2090         * cp-tree.h (NON_DEFAULT_TEMPLATE_ARGS_COUNT,
2091         SET_NON_DEFAULT_TEMPLATE_ARGS_COUNT,
2092         GET_NON_DEFAULT_TEMPLATE_ARGS_COUNT): New accessor macros.
2093         * pt.c (coerce_template_parms, type_unification_real,
2094         expand_template_argument_pack, coerce_template_parameter_pack):
2095         Set the non default template args count.
2096         (current_template_args): Always set non defaulted
2097         template args count when compiled with --enable-checking
2098         (tsubst_template_args, type_unification_real): Propagate the non
2099         defaulted template args count.
2100         * error.c (get_non_default_template_args_count): Renamed
2101         count_non_default_template_args into this. Don't calculate the
2102         non default template argument count anymore. Use the new
2103         accessor macros above to get it.
2104         (dump_template_argument_list, dump_type, dump_decl,
2105         dump_template_parms): Adjust.
2106         * parser.c (cp_parser_template_argument_list): Always set defaulted
2107         template args count when compiled with --enable-checking.
2108
2109 2010-01-29  Shujing Zhao  <pearly.zhao@oracle.com>
2110
2111         * decl.c (redeclaration_error_message): Wrap the return messages into
2112         G_() for easy translation.
2113
2114 2010-01-28  Jason Merrill  <jason@redhat.com>
2115
2116         PR c++/42880
2117         * semantics.c (begin_class_definition): Don't use type_as_string.
2118
2119 2010-01-28  Dodji Seketeli  <dodji@redhat.com>
2120
2121         PR c++/42713
2122         PR c++/42820
2123         * typeck.c (get_template_parms_of_dependent_type): Factorized
2124         this out of incompatible_template_type_parms_p
2125         (incompatible_dependent_types_p): Renamed
2126         incompatible_template_type_parms_p into this. Make it detect
2127         two incompatible dependent typedefs too.
2128         (structural_comptypes): Use incompatible_dependent_types_p.
2129         * pt.c (get_template_info):
2130         Handle BOUND_TEMPLATE_TEMPLATE_PARAM.
2131
2132 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
2133             Jason Merrill  <jason@redhat.com>
2134
2135         * mangle.c (write_type): Mangle transparent record as member type.
2136         * semantics.c (begin_class_definition): Recognize decimal classes
2137         and set TYPE_TRANSPARENT_AGGR.
2138
2139 2010-01-20  Jason Merrill  <jason@redhat.com>
2140
2141         PR c++/42338
2142         * mangle.c (write_expression): Handle tree codes that have extra
2143         arguments in the middle-end.
2144
2145 2010-01-20  Paolo Carlini  <paolo.carlini@oracle.com>
2146
2147         PR c++/42038
2148         * except.c (expand_start_catch_block): Deal correctly with
2149         do_begin_catch returning error_mark_node.
2150
2151 2010-01-20  Jason Merrill  <jason@redhat.com>
2152
2153         PR c++/41788
2154         * class.c (layout_class_type): Set packed_maybe_necessary for packed
2155         non-PODs.
2156
2157         PR c++/41920
2158         * semantics.c (build_lambda_object): Call mark_used on captured
2159         variables.
2160
2161         PR c++/40750
2162         * decl.c (grokdeclarator): Clear type_quals for a member function
2163         declared using a typedef.  Don't complain about adding cv-quals
2164         to a function typedef in C++0x mode.
2165
2166 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
2167
2168         * decl.c (create_array_type_for_decl): Remove set but not used
2169         variable error_msg.  Remove break stmts after return stmts.
2170
2171 2010-01-19  Dodji Seketeli  <dodji@redhat.com>
2172
2173         * error.c (dump_template_parms, count_non_default_template_args):
2174         Revert fix of PR c++/42634.
2175
2176 2010-01-18  Dodji Seketeli  <dodji@redhat.com>
2177
2178         PR c++/42634
2179         * error.c (dump_template_parms): Use innermost template
2180         arguments before calling count_non_default_template_args.
2181         (count_non_default_template_args): We are being called with
2182         template innermost arguments now. There is no need to ensure
2183         that again.
2184
2185 2010-01-18  Dodji Seketeli  <dodji@redhat.com>
2186
2187         PR c++/42766
2188         * cvt.c (build_expr_type_conversion): Look through OVERLOAD.
2189
2190 2010-01-17  Dodji Seketeli  <dodji@redhat.com>
2191
2192         PR c++/42697
2193         *pt.c (tsubst_decl):  Revert commit for PR c++/42697.
2194
2195 2010-01-17  Dodji Seketeli  <dodji@redhat.com>
2196
2197         PR c++/42697
2198         *pt.c (tsubst_decl): Get the arguments of a specialization from
2199         the specialization template, not from the most general template.
2200
2201 2010-01-16  Jason Merrill  <jason@redhat.com>
2202
2203         PR c++/42761
2204         * semantics.c (finish_decltype_type): Within a template, treat
2205         unresolved CALL_EXPR as dependent.
2206
2207 2010-01-15  Dodji Seketeli  <dodji@redhat.com>
2208
2209         * error.c (dump_template_parms,count_non_default_template_args):
2210         Revert changes of PR c++/42634.
2211
2212 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
2213
2214         PR middle-end/42674
2215         * decl.c (finish_function): Don't emit -Wreturn-type warnings in
2216         functions with noreturn attribute.
2217
2218 2010-01-14  Jason Merrill  <jason@redhat.com>
2219
2220         PR c++/42701
2221         * call.c (build_new_method_call): Don't free the vec here.
2222
2223         PR c++/42655
2224         * call.c (convert_like_real): Do full decay_conversion for ck_rvalue.
2225
2226 2010-01-13  Dodji Seketeli  <dodji@redhat.com>
2227
2228         PR c++/42634
2229         * error.c (dump_template_parms): Use innermost template
2230         arguments before calling count_non_default_template_args.
2231         (count_non_default_template_args): We are being called with
2232         template innermost arguments now. There is no need to ensure
2233         that again.
2234
2235 2010-01-07  Dodji Seketeli  <dodji@redhat.com>
2236
2237         c++/40155
2238         * pt.c (unify_pack_expansion): In non-deduced contexts, re-use template
2239         arguments that were previously deduced.
2240
2241 2010-01-05  Jason Merrill  <jason@redhat.com>
2242
2243         * pt.c (unify_pack_expansion): Handle deduction from init-list.
2244         * call.c (build_over_call): Don't complain about it.
2245
2246 2010-01-04  Jason Merrill  <jason@redhat.com>
2247
2248         PR c++/42555
2249         * pt.c (tsubst_decl): Don't apply type attributes in place.
2250
2251         PR c++/42567
2252         * semantics.c (describable_type): Remove decltype comment and
2253         semantics.
2254
2255
2256 \f
2257 Copyright (C) 2010 Free Software Foundation, Inc.
2258
2259 Copying and distribution of this file, with or without modification,
2260 are permitted in any medium without royalty provided the copyright
2261 notice and this notice are preserved.
2262