OSDN Git Service

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