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