OSDN Git Service

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