OSDN Git Service

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