cp-tree.h (LOOKUP_EXPLICIT_TMPL_ARGS): Define.
[gcc.git] / gcc / cp / ChangeLog
1 2011-04-29 Paolo Carlini <paolo.carlini@oracle.com>
2
3 PR c++/48606
4 * init.c (perform_member_init): Check build_value_init return
5 value for error_mark_node.
6
7 2011-04-29 Diego Novillo <dnovillo@google.com>
8 Le-Chun Wu <lcwu@google.com>
9
10 * call.c (conversion_null_warnings): Also handle assignments
11 when warning about NULL conversions.
12
13 2011-04-29 Le-Chun Wu <lcwu@google.com>
14
15 * cp-tree.h (LOOKUP_EXPLICIT_TMPL_ARGS): Define.
16 * call.c (build_new_function_call): Set it for TEMPLATE_ID_EXPRs.
17 (build_over_call): Use it to determine whether to emit a NULL
18 warning for template function instantiations.
19 (build_new_method_call): Set LOOKUP_EXPLICIT_TMPL_ARGS if
20 EXPLICIT_TARGS is set.
21
22 2011-04-29 Nicola Pero <nicola.pero@meta-innovation.com>,
23 Mike Stump <mikestump@comcast.net>
24
25 * Make-lang.in ($(srcdir)/cp/cfns.h): Enable the dependency only
26 in maintainer mode. Use the --output-file option of gperf instead
27 of > to prevent creating an empty cp/cfns.h when gperf is not
28 available.
29
30 2011-04-28 Paolo Carlini <paolo.carlini@oracle.com>
31
32 PR c++/48798
33 * semantics.c (finish_base_specifier): cv-qualified base class
34 is fine, per DR 484.
35
36 2011-04-28 Dodji Seketeli <dodji@redhat.com>
37
38 PR c++/48656
39 * semantics.c (finish_call_expr): Don't forget BASELINK nodes when
40 considering call expressions involving a member function.
41
42 2011-04-28 Paolo Carlini <paolo.carlini@oracle.com>
43
44 PR c++/48530
45 * tree.c (build_cplus_new): Check build_target_expr return
46 value for error_mark_node.
47
48 2011-04-28 Paolo Carlini <paolo.carlini@oracle.com>
49
50 PR c++/48771
51 * semantics.c (literal_type_p): Reference types are literal types,
52 per the FDIS.
53 (valid_type_in_constexpr_fundecl_p): Remove.
54 (is_valid_constexpr_fn): Adjust.
55
56 2011-04-27 Jason Merrill <jason@redhat.com>
57
58 PR libstdc++/48760
59 Implement list-initialization of _Complex.
60 * decl.c (reshape_init_r): Allow {real,imag} for _Complex.
61 (check_initializer): Likewise.
62 * call.c (build_complex_conv): New.
63 (implicit_conversion): Call it.
64 (convert_like_real): Handle it.
65 * typeck2.c (check_narrowing): Handle it.
66
67 * init.c (build_vec_delete_1): Look for sfk_deleting_destructor to
68 decide whether to delete.
69 (build_vec_init): Pass sfk_complete_destructor.
70
71 PR c++/40975
72 * cp-tree.def (VEC_INIT_EXPR): Add third operand.
73 * cp-tree.h (VEC_INIT_EXPR_NELTS): New.
74 * cp-gimplify.c (cp_gimplify_expr) [VEC_INIT_EXPR]: Handle it.
75 * tree.c (build_vec_init_expr): Handle getting pointer/nelts.
76 (build_vec_init_elt): Don't expect an array type.
77 (build_array_copy): Adjust.
78 * init.c (perform_member_init): Adjust.
79 (build_new_1): Use build_vec_init_expr.
80
81 * class.c (resolve_address_of_overloaded_function): Don't
82 change OVERLOAD to TREE_LIST.
83 * pt.c (print_candidates_1): Remove nonsensical assert.
84
85 PR c++/48046
86 * parser.c (cp_parser_diagnose_invalid_type_name): Commit
87 to tentative parse sooner.
88
89 2011-04-26 Jason Merrill <jason@redhat.com>
90
91 PR c++/42687
92 * parser.c (cp_parser_primary_expression): Set *idk to
93 CP_ID_KIND_NONE for a parenthesized identifier.
94
95 * ptree.c (cxx_print_type) [TYPENAME_TYPE]: Dump fullname.
96 (cxx_print_identifier): Correct indentation.
97
98 PR c++/48530
99 * decl.c (cxx_maybe_build_cleanup): Add complain parm.
100 * tree.c (force_target_expr): Add complain parm.
101 (build_target_expr_with_type): Likewise.
102 (get_target_expr_sfinae): Split out.
103 (build_vec_init_expr, bot_manip): Adjust.
104 * init.c (build_vec_delete, build_vec_delete_1): Add complain parm.
105 (build_delete, build_dtor_call): Likewise.
106 (perform_direct_initialization_if_possible): Adjust.
107 (build_vec_init): Handle error return.
108 * cvt.c (force_rvalue): Add complain parm.
109 Call build_special_member_call directly.
110 * decl2.c (delete_sanity): Add complain parm.
111 (build_cleanup): Adjust.
112 * pt.c (tsubst_copy_and_build, tsubst_expr): Adjust.
113 * semantics.c (finish_stmt_expr_expr): Adjust.
114 (finish_compound_literal): Adjust.
115 * parser.c (cp_parser_delete_expression): Adjust.
116 * typeck2.c (build_functional_cast): Adjust.
117 * cp-tree.h: Adjust.
118
119 2011-04-26 Martin Jambor <mjambor@suse.cz>
120
121 * class.c (cp_fold_obj_type_ref): Remove.
122 * cp-tree.h (cp_fold_obj_type_ref): Remove declaration.
123
124 2011-04-25 Paolo Carlini <paolo.carlini@oracle.com>
125
126 * cp-tree.def: Add a new UNDERLYING_TYPE tree code.
127 * cp-tree.h (enum cp_trait_kind): Add CPTK_UNDERLYING_TYPE, tidy.
128 (UNDERLYING_TYPE_TYPE): Add.
129 * cp-objcp-common.c (cp_common_init_ts): Mark UNDERLYING_TYPE
130 as TS_COMMON.
131 * parser.c (cp_lexer_next_token_is_decl_specifier_keyword,
132 cp_parser_simple_type_specifier): Handle UNDERLYING_TYPE.
133 (cp_parser_trait_expr): Deal with RID_UNDERLYING_TYPE; tidy.
134 * semantics.c (finish_underlying_type): New.
135 * typeck.c (structural_comptypes): Handle UNDERLYING_TYPE.
136 * error.c (dump_type, dump_type_prefix, dump_type_suffix): Likewise.
137 * cxx-pretty-print.c (p_cxx_type_id): Likewise.
138 * tree.c (cp_walk_subtrees): Likewise.
139 * pt.c (for_each_template_parm_r, tsubst, unify,
140 dependent_type_p_r): Likewise.
141 * mangle.c (write_type): Sorry for __underlying_type.
142
143 2011-04-25 Jason Merrill <jason@redhat.com>
144
145 PR c++/48707
146 * decl.c (type_dependent_init_p): New.
147 (cp_finish_decl): Check it.
148 * pt.c (any_type_dependent_elements_p): New.
149 * cp-tree.h: Declare it.
150
151 2011-04-20 Jason Merrill <jason@redhat.com>
152
153 * semantics.c (finish_compound_literal): Don't put an array
154 with a dtor in a static variable.
155
156 * call.c (build_over_call): Handle trivial dtor.
157
158 * search.c (lookup_fnfields_slot): Call complete_type.
159
160 PR c++/48594
161 * decl2.c (build_offset_ref_call_from_tree): Move
162 non-dependency of object outside condition.
163
164 PR c++/48657
165 * decl.c (cp_finish_decl): Simplify template handling.
166
167 2011-04-20 Jim Meyering <meyering@redhat.com>
168
169 * tree.c (cxx_printable_name_internal): Remove useless if-before-free.
170
171 2011-04-19 Jason Merrill <jason@redhat.com>
172
173 PR c++/46304
174 * typeck.c (cp_build_binary_op): Fold COMPLEX_EXPR.
175
176 PR c++/45267
177 * decl.c (duplicate_decls): Keep always_inline attribute
178 in sync with DECL_DISREGARD_INLINE_LIMITS.
179
180 2011-04-18 Jason Merrill <jason@redhat.com>
181
182 PR c++/48569
183 * typeck2.c (build_functional_cast): Handle VOID_TYPE.
184
185 PR c++/48537
186 * init.c (build_value_init): Handle UNION_TYPE the same.
187
188 2011-04-18 Jakub Jelinek <jakub@redhat.com>
189
190 PR c++/48632
191 * parser.c (cp_parser_omp_for_loop): Don't use cp_parser_omp_for_incr
192 for type dependent pointers.
193
194 2011-04-18 Jim Meyering <meyering@redhat.com>
195
196 * pt.c (type_unification_real): Fix typo in comment: s/in in/in/.
197
198 2011-04-17 Jan Hubicka <jh@suse.cz>
199
200 * semantics.c (finish_goto_stmt): Do set UNINLINABLE flag on computed
201 gotos.
202
203 2011-04-17 Jason Merrill <jason@redhat.com>
204
205 PR c++/48531
206 * typeck2.c (build_functional_cast): Disallow array type.
207
208 * tree.c (get_target_expr): Handle VEC_INIT_EXPR.
209
210 2011-04-17 Jan Hubicka <jh@suse.cz>
211
212 * class.c (cp_fold_obj_type_ref): Drop vtable_method.
213
214 2011-04-15 Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
215
216 Implement N3271
217 * parser.c (cp_convert_range_for): Split into
218 cp_parser_perform_range_for_lookup.
219 (cp_parser_perform_range_for_lookup): New.
220 (cp_parser_range_for_member_function): New.
221 (cp_parser_for_init_statement): Correct error message.
222 * semantics.c (finish_call_expr): Accept COMPONENT_REF.
223
224 2011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
225
226 * parser.c (cp_parser_objc_protocol_declaration): Updated for
227 change from objc_declare_protocols() to objc_declare_protocol().
228
229 2011-04-14 Nathan Froyd <froydnj@codesourcery.com>
230
231 PR objc++/48479
232 * typeck.c (cxx_mark_addressable) [CONST_DECL]: Mark addressable
233 and return immediately.
234
235 2011-04-14 Nathan Froyd <froydnj@codesourcery.com>
236
237 * cp-tree.def (SWITCH_STMT): Add an extra operand.
238 * cp-objcp-common.c (cp_common_init_ts): Mark it as TS_TYPED.
239 * cp-tree.h (SWITCH_STMT_SCOPE): Define.
240 * semantics.c (begin_switch__stmt): Pass scope to build_stmt.
241 (finish_switch_stmt): Use SWITCH_STMT_SCOPE instead of TREE_CHAIN.
242
243 2011-04-14 Nathan Froyd <froydnj@codesourcery.com>
244
245 * cp-tree.def (IF_STMT): Add an extra operand.
246 * cp-objcp-common.c (cp_common_init_ts): Mark it as TS_TYPED.
247 * cp-tree.h (IF_SCOPE): Define.
248 * semantics.c (begin_if_stmt): Pass scope to build_stmt.
249 (finish_if_stmt): Use IF_SCOPE instead of TREE_CHAIN.
250
251 2011-04-14 Nathan Froyd <froydnj@codesourcery.com>
252
253 * cp-tree.def (FOR_STMT, RANGE_FOR_STMT): Add an extra operand.
254 * cp-objcp-common.c (cp_common_init_ts): Mark them as TS_TYPED.
255 * cp-tree.h (FOR_SCOPE, RANGE_FOR_SCOPE): Define.
256 * semantics.c (begin_for_stmt): Pass an extra arg to build_stmt.
257 Use FOR_SCOPE instead of TREE_CHAIN.
258 (begin_range_for_stmt): Likewise, with RANGE_FOR_SCOPE.
259 (finish_for_stmt): Likewise.
260
261 2011-04-14 Jason Merrill <jason@redhat.com>
262
263 * parser.c (cp_parser_postfix_expression): Fix flags passed to
264 build_new_method_call.
265 * semantics.c (finish_call_expr): Likewise.
266
267 PR c++/48531
268 * init.c (build_value_init_noctor): Check complain consistently.
269
270 PR c++/48557
271 * typeck.c (cp_build_binary_op): Don't decay void operands.
272
273 PR c++/48446
274 * decl.c (compute_array_index_type): Use get_temp_regvar instead
275 of variable_size.
276 * init.c (get_temp_regvar): No longer static.
277 * cp-tree.h: Declare it.
278
279 2011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
280
281 * parser.c (cp_parser_objc_class_declaration): Updated for change
282 in objc_declare_class().
283
284 2011-04-14 Nathan Froyd <froydnj@codesourcery.com>
285
286 * decl.c (poplevel): Use block_chainon.
287
288 2011-04-13 Jason Merrill <jason@redhat.com>
289
290 PR c++/48594
291 * decl2.c (build_offset_ref_call_from_tree): Fix calling a functor
292 or pointer to (non-member) function.
293
294 2011-04-13 Jakub Jelinek <jakub@redhat.com>
295
296 PR c++/48570
297 * semantics.c (cxx_eval_array_reference): Handle reading from
298 wchar_t, char16_t and char32_t STRING_CST.
299
300 2011-04-13 Dodji Seketeli <dodji@redhat.com>
301
302 PR c++/48574
303 * class.c (fixed_type_or_null): We cannot determine the dynamic
304 type of a reference variable if its initializer is dependent.
305
306 2011-04-13 Jason Merrill <jason@redhat.com>
307
308 PR c++/48581
309 * pt.c (tsubst_copy_and_build) [CALL_EXPR]: Don't complain about
310 unqualified lookup failing if we're still in a template.
311
312 2011-04-12 Nathan Froyd <froydnj@codesourcery.com>
313
314 * cp-lang.c (cp_init_ts): Call cp_common_init_ts. Move
315 tree_contains_struct initialization to...
316 * cp-objcp-common.c (cp_common_init_ts): ...here. Use MARK_*
317 macros.
318 * cp-objcp-common.h (cp_common_init_ts): Declare.
319 * cp-tree.h (union lang_tree_node): Check for TS_COMMON before
320 calling TREE_CHAIN.
321
322 2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
323
324 * parser.c (cp_parser_objc_message_expression): Updated call
325 to objc_build_message_expr.
326
327 2011-04-12 Martin Jambor <mjambor@suse.cz>
328
329 * class.c (cp_fold_obj_type_ref): Call cgraph_get_node instead of
330 cgraph_get_create_node.
331 * decl2.c (cp_write_global_declarations): Call cgraph_get_node
332 instead of cgraph_get_create_node.
333 * method.c (make_alias_for_thunk): Call cgraph_get_node
334 instead of cgraph_get_create_node, assert it returns non-NULL.
335 (use_thunk): Likewise.
336 * optimize.c (maybe_clone_body): Call cgraph_same_body_alias only
337 when flag_syntax_only is not set. Call cgraph_get_node instead of
338 cgraph_get_create_node.
339 (maybe_clone_body): Call cgraph_get_node instead of
340 cgraph_get_create_node.
341
342 2011-04-12 Martin Jambor <mjambor@suse.cz>
343
344 * class.c (cp_fold_obj_type_ref): Call cgraph_get_create_node
345 instead of cgraph_node.
346 * decl2.c (cxx_callgraph_analyze_expr): Likewise.
347 (cp_write_global_declarations): Likewise.
348 * optimize.c (maybe_clone_body): Likewise.
349 * semantics.c (maybe_add_lambda_conv_op): Likewise.
350 * mangle.c (mangle_decl): Likewise.
351 * method.c (make_alias_for_thunk): Likewise.
352 (use_thunk): Likewise.
353
354 2011-04-11 Jason Merrill <jason@redhat.com>
355
356 PR c++/48535
357 * decl.c (cp_complete_array_type_or_error): New.
358 * semantics.c (finish_compound_literal): Use it.
359 * cp-tree.h: Declare it.
360
361 PR c++/48535
362 * semantics.c (finish_compound_literal): Handle references.
363
364 PR c++/48535
365 * semantics.c (finish_compound_literal): Take complain parm.
366 (build_lambda_object): Adjust.
367 * cp-tree.h: Adjust.
368 * call.c (convert_like_real): Adjust.
369 * decl.c (check_initializer): Adjust.
370 * parser.c (cp_parser_postfix_expression): Adjust.
371 (cp_parser_functional_cast): Adjust.
372 * pt.c (tsubst_copy_and_build): Adjust.
373 * typeck2.c (process_init_constructor_record): Adjust.
374
375 PR c++/48534
376 * cvt.c (ocp_convert): Use build_nop to convert to underlying type
377 of scoped enum.
378
379 PR c++/48523
380 * tree.c (maybe_dummy_object): Use build_x_indirect_ref rather
381 than cp_build_indirect_ref.
382
383 PR c++/48457, Core 1238
384 * call.c (reference_binding): Allow rvalue reference to bind to
385 function lvalue.
386 * tree.c (lvalue_kind): Functions are always lvalues.
387
388 2011-04-07 Jason Merrill <jason@redhat.com>
389
390 PR c++/48500
391 * semantics.c (potential_constant_expression_1) [CALL_EXPR]: Check
392 arguments even if we don't know the function.
393
394 PR c++/48481
395 * tree.c (build_overload): Allow an unwrapped FUNCTION_DECL
396 at the end of the chain.
397 * pt.c (dependent_template_p): Use OVL_CURRENT/NEXT.
398 (iterative_hash_template_arg): Likewise.
399
400 PR c++/48481
401 * cp-tree.h (OVL_ARG_DEPENDENT): New.
402 * name-lookup.c (add_function): Set it.
403 * semantics.c (finish_call_expr): Free OVERLOADs if it's set.
404
405 PR c++/48481
406 * call.c (build_user_type_conversion_1): Use lookup_fnfields_slot.
407 Release unused vector.
408
409 PR c++/48451
410 * pt.c (fn_type_unification): Don't clear incomplete pack flag.
411 (type_unification_real): Clear it here instead.
412
413 PR c++/48468
414 * except.c (build_noexcept_spec): Propagate error_mark_node.
415 (finish_noexcept_expr): Likewise.
416
417 PR c++/48452
418 * typeck.c (build_x_compound_expr_from_list): Return error_mark_node
419 in SFINAE context.
420
421 PR c++/48450
422 * call.c (resolve_args): Take complain.
423 (build_new_function_call, build_operator_new_call): Pass it.
424 (build_op_call, build_new_op, build_new_method_call): Pass it.
425
426 PR c++/48450
427 * typeck.c (check_for_casting_away_constness): Take complain.
428 (build_static_cast_1, build_reinterpret_cast_1): Pass it.
429 (build_const_cast_1): Pass it. Take full complain parm.
430 (build_const_cast, cp_build_c_cast): Adjust.
431
432 * tree.c (build_aggr_init_expr): Always return error_mark_node
433 on abstract violation.
434
435 PR c++/48450
436 * tree.c (build_cplus_new, build_aggr_init_expr): Take complain.
437 (bot_manip): Adjust.
438 * cp-tree.h: Adjust.
439 * call.c (convert_like_real, build_cxx_call): Adjust.
440 (perform_direct_initialization_if_possible): Adjust.
441 * cvt.c (ocp_convert): Adjust.
442 * init.c (build_value_init): Adjust.
443 * semantics.c (maybe_add_lambda_conv_op): Adjust.
444 * typeck.c (unary_complex_lvalue, cp_build_modify_expr): Adjust.
445 * typeck2.c (build_functional_cast): Adjust.
446
447 * init.c (build_value_init_noctor): Handle REFERENCE_TYPE at top
448 level.
449 (perform_member_init): Not here.
450 * typeck2.c (build_functional_cast): Limit REFERENCE_TYPE special
451 case to templates.
452 (abstract_virtuals_error_sfinae): Remove RESULT_DECL special case.
453
454 PR c++/48449
455 * typeck2.c (build_functional_cast): Check complain consistently.
456 Use build_value_init and abstract_virtuals_error_sfinae.
457 (abstract_virtuals_error_sfinae): Split out.
458 * cp-tree.h: Declare it.
459 * init.c (build_new_1): Use it.
460 (build_value_init_noctor): Handle FUNCTION_TYPE.
461
462 * semantics.c (finish_decltype_type): Simplify handling of unknown
463 type.
464
465 * semantics.c (finish_decltype_type): Add complain parm.
466 * cp-tree.h: Adjust.
467 * parser.c (cp_parser_decltype): Adjust.
468 * pt.c (tsubst): Adjust.
469
470 PR c++/48450
471 * cvt.c (ocp_convert): Handle converting scoped enum to bool.
472
473 2011-03-31 Jason Merrill <jason@redhat.com>
474
475 PR c++/48277
476 * semantics.c (finish_call_expr): Remove assert.
477
478 PR c++/48280
479 * method.c (defaultable_fn_check): Templates are not defaultable.
480
481 * parser.c (cp_parser_init_declarator): Avoid redundant
482 cp_finish_decl for member declarations.
483
484 2011-03-30 Jason Merrill <jason@redhat.com>
485
486 PR c++/48212
487 * semantics.c (non_const_var_error): Just return if DECL_INITIAL
488 is error_mark_node.
489
490 2011-03-30 Jason Merrill <jason@redhat.com>
491
492 PR c++/48369
493 * semantics.c (potential_constant_expression_1): Handle
494 UNORDERED_EXPR and ORDERED_EXPR.
495
496 PR c++/48281
497 * semantics.c (finish_compound_literal): Do put static/constant
498 arrays in static variables.
499
500 * call.c (convert_like_real) [ck_list]: Build up the
501 initializer_list object directly.
502 * decl.c (build_init_list_var_init): Adjust.
503
504 * call.c (convert_like_real): Correct TREE_CONSTANT on CONSTRUCTOR.
505 * decl.c (reshape_init_array_1): Likewise.
506
507 2011-03-29 Jason Merrill <jason@redhat.com>
508
509 PR c++/48265
510 * pt.c (value_dependent_expression_p) [VAR_DECL]: Make sure
511 the variable is constant before looking at its initializer.
512
513 PR c++/48319
514 * pt.c (value_dependent_expression_p): Handle TEMPLATE_ID_EXPR.
515
516 PR c++/48089
517 * semantics.c (potential_constant_expression_1): Change error about
518 use of *this in constructor into sorry.
519
520 PR c++/48296
521 * decl.c (cp_finish_decl): Defer validation of constexpr member
522 functions.
523 * class.c (finalize_literal_type_property): Validate them here.
524 * semantics.c (is_valid_constexpr_fn): Don't check completeness.
525
526 * semantics.c (is_valid_constexpr_fn): Specify input location.
527
528 2011-03-28 Jason Merrill <jason@redhat.com>
529
530 PR c++/48313
531 * pt.c (maybe_adjust_types_for_deduction): Handle T&& deduction
532 from overloaded function.
533
534 Core 1232
535 * call.c (build_array_conv): New.
536 (implicit_conversion): Use it.
537
538 * call.c (reference_binding): Allow direct binding to an array
539 rvalue.
540
541 Core 898
542 * parser.c (cp_parser_compound_statement): Add function_body parm.
543 Complain about non-body compound-stmt in constexpr fn.
544 (cp_parser_primary_expression, cp_parser_statement): Adjust.
545 (cp_parser_implicitly_scoped_statement): Adjust.
546 (cp_parser_function_body, cp_parser_try_block): Adjust.
547 (cp_parser_handler, cp_parser_objc_synchronized_statement): Adjust.
548 (cp_parser_objc_try_catch_finally_statement): Adjust.
549
550 Core 898
551 * semantics.c (constexpr_fn_retval): New. Allow using-declaration
552 and using-definition.
553 (register_constexpr_fundef): Call it.
554
555 * except.c (build_noexcept_spec): Call cxx_constant_value after
556 converting to bool.
557
558 2011-03-25 Kai Tietz <ktietz@redhat.com>
559
560 * lex.c (interface_strcmp): Handle dos-paths.
561 (handle_pragma_implementation): Use filename_cmp instead of
562 strcmp.
563 (in_main_input_context): Likewise.
564
565 2011-03-25 Jason Merrill <jason@redhat.com>
566
567 Core 1135
568 * method.c (defaulted_late_check): Check for exception spec mismatch.
569 (defaultable_fn_check): Allow exception spec and virtual.
570 * class.c (check_for_override): A virtual dtor is non-trivial.
571
572 PR c++/48289
573 * pt.c (build_non_dependent_expr): Keep dereferences outside the
574 NON_DEPENDENT_EXPR.
575
576 2011-03-25 Kai Tietz <ktietz@redhat.com>
577
578 * decl.c (decls_match): Replace target hook
579 call of comp_type_attributes by version in tree.c file.
580 * search.c (check_final_overrider): Likewise.
581 * typeck.c (structural_comptypes): Likewise.
582
583 2011-03-21 Kai Tietz <ktietz@redhat.com>
584
585 PR target/12171
586 * cxx-pretty-print.c (pp_cxx_ptr_operator):
587 Display allowed attributes for function pointer types.
588 * error.c (dump_type_prefix): Likewise.
589
590 * tree.c (cxx_attribute_table): Adjust table.
591
592 2011-03-18 Jason Merrill <jason@redhat.com>
593
594 PR c++/48162
595 * semantics.c (finish_call_expr): Allow TARGET_EXPR for now.
596
597 PR c++/48118
598 * call.c (build_over_call): Don't skip ck_rvalue.
599
600 2011-03-17 Jason Merrill <jason@redhat.com>
601
602 PR c++/47504
603 * semantics.c (cxx_eval_constant_expression) [NOP_EXPR]: Don't let
604 the conversion set TREE_OVERFLOW.
605
606 Core 1212
607 * semantics.c (finish_decltype_type): Return T&& for xvalue.
608 * typeck.c (unlowered_expr_type): Preserve cv-quals.
609
610 PR c++/48166
611 * decl.c (revert_static_member_fn): Strip function-cv-quals.
612
613 2011-03-16 Jason Merrill <jason@redhat.com>
614
615 PR c++/48089
616 * semantics.c (potential_constant_expression_1): Don't allow *this
617 in a constructor.
618 (register_constexpr_fundef): Use potential_rvalue_constant_expression.
619
620 PR c++/47301
621 * decl.c (compute_array_index_type): Don't bother trying to deal
622 with literal classes in ABI v1.
623
624 PR c++/46336
625 * decl.c (duplicate_decls): Return NULL_TREE for clashing
626 C functions.
627
628 PR c++/47570
629 * semantics.c (cxx_eval_constant_expression) [COMPOUND_EXPR]: Don't
630 use the generic binary expression handling.
631
632 2011-03-16 Diego Novillo <dnovillo@google.com>
633
634 * Make-lang.in (CXX_PARSER_H): New.
635 (cp/parser.o): Add dependency on CXX_PARSER_H.
636 Add dependency on tree-pretty-print.h
637 (cp/cp-lang.o): Add dependency on CXX_PARSER_H.
638 * cp-lang.c: Include parser.h.
639 * parser.c: Include parser.h.
640 (struct cp_token): Add bitfield purged_p.
641 Update all users.
642 Move to parser.h.
643 (CPP_PURGED): Remove. Update all users.
644 (struct cp_lexer): Change field buffer to be a VEC of cp_token.
645 Remove field buffer_length.
646 Update all users.
647 Move to parser.h.
648 (struct tree_check): Move to parser.h.
649 (cp_token_position): Likewise.
650 (struct cp_token_cache): Likewise.
651 (CPP_KEYWORD): Likewise.
652 (CPP_TEMPLATE_ID): Likewise.
653 (CPP_NESTED_NAME_SPECIFIER): Likewise.
654 (N_CP_TTYPES): Likewise.
655 (enum cp_parser_status_kind): Likewise.
656 (struct cp_parser_context): Likewise.
657 (struct cp_default_arg_entry_d): Likewise.
658 (struct cp_unparsed_functions_entry_d): Likewise.
659 (struct cp_parser): Likewise.
660 (cp_lexer_dump_tokens): New.
661 (cp_lexer_debug_tokens): New.
662 (cp_lexer_finished_p): New.
663 (cp_lexer_alloc): Factor out of cp_lexer_new_main.
664 (cp_lexer_new_main): Re-write main lexing loop to push
665 tokens into the new VEC buffer.
666 (cp_lexer_print_token): Improve printing of CPP_NUMBER tokens.
667 Do not abort if the token type is not recognized, just print
668 its code.
669 * parser.h: New file.
670 * config-lang.in (gtfiles): Add cp/parser.h.
671
672 2011-03-16 Jason Merrill <jason@redhat.com>
673
674 Core 1148
675 * typeck.c (check_return_expr): Fix conditions for setting
676 LOOKUP_PREFER_RVALUE.
677
678 * call.c (build_over_call): Remove require_complete_type_sfinae call.
679
680 PR c++/48132
681 * decl.c (check_array_designated_initializer): Allow integer index.
682 (reshape_init_array_1): Set index on the elements.
683
684 2011-03-16 Jason Merrill <jason@redhat.com>
685
686 PR c++/48113
687 * typeck.c (convert_for_initialization): Use
688 perform_implicit_conversion_flags.
689 * call.c (standard_conversion): If LOOKUP_PREFER_RVALUE, set
690 rvaluedness_matches_p on ck_rvalue.
691 (convert_like_real) [ck_rvalue]: And restore it here.
692
693 PR c++/48115
694 * call.c (convert_arg_to_ellipsis): Handle incomplete type.
695
696 2011-03-16 Jason Merrill <jason@redhat.com>
697
698 * parser.c (cp_parser_abort_tentative_parse): Make sure we haven't
699 committed to this tentative parse.
700
701 PR c++/47999
702 * semantics.c (finish_call_expr): Preserve reference semantics
703 in templates.
704
705 * call.c (convert_default_arg): Use LOOKUP_IMPLICIT.
706
707 2011-03-16 Jakub Jelinek <jakub@redhat.com>
708
709 * cp-objcp-common.c (cp_function_decl_explicit_p): Don't crash if
710 DECL_LANG_SPECIFIC is NULL.
711
712 2011-03-15 Jason Merrill <jason@redhat.com>
713
714 Core 1074
715 * pt.c (value_dependent_expression_p) [NOEXCEPT_EXPR]: Don't
716 check value_dependent_expression_p on the operand.
717
718 * semantics.c (push_cx_call_context): Return bool.
719 (cxx_eval_call_expression): Handle excess depth.
720
721 Core 1191
722 * method.c (synthesized_method_walk): Cleanups don't affect the
723 triviality of a constructor, but do affect deletion and exception
724 specification.
725
726 2011-03-15 Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
727
728 * decl2.c (cp_check_const_attributes): New.
729 (cplus_decl_attributes): Call cp_check_const_attributes.
730
731 2011-03-15 Jason Merrill <jason@redhat.com>
732
733 PR c++/34758
734 * call.c (convert_default_arg): Use DECL_ORIGIN of fn. Check for
735 recursion first.
736 (push_defarg_context, pop_defarg_context): New.
737 * parser.c (cp_parser_late_parsing_default_args): Use them.
738 * cp-tree.h: Declare them.
739
740 2011-03-11 Dodji Seketeli <dodji@redhat.com>
741
742 * call.c (add_builtin_candidate)<case INDIRECT_REF>: The type of
743 the argument of the indirection operator should not be dependent.
744 Fix the comment.
745
746 2011-03-11 Jason Merrill <jason@redhat.com>
747
748 PR c++/47125
749 * pt.c (tsubst) [TYPENAME_TYPE]: Only give errors if tf_error.
750
751 PR c++/47144
752 * parser.c (cp_parser_template_type_arg): Set
753 type_definition_forbidden_message.
754
755 PR c++/47808
756 * decl.c (compute_array_index_type): Discard folding
757 if it didn't produce a constant.
758
759 2011-03-11 Jakub Jelinek <jakub@redhat.com>
760
761 PR c++/48035
762 * init.c (build_zero_init_1): Extracted from build_zero_init.
763 Add FIELD_SIZE argument, if non-NULL and field bit_position
764 as not smaller than that, don't add that field's initializer.
765 Pass DECL_SIZE as last argument to build_zero_init_1
766 for DECL_FIELD_IS_BASE fields.
767 (build_zero_init): Use build_zero_init_1.
768
769 2011-03-10 Jason Merrill <jason@redhat.com>
770
771 PR c++/48029
772 * pt.c (iterative_hash_template_arg): Remove special case for
773 ARRAY_TYPE.
774
775 PR c++/47198
776 * parser.c (cp_parser_single_declaration): Just return if
777 cp_parser_parse_and_diagnose_invalid_type_name complained.
778
779 2011-03-09 Jason Merrill <jason@redhat.com>
780
781 PR c++/44629
782 * pt.c (unify): An unresolved overload is a nondeduced context.
783
784 2011-03-09 Martin Jambor <mjambor@suse.cz>
785
786 PR tree-optimization/47714
787 * method.c (use_thunk): Clear addressable flag of thunk arguments.
788
789 2011-03-08 Dodji Seketeli <dodji@redhat.com>
790
791 PR c++/47705
792 * pt.c (convert_nontype_argument): Only call decay_conversion on
793 arrays.
794
795 2011-03-08 Jason Merrill <jason@redhat.com>
796
797 PR c++/47488
798 * mangle.c (write_template_arg_literal) [STRING_CST]: Sorry.
799
800 PR c++/47705
801 * pt.c (convert_nontype_argument): Don't crash on non-pointer
802 argument to pointer parameter.
803
804 PR c++/45651
805 * pt.c (instantiate_decl): Don't clear DECL_INTERFACE_KNOWN on
806 !TREE_PUBLIC decls.
807
808 2011-03-08 Dodji Seketeli <dodji@redhat.com>
809
810 PR c++/47957
811 * name-lookup.c (binding_to_template_parms_of_scope_p): Only
812 consider scopes of primary template definitions. Adjust comments.
813
814 2011-03-07 Jason Merrill <jason@redhat.com>
815
816 PR c++/48003
817 * pt.c (convert_nontype_argument): Fix -fpermissive allowing
818 integer overflow.
819 * semantics.c (potential_constant_expression_1): Check TREE_OVERFLOW.
820
821 PR c++/48015
822 * init.c (constant_value_1): Always require init to be TREE_CONSTANT.
823
824 PR c++/48008
825 * mangle.c (write_type): Strip cv-quals from FUNCTION_TYPE here.
826 (write_CV_qualifiers_for_type): Not here.
827
828 2011-03-06 Joseph Myers <joseph@codesourcery.com>
829
830 * lang-specs.h: Match -save-temps* instead of -save-temps.
831
832 2011-03-05 Jason Merrill <jason@redhat.com>
833
834 * mangle.c (write_expression): Change ABI v6 to v5.
835 (write_type): Likewise.
836
837 2011-03-04 Jan Hubicka <jh@suse.cz>
838
839 PR lto/47497
840 * optimize.c (maybe_clone_body): Update call of cgraph_same_body_alias
841 and cgraph_add_thunk.
842 * method.c (make_alias_for_thunk, use_thunk): Likewise.
843 * mangle.c (mangle_decl): Likewise.
844
845 2011-03-04 Jason Merrill <jason@redhat.com>
846
847 PR c++/47971
848 * pt.c (tsubst_copy_and_build) [PSEUDO_DTOR_EXPR]: Use tsubst for type.
849 (tsubst_copy) [default]: Just return t if !ENABLE_CHECKING.
850
851 PR c++/46220
852 * search.c (check_final_overrider): Allow pointer to same incomplete
853 class type with different cv-quals.
854
855 2011-03-03 Paolo Carlini <paolo.carlini@oracle.com>
856
857 PR c++/47974
858 * pt.c (tsubst_template_args): Check argument t for error_mark_node.
859
860 2011-03-03 Jason Merrill <jason@redhat.com>
861
862 PR c++/47950
863 * pt.c (tsubst_copy_and_build) [TARGET_EXPR]: Retain TREE_CONSTANT.
864
865 2011-03-02 Jason Merrill <jason@redhat.com>
866
867 PR c++/47950
868 * parser.c (cp_parser_condition): Don't fold_non_dependent_expr here.
869
870 PR c++/47774
871 * tree.c (build_vec_init_elt): Split out from...
872 (build_vec_init_expr): ...here.
873 (diagnose_non_constexpr_vec_init): New fn.
874 * semantics.c (potential_constant_expression_1): Use it.
875 * cp-tree.h: Declare it.
876
877 2011-03-01 Jason Merrill <jason@redhat.com>
878
879 PR c++/46159
880 * parser.c (cp_parser_primary_expression): Don't warn about a
881 failed tentative parse.
882
883 PR c++/47200
884 * semantics.c (cxx_bind_parameters_in_call): Don't call
885 adjust_temp_type on non-constant args.
886
887 PR c++/47851
888 * call.c (standard_conversion): Provide requested cv-quals on
889 class rvalue conversion.
890
891 PR c++/46282
892 * decl2.c (grokbitfield): Handle type-dependent width.
893
894 2011-02-28 Jason Merrill <jason@redhat.com>
895
896 PR c++/47873
897 * class.c (update_vtable_entry_for_fn): Check BINFO_LOST_PRIMARY_P
898 after checking for a non-thunk.
899
900 2011-02-26 Jason Merrill <jason@redhat.com>
901
902 PR c++/47904
903 * tree.c (cp_tree_equal): Compare DECL_PARM_LEVEL.
904 * pt.c (iterative_hash_template_arg): And hash it.
905
906 PR c++/47897
907 * semantics.c (non_const_var_error): Split out from...
908 (cxx_eval_constant_expression): ...here.
909 (potential_constant_expression_1) [VAR_DECL]: Use it.
910 Allow dependent variables.
911
912 2011-02-24 Jason Merrill <jason@redhat.com>
913
914 * parser.c (cp_parser_constant_expression): Set
915 non_integral_constant_expression correctly for C++0x too.
916 (cp_parser_static_assert): Allow non-constant expression.
917 (cp_parser_direct_declarator): Expect non_constant_p to be set
918 properly for C++0x.
919 * pt.c (value_dependent_expression_p): Handle TYPEID_EXPR.
920 * semantics.c (maybe_constant_value): Check type_unknown_p too.
921 (potential_rvalue_constant_expression): New.
922 (require_potential_rvalue_constant_expression): New.
923
924 2011-02-23 Jason Merrill <jason@redhat.com>
925
926 * cp-tree.h (DECL_PARM_LEVEL): New.
927 (struct lang_decl_parm): Add level field.
928 * name-lookup.c (function_parm_depth): New fn.
929 * name-lookup.h: Declare it.
930 * parser.c (cp_parser_parameter_declaration_list): Use it.
931 * mangle.c (struct globals): Add parm_depth field.
932 (write_bare_function_type): Adjust it.
933 (write_expression): Include the level delta in PARM_DECL mangling
934 for abi >= 6.
935
936 * semantics.c (finish_decltype_type): Remove shortcut for decltype
937 of id-expression.
938 * mangle.c (write_type) [DECLTYPE_TYPE]: Strip it here for abi < 6.
939
940 2011-02-23 Nathan Froyd <froydnj@codesourcery.com>
941
942 PR c++/46868
943 * parser.c (cp_parser_class_specifier): Require a closing brace
944 to attempt error recovery.
945
946 2011-02-23 Jakub Jelinek <jakub@redhat.com>
947
948 PR c++/47833
949 * pt.c (struct pending_template): Add chain_next GTY option.
950 * decl.c (struct named_label_use_entry): Likewise.
951
952 2011-02-22 Paolo Carlini <paolo.carlini@oracle.com>
953
954 PR c++/47242
955 * semantics.c (build_lambda_object): Bail out if a field is
956 error_mark_node.
957
958 2011-02-22 Dodji Seketeli <dodji@redhat.com>
959
960 PR c++/47666
961 * class.c (dfs_declare_virt_assop_and_dtor)
962 (declare_virt_assop_and_dtor): New static functions.
963 (add_implicitly_declared_members): Use
964 declare_virt_assop_and_dtor.
965
966 2011-02-21 Jason Merrill <jason@redhat.com>
967
968 PR c++/47207
969 * decl2.c (decl_constant_var_p): A constexpr var needs an
970 initializer to be constant.
971 * semantics.c (cxx_eval_constant_expression): Complain about
972 constexpr var used in its own initializer.
973 * call.c (set_up_extended_ref_temp): Set
974 DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P too.
975
976 2011-02-20 Jason Merrill <jason@redhat.com>
977
978 PR c++/47199
979 * semantics.c (cxx_eval_call_expression): Call
980 cxx_eval_constant_expression in trivial shortcut.
981
982 PR c++/46831
983 * call.c (convert_class_to_reference): Don't try to set up a
984 second conv sequence for non-viable candidates.
985
986 PR c++/47703
987 * error.c (location_of): Handle non-tagged types.
988
989 PR c++/46472
990 * method.c (process_subob_fn): Instantiate constexpr templates.
991 * optimize.c (maybe_clone_body): Propagate DECL_DECLARED_CONSTEXPR_P.
992
993 2011-02-20 Dodji Seketeli <dodji@redhat.com>
994
995 PR c++/46394
996 * pt.c (tsubst_pack_expansion): do not use
997 cp_tree_equal/same_type_p to detect an expansion of a parameter
998 pack.
999
1000 2011-02-19 Jason Merrill <jason@redhat.com>
1001
1002 PR c++/47503
1003 * semantics.c (cxx_eval_call_expression): Shortcut trivial copy.
1004
1005 2011-02-18 Paolo Carlini <paolo.carlini@oracle.com>
1006
1007 PR c++/47795
1008 * semantics.c (finish_non_static_data_member): Early return if
1009 object is error_mark_node.
1010
1011 2011-02-18 Dodji Seketeli <dodji@redhat.com>
1012
1013 PR c++/47208
1014 * pt.c (do_auto_deduction): Do not mention error_mark_node in
1015 diagnostics.
1016 * semantics.c (finish_id_expression): Do not pass erroneous decl
1017 to decl_constant_var_p.
1018
1019 2011-02-17 Jakub Jelinek <jakub@redhat.com>
1020
1021 PR c++/47783
1022 * cvt.c (convert_from_reference): Call mark_exp_read.
1023
1024 2011-02-11 Dodji Seketeli <dodji@redhat.com>
1025
1026 PR c++/47172
1027 * pt.c (finish_call_expr): Consider a call expression that has a
1028 dependent "this" pointer as being dependent. Add comments.
1029 (dependent_type_p, type_dependent_expression_p): Update comments.
1030
1031 2011-02-16 Dodji Seketeli <dodji@redhat.com>
1032
1033 PR c++/47326
1034 * pt.c (tsubst_copy)<case SIZEOF_EXPR>: Ensure that even pack
1035 expansion arguments are not evaluated.
1036
1037 2011-02-16 Jakub Jelinek <jakub@redhat.com>
1038
1039 PR c++/47704
1040 * cp-tree.h (ENUM_FIXED_UNDERLYING_TYPE_P): Use TYPE_LANG_FLAG_5
1041 instead of TYPE_LANG_FLAG_3.
1042 * pt.c (lookup_template_class): Copy over
1043 ENUM_FIXED_UNDERLYING_TYPE_P.
1044
1045 2011-02-15 Jason Merrill <jason@redhat.com>
1046
1047 PR c++/46807
1048 * method.c (synthesized_method_walk): Always exit early for
1049 trivial fn in C++98 mode.
1050
1051 2011-02-14 Jason Merrill <jason@redhat.com>
1052
1053 PR c++/47482
1054 * parser.c (cp_parser_enumerator_definition): Call
1055 fold_non_dependent_expr.
1056
1057 2011-02-09 Jason Merrill <jason@redhat.com>
1058
1059 * decl.c (cp_make_fname_decl): Set DECL_THIS_STATIC at toplevel.
1060 * semantics.c (finish_fname): Only return the name if we're in
1061 a function.
1062
1063 * decl.c (build_enumerator): Don't perform integral promotions on
1064 non-integral constants.
1065
1066 * cvt.c (convert_to_void): Handle null op1.
1067
1068 * class.c (type_has_constexpr_default_constructor): Make sure the
1069 caller stripped an enclosing array.
1070 * init.c (perform_member_init): Strip arrays before calling it.
1071
1072 PR c++/47511
1073 * semantics.c (potential_constant_expression_1): Handle TEMPLATE_DECL.
1074
1075 2011-02-03 Dodji Seketeli <dodji@redhat.com>
1076
1077 PR c++/47398
1078 * tree.c (cp_tree_equal)<TEMPLATE_PARM_INDEX>: Take the number of
1079 template parameters in account.
1080
1081 2011-02-03 Nathan Froyd <froydnj@codesourcery.com>
1082
1083 PR c++/46890
1084 * parser.c (cp_parser_class_specifier): Fix setting of
1085 want_semicolon.
1086
1087 2011-01-31 Jakub Jelinek <jakub@redhat.com>
1088
1089 PR c++/47416
1090 * semantics.c (build_data_member_initialization): Handle
1091 STATEMENT_LIST always instead of just for CLEANUP_BODY.
1092
1093 2011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1094
1095 * g++spec.c (lang_specific_driver) [HAVE_LD_STATIC_DYNAMIC] Use
1096 LD_STATIC_OPTION, LD_DYNAMIC_OPTION.
1097
1098 2011-01-29 Dodji Seketeli <dodji@redhat.com>
1099
1100 PR c++/47311
1101 * cp-tree.h (fixup_template_parms): Declare.
1102 * pt.c (end_template_parm_list): Do not fixup template parms here.
1103 (fixup_template_parms): Remove static. Fix typo in the
1104 comments. Remove useless code statement.
1105 (fixup_template_parm): For a template template parameter, fixup
1106 its attributes before fixing up its type.
1107 * parser.c
1108 (cp_parser_template_declaration_after_export): After parsing
1109 template parameters fixup their types.
1110
1111 2011-01-26 Jakub Jelinek <jakub@redhat.com>
1112
1113 PR c++/47476
1114 * semantics.c (potential_constant_expression_1): Handle
1115 TRUTH_XOR_EXPR.
1116
1117 2011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
1118
1119 PR c++/43601
1120 * semantics.c (expand_or_defer_fn_1): Handle it.
1121 * decl2.c (decl_needed_p): Likewise.
1122
1123 2011-01-21 Jason Merrill <jason@redhat.com>
1124
1125 PR c++/47041
1126 * semantics.c (build_constexpr_constructor_member_initializers):
1127 Handle trivial copy.
1128
1129 2011-01-21 Jakub Jelinek <jakub@redhat.com>
1130
1131 PR c++/47388
1132 * semantics.c (begin_for_stmt): If -fno-for-scope, don't
1133 assume init must be NULL if scope is NULL.
1134 (begin_range_for_stmt): Likewise.
1135
1136 2011-01-21 Jason Merrill <jason@redhat.com>
1137
1138 PR c++/46552
1139 * semantics.c (cxx_eval_constant_expression): Handle OFFSET_REF.
1140
1141 PR c++/46977
1142 * semantics.c (potential_constant_expression_1): Split out from
1143 potential_constant_expression. Add want_rval parm. Handle
1144 template expression forms. Don't enforce restriction on address
1145 of automatic variable here. Add a couple of diagnostics that
1146 had been missing.
1147 (require_potential_constant_expression): New entry point.
1148 (build_data_member_initialization, register_constexpr_fundef): Adjust.
1149 (maybe_constant_value): Check potential_constant_expression.
1150 * pt.c (fold_non_dependent_expr_sfinae): Likewise.
1151 * tree.c (build_vec_init_expr): Adjust.
1152
1153 2011-01-19 Jakub Jelinek <jakub@redhat.com>
1154
1155 PR c++/47303
1156 * decl2.c (finish_anon_union): Only call mangle_decl if TREE_STATIC
1157 or DECL_EXTERNAL.
1158
1159 2011-01-17 Jason Merrill <jason@redhat.com>
1160
1161 PR c++/47067
1162 * semantics.c (base_field_constructor_elt): New fn.
1163 (cxx_eval_bare_aggregate): Use it.
1164 (build_data_member_initialization): Leave COMPONENT_REF for
1165 vfield inits.
1166
1167 2011-01-14 Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
1168
1169 * parser.c (cp_parser_range_for): Remove the "unused variable" warning
1170 workaround.
1171
1172 2011-01-15 Giovanni Funchal <gafunchal@gmail.com>
1173 Jonathan Wakely <jwakely.gcc@gmail.com>
1174
1175 PR c++/33558
1176 * decl.c (grokdeclarator): Reject mutable reference members.
1177
1178 2011-01-14 Jason Merrill <jason@redhat.com>
1179
1180 PR c++/47289
1181 * pt.c (coerce_template_parms): Fix error recovery.
1182
1183 PR c++/46903
1184 * typeck2.c (check_narrowing): Only check arithmetic types.
1185
1186 PR c++/46688
1187 * tree.c (build_vec_init_expr): Handle flexible array
1188 properly.
1189
1190 2011-01-13 Kai Tietz <kai.tietz@onevision.com>
1191
1192 PR c++/47213
1193 * cp-tree.h (CLASSTYPE_VISIBILITY): Use
1194 TYPE_MAIN_DECL instead of TYPE_NAME.
1195 (CLASSTYPE_VISIBILITY_SPECIFIED): Likewise.
1196 * decl2.c (determine_visibility): Add check
1197 of CLASS_TYPE_P for underlying_type.
1198
1199 2011-01-12 Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
1200
1201 * cp-tree.h (begin_for_scope): New prototype.
1202 (begin_for_stmt): Update prototype.
1203 (begin_range_for_stmt): Update prototype.
1204 * init.c (build_vec_init): Update call to begin_for_stmt.
1205 * parser.c (cp_parser_for): New.
1206 (cp_parser_c_for): Add three new parameters.
1207 (cp_parser_range_for): Likewise. Most parsing code removed.
1208 (cp_parser_iteration_statement): Call cp_parser_for instead of
1209 cp_parser_c_for and cp_parser_range_for.
1210 (cp_parser_for_init_statement): Add new parameter and return type.
1211 (cp_parser_block_declaration): Update call to
1212 cp_parser_simple_declaration.
1213 (cp_parser_simple_declaration): Add new parameter.
1214 Update call to cp_parser_init_declarator.
1215 (cp_parser_init_declarator): Add new parameter.
1216 * pt.c (tsubst_expr): Update call to begin_for_stmt.
1217 * semantics.c (begin_for_scope): New.
1218 (begin_for_stmt): Add two new parameters.
1219 (begin_range_for_stmt): Likewise.
1220
1221 2011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
1222
1223 * parser.c (cp_parser_objc_at_property_declaration): Improved
1224 error message.
1225
1226 2011-01-11 Dodji Seketeli <dodji@redhat.com>
1227
1228 PR debug/46955
1229 * cp-lang.c (get_template_innermost_arguments_folded)
1230 (get_template_argument_pack_elems_folded)
1231 (template_arg_needs_folding, fold_cplus_constants): New static
1232 functions.
1233 (LANG_HOOKS_GET_INNERMOST_GENERIC_ARGS): Set this hook to
1234 get_template_innermost_arguments_folded.
1235 (LANG_HOOKS_GET_ARGUMENT_PACK_ELEMS): Set this hook to
1236 get_template_argument_pack_elems_folded.
1237
1238 2011-01-11 Jason Merrill <jason@redhat.com>
1239
1240 PR c++/46658
1241 * init.c (build_new_1): Handle value-init in templates differently.
1242
1243 PR c++/45520
1244 * tree.c (maybe_dummy_object): Check current_class_ref against
1245 context, not current_class_type.
1246
1247 2011-01-08 Nicola Pero <nicola.pero@meta-innovation.com>
1248
1249 PR objc/47078
1250 * parser.c (cp_parser_objc_typename): If the type is unknown, for
1251 error recovery purposes behave as if it was not specified so that
1252 the default type is used.
1253
1254 2011-01-07 Jakub Jelinek <jakub@redhat.com>
1255
1256 PR c++/47022
1257 * pt.c (tsubst_copy_and_build): Use tsubst instead of tsubst_copy
1258 for the second build_x_va_arg argument.
1259
1260 2011-01-05 Tom Tromey <tromey@redhat.com>
1261
1262 * typeck.c (cp_build_addr_expr_1): Update call to lvalue_error.
1263 (lvalue_or_else): Likewise.
1264
1265 2011-01-01 Kai Tietz <kai.tietz@onevision.com>
1266
1267 PR target/38662
1268 * tree.c (cxx_type_hash_eq):
1269 Allow METHOD_TYPE, too.
1270
1271 \f
1272 Copyright (C) 2011 Free Software Foundation, Inc.
1273
1274 Copying and distribution of this file, with or without modification,
1275 are permitted in any medium without royalty provided the copyright
1276 notice and this notice are preserved.