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