opts-common.c (handle_option, [...]): Add diagnostic_context parameter.
[gcc.git] / gcc / cp / ChangeLog
1 2010-10-05 Joseph Myers <joseph@codesourcery.com>
2
3 * cp-tree.h (cxx_print_error_function,
4 cxx_initialize_diagnostics): Declare using diagnostic_context
5 typedef.
6
7 2010-10-04 Andi Kleen <ak@linux.intel.com>
8
9 * Make-lang.in (g++, cc1plus): Add + to build rule.
10
11 2010-10-04 Jason Merrill <jason@redhat.com>
12
13 * tree.c (decl_storage_duration): New.
14 * cp-tree.h: Declare it.
15 (duration_kind): Return values.
16
17 2010-10-03 Jason Merrill <jason@redhat.com>
18
19 * typeck.c (require_complete_type_sfinae): Add complain parm to...
20 (require_complete_type): ...this function.
21 (cp_build_array_ref, convert_arguments): Use it.
22 (convert_for_initialization, cp_build_modify_expr): Likewise.
23 * cp-tree.h: Declare it.
24 * call.c (build_over_call): Use it.
25
26 2010-09-30 Iain Sandoe <iains@gcc.gnu.org>
27
28 merge from FSF 'apple/trunk' branch.
29 2006-01-30 Fariborz Jahanian <fjahanian@apple.com>
30
31 Radar 4386773
32 * cp/parser.c (cp_parser_objc_interstitial_code): For
33 @optional/@required set the optional/required flag.
34
35 2010-09-30 Nicola Pero <nicola.pero@meta-innovation.com>
36
37 * parser.c (cp_lexer_get_preprocessor_token): Tidied up comments
38 and indentation when finding an Objective-C++ CPP_AT_NAME token.
39
40 2010-09-29 Richard Guenther <rguenther@suse.de>
41
42 * cp-tree.h (CP_DECL_CONTEXT): Check DECL_FILE_SCOPE_P.
43 (CP_TYPE_CONTEXT): Similar.
44 (FROB_CONTEXT): Frob global_namespace to the global
45 TRANSLATION_UNIT_DECL.
46 * decl.c (cxx_init_decl_processing): Build a TRANSLATION_UNIT_DECL,
47 set DECL_CONTEXT of global_namespace to it.
48 (start_decl): Use CP_DECL_CONTEXT and test TYPE_P
49 instead of zeroing context.
50 (cp_finish_decl): Use DECL_FILE_SCOPE_P.
51 (grokfndecl): Likewise.
52 (start_preparsed_function): Likewise.
53 * name-lookup.c (maybe_push_decl): Use DECL_NAMESPACE_SCOPE_P.
54 (namespace_binding): Use SCOPE_FILE_SCOPE_P.
55 * pt.c (template_class_depth): Use CP_TYPE_CONTEXT.
56 (is_specialization_of_friend): Use CP_DECL_CONTEXT.
57 (push_template_decl_real): Likewise.
58 (tsubst_friend_class): Likewise. Adjust context comparisons.
59 (instantiate_class_template): Use CP_TYPE_CONTEXT.
60 (tsubst): Do not substitute into TRANSLATION_UNIT_DECL.
61 * cxx-pretty-print.c (pp_cxx_nested_name_specifier): Use
62 SCOPE_FILE_SCOPE_P.
63
64 2010-09-29 Yao Qi <yao@codesourcery.com>
65
66 * decl.c (get_atexit_node): Fix typo.
67
68 2010-09-28 Jason Merrill <jason@redhat.com>
69
70 * tree.c (lvalue_kind): Rename from lvalue_p_1, make nonstatic.
71 (real_lvalue_p): Take const_tree.
72 * cp-tree.h: Adjust.
73 * typeck.c (lvalue_or_else): Make temporary arg a permerror.
74 (cp_build_addr_expr_1): Likewise.
75
76 2010-09-28 Iain Sandoe <iains@gcc.gnu.org>
77
78 Partially merged from apple/trunk branch on FSF servers:
79 2006-04-26 Fariborz Jahanian <fjahanian@apple.com>
80 Radar 3803157 (method attributes)
81
82 * parser.c (cp_parser_objc_method_keyword_params): Handle attributes.
83 (cp_parser_objc_method_tail_params_opt): Likewise.
84 (cp_parser_objc_method_signature): Likewise.
85 (cp_parser_objc_method_maybe_bad_prefix_attributes): New.
86 (cp_parser_objc_method_prototype_list): Handle attributes.
87 (cp_parser_objc_method_definition_list): Likewise.
88
89 2010-09-28 Richard Henderson <rth@redhat.com>
90
91 * cp-lang.c: Include "target.h".
92 (cp_eh_personality): Use targetm.except_unwind_info.
93 * Make-lang.in (cp-lang.o): Update deps.
94
95 2010-09-28 Iain Sandoe <iains@gcc.gnu.org>
96
97 * parser.c (cp_parser_objc_valid_prefix_attributes): New.
98 (cp_parser_declaration): Parse prefix attributes for ObjC++.
99 (cp_parser_objc_protocol_declaration): Handle attributes.
100 (cp_parser_objc_class_interface): Likewise.
101 (cp_parser_objc_declaration): Likewise.
102
103 2010-09-27 Jason Merrill <jason@redhat.com>
104
105 Require lvalues as specified by the standard.
106 * typeck.c (lvalue_or_else): Use real_lvalue_p.
107 (cp_build_addr_expr_1): Split out of cp_build_unary_op.
108 (cp_build_addr_expr, cp_build_addr_expr_strict): Interfaces.
109 (decay_conversion, get_member_function_from_ptrfunc): Adjust.
110 (build_x_unary_op, build_reinterpret_cast_1): Adjust.
111 (build_const_cast_1): Adjust.
112 * cp-tree.h: Declare new fns.
113 * call.c (build_this, convert_like_real, build_over_call): Adjust.
114 (initialize_reference): Adjust.
115 * class.c (build_base_path, convert_to_base_statically): Adjust.
116 (build_vfn_ref, resolve_address_of_overloaded_function): Adjust.
117 * cvt.c (build_up_reference, convert_to_reference): Adjust.
118 * decl.c (register_dtor_fn): Adjust.
119 * decl2.c (build_offset_ref_call_from_tree): Adjust.
120 * except.c (initialize_handler_parm): Adjust.
121 * init.c (build_offset_ref, build_delete, build_vec_delete): Adjust.
122 * rtti.c (build_dynamic_cast_1, tinfo_base_init): Adjust.
123 * tree.c (stabilize_expr): Adjust.
124
125 2010-09-27 Nicola Pero <nicola.pero@meta-innovation.com>
126
127 Merge from apple/trunk branch on FSF servers:
128
129 2005-12-15 Fariborz Jahanian <fjahanian@apple.com>
130
131 Radar 4229905
132 * typeck.c (composite_pointer_type): Call objc_have_common_type
133 when comparing two objective-c pointer types.
134
135 2005-07-18 Ziemowit Laski <zlaski@apple.com>
136
137 Radar 4175534
138 * call.c (standard_conversion): Do not issue warnings when
139 comparing ObjC pointer types.
140
141 2005-06-22 Ziemowit Laski <zlaski@apple.com>
142
143 Radar 4154928
144 * call.c (standard_conversion): Allow for a pointer conversion
145 between any two ObjC pointer types.
146 * typeck.c (composite_pointer_type): Determine common type
147 for two ObjC pointer types.
148
149 2010-09-24 Jan Hubicka <jh@suse.cz>
150
151 * decl.c (finish_function): Use decl_replaceable_p
152 * method.c (make_alias_for_thunk): Update call of cgraph_same_body_alias.
153
154 2010-09-24 Jason Merrill <jason@redhat.com>
155
156 * decl.c (compute_array_index_type): Remember type dependence of
157 array bound.
158 * pt.c (dependent_type_p_r): Don't recompute it here.
159
160 * error.c (dump_expr) [CASE_CONVERT]: Print conversion between
161 reference and pointer to the same type as "*" or "&".
162
163 2010-09-24 Nicola Pero <nicola.pero@meta-innovation.com>
164
165 * typeck.c (warn_args_num): Use warning 'too many arguments to
166 method [methodname]' for an Objective-C method instead of the less
167 satisfactory 'too many arguments to function' (with no method
168 name).
169
170 2010-09-21 Jason Merrill <jason@redhat.com>
171
172 * mangle.c (write_expression) [SCOPE_REF]: Only do -fabi-version=1
173 special handling if we know the member.
174
175 2010-09-18 Jason Merrill <jason@redhat.com>
176
177 * call.c (compare_ics): Do lvalue/rvalue reference binding
178 comparison for ck_list, too.
179
180 2010-09-15 Jason Merrill <jason@redhat.com>
181
182 * semantics.c (finish_id_expression): Diagnose use of function
183 parms in evaluated context outside function body.
184
185 * decl2.c (grokbitfield): Diagnose non-integral width.
186
187 * call.c (convert_like_real): Use the underlying type of the
188 reference for the temporary.
189
190 2010-09-15 Jakub Jelinek <jakub@redhat.com>
191
192 PR c++/45635
193 * class.c (build_vtbl_initializer): Use fn instead of init's operand
194 as first argument to FDESC_EXPR.
195
196 2010-09-15 Paolo Carlini <paolo.carlini@oracle.com>
197
198 PR c++/45665
199 * decl.c (grokdeclarator): Check build_memfn_type return value
200 for error_mark_node.
201
202 2010-09-13 Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
203
204 * semantics.c (finish_for_stmt): Always test flag_new_for_scope.
205 (begin_range_for_stmt): Likewise.
206
207 2010-09-11 Rodrigo Rivas <rodrigorivascosta@gmail.com>
208
209 Implement range-based for-statements.
210 * cp-tree.def (RANGE_FOR_STMT): New.
211 * cp-tree.h (RANGE_FOR_DECL, RANGE_FOR_EXPR, RANGE_FOR_BODY): New.
212 (cp_convert_range_for): Declare.
213 * pt.c (tsubst_expr): Add RANGE_FOR_STMT.
214 (tsubst_copy_and_build): perform_koenig_lookup takes extra argument.
215 * semantics.c (begin_range_for_stmt): New.
216 (finish_range_for_decl): New.
217 (finish_for_stmt): Accept also RANGE_FOR_STMT.
218 (perform_koenig_lookup): Add extra argument include_std.
219 * parser.c (cp_parser_c_for): New with code from
220 cp_parser_iteration_statement().
221 (cp_parser_range_for): New.
222 (cp_convert_range_for): New.
223 (cp_parser_iteration_statement): Add range-for support.
224 (cp_parser_condition): Adjust comment.
225 (cp_parser_postfix_expression): perform_koenig_lookup takes extra
226 argument.
227 * dump.c (cp_dump_tree): Add RANGE_FOR_STMT.
228 * cxx-pretty-print.c: Likewise.
229 * lex.c (cxx_init): Likewise.
230 * name-lookup.c (lookup_function_nonclass): Add extra argument
231 include_std.
232 (lookup_arg_dependent): Likewise.
233 * name-lookup.h: Likewise.
234
235 2010-09-10 Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
236
237 PR c++/43824
238 * error.c (maybe_warn_cpp0x): Add new warning
239 CPP0X_INLINE_NAMESPACES.
240 * parser.c (cp_parser_namespace_definition): Likewise.
241 * cp-tree.h (cpp0x_warn_str): Likewise.
242
243 2010-09-10 Richard Guenther <rguenther@suse.de>
244
245 * decl.c (reshape_init_vector): For VECTOR_TYPEs, use
246 TYPE_VECTOR_SUBPARTS instead of TYPE_DEBUG_REPRESENTATION_TYPE.
247
248 2010-09-10 Jan Hubicka <jh@suse.cz>
249
250 PR tree-optimization/45605
251 * cp/class.c (build_vtbl_initializer): Avoid wrong type conversion in
252 ADDR_EXPR.
253
254 2010-09-08 Jakub Jelinek <jakub@redhat.com>
255
256 PR c++/45588
257 * pt.c (tsubst) <case INTEGER_TYPE>: Call mark_rvalue_use
258 before calling fold_decl_constant_value.
259
260 2010-09-07 Arnaud Charlet <charlet@adacore.com>
261
262 * cp-tree.h (build_enumerator): Add new location_t parameter.
263 (build_lang_decl_loc): New function.
264 * decl.c (build_enumerator): New parameter loc. Use it when calling
265 build_decl. Replace build_lang_decl with build_lang_decl_loc.
266 * pt.c (tsubst_enum): Adjust call to build_enumerator.
267 * parser.c (cp_parser_enumerator_definition): Ditto.
268 * lex.c (build_lang_decl_loc): New function.
269
270 2010-09-06 Dodji Seketeli <dodji@redhat.com>
271
272 PR c++/45200
273 PR c++/45293
274 PR c++/45558
275 * tree.c (strip_typedefs): Strip typedefs from the context of
276 TYPENAME_TYPEs.
277
278 2010-09-06 Mark Mitchell <mark@codesourcery.com>
279
280 * typeck.c (cp_build_binary_op): Call do_warn_double_promotion.
281 * call.c (build_conditional_expr): Likewise.
282 (convert_arg_to_ellipsis): Likewise.
283
284 2010-09-06 Arnaud Charlet <charlet@adacore.com>
285
286 * parser.c (make_pointer_declarator, make_reference_declarator,
287 make_call_declarator, make_array_declarator): Set declarator->id_loc.
288 (cp_parser_init_declarator): Adjust location of decl if appropriate.
289
290 2010-09-06 Jason Merrill <jason@redhat.com>
291
292 * call.c (implicit_conversion): Fix value-init of enums.
293 (convert_like_real): Likewise.
294
295 * decl.c (cp_finish_decl): Don't change init for auto deduction.
296
297 * pt.c (fold_non_dependent_expr_sfinae): Split out from...
298 (fold_non_dependent_expr): ...here.
299 (convert_nontype_argument): Use it. Take complain parm.
300 Use perform_implicit_conversion instead of ocp_convert.
301 Allow cv-qual changes.
302 (convert_template_argument): Pass complain down.
303 (tsubst_template_arg): Suppress constant expression warnings.
304 Don't fold here.
305
306 * method.c (synthesized_method_walk): In constructors, also check
307 subobject destructors.
308
309 * semantics.c (finish_compound_literal): Always build a
310 TARGET_EXPR.
311
312 2010-08-30 Paolo Carlini <paolo.carlini@oracle.com>
313
314 PR c++/45043
315 * decl.c (grokdeclarator): Use MAIN_NAME_P only on IDENTIFIER_NODEs.
316
317 2010-08-30 Jakub Jelinek <jakub@redhat.com>
318
319 PR middle-end/45423
320 * parser.c (cp_parser_omp_atomic): Handle boolean
321 {PRE,POST}_INCREMENT.
322
323 2010-08-29 Jason Merrill <jason@redhat.com>
324
325 PR c++/44991
326 * parser.c (cp_parser_parameter_declaration): Pop parameter decls
327 after tentative parsing.
328
329 2010-08-22 Joseph Myers <joseph@codesourcery.com>
330
331 * Make-lang.in (g++spec.o): Update dependencies.
332 * g++spec.c: Include opts.h
333 (MATH_LIBRARY, LIBSTDCXX): Remove initial "-l".
334 (lang_specific_driver): Use cl_decoded_option structures.
335
336 2010-08-20 Nathan Froyd <froydnj@codesourcery.com>
337
338 * call.c: Use FOR_EACH_VEC_ELT.
339 * class.c: Likewise.
340 * decl.c: Likewise.
341 * decl2.c: Likewise.
342 * error.c: Likewise.
343 * except.c: Likewise.
344 * mangle.c: Likewise.
345 * method.c: Likewise.
346 * name-lookup.c: Likewise.
347 * parser.c: Likewise.
348 * pt.c: Likewise.
349 * repo.c: Likewise.
350 * semantics.c: Likewise.
351 * typeck2.c: Likewise.
352
353 2010-08-19 Jason Merrill <jason@redhat.com>
354
355 * call.c (reference_related_p): Check for error_mark_node.
356 (add_function_candidate): Check it instead of
357 same_type_ignoring_top_level_qualifiers_p.
358
359 PR c++/45315
360 * init.c (build_new_1): Don't use build_value_init in a template.
361 (build_value_init): Make sure we don't.
362
363 PR c++/45307
364 * cp-gimplify.c (cp_gimplify_expr): Also remove assignment
365 of empty class CONSTRUCTOR.
366
367 * except.c (pending_noexcept, pending_noexcept_checks): New.
368 (perform_deferred_noexcept_checks): New.
369 (maybe_noexcept_warning): Split from...
370 (finish_noexcept_expr): ...here. Adjust.
371 * decl2.c (cp_write_global_declarations): Call
372 perform_deferred_noexcept_checks.
373 * cp-tree.h: And declare it.
374
375 2010-08-18 Nathan Froyd <froydnj@codesourcery.com>
376
377 PR c++/45049
378 * name-lookup.c (push_overloaded_decl): Change DECL_CHAIN to
379 TREE_CHAIN.
380
381 2010-08-17 Kai Tietz <kai.tietz@onevision.com>
382
383 * class.c (note_name_declared_in_class): Make in 'extern "C"' blocks,
384 or if -fms-extensions is enabled check, check permissive.
385
386 2010-08-09 Jason Merrill <jason@redhat.com>
387
388 PR c++/45236
389 * pt.c (lookup_template_class): Don't re-coerce outer parms.
390
391 2010-08-09 Nathan Froyd <froydnj@codesourcery.com>
392
393 * call.c (add_builtin_candidates): Use VECs for local variable
394 `types'. Adjust remainder of function accordingly.
395
396 2010-08-09 Nathan Froyd <froydnj@codesourcery.com>
397
398 * name-lookup.c (is_associated_namespace): Convert local variables
399 to be VECs instead of TREE_LISTs.
400
401 2010-08-09 Nathan Froyd <froydnj@codesourcery.com>
402
403 * tree.c (varargs_function_p): Use stdarg_p.
404
405 2010-08-07 Nathan Froyd <froydnj@codesourcery.com>
406
407 * parser.c (cp_default_arg_entry): Declare. Declare a VEC of it.
408 (cp_unparsed_functions_entry): Declare. Declare a VEC of it.
409 (cp_parser) [unparsed_functions_queues]: Rename to unparsed_queues.
410 Change type to a VEC.
411 (unparsed_funs_with_default_args): Define.
412 (unparsed_funs_with_definitions): Define.
413 (push_unparsed_function_queues): New function.
414 (cp_parser_new): Call it.
415 (pop_unparsed_function_queues): New function.
416 (cp_parser_class_specifier): Adjust processing of unparsed functions.
417 (cp_parser_template_declaration_after_export): Use VEC_safe_push.
418 (cp_parser_save_member_function_body): Likewise.
419 (cp_parser_late_parsing_for_member): Call push_unparsed_function_queues
420 and pop_unparsed_function_queues.
421 (cp_parser_late_parsing_default_args): Likewise.
422 (cp_parser_save_default_args): Use VEC_safe_push.
423
424 2010-08-07 Nathan Froyd <froydnj@codesourcery.com>
425
426 * name-lookup.h (cp_label_binding): Declare. Declare a VEC type
427 containing it.
428 (cp_binding_level): Convert shadowed_labels and dead_vars_from_for
429 fields to VECs.
430 * decl.c (poplevel): Adjust for type changes.
431 (declare_local_label): Likewise.
432
433 2010-08-06 Jason Merrill <jason@redhat.com>
434
435 * typeck.c (complete_type_or_maybe_complain): Split out from...
436 (complete_type_or_else): Here.
437 (build_class_member_access_expr): Call it.
438 (finish_class_member_access_expr): Likewise.
439 * call.c (build_special_member_call): Likewise.
440 * cvt.c (build_expr_type_conversion): Likewise.
441 * init.c (build_new): Likewise.
442 * typeck2.c (build_functional_cast): Likewise.
443 * cp-tree.h: Declare it.
444
445 * init.c (build_value_init): Add complain parm.
446 (build_value_init_noctor): Likewise.
447 (perform_member_init): Pass it.
448 (expand_aggr_init_1): Likewise.
449 (build_new_1): Likewise.
450 (build_vec_init): Likewise.
451 * pt.c (tsubst_expr): Likewise.
452 * typeck2.c (build_functional_cast): Likewise.
453 * cp-tree.h: Adjust.
454 * tree.c (build_target_expr_with_type): Handle error_mark_node.
455
456 * typeck.c (decay_conversion): Any expression with type nullptr_t
457 decays to nullptr.
458
459 2010-07-30 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
460
461 PR c++/45112
462 * decl.c (duplicate_decls): Merge DECL_USER_ALIGN and DECL_PACKED.
463
464 2010-07-27 Jason Merrill <jason@redhat.com>
465
466 * pt.c (tsubst_expr) [DECL_EXPR]: Handle getting an AGGR_INIT_EXPR
467 from build_value_init.
468 * init.c (build_value_init_noctor): Give error for unknown array
469 bound.
470
471 2010-07-27 Joseph Myers <joseph@codesourcery.com>
472
473 * cp-objcp-common.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
474
475 2010-07-27 Joseph Myers <joseph@codesourcery.com>
476
477 * cp-objcp-common.c (cxx_initialize_diagnostics): First call
478 c_common_initialize_diagnostics.
479 * cp-objcp-common.h (LANG_HOOKS_OPTION_LANG_MASK,
480 LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
481
482 2010-07-21 Jason Merrill <jason@redhat.com>
483
484 * tree.c (cp_tree_equal): Fix CONSTRUCTOR handling.
485
486 * parser.c (cp_parser_init_declarator): Pass LOOKUP_NORMAL
487 to cp_finish_decl.
488
489 2010-07-20 Jeffrey Yasskin <jyasskin@google.com>
490
491 PR c++/44641
492 * pt.c (instantiate_class_template): Propagate the template's
493 location to its instance.
494
495 2010-07-20 Jason Merrill <jason@redhat.com>
496
497 PR c++/44967
498 * pt.c (tsubst_copy_and_build): Rework last change.
499
500 PR c++/44967
501 * pt.c (tsubst_copy_and_build): Handle partial substitution of
502 CALL_EXPR.
503
504 2010-07-19 Jason Merrill <jason@redhat.com>
505
506 PR c++/44996
507 * semantics.c (finish_decltype_type): Correct decltype
508 of parenthesized rvalue reference variable.
509
510 PR c++/44969
511 * tree.c (cp_tree_equal): Compare type of *CAST_EXPR.
512 * pt.c (iterative_hash_template_arg): Hash type of *CAST_EXPR.
513
514 2010-07-19 Paolo Carlini <paolo.carlini@oracle.com>
515
516 PR c++/44969
517 * typeck.c (build_x_compound_expr_from_list): Add tsubst_flags_t
518 parameter.
519 * cp-tree.h: Adjust declaration.
520 * init.c (perform_member_init): Adjust caller.
521 * decl.c (grok_reference_init, cp_finish_decl): Likewise.
522 * typeck2.c (store_init_value): Likewise.
523 (build_functional_cast): Pass complain argument to
524 build_x_compound_expr_from_list.
525
526 2010-07-16 Jason Merrill <jason@redhat.com>
527
528 PR c++/32505
529 * pt.c (process_partial_specialization): Diagnose partial
530 specialization after instantiation.
531 (most_specialized_class): Add complain parm.
532
533 * ptree.c (cxx_print_xnode): Handle TEMPLATE_INFO.
534
535 2010-07-15 Nathan Froyd <froydnj@codesourcery.com>
536
537 * init.c (build_new_1): Use cp_build_function_call_nary instead of
538 cp_build_function_call.
539
540 2010-07-15 Jason Merrill <jason@redhat.com>
541
542 PR c++/44909
543 * call.c (add_function_candidate): If we're working on an implicit
544 declaration, don't consider candidates that won't match.
545 * typeck.c (same_type_ignoring_top_level_qualifiers_p): Now a fn.
546 * cp-tree.h (same_type_ignoring_top_level_qualifiers_p): Adjust.
547
548 Revert:
549 * cp-tree.h (struct lang_type_class): Add has_user_opeq.
550 (TYPE_HAS_USER_OPEQ): New.
551 * decl.c (grok_special_member_properties): Set it.
552 * class.c (add_implicitly_declared_members): Don't lazily declare
553 constructors/operator= if a base or member has a user-declared one.
554 (check_bases_and_members, check_bases): Adjust.
555 (check_field_decls, check_field_decl): Adjust.
556
557 2010-07-15 Anatoly Sokolov <aesok@post.ru>
558
559 * decl.c (integer_three_node): Remove.
560 (cxx_init_decl_processing): Do not initialize the integer_three_node.
561 * cp-tree.h (integer_three_node): Remove.
562
563 2010-07-15 Nathan Froyd <froydnj@codesourcery.com>
564
565 * cp-tree.h: Carefully replace TREE_CHAIN with DECL_CHAIN.
566 * call.c: Likewise.
567 * class.c: Likewise.
568 * cp-gimplify.c: Likewise.
569 * decl.c: Likewise.
570 * decl2.c: Likewise.
571 * init.c: Likewise.
572 * mangle.c: Likewise.
573 * name-lookup.c: Likewise.
574 * optimize.c: Likewise.
575 * parser.c: Likewise.
576 * pt.c: Likewise.
577 * rtti.c: Likewise.
578 * search.c: Likewise.
579 * semantics.c: Likewise.
580 * typeck.c: Likewise.
581 * typeck2.c: Likewise.
582
583 2010-07-14 Jason Merrill <jason@redhat.com>
584
585 * init.c (sort_mem_initializers): Rename "field_type" to "ctx".
586 (build_field_list): Cache field type.
587
588 Implement C++0x unrestricted unions (N2544)
589 * class.c (check_field_decl): Loosen union handling in C++0x.
590 * method.c (walk_field_subobs): Split out from...
591 (synthesized_method_walk): ...here. Set msg before loops.
592 (process_subob_fn): Check for triviality in union members.
593 * init.c (sort_mem_initializers): Splice out uninitialized
594 anonymous unions and union members.
595 (push_base_cleanups): Don't automatically destroy anonymous unions
596 and union members.
597
598 2010-07-13 Jason Merrill <jason@redhat.com>
599
600 PR c++/44909
601 * cp-tree.h (struct lang_type_class): Add has_user_opeq.
602 (TYPE_HAS_USER_OPEQ): New.
603 * decl.c (grok_special_member_properties): Set it.
604 * class.c (add_implicitly_declared_members): Don't lazily declare
605 constructors/operator= if a base or member has a user-declared one.
606 (check_bases_and_members, check_bases): Adjust.
607 (check_field_decls, check_field_decl): Adjust.
608 * method.c (synthesized_method_walk): Initialize check_vdtor.
609
610 PR c++/44540
611 * mangle.c (write_type): Canonicalize.
612 (canonicalize_for_substitution): Retain cv-quals on FUNCTION_TYPE.
613 (write_CV_qualifiers_for_type): Ignore them in abi>=5.
614
615 2010-07-13 Paolo Carlini <paolo.carlini@oracle.com>
616
617 PR c++/44908
618 * call.c (convert_like_real): Adjust convert_ptrmem call, pass
619 complain argument.
620 * typeck.c (get_delta_difference): Update prototype, add a
621 tsubst_flags_t parameter; update get_delta_difference_1 calls and
622 add checks for error_mark_node.
623 (get_delta_difference_1): Update prototype, add a tsubst_flags_t
624 parameter; update lookup_base call.
625 (build_ptrmemfunc): Update prototype, add a tsubst_flags_t
626 parameter; update get_delta_difference call and add check for
627 error_mark_node.
628 (convert_ptrmem): Update prototype, add a tsubst_flags_t
629 parameter; update get_delta_difference call and add check for
630 error_mark_node; update build_ptrmemfunc call.
631 (build_static_cast_1): Adjust convert_ptrmem call.
632 (expand_ptrmemfunc_cst): Adjust get_delta_difference call.
633 (cp_build_unary_op): Adjust build_ptrmemfunc call.
634 * cvt.c (cp_convert_to_pointer, convert_force): Adjust convert_ptrmem
635 and build_ptrmemfunc calls.
636 * cp-tree.h: Update build_ptrmemfunc and convert_ptrmem prototypes.
637
638 2010-07-12 Paolo Carlini <paolo.carlini@oracle.com>
639
640 PR c++/44907
641 * call.c (build_temp): Add tsubst_flags_t complain parameter;
642 adjust build_special_member_call call, pass complain.
643 (convert_like_real): Adjust build_temp call, pass complain.
644
645 2010-07-09 Jason Merrill <jason@redhat.com>
646
647 PR c++/43120
648 * cp-tree.h (BV_LOST_PRIMARY): New macro.
649 * class.c (update_vtable_entry_for_fn): Fix covariant thunk logic.
650 Set BV_LOST_PRIMARY.
651 (build_vtbl_initializer): Check BV_LOST_PRIMARY.
652
653 2010-07-08 Jason Merrill <jason@redhat.com>
654
655 PR c++/43120
656 * class.c (update_vtable_entry_for_fn): Fix handling of dummy
657 virtual bases for covariant thunks.
658
659 2010-07-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
660
661 * cp-tree.h: Do not include toplev.h.
662
663 2010-07-06 Jason Merrill <jason@redhat.com>
664
665 PR c++/44703
666 * call.c (is_std_init_list): Look through typedefs.
667
668 PR c++/44778
669 * init.c (build_offset_ref): If scope isn't dependent,
670 don't exit early. Look at TYPE_MAIN_VARIANT.
671 * pt.c (tsubst_copy) [OFFSET_REF]: Do substitution.
672
673 * error.c (dump_function_decl): Don't crash on null DECL_NAME.
674
675 2010-07-06 Shujing Zhao <pearly.zhao@oracle.com>
676
677 * cp-tree.h (impl_conv_void): New type.
678 (convert_to_void): Adjust prototype.
679 * cvt.c (convert_to_void): Use impl_conv_void, emit and adjust the
680 diagnostic for easy translation. Change caller.
681 * typeck.c: Update call to convert_to_void.
682 * semantics.c: Likewise.
683 * init.c: Likewise.
684
685 2010-07-05 Nathan Froyd <froydnj@codesourcery.com>
686
687 * decl.c (cp_finish_decl): Call add_local_decl.
688 * optimize.c (clone_body): Adjust for new type of cfun->local_decls.
689
690 2010-07-05 Paolo Carlini <paolo.carlini@oracle.com>
691
692 * pt.c (tsubst): Early declare code = TREE_CODE (t) and use it
693 throughout.
694
695 2010-07-05 Shujing Zhao <pearly.zhao@oracle.com>
696
697 PR c++/22138
698 * parser.c (cp_parser_primary_expression): Error if local template is
699 declared.
700
701 2010-07-02 Le-Chun Wu <lcwu@google.com>
702
703 PR/44128
704 * name-lookup.c (pushdecl_maybe_friend): Warn when a local decl
705 (variable or type) shadows another type.
706
707 2010-07-02 Jakub Jelinek <jakub@redhat.com>
708
709 PR c++/44780
710 * typeck.c (convert_for_assignment): When converting a convertible
711 vector type or objc++ types, call mark_rvalue_use.
712 * typeck2.c (build_m_component_ref): Use return values from
713 mark_rvalue_use or mark_lvalue_use.
714 * class.c (build_base_path): Likewise.
715 * call.c (build_conditional_expr): Likewise.
716
717 2010-07-02 Paolo Carlini <paolo.carlini@oracle.com>
718
719 PR c++/44039
720 * pt.c (tsubst_baselink): Return error_mark_node if lookup_fnfields
721 returns NULL_TREE.
722
723 2010-07-01 Richard Guenther <rguenther@suse.de>
724
725 * cp-gimplify.c (cp_gimplify_expr): Open-code the rhs
726 predicate we are looking for, allow non-gimplified
727 INDIRECT_REFs.
728
729 2010-06-30 Paolo Carlini <paolo.carlini@oracle.com>
730
731 PR c++/44628
732 * typeck.c (cp_build_unary_op): Early return error_mark_node when
733 arg is NULL_TREE too.
734 * call.c (convert_class_to_reference): Return error_mark_node when
735 expr is NULL_TREE.
736
737 2010-06-30 Michael Matz <matz@suse.de>
738
739 * repo.c (finish_repo): Fix typo.
740
741 2010-06-30 Nathan Froyd <froydnj@codesourcery.com>
742
743 * parser.c (cp_parser_omp_for_loop): Use a VEC for for_block.
744
745 2010-06-30 Nathan Froyd <froydnj@codesourcery.com>
746
747 * repo.c (pending_repo): Change type to a VEC.
748 (finish_repo): Adjust for new type of pending_repo.
749 (repo_emit_p): Likewise.
750
751 2010-06-30 Manuel López-Ibáñez <manu@gcc.gnu.org>
752
753 * tree.c: Include gimple.h. Do not include tree-flow.h
754 * decl.c: Do not include tree-flow.h
755 * Make-lang.in: Adjust dependencies.
756
757 2010-06-29 Nathan Froyd <froydnj@codesourcery.com>
758
759 * decl.c (incomplete_var): Declare. Declare VECs containing them.
760 (incomplete_vars): Adjust comment. Change type to a VEC.
761 (maybe_register_incomplete_var): Adjust for new type.
762 (complete_vars): Adjust iteration over incomplete_vars.
763
764 2010-06-29 Nathan Froyd <froydnj@codesourcery.com>
765
766 * decl.c (struct named_label_entry): Change type of bad_decls field
767 to a VEC.
768 (poplevel_named_label_1): Adjust for new type of bad_decls.
769 (check_goto): Likewise.
770
771 2010-06-29 Jason Merrill <jason@redhat.com>
772
773 Enable implicitly declared move constructor/operator= (N3053).
774 * class.c (add_implicitly_declared_members): A class with no
775 explicitly declared copy or move constructor gets both declared
776 implicitly, and similarly for operator=.
777 (check_bases): A type with no copy ctor does not inhibit
778 a const copy ctor in a derived class. It does mean the derived
779 one is non-trivial.
780 (check_field_decl): Likewise.
781 (check_bases_and_members): A nonexistent copy ctor/op= is non-trivial.
782 * tree.c (type_has_nontrivial_copy_init): Adjust semantics.
783 (trivially_copyable_p): Likewise.
784 * call.c (convert_like_real): Use type_has_nontrivial_copy_init.
785 * class.c (finish_struct_bits): Likewise.
786 * tree.c (build_target_expr_with_type): Likewise.
787 * typeck2.c (store_init_value): Likewise.
788
789 Enable implicitly deleted functions (N2346)
790 * class.c (check_bases_and_members): Adjust lambda flags.
791 * method.c (implicitly_declare_fn): Set DECL_DELETED_FN if appropriate.
792
793 * decl2.c (mark_used): Adjust error for use of deleted function.
794
795 Machinery to support implicit delete/move.
796 * cp-tree.h: (struct lang_type_class): Add lazy_move_assign,
797 has_complex_move_ctor, has_complex_move_assign bitfields.
798 (CLASSTYPE_LAZY_MOVE_ASSIGN): New.
799 (TYPE_HAS_COMPLEX_MOVE_ASSIGN): New.
800 (TYPE_HAS_COMPLEX_MOVE_CTOR): New.
801 (enum special_function_kind): Add sfk_move_assignment.
802 (LOOKUP_SPECULATIVE): New.
803 * call.c (build_over_call): Return early if it's set.
804 (build_over_call): Use trivial_fn_p.
805 * class.c (check_bases): If the base has no default constructor,
806 the derived one is non-trivial. Handle move ctor/op=.
807 (check_field_decl): Likewise.
808 (check_bases_and_members): Handle move ctor/op=.
809 (add_implicitly_declared_members): Handle CLASSTYPE_LAZY_MOVE_ASSIGN.
810 (type_has_move_constructor, type_has_move_assign): New.
811 * decl.c (grok_special_member_properties): Handle move ctor/op=.
812 * method.c (type_has_trivial_fn, type_set_nontrivial_flag): New.
813 (trivial_fn_p): New.
814 (do_build_copy_constructor): Use it.
815 (do_build_assign_ref): Likewise. Handle move assignment.
816 (build_stub_type, build_stub_object, locate_fn_flags): New.
817 (locate_ctor): Use locate_fn_flags.
818 (locate_copy, locate_dtor): Remove.
819 (get_dtor, get_default_ctor, get_copy_ctor, get_copy_assign): New.
820 (process_subob_fn, synthesized_method_walk): New.
821 (maybe_explain_implicit_delete): New.
822 (implicitly_declare_fn): Use synthesized_method_walk,
823 type_has_trivial_fn, and type_set_nontrivial_flag.
824 (defaulted_late_check): Set DECL_DELETED_FN.
825 (defaultable_fn_check): Handle sfk_move_assignment.
826 (lazily_declare_fn): Clear CLASSTYPE_LAZY_* early. Don't declare
827 implicitly deleted move ctor/op=.
828 * search.c (lookup_fnfields_1): Handle sfk_move_assignment.
829 (lookup_fnfields_slot): New.
830 * semantics.c (omp_clause_info_fndecl): Remove.
831 (cxx_omp_create_clause_info): Use get_default_ctor, get_copy_ctor,
832 get_copy_assign, trivial_fn_p.
833 (trait_expr_value): Adjust call to locate_ctor.
834 * tree.c (special_function_p): Handle sfk_move_assignment.
835
836 * class.c (type_has_virtual_destructor): New.
837 * cp-tree.h: Declare it.
838 * semantics.c (trait_expr_value): Use it.
839
840 * call.c (build_over_call): Only give warnings with tf_warning.
841
842 * name-lookup.c (pop_scope): Handle NULL_TREE.
843
844 * cp-tree.h (TYPE_HAS_ASSIGN_REF): Rename to TYPE_HAS_COPY_ASSIGN.
845 (TYPE_HAS_CONST_ASSIGN_REF): Rename to TYPE_HAS_CONST_COPY_ASSIGN.
846 (TYPE_HAS_INIT_REF): Rename to TYPE_HAS_COPY_CTOR.
847 (TYPE_HAS_CONST_INIT_REF): Rename to TYPE_HAS_CONST_COPY_CTOR.
848 (TYPE_HAS_COMPLEX_ASSIGN_REF): Rename to TYPE_HAS_COMPLEX_COPY_ASSIGN.
849 (TYPE_HAS_COMPLEX_INIT_REF): Rename to TYPE_HAS_COMPLEX_COPY_CTOR.
850 (TYPE_HAS_TRIVIAL_ASSIGN_REF): Rename to TYPE_HAS_TRIVIAL_COPY_ASSIGN.
851 (TYPE_HAS_TRIVIAL_INIT_REF): Rename to TYPE_HAS_TRIVIAL_COPY_CTOR.
852 (CLASSTYPE_LAZY_ASSIGNMENT_OP): Rename to CLASSTYPE_LAZY_COPY_ASSIGN.
853 (sfk_assignment_operator): Rename to sfk_copy_assignment.
854 * decl.c, call.c, class.c, init.c, method.c, pt.c, ptree.c: Adjust.
855 * search.c, semantics.c, tree.c: Adjust.
856
857 * pt.c (dependent_scope_ref_p): Remove.
858 (value_dependent_expression_p): Don't call it.
859 (type_dependent_expression_p): Here either.
860 * init.c (build_offset_ref): Set TREE_TYPE on a qualified-id
861 if the scope isn't dependent.
862
863 * pt.c (convert_nontype_argument): Use mark_lvalue_use if we want
864 a reference.
865
866 PR c++/44587
867 * pt.c (has_value_dependent_address): New.
868 (value_dependent_expression_p): Check it.
869 (convert_nontype_argument): Likewise. Call decay_conversion before
870 folding if we want a pointer.
871 * semantics.c (finish_id_expression): Don't add SCOPE_REF if the
872 scope is the current instantiation.
873
874 2010-06-28 Jakub Jelinek <jakub@redhat.com>
875
876 PR c++/44682
877 * class.c (build_base_path): If want_pointer, call mark_rvalue_use
878 on expr.
879
880 2010-06-28 Steven Bosscher <steven@gcc.gnu.org>
881
882 * init.c: Do not include except.h.
883 * decl.c: Likewise.
884 * expr.c: Likewise.
885 * cp-lang.c: Likewise.
886 * pt.c: Likewise.
887 * semantics.c: Likewise.
888 * decl2.c: Likewise.
889 * except.c: Likewise.
890 (init_exception_processing): Do not set the removed
891 lang_protect_cleanup_actions here.
892 (cp_protect_cleanup_actions): Make non-static and remove prototype.
893 (doing_eh): New, moved from except.c but removed the do_warning flag.
894 (expand_start_catch_block): Update doing_eh call.
895 (expand_end_catch_block): Likewise.
896 (build_throw): Likewise.
897 * cp-tree.h: Prototype cp_protect_cleanup_actions.
898 * cp-objcp-common.h: Set LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS to
899 cp_protect_cleanup_actions.
900 * Make-lang.in: Update dependencies.
901
902 2010-06-26 Jason Merrill <jason@redhat.com>
903
904 * call.c (add_function_candidate): Set LOOKUP_COPY_PARM for any
905 constructor called with a single argument that takes a reference
906 to the constructor's class.
907 (BAD_CONVERSION_RANK): New.
908 (compare_ics): Use it to compare bad ICSes.
909
910 2010-06-25 Joseph Myers <joseph@codesourcery.com>
911
912 * lang-specs.h: Remove +e handling.
913
914 2010-06-24 Andi Kleen <ak@linux.intel.com>
915
916 * parser.c: (cp_parser_question_colon_clause):
917 Switch to use cp_lexer_peek_token.
918 Call warn_for_omitted_condop. Call pedwarn for omitted
919 middle operand.
920
921 2010-06-22 Jakub Jelinek <jakub@redhat.com>
922
923 PR c++/44619
924 * typeck2.c (build_m_component_ref): Call mark_lvalue_use on
925 datum and mark_rvalue_use on component.
926
927 PR c++/44627
928 * error.c (dump_expr): Don't look at CALL_EXPR_ARG (t, 0) if
929 the CALL_EXPR has no arguments.
930
931 2010-06-21 Jason Merrill <jason@redhat.com>
932
933 * typeck.c (comp_except_specs): Fix ce_derived with noexcept.
934
935 * semantics.c (check_trait_type): Check COMPLETE_TYPE_P for array
936 element type.
937
938 2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
939
940 * name-lookup.c (struct arg_lookup): Convert namespaces and
941 classes fields to VEC.
942 (arg_assoc_namespace): Adjust for new type of namespaces.
943 (arg_assoc_class): Adjust for new type of classes.
944 (lookup_arg_dependent): Use make_tree_vector and
945 release_tree_vector.
946 * typeck2.c (build_x_arrow): Use vec_member.
947
948 2010-06-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
949
950 PR c++/44486
951 * error.c (dump_decl): Better wording for anonymous namespace.
952
953 2010-06-16 Nathan Froyd <froydnj@codesourcery.com>
954
955 * class.c (build_vtbl_initializer): Adjust computation of new_position
956 and which entry to add padding for.
957
958 2010-06-16 Jason Merrill <jason@redhat.com>
959
960 * except.c (check_noexcept_r): Return the problematic function.
961 (finish_noexcept_expr): Give -Wnoexcept warning. Add complain parm.
962 * pt.c (tsubst_copy_and_build): Pass it.
963 * parser.c (cp_parser_unary_expression): Likewise.
964 * cp-tree.h: Adjust prototype.
965
966 * method.c (defaulted_late_check): Give the defaulted method
967 the same exception specification as the implicit declaration.
968
969 2010-06-15 Jason Merrill <jason@redhat.com>
970
971 * class.c (add_implicitly_declared_members): Implicit assignment
972 operators can also be virtual overriders.
973 * method.c (lazily_declare_fn): Likewise.
974
975 * call.c (convert_like_real): Give "initializing argument of"
976 information for ambiguous conversion. Give source position
977 of function.
978
979 * call.c (print_z_candidates): Do print viable deleted candidates.
980 (joust): Don't choose a deleted function just because its worst
981 conversion is better than another candidate's worst.
982
983 * call.c (convert_like_real): Don't complain about
984 list-value-initialization from an explicit constructor.
985
986 * decl.c (duplicate_decls): Use DECL_IS_BUILTIN rather than test
987 DECL_SOURCE_LOCATION directly.
988
989 * class.c (type_has_user_provided_default_constructor): Use
990 sufficient_parms_p.
991
992 * call.c (is_subseq): Handle ck_aggr, ck_list.
993 (compare_ics): Treat an aggregate or ambiguous conversion to the
994 same type as involving the same function.
995
996 2010-06-13 Shujing Zhao <pearly.zhao@oracle.com>
997
998 * typeck.c (convert_for_assignment): Fix comment. Change message
999 format from %d to %qP.
1000 (convert_for_initialization): Fix comment.
1001
1002 2010-06-11 Shujing Zhao <pearly.zhao@oracle.com>
1003
1004 * cp-tree.h (expr_list_kind): New type.
1005 (impl_conv_rhs): New type.
1006 (build_x_compound_expr_from_list, convert_for_initialization): Adjust
1007 prototype.
1008 (typeck.c (convert_arguments): Use impl_conv_rhs and emit the
1009 diagnostics for easy translation. Change caller.
1010 (convert_for_initialization): Use impl_conv_rhs and change caller.
1011 (build_x_compound_expr_from_list): Use expr_list_kind and emit the
1012 diagnostics for easy translation. Change caller.
1013 * decl.c (bad_spec_place): New enum.
1014 (bad_specifiers): Use it and emit the diagnostics for easy
1015 translation. Change caller.
1016 * pt.c (coerce_template_parms): Put the diagnostics in full sentence.
1017
1018 2010-06-09 Nathan Froyd <froydnj@codesourcery.com>
1019
1020 * cp-tree.h (struct saved_scope): Change decl_ns_list field type
1021 to a VEC.
1022 * decl2.c (cp_write_global_declarations): Adjust for new type of
1023 decl_namespace_list.
1024 * name-lookup.c (current_decl_namespace): Likewise.
1025 (push_decl_namespace): Likewise.
1026 (pop_decl_namespace): Likewise.
1027
1028 2010-06-09 Nathan Froyd <froydnj@codesourcery.com>
1029
1030 * call.c (build_java_interface_fn_ref): Call build_function_type_list
1031 instead of build_function_type.
1032 * decl.c (cxx_init_decl_processing): Likewise.
1033 (declare_global_var): Likewise.
1034 (get_atexit_node): Likewise.
1035 (expand_static_init): Likewise.
1036 * decl2.c (start_objects): Likewise.
1037 (start_static_storage_duration_function): Likewise.
1038 * except.c (init_exception_processing): Likewise.
1039 (build_exc_ptr): Likewise.
1040 (build_throw): Likewise.
1041 * rtti.c (throw_bad_cast): Likewise.
1042 (throw_bad_typeid): Likewise.
1043 (build_dynamic_cast_1): Likewise.
1044
1045 2010-06-09 Nathan Froyd <froydnj@codesourcery.com>
1046
1047 * call.c (build_call_n): Call XALLOCAVEC instead of alloca.
1048 (build_op_delete_call): Likewise.
1049 (build_over_call): Likewise.
1050 * cp-gimplify.c (cxx_omp_clause_apply_fn): Likewise.
1051 * pt.c (process_partial_specialization): Likewise.
1052 (tsubst_template_args): Likewise.
1053 * semantics.c (finish_asm_stmt): Likewise.
1054
1055 2010-06-08 Nathan Sidwell <nathan@codesourcery.com>
1056
1057 * decl.c (record_key_method_defined): New, broken out of ...
1058 (finish_function): ... here. Call it.
1059 (start_decl): Treat aliases as definitions.
1060
1061 2010-06-08 Laurynas Biveinis <laurynas.biveinis@gmail.com>
1062
1063 * typeck2.c (abstract_virtuals_error): Use typed GC allocation.
1064
1065 * pt.c (maybe_process_partial_specialization): Likewise.
1066 (register_specialization): Likewise.
1067 (add_pending_template): Likewise.
1068 (lookup_template_class): Likewise.
1069 (push_tinst_level): Likewise.
1070
1071 * parser.c (cp_lexer_new_main): Likewise.
1072 (cp_lexer_new_from_tokens): Likewise.
1073 (cp_token_cache_new): Likewise.
1074 (cp_parser_context_new): Likewise.
1075 (cp_parser_new): Likewise.
1076 (cp_parser_nested_name_specifier_opt): Likewise.
1077 (cp_parser_template_id): Likewise.
1078
1079 * name-lookup.c (binding_entry_make): Likewise.
1080 (binding_table_construct): Likewise.
1081 (binding_table_new): Likewise.
1082 (cxx_binding_make): Likewise.
1083 (pushdecl_maybe_friend): Likewise.
1084 (begin_scope): Likewise.
1085 (push_to_top_level): Likewise.
1086
1087 * lex.c (init_reswords): Likewise.
1088 (retrofit_lang_decl): Likewise.
1089 (cxx_dup_lang_specific_decl): Likewise.
1090 (copy_lang_type): Likewise.
1091 (cxx_make_type): Likewise.
1092
1093 * decl.c (make_label_decl): Likewise.
1094 (check_goto): Likewise.
1095 (start_preparsed_function): Likewise.
1096 (save_function_data): Likewise.
1097
1098 * cp-tree.h (TYPE_SET_PTRMEMFUNC_TYPE): Likewise.
1099
1100 * cp-objcp-common.c (decl_shadowed_for_var_insert): Likewise.
1101
1102 * class.c (finish_struct_1): Likewise.
1103
1104 * cp-tree.h (struct lang_type): Add variable_size GTY option.
1105 (struct lang_decl): Likewise.
1106
1107 * parser.c (cp_parser_new): Update comment to not reference
1108 ggc_alloc.
1109
1110 2010-06-07 Jason Merrill <jason@redhat.com>
1111
1112 PR c++/44366
1113 * error.c (dump_parameters): Mask out TFF_SCOPE.
1114 (dump_simple_decl): Don't print the scope of a PARM_DECL.
1115 (dump_scope): Remove no-op mask.
1116
1117 PR c++/44401
1118 * parser.c (cp_parser_lookup_name): Fix naming the constructor.
1119
1120 * cp-tree.h (COMPLETE_OR_OPEN_TYPE_P): New macro.
1121 * init.c (build_offset_ref): Use it.
1122 * pt.c (maybe_process_partial_specialization): Use it.
1123 (instantiate_class_template): Use it.
1124 * search.c (lookup_base): Use it.
1125
1126 2010-06-07 Jakub Jelinek <jakub@redhat.com>
1127
1128 PR c++/44444
1129 * expr.c (mark_exp_read): Handle INDIRECT_REF.
1130 * cvt.c (convert_to_void): Handle INDIRECT_REF like
1131 handled_component_p.
1132
1133 PR c++/44443
1134 * decl.c (initialize_local_var): If TREE_USED is set on the type,
1135 set also DECL_READ_P on the decl.
1136
1137 2010-05-25 Dodji Seketeli <dodji@redhat.com>
1138
1139 PR c++/44188
1140 * cp-tree.h (typedef_variant_p): Move this declaration to
1141 gcc/tree.h.
1142 * tree.c (typedef_variant_p): Move this definition to gcc/tree.c.
1143 * decl.c (grokdeclarator): Do not rename debug info of an
1144 anonymous tagged type named by a typedef.
1145
1146 2010-06-05 Fabien Chêne <fabien@gcc.gnu.org>
1147
1148 PR c++/44086
1149 * class.c (check_field_decls): Move the call to
1150 check_bitfield_decl before trying to set the
1151 CLASSTYPE_READONLY_FIELDS_NEED_INIT flag.
1152
1153 2010-06-05 Steven Bosscher <steven@gcc.gnu.org>
1154
1155 * typeck.c: Update include path for moved files.
1156 * decl.c: Likewise.
1157 * rtti.c: Likewise.
1158 * cp-gimplify.c: Likewise.
1159 * cp-lang.c: Likewise.
1160 * pt.c: Likewise.
1161 * semantics.c: Likewise.
1162 * cxx-pretty-print.h: Likewise.
1163 * decl2.c: Likewise.
1164 * parser.c: Likewise.
1165 * cp-objcp-common.c: Likewise.
1166 * cp-tree.h: Likewise.
1167 * name-lookup.c: Likewise.
1168 * lex.c: Likewise.
1169 * name-lookup.h: Likewise.
1170 * config-lang.in: Update paths in gtfiles for files in c-family/.
1171 * Make-lang.in: Likewise.
1172
1173 2010-06-04 Magnus Fromreide <magfr@lysator.liu.se>
1174
1175 * cvt.c (cp_convert_to_pointer): Use null_ptr_cst_p.
1176 * typeck.c (build_ptrmemfunc): Likewise.
1177
1178 2010-06-04 Jason Merrill <jason@redhat.com>
1179
1180 * typeck2.c (merge_exception_specifiers): Adjust merging of
1181 throw() and noexcept(true).
1182
1183 * pt.c (value_dependent_expression_p) [NOEXCEPT_EXPR]: Avoid
1184 using an uninitialized variable.
1185
1186 * cxx-pretty-print.c (pp_cxx_unary_expression): Handle NOEXCEPT_EXPR.
1187 (pp_cxx_expression): Likewise.
1188
1189 Implement noexcept-specification (15.4)
1190 * parser.c (cp_parser_exception_specification_opt): Parse it.
1191 Give -Wdeprecated warning about throw() specs.
1192 * pt.c (tsubst_exception_specification): Handle it.
1193 * error.c (dump_exception_spec): Handle it.
1194 (dump_expr): Handle NOEXCEPT_EXPR.
1195 * cxx-pretty-print.c (pp_cxx_exception_specification): Likewise.
1196 * typeck.c (comp_except_specs): Handle compatibility rules.
1197 Change exact parm to take an enum.
1198 * typeck2.c (merge_exception_specifiers): Handle noexcept.
1199 * except.c (nothrow_spec_p, type_noexcept_p): New fns.
1200 (type_throw_all_p, build_noexcept_spec): New fns.
1201 * cp-tree.h (TYPE_NOTHROW_P, TYPE_NOEXCEPT_P): Use them.
1202 (comp_except_specs): Define ce_derived, ce_normal, ce_exact enums.
1203 (cp_tree_index): Add CPTI_NOEXCEPT_TRUE_SPEC, CPTI_NOEXCEPT_FALSE_SPEC.
1204 (noexcept_true_spec, noexcept_false_spec): New macros.
1205 * name-lookup.c (pushdecl_maybe_friend): Adjust.
1206 * search.c (check_final_overrider): Adjust.
1207 * decl.c (check_redeclaration_exception_specification): Adjust.
1208 (use_eh_spec_block): Use type_throw_all_p.
1209 (cxx_init_decl_processing): Set noexcept_false_spec,noexcept_true_spec.
1210 Give operator new a noexcept-specification in C++0x mode.
1211 * tree.c (build_exception_variant, cxx_type_hash_eq): Adjust.
1212 (cp_build_type_attribute_variant): Don't test TYPE_RAISES_EXCEPTIONS.
1213
1214 Implement noexcept operator (5.3.7)
1215 * cp-tree.def (NOEXCEPT_EXPR): New.
1216 * except.c (check_noexcept_r, finish_noexcept_expr): New.
1217 * cp-tree.h: Declare finish_noexcept_expr.
1218 * parser.c (cp_parser_unary_expression): Parse noexcept-expression.
1219 * pt.c (tsubst_copy_and_build): And tsubst it.
1220 (type_dependent_expression_p): Handle it.
1221 (value_dependent_expression_p): Handle it.
1222
1223 * call.c (build_conditional_expr): Never fold in unevaluated context.
1224 * tree.c (build_aggr_init_expr): Propagate TREE_NOTHROW.
1225 * semantics.c (simplify_aggr_init_expr): Likewise.
1226 * typeck.c (merge_types): Call merge_exception_specifiers.
1227 * decl.c (duplicate_decls): Check DECL_SOURCE_LOCATION rather than
1228 DECL_ANTICIPATED for preferring new type.
1229
1230 2010-06-04 Joseph Myers <joseph@codesourcery.com>
1231
1232 * g++spec.c (lang_specific_driver): Use GCC-specific formats in
1233 diagnostics.
1234
1235 2010-06-04 Jakub Jelinek <jakub@redhat.com>
1236
1237 PR c++/44412
1238 * typeck.c (build_class_member_access_expr): Call mark_exp_read
1239 on object for static data members.
1240
1241 2010-06-04 Jakub Jelinek <jakub@redhat.com>
1242 Jason Merrill <jason@redhat.com>
1243
1244 PR c++/44362
1245 * call.c (build_conditional_expr): If both arg2 and arg3 are lvalues
1246 with the same type, call mark_lvalue_use on both.
1247
1248 2010-06-03 Nathan Froyd <froydnj@codesourcery.com>
1249
1250 * class.c (struct vtbl_init_data_s): Remove last_init field.
1251 (struct secondary_vptr_vtt_init_data_s): Change type of inits field
1252 to a VEC.
1253 (finish_vtbls): Use a VEC rather than a TREE_LIST for the accumulated
1254 initializers.
1255 (build_vtt): Likewise.
1256 (initialize_vtable): Take a VEC instead of a tree.
1257 (build_vtt_inits): Change return type to void. Take a VEC **
1258 instead of a tree *; accumulate results into said VEC.
1259 (build_ctor_vtbl_group): Use a VEC rather than a TREE_LIST for the
1260 accumulated initializers. Pass the vtable to accumulate_vtbl_inits.
1261 (accumulate_vtbl_inits): Add extra vtable tree parameter; take a VEC
1262 instead of a tree.
1263 (dfs_accumulate_vtbl_inits): Likewise. Change return type to void.
1264 (build_vtbl_initializer): Add VEC parameter; accumulate initializers
1265 into it.
1266 (dfs_build_secondary_vptr_vtt_inits): Use CONSTRUCTOR_APPEND_ELT
1267 rather than tree_cons.
1268 (build_vbase_offset_vtbl_entries): Likewise.
1269 (add_vcall_offset): Likewise.
1270 (build_rtti_vtbl_entries): Likewise.
1271 * cp-tree.h (initialize_artificial_var): Take a VEC instead of a tree.
1272 * decl.c (initialize_artificial_var): Use build_constructor instead
1273 of build_constructor_from_list.
1274
1275 2010-06-03 H.J. Lu <hongjiu.lu@intel.com>
1276
1277 PR c++/44294
1278 * class.c (layout_class_type): Check MAX_FIXED_MODE_SIZE on
1279 bit-field.
1280
1281 2010-06-02 Jonathan Wakely <jwakely.gcc@gmail.com>
1282
1283 * parser.c (cp_parser_mem_initializer_list): Change error text.
1284
1285 2010-06-02 Jakub Jelinek <jakub@redhat.com>
1286
1287 * cp-objcp-common.c (shadowed_var_for_decl): Change into
1288 tree_decl_map hashtab from tree_map.
1289 (decl_shadowed_for_var_lookup, decl_shadowed_for_var_insert): Adjust.
1290 (init_shadowed_var_for_decl): Adjust initialization.
1291
1292 PR c++/44361
1293 * cvt.c (convert_to_void): If implicit is NULL, call mark_rvalue_use
1294 instead of calling mark_exp_read only when not an assignment.
1295
1296 PR debug/44367
1297 * semantics.c (finalize_nrv): Don't copy DECL_ARTIFICIAL, DECL_IGNORED_P,
1298 DECL_SOURCE_LOCATION and DECL_ABSTRACT_ORIGIN from var to result.
1299 Set DECL_VALUE_EXPR on var.
1300
1301 2010-06-02 Jason Merrill <jason@redhat.com>
1302
1303 * error.c (dump_type): Improve typedef handling.
1304
1305 PR c++/9726
1306 PR c++/23594
1307 PR c++/44333
1308 * name-lookup.c (same_entity_p): New.
1309 (ambiguous_decl): Multiple declarations of the same entity
1310 are not ambiguous.
1311
1312 2010-06-01 Jason Merrill <jason@redhat.com>
1313
1314 DR 990
1315 * call.c (add_list_candidates): Prefer the default constructor.
1316 (build_aggr_conv): Treat missing initializers like { }.
1317 * typeck2.c (process_init_constructor_record): Likewise.
1318 * init.c (expand_default_init): Use digest_init for
1319 direct aggregate initialization, too.
1320
1321 * call.c (add_list_candidates): Split out...
1322 (build_user_type_conversion_1): ...from here.
1323 (build_new_method_call): And here.
1324 (implicit_conversion): Propagate LOOKUP_NO_NARROWING.
1325
1326 PR c++/44358
1327 * call.c (build_list_conv): Set list-initialization flags properly.
1328
1329 2010-06-01 Nathan Froyd <froydnj@codesourcery.com>
1330
1331 * typeck2.c (build_x_arrow): Make types_memoized a VEC.
1332
1333 2010-06-01 Arnaud Charlet <charlet@adacore.com>
1334 Matthew Gingell <gingell@adacore.com>
1335
1336 * Make-lang.in (CXX_C_OBJS): Add c-ada-spec.o.
1337 * decl2.c: Include langhooks.h and c-ada-spec.h.
1338 (cpp_check, collect_source_refs, collect_ada_namespace,
1339 collect_all_refs): New functions.
1340 (cp_write_global_declarations): Add handling of -fdump-ada-spec.
1341 * lang-specs.h: Ditto.
1342
1343 2010-05-29 Nathan Froyd <froydnj@codesourcery.com>
1344
1345 * cp-tree.h (cp_build_function_call_nary): Declare.
1346 * typeck.c (cp_build_function_call_nary): Define.
1347 * decl.c (register_dtor_fn): Use it instead of
1348 cp_build_function_call.
1349 (cxx_maybe_build_cleanup): Likewise.
1350 * decl2.c (generate_ctor_or_dtor_function): Likewise.
1351 * except.c (do_get_exception_ptr): Likewise.
1352 (do_begin_catch): Likewise.
1353 (do_allocate_exception): Likewise.
1354 (do_free_exception): Likewise.
1355 (build_throw): Likewise. Use cp_build_function_call_vec instead
1356 of cp_build_function_call.
1357 (do_end_catch): Likewise.
1358
1359 2010-05-29 Nathan Froyd <froydnj@codesourcery.com>
1360
1361 * cp-tree.h (struct cp_decl_specifier_seq): Move type_location field up.
1362 (struct cp_declarator): Move id_loc field up.
1363
1364 2010-05-29 Steven Bosscher <steven@gcc.gnu.org>
1365
1366 * cp-tree.h (ATTRIBUTE_GCC_CXXDIAG): Remove. Require that
1367 this file is included before c-common.h. Define GCC_DIAG_STYLE
1368 before including diagnostic-core.h and toplev.h.
1369 (pedwarn_cxx98): Use ATTRIBUTE_GCC_DIAG.
1370 * pt.c: Include cp-tree.h before c-common.h.
1371
1372 2010-05-29 Steven Bosscher <steven@gcc.gnu.org>
1373
1374 * tree.c (c_register_addr_space): Add stub.
1375
1376 2010-05-28 Joseph Myers <joseph@codesourcery.com>
1377
1378 * g++spec.c (lang_specific_driver): Use fatal_error instead of
1379 fatal.
1380
1381 2010-05-28 Dodji Seketeli <dodji@redhat.com>
1382
1383 Revert fix of PR c++/44188
1384 * cp-tree.h (typedef_variant_p): Revert moving this declaration to
1385 gcc/tree.h.
1386 * tree.c (typedef_variant_p): Revert moving this definition to
1387 gcc/tree.c.
1388 * decl.c (grokdeclarator): Revert naming typedef handling.
1389
1390 2010-05-27 Joseph Myers <joseph@codesourcery.com>
1391
1392 * call.c: Include diagnostic-core.h instead of diagnostic.h.
1393 * cp-lang.c: Don't include diagnostic.h
1394 * name-lookup.c: Include diagnostic-core.h instead of
1395 diagnostic.h.
1396 (cp_emit_debug_info_for_using): Use seen_error.
1397 * optimize.c: Include diagnostic-core.h instead of diagnostic.h.
1398 * parser.c: Include diagnostic-core.h instead of diagnostic.h.
1399 * pt.c (iterative_hash_template_arg): Use seen_error.
1400 * repo.c: Include diagnostic-core.h instead of diagnostic.h.
1401 * typeck2.c: Include diagnostic-core.h instead of diagnostic.h.
1402 * Make-lang.in (cp/cp-lang.o, cp/typeck2.o, cp/call.o, cp/repo.o,
1403 cp/optimize.o, cp/parser.o, cp/name-lookup.o): Update
1404 dependencies.
1405
1406 2010-05-25 Dodji Seketeli <dodji@redhat.com>
1407
1408 PR c++/44188
1409 * cp-tree.h (typedef_variant_p): Move this declaration to
1410 gcc/tree.h.
1411 * tree.c (typedef_variant_p): Move this definition to gcc/tree.c.
1412 * decl.c (grokdeclarator): Do not rename debug info of an
1413 anonymous tagged type named by a typedef.
1414
1415 2010-05-27 Jason Merrill <jason@redhat.com>
1416
1417 PR c++/43555
1418 * decl.c (grokdeclarator) [cdk_pointer et al]: Force evaluation of
1419 anonymous VLA size.
1420
1421 2010-05-27 Kai Tietz <kai.tietz@onevision.com>
1422
1423 PR bootstrap/44287
1424 * rtti.c (emit_support_tinfos): Check for NULL_TREE.
1425 * class.c (layout_class_type): Likewise.
1426 * decl.c (finish_enum): Likewise.
1427 * mangle.c (write_builitin_type): Likewise.
1428
1429 2010-05-26 Kai Tietz <kai.tietz@onevision.com>
1430
1431 * cp-tree.h (cp_decl_specifier_seq): Add new bifield
1432 explicit_int128_p.
1433 * decl.c (grokdeclarator): Handle __int128.
1434 * parser.c (cp_lexer_next_token_is_decl_specifier_ke): Likewise.
1435 (cp_parser_simple_type_specifier): Likewise.
1436 * rtti.c (emit_support_tinfos): Add int128 nodes for rtti.
1437 * typeck.c (cp_common_type): Handle __int128.
1438 * mangle.c (integer_type_codes): Add itk_int128 and
1439 itk_unsigned_int128.
1440
1441 2010-05-26 Jason Merrill <jason@redhat.com>
1442
1443 PR c++/43382
1444 * pt.c (tsubst_pack_expansion): Don't get confused by recursive
1445 unification.
1446
1447 2010-05-26 Steven Bosscher <steven@gcc.gnu.org>
1448
1449 * cp-lang.c: Do not include expr.h.
1450
1451 2010-05-26 Steven Bosscher <steven@gcc.gnu.org>
1452
1453 * decl.c: Do not include rtl.h
1454 * semantics.c: Likewise.
1455
1456 2010-05-25 Steven Bosscher <steven@gcc.gnu.org>
1457
1458 * cp-tree.h: Do not include splay-tree.h.
1459 (struct prtmem_cst): Remove unused field and false comment.
1460 * typeck.c: Do not include rtl.h, expr.h, and tm_p.h.
1461 * optimize.c: Do not inclde rtl.h, insn-config.h, and integrate.h.
1462 * init.c: Do not include rtl.h and expr.h.
1463 * class.c: Do not include rtl.h. Include splay-tree.h.
1464 (build_clone): Use plain NULL instead of NULL_RTX.
1465 * decl.c: Do not include expr.h. Explain why rtl.h has to be
1466 included. Include splay-tree.h.
1467 * method.c: Do not include rtl.h and expr.h.
1468 (use_thunk): Use plain NULL instead of NULL_RTX.
1469 * except.c: Do not include rtl.h, expr.h, and libfuncs.h.
1470 * tree.c: Do not include rtl.h, insn-config.h, integrate.h,
1471 and target.h. Include splay-tree.h.
1472 * expr.c: Do not include rtl.h and expr.h.
1473 * pt.c: Do not include obstack.h and rtl.h.
1474 (tsubst_friend_function): Use plain NULL instead of NULL_RTX.
1475 (tsubst_decl): Likewise.
1476 (instantiate_decl): Likewise.
1477 * semantics.c: Do not include exprt.h and debug.h. Explain why
1478 rtl.h has to be included.
1479 * decl2.c: Do not include rtl.h and expr.h. Include splay-tree.h.
1480 * call.c: Do not include rtl.h and expr.h.
1481 * search.c: Do not include obstack.h and rtl.h.
1482 * friend.c: Do not include rtl.h and expr.h.
1483 * Make-lang.in: Update dependencies.
1484
1485 2010-05-25 Jakub Jelinek <jakub@redhat.com>
1486
1487 PR c++/18249
1488 * parser.c (non_integral_constant): Add NIC_NONE.
1489 (required_token): Add RT_NONE.
1490 (cp_parser_unary_expression): Initialize non_constant_p
1491 to NIC_NONE.
1492 (cp_parser_asm_definition): Initialize missing to RT_NONE.
1493 (cp_parser_primary_expression, cp_parser_postfix_expression,
1494 cp_parser_cast_expression, cp_parser_binary_expression,
1495 cp_parser_functional_cast): Fix formatting.
1496
1497 2010-05-25 Shujing Zhao <pearly.zhao@oracle.com>
1498
1499 PR c++/18249
1500 * parser.c: Remove inclusion of dyn-string.h.
1501 (non_integral_constant): New enum.
1502 (name_lookup_error): New enum.
1503 (required_token): New enum.
1504 (cp_parser_required_error): New function.
1505 (cp_parser_require): Change the type of variable token_desc to
1506 required_token and use cp_parser_required_error.
1507 (cp_parser_require_keyword): Likewise.
1508 (cp_parser_error): Use gmsgid as parameter.
1509 (cp_parser_name_lookup_error): Change the type of variable desired to
1510 name_lookup_error and put the diagnostic in the full sentences. Change
1511 caller.
1512 (cp_parser_non_integral_constant_expression): Change the type of the
1513 variable thing to non_integral_constant and put the diagnostics in
1514 full sentences. Change caller.
1515
1516 2010-05-24 Eric Botcazou <ebotcazou@adacore.com>
1517
1518 PR middle-end/44100
1519 * typeck.c (cp_build_unary_op): Fold offsetof-like computations.
1520
1521 2010-05-24 Joseph Myers <joseph@codesourcery.com>
1522
1523 * error.c (cp_diagnostic_starter): Update call to
1524 diagnostic_build_prefix.
1525 (cp_print_error_function,
1526 print_instantiation_partial_context_line): Check show_column flag
1527 in context.
1528
1529 2010-05-24 Jason Merrill <jason@redhat.com>
1530
1531 PR c++/41510
1532 * decl.c (check_initializer): Don't wrap an init-list in a
1533 TREE_LIST.
1534 * init.c (build_aggr_init): Don't assume copy-initialization if
1535 init has CONSTRUCTOR_IS_DIRECT_INIT.
1536 * call.c (build_new_method_call): Sanity check.
1537
1538 2010-05-24 Nathan Froyd <froydnj@codesourcery.com>
1539
1540 * rtti.c (tinfo_base_init): Use build_constructor instead of
1541 build_constructor_from_list. Don't cons a tree node for
1542 returning.
1543 (generic_initializer): Use build_constructor_single instead of
1544 build_constructor_from_list.
1545 (ptr_initializer): Use build_constructor instead of
1546 build_constructor_from_list
1547 (ptm_initializer): Likewise.
1548 (class_initializer): Likewise. Take varargs instead of TRAIL.
1549 (get_pseudo_ti_init): Adjust calls to class_initializer. Use
1550 build_constructor instead of build_constructor_from_list.
1551
1552 2010-05-22 Steven Bosscher <steven@gcc.gnu.org>
1553
1554 * semantics.c: Include bitmap.h.
1555 * Make-lang.in: Update dependencies.
1556
1557 2010-05-22 Jan Hubicka <jh@suse.cz>
1558
1559 * decl2.c (maybe_emit_vtables): Produce same comdat group when outputting
1560 comdat vtables.
1561 (cxx_callgraph_analyze_expr): Remove code marking vtables needed.
1562
1563 2010-05-21 Joseph Myers <joseph@codesourcery.com>
1564
1565 * cxx-pretty-print.c: Correct merge error.
1566
1567 2010-05-21 Joseph Myers <joseph@codesourcery.com>
1568
1569 * error.c: Include tree-diagnostic.h and tree-pretty-print.h.
1570 (cp_print_error_function): Use diagnostic_abstract_origin macro.
1571 (cp_printer): Handle %K here using percent_K_format.
1572 * cxx-pretty-print.c: Include tree-pretty-print.h.
1573 * Make-lang.in (cp/error.o, cp/cxx-pretty-print.o): Update
1574 dependencies.
1575
1576 2010-05-21 Steven Bosscher <steven@gcc.gnu.org>
1577
1578 * error.c, tree.c, typeck2.c, cxx-pretty-print.c, mangle.c:
1579 Clean up redundant includes.
1580
1581 2010-05-20 Paolo Carlini <paolo.carlini@oracle.com>
1582
1583 PR c++/30298
1584 * decl.c (xref_basetypes): Return false in case of ill-formed
1585 redefinition.
1586
1587 2010-05-19 Jason Merrill <jason@redhat.com>
1588
1589 * call.c (reference_binding): Use cp_build_qualified_type_real
1590 and cp_type_quals consistently.
1591 (add_function_candidate): Likewise.
1592 (build_conditional_expr): Likewise.
1593 (convert_like_real): Likewise.
1594 (type_passed_as): Likewise.
1595 * class.c (add_method): Likewise.
1596 (same_signature_p): Likewise.
1597 (layout_class_type): Likewise.
1598 * decl.c (cxx_init_decl_processing): Likewise.
1599 (cp_fname_init): Likewise.
1600 (grokdeclarator): Likewise.
1601 * decl2.c (cp_reconstruct_complex_type): Likewise.
1602 * init.c (build_new_1): Likewise.
1603 * method.c (do_build_copy_constructor): Likewise.
1604 (implicitly_declare_fn): Likewise.
1605 * pt.c (tsubst_aggr_type): Likewise.
1606 (tsubst): Likewise.
1607 * rtti.c (init_rtti_processing): Likewise.
1608 (build_headof): Likewise.
1609 (build_dynamic_cast_1): Likewise.
1610 (tinfo_base_init): Likewise.
1611 (emit_support_tinfos): Likewise.
1612 * semantics.c (capture_decltype): Likewise.
1613 * tree.c (cv_unqualified): Likewise.
1614 * typeck.c (composite_pointer_type): Likewise.
1615 (string_conv_p): Likewise.
1616
1617 * mangle.c (write_CV_qualifiers_for_type): Tweak.
1618
1619 * call.c (initialize_reference): Use CP_TYPE_CONST_P.
1620 * decl.c (start_decl): Likewise.
1621 * semantics.c (finish_compound_literal): Likewise.
1622 * typeck.c (check_return_expr): Use CP_TYPE_VOLATILE_P.
1623 (cp_type_readonly): Remove.
1624 * cp-tree.h: Remove declaration.
1625
1626 * typeck.c (merge_types): Preserve memfn quals.
1627
1628 * decl.c (grokdeclarator): Don't check quals on fn type.
1629 * typeck.c (cp_apply_type_quals_to_decl): Likewise.
1630 * tree.c (cp_build_qualified_type_real): Simplify qualifier checking.
1631
1632 PR c++/44193
1633 * typeck.c (type_memfn_quals): New fn.
1634 (apply_memfn_quals): New fn.
1635 (cp_type_quals): Return TYPE_UNQUALIFIED for FUNCTION_TYPE.
1636 (cp_type_readonly): Use cp_type_quals.
1637 * cp-tree.h: Add declarations.
1638 * tree.c (cp_build_qualified_type_real): Don't set, but do
1639 preserve, quals on FUNCTION_TYPE.
1640 (strip_typedefs): Use apply_memfn_quals and type_memfn_quals.
1641 * decl.c (build_ptrmem_type): Likewise.
1642 (grokdeclarator): Likewise.
1643 (static_fn_type): Likewise.
1644 * decl2.c (change_return_type): Likewise.
1645 (cp_reconstruct_complex_type): Likewise.
1646 * pt.c (tsubst_function_type): Likewise.
1647 (unify): Likewise.
1648 (tsubst): Likewise. Drop special FUNCTION_TYPE substitution code.
1649
1650 2010-05-18 Nathan Froyd <froydnj@codesourcery.com>
1651
1652 * tree.c (build_min_non_dep_call_vec): Update comment.
1653
1654 2010-05-17 Jason Merrill <jason@redhat.com>
1655
1656 * call.c (struct z_candidate): Add explicit_targs field.
1657 (add_template_candidate_real): Set it.
1658 (build_over_call): Use it to control init-list warning.
1659
1660 PR c++/44157
1661 * call.c (build_over_call): Limit init-list deduction warning to
1662 cases where the argument is actually an init-list.
1663
1664 PR c++/44158
1665 * call.c (build_over_call): Don't do bitwise copy for move ctor.
1666
1667 2010-05-17 Dodji Seketeli <dodji@redhat.com>
1668 Jason Merrill <jason@redhat.com>
1669
1670 PR c++/44108
1671 * decl.c (compute_array_index_type): Call mark_rvalue_use.
1672
1673 2010-05-15 Jason Merrill <jason@redhat.com>
1674
1675 * cp-tree.h (TYPE_NOEXCEPT_P): New macro.
1676 * except.c (begin_eh_spec_block): Use MUST_NOT_THROW_EXPR if
1677 TYPE_NOEXCEPT_P.
1678 (finish_eh_spec_block): Adjust.
1679
1680 2010-05-15 Jakub Jelinek <jakub@redhat.com>
1681
1682 PR c++/44148
1683 * pt.c (tsubst): Unshare template argument.
1684
1685 2010-05-15 Steven Bosscher <steven@gcc.gnu.org>
1686
1687 * decl.c: Include tree-iterator.h, as fixup for tree-inline.h changes.
1688 * Make-lang.in: Fix dependencies accordingly.
1689
1690 2010-05-14 Jason Merrill <jason@redhat.com>
1691
1692 C++ DR 475
1693 * except.c (build_throw): Simplify, adjust for DR 475.
1694
1695 PR c++/44127
1696 * except.c (dtor_nothrow): Return nonzero for type with
1697 trivial destructor.
1698
1699 PR c++/44127
1700 * cp-gimplify.c (gimplify_must_not_throw_expr): Use
1701 gimple_build_eh_must_not_throw.
1702
1703 2010-05-14 Martin Jambor <mjambor@suse.cz>
1704
1705 * cp-lang.c (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove both its undef
1706 and define.
1707
1708 2010-05-14 Jonathan Wakely <jwakely.gcc@gmail.com>
1709
1710 * call.c (build_new_method_call): Change warning text.
1711 * typeck2.c (build_functional_cast): Change error text.
1712
1713 2010-05-14 Shujing Zhao <pearly.zhao@oracle.com>
1714
1715 PR c++/30566
1716 * name-lookup.c (pushdecl_maybe_friend): Avoid the warnings about
1717 shadowing the outer parameter or variables by the declaration of
1718 nested function in nested structure or class. Warn the shadowing by
1719 the declaration of nested lambda expression.
1720
1721 2010-05-13 Jason Merrill <jason@redhat.com>
1722
1723 * typeck.c (cp_build_array_ref): Factor out from...
1724 (build_array_ref): ...here. Drop complain parm.
1725 (build_new_op): Adjust.
1726 * class.c (build_vtbl_ref_1): Adjust.
1727 * decl2.c (grok_array_decl): Adjust.
1728 * cp-tree.h: Adjust prototypes.
1729
1730 2010-05-13 Jan Hubicka <jh@suse.cz>
1731
1732 * decl.c (cp_finish_decl): Do not worry about used attribute.
1733
1734 2010-05-12 Jason Merrill <jason@redhat.com>
1735
1736 * typeck.c (build_array_ref): Take complain parm.
1737 * cp-tree.h: Add it to prototype.
1738 * call.c (build_new_op): Pass it.
1739 * class.c (build_vtbl_ref): Pass it.
1740 * decl2.c (grok_array_decl): Pass it.
1741
1742 PR bootstrap/44048
1743 PR target/44099
1744 * cp-tree.def (NULLPTR_TYPE): Remove.
1745 * cp-tree.h (NULLPTR_TYPE_P): New.
1746 (SCALAR_TYPE_P): Use it.
1747 (nullptr_type_node): New.
1748 (cp_tree_index): Add CPTI_NULLPTR_TYPE.
1749 * decl.c (cxx_init_decl_processing): Call record_builtin_type on
1750 nullptr_type_node.
1751 * cvt.c (ocp_convert): Use NULLPTR_TYPE_P instead of NULLPTR_TYPE.
1752 * cxx-pretty-print.c (pp_cxx_constant): Likewise.
1753 * error.c (dump_type, dump_type_prefix, dump_type_suffix): Likewise.
1754 * mangle.c (write_type): Likewise.
1755 * name-lookup.c (arg_assoc_type): Likewise.
1756 * typeck.c (build_reinterpret_cast_1): Likewise.
1757 * rtti.c (typeinfo_in_lib_p): Likewise.
1758 (emit_support_tinfos): Remove local nullptr_type_node.
1759
1760 * cp-tree.h (UNKNOWN_TYPE): Remove.
1761 * decl.c (cxx_init_decl_processing): Use LANG_TYPE instead.
1762 * error.c (dumy_type, dump_type_prefix, dump_type_suffix): Likewise.
1763 * typeck2.c (cxx_incomplete_type_diagnostic): Likewise.
1764 * class.c (instantiate_type): Check unknown_type_node rather than
1765 UNKNOWN_TYPE.
1766 * name-lookup.c (maybe_push_decl): Likewise.
1767 * rtti.c (get_tinfo_decl_dynamic): Likewise.
1768 (get_typeid): Likewise.
1769 * semantics.c (finish_offsetof): Likewise.
1770
1771 PR c++/20669
1772 * call.c (add_template_candidate_real): If deduction fails, still
1773 add the template as a non-viable candidate.
1774 (equal_functions): Handle template candidates.
1775 (print_z_candidate): Likewise.
1776 (print_z_candidates): Likewise.
1777 (build_new_function_call): Likewise.
1778
1779 * cp-tree.h (LOOKUP_LIST_ONLY): New.
1780 * call.c (add_candidates): Enforce it.
1781 (build_new_method_call): Try non-list ctor if no viable list ctor.
1782 (build_user_type_conversion_1): Likewise.
1783
1784 * call.c (add_candidates): Distinguish between type(x) and
1785 x.operator type().
1786 (convert_class_to_reference): Set LOOKUP_NO_CONVERSION.
1787 (build_new_method_call): Give better error for conversion op.
1788
1789 * call.c (add_candidates): Add first_arg and return_type parms.
1790 Add special constructor/conversion op handling.
1791 (convert_class_to_reference): Use it.
1792 (build_user_type_conversion_1): Likewise.
1793 (build_op_call): Likewise.
1794 (build_new_method_call): Likewise.
1795 (build_new_op): Adjust.
1796 (perform_overload_resolution): Adjust.
1797
1798 2010-05-11 Paolo Carlini <paolo.carlini@oracle.com>
1799
1800 PR c++/34272
1801 PR c++/43630
1802 PR c++/34491
1803 * pt.c (process_partial_specialization): Return error_mark_node
1804 in case of unused template parameters in partial specialization.
1805
1806 2010-05-11 Jakub Jelinek <jakub@redhat.com>
1807
1808 PR c++/44062
1809 * semantics.c (finish_expr_stmt): Don't call mark_exp_read here...
1810 * cvt.c (convert_to_void): ... but here. If expr is a COMPOUND_EXPR,
1811 look at its second operand.
1812
1813 2010-05-10 Jason Merrill <jason@redhat.com>
1814
1815 PR c++/44017
1816 * semantics.c (baselink_for_fns): Revert earlier change.
1817
1818 PR c++/44045
1819 * typeck.c (cp_build_modify_expr): Complain about assignment to
1820 array from init list.
1821
1822 2010-05-10 Fabien Chêne <fabien.chene@gmail.com>
1823
1824 PR c++/43719
1825 * decl.c (check_initializer): strip array type before checking for
1826 uninitialized const or ref members.
1827
1828 2010-05-07 Fabien Chêne <fabien.chene@gmail.com>
1829
1830 PR c++/43951
1831 * init.c (diagnose_uninitialized_cst_or_ref_member_1): Returns the
1832 error count. Emit errors only if compain is true.
1833 (build_new_1): Do not return error_mark_node if
1834 diagnose_uninitialized_cst_or_ref_member_1 does not diagnose any
1835 errors. Delay the check for user-provided constructor.
1836 (perform_member_init): Adjust.
1837 * cp-tree.h (diagnose_uninitialized_cst_or_ref_member): Change the
1838 prototype.
1839
1840 2010-05-06 Magnus Fromreide <magfr@lysator.liu.se>
1841 Jason Merrill <jason@redhat.com>
1842
1843 Add support for C++0x nullptr.
1844 * cp-tree.def: Add NULLPTR_TYPE.
1845 * cp-tree.h: Add nullptr_node.
1846 (cp_tree_index): Add CPTI_NULLPTR.
1847 (SCALAR_TYPE_P): Add NULLPTR_TYPE.
1848 * call.c (null_ptr_cst_p): Handle nullptr.
1849 (standard_conversion): Likewise.
1850 (convert_arg_to_ellipsis): Likewise.
1851 * mangle.c (write_type): Likewise.
1852 * name-lookup.c (arg_assoc_type): Likewise.
1853 * parser.c (cp_parser_primary_expression): Likewise.
1854 * typeck.c (cp_build_binary_op): Likewise.
1855 (build_reinterpret_cast_1): Likewise.
1856 * error.c (dump_type): Likewise.
1857 (dump_type_prefix, dump_type_suffix): Likewise.
1858 * decl.c (cxx_init_decl_processing): Likewise.
1859 * cxx-pretty-print.c (pp_cxx_constant): Likewise.
1860 * cvt.c (ocp_convert): Likewise.
1861 * rtti.c (typeinfo_in_lib_p, emit_support_tinfos): Put
1862 nullptr_t tinfo in libsupc++.
1863
1864 2010-05-06 Jason Merrill <jason@redhat.com>
1865
1866 * semantics.c (simplify_aggr_init_expr): Use INIT_EXPR.
1867
1868 2010-04-22 Jakub Jelinek <jakub@redhat.com>
1869 Dodji Seketeli <dodji@redhat.com>
1870
1871 PR c/18624
1872 * cp-tree.h (mark_exp_read, rvalue_use, lvalue_use, type_use):
1873 Declare ...
1874 * expr.c (mark_exp_read, rvalue_use, lvalue_use, type_use): ... new fns.
1875 * typeck.c (cxx_sizeof_expr, cxx_alignof_expr): Call type_use.
1876 (decay_conversion, perform_integral_promotions): Call rvalue_use.
1877 (cp_build_unary_op): Call lvalue_use.
1878 * decl.c (unused_but_set_errorcount): New variable.
1879 (poplevel): Issue -Wunused-but-set-variable diagnostics.
1880 (duplicate_decls): Merge DECL_READ_P flags.
1881 (start_cleanup_fn): Set DECL_READ_P flag.
1882 (finish_function): Issue -Wunused-but-set-parameter diagnostics.
1883 * tree.c (rvalue): Call rvalue_use.
1884 * pt.c (convert_nontype_argument): Likewise.
1885 * semantics.c (finish_expr_stmt, finish_asm_stmt, finish_typeof,
1886 finish_decltype_type): Likewise.
1887 * call.c (convert_like_real) <ck_identity, ck_user>: Call rvalue use.
1888 (build_x_va_arg, build_new_method_call, build_over_call): Call lvalue_use
1889 or rvalue_use depending on the expr.
1890 * init.c (build_new, build_delete): Likewise.
1891 * rtti.c (build_typeid, build_dynamic_cast_1): Likewise.
1892
1893 2010-05-05 Jason Merrill <jason@redhat.com>
1894
1895 PR c++/43787
1896 * cp-gimplify.c (cp_gimplify_expr): Remove copies of empty classes.
1897 * call.c (build_over_call): Don't try to avoid INIT_EXPR copies here.
1898
1899 2010-05-04 Paolo Carlini <paolo.carlini@oracle.com>
1900
1901 PR c++/43028
1902 * pt.c (unify): Check each elt for error_mark_node.
1903
1904 2010-05-04 Jason Merrill <jason@redhat.com>
1905
1906 PR c++/38064
1907 * typeck.c (cp_build_binary_op): Allow enums for <> as well.
1908
1909 2010-05-04 Paolo Carlini <paolo.carlini@oracle.com>
1910
1911 PR c++/43705
1912 * call.c (build_new_method_call): Return error_mark_node if fns is
1913 NULL_TREE.
1914
1915 2010-05-03 Dodji Seketeli <dodji@redhat.com>
1916
1917 PR c++/43953
1918 * pt.c (most_specialized_class): Pretend we are processing
1919 a template decl during the call to coerce_template_parms.
1920
1921 2010-05-03 Jason Merrill <jason@redhat.com>
1922
1923 PR c++/42810
1924 PR c++/43680
1925 * decl.c (finish_enum): Use the TYPE_MIN_VALUE and TYPE_MAX_VALUE
1926 from the selected underlying type unless -fstrict-enums. Set
1927 ENUM_UNDERLYING_TYPE to have the restricted range.
1928 * cvt.c (type_promotes_to): Use ENUM_UNDERLYING_TYPE.
1929 * class.c (check_bitfield_decl): Likewise.
1930
1931 2010-05-01 H.J. Lu <hongjiu.lu@intel.com>
1932
1933 PR c++/43951
1934 * init.c (build_new_1): Revert the accidental checkin in
1935 revision 158918.
1936
1937 2010-04-30 Jason Merrill <jason@redhat.com>
1938
1939 PR c++/43868
1940 * cxx-pretty-print.c (pp_cxx_decl_specifier_seq): Move pmf handling...
1941 (pp_cxx_type_specifier_seq): ...here.
1942
1943 2010-04-30 Steven Bosscher <steven@gcc.gnu.org>
1944
1945 * optimize.c, parser.c, mangle.c, cp-tree.h: Do not include varray.h.
1946 * Make-lang.in: Don't include varray.h dependency in CXX_TREE_H.
1947
1948 2010-04-30 Shujing Zhao <pearly.zhao@oracle.com>
1949
1950 PR c++/43779
1951 * typeck.c (warn_args_num): New function.
1952 (convert_arguments): Use warn_args_num to print the diagnostic
1953 messages.
1954
1955 2010-04-29 Fabien Chêne <fabien.chene@gmail.com>
1956
1957 PR c++/43890
1958 * init.c (diagnose_uninitialized_cst_or_ref_member): check for
1959 user-provided constructor while recursing.
1960
1961 2010-04-28 Manuel López-Ibáñez <manu@gcc.gnu.org>
1962
1963 PR c++/9335
1964 * error.c (print_instantiation_partial_context_line): Handle
1965 recursive instantiation.
1966 (print_instantiation_partial_context): Likewise.
1967
1968 2010-04-27 Jason Merrill <jason@redhat.com>
1969
1970 * init.c (perform_member_init): Check CLASS_TYPE_P.
1971
1972 2010-04-27 Fabien Chêne <fabien.chene@gmail.com>
1973
1974 PR c++/29043
1975 * init.c (perform_member_init): check for uninitialized const or
1976 reference members, including array types.
1977
1978 2010-04-24 Jason Merrill <jason@redhat.com>
1979
1980 * tree.c (get_fns): Split out from get_first_fn.
1981 * cp-tree.h: Declare it.
1982 * search.c (shared_member_p): Use it.
1983 * semantics.c (finish_qualified_id_expr): Simplify.
1984 (finish_id_expression): Simplify.
1985
1986 * semantics.c (finish_non_static_data_member): Call maybe_dummy_object
1987 whenever object is NULL_TREE. Don't do 'this' capture here.
1988 (finish_qualified_id_expr): Pass NULL_TREE.
1989 (finish_id_expression): Likewise.
1990 (lambda_expr_this_capture): Likewise.
1991
1992 * semantics.c (finish_qualified_id_expr): Use maybe_dummy_object
1993 rather than checking current_class_ref directly.
1994 (finish_call_expr): Likewise.
1995
1996 PR c++/43856
1997 * name-lookup.c (qualify_lookup): Disqualify lambda op().
1998 * class.c (current_nonlambda_class_type): New fn.
1999 * semantics.c (nonlambda_method_basetype): New.
2000 * cp-tree.h: Declare them.
2001 * tree.c (maybe_dummy_object): Handle implicit 'this' capture.
2002
2003 * semantics.c (baselink_for_fns): Correct BASELINK_BINFO.
2004
2005 PR c++/43875
2006 * semantics.c (lambda_return_type): Complain about
2007 braced-init-list.
2008
2009 PR c++/43790
2010 * tree.c (cv_unqualified): Handle error_mark_node.
2011
2012 PR c++/41468
2013 * call.c (convert_like_real) [ck_ambig]: Just return error_mark_node
2014 if we don't want errors.
2015
2016 PR c++/41468
2017 * class.c (convert_to_base): Add complain parameter. Pass
2018 ba_quiet to lookup_base if we don't want errors.
2019 (build_vfield_ref): Pass complain to convert_to_base.
2020 * call.c (convert_like_real): Likewise.
2021 (initialize_reference): Likewise.
2022 (perform_direct_initialization_if_possible): Pass complain to
2023 convert_like_real.
2024 * cp-tree.h: Adjust.
2025
2026 2010-04-27 Fabien Chêne <fabien.chene@gmail.com>
2027 Jason Merrill <jason@redhat.com>
2028
2029 PR c++/42844
2030 * decl.c (check_for_uninitialized_const_var): Handle classes that need
2031 constructing, too.
2032 (check_initializer): Call it for classes that need constructing, too.
2033 * class.c (in_class_defaulted_default_constructor): New.
2034 * cp-tree.h: Declare it.
2035
2036 2010-04-20 Jason Merrill <jason@redhat.com>
2037
2038 PR c++/9335
2039 * init.c (constant_value_1): Treat error_mark_node as a constant
2040 if DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P is set.
2041 * cvt.c (ocp_convert): Handle getting error_mark_node from
2042 integral_constant_value.
2043 * decl.c (compute_array_index_type): Likewise.
2044
2045 2010-04-20 Dodji Seketeli <dodji@redhat.com>
2046
2047 PR c++/43800
2048 PR c++/43704
2049 * typeck.c (incompatible_dependent_types_p): If one of the
2050 compared types if not a typedef then honour their main variant
2051 equivalence.
2052
2053 2010-04-20 Jakub Jelinek <jakub@redhat.com>
2054
2055 * cp-tree.h (TYPE_REF_IS_RVALUE): Remove.
2056
2057 2010-04-19 Dodji Seketeli <dodji@redhat.com>
2058
2059 PR c++/43704
2060 * typeck.c (structural_comptypes): Test dependent typedefs
2061 incompatibility before testing for their main variant based
2062 equivalence.
2063
2064 2010-04-19 Jakub Jelinek <jakub@redhat.com>
2065
2066 * cp-tree.h (SCOPED_ENUM_P, UNSCOPED_ENUM_P, SET_SCOPED_ENUM_P): Use
2067 ENUM_IS_SCOPED bit instead of TYPE_LANG_FLAG_5.
2068
2069 2010-04-18 Eric Botcazou <ebotcazou@adacore.com>
2070
2071 * decl.c (cxx_init_decl_processing): Remove second argument in call to
2072 build_common_tree_nodes.
2073
2074 2010-04-14 Jason Merrill <jason@redhat.com>
2075
2076 PR c++/36625
2077 * parser.c (cp_parser_parenthesized_expression_list): Change
2078 is_attribute_list parm to int to indicate whether or not to
2079 handle initial identifier specially.
2080 (cp_parser_attribute_list): Use attribute_takes_identifier_p.
2081
2082 2010-04-13 Jason Merrill <jason@redhat.com>
2083
2084 * call.c (type_decays_to): Check MAYBE_CLASS_TYPE_P instead of
2085 CLASS_TYPE_P.
2086 * parser.c (cp_parser_lambda_expression): Complain about lambda in
2087 unevaluated context.
2088 * pt.c (iterative_hash_template_arg): Don't crash on lambda.
2089
2090 2010-04-12 Jason Merrill <jason@redhat.com>
2091
2092 PR c++/43641
2093 * semantics.c (maybe_add_lambda_conv_op): Use build_call_a and tweak
2094 return value directly.
2095
2096 * call.c (type_decays_to): Call cv_unqualified for non-class type.
2097
2098 2010-04-12 Fabien Chene <fabien.chene@gmail.com>
2099
2100 PR c++/25811
2101 * cp-tree.h (diagnose_uninitialized_cst_or_ref_member): Declare.
2102 * init.c (build_new_1): Check for uninitialized const members and
2103 uninitialized reference members, when using new without
2104 new-initializer. Call diagnose_uninitialized_cst_or_ref_member.
2105 (diagnose_uninitialized_cst_or_ref_member): Define, call
2106 diagnose_uninitialized_cst_or_ref_member_1.
2107 (diagnose_uninitialized_cst_or_ref_member_1): New function.
2108
2109 2010-04-12 Richard Guenther <rguenther@suse.de>
2110
2111 PR c++/43611
2112 * semantics.c (expand_or_defer_fn_1): Do not keep extern
2113 template inline functions.
2114
2115 2010-04-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
2116
2117 PR c++/28584
2118 * typeck.c (cp_build_c_cast): Warn for casting integer to larger
2119 pointer type.
2120
2121 2010-04-07 Jason Merrill <jason@redhat.com>
2122
2123 PR c++/43016
2124 * decl.c (start_preparsed_function): Do defer nested functions.
2125
2126 PR c++/11094, DR 408
2127 * cp-tree.h (VAR_HAD_UNKNOWN_BOUND, SET_VAR_HAD_UNKNOWN_BOUND): New.
2128 * decl2.c (finish_static_data_member_decl): Set it.
2129 * decl.c (duplicate_decls): Propagate it.
2130 * pt.c (tsubst_decl): Don't substitute the domain of an array
2131 VAR_DECL if it's set.
2132 (regenerate_decl_from_template): Substitute it here.
2133 (type_dependent_expression_p): Return true if it's set.
2134 * semantics.c (finish_decltype_type): Instantiate such a variable.
2135 * typeck.c (cxx_sizeof_expr): Likewise.
2136 (strip_array_domain): New.
2137
2138 PR c++/43145
2139 * name-lookup.c (current_decl_namespace): Non-static.
2140 (pop_nested_namespace): Sanity check.
2141 * cp-tree.h: Declare current_decl_namespace.
2142 * decl.c (grokvardecl): Use it instead of current_namespace.
2143 (grokfndecl): Likewise.
2144
2145 PR c++/38392
2146 * pt.c (tsubst_friend_function): Instatiate a friend that has already
2147 been used.
2148
2149 * pt.c (print_template_statistics): New.
2150 * cp-tree.h: Declare it.
2151 * tree.c (cxx_print_statistics): Call it.
2152
2153 PR c++/41970
2154 * decl.c (grokvardecl): Tweak warning message.
2155 (grokfndecl): Likewise.
2156
2157 2010-04-07 Dodji Seketeli <dodji@redhat.com>
2158
2159 PR c++/42697
2160 *pt.c (tsubst_decl): Get the arguments of a specialization from
2161 the specialization template, not from the most general template.
2162
2163 2010-04-07 Dodji Seketeli <dodji@redhat.com>
2164
2165 PR c++/40239
2166 * typeck2.c (process_init_constructor_record):
2167 value-initialize members that are are not explicitely
2168 initialized.
2169
2170 2010-04-07 Jie Zhang <jie@codesourcery.com>
2171
2172 PR c++/42556
2173 * typeck2.c (split_nonconstant_init_1): Drop empty CONSTRUCTOR
2174 when all of its elements are non-constant and have been split out.
2175
2176 2010-04-06 Taras Glek <taras@mozilla.com>
2177 Jason Merrill <jason@redhat.com>
2178
2179 * parser.c (cp_parser_class_specifier): Set class location to that
2180 of IDENTIFIER_NODE instead of '{' when possible.
2181 * semantics.c (begin_class_definition): Do not overide locations
2182 with less precise ones.
2183
2184 2010-04-06 Jason Merrill <jason@redhat.com>
2185
2186 PR c++/43648
2187 * name-lookup.c (constructor_name_p): Allow X::~X even for typedefs.
2188
2189 PR c++/43621
2190 * pt.c (maybe_update_decl_type): Check the return value from
2191 push_scope.
2192
2193 2010-04-01 Jason Merrill <jason@redhat.com>
2194
2195 * decl.c (next_initializable_field): No longer static.
2196 * cp-tree.h: Declare it.
2197 * call.c (build_aggr_conv): Fail if there are more initializers
2198 than initializable fields.
2199
2200 * semantics.c (maybe_add_lambda_conv_op): Use null_pointer_node
2201 instead of void_zero_node.
2202
2203 2010-03-31 Dodji Seketeli <dodji@redhat.com>
2204
2205 PR c++/43558
2206 * cp-tree.h (TEMPLATE_TYPE_PARM_SIBLING_PARMS): New accessor macro.
2207 * pt.c (end_template_parm_list): Store sibling template parms of
2208 each TEMPLATE_TYPE_PARMs into its TEMPLATE_TYPE_PARM_SIBLING_PARMS.
2209 (push_template_decl_real): Don't store the containing template decl
2210 into the DECL_CONTEXT of TEMPLATE_TYPE_PARMs anymore.
2211 * typeck.c (get_template_parms_of_dependent_type): Get sibling parms
2212 of a TEMPLATE_TYPE_PARM from TEMPLATE_TYPE_PARM_SIBLING_PARMS.
2213 Simplify the logic.
2214
2215 2010-03-30 Jason Merrill <jason@redhat.com>
2216
2217 PR c++/43076
2218 * pt.c (push_template_decl_real): Deal better with running out of
2219 scopes before running out of template parms.
2220
2221 PR c++/41185
2222 PR c++/41786
2223 * parser.c (cp_parser_direct_declarator): Don't allow VLAs in
2224 function parameter context. Don't print an error if parsing
2225 tentatively.
2226
2227 PR c++/43559
2228 * pt.c (more_specialized_fn): Don't control cv-qualifier check
2229 with same_type_p.
2230
2231 2010-03-26 Jason Merrill <jason@redhat.com>
2232
2233 PR c++/43509
2234 * parser.c (cp_parser_qualifying_entity): Do accept enum names in
2235 c++0x mode, but not other type-names.
2236
2237 2010-03-26 Dodji Seketeli <dodji@redhat.com>
2238
2239 PR c++/43327
2240 * pt.c (add_to_template_args): Support NULL ARGS;
2241 (most_specialized_class): call coerce_template_parms on
2242 template arguments passed to get_class_bindings. Use
2243 add_to_template_args.
2244 (unify): Handle VAR_DECLs.
2245
2246 2010-03-26 Dodji Seketeli <dodji@redhat.com>
2247
2248 * cp-tree.h (get_template_parms_at_level): Change unsigned parm
2249 into int.
2250 * pt.c (get_template_parms_at_level): Adjust.
2251
2252 2010-03-25 Dodji Seketeli <dodji@redhat.com>
2253
2254 PR c++/43206
2255 * cp-tree.h (get_template_parms_at_level): Declare ...
2256 * pt.c (get_template_parms_at_level): ... new function.
2257 * typeck.c (get_template_parms_of_dependent_type): If a template
2258 type parm's DECL_CONTEXT isn't yet set, get its siblings from
2259 current_template_parms. Use get_template_parms_at_level. Remove
2260 useless test.
2261 (incompatible_dependent_types_p): If we get empty parms from just one
2262 of the template type parms we are comparing then the template parms are
2263 incompatible.
2264
2265 2010-03-24 Jason Merrill <jason@redhat.com>
2266
2267 PR c++/43502
2268 * parser.c (make_declarator): Initialize id_loc.
2269 (cp_parser_lambda_declarator_opt): And set it.
2270
2271 2010-03-23 Jason Merrill <jason@redhat.com>
2272
2273 Make lambda conversion op and op() non-static.
2274 * semantics.c (maybe_add_lambda_conv_op): Make non-static.
2275 Also add the thunk function returned by the conversion op.
2276 Mark the conversion deleted if the op() is variadic.
2277 * decl2.c (mark_used): Give helpful message about deleted conversion.
2278 * parser.c (cp_parser_lambda_declarator_opt): Don't make op() static.
2279 * semantics.c (finish_this_expr): Adjust.
2280 * mangle.c (write_closure_type_name): Adjust.
2281 * decl.c (grok_op_properties): Don't allow it.
2282 * call.c (build_user_type_conversion_1): No static conversion ops.
2283 (build_op_call): Or op().
2284
2285 * decl2.c (change_return_type): Fix 'this' quals.
2286
2287 2010-03-22 Jason Merrill <jason@redhat.com>
2288
2289 PR c++/43333
2290 * tree.c (pod_type_p): Use old meaning in C++98 mode.
2291
2292 PR c++/43281
2293 * pt.c (contains_auto_r): New fn.
2294 (do_auto_deduction): Use it.
2295 (tsubst): Don't look at TREE_TYPE of a TEMPLATE_TYPE_PARM.
2296
2297 2010-03-20 Simon Martin <simartin@users.sourceforge.net>
2298
2299 PR c++/43081:
2300 * decl2.c (grokfield): Handle invalid initializers for member
2301 functions.
2302
2303 2010-03-20 Dodji Seketeli <dodji@redhat.com>
2304
2305 PR c++/43375
2306 * method.c (make_alias_for): Avoid crashing when DECL_LANG_SPECIFIC
2307 is NULL.
2308 * decl2.c (vague_linkage_p): Likewise.
2309
2310 2010-03-18 Paolo Carlini <paolo.carlini@oracle.com>
2311
2312 PR c++/43418
2313 * parser.c (cp_parser_for_init_statement): Use NULL_TREE, not
2314 false, in the cp_parser_expression_statement call.
2315
2316 2010-03-05 Jason Merrill <jason@redhat.com>
2317
2318 * mangle.c (mangle_decl): Give name collision error even without
2319 ASM_OUTPUT_DEF.
2320
2321 2010-03-04 Marco Poletti <poletti.marco@gmail.com>
2322
2323 * pt.c (process_partial_specialization): Use error_n instead of
2324 error.
2325
2326 2010-03-03 Jason Merrill <jason@redhat.com>
2327
2328 PR c++/12909
2329 * mangle.c (mangle_decl): Handle VAR_DECL, too.
2330
2331 2010-03-03 Jason Merrill <jason@redhat.com>
2332
2333 PR c++/12909
2334 * mangle.c: Include cgraph.h.
2335 (mangle_decl): If the mangled name will change in a later
2336 ABI version, make the later mangled name an alias.
2337 * method.c (make_alias_for): Copy DECL_ARGUMENTS.
2338 * Make-lang.in (mangle.o): Depend on cgraph.h.
2339 * method.c (make_alias_for): Handle VAR_DECL, too.
2340 * decl2.c (vague_linkage_p): Rename from vague_linkage_fn_p.
2341 * tree.c (no_linkage_check): Adjust.
2342 * decl.c (maybe_commonize_var): Adjust.
2343 * cp-tree.h: Adjust.
2344
2345 2010-03-01 Marco Poletti <poletti.marco@gmail.com>
2346
2347 * pt.c (redeclare_class_template): Use error_n and inform_n.
2348
2349 2010-02-27 Mark Mitchell <mark@codesourcery.com>
2350
2351 PR c++/42748
2352 * cp-tree.h (push_tinst_level): Declare.
2353 (pop_tinst_level): Likewise.
2354 * pt.c (push_tinst_level): Give it external linkage.
2355 (pop_tinst_level): Likewise.
2356 * mangle.c (mangle_decl_string): Set the source location to that
2357 of the decl while mangling.
2358
2359 2010-02-27 Simon Martin <simartin@users.sourceforge.net>
2360
2361 PR c++/42054
2362 * pt.c (redeclare_class_template): Return false if there are erroneous
2363 template parameters.
2364
2365 2010-02-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
2366
2367 * pt.c (push_tinst_level): Replace -ftemplate-depth- with
2368 -ftemplate-depth=.
2369
2370 2010-02-24 Jason Merrill <jason@redhat.com>
2371
2372 PR c++/12909
2373 * mangle.c (write_type): Give -Wabi warning for old vector mangling.
2374
2375 * class.c (layout_class_type): Don't give -Wabi warning for a bug
2376 in a previous ABI version.
2377
2378 2010-02-23 Jason Merrill <jason@redhat.com>
2379
2380 PR c++/43143
2381 * typeck2.c (digest_init_r): Accept value init of array.
2382
2383 2010-02-22 Manuel López-Ibáñez <manu@gcc.gnu.org>
2384
2385 PR c++/43126
2386 * typeck.c (convert_arguments): Update error message.
2387
2388 2010-02-22 Mike Stump <mikestump@comcast.net>
2389
2390 PR c++/43125
2391 * decl.c (duplicate_decls): Merge DECL_PRESERVE_P.
2392
2393 2010-02-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
2394
2395 PR c++/23510
2396 * error.c (print_instantiation_partial_context_line): New.
2397 (print_instantiation_partial_context): Print at most 12 contexts,
2398 skip the rest with a message.
2399
2400 2010-02-21 Dodji Seketeli <dodji@redhat.com>
2401
2402 PR c++/42824
2403 * pt.c (lookup_template_class): Better support of specialization
2404 of member of class template implicit instantiation.
2405
2406 2010-02-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
2407
2408 PR c++/35669
2409 * call.c (conversion_null_warnings): Replace -Wconversion with
2410 -Wconversion-null.
2411 * cvt.c (build_expr_type_conversion): Likewise.
2412
2413 2010-02-18 Jason Merrill <jason@redhat.com>
2414
2415 PR c++/42837
2416 * class.c (create_vtable_ptr): Set DECL_PACKED if type is packed.
2417
2418 PR c++/43108
2419 * typeck.c (cp_build_binary_op): Adapt mixed complex/non handling from
2420 C build_binary_op.
2421 * cp-tree.h (WANT_VECTOR_OR_COMPLEX): Rename from WANT_VECTOR.
2422 * cvt.c (build_expr_type_conversion): Allow COMPLEX_TYPE.
2423
2424 PR c++/43070
2425 * semantics.c (finish_goto_stmt): Don't call decay_conversion.
2426
2427 PR c++/26261
2428 PR c++/43101
2429 * pt.c (tsubst_qualified_id): Do normal lookup in non-dependent scope.
2430 (maybe_update_decl_type): New fn.
2431 * parser.c (cp_parser_init_declarator): Use it.
2432
2433 PR c++/43109
2434 * semantics.c (begin_class_definition): Don't crash on unnamed ns.
2435
2436 2010-02-17 Jason Merrill <jason@redhat.com>
2437
2438 PR c++/43075
2439 * call.c (build_over_call): Don't create zero-sized assignments.
2440 * cp-gimplify.c (cp_genericize_r): Don't remove them here.
2441 * cp-objcp-common.c (cp_expr_size): Remove.
2442 * cp-tree.h: Remove prototype.
2443
2444 PR c++/43069
2445 * name-lookup.c (set_decl_namespace): Don't copy DECL_CONTEXT if the
2446 decl we looked up doesn't match.
2447
2448 PR c++/43093
2449 * cp-gimplify.c (cp_gimplify_expr) [INIT_EXPR]: Return if we don't
2450 have an INIT_EXPR anymore.
2451
2452 PR c++/43079
2453 * pt.c (convert_nontype_argument): Change assert to test.
2454
2455 2010-02-16 Jason Merrill <jason@redhat.com>
2456
2457 * cp-gimplify.c (cp_gimplify_expr): Fix error recovery.
2458
2459 PR c++/43031
2460 * cp-gimplify.c (cp_gimplify_expr) [MODIFY_EXPR]: Use
2461 VIEW_CONVERT_EXPR for conversions between structural equality types
2462 that the back end can't tell are the same.
2463
2464 PR c++/43036
2465 * tree.c (build_cplus_array_type): Set TYPE_MAIN_VARIANT to strip
2466 cv-quals from element here.
2467 (cp_build_qualified_type_real): Not here. Preserve typedef name.
2468
2469 2010-02-14 Jason Merrill <jason@redhat.com>
2470
2471 PR c++/41997
2472 * semantics.c (finish_compound_literal): Use
2473 cp_apply_type_quals_to_decl when creating a static variable.
2474
2475 2010-02-12 Jason Merrill <jason@redhat.com>
2476
2477 PR c++/43024
2478 * name-lookup.h (current_binding_level): Check for null
2479 cp_function_chain.
2480
2481 2010-02-12 Jason Merrill <jason@redhat.com>
2482
2483 PR c++/43054
2484 * tree.c (cp_tree_equal): Correct CALL_EXPR logic.
2485
2486 2010-02-12 Jakub Jelinek <jakub@redhat.com>
2487
2488 PR c++/43033
2489 * name-lookup.c (pushdecl_maybe_friend): Check default args of t
2490 instead of x.
2491
2492 2010-02-10 Jason Merrill <jason@redhat.com>
2493
2494 PR c++/41896
2495 * semantics.c (outer_lambda_capture_p): Revert.
2496 (add_capture): Only finish_member_declaration if
2497 we're in the lambda class.
2498 (register_capture_members): New.
2499 * cp-tree.h: Declare it.
2500 * parser.c (cp_parser_lambda_expression): Call it.
2501
2502 2010-02-10 Jason Merrill <jason@redhat.com>
2503
2504 PR c++/41896
2505 * semantics.c (outer_lambda_capture_p): Use current_function_decl
2506 instead of current_class_type.
2507
2508 2010-02-10 Jason Merrill <jason@redhat.com>
2509
2510 PR c++/42983, core issue 906
2511 * method.c (defaultable_fn_check): Check virtualness.
2512
2513 2010-02-10 Jason Merrill <jason@redhat.com>
2514
2515 PR c++/43016
2516 * semantics.c (maybe_add_lambda_conv_op): Set DECL_INTERFACE_KNOWN.
2517
2518 2010-02-10 Shujing Zhao <pearly.zhao@oracle.com>
2519
2520 * Make-lang.in (cp/cvt.o, cp/parser.o, cp/search.o): Depend on intl.h.
2521 * cvt.c (warn_ref_binding): Wrap the messages into G_() for easy
2522 translation.
2523 * parser.c (cp_parser_postfix_expression, cp_parser_new_type_id)
2524 (cp_parser_cast_expression, cp_parser_condition, cp_parser_decltype)
2525 (cp_parser_parameter_declaration)
2526 (cp_parser_exception_specification_opt)
2527 (cp_parser_exception_declaration): Likewise.
2528 * pt.c (check_default_tmpl_args): Likewise.
2529 * search.c (lookup_field_r): Likewise.
2530
2531 2010-02-09 Jason Merrill <jason@redhat.com>
2532
2533 PR c++/42399
2534 * pt.c (tsubst_copy_and_build): Propagate LAMBDA_EXPR_LOCATION.
2535
2536 2010-02-09 Jason Merrill <jason@redhat.com>
2537
2538 PR c++/42370
2539 * decl2.c (change_return_type): New fn.
2540 * semantics.c (apply_lambda_return_type): Use it.
2541 * cp-tree.h: Declare it.
2542
2543 2010-02-05 Richard Guenther <rguenther@suse.de>
2544
2545 * Make-lang.in (cp/cp-lang.o): Depend on gt-cp-cp-lang.h.
2546 * cp-lang.c: Include gt-cp-cp-lang.h.
2547 * config-lang.in (gtfiles): Add cp/cp-lang.c.
2548
2549 2010-02-05 Dodji Seketeli <dodji@redhat.com>
2550
2551 PR c++/42915
2552 * typeck.c (get_template_parms_of_dependent_type): Try getting
2553 the template parameters fromt the type itself first.
2554
2555 2010-02-03 Jason Merrill <jason@redhat.com>
2556
2557 PR c++/4926
2558 PR c++/38600
2559 * mangle.c (write_unqualified_id): Split out from write_expression.
2560 (write_unqualified_name): Call it.
2561 (write_member_name): Likewise.
2562 (write_expression): Support TEMPLATE_ID_EXPR.
2563 Disambiguate operator names.
2564
2565 PR c++/12909
2566 * mangle.c (write_type) [VECTOR_TYPE]: Change mangling with
2567 -fabi-version=4.
2568
2569 2010-02-02 Jason Merrill <jason@redhat.com>
2570
2571 PR c++/41090
2572 * decl.c (cp_finish_decl): Add local statics to cfun->local_decls.
2573 * optimize.c (clone_body): Remap their initializers when making base
2574 variants.
2575 (maybe_clone_body): Complain if multiple clones aren't safe.
2576
2577 2010-01-29 Dodji Seketeli <dodji@redhat.com>
2578
2579 PR c++/42758
2580 PR c++/42634
2581 PR c++/42336
2582 PR c++/42797
2583 PR c++/42880
2584 * cp-tree.h (NON_DEFAULT_TEMPLATE_ARGS_COUNT,
2585 SET_NON_DEFAULT_TEMPLATE_ARGS_COUNT,
2586 GET_NON_DEFAULT_TEMPLATE_ARGS_COUNT): New accessor macros.
2587 * pt.c (coerce_template_parms, type_unification_real,
2588 expand_template_argument_pack, coerce_template_parameter_pack):
2589 Set the non default template args count.
2590 (current_template_args): Always set non defaulted
2591 template args count when compiled with --enable-checking
2592 (tsubst_template_args, type_unification_real): Propagate the non
2593 defaulted template args count.
2594 * error.c (get_non_default_template_args_count): Renamed
2595 count_non_default_template_args into this. Don't calculate the
2596 non default template argument count anymore. Use the new
2597 accessor macros above to get it.
2598 (dump_template_argument_list, dump_type, dump_decl,
2599 dump_template_parms): Adjust.
2600 * parser.c (cp_parser_template_argument_list): Always set defaulted
2601 template args count when compiled with --enable-checking.
2602
2603 2010-01-29 Shujing Zhao <pearly.zhao@oracle.com>
2604
2605 * decl.c (redeclaration_error_message): Wrap the return messages into
2606 G_() for easy translation.
2607
2608 2010-01-28 Jason Merrill <jason@redhat.com>
2609
2610 PR c++/42880
2611 * semantics.c (begin_class_definition): Don't use type_as_string.
2612
2613 2010-01-28 Dodji Seketeli <dodji@redhat.com>
2614
2615 PR c++/42713
2616 PR c++/42820
2617 * typeck.c (get_template_parms_of_dependent_type): Factorized
2618 this out of incompatible_template_type_parms_p
2619 (incompatible_dependent_types_p): Renamed
2620 incompatible_template_type_parms_p into this. Make it detect
2621 two incompatible dependent typedefs too.
2622 (structural_comptypes): Use incompatible_dependent_types_p.
2623 * pt.c (get_template_info):
2624 Handle BOUND_TEMPLATE_TEMPLATE_PARAM.
2625
2626 2010-01-20 Janis Johnson <janis187@us.ibm.com>
2627 Jason Merrill <jason@redhat.com>
2628
2629 * mangle.c (write_type): Mangle transparent record as member type.
2630 * semantics.c (begin_class_definition): Recognize decimal classes
2631 and set TYPE_TRANSPARENT_AGGR.
2632
2633 2010-01-20 Jason Merrill <jason@redhat.com>
2634
2635 PR c++/42338
2636 * mangle.c (write_expression): Handle tree codes that have extra
2637 arguments in the middle-end.
2638
2639 2010-01-20 Paolo Carlini <paolo.carlini@oracle.com>
2640
2641 PR c++/42038
2642 * except.c (expand_start_catch_block): Deal correctly with
2643 do_begin_catch returning error_mark_node.
2644
2645 2010-01-20 Jason Merrill <jason@redhat.com>
2646
2647 PR c++/41788
2648 * class.c (layout_class_type): Set packed_maybe_necessary for packed
2649 non-PODs.
2650
2651 PR c++/41920
2652 * semantics.c (build_lambda_object): Call mark_used on captured
2653 variables.
2654
2655 PR c++/40750
2656 * decl.c (grokdeclarator): Clear type_quals for a member function
2657 declared using a typedef. Don't complain about adding cv-quals
2658 to a function typedef in C++0x mode.
2659
2660 2010-01-20 Jakub Jelinek <jakub@redhat.com>
2661
2662 * decl.c (create_array_type_for_decl): Remove set but not used
2663 variable error_msg. Remove break stmts after return stmts.
2664
2665 2010-01-19 Dodji Seketeli <dodji@redhat.com>
2666
2667 * error.c (dump_template_parms, count_non_default_template_args):
2668 Revert fix of PR c++/42634.
2669
2670 2010-01-18 Dodji Seketeli <dodji@redhat.com>
2671
2672 PR c++/42634
2673 * error.c (dump_template_parms): Use innermost template
2674 arguments before calling count_non_default_template_args.
2675 (count_non_default_template_args): We are being called with
2676 template innermost arguments now. There is no need to ensure
2677 that again.
2678
2679 2010-01-18 Dodji Seketeli <dodji@redhat.com>
2680
2681 PR c++/42766
2682 * cvt.c (build_expr_type_conversion): Look through OVERLOAD.
2683
2684 2010-01-17 Dodji Seketeli <dodji@redhat.com>
2685
2686 PR c++/42697
2687 *pt.c (tsubst_decl): Revert commit for PR c++/42697.
2688
2689 2010-01-17 Dodji Seketeli <dodji@redhat.com>
2690
2691 PR c++/42697
2692 *pt.c (tsubst_decl): Get the arguments of a specialization from
2693 the specialization template, not from the most general template.
2694
2695 2010-01-16 Jason Merrill <jason@redhat.com>
2696
2697 PR c++/42761
2698 * semantics.c (finish_decltype_type): Within a template, treat
2699 unresolved CALL_EXPR as dependent.
2700
2701 2010-01-15 Dodji Seketeli <dodji@redhat.com>
2702
2703 * error.c (dump_template_parms,count_non_default_template_args):
2704 Revert changes of PR c++/42634.
2705
2706 2010-01-14 Jakub Jelinek <jakub@redhat.com>
2707
2708 PR middle-end/42674
2709 * decl.c (finish_function): Don't emit -Wreturn-type warnings in
2710 functions with noreturn attribute.
2711
2712 2010-01-14 Jason Merrill <jason@redhat.com>
2713
2714 PR c++/42701
2715 * call.c (build_new_method_call): Don't free the vec here.
2716
2717 PR c++/42655
2718 * call.c (convert_like_real): Do full decay_conversion for ck_rvalue.
2719
2720 2010-01-13 Dodji Seketeli <dodji@redhat.com>
2721
2722 PR c++/42634
2723 * error.c (dump_template_parms): Use innermost template
2724 arguments before calling count_non_default_template_args.
2725 (count_non_default_template_args): We are being called with
2726 template innermost arguments now. There is no need to ensure
2727 that again.
2728
2729 2010-01-07 Dodji Seketeli <dodji@redhat.com>
2730
2731 c++/40155
2732 * pt.c (unify_pack_expansion): In non-deduced contexts, re-use template
2733 arguments that were previously deduced.
2734
2735 2010-01-05 Jason Merrill <jason@redhat.com>
2736
2737 * pt.c (unify_pack_expansion): Handle deduction from init-list.
2738 * call.c (build_over_call): Don't complain about it.
2739
2740 2010-01-04 Jason Merrill <jason@redhat.com>
2741
2742 PR c++/42555
2743 * pt.c (tsubst_decl): Don't apply type attributes in place.
2744
2745 PR c++/42567
2746 * semantics.c (describable_type): Remove decltype comment and
2747 semantics.
2748
2749
2750 \f
2751 Copyright (C) 2010 Free Software Foundation, Inc.
2752
2753 Copying and distribution of this file, with or without modification,
2754 are permitted in any medium without royalty provided the copyright
2755 notice and this notice are preserved.
2756