OSDN Git Service

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