OSDN Git Service

PR c++/30112
[pf3gnuchains/gcc-fork.git] / gcc / cp / ChangeLog
1 2011-07-22  Jason Merrill  <jason@redhat.com>
2             Mark Glisse  <marc.glisse@normalesup.org>
3
4         PR c++/30112
5         * decl.c (cp_finish_decl): Apply pragma redefine_extname in
6         other namespaces as well.
7         * name-lookup.c (c_linkage_bindings): Define.
8         (lookup_extern_c_fun_in_all_ns): Rename from
9         lookup_extern_c_fun_binding_in_all_ns.  Return tree.
10         (pushdecl_maybe_friend_1): Adjust.  Copy DECL_ASSEMBLER_NAME.
11
12 2011-07-20  Jason Merrill  <jason@redhat.com>
13
14         * parser.c (cp_parser_initializer_list): Handle C99 .id= and [N]=
15         designated initializer syntax.
16         * decl.c (check_array_designated_initializer): Add index parm.
17         (maybe_deduce_size_from_array_init): Pass it.
18         (reshape_init_array_1): Likewise.
19
20         PR c++/6709 (DR 743)
21         PR c++/42603 (DR 950)
22         * parser.c (token_is_decltype, cp_lexer_next_token_is_decltype): New.
23         (cp_parser_nested_name_specifier_opt): Allow decltype.
24         (cp_parser_qualifying_entity): Likewise.
25         (cp_parser_decltype): Replace source tokens with CPP_DECLTYPE.
26         (cp_parser_simple_type_specifier): Handle decltype as scope.
27         (cp_parser_base_specifier): Allow decltype.
28         (cp_parser_base_clause): Don't crash on null base.
29         * parser.h (CPP_KEYWORD, CPP_TEMPLATE_ID): Move to c-common.h.
30         (CPP_NESTED_NAME_SPECIFIER, N_CP_TTYPES): Likewise.
31
32 2011-07-19  Jason Merrill  <jason@redhat.com>
33
34         PR c++/49785
35         * pt.c (coerce_template_parms): Handle non-pack after pack.
36
37 2011-07-19  Richard Guenther  <rguenther@suse.de>
38
39         * call.c (build_special_member_call): Use fold_build_pointer_plus.
40         * class.c (build_base_path): Likewise.
41         (convert_to_base_statically): Likewise.
42         (dfs_accumulate_vtbl_inits): Likewise.
43         * cp-gimplify.c (cxx_omp_clause_apply_fn): Likewise.
44         * except.c (expand_start_catch_block): Likewise.
45         * init.c (expand_virtual_init): Likewise.
46         (build_new_1): Likewise.
47         (build_vec_delete_1): Likewise.
48         (build_vec_delete): Likewise.
49         * rtti.c (build_headof): Likewise.
50         (tinfo_base_init): Likewise.
51         * typeck.c (get_member_function_from_ptrfunc): Likewise.
52         (cp_build_addr_expr_1): Likewise.
53         * typeck2.c (build_m_component_ref): Likewise.
54
55 2011-07-18  Martin Jambor  <mjambor@suse.cz>
56
57         * parser.c (cp_parser_parameter_declaration_list): Initialize
58         parenthesized_p.
59
60 2011-07-16  Jason Merrill  <jason@redhat.com>
61
62         * pt.c (tinst_level_tick, last_template_error_tick): Replace with
63         last_error_tinst_level.
64         (push_tinst_level, pop_tinst_level): Adjust.
65         (problematic_instantiation_changed): Adjust.
66         (record_last_problematic_instantiation): Adjust.
67         * error.c (cp_print_error_function): Don't print
68         current_function_decl if we're in a template instantiation context.
69         (print_instantiation_full_context): Always print first line.
70
71 2011-07-16  Nathan Froyd  <froydnj@codesourcery.com>
72             Jason Merrill  <jason@redhat.com>
73
74         PR c++/45329
75         PR c++/48934
76         * cp-tree.h (fn_type_unification): Add `bool' parameter.
77         * pt.c (enum template_base_result): Define.
78         (unify_success, unify_unknown): Define.
79         (unify_parameter_deduction_failure): Define.
80         (unify_invalid, unify_cv_qual_mismatch, unify_type_mismatch): Define.
81         (unify_parameter_pack_mismatch): Define.
82         (unify_parameter_pack_inconsistent): Define.
83         (unify_ptrmem_cst_mismatch, unify_vla_arg): Define.
84         (unify_expression_unequal, unify_inconsistency): Define.
85         (unify_method_type_error, unify_arity): Likewise.
86         (unify_too_many_parameters, unify_too_few_parameters): Define.
87         (unify_arg_conversion, unify_no_common_base): Define.
88         (unify_illformed_ptrmem_cst_expr): Define.
89         (unify_substitution_failure): Define.
90         (unify_inconsistent_template_template_parameters): Define.
91         (unify_template_deduction_failure): Define.
92         (unify_template_argument_mismatch): Define.
93         (unify_overload_resolution_failure): Define.
94         (comp_template_args_with_info): New function, split out from...
95         (comp_template_args): ...here.  Call it.
96         (deduction_tsubst_fntype): Add `complain' parameter'.  Pass it
97         to tsubst.
98         (unify): Add `explain_p' parameter.  Pass to all relevant calls.
99         Call above status functions when appropriate.
100         (resolve_overloaded_unification, try_one_overload): Likewise.
101         (type_unification, type_unification_real): Likewise.
102         (unify_pack_expansion): Likewise.
103         (get_template_base, try_class_unification): Likewise.
104         (get_bindings, more_specialized_fn): Pass false to unification
105         calls.
106         (get_class_bindings, do_auto_deduction): Likewise.
107         (convert_nontype_argument): Likewise.
108         (fn_type_unification): Likewise.  Pass tf_warning_or_error if
109         explain_p.
110         (get_template_base): Add `explain_p' parameter and pass it to
111         try_class_unification.  Return an enum template_base_result.
112         * class.c (resolve_address_of_overloaded_function): Pass false to
113         fn_type_unification.
114         * call.c (enum rejection_reason_code): Add new codes.
115         (struct rejection_reason): Add template_unification field.
116         Add template_instantiation field.
117         (template_unification_rejection): Define.
118         (template_unification_error_rejection): Define.
119         (template_instantiation_rejection): Define.
120         (invalid_copy_with_fn_template_rejection): Define.
121         (add_template_candidate): Pass false to unify.
122         Provide more rejection reasons when possible.
123         (print_template_unification_rejection): Define.
124         (print_arity_rejection): Define, split out from...
125         (print_z_candidate): ...here.  Add cases for new rejection
126         reasons.
127
128 2011-07-15  Jason Merrill  <jason@redhat.com>
129
130         * Make-lang.in (check-g++-strict-gc): New.
131         (cp/except.o): Depend on gt-cp-except.h
132         * except.c: Include gt-cp-except.h.
133         * config-lang.in (gtfiles): Add cp/except.c.
134         * decl2.c (mark_used): Adjust constexpr condition, set
135         function_depth around template instantiation.
136         * parser.c (cp_parser_lambda_body): Set function_depth.
137         * semantics.c (maybe_add_lambda_conv_op): Likewise.
138
139         PR testsuite/49741
140         * Make-lang.in (check-c++0x): Use --extra_opts instead of--tool_opts.
141
142 2011-07-13  Jason Merrill  <jason@redhat.com>
143
144         * Make-lang.in (check-c++0x): New.
145
146 2011-07-13  Richard Sandiford  <richard.sandiford@linaro.org>
147
148         * typeck2.c (split_nonconstant_init_1): Pass the initializer directly,
149         rather than a pointer to it.  Return true if the whole of the value
150         was initialized by the generated statements.  Use
151         complete_ctor_at_level_p instead of count_type_elements.
152
153 2011-07-12   Diego Novillo  <dnovillo@google.com>
154
155         * name-lookup.h (cp_binding_level): Rename from cxx_scope.
156         Update all users.
157         (struct cp_binding_level): Fix indentation.
158
159 2011-07-11  Jason Merrill  <jason@redhat.com>
160
161         PR c++/49672
162         * pt.c (extract_fnparm_pack): Split out from...
163         (make_fnparm_pack): ...here.
164         (instantiate_decl): Handle non-pack parms after a pack.
165         * semantics.c (maybe_add_lambda_conv_op): Don't in a template.
166
167         * decl2.c (decl_constant_var_p): Use decl_maybe_constant_var_p.
168
169         PR c++/44609
170         * cp-tree.h (struct tinst_level): Add errors field.
171         * pt.c (neglectable_inst_p, limit_bad_template_recurson): New.
172         (push_tinst_level): Don't start another decl in that case.
173         (reopen_tinst_level): Adjust errors field.
174         * decl2.c (cp_write_global_declarations): Don't complain about
175         undefined inline if its template was defined.
176         * mangle.c (mangle_decl_string): Handle failure from push_tinst_level.
177
178 2011-07-10  Jason Merrill  <jason@redhat.com>
179
180         PR c++/49691
181         * parser.c (cp_parser_late_return_type_opt): Check quals parameter
182         rather than current_class_type to determine whether to set 'this'.
183         (cp_parser_direct_declarator): Pass -1 to quals if member_p is false.
184         (cp_parser_init_declarator): Pass down member_p.
185
186 2011-07-09  Jason Merrill  <jason@redhat.com>
187
188         * tree.c (build_vec_init_elt): Strip TARGET_EXPR.
189
190 2011-07-08  Jason Merrill  <jason@redhat.com>
191
192         PR c++/45437
193         * typeck.c (cp_build_modify_expr): Preevaluate RHS.
194
195         * method.c (use_thunk): Use cgraph_add_to_same_comdat_group.
196         * optimize.c (maybe_clone_body): Likewise.
197         * semantics.c (maybe_add_lambda_conv_op): Likewise.
198
199         PR c++/45603
200         * decl.c (expand_static_init): Don't get confused by user
201         declaration of __cxa_guard_acquire.
202
203         * typeck.c (cp_apply_type_quals_to_decl): Don't check
204         COMPLETE_TYPE_P either.
205
206         PR c++/49673
207         * typeck.c (cp_apply_type_quals_to_decl): Don't check
208         TYPE_NEEDS_CONSTRUCTING.
209
210 2011-07-07  Jason Merrill  <jason@redhat.com>
211
212         PR c++/49663
213         * pt.c (push_deduction_access_scope): Preserve
214         processing_template_decl across push_to_top_level.
215         And revert:
216         * class.c (pushclass): Accept NULL argument.
217         (popclass): Deal with popping null class.
218         * pt.c (push_access_scope, pop_access_scope): Use them rather than
219         push_to_top_level/pop_from_top_level.
220         * name-lookup.c (lookup_name_real_1): Check current_class_type.
221
222 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
223
224         PR c/49644
225         * typeck.c (cp_build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with
226         one non-complex and one complex argument, call save_expr on both
227         operands.
228
229 2011-07-06  Jason Merrill  <jason@redhat.com>
230
231         PR c++/49353
232         * semantics.c (expand_or_defer_fn_1): Clear DECL_EXTERNAL
233         on kept inlines.
234
235         PR c++/49568
236         * method.c (make_thunk, use_thunk): Copy DECL_COMDAT.
237
238 2011-07-05  Jason Merrill  <jason@redhat.com>
239
240         PR c++/48157
241         * pt.c (tsubst_qualified_id): Preserve TEMPLATE_ID_EXPR in
242         partial instantiation.
243
244         PR c++/49598
245         * semantics.c (finish_id_expression): convert_from_reference.
246
247 2011-07-05  Richard Guenther  <rguenther@suse.de>
248
249         * decl.c (cxx_init_decl_processing): Defer building common
250         tree nodes to c_common_nodes_and_builtins.
251
252 2011-07-04  Jason Merrill  <jason@redhat.com>
253
254         DR 1207
255         PR c++/49589
256         * mangle.c (write_expression): Handle 'this'.
257         * parser.c (cp_parser_postfix_dot_deref_expression): Allow
258         incomplete *this.
259         * semantics.c (potential_constant_expression_1): Check that
260         DECL_CONTEXT is set on 'this'.
261
262         * error.c (dump_template_bindings): Don't print typenames
263         for a partial instantiation.
264         (dump_function_decl): If we aren't printing function arguments,
265         print template arguments as <args> rather than [with ...].
266         (dump_expr): Don't print return type or template header.
267         [BASELINK]: Use BASELINK_FUNCTIONS rather than get_first_fn.
268         * pt.c (dependent_template_arg_p): Handle null arg.
269
270         * error.c (type_to_string): Avoid redundant akas.
271
272 2011-07-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
273
274         PR c++/49605
275         * init.c (build_delete): Only warn for sfk_deleting_destructor.
276
277 2011-07-01  Jakub Jelinek  <jakub@redhat.com>
278
279         * Make-lang.in (cp/decl.o): Depend on pointer-set.h.
280         (cp/class.o): Likewise.
281         (cp/error.o): Likewise.
282         (cp/name-lookup.o): Likewise.
283         (cp/decl2.o): Likewise.  Don't depend on $(POINTER_SET_H).
284
285 2011-07-01  Jason Merrill  <jason@redhat.com>
286
287         PR c++/48261
288         * pt.c (lookup_template_function): Handle non-function.
289
290         PR c++/48593
291         * pt.c (tsubst_qualified_id): Check PTRMEM_OK_P.
292         * tree.c (build_qualified_name): Set PTRMEM_OK_P.
293         * semantics.c (finish_parenthesized_expr): Clear PTRMEM_OK_P on
294         SCOPE_REF, too.
295         * cp-tree.h (PTRMEM_OK_P): Apply to SCOPE_REF, too.
296         (QUALIFIED_NAME_IS_TEMPLATE): Switch to lang flag 1.
297
298         PR c++/48883
299         PR c++/49609
300         * pt.c (resolve_nondeduced_context): Call mark_used.
301
302         PR c++/49085
303         * semantics.c (finish_offsetof): Complain about incomplete type.
304
305 2011-06-30  Jason Merrill  <jason@redhat.com>
306
307         PR c++/49387
308         * rtti.c (get_tinfo_decl): Call complete_type.
309
310         PR c++/49569
311         * method.c (implicitly_declare_fn): Set DECL_PARM_LEVEL and
312         DECL_PARM_INDEX on rhs parm.
313
314         * pt.c (iterative_hash_template_arg): Use cp_tree_operand_length.
315
316         PR c++/49355
317         * tree.c (stabilize_init): Handle aggregate initialization.
318
319         PR c++/48481
320         * name-lookup.c (struct arg_lookup): Add fn_set.
321         (add_function): Check it.
322         (lookup_arg_dependent_1): Initialize it.
323
324 2011-06-29  Jason Merrill  <jason@redhat.com>
325
326         PR c++/49216
327         * init.c (build_new_1): Pass {} down to build_vec_init.
328         (build_vec_init): Handle it.
329
330         DR 1207
331         PR c++/49003
332         * cp-tree.h (struct saved_scope): Add x_current_class_ptr,
333         x_current_class_ref.
334         (current_class_ptr, current_class_ref): Use them.
335         * decl.c (build_this_parm): Handle getting the class type.
336         * parser.c (cp_parser_late_return_type_opt): Set up 'this'
337         for use within the trailing return type.
338
339         * pt.c (tsubst_decl) [VAR_DECL]: In unevaluated operand,
340         don't tsubst DECL_INITIAL unless our type use auto.
341
342         PR c++/49520
343         * semantics.c (constexpr_fn_retval): Handle CLEANUP_POINT_EXPR here.
344         (massage_constexpr_body): Not here.
345
346         PR c++/49554
347         * semantics.c (lambda_proxy_type): New.
348         (build_capture_proxy): Use it.
349         * cp-tree.h (DECLTYPE_FOR_LAMBDA_PROXY): New.
350         * pt.c (tsubst) [DECLTYPE_TYPE]: Use them.
351
352         PR c++/45923
353         * class.c (explain_non_literal_class): New.
354         (finalize_literal_type_property): Call it.
355         * cp-tree.h: Declare it.
356         * semantics.c (ensure_literal_type_for_constexpr_object): Call it.
357         (is_valid_constexpr_fn): Likewise.
358         (massage_constexpr_body): Split out from...
359         (register_constexpr_fundef): ...here.
360         (is_instantiation_of_constexpr): New.
361         (expand_or_defer_fn_1): Leave DECL_SAVED_TREE alone in that case.
362         (explain_invalid_constexpr_fn): New.
363         (cxx_eval_call_expression): Call it.
364         (potential_constant_expression_1): Likewise.  Avoid redundant errors.
365         * method.c (process_subob_fn): Diagnose non-constexpr.
366         (walk_field_subobs): Likewise.
367         (synthesized_method_walk): Don't shortcut if we want diagnostics.
368         (explain_implicit_non_constexpr): New.
369         (defaulted_late_check): Use it.
370         * call.c (build_cxx_call): Remember location.
371
372         * method.c (maybe_explain_implicit_delete): Use pointer_set
373         instead of htab.
374
375         * class.c (finalize_literal_type_property): Update conditions.
376         * method.c (defaulted_late_check): Set TYPE_HAS_CONSTEXPR_CTOR.
377
378         * tree.c (build_vec_init_expr): Don't add TARGET_EXPR.
379         * typeck2.c (digest_init_r): Handle VEC_INIT_EXPR.
380         * semantics.c (cxx_eval_vec_init_1): Correct type.
381
382         * init.c (build_value_init): Decide whether or not to zero-initialize
383         based on user-providedness of default ctor, not any ctor.
384         (build_value_init_noctor): Adjust assert.
385
386         DR 990
387         * call.c (convert_like_real) [ck_user]: Handle value-initialization.
388         (build_new_method_call_1): Likewise.
389         * init.c (expand_default_init): Handle direct list-initialization
390         of aggregates.
391
392 2011-06-27  Jakub Jelinek  <jakub@redhat.com>
393
394         * cp-tree.h (union lang_tree_node): Use it in chain_next expression.
395
396 2011-06-26  Jason Merrill  <jason@redhat.com>
397
398         PR c++/49528
399         * semantics.c (potential_constant_expression_1): Check
400         for non-literality rather than cleanup.
401         (cxx_eval_constant_expression): Likewise.
402
403         PR c++/49528
404         * semantics.c (potential_constant_expression_1): A TARGET_EXPR
405         with a cleanup isn't constant.
406         (cxx_eval_constant_expression): Likewise.
407         * init.c (expand_default_init): Use maybe_constant_init.
408
409 2011-06-24  Jakub Jelinek  <jakub@redhat.com>
410
411         PR c++/46400
412         * cp-tree.h (union lang_tree_node): Use TYPE_NEXT_VARIANT
413         instead of TYPE_CHAIN for chain_next for types.
414
415 2011-06-23  Gabriel Charette  <gchare@google.com>
416
417         * name-lookup.h (cp_binding_level): Removed unused
418         member names_size. Update all users.
419
420 2011-06-23  Jason Merrill  <jason@redhat.com>
421
422         * typeck2.c (build_functional_cast): Strip cv-quals for value init.
423         * init.c (build_zero_init_1): Not here.
424
425         PR c++/35255
426         * pt.c (resolve_overloaded_unification): Fix DR 115 handling.
427
428 2011-06-23  Paolo Carlini  <paolo.carlini@oracle.com>
429
430         PR c++/44625
431         * decl2.c (build_anon_union_vars): Early return error_mark_node
432         for a nested anonymous struct.
433
434 2011-06-23  Jason Merrill  <jason@redhat.com>
435
436         PR c++/49507
437         * decl2.c (mark_used): Don't call synthesize_method for
438         functions defaulted outside the class.
439
440         * optimize.c (maybe_clone_body): Set linkage flags before
441         cgraph_same_body_alias.
442
443         PR c++/49440
444         * class.c (set_linkage_according_to_type): Hand off to
445         determine_visibility.
446
447         PR c++/49395
448         * init.c (build_zero_init_1): Strip cv-quals from scalar types.
449
450         PR c++/36435
451         * pt.c (most_specialized_instantiation): Do check return types.
452
453 2011-06-22  Jason Merrill  <jason@redhat.com>
454
455         PR c++/49260
456         * call.c (build_call_a): Set cp_function_chain->can_throw here.
457         (build_cxx_call): Not here.
458
459 2011-06-21  Jason Merrill  <jason@redhat.com>
460
461         PR c++/49172
462         * decl.c (cp_finish_decl): Adjust init_const_expr_p for refs.
463         (grokdeclarator): constexpr doesn't apply const for refs.
464         * parser.c (cp_parser_initializer_clause): Don't call
465         maybe_constant_value here.
466         * call.c (initialize_reference): Handle constexpr.
467
468         PR c++/49482
469         * semantics.c (maybe_add_lambda_conv_op): Call mark_exp_read for
470         static fn parameters.
471
472         * call.c (add_builtin_candidates): Use cv_unqualified rather than
473         TYPE_MAIN_VARIANT.
474         * pt.c (tsubst_arg_types): Likewise.
475         * except.c (build_throw): Use cv_unqualified.
476
477         PR c++/49418
478         * call.c (cxx_type_promotes_to): Don't strip cv-quals.
479         * semantics.c (lambda_return_type): Strip them here.
480
481 2011-06-21  Andrew MacLeod  <amacleod@redhat.com>
482
483         * semantics.c: Add sync_ or SYNC__ to builtin names.
484
485 2011-06-20  Jason Merrill  <jason@redhat.com>
486
487         PR c++/49216
488         * init.c (build_vec_init): Don't try to use a CONSTRUCTOR when
489         base is a pointer.
490         * typeck2.c (process_init_constructor_array): Use {} for classes,
491         too.
492         * call.c (convert_like_real): Handle substitution failure.
493
494         PR c++/48138
495         * pt.c (canonicalize_type_argument): New.
496         (convert_template_argument, unify): Use it.
497
498         PR c++/47080
499         * call.c (rejection_reason_code): Add rr_explicit_conversion.
500         (print_z_candidate): Handle it.
501         (explicit_conversion_rejection): New.
502         (build_user_type_conversion_1): Reject an explicit conversion
503         function that requires more than a qualification conversion.
504
505         PR c++/47635
506         * decl.c (grokdeclarator): Don't set ctype to an ENUMERAL_TYPE.
507
508         PR c++/48138
509         * tree.c (strip_typedefs): Use build_aligned_type.
510
511         PR c++/49205
512         * call.c (sufficient_parms_p): Allow parameter packs too.
513
514         PR c++/43321
515         * semantics.c (describable_type): Remove.
516         * cp-tree.h: Likewise.
517         * decl.c (cp_finish_decl): Don't call it.
518         * init.c (build_new): Likewise.
519         * parser.c (cp_parser_omp_for_loop): Likewise.
520         * pt.c (tsubst_decl): Likewise.
521         (do_auto_deduction): If we fail in a template, try again
522         at instantiation time.
523
524         PR c++/43831
525         * parser.c (cp_parser_lambda_introducer): Complain about redundant
526         captures.
527         * semantics.c (add_capture): Likewise.
528         (register_capture_members): Clear IDENTIFIER_MARKED.
529
530 2011-06-17  Jason Merrill  <jason@redhat.com>
531
532         PR c++/49458
533         * call.c (convert_class_to_reference_1): Allow binding function
534         lvalue to rvalue reference.
535
536         PR c++/43912
537         Generate proxy VAR_DECLs for better lambda debug info.
538         * cp-tree.h (FUNCTION_NEEDS_BODY_BLOCK): Add lambda operator().
539         (LAMBDA_EXPR_PENDING_PROXIES): New.
540         (struct tree_lambda_expr): Add pending_proxies.
541         * name-lookup.c (pushdecl_maybe_friend_1): Handle capture shadowing.
542         (qualify_lookup): Use is_lambda_ignored_entity.
543         * parser.c (cp_parser_lambda_expression): Don't adjust field names.
544         Call insert_pending_capture_proxies.
545         (cp_parser_lambda_introducer): Use this_identifier.
546         (cp_parser_lambda_declarator_opt): Call the object parameter
547         of the op() "__closure" instead of "this".
548         (cp_parser_lambda_body): Call build_capture_proxy.
549         * semantics.c (build_capture_proxy, is_lambda_ignored_entity): New.
550         (insert_pending_capture_proxies, insert_capture_proxy): New.
551         (is_normal_capture_proxy, is_capture_proxy): New.
552         (add_capture): Add __ to field names here, return capture proxy.
553         (add_default_capture): Use this_identifier, adjust to expect
554         add_capture to return a capture proxy.
555         (outer_lambda_capture_p, thisify_lambda_field): Remove.
556         (finish_id_expression, lambda_expr_this_capture): Adjust.
557         (build_lambda_expr): Initialize LAMBDA_EXPR_PENDING_PROXIES.
558         * pt.c (tsubst_copy_and_build): Check that LAMBDA_EXPR_PENDING_PROXIES
559         is null.
560
561         * name-lookup.c (pushdecl_maybe_friend_1): Do check for shadowing
562         of artificial locals.
563
564         * parser.c (cp_parser_lambda_expression): Clear
565         LAMBDA_EXPR_THIS_CAPTURE after parsing.
566         * pt.c (tsubst_copy_and_build): Make sure it isn't set.
567
568         * cp-tree.h (struct tree_lambda_expr): Change common to typed.
569         Move non-pointers to end of struct.
570
571         * pt.c (tsubst_decl): Handle DECL_VALUE_EXPR on reference.
572         * decl.c (check_initializer): Handle DECL_VALUE_EXPR_P.
573
574         * semantics.c (finish_non_static_data_member): Preserve dereference
575         in template.
576
577 2011-06-16  Jason Merrill  <jason@redhat.com>
578
579         PR c++/44160
580         * parser.c (cp_parser_lambda_body): Share code between
581         simple and complex cases instead of using cp_parser_function_body.
582
583         PR c++/45378
584         * decl.c (check_initializer): Check narrowing.
585
586         PR c++/49229
587         * pt.c (tsubst_decl) [FUNCTION_DECL]: Handle substitution failure.
588
589         PR c++/49251
590         * semantics.c (finish_id_expression): Mark even dependent
591         variables as used.
592
593         PR c++/49420
594         * error.c (dump_template_argument): Don't try to omit default
595         template args from an argument pack.
596
597 2011-06-15  H.J. Lu  <hongjiu.lu@intel.com>
598
599         PR c++/49412
600         * decl.c (get_dso_handle_node): Mark __dso_handle hidden if
601         assembler supports hidden visibility.
602
603 2011-06-14  Jason Merrill  <jason@redhat.com>
604
605         PR c++/49107
606         * cp-tree.h (DEFERRED_NOEXCEPT_SPEC_P): Handle overload.
607         * method.c (defaulted_late_check): Only maybe_instantiate_noexcept
608         if the declaration had an exception-specifier.
609         (process_subob_fn): Don't maybe_instantiate_noexcept.
610         * pt.c (maybe_instantiate_noexcept): Handle overload.
611         * typeck2.c (nothrow_spec_p_uninst): New.
612         (merge_exception_specifiers): Add 'fn' parm.  Build up overload.
613         * typeck.c (merge_types): Adjust.
614
615         * pt.c (deduction_tsubst_fntype): Don't save input_location.
616         (maybe_instantiate_noexcept): Likewise.
617
618 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
619
620         * Make-lang.in (cp/method.o): Update dependencies.
621         * method.c: Include common/common-target.h.
622         (use_thunk): Use targetm_common.have_named_sections.
623
624 2011-06-14  Steve Ellcey  <sje@cup.hp.com>
625
626         * decl.c (cxx_init_decl_processing): Use ptr_mode instead of Pmode.
627
628 2011-06-14  Jason Merrill  <jason@redhat.com>
629
630         * error.c (type_to_string): Print typedef-stripped version too.
631
632         PR c++/49117
633         * call.c (perform_implicit_conversion_flags): Print source type as
634         well as expression.
635
636         PR c++/49389
637         * typeck2.c (build_m_component_ref): Preserve rvalueness.
638
639         PR c++/49369
640         * class.c (build_base_path): Fix cv-quals in unevaluated context.
641
642         PR c++/49290
643         * semantics.c (cxx_fold_indirect_ref): Local, more permissive copy
644         of fold_indirect_ref_1.
645         (cxx_eval_indirect_ref): Use it.
646
647 2011-06-11  Jan Hubicka  <jh@suse.cz>
648
649         * decl2.c (cp_write_global_declarations): Process aliases; look trhough
650         same body aliases.
651
652 2011-06-10  Paolo Carlini  <paolo.carlini@oracle.com>
653
654         PR c++/41769
655         * decl.c (grokdeclarator): Reject operator names in parameters.
656
657 2011-06-10  Jan Hubicka  <jh@suse.cz>
658
659         * decl2.c (clear_decl_external): New functoin.
660         (cp_write_global_declarations): Use it.
661
662 2011-06-10  Paolo Carlini  <paolo.carlini@oracle.com>
663
664         * cp-tree.h (error_operand_p): Remove.
665
666 2011-06-09  David Krauss  <potswa@mac.com>
667
668         PR c++/49118
669         * typeck2.c (build_x_arrow): Push fake template context
670         to produce diagnostic on acyclic endless operator-> drill-down.
671         * call.c (build_new_op): Change Boolean overload status
672         value to a pointer to the overload function.
673         * cp-tree.h: Likewise.
674         * typeck.c: Likewise.
675         * parser.c: Likewise.
676         * decl2.c: Likewise.
677         * pt.c: Likewise.
678
679 2011-06-09  Jason Merrill  <jason@redhat.com>
680
681         * semantics.c (maybe_constant_value): Handle overflowed input.
682         (non_const_var_error): Handle non-constant DECL_INITIAL.
683
684         * pt.c (build_non_dependent_expr): Use fold_non_dependent_expr_sfinae.
685
686         * parser.c (cp_parser_constant_expression): Just return the
687         non-constant expression.
688
689         * semantics.c (finish_compound_literal): Set TREE_HAS_CONSTRUCTOR.
690
691 2011-06-09  Paolo Carlini  <paolo.carlini@oracle.com>
692
693         PR c++/29003
694         * decl.c (grokdeclarator): Reject operator names in typedefs.
695
696 2011-06-08  Jason Merrill  <jason@redhat.com>
697
698         PR c++/49107
699         * cp-tree.def (DEFERRED_NOEXCEPT): New.
700         * cp-tree.h (struct tree_deferred_noexcept): New.
701         (DEFERRED_NOEXCEPT_PATTERN, DEFERRED_NOEXCEPT_ARGS): New.
702         (DEFERRED_NOEXCEPT_SPEC_P): New.
703         (enum cp_tree_node_structure_enum): Add TS_CP_DEFERRED_NOEXCEPT.
704         (union lang_tree_node): Add tree_deferred_noexcept.
705         (maybe_instantiate_noexcept): Declare.
706         * cp-objcp-common.c (cp_tree_size): Handle DEFERRED_NOEXCEPT.
707         * error.c (dump_exception_spec): Likewise.
708         * cxx-pretty-print.c (pp_cxx_exception_specification): Likewise.
709         * ptree.c (cxx_print_xnode): Likewise.
710         * tree.c (cp_tree_equal): Likewise.
711         * decl.c (cp_tree_node_structure): Likewise.
712         (duplicate_decls): Call maybe_instantiate_noexcept.
713         * except.c (build_noexcept_spec): Handle DEFERRED_NOEXCEPT.
714         (nothrow_spec_p, type_noexcept_p, type_throw_all_p): Check
715         DEFERRED_NOEXCEPT_SPEC_P.
716         * typeck2.c (merge_exception_specifiers): Likewise.
717         * decl2.c (mark_used): Call maybe_instantiate_noexcept.
718         * method.c (process_subob_fn, defaulted_late_check): Likewise.
719         * pt.c (tsubst_exception_specification): Add defer_ok parm.
720         Build DEFERRED_NOEXCEPT.
721         (maybe_instantiate_noexcept): New.
722         (tsubst, regenerate_decl_from_template, instantiate_decl): Adjust.
723         * search.c (check_final_overrider): Call maybe_instantiate_noexcept.
724
725         * semantics.c (potential_constant_expression_1): Handle destructor
726         call.
727
728 2011-06-08  Jakub Jelinek  <jakub@redhat.com>
729
730         * cp-tree.h (struct tinst_level): Add chain_next GTY
731         markup.
732
733 2011-06-08  Jason Merrill  <jason@redhat.com>
734
735         PR c++/49322
736         * pt.c (deduction_tsubst_fntype): Don't free the tinst entry
737         if a pending_template entry is pointing at it.
738
739 2011-06-07  Jason Merrill  <jason@redhat.com>
740
741         PR c++/48969
742         PR c++/44175
743         * error.c (subst_to_string): New.
744         (cp_printer): Use it for 'S'.
745         (print_instantiation_partial_context_line): Handle subst context.
746         * pt.c (push_tinst_level): Handle subst context.
747         (deduction_tsubst_fntype): Don't track specific substitutions.
748         Use push_tinst_level.
749
750         * pt.c (deduction_tsubst_fntype): Use push_deduction_access_scope.
751         (fn_type_unification): Don't call push_deduction_access_scope here.
752
753 2011-06-06  Jason Merrill  <jason@redhat.com>
754
755         PR c++/48780
756         * typeck.c (perform_integral_promotions): Don't promote scoped enums.
757         * call.c (convert_arg_to_ellipsis): Promote them here in old ABI.
758
759 2011-06-06  Nicola Pero  <nicola.pero@meta-innovation.com>,
760
761         PR obj-c++/48275
762         * parser.c (cp_parser_objc_at_property_declaration): Allow setter
763         and getter names to use all the allowed method names.
764
765 2011-06-06  Jason Merrill  <jason@redhat.com>
766
767         PR c++/49298
768         * semantics.c (potential_constant_expression_1): Handle FIELD_DECL.
769
770         PR objc++/49221
771         * decl.c (cp_finish_decl): Check DECL_FUNCTION_SCOPE_P rather than
772         at_function_scope_p.
773
774         PR c++/49134
775         * tree.c (build_target_expr): Deal with ARM ABI tweaks.
776
777 2011-06-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
778
779         * init.c (build_delete): Warn when deleting type with non-virtual
780         destructor.
781
782 2011-06-03  Jakub Jelinek  <jakub@redhat.com>
783
784         PR c++/49276
785         * mangle.c (write_nested_name): Use CP_DECL_CONTEXT instead of
786         DECL_CONTEXT.
787
788 2011-06-01  Jason Merrill  <jason@redhat.com>
789
790         * pt.c (build_non_dependent_expr): Remove special handling of
791         REFERENCE_REF_P.
792
793         PR c++/44175
794         * pt.c (template_args_equal): Handle one arg being NULL_TREE.
795         (deduction_tsubst_fntype): Handle excessive non-infinite recursion.
796
797         PR c++/49253
798         * typeck2.c (build_x_arrow): Don't use build_min_nt.
799
800 2010-05-31  Fabien Chêne  <fabien@gcc.gnu.org>
801
802         PR c++/48010
803         * name-lookup.c (supplement_binding_1): If the old binding was a
804         type name, also check that the DECL actually refers to the same
805         type or is not a type.
806
807 2011-05-31  Jason Merrill  <jason@redhat.com>
808
809         PR c++/44870
810         * tree.c (lvalue_kind): Recurse on NON_DEPENDENT_EXPR.  Handle
811         ARROW_EXPR, TYPEID_EXPR, and arbitrary class-valued expressions.
812         (build_min_non_dep): Preserve reference refs.
813         (build_min_non_dep_call_vec): Likewise
814
815 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
816
817         PR c++/49223
818         * semantics.c (finish_omp_clauses): Call require_complete_type
819         even for copyin/copyprivate clauses.  Only call
820         cxx_omp_create_clause_info if inner_type is COMPLETE_TYPE_P.
821
822 2011-05-28  Jason Merrill  <jason@redhat.com>
823
824         PR c++/46124
825         * parser.c (cp_parser_lambda_expression): Improve error recovery.
826         (cp_parser_lambda_declarator_opt): Likewise.  Return bool.
827
828 2011-05-27  Jason Merrill  <jason@redhat.com>
829
830         PR c++/47277
831         * parser.c (cp_parser_pseudo_destructor_name): Commit to parse
832         after we see the ~.
833
834         * mangle.c (mangle_decl_string): Make sure we don't try to mangle
835         templates.
836
837         PR c++/47049
838         * semantics.c (maybe_add_lambda_conv_op): Fix COMDAT sharing.
839         * decl.c (start_preparsed_function): Don't call comdat_linkage for
840         a template.
841
842         PR c++/47132
843         * mangle.c (write_expression): Handle MODOP_EXPR.
844
845         PR c++/47277
846         * parser.c (cp_parser_unqualified_id): Don't check
847         constructor_name_p for enums.
848
849         PR c++/47687
850         * pt.c (dependent_type_p_r): Avoid infinite recursion.
851
852         PR c++/48284
853         * error.c (dump_expr) [COMPONENT_REF]: Use pp_cxx_dot
854         with INDIRECT_REF of REFERENCE_TYPE.
855
856         PR c++/49181
857         * pt.c (get_mostly_instantiated_function_type): Use push_access_scope.
858
859 2011-05-27  Nathan Froyd  <froydnj@codesourcery.com>
860
861         * cp-tree.h (building_stmt_tree): Delete.
862         * decl.c (save_function_data): Tweak initializer for x_cur_stmt_list.
863         (build_aggr_init_full_exprs): Call building_stmt_list_p
864         instead of building_stmt_tree.
865         (initialize_local_var): Likewise.
866         (finish_function): Likewise.
867         * decl2.c (finish_anon_union): Likewise.
868         * init.c (begin_init_stmts): Likewise.
869         (finish_init_stmts): Likewise.
870         (expand_aggr_init_1): Likewise.
871         * name-lookup.c (do_local_using_decl): Likewise.
872         (do_namespace_alias): Likewise.
873         (do_using_directive): Likewise.
874         (cp_emit_debug_info_for_using): Likewise.
875         * semantics.c (add_stmt): Assert that stmt_list_stack is non-empty.
876
877 2011-05-27  Paolo Carlini  <paolo.carlini@oracle.com>
878
879         PR c++/42056
880         * typeck2.c (build_functional_cast): Complain early for invalid uses
881         of 'auto' and set type to error_mark_node.
882
883 2011-05-26  Jason Merrill  <jason@redhat.com>
884
885         PR c++/47721
886         * parser.c (cp_parser_member_declaration): Allow friend T.
887         * friend.c (make_friend_class): Ignore non-classes.
888         * pt.c (instantiate_class_template_1): Handle TEMPLATE_TYPE_PARM.
889
890         DR 1004
891         * pt.c (convert_template_argument): Don't complain about using
892         injected-class-name as template template argument.
893
894         PR c++/47956
895         * decl.c (check_static_variable_definition): Now static.
896         (cp_finish_decl): Call it here.
897         (grokdeclarator): Not here.
898         * pt.c (instantiate_class_template_1): Or here.
899         * cp-tree.h: Don't declare it.
900
901 2011-05-26  Janis Johnson  <janis187@us.ibm.com>
902             Nathan Froyd  <froydnj@codesourcery.com>
903
904         PR c++/2288
905         PR c++/18770
906         * name-lookup.h (enum scope_kind): Add sk_cond.
907         * name-lookup.c (pushdecl_maybe_friend): Get scope of shadowed local.
908         Detect and report error for redeclaration from for-init or if
909         or switch condition.
910         (begin_scope): Handle sk_cond.
911         * semantics.c (begin_if_stmt): Use sk_cond.
912         (begin switch_stmt): Ditto.
913
914 2011-05-26  Jason Merrill  <jason@redhat.com>
915
916         PR c++/48211
917         * name-lookup.h (cp_class_binding): Make base a pointer.
918         * name-lookup.c (new_class_binding): Adjust.
919         (poplevel_class): Adjust.
920
921         PR c++/48424
922         * decl.c (grokparms): Function parameter packs don't need to
923         go at the end.
924         * pt.c (type_unification_real): But they aren't deduced otherwise.
925
926 2011-05-25  Jason Merrill  <jason@redhat.com>
927
928         PR c++/48536
929         * decl.c (build_enumerator): If incremented enumerator won't fit in
930         previous integral type, find one it will fit in.
931
932         PR c++/48599
933         * decl.c (create_array_type_for_decl): Complain about array of auto.
934
935         PR c++/44994
936         PR c++/49156
937         * error.c (dump_template_bindings): Set processing_template_decl
938         for a partial instantiation.
939
940         PR c++/45401
941         * decl.c (grokdeclarator): Don't change type when adding rvalue ref
942         to another reference type.
943
944         PR c++/44311
945         * decl.c (case_conversion): New.
946         (finish_case_label): Use it.
947
948         * ptree.c (cxx_print_xnode): Handle ARGUMENT_PACK_SELECT.
949
950         PR c++/45698
951         * pt.c (dependent_template_arg_p): See through ARGUMENT_PACK_SELECT.
952
953         PR c++/46005
954         * decl.c (grokdeclarator): Complain about auto typedef.
955
956         PR c++/46245
957         * decl.c (grokdeclarator): Complain later for auto parameter.
958         * pt.c (splice_late_return_type): Handle use in a template
959         type-parameter.
960
961         PR c++/46696
962         * typeck.c (cp_build_modify_expr): Check DECL_DEFAULTED_FN.
963
964         PR c++/47184
965         * parser.c (cp_parser_parameter_declaration): Recognize
966         list-initialization.
967         (cp_parser_direct_declarator): Check for the closing
968         paren before parsing definitely.
969
970         PR c++/48935
971         * parser.c (cp_parser_constructor_declarator_p): Don't check
972         constructor_name_p for enums.
973         (cp_parser_diagnose_invalid_type_name): Correct error message.
974
975         PR c++/45418
976         * init.c (perform_member_init): Handle list-initialization
977         of array of non-trivial class type.
978
979         PR c++/45080
980         * pt.c (instantiate_class_template_1): Call maybe_add_lambda_conv_op.
981         * semantics.c (lambda_function): Check COMPLETE_OR_OPEN_TYPE_P.
982
983         PR c++/48292
984         * pt.c (tsubst_decl) [PARM_DECL]: Handle partial instantiation of
985         function parameter pack.
986         (tsubst_pack_expansion): Likewise.
987
988         * cp-objcp-common.c (cp_common_init_ts): TYPE_ARGUMENT_PACK has
989         TS_COMMON.
990
991 2011-05-25  Jakub Jelinek  <jakub@redhat.com>
992
993         * cp-objcp-common.c (cp_common_init_ts): Mark CTOR_INITIALIZER
994         as TS_TYPED.
995
996         PR c++/49136
997         * semantics.c (cxx_eval_bit_field_ref): Handle the
998         case when BIT_FIELD_REF doesn't cover only a single field.
999
1000 2011-05-24  Jason Merrill  <jason@redhat.com>
1001
1002         PR c++/49042
1003         * pt.c (get_mostly_instantiated_function_type): Use
1004         push_deferring_access_checks rather than set flag_access_control.
1005
1006 2011-05-24  Nicola Pero  <nicola.pero@meta-innovation.com>,
1007
1008         * parser.c (cp_parser_objc_class_ivars): Deal gracefully with a
1009         syntax error in declaring an ObjC instance variable.
1010
1011 2011-05-24  Jason Merrill  <jason@redhat.com>
1012
1013         PR c++/48884
1014         * class.c (pushclass): Accept NULL argument.
1015         (popclass): Deal with popping null class.
1016         * pt.c (push_access_scope, pop_access_scope): Use them rather than
1017         push_to_top_level/pop_from_top_level.
1018         (push_deduction_access_scope, pop_defarg_context): New.
1019         (fn_type_unification): Use them.
1020         * name-lookup.c (lookup_name_real_1): Check current_class_type.
1021
1022 2011-05-24  Paolo Carlini  <paolo.carlini@oracle.com>
1023
1024         * decl.c (grokdeclarator): Use current_class_name.
1025
1026 2011-05-24  Joseph Myers  <joseph@codesourcery.com>
1027
1028         * Make-lang.in (GXX_OBJS): Remove prefix.o.
1029         (g++$(exeext)): Use libcommon-target.a.
1030         (CXX_C_OBJS): Remove prefix.o.
1031
1032 2011-05-23  Jason Merrill  <jason@redhat.com>
1033
1034         * pt.c (tsubst_copy_and_build): Use current_class_name.
1035
1036         PR c++/49102
1037         * call.c (convert_arg_to_ellipsis): Call force_rvalue.
1038
1039         PR c++/49105
1040         * typeck.c (cp_build_c_cast): Don't strip cv-quals when
1041         converting to reference.
1042         (build_static_cast_1): Update for glvalues.
1043
1044         PR c++/49105
1045         * typeck.c (build_const_cast_1): Handle rvalue references.
1046
1047         PR c++/47263
1048         * decl.c (use_eh_spec_block): Do use an EH spec block for a
1049         lambda op().
1050
1051         PR c++/49058
1052         * call.c (splice_viable): Be strict in templates.
1053
1054         PR c++/47336
1055         * error.c (dump_template_bindings): Suppress access control.
1056
1057         PR c++/47544
1058         * pt.c (instantiate_decl): Handle =default.
1059
1060         PR c++/48617
1061         * pt.c (invalid_nontype_parm_type_p): Allow DECLTYPE_TYPE.
1062
1063 2011-05-23  Nathan Froyd  <froydnj@codesourcery.com>
1064
1065         * call.c (build_over_call): Tweak call to check_function_arguments.
1066         * typeck.c (cp_build_function_call_vec): Likewise.
1067
1068 2011-05-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
1069
1070         PR c++/18016
1071         * init.c (perform_member_init): Check for self-initialization.
1072
1073 2011-05-22  Jason Merrill  <jason@redhat.com>
1074
1075         PR c++/48647
1076         * typeck.c (composite_pointer_type_r): Return error_mark_node
1077         on error in SFINAE context.
1078
1079 2011-05-20  Jason Merrill  <jason@redhat.com>
1080
1081         PR c++/48945
1082         * decl.c (grokdeclarator): Don't add set const function-cv-qual
1083         for constexpr fns to memfn_quals, just add it to the type.
1084         (revert_static_member_fn): Don't complain about quals.
1085         (check_static_quals): New.
1086         (grokfndecl): Call it.
1087         (start_preparsed_function): Don't call revert_static_member_fn.
1088
1089         PR c++/48945
1090         * decl.c (revert_static_member_fn): Ignore const on constexpr fn.
1091
1092         PR c++/48780
1093         * cvt.c (type_promotes_to): Don't promote scoped enums.
1094
1095         PR c++/49066
1096         * decl.c (duplicate_decls): Preserve DECL_DELETED_FN.
1097
1098         PR c++/48873
1099         * tree.c (stabilize_expr): Fix typo.
1100
1101         DR 1073
1102         PR c++/49082
1103         * typeck.c (comp_except_specs): noexcept(false) is not compatible
1104         with throw(type-list).
1105         * typeck2.c (merge_exception_specifiers): noexcept(false)
1106         beats any more limited specification.
1107
1108         PR c++/24163
1109         PR c++/29131
1110         * pt.c (tsubst_copy_and_build) [CALL_EXPR]: Avoid repeating
1111         unqualified lookup.
1112         * semantics.c (perform_koenig_lookup): Add complain parm.
1113         * cp-tree.h: Adjust.
1114         * parser.c (cp_parser_postfix_expression): Adjust.
1115         (cp_parser_perform_range_for_lookup): Adjust.
1116
1117 2011-05-20  Jason Merrill  <jason@redhat.com>
1118
1119         * semantics.c (finish_call_expr): SET_EXPR_LOCATION.
1120
1121 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
1122
1123         * Make-lang.in (GXX_OBJS): Remove intl.o and version.o.
1124
1125 2011-05-19  Jakub Jelinek  <jakub@redhat.com>
1126
1127         PR c++/49043
1128         * decl.c (check_omp_return): Stop searching on sk_function_parms.
1129
1130         PR c++/48869
1131         * method.c (get_dtor, get_copy_ctor): Add COMPLAIN argument,
1132         pass it down to locate_fn_flags.
1133         * cp-tree.h (get_dtor, get_copy_ctor): Adjust prototypes.
1134         * semantics.c (cxx_omp_create_clause_info): Adjust callers.
1135         * cp-gimplify.c: Include splay-tree.h.
1136         (splay_tree_compare_decl_uid, omp_var_to_track,
1137         omp_cxx_notice_variable): New functions.
1138         (struct cp_genericize_omp_taskreg): New type.
1139         (struct cp_genericize_data): Add omp_ctx field.
1140         (cp_genericize_r): Attempt to determine implicitly determined
1141         firstprivate class type variables.
1142         (cp_genericize): Clear omp_ctx.
1143         * Make-lang.in (cp/cp-gimplify.o): Depend on $(SPLAY_TREE_H).
1144
1145 2011-05-18  Jason Merrill  <jason@redhat.com>
1146
1147         PR c++/48948
1148         PR c++/49015
1149         * class.c (finalize_literal_type_property): Do check
1150         for constexpr member functions of non-literal class.
1151         (finish_struct): Don't call check_deferred_constexpr_decls.
1152         * cp-tree.h: Don't declare it.
1153         (DECL_DEFERRED_CONSTEXPR_CHECK): Remove.
1154         * decl.c (grok_special_member_properties): Don't check it
1155         (grokfnedcl): Don't call validate_constexpr_fundecl.
1156         (start_preparsed_function): Do call it.
1157         * pt.c (tsubst_decl): Don't call it.
1158         (instantiate_class_template_1): Don't call
1159         check_deferred_constexpr_decls.
1160         * semantics.c (literal_type_p): Check for any incompleteness.
1161         (ensure_literal_type_for_constexpr_object): Likewise.
1162         (is_valid_constexpr_fn): Revert deferral changes.
1163         (validate_constexpr_fundecl): Likewise.
1164         (register_constexpr_fundef): Likewise.
1165         (check_deferred_constexpr_decls): Remove.
1166
1167 2011-05-16  Jason Merrill  <jason@redhat.com>
1168
1169         PR c++/48969
1170         * pt.c (deduction_tsubst_fntype): Use a VEC initially.
1171
1172 2011-05-15  Paolo Carlini  <paolo.carlini@oracle.com>
1173
1174         * cxx-pretty-print.c: Update comment.
1175         * semantics.c (trait_expr_value, finish_trait_expr):
1176         Reorder the cases.
1177         * parser.c (cp_parser_primary_expression): Likewise.
1178
1179 2011-05-15  Jonathan Wakely  <jwakely.gcc@gmail.com>
1180
1181         PR c++/48994
1182         * parser.c (cp_parser_perform_range_for_lookup): Call complete_type.
1183
1184 2011-05-13  Ville Voutilainen  <ville.voutilainen@gmail.com>
1185
1186         Implement final on class.
1187         * class.c (check_bases): Diagnose derivation from a final class.
1188         * cp-tree.h (lang_type_class): Add is_final and adjust dummy.
1189         (CLASSTYPE_FINAL): New.
1190         * parser.c (cp_parser_class_head): Parse class-virt-specifier, set
1191         CLASSTYPE_FINAL.
1192         * pt.c (instantiate_class_template_1): Copy CLASSTYPE_FINAL.
1193
1194 2011-05-13  Jason Merrill  <jason@redhat.com>
1195
1196         PR c++/48969
1197         * pt.c (deduction_tsubst_fntype): New.
1198         (fn_type_unification): Use it.
1199         (init_template_processing): Initialize hash table.
1200         (print_template_statistics): Print hash table stats.
1201
1202         * call.c (build_op_call): Use timevar_cond_start/stop.
1203         (build_user_type_conversion): Likewise.
1204
1205 2011-05-12  Jason Merrill  <jason@redhat.com>
1206
1207         * cp-tree.h (DECL_DEFERRED_CONSTEXPR_CHECK): New.
1208         * semantics.c (validate_constexpr_fundecl): Set it.
1209         (check_deferred_constexpr_decls): Clear it.
1210         (register_constexpr_fundef): Make sure it isn't set.
1211         * decl.c (grok_special_member_properties): Check it.
1212
1213 2011-05-11  Jason Merrill  <jason@redhat.com>
1214
1215         PR c++/48948
1216         * semantics.c (validate_constexpr_fundecl): Defer checking if
1217         an argument type is being defined.
1218         (is_valid_constexpr_fn): Add defer_ok parm.
1219         (cxx_eval_call_expression): Adjust.
1220         (check_deferred_constexpr_decls): New.
1221         (literal_type_p): Make sure type isn't being defined.
1222         (ensure_literal_type_for_constexpr_object): Handle type being defined.
1223         * cp-tree.h: Declare check_deferred_constexpr_decls.
1224         * decl.c (grokfndecl): Call validate_constexpr_fundecl here.
1225         (start_preparsed_function, cp_finish_decl): Not here.
1226         * class.c (finalize_literal_type_property): Don't call
1227         validate_constexpr_fundecl.
1228         (finish_struct): Call check_deferred_constexpr_decls.
1229         * pt.c (tsubst_decl): Call validate_constexpr_fundecl.
1230         (instantiate_class_template): Call check_deferred_constexpr_decls.
1231
1232         * semantics.c (validate_constexpr_fundecl): Check DECL_TEMPLATE_INFO
1233         rather than DECL_TEMPLATE_INSTANTIATION.
1234         (cxx_eval_call_expression): Likewise.
1235
1236         * semantics.c (register_constexpr_fundef): Add to hash table here.
1237         (validate_constexpr_fundecl): Not here.
1238
1239         * decl.c (grokdeclarator): Only set DECL_DECLARED_CONSTEXPR_P once.
1240
1241         * pt.c (build_non_dependent_expr): Don't check null_ptr_cst_p,
1242         do call maybe_constant_value in C++0x mode.
1243         * semantics.c (cxx_eval_constant_expression): Handle TEMPLATE_DECL.
1244
1245         PR c++/48745
1246         * pt.c (value_dependent_expr_p): Handle CONSTRUCTOR.
1247
1248 2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>
1249
1250         * cp-tree.h (TYPENAME_TYPE_FULLNAME, TYPEOF_TYPE_EXPR): Use
1251         TYPE_VALUES_RAW.
1252         (UNDERLYING_TYPE_TYPE, DECLTYPE_TYPE_EXPR): Likewise.
1253         (DECLTYPE_TYPE_ID_EXPR_OR_MEMBER_ACCESS_P): Likewise.
1254         (TEMPLATE_TYPE_PARM_INDEX): Likewise.
1255
1256 2011-05-10  Jason Merrill  <jason@redhat.com>
1257
1258         PR c++/48930
1259         * class.c (type_build_ctor_call): New.
1260         * cp-tree.h: Declare it.
1261         * decl.c (check_initializer): Use it instead of
1262         TYPE_NEEDS_CONSTRUCTING.
1263         * init.c (build_value_init, build_value_init_noctor): Likewise.
1264         (perform_member_init, expand_aggr_init_1, build_new_1): Likewise.
1265         (build_vec_init): Likewise.
1266         * typeck2.c (process_init_constructor_array): Likewise.
1267         (process_init_constructor_record): Likewise.
1268
1269         PR c++/48736
1270         * pt.c (tsubst_copy_and_build): Handle substitution of a pack
1271         expansion producing another expansion.
1272
1273 2011-05-10  Ville Voutilainen  <ville.voutilainen@gmail.com>
1274
1275         Fixes for override/final.
1276         * class.c (check_for_override): Diagnose final on a nonvirtual
1277         member function, diagnose override for a virtual with no matching
1278         override. Don't fiddle around with DECL_VINDEX.
1279
1280 2011-05-10  Nathan Froyd  <froydnj@codesourcery.com>
1281
1282         * cp-tree.def (EXPR_PACK_EXPANSION): Add an operand.
1283         * cp-objcp-common.c (cp_common_init_ts): Mark it as TS_TYPED.
1284         * cp-tree.h (PACK_EXPANSION_PARAMETER_PACKS): Use the new
1285         operand of EXPR_PACK_EXPANSION.
1286         (cp_tree_operand_length): Declare.
1287         * tree.c (cp_tree_operand_length): Define.
1288         (cp_tree_equal): Call it.
1289         * pt.c (value_dependent_expr_P): Likewise.
1290         * mangle.c (write_expression): Likewise.
1291
1292 2011-05-09  Paolo Carlini  <paolo.carlini@oracle.com>
1293
1294         PR c++/48737
1295         PR c++/48744
1296         * decl.c (reshape_init): Take a complain parameter and do
1297         not call error if tf_error is not set.
1298         (check_initializer, reshape_init_r, reshape_init_array,
1299         reshape_init_array_1, reshape_init_vector, reshape_init_class):
1300         Adjust.
1301         * typeck2.c (digest_init_r): Take a complain parameter and
1302         pass it to convert_for_initialization.
1303         (digest_init, digest_init_flags, process_init_constructor_array,
1304         process_init_constructor_record, process_init_constructor_union,
1305         process_init_constructor, digest_init_r): Adjust.
1306         * init.c (expand_default_init, build_new_1): Likewise.
1307         * typeck.c (cp_build_modify_expr): Likewise.
1308         * decl2.c (grokfield): Likewise.
1309         * call.c (convert_like_real, convert_default_arg): Likewise.
1310         * semantics.c (finish_compound_literal): Pass complain to
1311         reshape_init and digest_init.
1312         * cp-tree.h: Adjust declarations.
1313
1314 2011-05-07  Fabien Chêne  <fabien@gcc.gnu.org>
1315
1316         PR c++/48859
1317         * init.c (diagnose_uninitialized_cst_or_ref_member_1): stop the
1318         recursion if there is user defined constructor.
1319
1320 2011-05-09  Jason Merrill  <jason@redhat.com>
1321
1322         PR c++/34772
1323         * decl.c (initialize_local_var): Use DECL_INITIAL for simple
1324         initialization.
1325
1326 2011-05-08  Ville Voutilainen  <ville.voutilainen@gmail.com>
1327
1328         Implement final/override for member functions.
1329         * class.c (check_for_override): Check for DECL_OVERRIDE_P.
1330         * cp-tree.h (DECL_OVERRIDE_P, DECL_FINAL_P): New.
1331         (cp_virt_specifiers, enum virt_specifier): New.
1332         * decl.c (set_virt_specifiers): New.
1333         (grokdeclarator): Use them. Diagnose virt-specifiers on non-fields.
1334         * parser.c (make_call_declarator): add virt-specifiers parameter.
1335         (cp_parser_lambda_declarator_opt): Adjust.
1336         (cp_parser_direct_declarator): Likewise.
1337         (cp_parser_virt_specifier_seq_opt): New.
1338         * search.c (check_final_overrider): Diagnose attempts to override
1339         a final member function.
1340
1341 2011-05-09  Dodji Seketeli  <dodji@redhat.com>
1342
1343         PR c++/48574
1344         * class.c (fixed_type_or_null): Use type_dependent_p_push to test
1345         if the instance has a dependent initializer.
1346
1347 2011-05-08  Paolo Carlini  <paolo.carlini@oracle.com>
1348
1349         PR c++/48816
1350         * cxx-pretty-print.c (pp_cxx_template_declaration): Remove
1351         effectively unused variable.
1352
1353 2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>
1354
1355         * name-lookup.h (global_bindings_p): Adjust prototype.
1356         * name-lookup.c (global_bindings_p): Return bool.
1357
1358 2011-05-06  Jason Merrill  <jason@redhat.com>
1359
1360         * decl.c (stabilize_save_expr_r): Set *walk_subtrees as
1361         appropriate.
1362
1363         PR c++/48909
1364         * semantics.c (cxx_eval_conditional_expression): Check
1365         integer_zerop instead.
1366         (potential_constant_expression_1): Likewise.
1367
1368         PR c++/48911
1369         * semantics.c (cxx_eval_array_reference): Handle implicit
1370         initializers.
1371
1372 2011-05-06  Nathan Froyd  <froydnj@codesourcery.com>
1373
1374         * cp-tree.h (type_of_this_parm, class_of_this_parm): New functions.
1375         * call.c (standard_conversion): Call class_of_this_parm.
1376         * cxx-pretty-print.c (pp_cxx_implicit_parameter_type): Likewise.
1377         (pp_cxx_direct_abstract_declarator): Likewise.
1378         * decl2.c (change_return_type): Likewise.
1379         (cp_reconstruct_complex_type): Likewise.
1380         * error.c (dump_type_suffix, dump_function_decl): Likewise.
1381         * mangle.c (write_function_type): Likewise.
1382         * pt.c (unify): Likewise.
1383         * typeck.c (merge_types, type_memfn_quals): Likewise.
1384         * decl.c (build_this_parm): Call type_of_this_parm.
1385
1386 2011-05-06  Dodji Seketeli  <dodji@redhat.com>
1387
1388         PR c++/48838
1389         * cp-tree.h (non_static_member_function_p): Declare new function.
1390         * tree.c (non_static_member_function_p): Define it.
1391         * semantics.c (finish_call_expr): Use it.
1392
1393 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
1394
1395         * decl.c (finish_case_label): Omit the loc argument to
1396         build_case_label.
1397
1398 2011-05-05  Jason Merrill  <jason@redhat.com>
1399
1400         * cp-tree.h (REFERENCE_REF_P): Just check the type.
1401         * cvt.c (convert_from_reference): Adjust.
1402         * pt.c (build_non_dependent_expr): Adjust.
1403         * semantics.c (finish_offsetof): Adjust.
1404         * tree.c (lvalue_kind): Use it.
1405
1406         PR c++/48873
1407         * tree.c (stabilize_expr): Don't make gratuitous copies of classes.
1408
1409 2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>
1410
1411         * decl.c (start_preparsed_function): Do not set
1412         dont_save_pending_sizes_p.
1413
1414 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
1415
1416         * parser.c (cp_parser_objc_method_definition_list): Update call to
1417         objc_start_method_definition.
1418
1419 2011-05-04  Jason Merrill  <jason@redhat.com>
1420
1421         PR c++/48749
1422         * class.c (resolves_to_fixed_type_p): Don't look closely
1423         in templates.
1424
1425 2011-05-03  Paolo Carlini  <paolo.carlini@oracle.com>
1426
1427         PR c++/28501
1428         * call.c (add_builtin_candidate): Handle REALPART_EXPR and
1429         IMAGPART_EXPR.
1430
1431 2011-05-02  Lawrence Crowl  <crowl@google.com>
1432
1433         * decl.c: (push_local_name): Change TV_NAME_LOOKUP to start/stop.
1434         (poplevel): Refactor POP_TIMEVAR_AND_RETURN to plain code.
1435         Change TV_NAME_LOOKUP to start/stop.
1436         (define_label): Refactor timevar calls out to a wrapper function.
1437         Change TV_NAME_LOOKUP to start/stop.
1438         (xref_tag): Likewise.
1439         (lookup_label): Refactor timevar calls out to a wrapper function.
1440         Change TV_NAME_LOOKUP to start_cond/stop_cond.
1441
1442         * pt.c: (instantiate_class_template): Add a wrapper to push/pop new
1443         TV_TEMPLATE_INST.
1444         (instantiate_template): Add a wrapper to push/pop new TV_TEMPLATE_INST.
1445         (lookup_template_class): Refactor timevar calls out to a wrapper
1446         function.  Change use of TV_NAME_LOOKUP to TV_TEMPLATE_INST.
1447         (instantiate_decl): Change TV_PARSE to TV_TEMPLATE_INST.
1448
1449         * name-lookup.c: (store_bindings): Change TV_NAME_LOOKUP to start/stop.
1450         (poplevel_class): Change TV_NAME_LOOKUP to start_cond/stop_cond.
1451         (push_namespace): Likewise.
1452         (pop_nested_namespace): Likewise.
1453         (pushdecl_namespace_level): Likewise.
1454         (store_class_bindings): Likewise.
1455         (push_to_top_level): Likewise.
1456         (identifier_type_value): Refactor timevar calls out to a wrapper
1457         function.  Change TV_NAME_LOOKUP to start/stop.
1458         (find_binding): Likewise.
1459         (push_using_decl): Likewise.
1460         (lookup_arg_dependent): Likewise.
1461         (push_using_directive): Likewise.
1462         (qualified_lookup_using_namespace): Refactor POP_TIMEVAR_AND_RETURN
1463         to plain code.  Change TV_NAME_LOOKUP to start/stop.
1464         (lookup_type_current_level): Likewise.  Refactor inner return to
1465         break.
1466         (pushdecl_class_level): Refactor POP_TIMEVAR_AND_RETURN to plain
1467         code.  Change TV_NAME_LOOKUP to start_cond/stop_cond.
1468         (pushdecl_top_level_1): Likewise.
1469         (lookup_using_namespace): Likewise.
1470         (pushdecl_with_scope): Refactor timevar calls out to a wrapper
1471         function.  Change TV_NAME_LOOKUP to start_cond/stop_cond.
1472         (push_overloaded_decl): Likewise.
1473         (push_class_level_binding): Likewise.
1474         (namespace_binding): Likewise.
1475         (set_namespace_binding): Likewise.
1476         (supplement_binding): Likewise.
1477         (unqualified_namespace_lookup): Likewise.
1478         (lookup_name_real): Likewise.
1479         (lookup_type_scope): Likewise.
1480         (namespace_ancestor): Likewise.
1481         (lookup_name_innermost_nonclass_level): Likewise.
1482         (pushtag): Likewise.
1483         (pop_from_top_level): Likewise.
1484         (pushdecl_maybe_friend): Refactor timevar calls out to a wrapper
1485         function.  Change TV_NAME_LOOKUP to start_cond/stop_cond.  Wrap long
1486         lines.
1487         (add_using_namespace): Refactor timevar calls out to a wrapper
1488         function.  Change TV_NAME_LOOKUP to start_cond/stop_cond.  Bypass
1489         wrapper on call to self.
1490
1491         * decl2.c: (cp_write_global_declarations):  Add start/stop of
1492         new TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_CHECK_DBGINFO.
1493         Remove push/pop calls to TV_VARCONST.
1494
1495         * parser.c: Add include of "timevar.h".
1496         (cp_parser_explicit_instantiation): Add push/pop calls to
1497         TV_TEMPLATE_INST.
1498         (cp_parser_enum_specifier): Add push/pop calls to new TV_PARSE_ENUM.
1499         (cp_parser_class_specifier): Add wrapper to add push/pop calls to
1500         TV_PARSE_STRUCT.
1501         (cp_parser_function_definition_from_specifiers_and_declarator): Add
1502         push/pop calls to new TV_PARSE_FUNC or TV_PARSE_INLINE.
1503         (cp_parser_late_parsing_for_member):  Add push/pop calls to
1504         new TV_PARSE_INMETH.
1505
1506         * call.c: Add include of "timevar.h".
1507         (convert_class_to_reference): Wrap and add push/pop calls to 
1508         TV_OVERLOAD.
1509         (build_op_call): Likewise.
1510         (build_conditional_expr): Likewise.
1511         (build_new_op): Likewise.
1512         (build_new_method_call): Likewise.
1513         (build_user_type_conversion): Reorganize to single return and add
1514         push/pop calls to TV_OVERLOAD.
1515         (perform_overload_resolution): Likewise.
1516
1517         * Make-lang.in: Add dependence of call.o and parser.o on $(TIMEVAR_H).
1518
1519 2011-05-02  Jason Merrill  <jason@redhat.com>
1520
1521         * tree.c (build_vec_init_expr): Take complain parm.
1522         (build_vec_init_elt): Likewise.  Free arg vector.
1523         (diagnose_non_constexpr_vec_init, build_array_copy): Adjust.
1524         * cp-tree.h (VEC_INIT_EXPR_SLOT): Use VEC_INIT_EXPR_CHECK.
1525         (VEC_INIT_EXPR_INIT): Likewise.
1526         Adjust build_vec_init_expr declaration.
1527         * init.c (perform_member_init): Adjust.
1528
1529         Revert:
1530         PR c++/40975
1531         * cp-tree.def (VEC_INIT_EXPR): Add third operand.
1532         * cp-tree.h (VEC_INIT_EXPR_NELTS): New.
1533         * cp-gimplify.c (cp_gimplify_expr) [VEC_INIT_EXPR]: Handle it.
1534         * tree.c (build_vec_init_expr): Handle getting pointer/nelts.
1535         (build_vec_init_elt): Don't expect an array type.
1536         (build_array_copy): Adjust.
1537         * init.c (perform_member_init): Adjust.
1538         (build_new_1): Use build_vec_init_expr.
1539
1540         PR c++/48834
1541         * tree.c (build_vec_init_expr): Set TREE_SIDE_EFFECTS.
1542         Protect an explicit target.
1543
1544         PR c++/48446
1545         * decl.c (stabilize_save_expr_r, stabilize_vla_size): New.
1546         (compute_array_index_type): Revert earlier 48446 changes.
1547         (grokdeclarator): Use stabilize_vla_size.
1548
1549 2011-05-02  Dmitry Gorbachev  <d.g.gorbachev@gmail.com>
1550             Eric Botcazou <ebotcazou@adacore.com>
1551
1552         * parser.c (cp_parser_init_declarator): Set pushed_scope to NULL_TREE
1553         instead of inappropriate zero values.
1554
1555 2011-05-02  Paolo Carlini  <paolo.carlini@oracle.com>
1556
1557         PR c++/47969
1558         * decl.c (compute_array_index_type): Check build_expr_type_conversion
1559         return value for NULL_TREE.
1560
1561 2011-04-29  Paolo Carlini  <paolo.carlini@oracle.com>
1562
1563         PR c++/48606
1564         * init.c (perform_member_init): Check build_value_init return
1565         value for error_mark_node.
1566
1567 2011-04-29  Diego Novillo  <dnovillo@google.com>
1568             Le-Chun Wu  <lcwu@google.com>
1569
1570         * call.c (conversion_null_warnings): Also handle assignments
1571         when warning about NULL conversions.
1572
1573 2011-04-29  Le-Chun Wu  <lcwu@google.com>
1574
1575         * cp-tree.h (LOOKUP_EXPLICIT_TMPL_ARGS): Define.
1576         * call.c (build_new_function_call): Set it for TEMPLATE_ID_EXPRs.
1577         (build_over_call): Use it to determine whether to emit a NULL
1578         warning for template function instantiations.
1579         (build_new_method_call): Set LOOKUP_EXPLICIT_TMPL_ARGS if
1580         EXPLICIT_TARGS is set.
1581
1582 2011-04-29  Nicola Pero  <nicola.pero@meta-innovation.com>,
1583             Mike Stump <mikestump@comcast.net>
1584
1585         * Make-lang.in ($(srcdir)/cp/cfns.h): Enable the dependency only
1586         in maintainer mode.  Use the --output-file option of gperf instead
1587         of > to prevent creating an empty cp/cfns.h when gperf is not
1588         available.
1589
1590 2011-04-28  Paolo Carlini  <paolo.carlini@oracle.com>
1591
1592         PR c++/48798
1593         * semantics.c (finish_base_specifier): cv-qualified base class
1594         is fine, per DR 484.
1595
1596 2011-04-28  Dodji Seketeli  <dodji@redhat.com>
1597
1598         PR c++/48656
1599         * semantics.c (finish_call_expr): Don't forget BASELINK nodes when
1600         considering call expressions involving a member function.
1601
1602 2011-04-28  Paolo Carlini  <paolo.carlini@oracle.com>
1603
1604         PR c++/48530
1605         * tree.c (build_cplus_new): Check build_target_expr return
1606         value for error_mark_node.
1607
1608 2011-04-28  Paolo Carlini  <paolo.carlini@oracle.com>
1609
1610         PR c++/48771
1611         * semantics.c (literal_type_p): Reference types are literal types,
1612         per the FDIS.
1613         (valid_type_in_constexpr_fundecl_p): Remove.
1614         (is_valid_constexpr_fn): Adjust.
1615
1616 2011-04-27  Jason Merrill  <jason@redhat.com>
1617
1618         PR libstdc++/48760
1619         Implement list-initialization of _Complex.
1620         * decl.c (reshape_init_r): Allow {real,imag} for _Complex.
1621         (check_initializer): Likewise.
1622         * call.c (build_complex_conv): New.
1623         (implicit_conversion): Call it.
1624         (convert_like_real): Handle it.
1625         * typeck2.c (check_narrowing): Handle it.
1626
1627         * init.c (build_vec_delete_1): Look for sfk_deleting_destructor to
1628         decide whether to delete.
1629         (build_vec_init): Pass sfk_complete_destructor.
1630
1631         PR c++/40975
1632         * cp-tree.def (VEC_INIT_EXPR): Add third operand.
1633         * cp-tree.h (VEC_INIT_EXPR_NELTS): New.
1634         * cp-gimplify.c (cp_gimplify_expr) [VEC_INIT_EXPR]: Handle it.
1635         * tree.c (build_vec_init_expr): Handle getting pointer/nelts.
1636         (build_vec_init_elt): Don't expect an array type.
1637         (build_array_copy): Adjust.
1638         * init.c (perform_member_init): Adjust.
1639         (build_new_1): Use build_vec_init_expr.
1640
1641         * class.c (resolve_address_of_overloaded_function): Don't
1642         change OVERLOAD to TREE_LIST.
1643         * pt.c (print_candidates_1): Remove nonsensical assert.
1644
1645         PR c++/48046
1646         * parser.c (cp_parser_diagnose_invalid_type_name): Commit
1647         to tentative parse sooner.
1648
1649 2011-04-26  Jason Merrill  <jason@redhat.com>
1650
1651         PR c++/42687
1652         * parser.c (cp_parser_primary_expression): Set *idk to
1653         CP_ID_KIND_NONE for a parenthesized identifier.
1654
1655         * ptree.c (cxx_print_type) [TYPENAME_TYPE]: Dump fullname.
1656         (cxx_print_identifier): Correct indentation.
1657
1658         PR c++/48530
1659         * decl.c (cxx_maybe_build_cleanup): Add complain parm.
1660         * tree.c (force_target_expr): Add complain parm.
1661         (build_target_expr_with_type): Likewise.
1662         (get_target_expr_sfinae): Split out.
1663         (build_vec_init_expr, bot_manip): Adjust.
1664         * init.c (build_vec_delete, build_vec_delete_1): Add complain parm.
1665         (build_delete, build_dtor_call): Likewise.
1666         (perform_direct_initialization_if_possible): Adjust.
1667         (build_vec_init): Handle error return.
1668         * cvt.c (force_rvalue): Add complain parm.
1669         Call build_special_member_call directly.
1670         * decl2.c (delete_sanity): Add complain parm.
1671         (build_cleanup): Adjust.
1672         * pt.c (tsubst_copy_and_build, tsubst_expr): Adjust.
1673         * semantics.c (finish_stmt_expr_expr): Adjust.
1674         (finish_compound_literal): Adjust.
1675         * parser.c (cp_parser_delete_expression): Adjust.
1676         * typeck2.c (build_functional_cast): Adjust.
1677         * cp-tree.h: Adjust.
1678
1679 2011-04-26  Martin Jambor  <mjambor@suse.cz>
1680
1681         * class.c (cp_fold_obj_type_ref): Remove.
1682         * cp-tree.h (cp_fold_obj_type_ref): Remove declaration.
1683
1684 2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>
1685
1686         * cp-tree.def: Add a new UNDERLYING_TYPE tree code.
1687         * cp-tree.h (enum cp_trait_kind): Add CPTK_UNDERLYING_TYPE, tidy.
1688         (UNDERLYING_TYPE_TYPE): Add.
1689         * cp-objcp-common.c (cp_common_init_ts): Mark UNDERLYING_TYPE
1690         as TS_COMMON.
1691         * parser.c (cp_lexer_next_token_is_decl_specifier_keyword,
1692         cp_parser_simple_type_specifier): Handle UNDERLYING_TYPE.
1693         (cp_parser_trait_expr): Deal with RID_UNDERLYING_TYPE; tidy.
1694         * semantics.c (finish_underlying_type): New.
1695         * typeck.c (structural_comptypes): Handle UNDERLYING_TYPE.
1696         * error.c (dump_type, dump_type_prefix, dump_type_suffix): Likewise.
1697         * cxx-pretty-print.c (p_cxx_type_id): Likewise.
1698         * tree.c (cp_walk_subtrees): Likewise.
1699         * pt.c (for_each_template_parm_r, tsubst, unify,
1700         dependent_type_p_r): Likewise.
1701         * mangle.c (write_type): Sorry for __underlying_type.
1702
1703 2011-04-25  Jason Merrill  <jason@redhat.com>
1704
1705         PR c++/48707
1706         * decl.c (type_dependent_init_p): New.
1707         (cp_finish_decl): Check it.
1708         * pt.c (any_type_dependent_elements_p): New.
1709         * cp-tree.h: Declare it.
1710
1711 2011-04-20  Jason Merrill  <jason@redhat.com>
1712
1713         * semantics.c (finish_compound_literal): Don't put an array
1714         with a dtor in a static variable.
1715
1716         * call.c (build_over_call): Handle trivial dtor.
1717
1718         * search.c (lookup_fnfields_slot): Call complete_type.
1719
1720         PR c++/48594
1721         * decl2.c (build_offset_ref_call_from_tree): Move
1722         non-dependency of object outside condition.
1723
1724         PR c++/48657
1725         * decl.c (cp_finish_decl): Simplify template handling.
1726
1727 2011-04-20  Jim Meyering  <meyering@redhat.com>
1728
1729         * tree.c (cxx_printable_name_internal): Remove useless if-before-free.
1730
1731 2011-04-19  Jason Merrill  <jason@redhat.com>
1732
1733         PR c++/46304
1734         * typeck.c (cp_build_binary_op): Fold COMPLEX_EXPR.
1735
1736         PR c++/45267
1737         * decl.c (duplicate_decls): Keep always_inline attribute
1738         in sync with DECL_DISREGARD_INLINE_LIMITS.
1739
1740 2011-04-18  Jason Merrill  <jason@redhat.com>
1741
1742         PR c++/48569
1743         * typeck2.c (build_functional_cast): Handle VOID_TYPE.
1744
1745         PR c++/48537
1746         * init.c (build_value_init): Handle UNION_TYPE the same.
1747
1748 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
1749
1750         PR c++/48632
1751         * parser.c (cp_parser_omp_for_loop): Don't use cp_parser_omp_for_incr
1752         for type dependent pointers.
1753
1754 2011-04-18  Jim Meyering  <meyering@redhat.com>
1755
1756         * pt.c (type_unification_real): Fix typo in comment: s/in in/in/.
1757
1758 2011-04-17  Jan Hubicka  <jh@suse.cz>
1759
1760         * semantics.c (finish_goto_stmt): Do set UNINLINABLE flag on computed
1761         gotos.
1762
1763 2011-04-17  Jason Merrill  <jason@redhat.com>
1764
1765         PR c++/48531
1766         * typeck2.c (build_functional_cast): Disallow array type.
1767
1768         * tree.c (get_target_expr): Handle VEC_INIT_EXPR.
1769
1770 2011-04-17  Jan Hubicka  <jh@suse.cz>
1771
1772         * class.c (cp_fold_obj_type_ref): Drop vtable_method.
1773
1774 2011-04-15  Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
1775
1776         Implement N3271
1777         * parser.c (cp_convert_range_for): Split into
1778         cp_parser_perform_range_for_lookup.
1779         (cp_parser_perform_range_for_lookup): New.
1780         (cp_parser_range_for_member_function): New.
1781         (cp_parser_for_init_statement): Correct error message.
1782         * semantics.c (finish_call_expr): Accept COMPONENT_REF.
1783
1784 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
1785
1786         * parser.c (cp_parser_objc_protocol_declaration): Updated for
1787         change from objc_declare_protocols() to objc_declare_protocol().
1788
1789 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
1790
1791         PR objc++/48479
1792         * typeck.c (cxx_mark_addressable) [CONST_DECL]: Mark addressable
1793         and return immediately.
1794
1795 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
1796
1797         * cp-tree.def (SWITCH_STMT): Add an extra operand.
1798         * cp-objcp-common.c (cp_common_init_ts): Mark it as TS_TYPED.
1799         * cp-tree.h (SWITCH_STMT_SCOPE): Define.
1800         * semantics.c (begin_switch__stmt): Pass scope to build_stmt.
1801         (finish_switch_stmt): Use SWITCH_STMT_SCOPE instead of TREE_CHAIN.
1802
1803 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
1804
1805         * cp-tree.def (IF_STMT): Add an extra operand.
1806         * cp-objcp-common.c (cp_common_init_ts): Mark it as TS_TYPED.
1807         * cp-tree.h (IF_SCOPE): Define.
1808         * semantics.c (begin_if_stmt): Pass scope to build_stmt.
1809         (finish_if_stmt): Use IF_SCOPE instead of TREE_CHAIN.
1810
1811 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
1812
1813         * cp-tree.def (FOR_STMT, RANGE_FOR_STMT): Add an extra operand.
1814         * cp-objcp-common.c (cp_common_init_ts): Mark them as TS_TYPED.
1815         * cp-tree.h (FOR_SCOPE, RANGE_FOR_SCOPE): Define.
1816         * semantics.c (begin_for_stmt): Pass an extra arg to build_stmt.
1817         Use FOR_SCOPE instead of TREE_CHAIN.
1818         (begin_range_for_stmt): Likewise, with RANGE_FOR_SCOPE.
1819         (finish_for_stmt): Likewise.
1820
1821 2011-04-14  Jason Merrill  <jason@redhat.com>
1822
1823         * parser.c (cp_parser_postfix_expression): Fix flags passed to
1824         build_new_method_call.
1825         * semantics.c (finish_call_expr): Likewise.
1826
1827         PR c++/48531
1828         * init.c (build_value_init_noctor): Check complain consistently.
1829
1830         PR c++/48557
1831         * typeck.c (cp_build_binary_op): Don't decay void operands.
1832
1833         PR c++/48446
1834         * decl.c (compute_array_index_type): Use get_temp_regvar instead
1835         of variable_size.
1836         * init.c (get_temp_regvar): No longer static.
1837         * cp-tree.h: Declare it.
1838
1839 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
1840
1841         * parser.c (cp_parser_objc_class_declaration): Updated for change
1842         in objc_declare_class().
1843
1844 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
1845
1846         * decl.c (poplevel): Use block_chainon.
1847
1848 2011-04-13  Jason Merrill  <jason@redhat.com>
1849
1850         PR c++/48594
1851         * decl2.c (build_offset_ref_call_from_tree): Fix calling a functor
1852         or pointer to (non-member) function.
1853
1854 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
1855
1856         PR c++/48570
1857         * semantics.c (cxx_eval_array_reference): Handle reading from
1858         wchar_t, char16_t and char32_t STRING_CST.
1859
1860 2011-04-13  Dodji Seketeli  <dodji@redhat.com>
1861
1862         PR c++/48574
1863         * class.c (fixed_type_or_null): We cannot determine the dynamic
1864         type of a reference variable if its initializer is dependent.
1865
1866 2011-04-13  Jason Merrill  <jason@redhat.com>
1867
1868         PR c++/48581
1869         * pt.c (tsubst_copy_and_build) [CALL_EXPR]: Don't complain about
1870         unqualified lookup failing if we're still in a template.
1871
1872 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
1873
1874         * cp-lang.c (cp_init_ts): Call cp_common_init_ts.  Move
1875         tree_contains_struct initialization to...
1876         * cp-objcp-common.c (cp_common_init_ts): ...here.  Use MARK_*
1877         macros.
1878         * cp-objcp-common.h (cp_common_init_ts): Declare.
1879         * cp-tree.h (union lang_tree_node): Check for TS_COMMON before
1880         calling TREE_CHAIN.
1881
1882 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
1883
1884         * parser.c (cp_parser_objc_message_expression): Updated call
1885         to objc_build_message_expr.
1886
1887 2011-04-12  Martin Jambor  <mjambor@suse.cz>
1888
1889         * class.c (cp_fold_obj_type_ref): Call cgraph_get_node instead of
1890         cgraph_get_create_node.
1891         * decl2.c (cp_write_global_declarations): Call cgraph_get_node
1892         instead of cgraph_get_create_node.
1893         * method.c (make_alias_for_thunk): Call cgraph_get_node
1894         instead of cgraph_get_create_node, assert it returns non-NULL.
1895         (use_thunk): Likewise.
1896         * optimize.c (maybe_clone_body): Call cgraph_same_body_alias only
1897         when flag_syntax_only is not set.  Call cgraph_get_node instead of
1898         cgraph_get_create_node.
1899         (maybe_clone_body): Call cgraph_get_node instead of
1900         cgraph_get_create_node.
1901
1902 2011-04-12  Martin Jambor  <mjambor@suse.cz>
1903
1904         * class.c (cp_fold_obj_type_ref): Call cgraph_get_create_node
1905         instead of cgraph_node.
1906         * decl2.c (cxx_callgraph_analyze_expr): Likewise.
1907         (cp_write_global_declarations): Likewise.
1908         * optimize.c (maybe_clone_body): Likewise.
1909         * semantics.c (maybe_add_lambda_conv_op): Likewise.
1910         * mangle.c (mangle_decl): Likewise.
1911         * method.c (make_alias_for_thunk): Likewise.
1912         (use_thunk): Likewise.
1913
1914 2011-04-11  Jason Merrill  <jason@redhat.com>
1915
1916         PR c++/48535
1917         * decl.c (cp_complete_array_type_or_error): New.
1918         * semantics.c (finish_compound_literal): Use it.
1919         * cp-tree.h: Declare it.
1920
1921         PR c++/48535
1922         * semantics.c (finish_compound_literal): Handle references.
1923
1924         PR c++/48535
1925         * semantics.c (finish_compound_literal): Take complain parm.
1926         (build_lambda_object): Adjust.
1927         * cp-tree.h: Adjust.
1928         * call.c (convert_like_real): Adjust.
1929         * decl.c (check_initializer): Adjust.
1930         * parser.c (cp_parser_postfix_expression): Adjust.
1931         (cp_parser_functional_cast): Adjust.
1932         * pt.c (tsubst_copy_and_build): Adjust.
1933         * typeck2.c (process_init_constructor_record): Adjust.
1934
1935         PR c++/48534
1936         * cvt.c (ocp_convert): Use build_nop to convert to underlying type
1937         of scoped enum.
1938
1939         PR c++/48523
1940         * tree.c (maybe_dummy_object): Use build_x_indirect_ref rather
1941         than cp_build_indirect_ref.
1942
1943         PR c++/48457, Core 1238
1944         * call.c (reference_binding): Allow rvalue reference to bind to
1945         function lvalue.
1946         * tree.c (lvalue_kind): Functions are always lvalues.
1947
1948 2011-04-07  Jason Merrill  <jason@redhat.com>
1949
1950         PR c++/48500
1951         * semantics.c (potential_constant_expression_1) [CALL_EXPR]: Check
1952         arguments even if we don't know the function.
1953
1954         PR c++/48481
1955         * tree.c (build_overload): Allow an unwrapped FUNCTION_DECL
1956         at the end of the chain.
1957         * pt.c (dependent_template_p): Use OVL_CURRENT/NEXT.
1958         (iterative_hash_template_arg): Likewise.
1959
1960         PR c++/48481
1961         * cp-tree.h (OVL_ARG_DEPENDENT): New.
1962         * name-lookup.c (add_function): Set it.
1963         * semantics.c (finish_call_expr): Free OVERLOADs if it's set.
1964
1965         PR c++/48481
1966         * call.c (build_user_type_conversion_1): Use lookup_fnfields_slot.
1967         Release unused vector.
1968
1969         PR c++/48451
1970         * pt.c (fn_type_unification): Don't clear incomplete pack flag.
1971         (type_unification_real): Clear it here instead.
1972
1973         PR c++/48468
1974         * except.c (build_noexcept_spec): Propagate error_mark_node.
1975         (finish_noexcept_expr): Likewise.
1976
1977         PR c++/48452
1978         * typeck.c (build_x_compound_expr_from_list): Return error_mark_node
1979         in SFINAE context.
1980
1981         PR c++/48450
1982         * call.c (resolve_args): Take complain.
1983         (build_new_function_call, build_operator_new_call): Pass it.
1984         (build_op_call, build_new_op, build_new_method_call): Pass it.
1985
1986         PR c++/48450
1987         * typeck.c (check_for_casting_away_constness): Take complain.
1988         (build_static_cast_1, build_reinterpret_cast_1): Pass it.
1989         (build_const_cast_1): Pass it.  Take full complain parm.
1990         (build_const_cast, cp_build_c_cast): Adjust.
1991
1992         * tree.c (build_aggr_init_expr): Always return error_mark_node
1993         on abstract violation.
1994
1995         PR c++/48450
1996         * tree.c (build_cplus_new, build_aggr_init_expr): Take complain.
1997         (bot_manip): Adjust.
1998         * cp-tree.h: Adjust.
1999         * call.c (convert_like_real, build_cxx_call): Adjust.
2000         (perform_direct_initialization_if_possible): Adjust.
2001         * cvt.c (ocp_convert): Adjust.
2002         * init.c (build_value_init): Adjust.
2003         * semantics.c (maybe_add_lambda_conv_op): Adjust.
2004         * typeck.c (unary_complex_lvalue, cp_build_modify_expr): Adjust.
2005         * typeck2.c (build_functional_cast): Adjust.
2006
2007         * init.c (build_value_init_noctor): Handle REFERENCE_TYPE at top
2008         level.
2009         (perform_member_init): Not here.
2010         * typeck2.c (build_functional_cast): Limit REFERENCE_TYPE special
2011         case to templates.
2012         (abstract_virtuals_error_sfinae): Remove RESULT_DECL special case.
2013
2014         PR c++/48449
2015         * typeck2.c (build_functional_cast): Check complain consistently.
2016         Use build_value_init and abstract_virtuals_error_sfinae.
2017         (abstract_virtuals_error_sfinae): Split out.
2018         * cp-tree.h: Declare it.
2019         * init.c (build_new_1): Use it.
2020         (build_value_init_noctor): Handle FUNCTION_TYPE.
2021
2022         * semantics.c (finish_decltype_type): Simplify handling of unknown
2023         type.
2024
2025         * semantics.c (finish_decltype_type): Add complain parm.
2026         * cp-tree.h: Adjust.
2027         * parser.c (cp_parser_decltype): Adjust.
2028         * pt.c (tsubst): Adjust.
2029
2030         PR c++/48450
2031         * cvt.c (ocp_convert): Handle converting scoped enum to bool.
2032
2033 2011-03-31  Jason Merrill  <jason@redhat.com>
2034
2035         PR c++/48277
2036         * semantics.c (finish_call_expr): Remove assert.
2037
2038         PR c++/48280
2039         * method.c (defaultable_fn_check): Templates are not defaultable.
2040
2041         * parser.c (cp_parser_init_declarator): Avoid redundant
2042         cp_finish_decl for member declarations.
2043
2044 2011-03-30  Jason Merrill  <jason@redhat.com>
2045
2046         PR c++/48212
2047         * semantics.c (non_const_var_error): Just return if DECL_INITIAL
2048         is error_mark_node.
2049
2050 2011-03-30  Jason Merrill  <jason@redhat.com>
2051
2052         PR c++/48369
2053         * semantics.c (potential_constant_expression_1): Handle
2054         UNORDERED_EXPR and ORDERED_EXPR.
2055
2056         PR c++/48281
2057         * semantics.c (finish_compound_literal): Do put static/constant
2058         arrays in static variables.
2059
2060         * call.c (convert_like_real) [ck_list]: Build up the
2061         initializer_list object directly.
2062         * decl.c (build_init_list_var_init): Adjust.
2063
2064         * call.c (convert_like_real): Correct TREE_CONSTANT on CONSTRUCTOR.
2065         * decl.c (reshape_init_array_1): Likewise.
2066
2067 2011-03-29  Jason Merrill  <jason@redhat.com>
2068
2069         PR c++/48265
2070         * pt.c (value_dependent_expression_p) [VAR_DECL]: Make sure
2071         the variable is constant before looking at its initializer.
2072
2073         PR c++/48319
2074         * pt.c (value_dependent_expression_p): Handle TEMPLATE_ID_EXPR.
2075
2076         PR c++/48089
2077         * semantics.c (potential_constant_expression_1): Change error about
2078         use of *this in constructor into sorry.
2079
2080         PR c++/48296
2081         * decl.c (cp_finish_decl): Defer validation of constexpr member
2082         functions.
2083         * class.c (finalize_literal_type_property): Validate them here.
2084         * semantics.c (is_valid_constexpr_fn): Don't check completeness.
2085
2086         * semantics.c (is_valid_constexpr_fn): Specify input location.
2087
2088 2011-03-28  Jason Merrill  <jason@redhat.com>
2089
2090         PR c++/48313
2091         * pt.c (maybe_adjust_types_for_deduction): Handle T&& deduction
2092         from overloaded function.
2093
2094         Core 1232
2095         * call.c (build_array_conv): New.
2096         (implicit_conversion): Use it.
2097
2098         * call.c (reference_binding): Allow direct binding to an array
2099         rvalue.
2100
2101         Core 898
2102         * parser.c (cp_parser_compound_statement): Add function_body parm.
2103         Complain about non-body compound-stmt in constexpr fn.
2104         (cp_parser_primary_expression, cp_parser_statement): Adjust.
2105         (cp_parser_implicitly_scoped_statement): Adjust.
2106         (cp_parser_function_body, cp_parser_try_block): Adjust.
2107         (cp_parser_handler, cp_parser_objc_synchronized_statement): Adjust.
2108         (cp_parser_objc_try_catch_finally_statement): Adjust.
2109
2110         Core 898
2111         * semantics.c (constexpr_fn_retval): New.  Allow using-declaration
2112         and using-definition.
2113         (register_constexpr_fundef): Call it.
2114
2115         * except.c (build_noexcept_spec): Call cxx_constant_value after
2116         converting to bool.
2117
2118 2011-03-25  Kai Tietz  <ktietz@redhat.com>
2119
2120         * lex.c (interface_strcmp): Handle dos-paths.
2121         (handle_pragma_implementation): Use filename_cmp instead of
2122         strcmp.
2123         (in_main_input_context): Likewise.
2124
2125 2011-03-25  Jason Merrill  <jason@redhat.com>
2126
2127         Core 1135
2128         * method.c (defaulted_late_check): Check for exception spec mismatch.
2129         (defaultable_fn_check): Allow exception spec and virtual.
2130         * class.c (check_for_override): A virtual dtor is non-trivial.
2131
2132         PR c++/48289
2133         * pt.c (build_non_dependent_expr): Keep dereferences outside the
2134         NON_DEPENDENT_EXPR.
2135
2136 2011-03-25  Kai Tietz  <ktietz@redhat.com>
2137
2138         * decl.c (decls_match): Replace target hook
2139         call of comp_type_attributes by version in tree.c file.
2140         * search.c (check_final_overrider): Likewise.
2141         * typeck.c (structural_comptypes): Likewise.
2142
2143 2011-03-21  Kai Tietz  <ktietz@redhat.com>
2144
2145         PR target/12171
2146         * cxx-pretty-print.c (pp_cxx_ptr_operator):
2147         Display allowed attributes for function pointer types.
2148         * error.c (dump_type_prefix): Likewise.
2149
2150         * tree.c (cxx_attribute_table): Adjust table.
2151
2152 2011-03-18  Jason Merrill  <jason@redhat.com>
2153
2154         PR c++/48162
2155         * semantics.c (finish_call_expr): Allow TARGET_EXPR for now.
2156
2157         PR c++/48118
2158         * call.c (build_over_call): Don't skip ck_rvalue.
2159
2160 2011-03-17  Jason Merrill  <jason@redhat.com>
2161
2162         PR c++/47504
2163         * semantics.c (cxx_eval_constant_expression) [NOP_EXPR]: Don't let
2164         the conversion set TREE_OVERFLOW.
2165
2166         Core 1212
2167         * semantics.c (finish_decltype_type): Return T&& for xvalue.
2168         * typeck.c (unlowered_expr_type): Preserve cv-quals.
2169
2170         PR c++/48166
2171         * decl.c (revert_static_member_fn): Strip function-cv-quals.
2172
2173 2011-03-16  Jason Merrill  <jason@redhat.com>
2174
2175         PR c++/48089
2176         * semantics.c (potential_constant_expression_1): Don't allow *this
2177         in a constructor.
2178         (register_constexpr_fundef): Use potential_rvalue_constant_expression.
2179
2180         PR c++/47301
2181         * decl.c (compute_array_index_type): Don't bother trying to deal
2182         with literal classes in ABI v1.
2183
2184         PR c++/46336
2185         * decl.c (duplicate_decls): Return NULL_TREE for clashing
2186         C functions.
2187
2188         PR c++/47570
2189         * semantics.c (cxx_eval_constant_expression) [COMPOUND_EXPR]: Don't
2190         use the generic binary expression handling.
2191
2192 2011-03-16  Diego Novillo  <dnovillo@google.com>
2193
2194         * Make-lang.in (CXX_PARSER_H): New.
2195         (cp/parser.o): Add dependency on CXX_PARSER_H.
2196         Add dependency on tree-pretty-print.h
2197         (cp/cp-lang.o): Add dependency on CXX_PARSER_H.
2198         * cp-lang.c: Include parser.h.
2199         * parser.c: Include parser.h.
2200         (struct cp_token): Add bitfield purged_p.
2201         Update all users.
2202         Move to parser.h.
2203         (CPP_PURGED): Remove.  Update all users.
2204         (struct cp_lexer): Change field buffer to be a VEC of cp_token.
2205         Remove field buffer_length.
2206         Update all users.
2207         Move to parser.h.
2208         (struct tree_check): Move to parser.h.
2209         (cp_token_position): Likewise.
2210         (struct cp_token_cache): Likewise.
2211         (CPP_KEYWORD): Likewise.
2212         (CPP_TEMPLATE_ID): Likewise.
2213         (CPP_NESTED_NAME_SPECIFIER): Likewise.
2214         (N_CP_TTYPES): Likewise.
2215         (enum cp_parser_status_kind): Likewise.
2216         (struct cp_parser_context): Likewise.
2217         (struct cp_default_arg_entry_d): Likewise.
2218         (struct cp_unparsed_functions_entry_d): Likewise.
2219         (struct cp_parser): Likewise.
2220         (cp_lexer_dump_tokens): New.
2221         (cp_lexer_debug_tokens): New.
2222         (cp_lexer_finished_p): New.
2223         (cp_lexer_alloc): Factor out of cp_lexer_new_main.
2224         (cp_lexer_new_main): Re-write main lexing loop to push
2225         tokens into the new VEC buffer.
2226         (cp_lexer_print_token): Improve printing of CPP_NUMBER tokens.
2227         Do not abort if the token type is not recognized, just print
2228         its code.
2229         * parser.h: New file.
2230         * config-lang.in (gtfiles): Add cp/parser.h.
2231
2232 2011-03-16  Jason Merrill  <jason@redhat.com>
2233
2234         Core 1148
2235         * typeck.c (check_return_expr): Fix conditions for setting
2236         LOOKUP_PREFER_RVALUE.
2237
2238         * call.c (build_over_call): Remove require_complete_type_sfinae call.
2239
2240         PR c++/48132
2241         * decl.c (check_array_designated_initializer): Allow integer index.
2242         (reshape_init_array_1): Set index on the elements.
2243
2244 2011-03-16  Jason Merrill  <jason@redhat.com>
2245
2246         PR c++/48113
2247         * typeck.c (convert_for_initialization): Use
2248         perform_implicit_conversion_flags.
2249         * call.c (standard_conversion): If LOOKUP_PREFER_RVALUE, set
2250         rvaluedness_matches_p on ck_rvalue.
2251         (convert_like_real) [ck_rvalue]: And restore it here.
2252
2253         PR c++/48115
2254         * call.c (convert_arg_to_ellipsis): Handle incomplete type.
2255
2256 2011-03-16  Jason Merrill  <jason@redhat.com>
2257
2258         * parser.c (cp_parser_abort_tentative_parse): Make sure we haven't
2259         committed to this tentative parse.
2260
2261         PR c++/47999
2262         * semantics.c (finish_call_expr): Preserve reference semantics
2263         in templates.
2264
2265         * call.c (convert_default_arg): Use LOOKUP_IMPLICIT.
2266
2267 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
2268
2269         * cp-objcp-common.c (cp_function_decl_explicit_p): Don't crash if
2270         DECL_LANG_SPECIFIC is NULL.
2271
2272 2011-03-15  Jason Merrill  <jason@redhat.com>
2273
2274         Core 1074
2275         * pt.c (value_dependent_expression_p) [NOEXCEPT_EXPR]: Don't
2276         check value_dependent_expression_p on the operand.
2277
2278         * semantics.c (push_cx_call_context): Return bool.
2279         (cxx_eval_call_expression): Handle excess depth.
2280
2281         Core 1191
2282         * method.c (synthesized_method_walk): Cleanups don't affect the
2283         triviality of a constructor, but do affect deletion and exception
2284         specification.
2285
2286 2011-03-15  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
2287
2288         * decl2.c (cp_check_const_attributes): New.
2289         (cplus_decl_attributes): Call cp_check_const_attributes.
2290
2291 2011-03-15  Jason Merrill  <jason@redhat.com>
2292
2293         PR c++/34758
2294         * call.c (convert_default_arg): Use DECL_ORIGIN of fn.  Check for
2295         recursion first.
2296         (push_defarg_context, pop_defarg_context): New.
2297         * parser.c (cp_parser_late_parsing_default_args): Use them.
2298         * cp-tree.h: Declare them.
2299
2300 2011-03-11  Dodji Seketeli  <dodji@redhat.com>
2301
2302         * call.c (add_builtin_candidate)<case INDIRECT_REF>: The type of
2303         the argument of the indirection operator should not be dependent.
2304         Fix the comment.
2305
2306 2011-03-11  Jason Merrill  <jason@redhat.com>
2307
2308         PR c++/47125
2309         * pt.c (tsubst) [TYPENAME_TYPE]: Only give errors if tf_error.
2310
2311         PR c++/47144
2312         * parser.c (cp_parser_template_type_arg): Set
2313         type_definition_forbidden_message.
2314
2315         PR c++/47808
2316         * decl.c (compute_array_index_type): Discard folding
2317         if it didn't produce a constant.
2318
2319 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
2320
2321         PR c++/48035
2322         * init.c (build_zero_init_1): Extracted from build_zero_init.
2323         Add FIELD_SIZE argument, if non-NULL and field bit_position
2324         as not smaller than that, don't add that field's initializer.
2325         Pass DECL_SIZE as last argument to build_zero_init_1
2326         for DECL_FIELD_IS_BASE fields.
2327         (build_zero_init): Use build_zero_init_1.
2328
2329 2011-03-10  Jason Merrill  <jason@redhat.com>
2330
2331         PR c++/48029
2332         * pt.c (iterative_hash_template_arg): Remove special case for
2333         ARRAY_TYPE.
2334
2335         PR c++/47198
2336         * parser.c (cp_parser_single_declaration): Just return if
2337         cp_parser_parse_and_diagnose_invalid_type_name complained.
2338
2339 2011-03-09  Jason Merrill  <jason@redhat.com>
2340
2341         PR c++/44629
2342         * pt.c (unify): An unresolved overload is a nondeduced context.
2343
2344 2011-03-09  Martin Jambor  <mjambor@suse.cz>
2345
2346         PR tree-optimization/47714
2347         * method.c (use_thunk): Clear addressable flag of thunk arguments.
2348
2349 2011-03-08  Dodji Seketeli  <dodji@redhat.com>
2350
2351         PR c++/47705
2352         * pt.c (convert_nontype_argument): Only call decay_conversion on
2353         arrays.
2354
2355 2011-03-08  Jason Merrill  <jason@redhat.com>
2356
2357         PR c++/47488
2358         * mangle.c (write_template_arg_literal) [STRING_CST]: Sorry.
2359
2360         PR c++/47705
2361         * pt.c (convert_nontype_argument): Don't crash on non-pointer
2362         argument to pointer parameter.
2363
2364         PR c++/45651
2365         * pt.c (instantiate_decl): Don't clear DECL_INTERFACE_KNOWN on
2366         !TREE_PUBLIC decls.
2367
2368 2011-03-08  Dodji Seketeli  <dodji@redhat.com>
2369
2370         PR c++/47957
2371         * name-lookup.c (binding_to_template_parms_of_scope_p): Only
2372         consider scopes of primary template definitions.  Adjust comments.
2373
2374 2011-03-07  Jason Merrill  <jason@redhat.com>
2375
2376         PR c++/48003
2377         * pt.c (convert_nontype_argument): Fix -fpermissive allowing
2378         integer overflow.
2379         * semantics.c (potential_constant_expression_1): Check TREE_OVERFLOW.
2380
2381         PR c++/48015
2382         * init.c (constant_value_1): Always require init to be TREE_CONSTANT.
2383
2384         PR c++/48008
2385         * mangle.c (write_type): Strip cv-quals from FUNCTION_TYPE here.
2386         (write_CV_qualifiers_for_type): Not here.
2387
2388 2011-03-06  Joseph Myers  <joseph@codesourcery.com>
2389
2390         * lang-specs.h: Match -save-temps* instead of -save-temps.
2391
2392 2011-03-05  Jason Merrill  <jason@redhat.com>
2393
2394         * mangle.c (write_expression): Change ABI v6 to v5.
2395         (write_type): Likewise.
2396
2397 2011-03-04  Jan Hubicka  <jh@suse.cz>
2398
2399         PR lto/47497
2400         * optimize.c (maybe_clone_body): Update call of cgraph_same_body_alias
2401         and cgraph_add_thunk.
2402         * method.c (make_alias_for_thunk, use_thunk): Likewise.
2403         * mangle.c (mangle_decl): Likewise.
2404
2405 2011-03-04  Jason Merrill  <jason@redhat.com>
2406
2407         PR c++/47971
2408         * pt.c (tsubst_copy_and_build) [PSEUDO_DTOR_EXPR]: Use tsubst for type.
2409         (tsubst_copy) [default]: Just return t if !ENABLE_CHECKING.
2410
2411         PR c++/46220
2412         * search.c (check_final_overrider): Allow pointer to same incomplete
2413         class type with different cv-quals.
2414
2415 2011-03-03  Paolo Carlini  <paolo.carlini@oracle.com>
2416
2417         PR c++/47974
2418         * pt.c (tsubst_template_args): Check argument t for error_mark_node.
2419
2420 2011-03-03  Jason Merrill  <jason@redhat.com>
2421
2422         PR c++/47950
2423         * pt.c (tsubst_copy_and_build) [TARGET_EXPR]: Retain TREE_CONSTANT.
2424
2425 2011-03-02  Jason Merrill  <jason@redhat.com>
2426
2427         PR c++/47950
2428         * parser.c (cp_parser_condition): Don't fold_non_dependent_expr here.
2429
2430         PR c++/47774
2431         * tree.c (build_vec_init_elt): Split out from...
2432         (build_vec_init_expr): ...here.
2433         (diagnose_non_constexpr_vec_init): New fn.
2434         * semantics.c (potential_constant_expression_1): Use it.
2435         * cp-tree.h: Declare it.
2436
2437 2011-03-01  Jason Merrill  <jason@redhat.com>
2438
2439         PR c++/46159
2440         * parser.c (cp_parser_primary_expression): Don't warn about a
2441         failed tentative parse.
2442
2443         PR c++/47200
2444         * semantics.c (cxx_bind_parameters_in_call): Don't call
2445         adjust_temp_type on non-constant args.
2446
2447         PR c++/47851
2448         * call.c (standard_conversion): Provide requested cv-quals on
2449         class rvalue conversion.
2450
2451         PR c++/46282
2452         * decl2.c (grokbitfield): Handle type-dependent width.
2453
2454 2011-02-28  Jason Merrill  <jason@redhat.com>
2455
2456         PR c++/47873
2457         * class.c (update_vtable_entry_for_fn): Check BINFO_LOST_PRIMARY_P
2458         after checking for a non-thunk.
2459
2460 2011-02-26  Jason Merrill  <jason@redhat.com>
2461
2462         PR c++/47904
2463         * tree.c (cp_tree_equal): Compare DECL_PARM_LEVEL.
2464         * pt.c (iterative_hash_template_arg): And hash it.
2465
2466         PR c++/47897
2467         * semantics.c (non_const_var_error): Split out from...
2468         (cxx_eval_constant_expression): ...here.
2469         (potential_constant_expression_1) [VAR_DECL]: Use it.
2470         Allow dependent variables.
2471
2472 2011-02-24  Jason Merrill  <jason@redhat.com>
2473
2474         * parser.c (cp_parser_constant_expression): Set
2475         non_integral_constant_expression correctly for C++0x too.
2476         (cp_parser_static_assert): Allow non-constant expression.
2477         (cp_parser_direct_declarator): Expect non_constant_p to be set
2478         properly for C++0x.
2479         * pt.c (value_dependent_expression_p): Handle TYPEID_EXPR.
2480         * semantics.c (maybe_constant_value): Check type_unknown_p too.
2481         (potential_rvalue_constant_expression): New.
2482         (require_potential_rvalue_constant_expression): New.
2483
2484 2011-02-23  Jason Merrill  <jason@redhat.com>
2485
2486         * cp-tree.h (DECL_PARM_LEVEL): New.
2487         (struct lang_decl_parm): Add level field.
2488         * name-lookup.c (function_parm_depth): New fn.
2489         * name-lookup.h: Declare it.
2490         * parser.c (cp_parser_parameter_declaration_list): Use it.
2491         * mangle.c (struct globals): Add parm_depth field.
2492         (write_bare_function_type): Adjust it.
2493         (write_expression): Include the level delta in PARM_DECL mangling
2494         for abi >= 6.
2495
2496         * semantics.c (finish_decltype_type): Remove shortcut for decltype
2497         of id-expression.
2498         * mangle.c (write_type) [DECLTYPE_TYPE]: Strip it here for abi < 6.
2499
2500 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
2501
2502         PR c++/46868
2503         * parser.c (cp_parser_class_specifier): Require a closing brace
2504         to attempt error recovery.
2505
2506 2011-02-23  Jakub Jelinek  <jakub@redhat.com>
2507
2508         PR c++/47833
2509         * pt.c (struct pending_template): Add chain_next GTY option.
2510         * decl.c (struct named_label_use_entry): Likewise.
2511
2512 2011-02-22  Paolo Carlini  <paolo.carlini@oracle.com>
2513
2514         PR c++/47242
2515         * semantics.c (build_lambda_object): Bail out if a field is
2516         error_mark_node.
2517
2518 2011-02-22  Dodji Seketeli  <dodji@redhat.com>
2519
2520         PR c++/47666
2521         * class.c (dfs_declare_virt_assop_and_dtor)
2522         (declare_virt_assop_and_dtor): New static functions.
2523         (add_implicitly_declared_members): Use
2524         declare_virt_assop_and_dtor.
2525
2526 2011-02-21  Jason Merrill  <jason@redhat.com>
2527
2528         PR c++/47207
2529         * decl2.c (decl_constant_var_p): A constexpr var needs an
2530         initializer to be constant.
2531         * semantics.c (cxx_eval_constant_expression): Complain about
2532         constexpr var used in its own initializer.
2533         * call.c (set_up_extended_ref_temp): Set
2534         DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P too.
2535
2536 2011-02-20  Jason Merrill  <jason@redhat.com>
2537
2538         PR c++/47199
2539         * semantics.c (cxx_eval_call_expression): Call
2540         cxx_eval_constant_expression in trivial shortcut.
2541
2542         PR c++/46831
2543         * call.c (convert_class_to_reference): Don't try to set up a
2544         second conv sequence for non-viable candidates.
2545
2546         PR c++/47703
2547         * error.c (location_of): Handle non-tagged types.
2548
2549         PR c++/46472
2550         * method.c (process_subob_fn): Instantiate constexpr templates.
2551         * optimize.c (maybe_clone_body): Propagate DECL_DECLARED_CONSTEXPR_P.
2552
2553 2011-02-20  Dodji Seketeli  <dodji@redhat.com>
2554
2555         PR c++/46394
2556         * pt.c (tsubst_pack_expansion): do not use
2557         cp_tree_equal/same_type_p to detect an expansion of a parameter
2558         pack.
2559
2560 2011-02-19  Jason Merrill  <jason@redhat.com>
2561
2562         PR c++/47503
2563         * semantics.c (cxx_eval_call_expression): Shortcut trivial copy.
2564
2565 2011-02-18  Paolo Carlini  <paolo.carlini@oracle.com>
2566
2567         PR c++/47795
2568         * semantics.c (finish_non_static_data_member): Early return if
2569         object is error_mark_node.
2570
2571 2011-02-18  Dodji Seketeli  <dodji@redhat.com>
2572
2573         PR c++/47208
2574         * pt.c (do_auto_deduction): Do not mention error_mark_node in
2575         diagnostics.
2576         * semantics.c (finish_id_expression): Do not pass erroneous decl
2577         to decl_constant_var_p.
2578
2579 2011-02-17  Jakub Jelinek  <jakub@redhat.com>
2580
2581         PR c++/47783
2582         * cvt.c (convert_from_reference): Call mark_exp_read.
2583
2584 2011-02-11  Dodji Seketeli  <dodji@redhat.com>
2585
2586         PR c++/47172
2587         * pt.c (finish_call_expr): Consider a call expression that has a
2588         dependent "this" pointer as being dependent.  Add comments.
2589         (dependent_type_p, type_dependent_expression_p): Update comments.
2590
2591 2011-02-16  Dodji Seketeli  <dodji@redhat.com>
2592
2593         PR c++/47326
2594         * pt.c (tsubst_copy)<case SIZEOF_EXPR>: Ensure that even pack
2595         expansion arguments are not evaluated.
2596
2597 2011-02-16  Jakub Jelinek  <jakub@redhat.com>
2598
2599         PR c++/47704
2600         * cp-tree.h (ENUM_FIXED_UNDERLYING_TYPE_P): Use TYPE_LANG_FLAG_5
2601         instead of TYPE_LANG_FLAG_3.
2602         * pt.c (lookup_template_class): Copy over
2603         ENUM_FIXED_UNDERLYING_TYPE_P.
2604
2605 2011-02-15  Jason Merrill  <jason@redhat.com>
2606
2607         PR c++/46807
2608         * method.c (synthesized_method_walk): Always exit early for
2609         trivial fn in C++98 mode.
2610
2611 2011-02-14  Jason Merrill  <jason@redhat.com>
2612
2613         PR c++/47482
2614         * parser.c (cp_parser_enumerator_definition): Call
2615         fold_non_dependent_expr.
2616
2617 2011-02-09  Jason Merrill  <jason@redhat.com>
2618
2619         * decl.c (cp_make_fname_decl): Set DECL_THIS_STATIC at toplevel.
2620         * semantics.c (finish_fname): Only return the name if we're in
2621         a function.
2622
2623         * decl.c (build_enumerator): Don't perform integral promotions on
2624         non-integral constants.
2625
2626         * cvt.c (convert_to_void): Handle null op1.
2627
2628         * class.c (type_has_constexpr_default_constructor): Make sure the
2629         caller stripped an enclosing array.
2630         * init.c (perform_member_init): Strip arrays before calling it.
2631
2632         PR c++/47511
2633         * semantics.c (potential_constant_expression_1): Handle TEMPLATE_DECL.
2634
2635 2011-02-03  Dodji Seketeli  <dodji@redhat.com>
2636
2637         PR c++/47398
2638         * tree.c (cp_tree_equal)<TEMPLATE_PARM_INDEX>: Take the number of
2639         template parameters in account.
2640
2641 2011-02-03  Nathan Froyd  <froydnj@codesourcery.com>
2642
2643         PR c++/46890
2644         * parser.c (cp_parser_class_specifier): Fix setting of
2645         want_semicolon.
2646
2647 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
2648
2649         PR c++/47416
2650         * semantics.c (build_data_member_initialization): Handle
2651         STATEMENT_LIST always instead of just for CLEANUP_BODY.
2652
2653 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2654
2655         * g++spec.c (lang_specific_driver) [HAVE_LD_STATIC_DYNAMIC] Use
2656         LD_STATIC_OPTION, LD_DYNAMIC_OPTION.
2657
2658 2011-01-29  Dodji Seketeli  <dodji@redhat.com>
2659
2660         PR c++/47311
2661         * cp-tree.h (fixup_template_parms): Declare.
2662         * pt.c (end_template_parm_list): Do not fixup template parms here.
2663         (fixup_template_parms): Remove static. Fix typo in the
2664         comments. Remove useless code statement.
2665         (fixup_template_parm): For a template template parameter, fixup
2666         its attributes before fixing up its type.
2667         * parser.c
2668         (cp_parser_template_declaration_after_export): After parsing
2669         template parameters fixup their types.
2670
2671 2011-01-26  Jakub Jelinek  <jakub@redhat.com>
2672
2673         PR c++/47476
2674         * semantics.c (potential_constant_expression_1): Handle
2675         TRUTH_XOR_EXPR.
2676
2677 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
2678
2679         PR c++/43601
2680         * semantics.c (expand_or_defer_fn_1): Handle it.
2681         * decl2.c (decl_needed_p): Likewise.
2682
2683 2011-01-21  Jason Merrill  <jason@redhat.com>
2684
2685         PR c++/47041
2686         * semantics.c (build_constexpr_constructor_member_initializers):
2687         Handle trivial copy.
2688
2689 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
2690
2691         PR c++/47388
2692         * semantics.c (begin_for_stmt): If -fno-for-scope, don't
2693         assume init must be NULL if scope is NULL.
2694         (begin_range_for_stmt): Likewise.
2695
2696 2011-01-21  Jason Merrill  <jason@redhat.com>
2697
2698         PR c++/46552
2699         * semantics.c (cxx_eval_constant_expression): Handle OFFSET_REF.
2700
2701         PR c++/46977
2702         * semantics.c (potential_constant_expression_1): Split out from
2703         potential_constant_expression.  Add want_rval parm.  Handle
2704         template expression forms.  Don't enforce restriction on address
2705         of automatic variable here.  Add a couple of diagnostics that
2706         had been missing.
2707         (require_potential_constant_expression): New entry point.
2708         (build_data_member_initialization, register_constexpr_fundef): Adjust.
2709         (maybe_constant_value): Check potential_constant_expression.
2710         * pt.c (fold_non_dependent_expr_sfinae): Likewise.
2711         * tree.c (build_vec_init_expr): Adjust.
2712
2713 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
2714
2715         PR c++/47303
2716         * decl2.c (finish_anon_union): Only call mangle_decl if TREE_STATIC
2717         or DECL_EXTERNAL.
2718
2719 2011-01-17  Jason Merrill  <jason@redhat.com>
2720
2721         PR c++/47067
2722         * semantics.c (base_field_constructor_elt): New fn.
2723         (cxx_eval_bare_aggregate): Use it.
2724         (build_data_member_initialization): Leave COMPONENT_REF for
2725         vfield inits.
2726
2727 2011-01-14  Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
2728
2729         * parser.c (cp_parser_range_for): Remove the "unused variable" warning
2730         workaround.
2731
2732 2011-01-15  Giovanni Funchal  <gafunchal@gmail.com>
2733             Jonathan Wakely  <jwakely.gcc@gmail.com>
2734
2735         PR c++/33558
2736         * decl.c (grokdeclarator): Reject mutable reference members.
2737
2738 2011-01-14  Jason Merrill  <jason@redhat.com>
2739
2740         PR c++/47289
2741         * pt.c (coerce_template_parms): Fix error recovery.
2742
2743         PR c++/46903
2744         * typeck2.c (check_narrowing): Only check arithmetic types.
2745
2746         PR c++/46688
2747         * tree.c (build_vec_init_expr): Handle flexible array
2748         properly.
2749
2750 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
2751
2752         PR c++/47213
2753         * cp-tree.h (CLASSTYPE_VISIBILITY): Use
2754         TYPE_MAIN_DECL instead of TYPE_NAME.
2755         (CLASSTYPE_VISIBILITY_SPECIFIED): Likewise.
2756         * decl2.c (determine_visibility): Add check
2757         of CLASS_TYPE_P for underlying_type.
2758
2759 2011-01-12  Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
2760
2761         * cp-tree.h (begin_for_scope): New prototype.
2762         (begin_for_stmt): Update prototype.
2763         (begin_range_for_stmt): Update prototype.
2764         * init.c (build_vec_init): Update call to begin_for_stmt.
2765         * parser.c (cp_parser_for): New.
2766         (cp_parser_c_for): Add three new parameters.
2767         (cp_parser_range_for): Likewise. Most parsing code removed.
2768         (cp_parser_iteration_statement): Call cp_parser_for instead of
2769         cp_parser_c_for and cp_parser_range_for.
2770         (cp_parser_for_init_statement): Add new parameter and return type.
2771         (cp_parser_block_declaration): Update call to
2772         cp_parser_simple_declaration.
2773         (cp_parser_simple_declaration): Add new parameter.
2774         Update call to cp_parser_init_declarator.
2775         (cp_parser_init_declarator): Add new parameter.
2776         * pt.c (tsubst_expr): Update call to begin_for_stmt.
2777         * semantics.c (begin_for_scope): New.
2778         (begin_for_stmt): Add two new parameters.
2779         (begin_range_for_stmt): Likewise.
2780
2781 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
2782
2783         * parser.c (cp_parser_objc_at_property_declaration): Improved
2784         error message.
2785
2786 2011-01-11  Dodji Seketeli  <dodji@redhat.com>
2787
2788         PR debug/46955
2789         * cp-lang.c (get_template_innermost_arguments_folded)
2790         (get_template_argument_pack_elems_folded)
2791         (template_arg_needs_folding, fold_cplus_constants): New static
2792         functions.
2793         (LANG_HOOKS_GET_INNERMOST_GENERIC_ARGS): Set this hook to
2794         get_template_innermost_arguments_folded.
2795         (LANG_HOOKS_GET_ARGUMENT_PACK_ELEMS): Set this hook to
2796         get_template_argument_pack_elems_folded.
2797
2798 2011-01-11  Jason Merrill  <jason@redhat.com>
2799
2800         PR c++/46658
2801         * init.c (build_new_1): Handle value-init in templates differently.
2802
2803         PR c++/45520
2804         * tree.c (maybe_dummy_object): Check current_class_ref against
2805         context, not current_class_type.
2806
2807 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
2808
2809         PR objc/47078
2810         * parser.c (cp_parser_objc_typename): If the type is unknown, for
2811         error recovery purposes behave as if it was not specified so that
2812         the default type is used.
2813
2814 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
2815
2816         PR c++/47022
2817         * pt.c (tsubst_copy_and_build): Use tsubst instead of tsubst_copy
2818         for the second build_x_va_arg argument.
2819
2820 2011-01-05  Tom Tromey  <tromey@redhat.com>
2821
2822         * typeck.c (cp_build_addr_expr_1): Update call to lvalue_error.
2823         (lvalue_or_else): Likewise.
2824
2825 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
2826
2827         PR target/38662
2828         * tree.c (cxx_type_hash_eq):
2829         Allow METHOD_TYPE, too.
2830
2831 \f
2832 Copyright (C) 2011 Free Software Foundation, Inc.
2833
2834 Copying and distribution of this file, with or without modification,
2835 are permitted in any medium without royalty provided the copyright
2836 notice and this notice are preserved.