OSDN Git Service

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