OSDN Git Service

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