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