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