OSDN Git Service

* Makefile.in (LIBDEPS): Add libcommon.a.
[pf3gnuchains/gcc-fork.git] / gcc / cp / ChangeLog
1 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
2
3         * Make-lang.in (GXX_OBJS): Remove intl.o and version.o.
4
5 2011-05-19  Jakub Jelinek  <jakub@redhat.com>
6
7         PR c++/49043
8         * decl.c (check_omp_return): Stop searching on sk_function_parms.
9
10         PR c++/48869
11         * method.c (get_dtor, get_copy_ctor): Add COMPLAIN argument,
12         pass it down to locate_fn_flags.
13         * cp-tree.h (get_dtor, get_copy_ctor): Adjust prototypes.
14         * semantics.c (cxx_omp_create_clause_info): Adjust callers.
15         * cp-gimplify.c: Include splay-tree.h.
16         (splay_tree_compare_decl_uid, omp_var_to_track,
17         omp_cxx_notice_variable): New functions.
18         (struct cp_genericize_omp_taskreg): New type.
19         (struct cp_genericize_data): Add omp_ctx field.
20         (cp_genericize_r): Attempt to determine implicitly determined
21         firstprivate class type variables.
22         (cp_genericize): Clear omp_ctx.
23         * Make-lang.in (cp/cp-gimplify.o): Depend on $(SPLAY_TREE_H).
24
25 2011-05-18  Jason Merrill  <jason@redhat.com>
26
27         PR c++/48948
28         PR c++/49015
29         * class.c (finalize_literal_type_property): Do check
30         for constexpr member functions of non-literal class.
31         (finish_struct): Don't call check_deferred_constexpr_decls.
32         * cp-tree.h: Don't declare it.
33         (DECL_DEFERRED_CONSTEXPR_CHECK): Remove.
34         * decl.c (grok_special_member_properties): Don't check it
35         (grokfnedcl): Don't call validate_constexpr_fundecl.
36         (start_preparsed_function): Do call it.
37         * pt.c (tsubst_decl): Don't call it.
38         (instantiate_class_template_1): Don't call
39         check_deferred_constexpr_decls.
40         * semantics.c (literal_type_p): Check for any incompleteness.
41         (ensure_literal_type_for_constexpr_object): Likewise.
42         (is_valid_constexpr_fn): Revert deferral changes.
43         (validate_constexpr_fundecl): Likewise.
44         (register_constexpr_fundef): Likewise.
45         (check_deferred_constexpr_decls): Remove.
46
47 2011-05-16  Jason Merrill  <jason@redhat.com>
48
49         PR c++/48969
50         * pt.c (deduction_tsubst_fntype): Use a VEC initially.
51
52 2011-05-15  Paolo Carlini  <paolo.carlini@oracle.com>
53
54         * cxx-pretty-print.c: Update comment.
55         * semantics.c (trait_expr_value, finish_trait_expr):
56         Reorder the cases.
57         * parser.c (cp_parser_primary_expression): Likewise.
58
59 2011-05-15  Jonathan Wakely  <jwakely.gcc@gmail.com>
60
61         PR c++/48994
62         * parser.c (cp_parser_perform_range_for_lookup): Call complete_type.
63
64 2011-05-13  Ville Voutilainen  <ville.voutilainen@gmail.com>
65
66         Implement final on class.
67         * class.c (check_bases): Diagnose derivation from a final class.
68         * cp-tree.h (lang_type_class): Add is_final and adjust dummy.
69         (CLASSTYPE_FINAL): New.
70         * parser.c (cp_parser_class_head): Parse class-virt-specifier, set
71         CLASSTYPE_FINAL.
72         * pt.c (instantiate_class_template_1): Copy CLASSTYPE_FINAL.
73
74 2011-05-13  Jason Merrill  <jason@redhat.com>
75
76         PR c++/48969
77         * pt.c (deduction_tsubst_fntype): New.
78         (fn_type_unification): Use it.
79         (init_template_processing): Initialize hash table.
80         (print_template_statistics): Print hash table stats.
81
82         * call.c (build_op_call): Use timevar_cond_start/stop.
83         (build_user_type_conversion): Likewise.
84
85 2011-05-12  Jason Merrill  <jason@redhat.com>
86
87         * cp-tree.h (DECL_DEFERRED_CONSTEXPR_CHECK): New.
88         * semantics.c (validate_constexpr_fundecl): Set it.
89         (check_deferred_constexpr_decls): Clear it.
90         (register_constexpr_fundef): Make sure it isn't set.
91         * decl.c (grok_special_member_properties): Check it.
92
93 2011-05-11  Jason Merrill  <jason@redhat.com>
94
95         PR c++/48948
96         * semantics.c (validate_constexpr_fundecl): Defer checking if
97         an argument type is being defined.
98         (is_valid_constexpr_fn): Add defer_ok parm.
99         (cxx_eval_call_expression): Adjust.
100         (check_deferred_constexpr_decls): New.
101         (literal_type_p): Make sure type isn't being defined.
102         (ensure_literal_type_for_constexpr_object): Handle type being defined.
103         * cp-tree.h: Declare check_deferred_constexpr_decls.
104         * decl.c (grokfndecl): Call validate_constexpr_fundecl here.
105         (start_preparsed_function, cp_finish_decl): Not here.
106         * class.c (finalize_literal_type_property): Don't call
107         validate_constexpr_fundecl.
108         (finish_struct): Call check_deferred_constexpr_decls.
109         * pt.c (tsubst_decl): Call validate_constexpr_fundecl.
110         (instantiate_class_template): Call check_deferred_constexpr_decls.
111
112         * semantics.c (validate_constexpr_fundecl): Check DECL_TEMPLATE_INFO
113         rather than DECL_TEMPLATE_INSTANTIATION.
114         (cxx_eval_call_expression): Likewise.
115
116         * semantics.c (register_constexpr_fundef): Add to hash table here.
117         (validate_constexpr_fundecl): Not here.
118
119         * decl.c (grokdeclarator): Only set DECL_DECLARED_CONSTEXPR_P once.
120
121         * pt.c (build_non_dependent_expr): Don't check null_ptr_cst_p,
122         do call maybe_constant_value in C++0x mode.
123         * semantics.c (cxx_eval_constant_expression): Handle TEMPLATE_DECL.
124
125         PR c++/48745
126         * pt.c (value_dependent_expr_p): Handle CONSTRUCTOR.
127
128 2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>
129
130         * cp-tree.h (TYPENAME_TYPE_FULLNAME, TYPEOF_TYPE_EXPR): Use
131         TYPE_VALUES_RAW.
132         (UNDERLYING_TYPE_TYPE, DECLTYPE_TYPE_EXPR): Likewise.
133         (DECLTYPE_TYPE_ID_EXPR_OR_MEMBER_ACCESS_P): Likewise.
134         (TEMPLATE_TYPE_PARM_INDEX): Likewise.
135
136 2011-05-10  Jason Merrill  <jason@redhat.com>
137
138         PR c++/48930
139         * class.c (type_build_ctor_call): New.
140         * cp-tree.h: Declare it.
141         * decl.c (check_initializer): Use it instead of
142         TYPE_NEEDS_CONSTRUCTING.
143         * init.c (build_value_init, build_value_init_noctor): Likewise.
144         (perform_member_init, expand_aggr_init_1, build_new_1): Likewise.
145         (build_vec_init): Likewise.
146         * typeck2.c (process_init_constructor_array): Likewise.
147         (process_init_constructor_record): Likewise.
148
149         PR c++/48736
150         * pt.c (tsubst_copy_and_build): Handle substitution of a pack
151         expansion producing another expansion.
152
153 2011-05-10  Ville Voutilainen  <ville.voutilainen@gmail.com>
154
155         Fixes for override/final.
156         * class.c (check_for_override): Diagnose final on a nonvirtual
157         member function, diagnose override for a virtual with no matching
158         override. Don't fiddle around with DECL_VINDEX.
159
160 2011-05-10  Nathan Froyd  <froydnj@codesourcery.com>
161
162         * cp-tree.def (EXPR_PACK_EXPANSION): Add an operand.
163         * cp-objcp-common.c (cp_common_init_ts): Mark it as TS_TYPED.
164         * cp-tree.h (PACK_EXPANSION_PARAMETER_PACKS): Use the new
165         operand of EXPR_PACK_EXPANSION.
166         (cp_tree_operand_length): Declare.
167         * tree.c (cp_tree_operand_length): Define.
168         (cp_tree_equal): Call it.
169         * pt.c (value_dependent_expr_P): Likewise.
170         * mangle.c (write_expression): Likewise.
171
172 2011-05-09  Paolo Carlini  <paolo.carlini@oracle.com>
173
174         PR c++/48737
175         PR c++/48744
176         * decl.c (reshape_init): Take a complain parameter and do
177         not call error if tf_error is not set.
178         (check_initializer, reshape_init_r, reshape_init_array,
179         reshape_init_array_1, reshape_init_vector, reshape_init_class):
180         Adjust.
181         * typeck2.c (digest_init_r): Take a complain parameter and
182         pass it to convert_for_initialization.
183         (digest_init, digest_init_flags, process_init_constructor_array,
184         process_init_constructor_record, process_init_constructor_union,
185         process_init_constructor, digest_init_r): Adjust.
186         * init.c (expand_default_init, build_new_1): Likewise.
187         * typeck.c (cp_build_modify_expr): Likewise.
188         * decl2.c (grokfield): Likewise.
189         * call.c (convert_like_real, convert_default_arg): Likewise.
190         * semantics.c (finish_compound_literal): Pass complain to
191         reshape_init and digest_init.
192         * cp-tree.h: Adjust declarations.
193
194 2011-05-07  Fabien ChĂȘne  <fabien@gcc.gnu.org>
195
196         PR c++/48859
197         * init.c (diagnose_uninitialized_cst_or_ref_member_1): stop the
198         recursion if there is user defined constructor.
199
200 2011-05-09  Jason Merrill  <jason@redhat.com>
201
202         PR c++/34772
203         * decl.c (initialize_local_var): Use DECL_INITIAL for simple
204         initialization.
205
206 2011-05-08  Ville Voutilainen  <ville.voutilainen@gmail.com>
207
208         Implement final/override for member functions.
209         * class.c (check_for_override): Check for DECL_OVERRIDE_P.
210         * cp-tree.h (DECL_OVERRIDE_P, DECL_FINAL_P): New.
211         (cp_virt_specifiers, enum virt_specifier): New.
212         * decl.c (set_virt_specifiers): New.
213         (grokdeclarator): Use them. Diagnose virt-specifiers on non-fields.
214         * parser.c (make_call_declarator): add virt-specifiers parameter.
215         (cp_parser_lambda_declarator_opt): Adjust.
216         (cp_parser_direct_declarator): Likewise.
217         (cp_parser_virt_specifier_seq_opt): New.
218         * search.c (check_final_overrider): Diagnose attempts to override
219         a final member function.
220
221 2011-05-09  Dodji Seketeli  <dodji@redhat.com>
222
223         PR c++/48574
224         * class.c (fixed_type_or_null): Use type_dependent_p_push to test
225         if the instance has a dependent initializer.
226
227 2011-05-08  Paolo Carlini  <paolo.carlini@oracle.com>
228
229         PR c++/48816
230         * cxx-pretty-print.c (pp_cxx_template_declaration): Remove
231         effectively unused variable.
232
233 2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>
234
235         * name-lookup.h (global_bindings_p): Adjust prototype.
236         * name-lookup.c (global_bindings_p): Return bool.
237
238 2011-05-06  Jason Merrill  <jason@redhat.com>
239
240         * decl.c (stabilize_save_expr_r): Set *walk_subtrees as
241         appropriate.
242
243         PR c++/48909
244         * semantics.c (cxx_eval_conditional_expression): Check
245         integer_zerop instead.
246         (potential_constant_expression_1): Likewise.
247
248         PR c++/48911
249         * semantics.c (cxx_eval_array_reference): Handle implicit
250         initializers.
251
252 2011-05-06  Nathan Froyd  <froydnj@codesourcery.com>
253
254         * cp-tree.h (type_of_this_parm, class_of_this_parm): New functions.
255         * call.c (standard_conversion): Call class_of_this_parm.
256         * cxx-pretty-print.c (pp_cxx_implicit_parameter_type): Likewise.
257         (pp_cxx_direct_abstract_declarator): Likewise.
258         * decl2.c (change_return_type): Likewise.
259         (cp_reconstruct_complex_type): Likewise.
260         * error.c (dump_type_suffix, dump_function_decl): Likewise.
261         * mangle.c (write_function_type): Likewise.
262         * pt.c (unify): Likewise.
263         * typeck.c (merge_types, type_memfn_quals): Likewise.
264         * decl.c (build_this_parm): Call type_of_this_parm.
265
266 2011-05-06  Dodji Seketeli  <dodji@redhat.com>
267
268         PR c++/48838
269         * cp-tree.h (non_static_member_function_p): Declare new function.
270         * tree.c (non_static_member_function_p): Define it.
271         * semantics.c (finish_call_expr): Use it.
272
273 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
274
275         * decl.c (finish_case_label): Omit the loc argument to
276         build_case_label.
277
278 2011-05-05  Jason Merrill  <jason@redhat.com>
279
280         * cp-tree.h (REFERENCE_REF_P): Just check the type.
281         * cvt.c (convert_from_reference): Adjust.
282         * pt.c (build_non_dependent_expr): Adjust.
283         * semantics.c (finish_offsetof): Adjust.
284         * tree.c (lvalue_kind): Use it.
285
286         PR c++/48873
287         * tree.c (stabilize_expr): Don't make gratuitous copies of classes.
288
289 2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>
290
291         * decl.c (start_preparsed_function): Do not set
292         dont_save_pending_sizes_p.
293
294 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
295
296         * parser.c (cp_parser_objc_method_definition_list): Update call to
297         objc_start_method_definition.
298
299 2011-05-04  Jason Merrill  <jason@redhat.com>
300
301         PR c++/48749
302         * class.c (resolves_to_fixed_type_p): Don't look closely
303         in templates.
304
305 2011-05-03  Paolo Carlini  <paolo.carlini@oracle.com>
306
307         PR c++/28501
308         * call.c (add_builtin_candidate): Handle REALPART_EXPR and
309         IMAGPART_EXPR.
310
311 2011-05-02  Lawrence Crowl  <crowl@google.com>
312
313         * decl.c: (push_local_name): Change TV_NAME_LOOKUP to start/stop.
314         (poplevel): Refactor POP_TIMEVAR_AND_RETURN to plain code.
315         Change TV_NAME_LOOKUP to start/stop.
316         (define_label): Refactor timevar calls out to a wrapper function.
317         Change TV_NAME_LOOKUP to start/stop.
318         (xref_tag): Likewise.
319         (lookup_label): Refactor timevar calls out to a wrapper function.
320         Change TV_NAME_LOOKUP to start_cond/stop_cond.
321
322         * pt.c: (instantiate_class_template): Add a wrapper to push/pop new
323         TV_TEMPLATE_INST.
324         (instantiate_template): Add a wrapper to push/pop new TV_TEMPLATE_INST.
325         (lookup_template_class): Refactor timevar calls out to a wrapper
326         function.  Change use of TV_NAME_LOOKUP to TV_TEMPLATE_INST.
327         (instantiate_decl): Change TV_PARSE to TV_TEMPLATE_INST.
328
329         * name-lookup.c: (store_bindings): Change TV_NAME_LOOKUP to start/stop.
330         (poplevel_class): Change TV_NAME_LOOKUP to start_cond/stop_cond.
331         (push_namespace): Likewise.
332         (pop_nested_namespace): Likewise.
333         (pushdecl_namespace_level): Likewise.
334         (store_class_bindings): Likewise.
335         (push_to_top_level): Likewise.
336         (identifier_type_value): Refactor timevar calls out to a wrapper
337         function.  Change TV_NAME_LOOKUP to start/stop.
338         (find_binding): Likewise.
339         (push_using_decl): Likewise.
340         (lookup_arg_dependent): Likewise.
341         (push_using_directive): Likewise.
342         (qualified_lookup_using_namespace): Refactor POP_TIMEVAR_AND_RETURN
343         to plain code.  Change TV_NAME_LOOKUP to start/stop.
344         (lookup_type_current_level): Likewise.  Refactor inner return to
345         break.
346         (pushdecl_class_level): Refactor POP_TIMEVAR_AND_RETURN to plain
347         code.  Change TV_NAME_LOOKUP to start_cond/stop_cond.
348         (pushdecl_top_level_1): Likewise.
349         (lookup_using_namespace): Likewise.
350         (pushdecl_with_scope): Refactor timevar calls out to a wrapper
351         function.  Change TV_NAME_LOOKUP to start_cond/stop_cond.
352         (push_overloaded_decl): Likewise.
353         (push_class_level_binding): Likewise.
354         (namespace_binding): Likewise.
355         (set_namespace_binding): Likewise.
356         (supplement_binding): Likewise.
357         (unqualified_namespace_lookup): Likewise.
358         (lookup_name_real): Likewise.
359         (lookup_type_scope): Likewise.
360         (namespace_ancestor): Likewise.
361         (lookup_name_innermost_nonclass_level): Likewise.
362         (pushtag): Likewise.
363         (pop_from_top_level): Likewise.
364         (pushdecl_maybe_friend): Refactor timevar calls out to a wrapper
365         function.  Change TV_NAME_LOOKUP to start_cond/stop_cond.  Wrap long
366         lines.
367         (add_using_namespace): Refactor timevar calls out to a wrapper
368         function.  Change TV_NAME_LOOKUP to start_cond/stop_cond.  Bypass
369         wrapper on call to self.
370
371         * decl2.c: (cp_write_global_declarations):  Add start/stop of
372         new TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_CHECK_DBGINFO.
373         Remove push/pop calls to TV_VARCONST.
374
375         * parser.c: Add include of "timevar.h".
376         (cp_parser_explicit_instantiation): Add push/pop calls to
377         TV_TEMPLATE_INST.
378         (cp_parser_enum_specifier): Add push/pop calls to new TV_PARSE_ENUM.
379         (cp_parser_class_specifier): Add wrapper to add push/pop calls to
380         TV_PARSE_STRUCT.
381         (cp_parser_function_definition_from_specifiers_and_declarator): Add
382         push/pop calls to new TV_PARSE_FUNC or TV_PARSE_INLINE.
383         (cp_parser_late_parsing_for_member):  Add push/pop calls to
384         new TV_PARSE_INMETH.
385
386         * call.c: Add include of "timevar.h".
387         (convert_class_to_reference): Wrap and add push/pop calls to 
388         TV_OVERLOAD.
389         (build_op_call): Likewise.
390         (build_conditional_expr): Likewise.
391         (build_new_op): Likewise.
392         (build_new_method_call): Likewise.
393         (build_user_type_conversion): Reorganize to single return and add
394         push/pop calls to TV_OVERLOAD.
395         (perform_overload_resolution): Likewise.
396
397         * Make-lang.in: Add dependence of call.o and parser.o on $(TIMEVAR_H).
398
399 2011-05-02  Jason Merrill  <jason@redhat.com>
400
401         * tree.c (build_vec_init_expr): Take complain parm.
402         (build_vec_init_elt): Likewise.  Free arg vector.
403         (diagnose_non_constexpr_vec_init, build_array_copy): Adjust.
404         * cp-tree.h (VEC_INIT_EXPR_SLOT): Use VEC_INIT_EXPR_CHECK.
405         (VEC_INIT_EXPR_INIT): Likewise.
406         Adjust build_vec_init_expr declaration.
407         * init.c (perform_member_init): Adjust.
408
409         Revert:
410         PR c++/40975
411         * cp-tree.def (VEC_INIT_EXPR): Add third operand.
412         * cp-tree.h (VEC_INIT_EXPR_NELTS): New.
413         * cp-gimplify.c (cp_gimplify_expr) [VEC_INIT_EXPR]: Handle it.
414         * tree.c (build_vec_init_expr): Handle getting pointer/nelts.
415         (build_vec_init_elt): Don't expect an array type.
416         (build_array_copy): Adjust.
417         * init.c (perform_member_init): Adjust.
418         (build_new_1): Use build_vec_init_expr.
419
420         PR c++/48834
421         * tree.c (build_vec_init_expr): Set TREE_SIDE_EFFECTS.
422         Protect an explicit target.
423
424         PR c++/48446
425         * decl.c (stabilize_save_expr_r, stabilize_vla_size): New.
426         (compute_array_index_type): Revert earlier 48446 changes.
427         (grokdeclarator): Use stabilize_vla_size.
428
429 2011-05-02  Dmitry Gorbachev  <d.g.gorbachev@gmail.com>
430             Eric Botcazou <ebotcazou@adacore.com>
431
432         * parser.c (cp_parser_init_declarator): Set pushed_scope to NULL_TREE
433         instead of inappropriate zero values.
434
435 2011-05-02  Paolo Carlini  <paolo.carlini@oracle.com>
436
437         PR c++/47969
438         * decl.c (compute_array_index_type): Check build_expr_type_conversion
439         return value for NULL_TREE.
440
441 2011-04-29  Paolo Carlini  <paolo.carlini@oracle.com>
442
443         PR c++/48606
444         * init.c (perform_member_init): Check build_value_init return
445         value for error_mark_node.
446
447 2011-04-29  Diego Novillo  <dnovillo@google.com>
448             Le-Chun Wu  <lcwu@google.com>
449
450         * call.c (conversion_null_warnings): Also handle assignments
451         when warning about NULL conversions.
452
453 2011-04-29  Le-Chun Wu  <lcwu@google.com>
454
455         * cp-tree.h (LOOKUP_EXPLICIT_TMPL_ARGS): Define.
456         * call.c (build_new_function_call): Set it for TEMPLATE_ID_EXPRs.
457         (build_over_call): Use it to determine whether to emit a NULL
458         warning for template function instantiations.
459         (build_new_method_call): Set LOOKUP_EXPLICIT_TMPL_ARGS if
460         EXPLICIT_TARGS is set.
461
462 2011-04-29  Nicola Pero  <nicola.pero@meta-innovation.com>,
463             Mike Stump <mikestump@comcast.net>
464
465         * Make-lang.in ($(srcdir)/cp/cfns.h): Enable the dependency only
466         in maintainer mode.  Use the --output-file option of gperf instead
467         of > to prevent creating an empty cp/cfns.h when gperf is not
468         available.
469
470 2011-04-28  Paolo Carlini  <paolo.carlini@oracle.com>
471
472         PR c++/48798
473         * semantics.c (finish_base_specifier): cv-qualified base class
474         is fine, per DR 484.
475
476 2011-04-28  Dodji Seketeli  <dodji@redhat.com>
477
478         PR c++/48656
479         * semantics.c (finish_call_expr): Don't forget BASELINK nodes when
480         considering call expressions involving a member function.
481
482 2011-04-28  Paolo Carlini  <paolo.carlini@oracle.com>
483
484         PR c++/48530
485         * tree.c (build_cplus_new): Check build_target_expr return
486         value for error_mark_node.
487
488 2011-04-28  Paolo Carlini  <paolo.carlini@oracle.com>
489
490         PR c++/48771
491         * semantics.c (literal_type_p): Reference types are literal types,
492         per the FDIS.
493         (valid_type_in_constexpr_fundecl_p): Remove.
494         (is_valid_constexpr_fn): Adjust.
495
496 2011-04-27  Jason Merrill  <jason@redhat.com>
497
498         PR libstdc++/48760
499         Implement list-initialization of _Complex.
500         * decl.c (reshape_init_r): Allow {real,imag} for _Complex.
501         (check_initializer): Likewise.
502         * call.c (build_complex_conv): New.
503         (implicit_conversion): Call it.
504         (convert_like_real): Handle it.
505         * typeck2.c (check_narrowing): Handle it.
506
507         * init.c (build_vec_delete_1): Look for sfk_deleting_destructor to
508         decide whether to delete.
509         (build_vec_init): Pass sfk_complete_destructor.
510
511         PR c++/40975
512         * cp-tree.def (VEC_INIT_EXPR): Add third operand.
513         * cp-tree.h (VEC_INIT_EXPR_NELTS): New.
514         * cp-gimplify.c (cp_gimplify_expr) [VEC_INIT_EXPR]: Handle it.
515         * tree.c (build_vec_init_expr): Handle getting pointer/nelts.
516         (build_vec_init_elt): Don't expect an array type.
517         (build_array_copy): Adjust.
518         * init.c (perform_member_init): Adjust.
519         (build_new_1): Use build_vec_init_expr.
520
521         * class.c (resolve_address_of_overloaded_function): Don't
522         change OVERLOAD to TREE_LIST.
523         * pt.c (print_candidates_1): Remove nonsensical assert.
524
525         PR c++/48046
526         * parser.c (cp_parser_diagnose_invalid_type_name): Commit
527         to tentative parse sooner.
528
529 2011-04-26  Jason Merrill  <jason@redhat.com>
530
531         PR c++/42687
532         * parser.c (cp_parser_primary_expression): Set *idk to
533         CP_ID_KIND_NONE for a parenthesized identifier.
534
535         * ptree.c (cxx_print_type) [TYPENAME_TYPE]: Dump fullname.
536         (cxx_print_identifier): Correct indentation.
537
538         PR c++/48530
539         * decl.c (cxx_maybe_build_cleanup): Add complain parm.
540         * tree.c (force_target_expr): Add complain parm.
541         (build_target_expr_with_type): Likewise.
542         (get_target_expr_sfinae): Split out.
543         (build_vec_init_expr, bot_manip): Adjust.
544         * init.c (build_vec_delete, build_vec_delete_1): Add complain parm.
545         (build_delete, build_dtor_call): Likewise.
546         (perform_direct_initialization_if_possible): Adjust.
547         (build_vec_init): Handle error return.
548         * cvt.c (force_rvalue): Add complain parm.
549         Call build_special_member_call directly.
550         * decl2.c (delete_sanity): Add complain parm.
551         (build_cleanup): Adjust.
552         * pt.c (tsubst_copy_and_build, tsubst_expr): Adjust.
553         * semantics.c (finish_stmt_expr_expr): Adjust.
554         (finish_compound_literal): Adjust.
555         * parser.c (cp_parser_delete_expression): Adjust.
556         * typeck2.c (build_functional_cast): Adjust.
557         * cp-tree.h: Adjust.
558
559 2011-04-26  Martin Jambor  <mjambor@suse.cz>
560
561         * class.c (cp_fold_obj_type_ref): Remove.
562         * cp-tree.h (cp_fold_obj_type_ref): Remove declaration.
563
564 2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>
565
566         * cp-tree.def: Add a new UNDERLYING_TYPE tree code.
567         * cp-tree.h (enum cp_trait_kind): Add CPTK_UNDERLYING_TYPE, tidy.
568         (UNDERLYING_TYPE_TYPE): Add.
569         * cp-objcp-common.c (cp_common_init_ts): Mark UNDERLYING_TYPE
570         as TS_COMMON.
571         * parser.c (cp_lexer_next_token_is_decl_specifier_keyword,
572         cp_parser_simple_type_specifier): Handle UNDERLYING_TYPE.
573         (cp_parser_trait_expr): Deal with RID_UNDERLYING_TYPE; tidy.
574         * semantics.c (finish_underlying_type): New.
575         * typeck.c (structural_comptypes): Handle UNDERLYING_TYPE.
576         * error.c (dump_type, dump_type_prefix, dump_type_suffix): Likewise.
577         * cxx-pretty-print.c (p_cxx_type_id): Likewise.
578         * tree.c (cp_walk_subtrees): Likewise.
579         * pt.c (for_each_template_parm_r, tsubst, unify,
580         dependent_type_p_r): Likewise.
581         * mangle.c (write_type): Sorry for __underlying_type.
582
583 2011-04-25  Jason Merrill  <jason@redhat.com>
584
585         PR c++/48707
586         * decl.c (type_dependent_init_p): New.
587         (cp_finish_decl): Check it.
588         * pt.c (any_type_dependent_elements_p): New.
589         * cp-tree.h: Declare it.
590
591 2011-04-20  Jason Merrill  <jason@redhat.com>
592
593         * semantics.c (finish_compound_literal): Don't put an array
594         with a dtor in a static variable.
595
596         * call.c (build_over_call): Handle trivial dtor.
597
598         * search.c (lookup_fnfields_slot): Call complete_type.
599
600         PR c++/48594
601         * decl2.c (build_offset_ref_call_from_tree): Move
602         non-dependency of object outside condition.
603
604         PR c++/48657
605         * decl.c (cp_finish_decl): Simplify template handling.
606
607 2011-04-20  Jim Meyering  <meyering@redhat.com>
608
609         * tree.c (cxx_printable_name_internal): Remove useless if-before-free.
610
611 2011-04-19  Jason Merrill  <jason@redhat.com>
612
613         PR c++/46304
614         * typeck.c (cp_build_binary_op): Fold COMPLEX_EXPR.
615
616         PR c++/45267
617         * decl.c (duplicate_decls): Keep always_inline attribute
618         in sync with DECL_DISREGARD_INLINE_LIMITS.
619
620 2011-04-18  Jason Merrill  <jason@redhat.com>
621
622         PR c++/48569
623         * typeck2.c (build_functional_cast): Handle VOID_TYPE.
624
625         PR c++/48537
626         * init.c (build_value_init): Handle UNION_TYPE the same.
627
628 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
629
630         PR c++/48632
631         * parser.c (cp_parser_omp_for_loop): Don't use cp_parser_omp_for_incr
632         for type dependent pointers.
633
634 2011-04-18  Jim Meyering  <meyering@redhat.com>
635
636         * pt.c (type_unification_real): Fix typo in comment: s/in in/in/.
637
638 2011-04-17  Jan Hubicka  <jh@suse.cz>
639
640         * semantics.c (finish_goto_stmt): Do set UNINLINABLE flag on computed
641         gotos.
642
643 2011-04-17  Jason Merrill  <jason@redhat.com>
644
645         PR c++/48531
646         * typeck2.c (build_functional_cast): Disallow array type.
647
648         * tree.c (get_target_expr): Handle VEC_INIT_EXPR.
649
650 2011-04-17  Jan Hubicka  <jh@suse.cz>
651
652         * class.c (cp_fold_obj_type_ref): Drop vtable_method.
653
654 2011-04-15  Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
655
656         Implement N3271
657         * parser.c (cp_convert_range_for): Split into
658         cp_parser_perform_range_for_lookup.
659         (cp_parser_perform_range_for_lookup): New.
660         (cp_parser_range_for_member_function): New.
661         (cp_parser_for_init_statement): Correct error message.
662         * semantics.c (finish_call_expr): Accept COMPONENT_REF.
663
664 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
665
666         * parser.c (cp_parser_objc_protocol_declaration): Updated for
667         change from objc_declare_protocols() to objc_declare_protocol().
668
669 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
670
671         PR objc++/48479
672         * typeck.c (cxx_mark_addressable) [CONST_DECL]: Mark addressable
673         and return immediately.
674
675 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
676
677         * cp-tree.def (SWITCH_STMT): Add an extra operand.
678         * cp-objcp-common.c (cp_common_init_ts): Mark it as TS_TYPED.
679         * cp-tree.h (SWITCH_STMT_SCOPE): Define.
680         * semantics.c (begin_switch__stmt): Pass scope to build_stmt.
681         (finish_switch_stmt): Use SWITCH_STMT_SCOPE instead of TREE_CHAIN.
682
683 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
684
685         * cp-tree.def (IF_STMT): Add an extra operand.
686         * cp-objcp-common.c (cp_common_init_ts): Mark it as TS_TYPED.
687         * cp-tree.h (IF_SCOPE): Define.
688         * semantics.c (begin_if_stmt): Pass scope to build_stmt.
689         (finish_if_stmt): Use IF_SCOPE instead of TREE_CHAIN.
690
691 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
692
693         * cp-tree.def (FOR_STMT, RANGE_FOR_STMT): Add an extra operand.
694         * cp-objcp-common.c (cp_common_init_ts): Mark them as TS_TYPED.
695         * cp-tree.h (FOR_SCOPE, RANGE_FOR_SCOPE): Define.
696         * semantics.c (begin_for_stmt): Pass an extra arg to build_stmt.
697         Use FOR_SCOPE instead of TREE_CHAIN.
698         (begin_range_for_stmt): Likewise, with RANGE_FOR_SCOPE.
699         (finish_for_stmt): Likewise.
700
701 2011-04-14  Jason Merrill  <jason@redhat.com>
702
703         * parser.c (cp_parser_postfix_expression): Fix flags passed to
704         build_new_method_call.
705         * semantics.c (finish_call_expr): Likewise.
706
707         PR c++/48531
708         * init.c (build_value_init_noctor): Check complain consistently.
709
710         PR c++/48557
711         * typeck.c (cp_build_binary_op): Don't decay void operands.
712
713         PR c++/48446
714         * decl.c (compute_array_index_type): Use get_temp_regvar instead
715         of variable_size.
716         * init.c (get_temp_regvar): No longer static.
717         * cp-tree.h: Declare it.
718
719 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
720
721         * parser.c (cp_parser_objc_class_declaration): Updated for change
722         in objc_declare_class().
723
724 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
725
726         * decl.c (poplevel): Use block_chainon.
727
728 2011-04-13  Jason Merrill  <jason@redhat.com>
729
730         PR c++/48594
731         * decl2.c (build_offset_ref_call_from_tree): Fix calling a functor
732         or pointer to (non-member) function.
733
734 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
735
736         PR c++/48570
737         * semantics.c (cxx_eval_array_reference): Handle reading from
738         wchar_t, char16_t and char32_t STRING_CST.
739
740 2011-04-13  Dodji Seketeli  <dodji@redhat.com>
741
742         PR c++/48574
743         * class.c (fixed_type_or_null): We cannot determine the dynamic
744         type of a reference variable if its initializer is dependent.
745
746 2011-04-13  Jason Merrill  <jason@redhat.com>
747
748         PR c++/48581
749         * pt.c (tsubst_copy_and_build) [CALL_EXPR]: Don't complain about
750         unqualified lookup failing if we're still in a template.
751
752 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
753
754         * cp-lang.c (cp_init_ts): Call cp_common_init_ts.  Move
755         tree_contains_struct initialization to...
756         * cp-objcp-common.c (cp_common_init_ts): ...here.  Use MARK_*
757         macros.
758         * cp-objcp-common.h (cp_common_init_ts): Declare.
759         * cp-tree.h (union lang_tree_node): Check for TS_COMMON before
760         calling TREE_CHAIN.
761
762 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
763
764         * parser.c (cp_parser_objc_message_expression): Updated call
765         to objc_build_message_expr.
766
767 2011-04-12  Martin Jambor  <mjambor@suse.cz>
768
769         * class.c (cp_fold_obj_type_ref): Call cgraph_get_node instead of
770         cgraph_get_create_node.
771         * decl2.c (cp_write_global_declarations): Call cgraph_get_node
772         instead of cgraph_get_create_node.
773         * method.c (make_alias_for_thunk): Call cgraph_get_node
774         instead of cgraph_get_create_node, assert it returns non-NULL.
775         (use_thunk): Likewise.
776         * optimize.c (maybe_clone_body): Call cgraph_same_body_alias only
777         when flag_syntax_only is not set.  Call cgraph_get_node instead of
778         cgraph_get_create_node.
779         (maybe_clone_body): Call cgraph_get_node instead of
780         cgraph_get_create_node.
781
782 2011-04-12  Martin Jambor  <mjambor@suse.cz>
783
784         * class.c (cp_fold_obj_type_ref): Call cgraph_get_create_node
785         instead of cgraph_node.
786         * decl2.c (cxx_callgraph_analyze_expr): Likewise.
787         (cp_write_global_declarations): Likewise.
788         * optimize.c (maybe_clone_body): Likewise.
789         * semantics.c (maybe_add_lambda_conv_op): Likewise.
790         * mangle.c (mangle_decl): Likewise.
791         * method.c (make_alias_for_thunk): Likewise.
792         (use_thunk): Likewise.
793
794 2011-04-11  Jason Merrill  <jason@redhat.com>
795
796         PR c++/48535
797         * decl.c (cp_complete_array_type_or_error): New.
798         * semantics.c (finish_compound_literal): Use it.
799         * cp-tree.h: Declare it.
800
801         PR c++/48535
802         * semantics.c (finish_compound_literal): Handle references.
803
804         PR c++/48535
805         * semantics.c (finish_compound_literal): Take complain parm.
806         (build_lambda_object): Adjust.
807         * cp-tree.h: Adjust.
808         * call.c (convert_like_real): Adjust.
809         * decl.c (check_initializer): Adjust.
810         * parser.c (cp_parser_postfix_expression): Adjust.
811         (cp_parser_functional_cast): Adjust.
812         * pt.c (tsubst_copy_and_build): Adjust.
813         * typeck2.c (process_init_constructor_record): Adjust.
814
815         PR c++/48534
816         * cvt.c (ocp_convert): Use build_nop to convert to underlying type
817         of scoped enum.
818
819         PR c++/48523
820         * tree.c (maybe_dummy_object): Use build_x_indirect_ref rather
821         than cp_build_indirect_ref.
822
823         PR c++/48457, Core 1238
824         * call.c (reference_binding): Allow rvalue reference to bind to
825         function lvalue.
826         * tree.c (lvalue_kind): Functions are always lvalues.
827
828 2011-04-07  Jason Merrill  <jason@redhat.com>
829
830         PR c++/48500
831         * semantics.c (potential_constant_expression_1) [CALL_EXPR]: Check
832         arguments even if we don't know the function.
833
834         PR c++/48481
835         * tree.c (build_overload): Allow an unwrapped FUNCTION_DECL
836         at the end of the chain.
837         * pt.c (dependent_template_p): Use OVL_CURRENT/NEXT.
838         (iterative_hash_template_arg): Likewise.
839
840         PR c++/48481
841         * cp-tree.h (OVL_ARG_DEPENDENT): New.
842         * name-lookup.c (add_function): Set it.
843         * semantics.c (finish_call_expr): Free OVERLOADs if it's set.
844
845         PR c++/48481
846         * call.c (build_user_type_conversion_1): Use lookup_fnfields_slot.
847         Release unused vector.
848
849         PR c++/48451
850         * pt.c (fn_type_unification): Don't clear incomplete pack flag.
851         (type_unification_real): Clear it here instead.
852
853         PR c++/48468
854         * except.c (build_noexcept_spec): Propagate error_mark_node.
855         (finish_noexcept_expr): Likewise.
856
857         PR c++/48452
858         * typeck.c (build_x_compound_expr_from_list): Return error_mark_node
859         in SFINAE context.
860
861         PR c++/48450
862         * call.c (resolve_args): Take complain.
863         (build_new_function_call, build_operator_new_call): Pass it.
864         (build_op_call, build_new_op, build_new_method_call): Pass it.
865
866         PR c++/48450
867         * typeck.c (check_for_casting_away_constness): Take complain.
868         (build_static_cast_1, build_reinterpret_cast_1): Pass it.
869         (build_const_cast_1): Pass it.  Take full complain parm.
870         (build_const_cast, cp_build_c_cast): Adjust.
871
872         * tree.c (build_aggr_init_expr): Always return error_mark_node
873         on abstract violation.
874
875         PR c++/48450
876         * tree.c (build_cplus_new, build_aggr_init_expr): Take complain.
877         (bot_manip): Adjust.
878         * cp-tree.h: Adjust.
879         * call.c (convert_like_real, build_cxx_call): Adjust.
880         (perform_direct_initialization_if_possible): Adjust.
881         * cvt.c (ocp_convert): Adjust.
882         * init.c (build_value_init): Adjust.
883         * semantics.c (maybe_add_lambda_conv_op): Adjust.
884         * typeck.c (unary_complex_lvalue, cp_build_modify_expr): Adjust.
885         * typeck2.c (build_functional_cast): Adjust.
886
887         * init.c (build_value_init_noctor): Handle REFERENCE_TYPE at top
888         level.
889         (perform_member_init): Not here.
890         * typeck2.c (build_functional_cast): Limit REFERENCE_TYPE special
891         case to templates.
892         (abstract_virtuals_error_sfinae): Remove RESULT_DECL special case.
893
894         PR c++/48449
895         * typeck2.c (build_functional_cast): Check complain consistently.
896         Use build_value_init and abstract_virtuals_error_sfinae.
897         (abstract_virtuals_error_sfinae): Split out.
898         * cp-tree.h: Declare it.
899         * init.c (build_new_1): Use it.
900         (build_value_init_noctor): Handle FUNCTION_TYPE.
901
902         * semantics.c (finish_decltype_type): Simplify handling of unknown
903         type.
904
905         * semantics.c (finish_decltype_type): Add complain parm.
906         * cp-tree.h: Adjust.
907         * parser.c (cp_parser_decltype): Adjust.
908         * pt.c (tsubst): Adjust.
909
910         PR c++/48450
911         * cvt.c (ocp_convert): Handle converting scoped enum to bool.
912
913 2011-03-31  Jason Merrill  <jason@redhat.com>
914
915         PR c++/48277
916         * semantics.c (finish_call_expr): Remove assert.
917
918         PR c++/48280
919         * method.c (defaultable_fn_check): Templates are not defaultable.
920
921         * parser.c (cp_parser_init_declarator): Avoid redundant
922         cp_finish_decl for member declarations.
923
924 2011-03-30  Jason Merrill  <jason@redhat.com>
925
926         PR c++/48212
927         * semantics.c (non_const_var_error): Just return if DECL_INITIAL
928         is error_mark_node.
929
930 2011-03-30  Jason Merrill  <jason@redhat.com>
931
932         PR c++/48369
933         * semantics.c (potential_constant_expression_1): Handle
934         UNORDERED_EXPR and ORDERED_EXPR.
935
936         PR c++/48281
937         * semantics.c (finish_compound_literal): Do put static/constant
938         arrays in static variables.
939
940         * call.c (convert_like_real) [ck_list]: Build up the
941         initializer_list object directly.
942         * decl.c (build_init_list_var_init): Adjust.
943
944         * call.c (convert_like_real): Correct TREE_CONSTANT on CONSTRUCTOR.
945         * decl.c (reshape_init_array_1): Likewise.
946
947 2011-03-29  Jason Merrill  <jason@redhat.com>
948
949         PR c++/48265
950         * pt.c (value_dependent_expression_p) [VAR_DECL]: Make sure
951         the variable is constant before looking at its initializer.
952
953         PR c++/48319
954         * pt.c (value_dependent_expression_p): Handle TEMPLATE_ID_EXPR.
955
956         PR c++/48089
957         * semantics.c (potential_constant_expression_1): Change error about
958         use of *this in constructor into sorry.
959
960         PR c++/48296
961         * decl.c (cp_finish_decl): Defer validation of constexpr member
962         functions.
963         * class.c (finalize_literal_type_property): Validate them here.
964         * semantics.c (is_valid_constexpr_fn): Don't check completeness.
965
966         * semantics.c (is_valid_constexpr_fn): Specify input location.
967
968 2011-03-28  Jason Merrill  <jason@redhat.com>
969
970         PR c++/48313
971         * pt.c (maybe_adjust_types_for_deduction): Handle T&& deduction
972         from overloaded function.
973
974         Core 1232
975         * call.c (build_array_conv): New.
976         (implicit_conversion): Use it.
977
978         * call.c (reference_binding): Allow direct binding to an array
979         rvalue.
980
981         Core 898
982         * parser.c (cp_parser_compound_statement): Add function_body parm.
983         Complain about non-body compound-stmt in constexpr fn.
984         (cp_parser_primary_expression, cp_parser_statement): Adjust.
985         (cp_parser_implicitly_scoped_statement): Adjust.
986         (cp_parser_function_body, cp_parser_try_block): Adjust.
987         (cp_parser_handler, cp_parser_objc_synchronized_statement): Adjust.
988         (cp_parser_objc_try_catch_finally_statement): Adjust.
989
990         Core 898
991         * semantics.c (constexpr_fn_retval): New.  Allow using-declaration
992         and using-definition.
993         (register_constexpr_fundef): Call it.
994
995         * except.c (build_noexcept_spec): Call cxx_constant_value after
996         converting to bool.
997
998 2011-03-25  Kai Tietz  <ktietz@redhat.com>
999
1000         * lex.c (interface_strcmp): Handle dos-paths.
1001         (handle_pragma_implementation): Use filename_cmp instead of
1002         strcmp.
1003         (in_main_input_context): Likewise.
1004
1005 2011-03-25  Jason Merrill  <jason@redhat.com>
1006
1007         Core 1135
1008         * method.c (defaulted_late_check): Check for exception spec mismatch.
1009         (defaultable_fn_check): Allow exception spec and virtual.
1010         * class.c (check_for_override): A virtual dtor is non-trivial.
1011
1012         PR c++/48289
1013         * pt.c (build_non_dependent_expr): Keep dereferences outside the
1014         NON_DEPENDENT_EXPR.
1015
1016 2011-03-25  Kai Tietz  <ktietz@redhat.com>
1017
1018         * decl.c (decls_match): Replace target hook
1019         call of comp_type_attributes by version in tree.c file.
1020         * search.c (check_final_overrider): Likewise.
1021         * typeck.c (structural_comptypes): Likewise.
1022
1023 2011-03-21  Kai Tietz  <ktietz@redhat.com>
1024
1025         PR target/12171
1026         * cxx-pretty-print.c (pp_cxx_ptr_operator):
1027         Display allowed attributes for function pointer types.
1028         * error.c (dump_type_prefix): Likewise.
1029
1030         * tree.c (cxx_attribute_table): Adjust table.
1031
1032 2011-03-18  Jason Merrill  <jason@redhat.com>
1033
1034         PR c++/48162
1035         * semantics.c (finish_call_expr): Allow TARGET_EXPR for now.
1036
1037         PR c++/48118
1038         * call.c (build_over_call): Don't skip ck_rvalue.
1039
1040 2011-03-17  Jason Merrill  <jason@redhat.com>
1041
1042         PR c++/47504
1043         * semantics.c (cxx_eval_constant_expression) [NOP_EXPR]: Don't let
1044         the conversion set TREE_OVERFLOW.
1045
1046         Core 1212
1047         * semantics.c (finish_decltype_type): Return T&& for xvalue.
1048         * typeck.c (unlowered_expr_type): Preserve cv-quals.
1049
1050         PR c++/48166
1051         * decl.c (revert_static_member_fn): Strip function-cv-quals.
1052
1053 2011-03-16  Jason Merrill  <jason@redhat.com>
1054
1055         PR c++/48089
1056         * semantics.c (potential_constant_expression_1): Don't allow *this
1057         in a constructor.
1058         (register_constexpr_fundef): Use potential_rvalue_constant_expression.
1059
1060         PR c++/47301
1061         * decl.c (compute_array_index_type): Don't bother trying to deal
1062         with literal classes in ABI v1.
1063
1064         PR c++/46336
1065         * decl.c (duplicate_decls): Return NULL_TREE for clashing
1066         C functions.
1067
1068         PR c++/47570
1069         * semantics.c (cxx_eval_constant_expression) [COMPOUND_EXPR]: Don't
1070         use the generic binary expression handling.
1071
1072 2011-03-16  Diego Novillo  <dnovillo@google.com>
1073
1074         * Make-lang.in (CXX_PARSER_H): New.
1075         (cp/parser.o): Add dependency on CXX_PARSER_H.
1076         Add dependency on tree-pretty-print.h
1077         (cp/cp-lang.o): Add dependency on CXX_PARSER_H.
1078         * cp-lang.c: Include parser.h.
1079         * parser.c: Include parser.h.
1080         (struct cp_token): Add bitfield purged_p.
1081         Update all users.
1082         Move to parser.h.
1083         (CPP_PURGED): Remove.  Update all users.
1084         (struct cp_lexer): Change field buffer to be a VEC of cp_token.
1085         Remove field buffer_length.
1086         Update all users.
1087         Move to parser.h.
1088         (struct tree_check): Move to parser.h.
1089         (cp_token_position): Likewise.
1090         (struct cp_token_cache): Likewise.
1091         (CPP_KEYWORD): Likewise.
1092         (CPP_TEMPLATE_ID): Likewise.
1093         (CPP_NESTED_NAME_SPECIFIER): Likewise.
1094         (N_CP_TTYPES): Likewise.
1095         (enum cp_parser_status_kind): Likewise.
1096         (struct cp_parser_context): Likewise.
1097         (struct cp_default_arg_entry_d): Likewise.
1098         (struct cp_unparsed_functions_entry_d): Likewise.
1099         (struct cp_parser): Likewise.
1100         (cp_lexer_dump_tokens): New.
1101         (cp_lexer_debug_tokens): New.
1102         (cp_lexer_finished_p): New.
1103         (cp_lexer_alloc): Factor out of cp_lexer_new_main.
1104         (cp_lexer_new_main): Re-write main lexing loop to push
1105         tokens into the new VEC buffer.
1106         (cp_lexer_print_token): Improve printing of CPP_NUMBER tokens.
1107         Do not abort if the token type is not recognized, just print
1108         its code.
1109         * parser.h: New file.
1110         * config-lang.in (gtfiles): Add cp/parser.h.
1111
1112 2011-03-16  Jason Merrill  <jason@redhat.com>
1113
1114         Core 1148
1115         * typeck.c (check_return_expr): Fix conditions for setting
1116         LOOKUP_PREFER_RVALUE.
1117
1118         * call.c (build_over_call): Remove require_complete_type_sfinae call.
1119
1120         PR c++/48132
1121         * decl.c (check_array_designated_initializer): Allow integer index.
1122         (reshape_init_array_1): Set index on the elements.
1123
1124 2011-03-16  Jason Merrill  <jason@redhat.com>
1125
1126         PR c++/48113
1127         * typeck.c (convert_for_initialization): Use
1128         perform_implicit_conversion_flags.
1129         * call.c (standard_conversion): If LOOKUP_PREFER_RVALUE, set
1130         rvaluedness_matches_p on ck_rvalue.
1131         (convert_like_real) [ck_rvalue]: And restore it here.
1132
1133         PR c++/48115
1134         * call.c (convert_arg_to_ellipsis): Handle incomplete type.
1135
1136 2011-03-16  Jason Merrill  <jason@redhat.com>
1137
1138         * parser.c (cp_parser_abort_tentative_parse): Make sure we haven't
1139         committed to this tentative parse.
1140
1141         PR c++/47999
1142         * semantics.c (finish_call_expr): Preserve reference semantics
1143         in templates.
1144
1145         * call.c (convert_default_arg): Use LOOKUP_IMPLICIT.
1146
1147 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
1148
1149         * cp-objcp-common.c (cp_function_decl_explicit_p): Don't crash if
1150         DECL_LANG_SPECIFIC is NULL.
1151
1152 2011-03-15  Jason Merrill  <jason@redhat.com>
1153
1154         Core 1074
1155         * pt.c (value_dependent_expression_p) [NOEXCEPT_EXPR]: Don't
1156         check value_dependent_expression_p on the operand.
1157
1158         * semantics.c (push_cx_call_context): Return bool.
1159         (cxx_eval_call_expression): Handle excess depth.
1160
1161         Core 1191
1162         * method.c (synthesized_method_walk): Cleanups don't affect the
1163         triviality of a constructor, but do affect deletion and exception
1164         specification.
1165
1166 2011-03-15  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
1167
1168         * decl2.c (cp_check_const_attributes): New.
1169         (cplus_decl_attributes): Call cp_check_const_attributes.
1170
1171 2011-03-15  Jason Merrill  <jason@redhat.com>
1172
1173         PR c++/34758
1174         * call.c (convert_default_arg): Use DECL_ORIGIN of fn.  Check for
1175         recursion first.
1176         (push_defarg_context, pop_defarg_context): New.
1177         * parser.c (cp_parser_late_parsing_default_args): Use them.
1178         * cp-tree.h: Declare them.
1179
1180 2011-03-11  Dodji Seketeli  <dodji@redhat.com>
1181
1182         * call.c (add_builtin_candidate)<case INDIRECT_REF>: The type of
1183         the argument of the indirection operator should not be dependent.
1184         Fix the comment.
1185
1186 2011-03-11  Jason Merrill  <jason@redhat.com>
1187
1188         PR c++/47125
1189         * pt.c (tsubst) [TYPENAME_TYPE]: Only give errors if tf_error.
1190
1191         PR c++/47144
1192         * parser.c (cp_parser_template_type_arg): Set
1193         type_definition_forbidden_message.
1194
1195         PR c++/47808
1196         * decl.c (compute_array_index_type): Discard folding
1197         if it didn't produce a constant.
1198
1199 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
1200
1201         PR c++/48035
1202         * init.c (build_zero_init_1): Extracted from build_zero_init.
1203         Add FIELD_SIZE argument, if non-NULL and field bit_position
1204         as not smaller than that, don't add that field's initializer.
1205         Pass DECL_SIZE as last argument to build_zero_init_1
1206         for DECL_FIELD_IS_BASE fields.
1207         (build_zero_init): Use build_zero_init_1.
1208
1209 2011-03-10  Jason Merrill  <jason@redhat.com>
1210
1211         PR c++/48029
1212         * pt.c (iterative_hash_template_arg): Remove special case for
1213         ARRAY_TYPE.
1214
1215         PR c++/47198
1216         * parser.c (cp_parser_single_declaration): Just return if
1217         cp_parser_parse_and_diagnose_invalid_type_name complained.
1218
1219 2011-03-09  Jason Merrill  <jason@redhat.com>
1220
1221         PR c++/44629
1222         * pt.c (unify): An unresolved overload is a nondeduced context.
1223
1224 2011-03-09  Martin Jambor  <mjambor@suse.cz>
1225
1226         PR tree-optimization/47714
1227         * method.c (use_thunk): Clear addressable flag of thunk arguments.
1228
1229 2011-03-08  Dodji Seketeli  <dodji@redhat.com>
1230
1231         PR c++/47705
1232         * pt.c (convert_nontype_argument): Only call decay_conversion on
1233         arrays.
1234
1235 2011-03-08  Jason Merrill  <jason@redhat.com>
1236
1237         PR c++/47488
1238         * mangle.c (write_template_arg_literal) [STRING_CST]: Sorry.
1239
1240         PR c++/47705
1241         * pt.c (convert_nontype_argument): Don't crash on non-pointer
1242         argument to pointer parameter.
1243
1244         PR c++/45651
1245         * pt.c (instantiate_decl): Don't clear DECL_INTERFACE_KNOWN on
1246         !TREE_PUBLIC decls.
1247
1248 2011-03-08  Dodji Seketeli  <dodji@redhat.com>
1249
1250         PR c++/47957
1251         * name-lookup.c (binding_to_template_parms_of_scope_p): Only
1252         consider scopes of primary template definitions.  Adjust comments.
1253
1254 2011-03-07  Jason Merrill  <jason@redhat.com>
1255
1256         PR c++/48003
1257         * pt.c (convert_nontype_argument): Fix -fpermissive allowing
1258         integer overflow.
1259         * semantics.c (potential_constant_expression_1): Check TREE_OVERFLOW.
1260
1261         PR c++/48015
1262         * init.c (constant_value_1): Always require init to be TREE_CONSTANT.
1263
1264         PR c++/48008
1265         * mangle.c (write_type): Strip cv-quals from FUNCTION_TYPE here.
1266         (write_CV_qualifiers_for_type): Not here.
1267
1268 2011-03-06  Joseph Myers  <joseph@codesourcery.com>
1269
1270         * lang-specs.h: Match -save-temps* instead of -save-temps.
1271
1272 2011-03-05  Jason Merrill  <jason@redhat.com>
1273
1274         * mangle.c (write_expression): Change ABI v6 to v5.
1275         (write_type): Likewise.
1276
1277 2011-03-04  Jan Hubicka  <jh@suse.cz>
1278
1279         PR lto/47497
1280         * optimize.c (maybe_clone_body): Update call of cgraph_same_body_alias
1281         and cgraph_add_thunk.
1282         * method.c (make_alias_for_thunk, use_thunk): Likewise.
1283         * mangle.c (mangle_decl): Likewise.
1284
1285 2011-03-04  Jason Merrill  <jason@redhat.com>
1286
1287         PR c++/47971
1288         * pt.c (tsubst_copy_and_build) [PSEUDO_DTOR_EXPR]: Use tsubst for type.
1289         (tsubst_copy) [default]: Just return t if !ENABLE_CHECKING.
1290
1291         PR c++/46220
1292         * search.c (check_final_overrider): Allow pointer to same incomplete
1293         class type with different cv-quals.
1294
1295 2011-03-03  Paolo Carlini  <paolo.carlini@oracle.com>
1296
1297         PR c++/47974
1298         * pt.c (tsubst_template_args): Check argument t for error_mark_node.
1299
1300 2011-03-03  Jason Merrill  <jason@redhat.com>
1301
1302         PR c++/47950
1303         * pt.c (tsubst_copy_and_build) [TARGET_EXPR]: Retain TREE_CONSTANT.
1304
1305 2011-03-02  Jason Merrill  <jason@redhat.com>
1306
1307         PR c++/47950
1308         * parser.c (cp_parser_condition): Don't fold_non_dependent_expr here.
1309
1310         PR c++/47774
1311         * tree.c (build_vec_init_elt): Split out from...
1312         (build_vec_init_expr): ...here.
1313         (diagnose_non_constexpr_vec_init): New fn.
1314         * semantics.c (potential_constant_expression_1): Use it.
1315         * cp-tree.h: Declare it.
1316
1317 2011-03-01  Jason Merrill  <jason@redhat.com>
1318
1319         PR c++/46159
1320         * parser.c (cp_parser_primary_expression): Don't warn about a
1321         failed tentative parse.
1322
1323         PR c++/47200
1324         * semantics.c (cxx_bind_parameters_in_call): Don't call
1325         adjust_temp_type on non-constant args.
1326
1327         PR c++/47851
1328         * call.c (standard_conversion): Provide requested cv-quals on
1329         class rvalue conversion.
1330
1331         PR c++/46282
1332         * decl2.c (grokbitfield): Handle type-dependent width.
1333
1334 2011-02-28  Jason Merrill  <jason@redhat.com>
1335
1336         PR c++/47873
1337         * class.c (update_vtable_entry_for_fn): Check BINFO_LOST_PRIMARY_P
1338         after checking for a non-thunk.
1339
1340 2011-02-26  Jason Merrill  <jason@redhat.com>
1341
1342         PR c++/47904
1343         * tree.c (cp_tree_equal): Compare DECL_PARM_LEVEL.
1344         * pt.c (iterative_hash_template_arg): And hash it.
1345
1346         PR c++/47897
1347         * semantics.c (non_const_var_error): Split out from...
1348         (cxx_eval_constant_expression): ...here.
1349         (potential_constant_expression_1) [VAR_DECL]: Use it.
1350         Allow dependent variables.
1351
1352 2011-02-24  Jason Merrill  <jason@redhat.com>
1353
1354         * parser.c (cp_parser_constant_expression): Set
1355         non_integral_constant_expression correctly for C++0x too.
1356         (cp_parser_static_assert): Allow non-constant expression.
1357         (cp_parser_direct_declarator): Expect non_constant_p to be set
1358         properly for C++0x.
1359         * pt.c (value_dependent_expression_p): Handle TYPEID_EXPR.
1360         * semantics.c (maybe_constant_value): Check type_unknown_p too.
1361         (potential_rvalue_constant_expression): New.
1362         (require_potential_rvalue_constant_expression): New.
1363
1364 2011-02-23  Jason Merrill  <jason@redhat.com>
1365
1366         * cp-tree.h (DECL_PARM_LEVEL): New.
1367         (struct lang_decl_parm): Add level field.
1368         * name-lookup.c (function_parm_depth): New fn.
1369         * name-lookup.h: Declare it.
1370         * parser.c (cp_parser_parameter_declaration_list): Use it.
1371         * mangle.c (struct globals): Add parm_depth field.
1372         (write_bare_function_type): Adjust it.
1373         (write_expression): Include the level delta in PARM_DECL mangling
1374         for abi >= 6.
1375
1376         * semantics.c (finish_decltype_type): Remove shortcut for decltype
1377         of id-expression.
1378         * mangle.c (write_type) [DECLTYPE_TYPE]: Strip it here for abi < 6.
1379
1380 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
1381
1382         PR c++/46868
1383         * parser.c (cp_parser_class_specifier): Require a closing brace
1384         to attempt error recovery.
1385
1386 2011-02-23  Jakub Jelinek  <jakub@redhat.com>
1387
1388         PR c++/47833
1389         * pt.c (struct pending_template): Add chain_next GTY option.
1390         * decl.c (struct named_label_use_entry): Likewise.
1391
1392 2011-02-22  Paolo Carlini  <paolo.carlini@oracle.com>
1393
1394         PR c++/47242
1395         * semantics.c (build_lambda_object): Bail out if a field is
1396         error_mark_node.
1397
1398 2011-02-22  Dodji Seketeli  <dodji@redhat.com>
1399
1400         PR c++/47666
1401         * class.c (dfs_declare_virt_assop_and_dtor)
1402         (declare_virt_assop_and_dtor): New static functions.
1403         (add_implicitly_declared_members): Use
1404         declare_virt_assop_and_dtor.
1405
1406 2011-02-21  Jason Merrill  <jason@redhat.com>
1407
1408         PR c++/47207
1409         * decl2.c (decl_constant_var_p): A constexpr var needs an
1410         initializer to be constant.
1411         * semantics.c (cxx_eval_constant_expression): Complain about
1412         constexpr var used in its own initializer.
1413         * call.c (set_up_extended_ref_temp): Set
1414         DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P too.
1415
1416 2011-02-20  Jason Merrill  <jason@redhat.com>
1417
1418         PR c++/47199
1419         * semantics.c (cxx_eval_call_expression): Call
1420         cxx_eval_constant_expression in trivial shortcut.
1421
1422         PR c++/46831
1423         * call.c (convert_class_to_reference): Don't try to set up a
1424         second conv sequence for non-viable candidates.
1425
1426         PR c++/47703
1427         * error.c (location_of): Handle non-tagged types.
1428
1429         PR c++/46472
1430         * method.c (process_subob_fn): Instantiate constexpr templates.
1431         * optimize.c (maybe_clone_body): Propagate DECL_DECLARED_CONSTEXPR_P.
1432
1433 2011-02-20  Dodji Seketeli  <dodji@redhat.com>
1434
1435         PR c++/46394
1436         * pt.c (tsubst_pack_expansion): do not use
1437         cp_tree_equal/same_type_p to detect an expansion of a parameter
1438         pack.
1439
1440 2011-02-19  Jason Merrill  <jason@redhat.com>
1441
1442         PR c++/47503
1443         * semantics.c (cxx_eval_call_expression): Shortcut trivial copy.
1444
1445 2011-02-18  Paolo Carlini  <paolo.carlini@oracle.com>
1446
1447         PR c++/47795
1448         * semantics.c (finish_non_static_data_member): Early return if
1449         object is error_mark_node.
1450
1451 2011-02-18  Dodji Seketeli  <dodji@redhat.com>
1452
1453         PR c++/47208
1454         * pt.c (do_auto_deduction): Do not mention error_mark_node in
1455         diagnostics.
1456         * semantics.c (finish_id_expression): Do not pass erroneous decl
1457         to decl_constant_var_p.
1458
1459 2011-02-17  Jakub Jelinek  <jakub@redhat.com>
1460
1461         PR c++/47783
1462         * cvt.c (convert_from_reference): Call mark_exp_read.
1463
1464 2011-02-11  Dodji Seketeli  <dodji@redhat.com>
1465
1466         PR c++/47172
1467         * pt.c (finish_call_expr): Consider a call expression that has a
1468         dependent "this" pointer as being dependent.  Add comments.
1469         (dependent_type_p, type_dependent_expression_p): Update comments.
1470
1471 2011-02-16  Dodji Seketeli  <dodji@redhat.com>
1472
1473         PR c++/47326
1474         * pt.c (tsubst_copy)<case SIZEOF_EXPR>: Ensure that even pack
1475         expansion arguments are not evaluated.
1476
1477 2011-02-16  Jakub Jelinek  <jakub@redhat.com>
1478
1479         PR c++/47704
1480         * cp-tree.h (ENUM_FIXED_UNDERLYING_TYPE_P): Use TYPE_LANG_FLAG_5
1481         instead of TYPE_LANG_FLAG_3.
1482         * pt.c (lookup_template_class): Copy over
1483         ENUM_FIXED_UNDERLYING_TYPE_P.
1484
1485 2011-02-15  Jason Merrill  <jason@redhat.com>
1486
1487         PR c++/46807
1488         * method.c (synthesized_method_walk): Always exit early for
1489         trivial fn in C++98 mode.
1490
1491 2011-02-14  Jason Merrill  <jason@redhat.com>
1492
1493         PR c++/47482
1494         * parser.c (cp_parser_enumerator_definition): Call
1495         fold_non_dependent_expr.
1496
1497 2011-02-09  Jason Merrill  <jason@redhat.com>
1498
1499         * decl.c (cp_make_fname_decl): Set DECL_THIS_STATIC at toplevel.
1500         * semantics.c (finish_fname): Only return the name if we're in
1501         a function.
1502
1503         * decl.c (build_enumerator): Don't perform integral promotions on
1504         non-integral constants.
1505
1506         * cvt.c (convert_to_void): Handle null op1.
1507
1508         * class.c (type_has_constexpr_default_constructor): Make sure the
1509         caller stripped an enclosing array.
1510         * init.c (perform_member_init): Strip arrays before calling it.
1511
1512         PR c++/47511
1513         * semantics.c (potential_constant_expression_1): Handle TEMPLATE_DECL.
1514
1515 2011-02-03  Dodji Seketeli  <dodji@redhat.com>
1516
1517         PR c++/47398
1518         * tree.c (cp_tree_equal)<TEMPLATE_PARM_INDEX>: Take the number of
1519         template parameters in account.
1520
1521 2011-02-03  Nathan Froyd  <froydnj@codesourcery.com>
1522
1523         PR c++/46890
1524         * parser.c (cp_parser_class_specifier): Fix setting of
1525         want_semicolon.
1526
1527 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
1528
1529         PR c++/47416
1530         * semantics.c (build_data_member_initialization): Handle
1531         STATEMENT_LIST always instead of just for CLEANUP_BODY.
1532
1533 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1534
1535         * g++spec.c (lang_specific_driver) [HAVE_LD_STATIC_DYNAMIC] Use
1536         LD_STATIC_OPTION, LD_DYNAMIC_OPTION.
1537
1538 2011-01-29  Dodji Seketeli  <dodji@redhat.com>
1539
1540         PR c++/47311
1541         * cp-tree.h (fixup_template_parms): Declare.
1542         * pt.c (end_template_parm_list): Do not fixup template parms here.
1543         (fixup_template_parms): Remove static. Fix typo in the
1544         comments. Remove useless code statement.
1545         (fixup_template_parm): For a template template parameter, fixup
1546         its attributes before fixing up its type.
1547         * parser.c
1548         (cp_parser_template_declaration_after_export): After parsing
1549         template parameters fixup their types.
1550
1551 2011-01-26  Jakub Jelinek  <jakub@redhat.com>
1552
1553         PR c++/47476
1554         * semantics.c (potential_constant_expression_1): Handle
1555         TRUTH_XOR_EXPR.
1556
1557 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
1558
1559         PR c++/43601
1560         * semantics.c (expand_or_defer_fn_1): Handle it.
1561         * decl2.c (decl_needed_p): Likewise.
1562
1563 2011-01-21  Jason Merrill  <jason@redhat.com>
1564
1565         PR c++/47041
1566         * semantics.c (build_constexpr_constructor_member_initializers):
1567         Handle trivial copy.
1568
1569 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
1570
1571         PR c++/47388
1572         * semantics.c (begin_for_stmt): If -fno-for-scope, don't
1573         assume init must be NULL if scope is NULL.
1574         (begin_range_for_stmt): Likewise.
1575
1576 2011-01-21  Jason Merrill  <jason@redhat.com>
1577
1578         PR c++/46552
1579         * semantics.c (cxx_eval_constant_expression): Handle OFFSET_REF.
1580
1581         PR c++/46977
1582         * semantics.c (potential_constant_expression_1): Split out from
1583         potential_constant_expression.  Add want_rval parm.  Handle
1584         template expression forms.  Don't enforce restriction on address
1585         of automatic variable here.  Add a couple of diagnostics that
1586         had been missing.
1587         (require_potential_constant_expression): New entry point.
1588         (build_data_member_initialization, register_constexpr_fundef): Adjust.
1589         (maybe_constant_value): Check potential_constant_expression.
1590         * pt.c (fold_non_dependent_expr_sfinae): Likewise.
1591         * tree.c (build_vec_init_expr): Adjust.
1592
1593 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
1594
1595         PR c++/47303
1596         * decl2.c (finish_anon_union): Only call mangle_decl if TREE_STATIC
1597         or DECL_EXTERNAL.
1598
1599 2011-01-17  Jason Merrill  <jason@redhat.com>
1600
1601         PR c++/47067
1602         * semantics.c (base_field_constructor_elt): New fn.
1603         (cxx_eval_bare_aggregate): Use it.
1604         (build_data_member_initialization): Leave COMPONENT_REF for
1605         vfield inits.
1606
1607 2011-01-14  Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
1608
1609         * parser.c (cp_parser_range_for): Remove the "unused variable" warning
1610         workaround.
1611
1612 2011-01-15  Giovanni Funchal  <gafunchal@gmail.com>
1613             Jonathan Wakely  <jwakely.gcc@gmail.com>
1614
1615         PR c++/33558
1616         * decl.c (grokdeclarator): Reject mutable reference members.
1617
1618 2011-01-14  Jason Merrill  <jason@redhat.com>
1619
1620         PR c++/47289
1621         * pt.c (coerce_template_parms): Fix error recovery.
1622
1623         PR c++/46903
1624         * typeck2.c (check_narrowing): Only check arithmetic types.
1625
1626         PR c++/46688
1627         * tree.c (build_vec_init_expr): Handle flexible array
1628         properly.
1629
1630 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
1631
1632         PR c++/47213
1633         * cp-tree.h (CLASSTYPE_VISIBILITY): Use
1634         TYPE_MAIN_DECL instead of TYPE_NAME.
1635         (CLASSTYPE_VISIBILITY_SPECIFIED): Likewise.
1636         * decl2.c (determine_visibility): Add check
1637         of CLASS_TYPE_P for underlying_type.
1638
1639 2011-01-12  Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
1640
1641         * cp-tree.h (begin_for_scope): New prototype.
1642         (begin_for_stmt): Update prototype.
1643         (begin_range_for_stmt): Update prototype.
1644         * init.c (build_vec_init): Update call to begin_for_stmt.
1645         * parser.c (cp_parser_for): New.
1646         (cp_parser_c_for): Add three new parameters.
1647         (cp_parser_range_for): Likewise. Most parsing code removed.
1648         (cp_parser_iteration_statement): Call cp_parser_for instead of
1649         cp_parser_c_for and cp_parser_range_for.
1650         (cp_parser_for_init_statement): Add new parameter and return type.
1651         (cp_parser_block_declaration): Update call to
1652         cp_parser_simple_declaration.
1653         (cp_parser_simple_declaration): Add new parameter.
1654         Update call to cp_parser_init_declarator.
1655         (cp_parser_init_declarator): Add new parameter.
1656         * pt.c (tsubst_expr): Update call to begin_for_stmt.
1657         * semantics.c (begin_for_scope): New.
1658         (begin_for_stmt): Add two new parameters.
1659         (begin_range_for_stmt): Likewise.
1660
1661 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
1662
1663         * parser.c (cp_parser_objc_at_property_declaration): Improved
1664         error message.
1665
1666 2011-01-11  Dodji Seketeli  <dodji@redhat.com>
1667
1668         PR debug/46955
1669         * cp-lang.c (get_template_innermost_arguments_folded)
1670         (get_template_argument_pack_elems_folded)
1671         (template_arg_needs_folding, fold_cplus_constants): New static
1672         functions.
1673         (LANG_HOOKS_GET_INNERMOST_GENERIC_ARGS): Set this hook to
1674         get_template_innermost_arguments_folded.
1675         (LANG_HOOKS_GET_ARGUMENT_PACK_ELEMS): Set this hook to
1676         get_template_argument_pack_elems_folded.
1677
1678 2011-01-11  Jason Merrill  <jason@redhat.com>
1679
1680         PR c++/46658
1681         * init.c (build_new_1): Handle value-init in templates differently.
1682
1683         PR c++/45520
1684         * tree.c (maybe_dummy_object): Check current_class_ref against
1685         context, not current_class_type.
1686
1687 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
1688
1689         PR objc/47078
1690         * parser.c (cp_parser_objc_typename): If the type is unknown, for
1691         error recovery purposes behave as if it was not specified so that
1692         the default type is used.
1693
1694 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
1695
1696         PR c++/47022
1697         * pt.c (tsubst_copy_and_build): Use tsubst instead of tsubst_copy
1698         for the second build_x_va_arg argument.
1699
1700 2011-01-05  Tom Tromey  <tromey@redhat.com>
1701
1702         * typeck.c (cp_build_addr_expr_1): Update call to lvalue_error.
1703         (lvalue_or_else): Likewise.
1704
1705 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
1706
1707         PR target/38662
1708         * tree.c (cxx_type_hash_eq):
1709         Allow METHOD_TYPE, too.
1710
1711 \f
1712 Copyright (C) 2011 Free Software Foundation, Inc.
1713
1714 Copying and distribution of this file, with or without modification,
1715 are permitted in any medium without royalty provided the copyright
1716 notice and this notice are preserved.