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