OSDN Git Service

gcc/ChangeLog:
[pf3gnuchains/gcc-fork.git] / gcc / cp / ChangeLog
1 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
2
3         * cp-tree.h (ATTRIBUTE_GCC_CXXDIAG): Remove.  Require that
4         this file is included before c-common.h.  Define GCC_DIAG_STYLE
5         before including diagnostic-core.h and toplev.h.
6         (pedwarn_cxx98): Use ATTRIBUTE_GCC_DIAG.
7         * pt.c: Include cp-tree.h before c-common.h.
8
9 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
10
11         * tree.c (c_register_addr_space): Add stub.
12
13 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
14
15         * g++spec.c (lang_specific_driver): Use fatal_error instead of
16         fatal.
17
18 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
19
20         Revert fix of PR c++/44188
21         * cp-tree.h (typedef_variant_p): Revert moving this declaration to
22         gcc/tree.h.
23         * tree.c (typedef_variant_p): Revert moving this definition to
24         gcc/tree.c.
25         * decl.c (grokdeclarator): Revert naming typedef handling.
26
27 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
28
29         * call.c: Include diagnostic-core.h instead of diagnostic.h.
30         * cp-lang.c: Don't include diagnostic.h
31         * name-lookup.c: Include diagnostic-core.h instead of
32         diagnostic.h.
33         (cp_emit_debug_info_for_using): Use seen_error.
34         * optimize.c: Include diagnostic-core.h instead of diagnostic.h.
35         * parser.c: Include diagnostic-core.h instead of diagnostic.h.
36         * pt.c (iterative_hash_template_arg): Use seen_error.
37         * repo.c: Include diagnostic-core.h instead of diagnostic.h.
38         * typeck2.c: Include diagnostic-core.h instead of diagnostic.h.
39         * Make-lang.in (cp/cp-lang.o, cp/typeck2.o, cp/call.o, cp/repo.o,
40         cp/optimize.o, cp/parser.o, cp/name-lookup.o): Update
41         dependencies.
42
43 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
44
45         PR c++/44188
46         * cp-tree.h (typedef_variant_p): Move this declaration to
47         gcc/tree.h.
48         * tree.c (typedef_variant_p): Move this definition to gcc/tree.c.
49         * decl.c (grokdeclarator): Do not rename debug info of an
50         anonymous tagged type named by a typedef.
51
52 2010-05-27  Jason Merrill  <jason@redhat.com>
53
54         PR c++/43555
55         * decl.c (grokdeclarator) [cdk_pointer et al]: Force evaluation of
56         anonymous VLA size.
57
58 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
59
60         PR bootstrap/44287
61         * rtti.c (emit_support_tinfos): Check for NULL_TREE.
62         * class.c (layout_class_type): Likewise.
63         * decl.c (finish_enum): Likewise.
64         * mangle.c (write_builitin_type): Likewise.
65
66 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
67
68         * cp-tree.h (cp_decl_specifier_seq): Add new bifield
69         explicit_int128_p.
70         * decl.c (grokdeclarator): Handle __int128.
71         * parser.c (cp_lexer_next_token_is_decl_specifier_ke): Likewise.
72         (cp_parser_simple_type_specifier): Likewise.
73         * rtti.c (emit_support_tinfos): Add int128 nodes for rtti.
74         * typeck.c (cp_common_type): Handle __int128.
75         * mangle.c (integer_type_codes): Add itk_int128 and
76         itk_unsigned_int128.
77
78 2010-05-26  Jason Merrill  <jason@redhat.com>
79
80         PR c++/43382
81         * pt.c (tsubst_pack_expansion): Don't get confused by recursive
82         unification.
83
84 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
85
86         * cp-lang.c: Do not include expr.h.
87
88 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
89
90         * decl.c: Do not include rtl.h
91         * semantics.c: Likewise.
92
93 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
94
95         * cp-tree.h: Do not include splay-tree.h.
96         (struct prtmem_cst): Remove unused field and false comment.
97         * typeck.c: Do not include rtl.h, expr.h, and tm_p.h.
98         * optimize.c: Do not inclde rtl.h, insn-config.h, and integrate.h.
99         * init.c: Do not include rtl.h and expr.h.
100         * class.c: Do not include rtl.h.  Include splay-tree.h.
101         (build_clone): Use plain NULL instead of NULL_RTX.
102         * decl.c: Do not include expr.h.  Explain why rtl.h has to be
103         included.  Include splay-tree.h.
104         * method.c: Do not include rtl.h and expr.h.
105         (use_thunk): Use plain NULL instead of NULL_RTX.
106         * except.c: Do not include rtl.h, expr.h, and libfuncs.h.
107         * tree.c: Do not include rtl.h, insn-config.h, integrate.h,
108         and target.h.  Include splay-tree.h.
109         * expr.c: Do not include rtl.h and expr.h.
110         * pt.c: Do not include obstack.h and rtl.h.
111         (tsubst_friend_function): Use plain NULL instead of NULL_RTX.
112         (tsubst_decl): Likewise.
113         (instantiate_decl): Likewise.
114         * semantics.c: Do not include exprt.h and debug.h.  Explain why
115         rtl.h has to be included.
116         * decl2.c: Do not include rtl.h and expr.h.  Include splay-tree.h.
117         * call.c: Do not include rtl.h and expr.h.
118         * search.c: Do not include obstack.h and rtl.h.
119         * friend.c: Do not include rtl.h and expr.h.
120         * Make-lang.in: Update dependencies.
121
122 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
123
124         PR c++/18249
125         * parser.c (non_integral_constant): Add NIC_NONE.
126         (required_token): Add RT_NONE.
127         (cp_parser_unary_expression): Initialize non_constant_p
128         to NIC_NONE.
129         (cp_parser_asm_definition): Initialize missing to RT_NONE.
130         (cp_parser_primary_expression, cp_parser_postfix_expression,
131         cp_parser_cast_expression, cp_parser_binary_expression,
132         cp_parser_functional_cast): Fix formatting.
133
134 2010-05-25  Shujing Zhao  <pearly.zhao@oracle.com>
135         
136         PR c++/18249
137         * parser.c: Remove inclusion of dyn-string.h.
138         (non_integral_constant): New enum.
139         (name_lookup_error): New enum.
140         (required_token): New enum.
141         (cp_parser_required_error): New function.
142         (cp_parser_require): Change the type of variable token_desc to
143         required_token and use cp_parser_required_error.
144         (cp_parser_require_keyword): Likewise.
145         (cp_parser_error): Use gmsgid as parameter.
146         (cp_parser_name_lookup_error): Change the type of variable desired to
147         name_lookup_error and put the diagnostic in the full sentences. Change
148         caller.
149         (cp_parser_non_integral_constant_expression): Change the type of the
150         variable thing to non_integral_constant and put the diagnostics in
151         full sentences. Change caller.
152
153 2010-05-24  Eric Botcazou  <ebotcazou@adacore.com>
154
155         PR middle-end/44100
156         * typeck.c (cp_build_unary_op): Fold offsetof-like computations.
157
158 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
159
160         * error.c (cp_diagnostic_starter): Update call to
161         diagnostic_build_prefix.
162         (cp_print_error_function,
163         print_instantiation_partial_context_line): Check show_column flag
164         in context.
165
166 2010-05-24  Jason Merrill  <jason@redhat.com>
167
168         PR c++/41510
169         * decl.c (check_initializer): Don't wrap an init-list in a
170         TREE_LIST.
171         * init.c (build_aggr_init): Don't assume copy-initialization if
172         init has CONSTRUCTOR_IS_DIRECT_INIT.
173         * call.c (build_new_method_call): Sanity check.
174
175 2010-05-24  Nathan Froyd  <froydnj@codesourcery.com>
176
177         * rtti.c (tinfo_base_init): Use build_constructor instead of
178         build_constructor_from_list.  Don't cons a tree node for
179         returning.
180         (generic_initializer): Use build_constructor_single instead of
181         build_constructor_from_list.
182         (ptr_initializer): Use build_constructor instead of
183         build_constructor_from_list
184         (ptm_initializer): Likewise.
185         (class_initializer): Likewise.  Take varargs instead of TRAIL.
186         (get_pseudo_ti_init): Adjust calls to class_initializer.  Use
187         build_constructor instead of build_constructor_from_list.
188
189 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
190
191         * semantics.c: Include bitmap.h.
192         * Make-lang.in: Update dependencies.
193
194 2010-05-22  Jan Hubicka  <jh@suse.cz>
195
196         * decl2.c (maybe_emit_vtables): Produce same comdat group when outputting
197         comdat vtables.
198         (cxx_callgraph_analyze_expr): Remove code marking vtables needed.
199
200 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
201
202         * cxx-pretty-print.c: Correct merge error.
203
204 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
205
206         * error.c: Include tree-diagnostic.h and tree-pretty-print.h.
207         (cp_print_error_function): Use diagnostic_abstract_origin macro.
208         (cp_printer): Handle %K here using percent_K_format.
209         * cxx-pretty-print.c: Include tree-pretty-print.h.
210         * Make-lang.in (cp/error.o, cp/cxx-pretty-print.o): Update
211         dependencies.
212
213 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
214
215         * error.c, tree.c, typeck2.c, cxx-pretty-print.c, mangle.c:
216         Clean up redundant includes.
217
218 2010-05-20  Paolo Carlini  <paolo.carlini@oracle.com>
219
220         PR c++/30298
221         * decl.c (xref_basetypes): Return false in case of ill-formed
222         redefinition.
223
224 2010-05-19  Jason Merrill  <jason@redhat.com>
225
226         * call.c (reference_binding): Use cp_build_qualified_type_real
227         and cp_type_quals consistently.
228         (add_function_candidate): Likewise.
229         (build_conditional_expr): Likewise.
230         (convert_like_real): Likewise.
231         (type_passed_as): Likewise.
232         * class.c (add_method): Likewise.
233         (same_signature_p): Likewise.
234         (layout_class_type): Likewise.
235         * decl.c (cxx_init_decl_processing): Likewise.
236         (cp_fname_init): Likewise.
237         (grokdeclarator): Likewise.
238         * decl2.c (cp_reconstruct_complex_type): Likewise.
239         * init.c (build_new_1): Likewise.
240         * method.c (do_build_copy_constructor): Likewise.
241         (implicitly_declare_fn): Likewise.
242         * pt.c (tsubst_aggr_type): Likewise.
243         (tsubst): Likewise.
244         * rtti.c (init_rtti_processing): Likewise.
245         (build_headof): Likewise.
246         (build_dynamic_cast_1): Likewise.
247         (tinfo_base_init): Likewise.
248         (emit_support_tinfos): Likewise.
249         * semantics.c (capture_decltype): Likewise.
250         * tree.c (cv_unqualified): Likewise.
251         * typeck.c (composite_pointer_type): Likewise.
252         (string_conv_p): Likewise.
253
254         * mangle.c (write_CV_qualifiers_for_type): Tweak.
255
256         * call.c (initialize_reference): Use CP_TYPE_CONST_P.
257         * decl.c (start_decl): Likewise.
258         * semantics.c (finish_compound_literal): Likewise.
259         * typeck.c (check_return_expr): Use CP_TYPE_VOLATILE_P.
260         (cp_type_readonly): Remove.
261         * cp-tree.h: Remove declaration.
262
263         * typeck.c (merge_types): Preserve memfn quals.
264
265         * decl.c (grokdeclarator): Don't check quals on fn type.
266         * typeck.c (cp_apply_type_quals_to_decl): Likewise.
267         * tree.c (cp_build_qualified_type_real): Simplify qualifier checking.
268
269         PR c++/44193
270         * typeck.c (type_memfn_quals): New fn.
271         (apply_memfn_quals): New fn.
272         (cp_type_quals): Return TYPE_UNQUALIFIED for FUNCTION_TYPE.
273         (cp_type_readonly): Use cp_type_quals.
274         * cp-tree.h: Add declarations.
275         * tree.c (cp_build_qualified_type_real): Don't set, but do
276         preserve, quals on FUNCTION_TYPE.
277         (strip_typedefs): Use apply_memfn_quals and type_memfn_quals.
278         * decl.c (build_ptrmem_type): Likewise.
279         (grokdeclarator): Likewise.
280         (static_fn_type): Likewise.
281         * decl2.c (change_return_type): Likewise.
282         (cp_reconstruct_complex_type): Likewise.
283         * pt.c (tsubst_function_type): Likewise.
284         (unify): Likewise.
285         (tsubst): Likewise.  Drop special FUNCTION_TYPE substitution code.
286
287 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
288
289         * tree.c (build_min_non_dep_call_vec): Update comment.
290
291 2010-05-17  Jason Merrill  <jason@redhat.com>
292
293         * call.c (struct z_candidate): Add explicit_targs field.
294         (add_template_candidate_real): Set it.
295         (build_over_call): Use it to control init-list warning.
296
297         PR c++/44157
298         * call.c (build_over_call): Limit init-list deduction warning to
299         cases where the argument is actually an init-list.
300
301         PR c++/44158
302         * call.c (build_over_call): Don't do bitwise copy for move ctor.
303
304 2010-05-17  Dodji Seketeli  <dodji@redhat.com>
305             Jason Merrill  <jason@redhat.com>
306
307         PR c++/44108
308         * decl.c (compute_array_index_type): Call mark_rvalue_use.
309
310 2010-05-15  Jason Merrill  <jason@redhat.com>
311
312         * cp-tree.h (TYPE_NOEXCEPT_P): New macro.
313         * except.c (begin_eh_spec_block): Use MUST_NOT_THROW_EXPR if
314         TYPE_NOEXCEPT_P.
315         (finish_eh_spec_block): Adjust.
316
317 2010-05-15  Jakub Jelinek  <jakub@redhat.com>
318
319         PR c++/44148
320         * pt.c (tsubst): Unshare template argument.
321
322 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
323
324         * decl.c: Include tree-iterator.h, as fixup for tree-inline.h changes.
325         * Make-lang.in: Fix dependencies accordingly.
326
327 2010-05-14  Jason Merrill  <jason@redhat.com>
328
329         C++ DR 475
330         * except.c (build_throw): Simplify, adjust for DR 475.
331
332         PR c++/44127
333         * except.c (dtor_nothrow): Return nonzero for type with
334         trivial destructor.
335
336         PR c++/44127
337         * cp-gimplify.c (gimplify_must_not_throw_expr): Use
338         gimple_build_eh_must_not_throw.
339
340 2010-05-14  Martin Jambor  <mjambor@suse.cz>
341
342         * cp-lang.c (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove both its undef
343         and define.
344
345 2010-05-14  Jonathan Wakely  <jwakely.gcc@gmail.com>
346
347         * call.c (build_new_method_call): Change warning text.
348         * typeck2.c (build_functional_cast): Change error text.
349
350 2010-05-14  Shujing Zhao  <pearly.zhao@oracle.com>
351
352         PR c++/30566
353         * name-lookup.c (pushdecl_maybe_friend): Avoid the warnings about
354         shadowing the outer parameter or variables by the declaration of
355         nested function in nested structure or class. Warn the shadowing by
356         the declaration of nested lambda expression.
357
358 2010-05-13  Jason Merrill  <jason@redhat.com>
359
360         * typeck.c (cp_build_array_ref): Factor out from...
361         (build_array_ref): ...here.  Drop complain parm.
362         (build_new_op): Adjust.
363         * class.c (build_vtbl_ref_1): Adjust.
364         * decl2.c (grok_array_decl): Adjust.
365         * cp-tree.h: Adjust prototypes.
366
367 2010-05-13  Jan Hubicka  <jh@suse.cz>
368
369         * decl.c (cp_finish_decl): Do not worry about used attribute.
370
371 2010-05-12  Jason Merrill  <jason@redhat.com>
372
373         * typeck.c (build_array_ref): Take complain parm.
374         * cp-tree.h: Add it to prototype.
375         * call.c (build_new_op): Pass it.
376         * class.c (build_vtbl_ref): Pass it.
377         * decl2.c (grok_array_decl): Pass it.
378
379         PR bootstrap/44048
380         PR target/44099
381         * cp-tree.def (NULLPTR_TYPE): Remove.
382         * cp-tree.h (NULLPTR_TYPE_P): New.
383         (SCALAR_TYPE_P): Use it.
384         (nullptr_type_node): New.
385         (cp_tree_index): Add CPTI_NULLPTR_TYPE.
386         * decl.c (cxx_init_decl_processing): Call record_builtin_type on
387         nullptr_type_node.
388         * cvt.c (ocp_convert): Use NULLPTR_TYPE_P instead of NULLPTR_TYPE.
389         * cxx-pretty-print.c (pp_cxx_constant): Likewise.
390         * error.c (dump_type, dump_type_prefix, dump_type_suffix): Likewise.
391         * mangle.c (write_type): Likewise.
392         * name-lookup.c (arg_assoc_type): Likewise.
393         * typeck.c (build_reinterpret_cast_1): Likewise.
394         * rtti.c (typeinfo_in_lib_p): Likewise.
395         (emit_support_tinfos): Remove local nullptr_type_node.
396
397         * cp-tree.h (UNKNOWN_TYPE): Remove.
398         * decl.c (cxx_init_decl_processing): Use LANG_TYPE instead.
399         * error.c (dumy_type, dump_type_prefix, dump_type_suffix): Likewise.
400         * typeck2.c (cxx_incomplete_type_diagnostic): Likewise.
401         * class.c (instantiate_type): Check unknown_type_node rather than
402         UNKNOWN_TYPE.
403         * name-lookup.c (maybe_push_decl): Likewise.
404         * rtti.c (get_tinfo_decl_dynamic): Likewise.
405         (get_typeid): Likewise.
406         * semantics.c (finish_offsetof): Likewise.
407
408         PR c++/20669
409         * call.c (add_template_candidate_real): If deduction fails, still
410         add the template as a non-viable candidate.
411         (equal_functions): Handle template candidates.
412         (print_z_candidate): Likewise.
413         (print_z_candidates): Likewise.
414         (build_new_function_call): Likewise.
415
416         * cp-tree.h (LOOKUP_LIST_ONLY): New.
417         * call.c (add_candidates): Enforce it.
418         (build_new_method_call): Try non-list ctor if no viable list ctor.
419         (build_user_type_conversion_1): Likewise.
420
421         * call.c (add_candidates): Distinguish between type(x) and
422         x.operator type().
423         (convert_class_to_reference): Set LOOKUP_NO_CONVERSION.
424         (build_new_method_call): Give better error for conversion op.
425
426         * call.c (add_candidates): Add first_arg and return_type parms.
427         Add special constructor/conversion op handling.
428         (convert_class_to_reference): Use it.
429         (build_user_type_conversion_1): Likewise.
430         (build_op_call): Likewise.
431         (build_new_method_call): Likewise.
432         (build_new_op): Adjust.
433         (perform_overload_resolution): Adjust.
434
435 2010-05-11  Paolo Carlini  <paolo.carlini@oracle.com>
436
437         PR c++/34272
438         PR c++/43630
439         PR c++/34491
440         * pt.c (process_partial_specialization): Return error_mark_node
441         in case of unused template parameters in partial specialization.
442
443 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
444
445         PR c++/44062
446         * semantics.c (finish_expr_stmt): Don't call mark_exp_read here...
447         * cvt.c (convert_to_void): ... but here.  If expr is a COMPOUND_EXPR,
448         look at its second operand.
449
450 2010-05-10  Jason Merrill  <jason@redhat.com>
451
452         PR c++/44017
453         * semantics.c (baselink_for_fns): Revert earlier change.
454
455         PR c++/44045
456         * typeck.c (cp_build_modify_expr): Complain about assignment to
457         array from init list.
458
459 2010-05-10  Fabien Chêne  <fabien.chene@gmail.com>
460
461         PR c++/43719
462         * decl.c (check_initializer): strip array type before checking for
463         uninitialized const or ref members.
464
465 2010-05-07  Fabien Chêne  <fabien.chene@gmail.com>
466
467         PR c++/43951
468         * init.c (diagnose_uninitialized_cst_or_ref_member_1): Returns the
469         error count. Emit errors only if compain is true.
470         (build_new_1): Do not return error_mark_node if
471         diagnose_uninitialized_cst_or_ref_member_1 does not diagnose any
472         errors. Delay the check for user-provided constructor.
473         (perform_member_init): Adjust.
474         * cp-tree.h (diagnose_uninitialized_cst_or_ref_member): Change the
475         prototype.
476
477 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
478             Jason Merrill  <jason@redhat.com>
479
480         Add support for C++0x nullptr.
481         * cp-tree.def: Add NULLPTR_TYPE.
482         * cp-tree.h: Add nullptr_node.
483         (cp_tree_index): Add CPTI_NULLPTR.
484         (SCALAR_TYPE_P): Add NULLPTR_TYPE.
485         * call.c (null_ptr_cst_p): Handle nullptr.
486         (standard_conversion): Likewise.
487         (convert_arg_to_ellipsis): Likewise.
488         * mangle.c (write_type): Likewise.
489         * name-lookup.c (arg_assoc_type): Likewise.
490         * parser.c (cp_parser_primary_expression): Likewise.
491         * typeck.c (cp_build_binary_op): Likewise.
492         (build_reinterpret_cast_1): Likewise.
493         * error.c (dump_type): Likewise.
494         (dump_type_prefix, dump_type_suffix): Likewise.
495         * decl.c (cxx_init_decl_processing): Likewise.
496         * cxx-pretty-print.c (pp_cxx_constant): Likewise.
497         * cvt.c (ocp_convert): Likewise.
498         * rtti.c (typeinfo_in_lib_p, emit_support_tinfos): Put
499         nullptr_t tinfo in libsupc++.
500
501 2010-05-06  Jason Merrill  <jason@redhat.com>
502
503         * semantics.c (simplify_aggr_init_expr): Use INIT_EXPR.
504
505 2010-04-22  Jakub Jelinek <jakub@redhat.com>
506             Dodji Seketeli <dodji@redhat.com>
507
508         PR c/18624
509         * cp-tree.h (mark_exp_read, rvalue_use, lvalue_use, type_use):
510         Declare ...
511         * expr.c (mark_exp_read, rvalue_use, lvalue_use, type_use): ... new fns.
512         * typeck.c (cxx_sizeof_expr, cxx_alignof_expr): Call type_use.
513         (decay_conversion, perform_integral_promotions): Call rvalue_use.
514         (cp_build_unary_op): Call lvalue_use.
515         * decl.c (unused_but_set_errorcount): New variable.
516         (poplevel): Issue -Wunused-but-set-variable diagnostics.
517         (duplicate_decls): Merge DECL_READ_P flags.
518         (start_cleanup_fn): Set DECL_READ_P flag.
519         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
520         * tree.c (rvalue): Call rvalue_use.
521         * pt.c (convert_nontype_argument): Likewise.
522         * semantics.c (finish_expr_stmt, finish_asm_stmt, finish_typeof,
523         finish_decltype_type): Likewise.
524         * call.c (convert_like_real) <ck_identity, ck_user>: Call rvalue use.
525         (build_x_va_arg, build_new_method_call, build_over_call): Call lvalue_use
526         or rvalue_use depending on the expr.
527         * init.c (build_new, build_delete): Likewise.
528         * rtti.c (build_typeid, build_dynamic_cast_1): Likewise.
529
530 2010-05-05  Jason Merrill  <jason@redhat.com>
531
532         PR c++/43787
533         * cp-gimplify.c (cp_gimplify_expr): Remove copies of empty classes.
534         * call.c (build_over_call): Don't try to avoid INIT_EXPR copies here.
535
536 2010-05-04  Paolo Carlini  <paolo.carlini@oracle.com>
537
538         PR c++/43028
539         * pt.c (unify): Check each elt for error_mark_node.
540
541 2010-05-04  Jason Merrill  <jason@redhat.com>
542
543         PR c++/38064
544         * typeck.c (cp_build_binary_op): Allow enums for <> as well.
545
546 2010-05-04  Paolo Carlini  <paolo.carlini@oracle.com>
547
548         PR c++/43705
549         * call.c (build_new_method_call): Return error_mark_node if fns is
550         NULL_TREE.
551
552 2010-05-03  Dodji Seketeli  <dodji@redhat.com>
553
554         PR c++/43953
555         * pt.c (most_specialized_class): Pretend we are processing
556         a template decl during the call to coerce_template_parms.
557
558 2010-05-03  Jason Merrill  <jason@redhat.com>
559
560         PR c++/42810
561         PR c++/43680
562         * decl.c (finish_enum): Use the TYPE_MIN_VALUE and TYPE_MAX_VALUE
563         from the selected underlying type unless -fstrict-enums.  Set
564         ENUM_UNDERLYING_TYPE to have the restricted range.
565         * cvt.c (type_promotes_to): Use ENUM_UNDERLYING_TYPE.
566         * class.c (check_bitfield_decl): Likewise.
567
568 2010-05-01  H.J. Lu  <hongjiu.lu@intel.com>
569
570         PR c++/43951
571         * init.c (build_new_1): Revert the accidental checkin in
572         revision 158918.
573
574 2010-04-30  Jason Merrill  <jason@redhat.com>
575
576         PR c++/43868
577         * cxx-pretty-print.c (pp_cxx_decl_specifier_seq): Move pmf handling...
578         (pp_cxx_type_specifier_seq): ...here.
579
580 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
581
582         * optimize.c, parser.c, mangle.c, cp-tree.h: Do not include varray.h.
583         * Make-lang.in: Don't include varray.h dependency in CXX_TREE_H.
584
585 2010-04-30  Shujing Zhao  <pearly.zhao@oracle.com>
586
587         PR c++/43779
588         * typeck.c (warn_args_num): New function.
589         (convert_arguments): Use warn_args_num to print the diagnostic
590         messages. 
591
592 2010-04-29  Fabien Chêne  <fabien.chene@gmail.com>
593
594         PR c++/43890
595         * init.c (diagnose_uninitialized_cst_or_ref_member): check for
596         user-provided constructor while recursing.
597
598 2010-04-28  Manuel López-Ibáñez  <manu@gcc.gnu.org>
599
600         PR c++/9335
601         * error.c (print_instantiation_partial_context_line): Handle
602         recursive instantiation.
603         (print_instantiation_partial_context): Likewise.
604
605 2010-04-27  Jason Merrill  <jason@redhat.com>
606
607         * init.c (perform_member_init): Check CLASS_TYPE_P.
608
609 2010-04-27  Fabien Chêne  <fabien.chene@gmail.com>
610
611         PR c++/29043
612         * init.c (perform_member_init): check for uninitialized const or
613         reference members, including array types.
614
615 2010-04-24  Jason Merrill  <jason@redhat.com>
616
617         * tree.c (get_fns): Split out from get_first_fn.
618         * cp-tree.h: Declare it.
619         * search.c (shared_member_p): Use it.
620         * semantics.c (finish_qualified_id_expr): Simplify.
621         (finish_id_expression): Simplify.
622
623         * semantics.c (finish_non_static_data_member): Call maybe_dummy_object
624         whenever object is NULL_TREE.  Don't do 'this' capture here.
625         (finish_qualified_id_expr): Pass NULL_TREE.
626         (finish_id_expression): Likewise.
627         (lambda_expr_this_capture): Likewise.
628
629         * semantics.c (finish_qualified_id_expr): Use maybe_dummy_object
630         rather than checking current_class_ref directly.
631         (finish_call_expr): Likewise.
632
633         PR c++/43856
634         * name-lookup.c (qualify_lookup): Disqualify lambda op().
635         * class.c (current_nonlambda_class_type): New fn.
636         * semantics.c (nonlambda_method_basetype): New.
637         * cp-tree.h: Declare them.
638         * tree.c (maybe_dummy_object): Handle implicit 'this' capture.
639
640         * semantics.c (baselink_for_fns): Correct BASELINK_BINFO.
641
642         PR c++/43875
643         * semantics.c (lambda_return_type): Complain about
644         braced-init-list.
645
646         PR c++/43790
647         * tree.c (cv_unqualified): Handle error_mark_node.
648
649         PR c++/41468
650         * call.c (convert_like_real) [ck_ambig]: Just return error_mark_node
651         if we don't want errors.
652
653         PR c++/41468
654         * class.c (convert_to_base): Add complain parameter.  Pass
655         ba_quiet to lookup_base if we don't want errors.
656         (build_vfield_ref): Pass complain to convert_to_base.
657         * call.c (convert_like_real): Likewise.
658         (initialize_reference): Likewise.
659         (perform_direct_initialization_if_possible): Pass complain to
660         convert_like_real.
661         * cp-tree.h: Adjust.
662
663 2010-04-27  Fabien Chêne  <fabien.chene@gmail.com>
664             Jason Merrill  <jason@redhat.com>
665
666         PR c++/42844
667         * decl.c (check_for_uninitialized_const_var): Handle classes that need
668         constructing, too.
669         (check_initializer): Call it for classes that need constructing, too.
670         * class.c (in_class_defaulted_default_constructor): New.
671         * cp-tree.h: Declare it.
672
673 2010-04-20  Jason Merrill  <jason@redhat.com>
674
675         PR c++/9335
676         * init.c (constant_value_1): Treat error_mark_node as a constant
677         if DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P is set.
678         * cvt.c (ocp_convert): Handle getting error_mark_node from
679         integral_constant_value.
680         * decl.c (compute_array_index_type): Likewise.
681
682 2010-04-20  Dodji Seketeli  <dodji@redhat.com>
683
684         PR c++/43800
685         PR c++/43704
686         * typeck.c (incompatible_dependent_types_p): If one of the
687         compared types if not a typedef then honour their main variant
688         equivalence.
689
690 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
691
692         * cp-tree.h (TYPE_REF_IS_RVALUE): Remove.
693
694 2010-04-19  Dodji Seketeli  <dodji@redhat.com>
695
696         PR c++/43704
697         * typeck.c (structural_comptypes): Test dependent typedefs
698         incompatibility before testing for their main variant based
699         equivalence.
700
701 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
702
703         * cp-tree.h (SCOPED_ENUM_P, UNSCOPED_ENUM_P, SET_SCOPED_ENUM_P): Use
704         ENUM_IS_SCOPED bit instead of TYPE_LANG_FLAG_5.
705
706 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
707
708         * decl.c (cxx_init_decl_processing): Remove second argument in call to
709         build_common_tree_nodes.
710
711 2010-04-14  Jason Merrill  <jason@redhat.com>
712
713         PR c++/36625
714         * parser.c (cp_parser_parenthesized_expression_list): Change
715         is_attribute_list parm to int to indicate whether or not to
716         handle initial identifier specially.
717         (cp_parser_attribute_list): Use attribute_takes_identifier_p.
718
719 2010-04-13  Jason Merrill  <jason@redhat.com>
720
721         * call.c (type_decays_to): Check MAYBE_CLASS_TYPE_P instead of
722         CLASS_TYPE_P.
723         * parser.c (cp_parser_lambda_expression): Complain about lambda in
724         unevaluated context.
725         * pt.c (iterative_hash_template_arg): Don't crash on lambda.
726
727 2010-04-12  Jason Merrill  <jason@redhat.com>
728
729         PR c++/43641
730         * semantics.c (maybe_add_lambda_conv_op): Use build_call_a and tweak
731         return value directly.
732
733         * call.c (type_decays_to): Call cv_unqualified for non-class type.
734
735 2010-04-12  Fabien Chene  <fabien.chene@gmail.com>
736
737         PR c++/25811
738         * cp-tree.h (diagnose_uninitialized_cst_or_ref_member): Declare.
739         * init.c (build_new_1): Check for uninitialized const members and
740         uninitialized reference members, when using new without
741         new-initializer. Call diagnose_uninitialized_cst_or_ref_member.
742         (diagnose_uninitialized_cst_or_ref_member): Define, call
743         diagnose_uninitialized_cst_or_ref_member_1.
744         (diagnose_uninitialized_cst_or_ref_member_1): New function.
745
746 2010-04-12  Richard Guenther  <rguenther@suse.de>
747
748         PR c++/43611
749         * semantics.c (expand_or_defer_fn_1): Do not keep extern
750         template inline functions.
751
752 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
753
754         PR c++/28584
755         * typeck.c (cp_build_c_cast): Warn for casting integer to larger
756         pointer type.
757
758 2010-04-07  Jason Merrill  <jason@redhat.com>
759
760         PR c++/43016
761         * decl.c (start_preparsed_function): Do defer nested functions.
762
763         PR c++/11094, DR 408
764         * cp-tree.h (VAR_HAD_UNKNOWN_BOUND, SET_VAR_HAD_UNKNOWN_BOUND): New.
765         * decl2.c (finish_static_data_member_decl): Set it.
766         * decl.c (duplicate_decls): Propagate it.
767         * pt.c (tsubst_decl): Don't substitute the domain of an array
768         VAR_DECL if it's set.
769         (regenerate_decl_from_template): Substitute it here.
770         (type_dependent_expression_p): Return true if it's set.
771         * semantics.c (finish_decltype_type): Instantiate such a variable.
772         * typeck.c (cxx_sizeof_expr): Likewise.
773         (strip_array_domain): New.
774
775         PR c++/43145
776         * name-lookup.c (current_decl_namespace): Non-static.
777         (pop_nested_namespace): Sanity check.
778         * cp-tree.h: Declare current_decl_namespace.
779         * decl.c (grokvardecl): Use it instead of current_namespace.
780         (grokfndecl): Likewise.
781
782         PR c++/38392
783         * pt.c (tsubst_friend_function): Instatiate a friend that has already
784         been used.
785
786         * pt.c (print_template_statistics): New.
787         * cp-tree.h: Declare it.
788         * tree.c (cxx_print_statistics): Call it.
789
790         PR c++/41970
791         * decl.c (grokvardecl): Tweak warning message.
792         (grokfndecl): Likewise.
793
794 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
795
796         PR c++/42697
797         *pt.c (tsubst_decl): Get the arguments of a specialization from
798         the specialization template, not from the most general template.
799
800 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
801
802         PR c++/40239
803         * typeck2.c (process_init_constructor_record):
804         value-initialize members that are are not explicitely
805         initialized.
806
807 2010-04-07  Jie Zhang  <jie@codesourcery.com>
808
809         PR c++/42556
810         * typeck2.c (split_nonconstant_init_1): Drop empty CONSTRUCTOR
811         when all of its elements are non-constant and have been split out.
812
813 2010-04-06  Taras Glek  <taras@mozilla.com>
814             Jason Merrill  <jason@redhat.com>
815
816         * parser.c (cp_parser_class_specifier): Set class location to that
817         of IDENTIFIER_NODE instead of '{' when possible.
818         * semantics.c (begin_class_definition): Do not overide locations
819         with less precise ones.
820
821 2010-04-06  Jason Merrill  <jason@redhat.com>
822
823         PR c++/43648
824         * name-lookup.c (constructor_name_p): Allow X::~X even for typedefs.
825
826         PR c++/43621
827         * pt.c (maybe_update_decl_type): Check the return value from
828         push_scope.
829
830 2010-04-01  Jason Merrill  <jason@redhat.com>
831
832         * decl.c (next_initializable_field): No longer static.
833         * cp-tree.h: Declare it.
834         * call.c (build_aggr_conv): Fail if there are more initializers
835         than initializable fields.
836
837         * semantics.c (maybe_add_lambda_conv_op): Use null_pointer_node
838         instead of void_zero_node.
839
840 2010-03-31  Dodji Seketeli  <dodji@redhat.com>
841
842         PR c++/43558
843         * cp-tree.h (TEMPLATE_TYPE_PARM_SIBLING_PARMS): New accessor macro.
844         * pt.c (end_template_parm_list): Store sibling template parms of
845         each TEMPLATE_TYPE_PARMs into its TEMPLATE_TYPE_PARM_SIBLING_PARMS.
846         (push_template_decl_real): Don't store the containing template decl
847         into the DECL_CONTEXT of TEMPLATE_TYPE_PARMs anymore.
848         * typeck.c (get_template_parms_of_dependent_type): Get sibling parms
849         of a TEMPLATE_TYPE_PARM from TEMPLATE_TYPE_PARM_SIBLING_PARMS.
850         Simplify the logic.
851
852 2010-03-30  Jason Merrill  <jason@redhat.com>
853
854         PR c++/43076
855         * pt.c (push_template_decl_real): Deal better with running out of
856         scopes before running out of template parms.
857
858         PR c++/41185
859         PR c++/41786
860         * parser.c (cp_parser_direct_declarator): Don't allow VLAs in
861         function parameter context.  Don't print an error if parsing
862         tentatively.
863
864         PR c++/43559
865         * pt.c (more_specialized_fn): Don't control cv-qualifier check
866         with same_type_p.
867
868 2010-03-26  Jason Merrill  <jason@redhat.com>
869
870         PR c++/43509
871         * parser.c (cp_parser_qualifying_entity): Do accept enum names in
872         c++0x mode, but not other type-names.
873
874 2010-03-26  Dodji Seketeli  <dodji@redhat.com>
875
876         PR c++/43327
877         * pt.c (add_to_template_args): Support NULL ARGS;
878         (most_specialized_class): call coerce_template_parms on
879         template arguments passed to get_class_bindings. Use
880         add_to_template_args.
881         (unify): Handle VAR_DECLs.
882
883 2010-03-26  Dodji Seketeli  <dodji@redhat.com>
884
885         * cp-tree.h (get_template_parms_at_level): Change unsigned parm
886         into int.
887         * pt.c (get_template_parms_at_level): Adjust.
888
889 2010-03-25  Dodji Seketeli  <dodji@redhat.com>
890
891         PR c++/43206
892         * cp-tree.h (get_template_parms_at_level): Declare ...
893         * pt.c (get_template_parms_at_level): ... new function.
894         * typeck.c (get_template_parms_of_dependent_type): If a template
895         type parm's DECL_CONTEXT isn't yet set, get its siblings from
896         current_template_parms. Use get_template_parms_at_level. Remove
897         useless test.
898         (incompatible_dependent_types_p): If we get empty parms from just one
899         of the template type parms we are comparing then the template parms are
900         incompatible.
901
902 2010-03-24  Jason Merrill  <jason@redhat.com>
903
904         PR c++/43502
905         * parser.c (make_declarator): Initialize id_loc.
906         (cp_parser_lambda_declarator_opt): And set it.
907
908 2010-03-23  Jason Merrill  <jason@redhat.com>
909
910         Make lambda conversion op and op() non-static.
911         * semantics.c (maybe_add_lambda_conv_op): Make non-static.
912         Also add the thunk function returned by the conversion op.
913         Mark the conversion deleted if the op() is variadic.
914         * decl2.c (mark_used): Give helpful message about deleted conversion.
915         * parser.c (cp_parser_lambda_declarator_opt): Don't make op() static.
916         * semantics.c (finish_this_expr): Adjust.
917         * mangle.c (write_closure_type_name): Adjust.
918         * decl.c (grok_op_properties): Don't allow it.
919         * call.c (build_user_type_conversion_1): No static conversion ops.
920         (build_op_call): Or op().
921
922         * decl2.c (change_return_type): Fix 'this' quals.
923
924 2010-03-22  Jason Merrill  <jason@redhat.com>
925
926         PR c++/43333
927         * tree.c (pod_type_p): Use old meaning in C++98 mode.
928
929         PR c++/43281
930         * pt.c (contains_auto_r): New fn.
931         (do_auto_deduction): Use it.
932         (tsubst): Don't look at TREE_TYPE of a TEMPLATE_TYPE_PARM.
933
934 2010-03-20  Simon Martin  <simartin@users.sourceforge.net>
935
936         PR c++/43081:
937         * decl2.c (grokfield): Handle invalid initializers for member
938         functions.
939
940 2010-03-20  Dodji Seketeli  <dodji@redhat.com>
941
942         PR c++/43375
943         * method.c (make_alias_for): Avoid crashing when DECL_LANG_SPECIFIC
944         is NULL.
945         * decl2.c (vague_linkage_p): Likewise.
946
947 2010-03-18  Paolo Carlini  <paolo.carlini@oracle.com>
948
949         PR c++/43418
950         * parser.c (cp_parser_for_init_statement): Use NULL_TREE, not
951         false, in the cp_parser_expression_statement call.
952
953 2010-03-05  Jason Merrill  <jason@redhat.com>
954
955         * mangle.c (mangle_decl): Give name collision error even without
956         ASM_OUTPUT_DEF.
957
958 2010-03-04  Marco Poletti  <poletti.marco@gmail.com>
959
960         * pt.c (process_partial_specialization): Use error_n instead of
961         error.
962
963 2010-03-03  Jason Merrill  <jason@redhat.com>
964
965         PR c++/12909
966         * mangle.c (mangle_decl): Handle VAR_DECL, too.
967
968 2010-03-03  Jason Merrill  <jason@redhat.com>
969
970         PR c++/12909
971         * mangle.c: Include cgraph.h.
972         (mangle_decl): If the mangled name will change in a later
973         ABI version, make the later mangled name an alias.
974         * method.c (make_alias_for): Copy DECL_ARGUMENTS.
975         * Make-lang.in (mangle.o): Depend on cgraph.h.
976         * method.c (make_alias_for): Handle VAR_DECL, too.
977         * decl2.c (vague_linkage_p): Rename from vague_linkage_fn_p.
978         * tree.c (no_linkage_check): Adjust.
979         * decl.c (maybe_commonize_var): Adjust.
980         * cp-tree.h: Adjust.
981
982 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
983
984         * pt.c (redeclare_class_template): Use error_n and inform_n.
985
986 2010-02-27  Mark Mitchell  <mark@codesourcery.com>
987
988         PR c++/42748
989         * cp-tree.h (push_tinst_level): Declare.
990         (pop_tinst_level): Likewise.
991         * pt.c (push_tinst_level): Give it external linkage.
992         (pop_tinst_level): Likewise.
993         * mangle.c (mangle_decl_string): Set the source location to that
994         of the decl while mangling.
995
996 2010-02-27  Simon Martin  <simartin@users.sourceforge.net>
997
998         PR c++/42054
999         * pt.c (redeclare_class_template): Return false if there are erroneous
1000         template parameters.
1001
1002 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1003
1004         * pt.c (push_tinst_level): Replace -ftemplate-depth- with 
1005         -ftemplate-depth=.
1006
1007 2010-02-24  Jason Merrill  <jason@redhat.com>
1008
1009         PR c++/12909
1010         * mangle.c (write_type): Give -Wabi warning for old vector mangling.
1011
1012         * class.c (layout_class_type): Don't give -Wabi warning for a bug
1013         in a previous ABI version.
1014
1015 2010-02-23  Jason Merrill  <jason@redhat.com>
1016
1017         PR c++/43143
1018         * typeck2.c (digest_init_r): Accept value init of array.
1019
1020 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1021
1022         PR c++/43126
1023         * typeck.c (convert_arguments): Update error message.
1024
1025 2010-02-22  Mike Stump  <mikestump@comcast.net>
1026
1027         PR c++/43125
1028         * decl.c (duplicate_decls): Merge DECL_PRESERVE_P.
1029
1030 2010-02-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1031
1032         PR c++/23510
1033         * error.c (print_instantiation_partial_context_line): New.
1034         (print_instantiation_partial_context): Print at most 12 contexts,
1035         skip the rest with a message.
1036
1037 2010-02-21  Dodji Seketeli  <dodji@redhat.com>
1038
1039         PR c++/42824
1040         * pt.c (lookup_template_class): Better support of specialization
1041         of member of class template implicit instantiation.
1042
1043 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1044
1045         PR c++/35669
1046         * call.c (conversion_null_warnings): Replace -Wconversion with
1047         -Wconversion-null.
1048         * cvt.c (build_expr_type_conversion): Likewise.
1049
1050 2010-02-18  Jason Merrill  <jason@redhat.com>
1051
1052         PR c++/42837
1053         * class.c (create_vtable_ptr): Set DECL_PACKED if type is packed.
1054
1055         PR c++/43108
1056         * typeck.c (cp_build_binary_op): Adapt mixed complex/non handling from
1057         C build_binary_op.
1058         * cp-tree.h (WANT_VECTOR_OR_COMPLEX): Rename from WANT_VECTOR.
1059         * cvt.c (build_expr_type_conversion): Allow COMPLEX_TYPE.
1060
1061         PR c++/43070
1062         * semantics.c (finish_goto_stmt): Don't call decay_conversion.
1063
1064         PR c++/26261
1065         PR c++/43101
1066         * pt.c (tsubst_qualified_id): Do normal lookup in non-dependent scope.
1067         (maybe_update_decl_type): New fn.
1068         * parser.c (cp_parser_init_declarator): Use it.
1069
1070         PR c++/43109
1071         * semantics.c (begin_class_definition): Don't crash on unnamed ns.
1072
1073 2010-02-17  Jason Merrill  <jason@redhat.com>
1074
1075         PR c++/43075
1076         * call.c (build_over_call): Don't create zero-sized assignments.
1077         * cp-gimplify.c (cp_genericize_r): Don't remove them here.
1078         * cp-objcp-common.c (cp_expr_size): Remove.
1079         * cp-tree.h: Remove prototype.
1080
1081         PR c++/43069
1082         * name-lookup.c (set_decl_namespace): Don't copy DECL_CONTEXT if the
1083         decl we looked up doesn't match.
1084
1085         PR c++/43093
1086         * cp-gimplify.c (cp_gimplify_expr) [INIT_EXPR]: Return if we don't
1087         have an INIT_EXPR anymore.
1088
1089         PR c++/43079
1090         * pt.c (convert_nontype_argument): Change assert to test.
1091
1092 2010-02-16  Jason Merrill  <jason@redhat.com>
1093
1094         * cp-gimplify.c (cp_gimplify_expr): Fix error recovery.
1095
1096         PR c++/43031
1097         * cp-gimplify.c (cp_gimplify_expr) [MODIFY_EXPR]: Use
1098         VIEW_CONVERT_EXPR for conversions between structural equality types
1099         that the back end can't tell are the same.
1100
1101         PR c++/43036
1102         * tree.c (build_cplus_array_type): Set TYPE_MAIN_VARIANT to strip
1103         cv-quals from element here.
1104         (cp_build_qualified_type_real): Not here.  Preserve typedef name.
1105
1106 2010-02-14  Jason Merrill  <jason@redhat.com>
1107
1108         PR c++/41997
1109         * semantics.c (finish_compound_literal): Use
1110         cp_apply_type_quals_to_decl when creating a static variable.
1111
1112 2010-02-12  Jason Merrill  <jason@redhat.com>
1113
1114         PR c++/43024
1115         * name-lookup.h (current_binding_level): Check for null
1116         cp_function_chain.
1117
1118 2010-02-12  Jason Merrill  <jason@redhat.com>
1119
1120         PR c++/43054
1121         * tree.c (cp_tree_equal): Correct CALL_EXPR logic.
1122
1123 2010-02-12  Jakub Jelinek  <jakub@redhat.com>
1124
1125         PR c++/43033
1126         * name-lookup.c (pushdecl_maybe_friend): Check default args of t
1127         instead of x.
1128
1129 2010-02-10  Jason Merrill  <jason@redhat.com>
1130
1131         PR c++/41896
1132         * semantics.c (outer_lambda_capture_p): Revert.
1133         (add_capture): Only finish_member_declaration if
1134         we're in the lambda class.
1135         (register_capture_members): New.
1136         * cp-tree.h: Declare it.
1137         * parser.c (cp_parser_lambda_expression): Call it.
1138
1139 2010-02-10  Jason Merrill  <jason@redhat.com>
1140
1141         PR c++/41896
1142         * semantics.c (outer_lambda_capture_p): Use current_function_decl
1143         instead of current_class_type.
1144
1145 2010-02-10  Jason Merrill  <jason@redhat.com>
1146
1147         PR c++/42983, core issue 906
1148         * method.c (defaultable_fn_check): Check virtualness.
1149
1150 2010-02-10  Jason Merrill  <jason@redhat.com>
1151
1152         PR c++/43016
1153         * semantics.c (maybe_add_lambda_conv_op): Set DECL_INTERFACE_KNOWN.
1154
1155 2010-02-10  Shujing Zhao  <pearly.zhao@oracle.com>
1156
1157         * Make-lang.in (cp/cvt.o, cp/parser.o, cp/search.o): Depend on intl.h.
1158         * cvt.c (warn_ref_binding): Wrap the messages into G_() for easy
1159         translation.
1160         * parser.c (cp_parser_postfix_expression, cp_parser_new_type_id)
1161         (cp_parser_cast_expression, cp_parser_condition, cp_parser_decltype)
1162         (cp_parser_parameter_declaration)
1163         (cp_parser_exception_specification_opt)
1164         (cp_parser_exception_declaration): Likewise.
1165         * pt.c (check_default_tmpl_args): Likewise.
1166         * search.c (lookup_field_r): Likewise.
1167
1168 2010-02-09  Jason Merrill  <jason@redhat.com>
1169
1170         PR c++/42399
1171         * pt.c (tsubst_copy_and_build): Propagate LAMBDA_EXPR_LOCATION.
1172
1173 2010-02-09  Jason Merrill  <jason@redhat.com>
1174
1175         PR c++/42370
1176         * decl2.c (change_return_type): New fn.
1177         * semantics.c (apply_lambda_return_type): Use it.
1178         * cp-tree.h: Declare it.
1179
1180 2010-02-05  Richard Guenther  <rguenther@suse.de>
1181
1182         * Make-lang.in (cp/cp-lang.o): Depend on gt-cp-cp-lang.h.
1183         * cp-lang.c: Include gt-cp-cp-lang.h.
1184         * config-lang.in (gtfiles): Add cp/cp-lang.c.
1185
1186 2010-02-05  Dodji Seketeli  <dodji@redhat.com>
1187
1188         PR c++/42915
1189         * typeck.c (get_template_parms_of_dependent_type): Try getting
1190         the template parameters fromt the type itself first.
1191
1192 2010-02-03  Jason Merrill  <jason@redhat.com>
1193
1194         PR c++/4926
1195         PR c++/38600
1196         * mangle.c (write_unqualified_id): Split out from write_expression.
1197         (write_unqualified_name): Call it.
1198         (write_member_name): Likewise.
1199         (write_expression): Support TEMPLATE_ID_EXPR.
1200         Disambiguate operator names.
1201
1202         PR c++/12909
1203         * mangle.c (write_type) [VECTOR_TYPE]: Change mangling with
1204         -fabi-version=4.
1205
1206 2010-02-02  Jason Merrill  <jason@redhat.com>
1207
1208         PR c++/41090
1209         * decl.c (cp_finish_decl): Add local statics to cfun->local_decls.
1210         * optimize.c (clone_body): Remap their initializers when making base
1211         variants.
1212         (maybe_clone_body): Complain if multiple clones aren't safe.
1213
1214 2010-01-29  Dodji Seketeli  <dodji@redhat.com>
1215
1216         PR c++/42758
1217         PR c++/42634
1218         PR c++/42336
1219         PR c++/42797
1220         PR c++/42880
1221         * cp-tree.h (NON_DEFAULT_TEMPLATE_ARGS_COUNT,
1222         SET_NON_DEFAULT_TEMPLATE_ARGS_COUNT,
1223         GET_NON_DEFAULT_TEMPLATE_ARGS_COUNT): New accessor macros.
1224         * pt.c (coerce_template_parms, type_unification_real,
1225         expand_template_argument_pack, coerce_template_parameter_pack):
1226         Set the non default template args count.
1227         (current_template_args): Always set non defaulted
1228         template args count when compiled with --enable-checking
1229         (tsubst_template_args, type_unification_real): Propagate the non
1230         defaulted template args count.
1231         * error.c (get_non_default_template_args_count): Renamed
1232         count_non_default_template_args into this. Don't calculate the
1233         non default template argument count anymore. Use the new
1234         accessor macros above to get it.
1235         (dump_template_argument_list, dump_type, dump_decl,
1236         dump_template_parms): Adjust.
1237         * parser.c (cp_parser_template_argument_list): Always set defaulted
1238         template args count when compiled with --enable-checking.
1239
1240 2010-01-29  Shujing Zhao  <pearly.zhao@oracle.com>
1241
1242         * decl.c (redeclaration_error_message): Wrap the return messages into
1243         G_() for easy translation.
1244
1245 2010-01-28  Jason Merrill  <jason@redhat.com>
1246
1247         PR c++/42880
1248         * semantics.c (begin_class_definition): Don't use type_as_string.
1249
1250 2010-01-28  Dodji Seketeli  <dodji@redhat.com>
1251
1252         PR c++/42713
1253         PR c++/42820
1254         * typeck.c (get_template_parms_of_dependent_type): Factorized
1255         this out of incompatible_template_type_parms_p
1256         (incompatible_dependent_types_p): Renamed
1257         incompatible_template_type_parms_p into this. Make it detect
1258         two incompatible dependent typedefs too.
1259         (structural_comptypes): Use incompatible_dependent_types_p.
1260         * pt.c (get_template_info):
1261         Handle BOUND_TEMPLATE_TEMPLATE_PARAM.
1262
1263 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
1264             Jason Merrill  <jason@redhat.com>
1265
1266         * mangle.c (write_type): Mangle transparent record as member type.
1267         * semantics.c (begin_class_definition): Recognize decimal classes
1268         and set TYPE_TRANSPARENT_AGGR.
1269
1270 2010-01-20  Jason Merrill  <jason@redhat.com>
1271
1272         PR c++/42338
1273         * mangle.c (write_expression): Handle tree codes that have extra
1274         arguments in the middle-end.
1275
1276 2010-01-20  Paolo Carlini  <paolo.carlini@oracle.com>
1277
1278         PR c++/42038
1279         * except.c (expand_start_catch_block): Deal correctly with
1280         do_begin_catch returning error_mark_node.
1281
1282 2010-01-20  Jason Merrill  <jason@redhat.com>
1283
1284         PR c++/41788
1285         * class.c (layout_class_type): Set packed_maybe_necessary for packed
1286         non-PODs.
1287
1288         PR c++/41920
1289         * semantics.c (build_lambda_object): Call mark_used on captured
1290         variables.
1291
1292         PR c++/40750
1293         * decl.c (grokdeclarator): Clear type_quals for a member function
1294         declared using a typedef.  Don't complain about adding cv-quals
1295         to a function typedef in C++0x mode.
1296
1297 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
1298
1299         * decl.c (create_array_type_for_decl): Remove set but not used
1300         variable error_msg.  Remove break stmts after return stmts.
1301
1302 2010-01-19  Dodji Seketeli  <dodji@redhat.com>
1303
1304         * error.c (dump_template_parms, count_non_default_template_args):
1305         Revert fix of PR c++/42634.
1306
1307 2010-01-18  Dodji Seketeli  <dodji@redhat.com>
1308
1309         PR c++/42634
1310         * error.c (dump_template_parms): Use innermost template
1311         arguments before calling count_non_default_template_args.
1312         (count_non_default_template_args): We are being called with
1313         template innermost arguments now. There is no need to ensure
1314         that again.
1315
1316 2010-01-18  Dodji Seketeli  <dodji@redhat.com>
1317
1318         PR c++/42766
1319         * cvt.c (build_expr_type_conversion): Look through OVERLOAD.
1320
1321 2010-01-17  Dodji Seketeli  <dodji@redhat.com>
1322
1323         PR c++/42697
1324         *pt.c (tsubst_decl):  Revert commit for PR c++/42697.
1325
1326 2010-01-17  Dodji Seketeli  <dodji@redhat.com>
1327
1328         PR c++/42697
1329         *pt.c (tsubst_decl): Get the arguments of a specialization from
1330         the specialization template, not from the most general template.
1331
1332 2010-01-16  Jason Merrill  <jason@redhat.com>
1333
1334         PR c++/42761
1335         * semantics.c (finish_decltype_type): Within a template, treat
1336         unresolved CALL_EXPR as dependent.
1337
1338 2010-01-15  Dodji Seketeli  <dodji@redhat.com>
1339
1340         * error.c (dump_template_parms,count_non_default_template_args):
1341         Revert changes of PR c++/42634.
1342
1343 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
1344
1345         PR middle-end/42674
1346         * decl.c (finish_function): Don't emit -Wreturn-type warnings in
1347         functions with noreturn attribute.
1348
1349 2010-01-14  Jason Merrill  <jason@redhat.com>
1350
1351         PR c++/42701
1352         * call.c (build_new_method_call): Don't free the vec here.
1353
1354         PR c++/42655
1355         * call.c (convert_like_real): Do full decay_conversion for ck_rvalue.
1356
1357 2010-01-13  Dodji Seketeli  <dodji@redhat.com>
1358
1359         PR c++/42634
1360         * error.c (dump_template_parms): Use innermost template
1361         arguments before calling count_non_default_template_args.
1362         (count_non_default_template_args): We are being called with
1363         template innermost arguments now. There is no need to ensure
1364         that again.
1365
1366 2010-01-07  Dodji Seketeli  <dodji@redhat.com>
1367
1368         c++/40155
1369         * pt.c (unify_pack_expansion): In non-deduced contexts, re-use template
1370         arguments that were previously deduced.
1371
1372 2010-01-05  Jason Merrill  <jason@redhat.com>
1373
1374         * pt.c (unify_pack_expansion): Handle deduction from init-list.
1375         * call.c (build_over_call): Don't complain about it.
1376
1377 2010-01-04  Jason Merrill  <jason@redhat.com>
1378
1379         PR c++/42555
1380         * pt.c (tsubst_decl): Don't apply type attributes in place.
1381
1382         PR c++/42567
1383         * semantics.c (describable_type): Remove decltype comment and
1384         semantics.
1385
1386
1387 \f
1388 Copyright (C) 2010 Free Software Foundation, Inc.
1389
1390 Copying and distribution of this file, with or without modification,
1391 are permitted in any medium without royalty provided the copyright
1392 notice and this notice are preserved.