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