re PR c++/42083 ([C++0x] ICE on invalid with "tree check: expected aggr_init_expr...
[gcc.git] / gcc / cp / ChangeLog
1 2010-12-15 Paolo Carlini <paolo.carlini@oracle.com>
2
3 PR c++/42083
4 * init.c (build_value_init): Check build_special_member_call return
5 value for error_mark_node.
6
7 2010-12-14 Jason Merrill <jason@redhat.com>
8
9 PR c++/46930
10 * decl.c (grokdeclarator): Reject uninitialized constexpr
11 static data member.
12
13 2010-12-14 Nathan Froyd <froydnj@codesourcery.com>
14
15 PR c++/45330
16 * cp-tree.h (suggest_alternatives_for): Add location_t parameter.
17 * name-lookup.c (suggest_alternatives_for): Likewise. Adjust.
18 * lex.c (unqualified_name_lookup_error): Adjust call to it.
19 * semantics.c (qualified_name_lookup_error): Move to...
20 * error.c (qualified_name_lookup_error): ...here. Call.
21 suggest_alternatives_for.
22
23 2010-12-13 Jason Merrill <jason@redhat.com>
24
25 PR c++/46873
26 PR c++/46877
27 * semantics.c (build_data_member_initialization): Handle
28 cv-qualified data member.
29
30 2010-12-13 Jan Hubicka <jh@suse.cz>
31
32 PR middle-end/45388
33 * decl2.c (start_objects): Do not generate collect2 recognicable name
34 for static ctor.
35
36 2010-12-12 Paolo Carlini <paolo.carlini@oracle.com>
37
38 PR c++/46901
39 * typeck.c (convert_for_assignment): Fix typo in warning message.
40
41 2010-12-10 Jakub Jelinek <jakub@redhat.com>
42
43 PR c++/46001
44 * decl.c (record_builtin_java_type): Call build_distinct_type_copy
45 on build_nonstandard_integer_type result for __java_* types.
46
47 2010-12-10 Nathan Froyd <froydnj@codesourcery.com>
48
49 * decl.c (grokmethod): Test DECL_CLASS_SCOPE_P.
50 * error.c (dump_decl): Test DECL_FILE_SCOPE_P.
51
52 2010-12-10 Nathan Froyd <froydnj@codesourcery.com>
53
54 * cp-tree.h (readonly_error_kind): Delete.
55 (readonly_error): Rename to...
56 (cxx_readonly_error): ...this. Change second argument to be an
57 enum lvalue_use.
58 * semantics.c (finish_asm_stmt): Call cxx_readonly_error.
59 * typeck.c (cp_build_unary_op): Likewise.
60 (cp_build_modify_expr): Likewise.
61 * typeck2.c (readonly_error): Rename to...
62 (cxx_readonly_error): ...this. Delegate to readonly_error for
63 most cases.
64
65 2010-12-10 Nicola Pero <nicola.pero@meta-innovation.com>
66
67 * parser.c (cp_parser_objc_superclass_or_category): Recognize
68 Objective-C 2.0 class extensions. Added iface_p and
69 is_class_extension arguments.
70 (cp_parser_objc_class_interface): Updated call to
71 cp_parser_objc_superclass_or_category.
72 (cp_parser_objc_class_implementation): Same change.
73
74 2010-12-09 Nathan Froyd <froydnj@codesourcery.com>
75
76 * call.c (print_conversion_rejection): Indent messages two spaces.
77
78 2010-12-09 Nathan Froyd <froydnj@codesourcery.com>
79
80 * typeck.c (cp_build_indirect_ref): Call invalid_indirection_error.
81
82 2010-12-09 Nathan Froyd <froydnj@codesourcery.com>
83
84 * typeck.c (composite_pointer_error): New function.
85 (composite_pointer_type_r, composite_pointer_type): Call it.
86
87 2010-12-08 Jason Merrill <jason@redhat.com>
88
89 PR c++/46348
90 * semantics.c (cxx_eval_vec_init_1): Handle value-init.
91 (cxx_eval_vec_init): Pass value_init arg.
92
93 2010-12-08 Nathan Froyd <froydnj@codesourcery.com>
94
95 PR c++/45329
96 * call.c (struct conversion): Document bad_p field.
97 (enum rejection_reason_code): Define.
98 (struct conversion_info): Define.
99 (struct rejection_reason): Define.
100 (struct z_candidate): Add `reason' field.
101 (add_candidate): Add `reason' parameter. Store it in CAND.
102 (alloc_rejection, arity_rejection, arg_conversion_rejection):
103 New functions.
104 (bad_arg_conversion_rejection): New function.
105 (convert_class_to_reference): Add comment.
106 (remaining_arguments): New function.
107 (add_function_candidate): Record rejection reason and pass it to
108 add_candidate.
109 (add_conv_candidate, build_builtin_candidate): Likewise.
110 (add_template_candidate_real): Likewise.
111 (print_conversion_rejection): New function.
112 (print_z_candidate): Print CAND->REASON if it exists. Adjust
113 diagnostic strings.
114 (print_z_candidates): Add location_t argument. Adjust calling
115 sequence for print_z_candidate. Print header line directly.
116 (build_user_type_conversion_1): Add reason for rejection to
117 CAND. Adjust call to print_z_candidates.
118 (print_error_for_call_failure): New function.
119 (build_new_function_call): Call it. Adjust call to
120 print_z_candidates.
121 (build_operator_new_call): Likewise.
122 (build_op_call): Likewise.
123 (build_conditional_expr): Likewise.
124 (build_new_op): Likewise.
125 (build_new_method_call): Likewise.
126
127 2010-12-08 Jason Merrill <jason@redhat.com>
128
129 PR c++/45822
130 * cp-tree.h (LOOKUP_DEFAULTED): New.
131 * call.c (add_function_candidate): Check it.
132 * method.c (synthesized_method_walk): Set it.
133 (do_build_copy_assign): Likewise.
134 * init.c (perform_member_init): Likewise.
135 (emit_mem_initializers): Likewise.
136
137 PR c++/46736
138 * decl.c (cp_finish_decl): Complain about an implicitly deleted
139 method defaulted outside the class.
140 * method.c (maybe_explain_implicit_delete): Don't check DECL_INITIAL.
141
142 2010-12-07 Joseph Myers <joseph@codesourcery.com>
143
144 * rtti.c: Don't include assert.h.
145
146 2010-12-07 Nathan Froyd <froydnj@codesourcery.com>
147
148 PR c++/45330
149 * cp-tree.h (suggest_alternatives_for, location_of): Declare.
150 * error.c (dump_expr): Handle TYPE_DECL.
151 (location_of): Unstaticize.
152 * name-lookup.c (suggest_alternatives_for): New function.
153 * lex.c (unqualified_name_lookup_error): Call it.
154
155 2010-12-06 Nicola Pero <nicola.pero@meta-innovation.com>
156
157 * call.c: Include c-family/c-objc.h.
158 * decl.c: Same change.
159 * decl2.c: Same change.
160 * error.c: Same change.
161 * lex.c: Same change.
162 * parser.c: Same change.
163 * pt.c: Same change.
164 * semantics.c: Same change.
165 * typeck.c: Same change.
166 * Make-lang.in (cp/decl.o): Depend on c-family/c-objc.h.
167 (cp/decl2.o): Same change.
168 (cp/call.o): Same change.
169 (cp/error.o): Same change.
170 (cp/lex.o): Same change.
171 (cp/parser.o): Same change.
172 (cp/pt.o): Same change.
173 (cp/semantics.o): Same change.
174 (cp/typeck.o): Same change.
175 * config-lang.in (gtfiles): Added c-family/c-objc.h.
176
177 2010-12-03 Jason Merrill <jason@redhat.com>
178
179 PR c++/46645
180 * semantics.c (build_data_member_initialization): Remove assert.
181
182 PR c++/46058
183 * tree.c (lvalue_kind) [SCOPE_REF]: Handle non-dependent case.
184
185 2010-12-03 Richard Guenther <rguenther@suse.de>
186
187 PR c/46745
188 * error.c (dump_expr): Handle MEM_REF.
189
190 2010-12-03 Laurynas Biveinis <laurynas.biveinis@gmail.com>
191
192 * cp-tree.h (struct aggr_init_expr_arg_iterator_d): Remove GTY
193 tag.
194
195 2010-12-02 Nicola Pero <nicola.pero@meta-innovation.com>
196
197 * parser.c (cp_parser_objc_throw_statement): Use
198 cp_parser_expression, not cp_parser_assignment_expression, to
199 parse the argument of a @throw.
200
201 2010-12-01 Joseph Myers <joseph@codesourcery.com>
202
203 * cp-objcp-common.c, lex.c, typeck.c: Don't include toplev.h.
204 * Make-lang.in (cp/lex.o, cp/cp-objcp-common.o, cp/typeck2.o):
205 Update dependencies.
206
207 2010-11-30 Nicola Pero <nicola.pero@meta-innovation.com>
208
209 * decl.c (finish_function): Call objc_finish_function when
210 compiling Objective-C++.
211 * call.c (standard_conversion): Do not call
212 objc_non_volatilized_type().
213 (implicit_conversion): Same change.
214 * typeck.c (comp_ptr_ttypes_real): Same change.
215
216 2010-11-30 Joseph Myers <joseph@codesourcery.com>
217
218 * cp-gimplify.c, cp-lang.c, cvt.c, cxx-pretty-print.c, error.c,
219 except.c, expr.c, friend.c, init.c, mangle.c, name-lookup.c,
220 optimize.c, parser.c, rtti.c, tree.c, typeck2.c: Don't include
221 toplev.h.
222 * Make-lang.in: Dependencies for above files changed to remove
223 toplev.h.
224
225 2010-11-29 Dodji Seketeli <dodji@redhat.com>
226
227 PR c++/42260
228 * call.c (add_builtin_candidate): At this point the resulting type
229 of an indirection operator should be complete.
230
231 2010-11-29 Dodji Seketeli <dodji@redhat.com>
232
233 PR c++/45383
234 Reverted patch for PR c++/42260
235 * cp-tree.h (lookup_conversions): Reverted "Add new bool parameter to
236 declarationE."
237 * search.c (lookup_conversion): Reverted "Use new bool parameter in
238 definition".
239 * call.c (add_builtin_candidates): Reverted "Don't lookup template
240 conversion"
241 (convert_class_to_reference, build_user_type_conversion_1,
242 build_op_call): Reverted "Adjust".
243 * cvt.c (build_expr_type_conversion): Reverted "Likewise".
244
245 2010-11-29 Nicola Pero <nicola.pero@meta-innovation.com>
246
247 * parser.c (cp_parser_objc_try_catch_finally_statement): Parse
248 @catch(...) and pass NULL_TREE to objc_begin_catch_clause() in
249 that case. Improved error recovery. Reorganized code to be
250 almost identical to c_parser_objc_try_catch_finally_statement.
251
252 2010-11-27 Nicola Pero <nicola.pero@meta-innovation.com>
253
254 PR objc++/46222
255 * decl.c (grokdeclarator): Replaced an assert (for a case that can
256 never happen in C++, but could happen in ObjC++ for invalid code)
257 with a check that prints an error message and returns
258 error_mark_node.
259
260 2010-11-23 Jeffrey Yasskin <jyasskin@google.com>
261
262 PR c++/46527
263 * pt.c (instantiate_decl): Propagate the template's location to
264 its instance.
265
266 2010-11-20 Joseph Myers <joseph@codesourcery.com>
267
268 * name-lookup.c (handle_namespace_attrs): Don't check
269 HANDLE_PRAGMA_VISIBILITY.
270 * parser.c (cp_parser_namespace_definition): Don't check
271 HANDLE_PRAGMA_VISIBILITY.
272
273 2010-11-20 Nathan Froyd <froydnj@codesourcery.com>
274
275 PR c++/16189
276 PR c++/36888
277 PR c++/45331
278 * parser.c (cp_lexer_set_token_position): New function.
279 (cp_lexer_previous_token_position): New function.
280 (cp_lexer_previous_token): Call it.
281 (cp_parser_class_specifier): Try to gracefully handle a missing
282 semicolon.
283
284 2010-11-20 Jakub Jelinek <jakub@redhat.com>
285
286 PR c++/46538
287 * decl.c (cp_make_fname_decl): Return error_mark_node if
288 current_binding_level has already sk_function_parms kind.
289
290 PR c++/46526
291 * semantics.c (cxx_eval_call_expression): Unshare the result.
292
293 2010-11-19 Nicola Pero <nicola.pero@meta-innovation.com>
294
295 * parser.c (cp_parser_objc_protocol_declaration): Pass attributes
296 to objc_declare_protocols.
297
298 2010-11-18 Nathan Froyd <froydnj@codesourcery.com>
299
300 PR c/33193
301 * typeck.c (cp_build_unary_op): Call build_real_imag_expr for
302 REALPART_EXPR and IMAGPART_EXPR.
303
304 2010-11-16 Jason Merrill <jason@redhat.com>
305
306 * call.c (convert_like_real): Don't make a temp for copy-list-init.
307 (build_over_call): Don't handle that here.
308 (build_new_method_call): Use COMPLETE_OR_OPEN_TYPE_P for error.
309
310 PR c++/46497
311 * call.c (build_over_call): Check for =delete even when trivial.
312
313 DR 1004
314 * decl.c (make_unbound_class_template): Handle using
315 injected-type-name as template.
316
317 2010-11-15 Nicola Pero <nicola.pero@meta-innovation.com>
318
319 * typeck.c (cp_build_unary_op): Use
320 objc_build_incr_expr_for_property_ref to build the pre/post
321 increment/decrement of an Objective-C property ref.
322
323 2010-11-13 Jason Merrill <jason@redhat.com>
324
325 * decl.c (cp_finish_decl): Use resolve_nondeduced_context for auto.
326 * init.c (build_new): Likewise.
327 * pt.c (tsubst_decl): Likewise.
328 (do_auto_deduction): Likewise.
329 (resolve_nondeduced_context): Use build_offset_ref and
330 cp_build_addr_expr.
331
332 2010-11-12 Joseph Myers <joseph@codesourcery.com>
333
334 * Make-lang.in (g++spec.o): Use $(OPTS_H).
335
336 2010-11-13 Ville Voutilainen <ville.voutilainen@gmail.com> <ville.voutilainen@symbio.com>
337
338 Core 1135, 1136, 1145, 1149
339 * method.c (defaultable_fn_check): Do not disallow defaulting a
340 non-public or explicit special member function on its first
341 declaration.
342
343 2010-11-12 James Dennett <jdennett@google.com>
344
345 PR/39415
346 * typeck.c (build_static_cast_1): Convert to the target type
347 when doing static_cast<cv Derived*>(Base*).
348
349 2010-11-10 Jason Merrill <jason@redhat.com>
350
351 PR c++/46420
352 * pt.c (tsubst_copy_and_build) [TARGET_EXPR]: New case.
353 [CONSTRUCTOR]: Use the tsubsted type.
354
355 PR c++/46369
356 * semantics.c (cxx_eval_bit_field_ref): New.
357 (cxx_eval_constant_expression): Call it.
358
359 2010-11-10 Joseph Myers <joseph@codesourcery.com>
360
361 * cvt.c (cp_convert_to_pointer): Use %' in diagnostic.
362 * decl.c (layout_var_decl, maybe_commonize_var, grokdeclarator):
363 Use %' in diagnostics.
364 * decl2.c (check_classfn): Use %' in diagnostic.
365 * init.c (build_java_class_ref): Use %' in diagnostic.
366 (build_delete): Remove trailing '.' from diagnostic.
367 * method.c (do_build_copy_assign, walk_field_subobs): Use %' in
368 diagnostics.
369 * name-lookup.c (pushdecl_maybe_friend): Use %' in diagnostic.
370 * parser.c (cp_parser_exception_specification_opt): Remove
371 trailing '.' from diagnostic.
372 (cp_parser_objc_interstitial_code): Use %qs for quoting in
373 diagnostic.
374 * pt.c (check_valid_ptrmem_cst_expr): Use %< and %> for quoting in
375 diagnostic.
376 * repo.c (reopen_repo_file_for_write): Use %' in diagnostic.
377
378 2010-11-10 Nathan Froyd <froydnj@codesourcery.com>
379
380 PR c++/46065
381 * decl.c (poplevel_named_label_1): Use TREE_CHAIN if necessary.
382
383 2010-11-09 Jakub Jelinek <jakub@redhat.com>
384
385 PR c++/45894
386 * tree.c (lvalue_kind): Don't crash if ref has NULL type.
387
388 2010-11-08 Jason Merrill <jason@redhat.com>
389
390 PR c++/46382
391 * semantics.c (check_constexpr_ctor_body): New fn.
392 * parser.c (cp_parser_ctor_initializer_opt_and_function_body): Call it.
393 * cp-tree.h: Declare it.
394
395 PR c++/46335
396 * tree.c (bot_manip): Check TREE_SIDE_EFFECTS as well.
397
398 Correct conversion/overflow behavior.
399 * cvt.c (ignore_overflows): Move here from typeck.c.
400 (ocp_convert): Use it.
401 (cp_fold_convert): Use it. Don't call rvalue.
402 * typeck.c (build_static_cast_1): Don't use it. Do call rvalue.
403 * error.c (location_of): Handle expressions, too.
404 * class.c (check_bitfield_decl): Set input_location around call to
405 cxx_constant_value.
406 * semantics.c (cxx_eval_outermost_constant_expr): Don't
407 print the expression if it already had TREE_OVERFLOW set.
408 (reduced_constant_expression_p): Check TREE_OVERFLOW_P for C++98, too.
409 (verify_constant): Allow overflow with a permerror if we're
410 enforcing.
411 (cxx_eval_outermost_constant_expr): Use verify_constant.
412 (adjust_temp_type): Use cp_fold_convert.
413 * decl.c (build_enumerator): Don't call constant_expression_warning.
414 * decl2.c (grokbitfield): Likewise.
415
416 2010-11-06 Jason Merrill <jason@redhat.com>
417
418 PR c++/46348
419 * init.c (perform_member_init): Use build_vec_init_expr for
420 value-init of arrays, too.
421 * cp-gimplify.c (cp_gimplify_expr): Use VEC_INIT_EXPR_VALUE_INIT.
422 * cp-tree.h (VEC_INIT_EXPR_IS_CONSTEXPR): New macro.
423 (VEC_INIT_EXPR_VALUE_INIT): New macro.
424 * semantics.c (potential_constant_expression): No longer static.
425 Check VEC_INIT_EXPR_IS_CONSTEXPR.
426 * tree.c (build_vec_init_expr): Handle value-init. Set
427 VEC_INIT_EXPR_IS_CONSTEXPR and VEC_INIT_EXPR_VALUE_INIT.
428
429 2010-11-06 Nathan Froyd <froydnj@codesourcery.com>
430
431 PR c++/45332
432 * parser.c (cp_lexer_previous_token): New function.
433 (cp_parser_member_declaration): Use previous token for error
434 messages. Assume semicolon presence rather than grovelling for
435 the next one.
436
437 2010-11-06 Joern Rennecke <amylaar@spamcop.net>
438
439 PR middle-end/46314
440 * method.c (make_alias_for_thunk):
441 Use targetm.asm_out.generate_internal_label.
442
443 2010-11-05 Jason Merrill <jason@redhat.com>
444
445 PR c++/45473
446 * search.c (look_for_overrides): A constructor is never virtual.
447
448 2010-11-05 Jakub Jelinek <jakub@redhat.com>
449
450 PR c++/46160
451 * cp-gimplify.c (cp_gimplify_expr): Drop volatile MEM_REFs
452 on the RHS to avoid infinite recursion with gimplify_expr.
453
454 2010-11-05 Jason Merrill <jason@redhat.com>
455
456 PR c++/46304
457 * pt.c (tsubst_copy): Handle COMPLEX_CST.
458
459 2010-11-04 Nicola Pero <nicola.pero@meta-innovation.com>
460
461 Fixed using the Objective-C 2.0 dot-syntax with class names.
462 * parser.c (cp_parser_primary_expression): Recognize Objective-C
463 2.0 dot-syntax with class names and process it.
464 (cp_parser_nonclass_name): Recognize Objective-C 2.0 dot-syntax
465 with class names.
466 (cp_parser_class_name): Same change.
467 (cp_parser_simple_type_specifier): Tidied comments.
468
469 2010-11-04 Jason Merrill <jason@redhat.com>
470
471 PR c++/46298
472 * semantics.c (build_constexpr_constructor_member_initializers):
473 Handle an enclosing STATEMENT_LIST.
474
475 * semantics.c (speculative_access_check): New.
476 * cp-tree.h: Declare it.
477 * call.c (build_over_call): Use it.
478 * class.c (type_has_constexpr_default_constructor): Use locate_ctor.
479 * method.c (locate_ctor): Use push/pop_deferring_access_checks.
480
481 2010-11-03 Jason Merrill <jason@redhat.com>
482
483 PR c++/46293
484 * semantics.c (build_data_member_initialization): Handle
485 value-init of aggregate empty base.
486
487 PR c++/46289
488 * call.c (can_convert_array): New fn.
489 (build_aggr_conv): Use it.
490
491 PR c++/46289
492 * semantics.c (build_constexpr_constructor_member_initializers):
493 Avoid ICE on error.
494
495 2010-11-02 Dodji Seketeli <dodji@redhat.com>
496
497 * cp-tree.h (enum tsubst_flags)<tf_no_class_instantiations>:
498 Remove.
499 * pt.c (tsubst): Remove the use of tf_no_class_instantiations.
500
501 2010-11-03 Jason Merrill <jason@redhat.com>
502
503 PR c++/46277
504 * init.c (expand_default_init): Avoid ICE if we can't figure out
505 which function is being called.
506
507 2010-11-02 Nathan Froyd <froydnj@codesourcery.com>
508
509 * class.c (build_base_path, add_vcall_offset): Use build_zero_cst
510 instead of fold_convert.
511 * init.c (build_zero_init): Likewise.
512 * typeck.c (cp_build_binary_op): Likewise.
513
514 2010-11-02 Dodji Seketeli <dodji@redhat.com>
515
516 PR c++/46170
517 PR c++/46162
518 * pt.c (check_valid_ptrmem_cst_expr): Add a complain parameter to
519 control diagnostic.
520 (convert_nontype_argument, convert_nontype_argument): Pass the
521 complain parameter down to check_valid_ptrmem_cst_expr.
522
523 2010-11-02 Dodji Seketeli <dodji@redhat.com>
524
525 PR c++/45606
526 * cp-tree.h (TEMPLATE_TYPE_PARM_SIBLING_PARMS): Remove.
527 (struct template_parm_index_s)<num_siblings>: New field.
528 (TEMPLATE_PARM_NUM_SIBLINGS): New accessor.
529 (process_template_parm): Extend the API to accept the number of
530 template parms in argument.
531 (cp_set_underlying_type): Remove this.
532 * class.c (build_self_reference): Require canonical type equality
533 back on the self reference of class.
534 * decl2.c (grokfield): Require canonical type equality back on
535 typedef class fields.
536 * name-lookup.c (pushdecl_maybe_friend): Require canonical type
537 equality back on typedefs.
538 * parser.c (cp_parser_template_parameter_list): Do not require
539 canonical type equality on dependent types created during template
540 parameters parsing.
541 * pt.c (fixup_template_type_parm_type, fixup_template_parm_index)
542 (fixup_template_parm, fixup_template_parms): New private
543 functions.
544 (current_template_args): Declare this.
545 (process_template_parm): Pass the total number of template parms
546 to canonical_type_parameter.
547 (build_template_parm_index): Add a new argument to carry the total
548 number of template parms.
549 (reduce_template_parm_level, process_template_parm, make_auto):
550 Adjust.
551 (current_template_args): Fix this for template template
552 parameters.
553 (tsubst_template_parm): Split out of ...
554 (tsubst_template_parms): ... this.
555 (reduce_template_parm_level): Don't loose
556 TEMPLATE_PARM_NUM_SIBLINGS when cloning a TEMPLATE_PARM_INDEX.
557 (template_parm_to_arg): Extracted this function from
558 current_template_args. Make it represent invalid template parms
559 with an error_mark_node instead of a LIST_TREE containing an
560 error_mark_node.
561 (current_template_args): Use template_parm_to_arg.
562 (dependent_template_arg_p): Consider an invalid template argument
563 as dependent.
564 (end_template_parm_list): Do not update template sibling parms
565 here anymore. Use fixup_template_parms instead.
566 (process_template_parm): Pass the number of template parms to
567 canonical_type_parameter.
568 (make_auto): Require structural equality on auto
569 TEMPLATE_TYPE_PARM for now.
570 (unify)<BOUND_TEMPLATE_TEMPLATE_PARM>: Coerce template parameters
571 using all the arguments deduced so far.
572 (tsubst)<TEMPLATE_TYPE_PARM>: Pass the number of sibling parms to
573 canonical_type_parameter.
574 * tree.c (cp_set_underlying_type): Remove.
575 * typeck.c (get_template_parms_of_dependent_type)
576 (incompatible_dependent_types_p): Remove.
577 (structural_comptypes): Do not call incompatible_dependent_types_p
578 anymore.
579 (comp_template_parms_position): Re-organized. Take the length of
580 template parms list in account.
581
582 2010-11-01 Jason Merrill <jason@redhat.com>
583
584 * semantics.c (call_stack, call_stack_tick, cx_error_context): New.
585 (last_cx_error_tick, push_cx_call_context, pop_cx_call_context): New.
586 (cxx_eval_call_expression): Call push/pop_cx_call_context instead
587 of giving follow-on errors.
588 * error.c (maybe_print_constexpr_context): New.
589 (cp_diagnostic_starter): Call it.
590 * cp-tree.h: Declare cx_error_context.
591
592 * semantics.c (cxx_eval_constant_expression): Explain
593 unacceptable use of variable better.
594
595 2010-11-01 Gabriel Dos Reis <gdr@cse.tamu.edu>
596 Jason Merrill <jason@redhat.com>
597
598 * call.c (null_ptr_cst_p): Use maybe_constant_value.
599 (set_up_extended_ref_temp): Support constant initialization.
600 (initialize_reference): Adjust.
601 * class.c (check_bitfield_decl): Use cxx_constant_value.
602 * cvt.c (ocp_convert): Don't use integral_constant_value when
603 converting to class type.
604 * decl.c (finish_case_label): Use maybe_constant_value.
605 (build_init_list_var_init): Support constant initialization.
606 (check_initializer): Likewise. Reorganize.
607 (cp_finish_decl): Likewise.
608 (expand_static_init): Likewise.
609 (compute_array_index_type): Use maybe_constant_value.
610 Add complain parm.
611 (create_array_type_for_decl, grokdeclarator): Pass it.
612 (build_enumerator): Use cxx_constant_value.
613 * decl2.c (grokfield): Use maybe_constant_init.
614 * except.c (check_noexcept_r): Handle constexpr.
615 (build_noexcept_spec): Use maybe_constant_value.
616 * init.c (expand_default_init): Support constant initialization.
617 (build_vec_init): Likewise.
618 (constant_value_1): Adjust.
619 (build_new_1): Adjust.
620 * parser.c (cp_parser_constant_expression): Allow non-integral
621 in C++0x mode.
622 (cp_parser_direct_declarator): Don't fold yet in C++0x mode.
623 (cp_parser_initializer_clause): Toss folded result if non-constant.
624 * pt.c (fold_decl_constant_value): Remove.
625 (convert_nontype_argument): Use maybe_constant_value. Give clearer
626 error about overflow.
627 (tsubst): Move array bounds handling into compute_array_index_type.
628 (value_dependent_expression_p): Handle constant CALL_EXPR.
629 (tsubst_decl): Don't set
630 DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P yet.
631 (tsubst_expr) [DECL_EXPR]: Pass it into cp_finish_decl.
632 (instantiate_decl): Here too.
633 * semantics.c (finish_static_assert): Use maybe_constant_value.
634 (ensure_literal_type_for_constexpr_object): Make sure type is complete.
635 (potential_constant_expression): Use maybe_constant_value.
636 * tree.c (cast_valid_in_integral_constant_expression_p): Any cast
637 is potentially valid in C++0x.
638 * typeck2.c (store_init_value): Handle constant init.
639 (check_narrowing): Use maybe_constant_value.
640 (build_functional_cast): Set TREE_CONSTANT on literal T().
641 * cp-tree.h (DECL_INTEGRAL_CONSTANT_VAR_P): Remove.
642 (LOOKUP_ALREADY_DIGESTED): New.
643 (compute_array_index_type): Adjust prototype.
644
645 * semantics.c (constexpr_call): New datatype.
646 (constexpr_call_table): New global table.
647 (constexpr_call_hash): New.
648 (constexpr_call_equal): Likewise.
649 (maybe_initialize_constexpr_call_table): Likewise.
650 (lookup_parameter_binding): Likewise.
651 (cxx_eval_builtin_function_call): Likewise.
652 (cxx_bind_parameters_in_call): Likewise.
653 (cxx_eval_call_expression): Likewise.
654 (cxx_eval_unary_expression): Likewise.
655 (cxx_eval_binary_expression): Likewise.
656 (cxx_eval_conditional_expression): Likewise.
657 (cxx_eval_array_reference): Likewise.
658 (cxx_eval_component_reference): Likewise.
659 (cxx_eval_logical_expression): Likewise.
660 (cxx_eval_object_construction): Likewise.
661 (cxx_eval_constant_expression): Likewise.
662 (cxx_eval_indirect_ref): Likewise.
663 (cxx_constant_value): Likewise.
664 (cxx_eval_bare_aggregate): Likewise.
665 (adjust_temp_type): New.
666 (reduced_constant_expression_p): New.
667 (verify_constant): New.
668 (cxx_eval_vec_init, cxx_eval_vec_init_1): New.
669 (cxx_eval_outermost_constant_expr): New.
670 (maybe_constant_value, maybe_constant_init): New.
671 (cxx_eval_constant_expression): Use them.
672 * pt.c (iterative_hash_template_arg): No longer static.
673 * cp-tree.h: Declare fns.
674
675 * cp-tree.h (register_constexpr_fundef): Declare.
676 * decl.c (maybe_save_function_definition): New.
677 (finish_function): Use it.
678 * semantics.c (constexpr_fundef): New datatype.
679 (constexpr_fundef_table): New global table.
680 (constexpr_fundef_equal): New.
681 (constexpr_fundef_hash): Likewise.
682 (retrieve_constexpr_fundef): Likewise.
683 (validate_constexpr_fundecl): Store in the table.
684 (build_data_member_initialization): New fn.
685 (build_constexpr_constructor_member_initializers): New.
686 (register_constexpr_fundef): Define.
687 (is_this_parameter): New.
688 (get_function_named_in_call): Likewise.
689 (get_nth_callarg): Likewise.
690 (check_automatic_or_tls): New.
691 (morally_constexpr_builtin_function_p): New.
692 (potential_constant_expression): New.
693
694 2010-11-01 Jason Merrill <jason@redhat.com>
695
696 * decl2.c (decl_constant_var_p): New fn.
697 (decl_maybe_constant_var_p): New fn.
698 (mark_used): Rework instantiation of things needed for constant
699 expressions.
700 * cp-tree.h: Declare new fns.
701 * pt.c (instantiate_decl): Handle cp_unevaluated_operand.
702 (always_instantiate_p): Use decl_maybe_constant_var_p.
703 (instantiate_decl): Don't defer constexpr functions.
704 * repo.c (repo_emit_p): Use decl_maybe_constant_var_p.
705 * semantics.c (finish_id_expression): Use decl_constant_var_p.
706 Check for valid name in constant expr after mark_used.
707
708 2010-10-31 Jason Merrill <jason@redhat.com>
709
710 * class.c (is_really_empty_class): Work when type is not complete.
711 (synthesized_default_constructor_is_constexpr): New.
712 (add_implicitly_declared_members): Use it.
713 (type_has_constexpr_default_constructor): Likewise.
714 * cp-tree.h: Declare it.
715 * method.c (synthesized_method_walk): Use it.
716
717 * decl.c (pop_switch): Use EXPR_LOC_OR_HERE.
718 * typeck.c (convert_for_assignment): Likewise.
719
720 * parser.c (cp_parser_diagnose_invalid_type_name): Give helpful
721 message about constexpr without -std=c++0x.
722
723 * decl.c (grokdeclarator): Don't ICE on constexpr non-static data
724 member.
725
726 2010-10-30 Nathan Froyd <froydnj@codesourcery.com>
727
728 * class.c (layout_vtable_decl): Call build_array_of_n_type.
729 (build_vtt, build_ctor_vtabl_group): Likewise.
730
731 2010-10-30 Nicola Pero <nicola.pero@meta-innovation.com>
732
733 Implemented Objective-C 2.0 @property, @synthesize and @dynamic.
734 * parser.c (cp_parser_objc_at_property_declaration): Removed
735 parsing of RID_COPIES and RID_IVAR. Updated call to
736 objc_add_property_declaration.
737 * typecheck.c (finish_class_member_access_expr): Call
738 objc_maybe_build_component_ref instead of objc_build_setter_call.
739 (cp_build_modify_expr): Call objc_maybe_build_modify_expr instead
740 of objc_build_getter_call.
741
742 2010-10-27 Jason Merrill <jason@redhat.com>
743
744 * cp-tree.h (cp_trait_kind): Add CPTK_IS_LITERAL_TYPE.
745 * cxx-pretty-print.c (pp_cxx_trait_expression): Handle it.
746 * semantics.c (trait_expr_value, finish_trait_expr): Likewise.
747 * parser.c (cp_parser_primary_expression): Handle RID_IS_LITERAL_TYPE.
748 (cp_parser_trait_expr): Likewise.
749
750 2010-10-27 Gabriel Dos Reis <gdr@cse.tamu.edu>
751 Jason Merrill <jason@redhat.com>
752
753 * decl.c (finish_case_label): Use decl_constant_value.
754
755 * method.c (synthesized_method_walk): Track constexprness too.
756 (process_subob_fn, walk_field_subobs): Likewise.
757 (implicitly_declare_fn): Set DECL_DECLARED_CONSTEXPR_P.
758 (defaulted_late_check): Handle DECL_DECLARED_CONSTEXPR_P.
759 * class.c (add_implicitly_declared_members): Handle
760 constexpr default ctor.
761
762 * parser.c (cp_parser_ctor_initializer_opt_and_function_body):
763 Make sure a constexpr ctor has an empty body.
764 * class.c (type_has_constexpr_default_constructor): New.
765 * cp-tree.h: Declare it.
766 * init.c (perform_member_init): Complain about uninitialized
767 member in constexpr ctor.
768 (emit_mem_initializers): And uninitialized base.
769 * decl.c (check_tag_decl): Fix typo.
770
771 * semantics.c (valid_type_in_constexpr_fundecl_p): New fn.
772 (is_valid_constexpr_fn): New fn.
773 (validate_constexpr_fundecl): Use it.
774 * decl.c (validate_constexpr_redeclaration): New.
775 (duplicate_decls): Use it.
776 (cp_finish_decl): Call validate_constexpr_fundecl and
777 ensure_literal_type_for_constexpr_object here.
778 (start_decl): Not here. Don't ICE on constexpr reference.
779 (check_for_uninitialized_const_var): Don't handle constexpr specially.
780 (grokfndecl): Set DECL_DECLARED_CONSTEXPR_P.
781 (check_static_variable_definition): Give friendly message about
782 missing constexpr.
783 (grokdeclarator): Complain about typedef and volatile with constexpr.
784 Reorganize. Give sorry about non-static data members in C++0x mode.
785 (start_preparsed_function): Check validate_constexpr_fundecl here.
786 (check_function_type): Not here.
787 * decl2.c (finish_static_data_member_decl): Don't complain about
788 in-class init.
789 * parser.c (CP_PARSER_FLAGS_ONLY_TYPE_OR_CONSTEXPR): New.
790 (cp_parser_condition): Pass it to cp_parser_decl_specifier_seq.
791 (cp_parser_decl_specifier_seq): Handle it.
792 (cp_parser_explicit_instantiation): Diagnose inline and constexpr.
793
794 * class.c (check_bases): Propagate non-literality.
795 (check_field_decls): Likewise.
796 (finalize_literal_type_property): New.
797 (check_bases_and_members): Call it.
798 * cp-tree.h (TYPE_HAS_CONSTEXPR_CTOR): New.
799 (lang_type_class): Add has_constexpr_ctor field.
800 (DECL_DECLARED_CONSTEXPR_P): Strip template.
801 * decl.c (grok_special_member_properties): Set
802 TYPE_HAS_CONSTEXPR_CTOR.
803
804 2010-10-27 Jason Merrill <jason@redhat.com>
805
806 * call.c (build_integral_nontype_arg_conv): New.
807 * cp-tree.h: Declare it.
808 * pt.c (convert_nontype_argument): Use it.
809
810 * error.c (dump_simple_decl): Print constexpr.
811
812 * cvt.c (build_up_reference): Use target_type for the temporary var.
813
814 * except.c (build_throw): Set EXPR_LOCATION.
815
816 * tree.c (build_cplus_new): Handle CONSTRUCTOR.
817
818 * semantics.c (finish_compound_stmt): Avoid creating an
819 unnecessary BIND_EXPR.
820
821 * call.c (convert_like_real): Don't check narrowing if the element
822 is also an initializer-list.
823
824 2010-10-27 Nicola Pero <nicola.pero@meta-innovation.com>
825
826 * parser.c (cp_parser_objc_at_property_declaration): Recognize
827 RID_ASSIGN, RID_COPY, RID_RETAIN, RID_READWRITE and RID_NONATOMIC.
828 Do not use objc_set_property_attr, but use local variables
829 instead. Detect repeated usage of setter, getter and ivar
830 attributes. Improved error processing when a setter name does not
831 end in ':'. Do not check for CPP_CLOSE_PAREN after we determined
832 that the token is a keyword. Updated call to
833 objc_add_property_declaration.
834
835 2010-10-27 Nicola Pero <nicola.pero@meta-innovation.com>
836
837 * parser.c (cp_parser_objc_property_decl): Renamed to
838 cp_parser_objc_struct_declaration. Return the parsed trees
839 instead of calling objc_add_property_variable directly. Detect
840 missing or invalid declspecs. Implemented attributes. Do not eat
841 the ';' at the end. Exit loop whenever a non-comma is parsed, not
842 just EOF.
843 (cp_parser_objc_at_property): Renamed to
844 cp_parser_objc_at_property_declaration. Updated calls to
845 objc_add_property_variable, now objc_add_property_declaration, and
846 to cp_parser_objc_property_decl, now
847 cp_parser_objc_struct_declaration. Rewritten all code to be more
848 robust in dealing with syntax errors, and almost identical to the
849 one in c_parser_objc_at_property_declaration.
850 (cp_parser_objc_property_attrlist): Removed.
851 (cp_parser_objc_method_prototype_list): Updated call to
852 cp_parser_objc_at_property.
853 (cp_parser_objc_method_definition_list): Same change.
854 (cp_parser_objc_class_ivars): Detect a number of invalid
855 declarations of instance variables and produce errors when they
856 are found.
857
858 2010-10-26 Jason Merrill <jason@redhat.com>
859
860 * tree.c (build_vec_init_expr): Split out from...
861 (build_array_copy): ...here.
862 * init.c (perform_member_init): Use it.
863 * cp-tree.h: Declare it.
864 * cp-gimplify.c (cp_gimplify_init_expr): Don't gimplify the slot for
865 VEC_INIT_EXPR and AGGR_INIT_EXPR here. Drop pre/post parameters.
866 (cp_gimplify_expr): Handle array default-initialization via
867 VEC_INIT_EXPR.
868
869 * tree.c (stabilize_expr): Handle xvalues properly.
870
871 * call.c (build_over_call): Use argarray[0] for 'this' argument.
872
873 * decl.c (finish_function): Don't look at function_depth.
874
875 2010-10-25 Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
876
877 Implement opaque-enum-specifiers for C++0x.
878 * cp-tree.h (SET_OPAQUE_ENUM_P): New.
879 (OPAQUE_ENUM_P): New.
880 (ENUM_FIXED_UNDERLYING_TYPE_P): New.
881 (start_enum): Update prototype.
882 (finish_enum_value_list): New prototype.
883 * parser.c (cp_parser_elaborated_type_specifier): Issue a pedwarn if
884 "enum class" is used in an elaborated-type-specifier.
885 (cp_parser_enum_specifier): Rewrite to parse opaque-enum-specifiers.
886 * decl.c (copy_type_enum): New.
887 (finish_enum_value_list): New, with code from finish_enum.
888 (finish_enum): A lot of code removed. Added a gcc_assert.
889 (start_enum): Add parameters enumtype and is_new.
890 Rewrite to work with opaque-enum-specifiers.
891 * pt.c (maybe_process_partial_specialization): Allow for template
892 specialization of enumerations, with a pedwarn.
893 (lookup_template_class): Update call to start_enum. Call to
894 SET_OPAQUE_ENUM_P.
895 (tsubst_enum): Call to begin_scope, finish_scope and
896 finish_enum_value_list.
897
898 2010-10-24 Nicola Pero <nicola.pero@meta-innovation.com>
899
900 Removed Objective-C++ specific replacement of cxx_printable_name.
901 * cp-objcp-common.h: Added LANG_HOOKS_DECL_PRINTABLE_NAME, set
902 to cxx_printable_name for both C++ and Objective-C++.
903 * cp-lang.h: Removed LANG_HOOKS_DECL_PRINTABLE_NAME.
904
905 * error.c (dump_decl): For Objective-C++, call
906 objc_maybe_printable_name here ...
907 * tree.c (cxx_printable_name_internal): ... instead of here.
908
909 2010-10-23 Nicola Pero <nicola.pero@meta-innovation.com>
910
911 * tree.c (cxx_printable_name_internal): In Objective-C++, call
912 objc_maybe_printable_name.
913
914 2010-10-22 Jason Merrill <jason@redhat.com>
915
916 PR c++/46129
917 * pt.c (instantiate_class_template): Don't instantiate default
918 arguments.
919
920 PR c++/46103
921 * init.c (build_vec_init): Handle memberwise move.
922
923 2010-10-21 Paolo Carlini <paolo.carlini@oracle.com>
924
925 PR c++/46117
926 * call.c (add_function_candidate): Don't use TREE_VALUE on null
927 parmnode.
928
929 2010-10-20 Nicola Pero <nicola.pero@meta-innovation.com>
930
931 * parser.c (cp_parser_objc_method_type): Mark inline. Return a
932 bool instead of calling objc_set_method_type.
933 (cp_parser_objc_method_signature): Updated calls to
934 cp_parser_objc_method_type and to objc_build_method_signature.
935 (cp_parser_objc_method_prototype_list): Updated calls to
936 objc_add_method_declaration. Use token->type to determine if it
937 is a class method or not.
938 (cp_parser_objc_method_definition_list): Same change.
939
940 2010-10-20 Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
941
942 PR c++/46056
943 * parser.c (cp_convert_range_for): Call cp_finish_decl
944 instead of finish_expr_stmt.
945
946 2010-10-20 Nicola Pero <nicola.pero@meta-innovation.com>
947
948 * cp-lang.c (finish_file): Removed.
949 * decl2.c (cp_write_global_declarations): Call
950 objc_write_global_declarations when compiling Objective-C++.
951
952 2010-10-19 Paolo Carlini <paolo.carlini@oracle.com>
953
954 PR c++/46046
955 * pt.c (add_to_template_args): Check extra_args for error_mark_node.
956 (coerce_template_parms): Likewise for args.
957
958 2010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
959
960 Implemented parsing @synthesize and @dynamic for Objective-C++.
961 * parser.c (cp_parser_objc_method_definition_list): Recognize
962 RID_AT_SYNTHESIZE and RID_AT_DYNAMIC.
963 (cp_parser_objc_at_dynamic_declaration): New.
964 (cp_parser_objc_at_synthesize_declaration): New.
965
966 2010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
967
968 * parser.c (cp_parser_objc_identifier_list): Check the return
969 value of cp_parser_identifier and react if it is error_mark_node.
970
971 2010-10-18 Nicola Pero <nicola.pero@meta-innovation.com>
972
973 Merge from apple/trunk branch on FSF servers.
974
975 2005-03-01 Fariborz Jahanian <fjahanian@apple.com>
976
977 Radar 4451818
978 * call.c (standard_conversion, implicit_conversion): Ignore
979 'volatile' attribute of artificially volatized type in objc when
980 evaluating various conversion weights.
981
982 2005-11-08 Fariborz Jahanian <fjahanian@apple.com>
983
984 Radar 4330422
985 * typeck.c (comp_ptr_ttypes_real): Remove the hack. un-volatize the
986 artiificially 'volatized' type before doing pointer comparison.
987
988 2010-10-18 Jakub Jelinek <jakub@redhat.com>
989
990 PR c/46015
991 * semantics.c (finish_goto_stmt): Call mark_rvalue_use on computed
992 goto destination.
993
994 2010-10-17 Nicola Pero <nicola.pero@meta-innovation.com>
995
996 Merge from apple/trunk branch on FSF servers.
997
998 2006-04-19 Fariborz Jahanian <fjahanian@apple.com>
999
1000 Radar 4516785
1001 * parser.c (cp_parser_simple_type_specifier): Don't lookup for
1002 objc object types if type is scope qualified.
1003
1004 2010-10-17 Nicola Pero <nicola.pero@meta-innovation.com>
1005
1006 Merge from apple/trunk branch on FSF servers.
1007
1008 2006-03-27 Fariborz Jahanian <fjahanian@apple.com>
1009
1010 Radar 4133425
1011 * lex.c (unqualified_name_lookup_error): Issue diagnostic
1012 for private 'ivar' access.
1013
1014 2010-10-17 Iain Sandoe <iains@gcc.gnu.org>
1015
1016 * parser.c (cp_parser_objc_visibility_spec): Update to use visibility
1017 enum, and handle @package.
1018
1019 2010-10-15 Jason Merrill <jason@redhat.com>
1020
1021 PR c++/45983
1022 * tree.c (cp_build_qualified_type_real): Don't reuse a variant
1023 with a different typedef variant of the element type.
1024
1025 2010-10-14 Iain Sandoe <iains@gcc.gnu.org>
1026
1027 merge from FSF apple 'trunk' branch.
1028 2006 Fariborz Jahanian <fjahanian@apple.com>
1029
1030 Radars 4436866, 4505126, 4506903, 4517826
1031 * typeck.c (finish_class_member_access_expr): Handle CLASS.property
1032 syntax.
1033 (cp_build_modify_expr): Likewise.
1034 * parser.c (cp_parser_objc_method_prototype_list): Handle @property.
1035 (cp_parser_objc_method_definition_list): Likewise.
1036 (cp_parser_objc_property_decl): New.
1037 (cp_parser_objc_property_attrlist): New.
1038 (cp_parser_objc_at_property): New.
1039
1040 2010-10-14 Richard Guenther <rguenther@suse.de>
1041
1042 PR lto/44561
1043 * cp-tree.h (NULLPTR_TYPE_P): Adjust.
1044 * decl.c (cxx_init_decl_processing): Build a NULLPTR_TYPE node,
1045 use build_int_cst.
1046 * error.c (dump_type): Handle NULLPTR_TYPE.
1047 (dump_type_prefix): Likewise.
1048 (dump_type_suffix): Likewise.
1049 * mangle.c (write_type): Likewise.
1050 * name-lookup.c (arg_assoc_type): Likewise.
1051 * rtti.c (typeinfo_in_lib_p): Likewise.
1052 * pt.c (tsubst): Likewise.
1053
1054 2010-10-13 Jason Merrill <jason@redhat.com>
1055
1056 PR c++/45984
1057 * class.c (fixup_attribute_variants): New fn.
1058 * cp-tree.h: Declare it.
1059 * pt.c (instantiate_class_template): Call it.
1060 * semantics.c (begin_class_definition): Call it.
1061
1062 2010-10-13 Richard Henderson <rth@redhat.com>
1063
1064 * cp-lang.c (cp_eh_personality): Update call to
1065 build_personality_function.
1066 * except.c (choose_personality_routine): Update function comment.
1067
1068 2010-10-13 Richard Guenther <rguenther@suse.de>
1069
1070 * tree.c (cp_free_lang_data): Free DECL_NAMESPACE_USERS and
1071 clear DECL_CHAIN of NAMESPACE_DECLs.
1072
1073 2010-10-11 Martin Jambor <mjambor@suse.cz>
1074
1075 PR c++/45562
1076 * cp-tree.h (current_class_ref): Check that cp_function_chain is
1077 non-NULL.
1078 * call.c (build_cxx_call): Likewise.
1079
1080 2010-10-10 Jason Merrill <jason@redhat.com>
1081
1082 * pt.c (tsubst_default_argument): Handle DEFAULT_ARG.
1083 (tsubst_default_arguments): Only do this once for cloned fns.
1084 (tsubst): Use typedef_variant_p. Handle LANG_TYPE. Don't
1085 handle expressions.
1086 (tsubst_expr): Avoid calling tsubst_expr for non-expressions.
1087 (tsubst_copy_and_build): Likewise.
1088 (tsubst_initializer_list): Likewise.
1089 (tsubst_copy): Change default to gcc_unreachable. Handle
1090 OVERLOAD and PTRMEM_CST.
1091
1092 2010-10-10 Jason Merrill <jason@redhat.com>
1093
1094 PR lto/45959
1095 PR lto/45960
1096 * pt.c (tsubst_copy) [INTEGER_CST]: Instantiate the type.
1097
1098 2010-10-07 Andi Kleen <ak@linux.intel.com>
1099
1100 * Make-lang.in (c++_OBJS): Remove dummy-checksum.o.
1101 (cc1plus-dummy): Remove.
1102 (cc1plus-checksum): Change to run checksum over object files
1103 and options only.
1104
1105 2010-10-08 Joseph Myers <joseph@codesourcery.com>
1106
1107 * cp-objcp-common.h (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
1108
1109 2010-10-07 Nicola Pero <nicola.pero@meta-innovation.com>
1110
1111 * cp-tree.def: Changed type of AT_ENCODE_EXPR from tcc_unary to
1112 tcc_expression.
1113 * cxx-pretty-print.c (pp_cxx_unary_expression): Added case for
1114 AT_ENCODE_EXPR.
1115 * error.c (dump_expr): Added case for AT_ENCODE_EXPR.
1116 * pt.c (tsubst_copy): Added case for AT_ENCODE_EXPR.
1117 (value_dependent_expression_p): Added case for AT_ENCODE_EXPR.
1118 (type_dependent_expression_p): Added case for AT_ENCODE_EXPR.
1119 * parser.c (cp_parser_objc_encode_expression): Updated comment.
1120
1121 2010-10-07 Nicola Pero <nicola.pero@meta-innovation.com>
1122
1123 Merge from apple/trunk branch on FSF servers.
1124
1125 2006-04-26 Fariborz Jahanian <fjahanian@apple.com>
1126
1127 Radar 4508851
1128 * parser.c (cp_parser_objc_interstitial_code): Recognize
1129 and parse RID_NAMESPACE keyword.
1130
1131 2010-10-07 Iain Sandoe <iains@gcc.gnu.org>
1132
1133 * parser.c (cp_parser_objc_method_tail_params_opt): Peek new token after
1134 finding ellipsis, before checking for attributes.
1135
1136 2010-10-06 Nicola Pero <nicola.pero@meta-innovation.com>
1137
1138 Merge from apple/trunk branch on FSF servers.
1139 * cp-tree.def: Added AT_ENCODE_EXPR here instead of to the no
1140 longer existing gcc/c-common.def.
1141
1142 2005-12-14 Fariborz Jahanian <fjahanian@apple.com>
1143
1144 Radar 4278774
1145 * pt.c (tsubst_copy_and_build): Instantiate @endcode(T).
1146 * parser.c (cp_parser_objc_encode_expression): Build a templatized
1147 parse tree for @encode(T).
1148
1149 2005-12-14 Fariborz Jahanian <fjahanian@apple.com>
1150
1151 Radar 4278774
1152 * c-common.def: Add new expression code AT_ENCODE_EXPR.
1153
1154 2010-10-06 Eric Botcazou <ebotcazou@adacore.com>
1155
1156 PR c++/45908
1157 * typeck.c (cp_build_addr_expr_1): Add check for incomplete types in
1158 code folding offsetof-like computations.
1159
1160 2010-10-05 Nicola Pero <nicola.pero@meta-innovation.com>
1161
1162 PR objc++/31125
1163 * parser.c (cp_parser_objc_class_interface): If no identifier
1164 follows an @interface token, stop parsing the interface after
1165 printing an error.
1166 (cp_parser_objc_class_implementation): If no identifier follows an
1167 @implementation token, stop parsing the implementation after
1168 printing an error.
1169
1170 2010-10-05 Nicola Pero <nicola.pero@meta-innovation.com>
1171
1172 PR objc++/23707
1173 * parser.c (cp_parser_objc_method_keyword_params): If the required
1174 colon is not found while parsing parameters, stop parsing them.
1175
1176 2010-10-05 Nicola Pero <nicola.pero@meta-innovation.com>
1177
1178 PR objc++/31126
1179 * parser.c (cp_parser_objc_class_ivars): Do not eat the EOF or
1180 @end after detecting it. Print an error if @end is found without
1181 a '}'.
1182 (cp_parser_objc_method_prototype_list): Do not eat the EOF after
1183 detecting it. Fixed reading the next token when continuing
1184 because of an error in a method signature. Print an error if EOF
1185 is found without an '@end'.
1186 (cp_parser_objc_method_definition_list): Same change.
1187
1188 2010-10-05 Nicola Pero <nicola.pero@meta-innovation.com>
1189
1190 Merge from apple/trunk branch on FSF servers:
1191
1192 2005-10-17 Fariborz Jahanian <fjahanian@apple.com>
1193
1194 Radar 4290840
1195 * parser.c (cp_parser_objc_method_keyword_params): Check for valid
1196 method parameters and issue error.
1197 (cp_parser_objc_method_definition_list): Check for invalid tokens
1198 which cannot start a function definition.
1199
1200 2005-10-14 Fariborz Jahanian <fjahanian@apple.com>
1201
1202 Radar 4294425
1203 * parser.c (cp_parser_objc_message_args): Check for missing message
1204 arguments and syntax error.
1205
1206 2005-10-13 Fariborz Jahanian <fjahanian@apple.com>
1207
1208 Radar 4261146
1209 * parser.c (cp_parser_objc_class_ivars): Check for @end/eof while
1210 looking for '}'.
1211
1212 2005-08-15 Ziemowit Laski <zlaski@apple.com>
1213
1214 Radar 4093475
1215 * parser.c (cp_parser_objc_interstitial_code): Catch stray
1216 '{' and '}' tokens and issue appropriate errors.
1217
1218 2005-08-02 Ziemowit Laski <zlaski@apple.com>
1219
1220 Radar 4185810
1221 (cp_parser_statement_seq_opt): In addition to '}' and
1222 end-of-file, a statement sequence may also be terminated
1223 by a stray '@end'.
1224
1225 2010-10-05 Joseph Myers <joseph@codesourcery.com>
1226
1227 * cp-tree.h (cxx_print_error_function,
1228 cxx_initialize_diagnostics): Declare using diagnostic_context
1229 typedef.
1230
1231 2010-10-04 Andi Kleen <ak@linux.intel.com>
1232
1233 * Make-lang.in (g++, cc1plus): Add + to build rule.
1234
1235 2010-10-04 Jason Merrill <jason@redhat.com>
1236
1237 * tree.c (decl_storage_duration): New.
1238 * cp-tree.h: Declare it.
1239 (duration_kind): Return values.
1240
1241 2010-10-03 Jason Merrill <jason@redhat.com>
1242
1243 * typeck.c (require_complete_type_sfinae): Add complain parm to...
1244 (require_complete_type): ...this function.
1245 (cp_build_array_ref, convert_arguments): Use it.
1246 (convert_for_initialization, cp_build_modify_expr): Likewise.
1247 * cp-tree.h: Declare it.
1248 * call.c (build_over_call): Use it.
1249
1250 2010-09-30 Iain Sandoe <iains@gcc.gnu.org>
1251
1252 merge from FSF 'apple/trunk' branch.
1253 2006-01-30 Fariborz Jahanian <fjahanian@apple.com>
1254
1255 Radar 4386773
1256 * cp/parser.c (cp_parser_objc_interstitial_code): For
1257 @optional/@required set the optional/required flag.
1258
1259 2010-09-30 Nicola Pero <nicola.pero@meta-innovation.com>
1260
1261 * parser.c (cp_lexer_get_preprocessor_token): Tidied up comments
1262 and indentation when finding an Objective-C++ CPP_AT_NAME token.
1263
1264 2010-09-29 Richard Guenther <rguenther@suse.de>
1265
1266 * cp-tree.h (CP_DECL_CONTEXT): Check DECL_FILE_SCOPE_P.
1267 (CP_TYPE_CONTEXT): Similar.
1268 (FROB_CONTEXT): Frob global_namespace to the global
1269 TRANSLATION_UNIT_DECL.
1270 * decl.c (cxx_init_decl_processing): Build a TRANSLATION_UNIT_DECL,
1271 set DECL_CONTEXT of global_namespace to it.
1272 (start_decl): Use CP_DECL_CONTEXT and test TYPE_P
1273 instead of zeroing context.
1274 (cp_finish_decl): Use DECL_FILE_SCOPE_P.
1275 (grokfndecl): Likewise.
1276 (start_preparsed_function): Likewise.
1277 * name-lookup.c (maybe_push_decl): Use DECL_NAMESPACE_SCOPE_P.
1278 (namespace_binding): Use SCOPE_FILE_SCOPE_P.
1279 * pt.c (template_class_depth): Use CP_TYPE_CONTEXT.
1280 (is_specialization_of_friend): Use CP_DECL_CONTEXT.
1281 (push_template_decl_real): Likewise.
1282 (tsubst_friend_class): Likewise. Adjust context comparisons.
1283 (instantiate_class_template): Use CP_TYPE_CONTEXT.
1284 (tsubst): Do not substitute into TRANSLATION_UNIT_DECL.
1285 * cxx-pretty-print.c (pp_cxx_nested_name_specifier): Use
1286 SCOPE_FILE_SCOPE_P.
1287
1288 2010-09-29 Yao Qi <yao@codesourcery.com>
1289
1290 * decl.c (get_atexit_node): Fix typo.
1291
1292 2010-09-28 Jason Merrill <jason@redhat.com>
1293
1294 * tree.c (lvalue_kind): Rename from lvalue_p_1, make nonstatic.
1295 (real_lvalue_p): Take const_tree.
1296 * cp-tree.h: Adjust.
1297 * typeck.c (lvalue_or_else): Make temporary arg a permerror.
1298 (cp_build_addr_expr_1): Likewise.
1299
1300 2010-09-28 Iain Sandoe <iains@gcc.gnu.org>
1301
1302 Partially merged from apple/trunk branch on FSF servers:
1303 2006-04-26 Fariborz Jahanian <fjahanian@apple.com>
1304 Radar 3803157 (method attributes)
1305
1306 * parser.c (cp_parser_objc_method_keyword_params): Handle attributes.
1307 (cp_parser_objc_method_tail_params_opt): Likewise.
1308 (cp_parser_objc_method_signature): Likewise.
1309 (cp_parser_objc_method_maybe_bad_prefix_attributes): New.
1310 (cp_parser_objc_method_prototype_list): Handle attributes.
1311 (cp_parser_objc_method_definition_list): Likewise.
1312
1313 2010-09-28 Richard Henderson <rth@redhat.com>
1314
1315 * cp-lang.c: Include "target.h".
1316 (cp_eh_personality): Use targetm.except_unwind_info.
1317 * Make-lang.in (cp-lang.o): Update deps.
1318
1319 2010-09-28 Iain Sandoe <iains@gcc.gnu.org>
1320
1321 * parser.c (cp_parser_objc_valid_prefix_attributes): New.
1322 (cp_parser_declaration): Parse prefix attributes for ObjC++.
1323 (cp_parser_objc_protocol_declaration): Handle attributes.
1324 (cp_parser_objc_class_interface): Likewise.
1325 (cp_parser_objc_declaration): Likewise.
1326
1327 2010-09-27 Jason Merrill <jason@redhat.com>
1328
1329 Require lvalues as specified by the standard.
1330 * typeck.c (lvalue_or_else): Use real_lvalue_p.
1331 (cp_build_addr_expr_1): Split out of cp_build_unary_op.
1332 (cp_build_addr_expr, cp_build_addr_expr_strict): Interfaces.
1333 (decay_conversion, get_member_function_from_ptrfunc): Adjust.
1334 (build_x_unary_op, build_reinterpret_cast_1): Adjust.
1335 (build_const_cast_1): Adjust.
1336 * cp-tree.h: Declare new fns.
1337 * call.c (build_this, convert_like_real, build_over_call): Adjust.
1338 (initialize_reference): Adjust.
1339 * class.c (build_base_path, convert_to_base_statically): Adjust.
1340 (build_vfn_ref, resolve_address_of_overloaded_function): Adjust.
1341 * cvt.c (build_up_reference, convert_to_reference): Adjust.
1342 * decl.c (register_dtor_fn): Adjust.
1343 * decl2.c (build_offset_ref_call_from_tree): Adjust.
1344 * except.c (initialize_handler_parm): Adjust.
1345 * init.c (build_offset_ref, build_delete, build_vec_delete): Adjust.
1346 * rtti.c (build_dynamic_cast_1, tinfo_base_init): Adjust.
1347 * tree.c (stabilize_expr): Adjust.
1348
1349 2010-09-27 Nicola Pero <nicola.pero@meta-innovation.com>
1350
1351 Merge from apple/trunk branch on FSF servers:
1352
1353 2005-12-15 Fariborz Jahanian <fjahanian@apple.com>
1354
1355 Radar 4229905
1356 * typeck.c (composite_pointer_type): Call objc_have_common_type
1357 when comparing two objective-c pointer types.
1358
1359 2005-07-18 Ziemowit Laski <zlaski@apple.com>
1360
1361 Radar 4175534
1362 * call.c (standard_conversion): Do not issue warnings when
1363 comparing ObjC pointer types.
1364
1365 2005-06-22 Ziemowit Laski <zlaski@apple.com>
1366
1367 Radar 4154928
1368 * call.c (standard_conversion): Allow for a pointer conversion
1369 between any two ObjC pointer types.
1370 * typeck.c (composite_pointer_type): Determine common type
1371 for two ObjC pointer types.
1372
1373 2010-09-24 Jan Hubicka <jh@suse.cz>
1374
1375 * decl.c (finish_function): Use decl_replaceable_p
1376 * method.c (make_alias_for_thunk): Update call of
1377 cgraph_same_body_alias.
1378
1379 2010-09-24 Jason Merrill <jason@redhat.com>
1380
1381 * decl.c (compute_array_index_type): Remember type dependence of
1382 array bound.
1383 * pt.c (dependent_type_p_r): Don't recompute it here.
1384
1385 * error.c (dump_expr) [CASE_CONVERT]: Print conversion between
1386 reference and pointer to the same type as "*" or "&".
1387
1388 2010-09-24 Nicola Pero <nicola.pero@meta-innovation.com>
1389
1390 * typeck.c (warn_args_num): Use warning 'too many arguments to
1391 method [methodname]' for an Objective-C method instead of the less
1392 satisfactory 'too many arguments to function' (with no method
1393 name).
1394
1395 2010-09-21 Jason Merrill <jason@redhat.com>
1396
1397 * mangle.c (write_expression) [SCOPE_REF]: Only do -fabi-version=1
1398 special handling if we know the member.
1399
1400 2010-09-18 Jason Merrill <jason@redhat.com>
1401
1402 * call.c (compare_ics): Do lvalue/rvalue reference binding
1403 comparison for ck_list, too.
1404
1405 2010-09-15 Jason Merrill <jason@redhat.com>
1406
1407 * semantics.c (finish_id_expression): Diagnose use of function
1408 parms in evaluated context outside function body.
1409
1410 * decl2.c (grokbitfield): Diagnose non-integral width.
1411
1412 * call.c (convert_like_real): Use the underlying type of the
1413 reference for the temporary.
1414
1415 2010-09-15 Jakub Jelinek <jakub@redhat.com>
1416
1417 PR c++/45635
1418 * class.c (build_vtbl_initializer): Use fn instead of init's operand
1419 as first argument to FDESC_EXPR.
1420
1421 2010-09-15 Paolo Carlini <paolo.carlini@oracle.com>
1422
1423 PR c++/45665
1424 * decl.c (grokdeclarator): Check build_memfn_type return value
1425 for error_mark_node.
1426
1427 2010-09-13 Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
1428
1429 * semantics.c (finish_for_stmt): Always test flag_new_for_scope.
1430 (begin_range_for_stmt): Likewise.
1431
1432 2010-09-11 Rodrigo Rivas <rodrigorivascosta@gmail.com>
1433
1434 Implement range-based for-statements.
1435 * cp-tree.def (RANGE_FOR_STMT): New.
1436 * cp-tree.h (RANGE_FOR_DECL, RANGE_FOR_EXPR, RANGE_FOR_BODY): New.
1437 (cp_convert_range_for): Declare.
1438 * pt.c (tsubst_expr): Add RANGE_FOR_STMT.
1439 (tsubst_copy_and_build): perform_koenig_lookup takes extra argument.
1440 * semantics.c (begin_range_for_stmt): New.
1441 (finish_range_for_decl): New.
1442 (finish_for_stmt): Accept also RANGE_FOR_STMT.
1443 (perform_koenig_lookup): Add extra argument include_std.
1444 * parser.c (cp_parser_c_for): New with code from
1445 cp_parser_iteration_statement().
1446 (cp_parser_range_for): New.
1447 (cp_convert_range_for): New.
1448 (cp_parser_iteration_statement): Add range-for support.
1449 (cp_parser_condition): Adjust comment.
1450 (cp_parser_postfix_expression): perform_koenig_lookup takes extra
1451 argument.
1452 * dump.c (cp_dump_tree): Add RANGE_FOR_STMT.
1453 * cxx-pretty-print.c: Likewise.
1454 * lex.c (cxx_init): Likewise.
1455 * name-lookup.c (lookup_function_nonclass): Add extra argument
1456 include_std.
1457 (lookup_arg_dependent): Likewise.
1458 * name-lookup.h: Likewise.
1459
1460 2010-09-10 Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
1461
1462 PR c++/43824
1463 * error.c (maybe_warn_cpp0x): Add new warning
1464 CPP0X_INLINE_NAMESPACES.
1465 * parser.c (cp_parser_namespace_definition): Likewise.
1466 * cp-tree.h (cpp0x_warn_str): Likewise.
1467
1468 2010-09-10 Richard Guenther <rguenther@suse.de>
1469
1470 * decl.c (reshape_init_vector): For VECTOR_TYPEs, use
1471 TYPE_VECTOR_SUBPARTS instead of TYPE_DEBUG_REPRESENTATION_TYPE.
1472
1473 2010-09-10 Jan Hubicka <jh@suse.cz>
1474
1475 PR tree-optimization/45605
1476 * cp/class.c (build_vtbl_initializer): Avoid wrong type conversion in
1477 ADDR_EXPR.
1478
1479 2010-09-08 Jakub Jelinek <jakub@redhat.com>
1480
1481 PR c++/45588
1482 * pt.c (tsubst) <case INTEGER_TYPE>: Call mark_rvalue_use
1483 before calling fold_decl_constant_value.
1484
1485 2010-09-07 Arnaud Charlet <charlet@adacore.com>
1486
1487 * cp-tree.h (build_enumerator): Add new location_t parameter.
1488 (build_lang_decl_loc): New function.
1489 * decl.c (build_enumerator): New parameter loc. Use it when calling
1490 build_decl. Replace build_lang_decl with build_lang_decl_loc.
1491 * pt.c (tsubst_enum): Adjust call to build_enumerator.
1492 * parser.c (cp_parser_enumerator_definition): Ditto.
1493 * lex.c (build_lang_decl_loc): New function.
1494
1495 2010-09-06 Dodji Seketeli <dodji@redhat.com>
1496
1497 PR c++/45200
1498 PR c++/45293
1499 PR c++/45558
1500 * tree.c (strip_typedefs): Strip typedefs from the context of
1501 TYPENAME_TYPEs.
1502
1503 2010-09-06 Mark Mitchell <mark@codesourcery.com>
1504
1505 * typeck.c (cp_build_binary_op): Call do_warn_double_promotion.
1506 * call.c (build_conditional_expr): Likewise.
1507 (convert_arg_to_ellipsis): Likewise.
1508
1509 2010-09-06 Arnaud Charlet <charlet@adacore.com>
1510
1511 * parser.c (make_pointer_declarator, make_reference_declarator,
1512 make_call_declarator, make_array_declarator): Set declarator->id_loc.
1513 (cp_parser_init_declarator): Adjust location of decl if appropriate.
1514
1515 2010-09-06 Jason Merrill <jason@redhat.com>
1516
1517 * call.c (implicit_conversion): Fix value-init of enums.
1518 (convert_like_real): Likewise.
1519
1520 * decl.c (cp_finish_decl): Don't change init for auto deduction.
1521
1522 * pt.c (fold_non_dependent_expr_sfinae): Split out from...
1523 (fold_non_dependent_expr): ...here.
1524 (convert_nontype_argument): Use it. Take complain parm.
1525 Use perform_implicit_conversion instead of ocp_convert.
1526 Allow cv-qual changes.
1527 (convert_template_argument): Pass complain down.
1528 (tsubst_template_arg): Suppress constant expression warnings.
1529 Don't fold here.
1530
1531 * method.c (synthesized_method_walk): In constructors, also check
1532 subobject destructors.
1533
1534 * semantics.c (finish_compound_literal): Always build a
1535 TARGET_EXPR.
1536
1537 2010-08-30 Paolo Carlini <paolo.carlini@oracle.com>
1538
1539 PR c++/45043
1540 * decl.c (grokdeclarator): Use MAIN_NAME_P only on IDENTIFIER_NODEs.
1541
1542 2010-08-30 Jakub Jelinek <jakub@redhat.com>
1543
1544 PR middle-end/45423
1545 * parser.c (cp_parser_omp_atomic): Handle boolean
1546 {PRE,POST}_INCREMENT.
1547
1548 2010-08-29 Jason Merrill <jason@redhat.com>
1549
1550 PR c++/44991
1551 * parser.c (cp_parser_parameter_declaration): Pop parameter decls
1552 after tentative parsing.
1553
1554 2010-08-22 Joseph Myers <joseph@codesourcery.com>
1555
1556 * Make-lang.in (g++spec.o): Update dependencies.
1557 * g++spec.c: Include opts.h
1558 (MATH_LIBRARY, LIBSTDCXX): Remove initial "-l".
1559 (lang_specific_driver): Use cl_decoded_option structures.
1560
1561 2010-08-20 Nathan Froyd <froydnj@codesourcery.com>
1562
1563 * call.c: Use FOR_EACH_VEC_ELT.
1564 * class.c: Likewise.
1565 * decl.c: Likewise.
1566 * decl2.c: Likewise.
1567 * error.c: Likewise.
1568 * except.c: Likewise.
1569 * mangle.c: Likewise.
1570 * method.c: Likewise.
1571 * name-lookup.c: Likewise.
1572 * parser.c: Likewise.
1573 * pt.c: Likewise.
1574 * repo.c: Likewise.
1575 * semantics.c: Likewise.
1576 * typeck2.c: Likewise.
1577
1578 2010-08-19 Jason Merrill <jason@redhat.com>
1579
1580 * call.c (reference_related_p): Check for error_mark_node.
1581 (add_function_candidate): Check it instead of
1582 same_type_ignoring_top_level_qualifiers_p.
1583
1584 PR c++/45315
1585 * init.c (build_new_1): Don't use build_value_init in a template.
1586 (build_value_init): Make sure we don't.
1587
1588 PR c++/45307
1589 * cp-gimplify.c (cp_gimplify_expr): Also remove assignment
1590 of empty class CONSTRUCTOR.
1591
1592 * except.c (pending_noexcept, pending_noexcept_checks): New.
1593 (perform_deferred_noexcept_checks): New.
1594 (maybe_noexcept_warning): Split from...
1595 (finish_noexcept_expr): ...here. Adjust.
1596 * decl2.c (cp_write_global_declarations): Call
1597 perform_deferred_noexcept_checks.
1598 * cp-tree.h: And declare it.
1599
1600 2010-08-18 Nathan Froyd <froydnj@codesourcery.com>
1601
1602 PR c++/45049
1603 * name-lookup.c (push_overloaded_decl): Change DECL_CHAIN to
1604 TREE_CHAIN.
1605
1606 2010-08-17 Kai Tietz <kai.tietz@onevision.com>
1607
1608 * class.c (note_name_declared_in_class): Make in 'extern "C"' blocks,
1609 or if -fms-extensions is enabled check, check permissive.
1610
1611 2010-08-09 Jason Merrill <jason@redhat.com>
1612
1613 PR c++/45236
1614 * pt.c (lookup_template_class): Don't re-coerce outer parms.
1615
1616 2010-08-09 Nathan Froyd <froydnj@codesourcery.com>
1617
1618 * call.c (add_builtin_candidates): Use VECs for local variable
1619 `types'. Adjust remainder of function accordingly.
1620
1621 2010-08-09 Nathan Froyd <froydnj@codesourcery.com>
1622
1623 * name-lookup.c (is_associated_namespace): Convert local variables
1624 to be VECs instead of TREE_LISTs.
1625
1626 2010-08-09 Nathan Froyd <froydnj@codesourcery.com>
1627
1628 * tree.c (varargs_function_p): Use stdarg_p.
1629
1630 2010-08-07 Nathan Froyd <froydnj@codesourcery.com>
1631
1632 * parser.c (cp_default_arg_entry): Declare. Declare a VEC of it.
1633 (cp_unparsed_functions_entry): Declare. Declare a VEC of it.
1634 (cp_parser) [unparsed_functions_queues]: Rename to unparsed_queues.
1635 Change type to a VEC.
1636 (unparsed_funs_with_default_args): Define.
1637 (unparsed_funs_with_definitions): Define.
1638 (push_unparsed_function_queues): New function.
1639 (cp_parser_new): Call it.
1640 (pop_unparsed_function_queues): New function.
1641 (cp_parser_class_specifier): Adjust processing of unparsed functions.
1642 (cp_parser_template_declaration_after_export): Use VEC_safe_push.
1643 (cp_parser_save_member_function_body): Likewise.
1644 (cp_parser_late_parsing_for_member): Call push_unparsed_function_queues
1645 and pop_unparsed_function_queues.
1646 (cp_parser_late_parsing_default_args): Likewise.
1647 (cp_parser_save_default_args): Use VEC_safe_push.
1648
1649 2010-08-07 Nathan Froyd <froydnj@codesourcery.com>
1650
1651 * name-lookup.h (cp_label_binding): Declare. Declare a VEC type
1652 containing it.
1653 (cp_binding_level): Convert shadowed_labels and dead_vars_from_for
1654 fields to VECs.
1655 * decl.c (poplevel): Adjust for type changes.
1656 (declare_local_label): Likewise.
1657
1658 2010-08-06 Jason Merrill <jason@redhat.com>
1659
1660 * typeck.c (complete_type_or_maybe_complain): Split out from...
1661 (complete_type_or_else): Here.
1662 (build_class_member_access_expr): Call it.
1663 (finish_class_member_access_expr): Likewise.
1664 * call.c (build_special_member_call): Likewise.
1665 * cvt.c (build_expr_type_conversion): Likewise.
1666 * init.c (build_new): Likewise.
1667 * typeck2.c (build_functional_cast): Likewise.
1668 * cp-tree.h: Declare it.
1669
1670 * init.c (build_value_init): Add complain parm.
1671 (build_value_init_noctor): Likewise.
1672 (perform_member_init): Pass it.
1673 (expand_aggr_init_1): Likewise.
1674 (build_new_1): Likewise.
1675 (build_vec_init): Likewise.
1676 * pt.c (tsubst_expr): Likewise.
1677 * typeck2.c (build_functional_cast): Likewise.
1678 * cp-tree.h: Adjust.
1679 * tree.c (build_target_expr_with_type): Handle error_mark_node.
1680
1681 * typeck.c (decay_conversion): Any expression with type nullptr_t
1682 decays to nullptr.
1683
1684 2010-07-30 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1685
1686 PR c++/45112
1687 * decl.c (duplicate_decls): Merge DECL_USER_ALIGN and DECL_PACKED.
1688
1689 2010-07-27 Jason Merrill <jason@redhat.com>
1690
1691 * pt.c (tsubst_expr) [DECL_EXPR]: Handle getting an AGGR_INIT_EXPR
1692 from build_value_init.
1693 * init.c (build_value_init_noctor): Give error for unknown array
1694 bound.
1695
1696 2010-07-27 Joseph Myers <joseph@codesourcery.com>
1697
1698 * cp-objcp-common.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
1699
1700 2010-07-27 Joseph Myers <joseph@codesourcery.com>
1701
1702 * cp-objcp-common.c (cxx_initialize_diagnostics): First call
1703 c_common_initialize_diagnostics.
1704 * cp-objcp-common.h (LANG_HOOKS_OPTION_LANG_MASK,
1705 LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
1706
1707 2010-07-21 Jason Merrill <jason@redhat.com>
1708
1709 * tree.c (cp_tree_equal): Fix CONSTRUCTOR handling.
1710
1711 * parser.c (cp_parser_init_declarator): Pass LOOKUP_NORMAL
1712 to cp_finish_decl.
1713
1714 2010-07-20 Jeffrey Yasskin <jyasskin@google.com>
1715
1716 PR c++/44641
1717 * pt.c (instantiate_class_template): Propagate the template's
1718 location to its instance.
1719
1720 2010-07-20 Jason Merrill <jason@redhat.com>
1721
1722 PR c++/44967
1723 * pt.c (tsubst_copy_and_build): Rework last change.
1724
1725 PR c++/44967
1726 * pt.c (tsubst_copy_and_build): Handle partial substitution of
1727 CALL_EXPR.
1728
1729 2010-07-19 Jason Merrill <jason@redhat.com>
1730
1731 PR c++/44996
1732 * semantics.c (finish_decltype_type): Correct decltype
1733 of parenthesized rvalue reference variable.
1734
1735 PR c++/44969
1736 * tree.c (cp_tree_equal): Compare type of *CAST_EXPR.
1737 * pt.c (iterative_hash_template_arg): Hash type of *CAST_EXPR.
1738
1739 2010-07-19 Paolo Carlini <paolo.carlini@oracle.com>
1740
1741 PR c++/44969
1742 * typeck.c (build_x_compound_expr_from_list): Add tsubst_flags_t
1743 parameter.
1744 * cp-tree.h: Adjust declaration.
1745 * init.c (perform_member_init): Adjust caller.
1746 * decl.c (grok_reference_init, cp_finish_decl): Likewise.
1747 * typeck2.c (store_init_value): Likewise.
1748 (build_functional_cast): Pass complain argument to
1749 build_x_compound_expr_from_list.
1750
1751 2010-07-16 Jason Merrill <jason@redhat.com>
1752
1753 PR c++/32505
1754 * pt.c (process_partial_specialization): Diagnose partial
1755 specialization after instantiation.
1756 (most_specialized_class): Add complain parm.
1757
1758 * ptree.c (cxx_print_xnode): Handle TEMPLATE_INFO.
1759
1760 2010-07-15 Nathan Froyd <froydnj@codesourcery.com>
1761
1762 * init.c (build_new_1): Use cp_build_function_call_nary instead of
1763 cp_build_function_call.
1764
1765 2010-07-15 Jason Merrill <jason@redhat.com>
1766
1767 PR c++/44909
1768 * call.c (add_function_candidate): If we're working on an implicit
1769 declaration, don't consider candidates that won't match.
1770 * typeck.c (same_type_ignoring_top_level_qualifiers_p): Now a fn.
1771 * cp-tree.h (same_type_ignoring_top_level_qualifiers_p): Adjust.
1772
1773 Revert:
1774 * cp-tree.h (struct lang_type_class): Add has_user_opeq.
1775 (TYPE_HAS_USER_OPEQ): New.
1776 * decl.c (grok_special_member_properties): Set it.
1777 * class.c (add_implicitly_declared_members): Don't lazily declare
1778 constructors/operator= if a base or member has a user-declared one.
1779 (check_bases_and_members, check_bases): Adjust.
1780 (check_field_decls, check_field_decl): Adjust.
1781
1782 2010-07-15 Anatoly Sokolov <aesok@post.ru>
1783
1784 * decl.c (integer_three_node): Remove.
1785 (cxx_init_decl_processing): Do not initialize the integer_three_node.
1786 * cp-tree.h (integer_three_node): Remove.
1787
1788 2010-07-15 Nathan Froyd <froydnj@codesourcery.com>
1789
1790 * cp-tree.h: Carefully replace TREE_CHAIN with DECL_CHAIN.
1791 * call.c: Likewise.
1792 * class.c: Likewise.
1793 * cp-gimplify.c: Likewise.
1794 * decl.c: Likewise.
1795 * decl2.c: Likewise.
1796 * init.c: Likewise.
1797 * mangle.c: Likewise.
1798 * name-lookup.c: Likewise.
1799 * optimize.c: Likewise.
1800 * parser.c: Likewise.
1801 * pt.c: Likewise.
1802 * rtti.c: Likewise.
1803 * search.c: Likewise.
1804 * semantics.c: Likewise.
1805 * typeck.c: Likewise.
1806 * typeck2.c: Likewise.
1807
1808 2010-07-14 Jason Merrill <jason@redhat.com>
1809
1810 * init.c (sort_mem_initializers): Rename "field_type" to "ctx".
1811 (build_field_list): Cache field type.
1812
1813 Implement C++0x unrestricted unions (N2544)
1814 * class.c (check_field_decl): Loosen union handling in C++0x.
1815 * method.c (walk_field_subobs): Split out from...
1816 (synthesized_method_walk): ...here. Set msg before loops.
1817 (process_subob_fn): Check for triviality in union members.
1818 * init.c (sort_mem_initializers): Splice out uninitialized
1819 anonymous unions and union members.
1820 (push_base_cleanups): Don't automatically destroy anonymous unions
1821 and union members.
1822
1823 2010-07-13 Jason Merrill <jason@redhat.com>
1824
1825 PR c++/44909
1826 * cp-tree.h (struct lang_type_class): Add has_user_opeq.
1827 (TYPE_HAS_USER_OPEQ): New.
1828 * decl.c (grok_special_member_properties): Set it.
1829 * class.c (add_implicitly_declared_members): Don't lazily declare
1830 constructors/operator= if a base or member has a user-declared one.
1831 (check_bases_and_members, check_bases): Adjust.
1832 (check_field_decls, check_field_decl): Adjust.
1833 * method.c (synthesized_method_walk): Initialize check_vdtor.
1834
1835 PR c++/44540
1836 * mangle.c (write_type): Canonicalize.
1837 (canonicalize_for_substitution): Retain cv-quals on FUNCTION_TYPE.
1838 (write_CV_qualifiers_for_type): Ignore them in abi>=5.
1839
1840 2010-07-13 Paolo Carlini <paolo.carlini@oracle.com>
1841
1842 PR c++/44908
1843 * call.c (convert_like_real): Adjust convert_ptrmem call, pass
1844 complain argument.
1845 * typeck.c (get_delta_difference): Update prototype, add a
1846 tsubst_flags_t parameter; update get_delta_difference_1 calls and
1847 add checks for error_mark_node.
1848 (get_delta_difference_1): Update prototype, add a tsubst_flags_t
1849 parameter; update lookup_base call.
1850 (build_ptrmemfunc): Update prototype, add a tsubst_flags_t
1851 parameter; update get_delta_difference call and add check for
1852 error_mark_node.
1853 (convert_ptrmem): Update prototype, add a tsubst_flags_t
1854 parameter; update get_delta_difference call and add check for
1855 error_mark_node; update build_ptrmemfunc call.
1856 (build_static_cast_1): Adjust convert_ptrmem call.
1857 (expand_ptrmemfunc_cst): Adjust get_delta_difference call.
1858 (cp_build_unary_op): Adjust build_ptrmemfunc call.
1859 * cvt.c (cp_convert_to_pointer, convert_force): Adjust convert_ptrmem
1860 and build_ptrmemfunc calls.
1861 * cp-tree.h: Update build_ptrmemfunc and convert_ptrmem prototypes.
1862
1863 2010-07-12 Paolo Carlini <paolo.carlini@oracle.com>
1864
1865 PR c++/44907
1866 * call.c (build_temp): Add tsubst_flags_t complain parameter;
1867 adjust build_special_member_call call, pass complain.
1868 (convert_like_real): Adjust build_temp call, pass complain.
1869
1870 2010-07-09 Jason Merrill <jason@redhat.com>
1871
1872 PR c++/43120
1873 * cp-tree.h (BV_LOST_PRIMARY): New macro.
1874 * class.c (update_vtable_entry_for_fn): Fix covariant thunk logic.
1875 Set BV_LOST_PRIMARY.
1876 (build_vtbl_initializer): Check BV_LOST_PRIMARY.
1877
1878 2010-07-08 Jason Merrill <jason@redhat.com>
1879
1880 PR c++/43120
1881 * class.c (update_vtable_entry_for_fn): Fix handling of dummy
1882 virtual bases for covariant thunks.
1883
1884 2010-07-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
1885
1886 * cp-tree.h: Do not include toplev.h.
1887
1888 2010-07-06 Jason Merrill <jason@redhat.com>
1889
1890 PR c++/44703
1891 * call.c (is_std_init_list): Look through typedefs.
1892
1893 PR c++/44778
1894 * init.c (build_offset_ref): If scope isn't dependent,
1895 don't exit early. Look at TYPE_MAIN_VARIANT.
1896 * pt.c (tsubst_copy) [OFFSET_REF]: Do substitution.
1897
1898 * error.c (dump_function_decl): Don't crash on null DECL_NAME.
1899
1900 2010-07-06 Shujing Zhao <pearly.zhao@oracle.com>
1901
1902 * cp-tree.h (impl_conv_void): New type.
1903 (convert_to_void): Adjust prototype.
1904 * cvt.c (convert_to_void): Use impl_conv_void, emit and adjust the
1905 diagnostic for easy translation. Change caller.
1906 * typeck.c: Update call to convert_to_void.
1907 * semantics.c: Likewise.
1908 * init.c: Likewise.
1909
1910 2010-07-05 Nathan Froyd <froydnj@codesourcery.com>
1911
1912 * decl.c (cp_finish_decl): Call add_local_decl.
1913 * optimize.c (clone_body): Adjust for new type of cfun->local_decls.
1914
1915 2010-07-05 Paolo Carlini <paolo.carlini@oracle.com>
1916
1917 * pt.c (tsubst): Early declare code = TREE_CODE (t) and use it
1918 throughout.
1919
1920 2010-07-05 Shujing Zhao <pearly.zhao@oracle.com>
1921
1922 PR c++/22138
1923 * parser.c (cp_parser_primary_expression): Error if local template is
1924 declared.
1925
1926 2010-07-02 Le-Chun Wu <lcwu@google.com>
1927
1928 PR/44128
1929 * name-lookup.c (pushdecl_maybe_friend): Warn when a local decl
1930 (variable or type) shadows another type.
1931
1932 2010-07-02 Jakub Jelinek <jakub@redhat.com>
1933
1934 PR c++/44780
1935 * typeck.c (convert_for_assignment): When converting a convertible
1936 vector type or objc++ types, call mark_rvalue_use.
1937 * typeck2.c (build_m_component_ref): Use return values from
1938 mark_rvalue_use or mark_lvalue_use.
1939 * class.c (build_base_path): Likewise.
1940 * call.c (build_conditional_expr): Likewise.
1941
1942 2010-07-02 Paolo Carlini <paolo.carlini@oracle.com>
1943
1944 PR c++/44039
1945 * pt.c (tsubst_baselink): Return error_mark_node if lookup_fnfields
1946 returns NULL_TREE.
1947
1948 2010-07-01 Richard Guenther <rguenther@suse.de>
1949
1950 * cp-gimplify.c (cp_gimplify_expr): Open-code the rhs
1951 predicate we are looking for, allow non-gimplified
1952 INDIRECT_REFs.
1953
1954 2010-06-30 Paolo Carlini <paolo.carlini@oracle.com>
1955
1956 PR c++/44628
1957 * typeck.c (cp_build_unary_op): Early return error_mark_node when
1958 arg is NULL_TREE too.
1959 * call.c (convert_class_to_reference): Return error_mark_node when
1960 expr is NULL_TREE.
1961
1962 2010-06-30 Michael Matz <matz@suse.de>
1963
1964 * repo.c (finish_repo): Fix typo.
1965
1966 2010-06-30 Nathan Froyd <froydnj@codesourcery.com>
1967
1968 * parser.c (cp_parser_omp_for_loop): Use a VEC for for_block.
1969
1970 2010-06-30 Nathan Froyd <froydnj@codesourcery.com>
1971
1972 * repo.c (pending_repo): Change type to a VEC.
1973 (finish_repo): Adjust for new type of pending_repo.
1974 (repo_emit_p): Likewise.
1975
1976 2010-06-30 Manuel López-Ibáñez <manu@gcc.gnu.org>
1977
1978 * tree.c: Include gimple.h. Do not include tree-flow.h
1979 * decl.c: Do not include tree-flow.h
1980 * Make-lang.in: Adjust dependencies.
1981
1982 2010-06-29 Nathan Froyd <froydnj@codesourcery.com>
1983
1984 * decl.c (incomplete_var): Declare. Declare VECs containing them.
1985 (incomplete_vars): Adjust comment. Change type to a VEC.
1986 (maybe_register_incomplete_var): Adjust for new type.
1987 (complete_vars): Adjust iteration over incomplete_vars.
1988
1989 2010-06-29 Nathan Froyd <froydnj@codesourcery.com>
1990
1991 * decl.c (struct named_label_entry): Change type of bad_decls field
1992 to a VEC.
1993 (poplevel_named_label_1): Adjust for new type of bad_decls.
1994 (check_goto): Likewise.
1995
1996 2010-06-29 Jason Merrill <jason@redhat.com>
1997
1998 Enable implicitly declared move constructor/operator= (N3053).
1999 * class.c (add_implicitly_declared_members): A class with no
2000 explicitly declared copy or move constructor gets both declared
2001 implicitly, and similarly for operator=.
2002 (check_bases): A type with no copy ctor does not inhibit
2003 a const copy ctor in a derived class. It does mean the derived
2004 one is non-trivial.
2005 (check_field_decl): Likewise.
2006 (check_bases_and_members): A nonexistent copy ctor/op= is non-trivial.
2007 * tree.c (type_has_nontrivial_copy_init): Adjust semantics.
2008 (trivially_copyable_p): Likewise.
2009 * call.c (convert_like_real): Use type_has_nontrivial_copy_init.
2010 * class.c (finish_struct_bits): Likewise.
2011 * tree.c (build_target_expr_with_type): Likewise.
2012 * typeck2.c (store_init_value): Likewise.
2013
2014 Enable implicitly deleted functions (N2346)
2015 * class.c (check_bases_and_members): Adjust lambda flags.
2016 * method.c (implicitly_declare_fn): Set DECL_DELETED_FN if appropriate.
2017
2018 * decl2.c (mark_used): Adjust error for use of deleted function.
2019
2020 Machinery to support implicit delete/move.
2021 * cp-tree.h: (struct lang_type_class): Add lazy_move_assign,
2022 has_complex_move_ctor, has_complex_move_assign bitfields.
2023 (CLASSTYPE_LAZY_MOVE_ASSIGN): New.
2024 (TYPE_HAS_COMPLEX_MOVE_ASSIGN): New.
2025 (TYPE_HAS_COMPLEX_MOVE_CTOR): New.
2026 (enum special_function_kind): Add sfk_move_assignment.
2027 (LOOKUP_SPECULATIVE): New.
2028 * call.c (build_over_call): Return early if it's set.
2029 (build_over_call): Use trivial_fn_p.
2030 * class.c (check_bases): If the base has no default constructor,
2031 the derived one is non-trivial. Handle move ctor/op=.
2032 (check_field_decl): Likewise.
2033 (check_bases_and_members): Handle move ctor/op=.
2034 (add_implicitly_declared_members): Handle CLASSTYPE_LAZY_MOVE_ASSIGN.
2035 (type_has_move_constructor, type_has_move_assign): New.
2036 * decl.c (grok_special_member_properties): Handle move ctor/op=.
2037 * method.c (type_has_trivial_fn, type_set_nontrivial_flag): New.
2038 (trivial_fn_p): New.
2039 (do_build_copy_constructor): Use it.
2040 (do_build_assign_ref): Likewise. Handle move assignment.
2041 (build_stub_type, build_stub_object, locate_fn_flags): New.
2042 (locate_ctor): Use locate_fn_flags.
2043 (locate_copy, locate_dtor): Remove.
2044 (get_dtor, get_default_ctor, get_copy_ctor, get_copy_assign): New.
2045 (process_subob_fn, synthesized_method_walk): New.
2046 (maybe_explain_implicit_delete): New.
2047 (implicitly_declare_fn): Use synthesized_method_walk,
2048 type_has_trivial_fn, and type_set_nontrivial_flag.
2049 (defaulted_late_check): Set DECL_DELETED_FN.
2050 (defaultable_fn_check): Handle sfk_move_assignment.
2051 (lazily_declare_fn): Clear CLASSTYPE_LAZY_* early. Don't declare
2052 implicitly deleted move ctor/op=.
2053 * search.c (lookup_fnfields_1): Handle sfk_move_assignment.
2054 (lookup_fnfields_slot): New.
2055 * semantics.c (omp_clause_info_fndecl): Remove.
2056 (cxx_omp_create_clause_info): Use get_default_ctor, get_copy_ctor,
2057 get_copy_assign, trivial_fn_p.
2058 (trait_expr_value): Adjust call to locate_ctor.
2059 * tree.c (special_function_p): Handle sfk_move_assignment.
2060
2061 * class.c (type_has_virtual_destructor): New.
2062 * cp-tree.h: Declare it.
2063 * semantics.c (trait_expr_value): Use it.
2064
2065 * call.c (build_over_call): Only give warnings with tf_warning.
2066
2067 * name-lookup.c (pop_scope): Handle NULL_TREE.
2068
2069 * cp-tree.h (TYPE_HAS_ASSIGN_REF): Rename to TYPE_HAS_COPY_ASSIGN.
2070 (TYPE_HAS_CONST_ASSIGN_REF): Rename to TYPE_HAS_CONST_COPY_ASSIGN.
2071 (TYPE_HAS_INIT_REF): Rename to TYPE_HAS_COPY_CTOR.
2072 (TYPE_HAS_CONST_INIT_REF): Rename to TYPE_HAS_CONST_COPY_CTOR.
2073 (TYPE_HAS_COMPLEX_ASSIGN_REF): Rename to TYPE_HAS_COMPLEX_COPY_ASSIGN.
2074 (TYPE_HAS_COMPLEX_INIT_REF): Rename to TYPE_HAS_COMPLEX_COPY_CTOR.
2075 (TYPE_HAS_TRIVIAL_ASSIGN_REF): Rename to TYPE_HAS_TRIVIAL_COPY_ASSIGN.
2076 (TYPE_HAS_TRIVIAL_INIT_REF): Rename to TYPE_HAS_TRIVIAL_COPY_CTOR.
2077 (CLASSTYPE_LAZY_ASSIGNMENT_OP): Rename to CLASSTYPE_LAZY_COPY_ASSIGN.
2078 (sfk_assignment_operator): Rename to sfk_copy_assignment.
2079 * decl.c, call.c, class.c, init.c, method.c, pt.c, ptree.c: Adjust.
2080 * search.c, semantics.c, tree.c: Adjust.
2081
2082 * pt.c (dependent_scope_ref_p): Remove.
2083 (value_dependent_expression_p): Don't call it.
2084 (type_dependent_expression_p): Here either.
2085 * init.c (build_offset_ref): Set TREE_TYPE on a qualified-id
2086 if the scope isn't dependent.
2087
2088 * pt.c (convert_nontype_argument): Use mark_lvalue_use if we want
2089 a reference.
2090
2091 PR c++/44587
2092 * pt.c (has_value_dependent_address): New.
2093 (value_dependent_expression_p): Check it.
2094 (convert_nontype_argument): Likewise. Call decay_conversion before
2095 folding if we want a pointer.
2096 * semantics.c (finish_id_expression): Don't add SCOPE_REF if the
2097 scope is the current instantiation.
2098
2099 2010-06-28 Jakub Jelinek <jakub@redhat.com>
2100
2101 PR c++/44682
2102 * class.c (build_base_path): If want_pointer, call mark_rvalue_use
2103 on expr.
2104
2105 2010-06-28 Steven Bosscher <steven@gcc.gnu.org>
2106
2107 * init.c: Do not include except.h.
2108 * decl.c: Likewise.
2109 * expr.c: Likewise.
2110 * cp-lang.c: Likewise.
2111 * pt.c: Likewise.
2112 * semantics.c: Likewise.
2113 * decl2.c: Likewise.
2114 * except.c: Likewise.
2115 (init_exception_processing): Do not set the removed
2116 lang_protect_cleanup_actions here.
2117 (cp_protect_cleanup_actions): Make non-static and remove prototype.
2118 (doing_eh): New, moved from except.c but removed the do_warning flag.
2119 (expand_start_catch_block): Update doing_eh call.
2120 (expand_end_catch_block): Likewise.
2121 (build_throw): Likewise.
2122 * cp-tree.h: Prototype cp_protect_cleanup_actions.
2123 * cp-objcp-common.h: Set LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS to
2124 cp_protect_cleanup_actions.
2125 * Make-lang.in: Update dependencies.
2126
2127 2010-06-26 Jason Merrill <jason@redhat.com>
2128
2129 * call.c (add_function_candidate): Set LOOKUP_COPY_PARM for any
2130 constructor called with a single argument that takes a reference
2131 to the constructor's class.
2132 (BAD_CONVERSION_RANK): New.
2133 (compare_ics): Use it to compare bad ICSes.
2134
2135 2010-06-25 Joseph Myers <joseph@codesourcery.com>
2136
2137 * lang-specs.h: Remove +e handling.
2138
2139 2010-06-24 Andi Kleen <ak@linux.intel.com>
2140
2141 * parser.c: (cp_parser_question_colon_clause):
2142 Switch to use cp_lexer_peek_token.
2143 Call warn_for_omitted_condop. Call pedwarn for omitted
2144 middle operand.
2145
2146 2010-06-22 Jakub Jelinek <jakub@redhat.com>
2147
2148 PR c++/44619
2149 * typeck2.c (build_m_component_ref): Call mark_lvalue_use on
2150 datum and mark_rvalue_use on component.
2151
2152 PR c++/44627
2153 * error.c (dump_expr): Don't look at CALL_EXPR_ARG (t, 0) if
2154 the CALL_EXPR has no arguments.
2155
2156 2010-06-21 Jason Merrill <jason@redhat.com>
2157
2158 * typeck.c (comp_except_specs): Fix ce_derived with noexcept.
2159
2160 * semantics.c (check_trait_type): Check COMPLETE_TYPE_P for array
2161 element type.
2162
2163 2010-06-17 Nathan Froyd <froydnj@codesourcery.com>
2164
2165 * name-lookup.c (struct arg_lookup): Convert namespaces and
2166 classes fields to VEC.
2167 (arg_assoc_namespace): Adjust for new type of namespaces.
2168 (arg_assoc_class): Adjust for new type of classes.
2169 (lookup_arg_dependent): Use make_tree_vector and
2170 release_tree_vector.
2171 * typeck2.c (build_x_arrow): Use vec_member.
2172
2173 2010-06-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
2174
2175 PR c++/44486
2176 * error.c (dump_decl): Better wording for anonymous namespace.
2177
2178 2010-06-16 Nathan Froyd <froydnj@codesourcery.com>
2179
2180 * class.c (build_vtbl_initializer): Adjust computation of new_position
2181 and which entry to add padding for.
2182
2183 2010-06-16 Jason Merrill <jason@redhat.com>
2184
2185 * except.c (check_noexcept_r): Return the problematic function.
2186 (finish_noexcept_expr): Give -Wnoexcept warning. Add complain parm.
2187 * pt.c (tsubst_copy_and_build): Pass it.
2188 * parser.c (cp_parser_unary_expression): Likewise.
2189 * cp-tree.h: Adjust prototype.
2190
2191 * method.c (defaulted_late_check): Give the defaulted method
2192 the same exception specification as the implicit declaration.
2193
2194 2010-06-15 Jason Merrill <jason@redhat.com>
2195
2196 * class.c (add_implicitly_declared_members): Implicit assignment
2197 operators can also be virtual overriders.
2198 * method.c (lazily_declare_fn): Likewise.
2199
2200 * call.c (convert_like_real): Give "initializing argument of"
2201 information for ambiguous conversion. Give source position
2202 of function.
2203
2204 * call.c (print_z_candidates): Do print viable deleted candidates.
2205 (joust): Don't choose a deleted function just because its worst
2206 conversion is better than another candidate's worst.
2207
2208 * call.c (convert_like_real): Don't complain about
2209 list-value-initialization from an explicit constructor.
2210
2211 * decl.c (duplicate_decls): Use DECL_IS_BUILTIN rather than test
2212 DECL_SOURCE_LOCATION directly.
2213
2214 * class.c (type_has_user_provided_default_constructor): Use
2215 sufficient_parms_p.
2216
2217 * call.c (is_subseq): Handle ck_aggr, ck_list.
2218 (compare_ics): Treat an aggregate or ambiguous conversion to the
2219 same type as involving the same function.
2220
2221 2010-06-13 Shujing Zhao <pearly.zhao@oracle.com>
2222
2223 * typeck.c (convert_for_assignment): Fix comment. Change message
2224 format from %d to %qP.
2225 (convert_for_initialization): Fix comment.
2226
2227 2010-06-11 Shujing Zhao <pearly.zhao@oracle.com>
2228
2229 * cp-tree.h (expr_list_kind): New type.
2230 (impl_conv_rhs): New type.
2231 (build_x_compound_expr_from_list, convert_for_initialization): Adjust
2232 prototype.
2233 (typeck.c (convert_arguments): Use impl_conv_rhs and emit the
2234 diagnostics for easy translation. Change caller.
2235 (convert_for_initialization): Use impl_conv_rhs and change caller.
2236 (build_x_compound_expr_from_list): Use expr_list_kind and emit the
2237 diagnostics for easy translation. Change caller.
2238 * decl.c (bad_spec_place): New enum.
2239 (bad_specifiers): Use it and emit the diagnostics for easy
2240 translation. Change caller.
2241 * pt.c (coerce_template_parms): Put the diagnostics in full sentence.
2242
2243 2010-06-09 Nathan Froyd <froydnj@codesourcery.com>
2244
2245 * cp-tree.h (struct saved_scope): Change decl_ns_list field type
2246 to a VEC.
2247 * decl2.c (cp_write_global_declarations): Adjust for new type of
2248 decl_namespace_list.
2249 * name-lookup.c (current_decl_namespace): Likewise.
2250 (push_decl_namespace): Likewise.
2251 (pop_decl_namespace): Likewise.
2252
2253 2010-06-09 Nathan Froyd <froydnj@codesourcery.com>
2254
2255 * call.c (build_java_interface_fn_ref): Call build_function_type_list
2256 instead of build_function_type.
2257 * decl.c (cxx_init_decl_processing): Likewise.
2258 (declare_global_var): Likewise.
2259 (get_atexit_node): Likewise.
2260 (expand_static_init): Likewise.
2261 * decl2.c (start_objects): Likewise.
2262 (start_static_storage_duration_function): Likewise.
2263 * except.c (init_exception_processing): Likewise.
2264 (build_exc_ptr): Likewise.
2265 (build_throw): Likewise.
2266 * rtti.c (throw_bad_cast): Likewise.
2267 (throw_bad_typeid): Likewise.
2268 (build_dynamic_cast_1): Likewise.
2269
2270 2010-06-09 Nathan Froyd <froydnj@codesourcery.com>
2271
2272 * call.c (build_call_n): Call XALLOCAVEC instead of alloca.
2273 (build_op_delete_call): Likewise.
2274 (build_over_call): Likewise.
2275 * cp-gimplify.c (cxx_omp_clause_apply_fn): Likewise.
2276 * pt.c (process_partial_specialization): Likewise.
2277 (tsubst_template_args): Likewise.
2278 * semantics.c (finish_asm_stmt): Likewise.
2279
2280 2010-06-08 Nathan Sidwell <nathan@codesourcery.com>
2281
2282 * decl.c (record_key_method_defined): New, broken out of ...
2283 (finish_function): ... here. Call it.
2284 (start_decl): Treat aliases as definitions.
2285
2286 2010-06-08 Laurynas Biveinis <laurynas.biveinis@gmail.com>
2287
2288 * typeck2.c (abstract_virtuals_error): Use typed GC allocation.
2289
2290 * pt.c (maybe_process_partial_specialization): Likewise.
2291 (register_specialization): Likewise.
2292 (add_pending_template): Likewise.
2293 (lookup_template_class): Likewise.
2294 (push_tinst_level): Likewise.
2295
2296 * parser.c (cp_lexer_new_main): Likewise.
2297 (cp_lexer_new_from_tokens): Likewise.
2298 (cp_token_cache_new): Likewise.
2299 (cp_parser_context_new): Likewise.
2300 (cp_parser_new): Likewise.
2301 (cp_parser_nested_name_specifier_opt): Likewise.
2302 (cp_parser_template_id): Likewise.
2303
2304 * name-lookup.c (binding_entry_make): Likewise.
2305 (binding_table_construct): Likewise.
2306 (binding_table_new): Likewise.
2307 (cxx_binding_make): Likewise.
2308 (pushdecl_maybe_friend): Likewise.
2309 (begin_scope): Likewise.
2310 (push_to_top_level): Likewise.
2311
2312 * lex.c (init_reswords): Likewise.
2313 (retrofit_lang_decl): Likewise.
2314 (cxx_dup_lang_specific_decl): Likewise.
2315 (copy_lang_type): Likewise.
2316 (cxx_make_type): Likewise.
2317
2318 * decl.c (make_label_decl): Likewise.
2319 (check_goto): Likewise.
2320 (start_preparsed_function): Likewise.
2321 (save_function_data): Likewise.
2322
2323 * cp-tree.h (TYPE_SET_PTRMEMFUNC_TYPE): Likewise.
2324
2325 * cp-objcp-common.c (decl_shadowed_for_var_insert): Likewise.
2326
2327 * class.c (finish_struct_1): Likewise.
2328
2329 * cp-tree.h (struct lang_type): Add variable_size GTY option.
2330 (struct lang_decl): Likewise.
2331
2332 * parser.c (cp_parser_new): Update comment to not reference
2333 ggc_alloc.
2334
2335 2010-06-07 Jason Merrill <jason@redhat.com>
2336
2337 PR c++/44366
2338 * error.c (dump_parameters): Mask out TFF_SCOPE.
2339 (dump_simple_decl): Don't print the scope of a PARM_DECL.
2340 (dump_scope): Remove no-op mask.
2341
2342 PR c++/44401
2343 * parser.c (cp_parser_lookup_name): Fix naming the constructor.
2344
2345 * cp-tree.h (COMPLETE_OR_OPEN_TYPE_P): New macro.
2346 * init.c (build_offset_ref): Use it.
2347 * pt.c (maybe_process_partial_specialization): Use it.
2348 (instantiate_class_template): Use it.
2349 * search.c (lookup_base): Use it.
2350
2351 2010-06-07 Jakub Jelinek <jakub@redhat.com>
2352
2353 PR c++/44444
2354 * expr.c (mark_exp_read): Handle INDIRECT_REF.
2355 * cvt.c (convert_to_void): Handle INDIRECT_REF like
2356 handled_component_p.
2357
2358 PR c++/44443
2359 * decl.c (initialize_local_var): If TREE_USED is set on the type,
2360 set also DECL_READ_P on the decl.
2361
2362 2010-05-25 Dodji Seketeli <dodji@redhat.com>
2363
2364 PR c++/44188
2365 * cp-tree.h (typedef_variant_p): Move this declaration to
2366 gcc/tree.h.
2367 * tree.c (typedef_variant_p): Move this definition to gcc/tree.c.
2368 * decl.c (grokdeclarator): Do not rename debug info of an
2369 anonymous tagged type named by a typedef.
2370
2371 2010-06-05 Fabien Chêne <fabien@gcc.gnu.org>
2372
2373 PR c++/44086
2374 * class.c (check_field_decls): Move the call to
2375 check_bitfield_decl before trying to set the
2376 CLASSTYPE_READONLY_FIELDS_NEED_INIT flag.
2377
2378 2010-06-05 Steven Bosscher <steven@gcc.gnu.org>
2379
2380 * typeck.c: Update include path for moved files.
2381 * decl.c: Likewise.
2382 * rtti.c: Likewise.
2383 * cp-gimplify.c: Likewise.
2384 * cp-lang.c: Likewise.
2385 * pt.c: Likewise.
2386 * semantics.c: Likewise.
2387 * cxx-pretty-print.h: Likewise.
2388 * decl2.c: Likewise.
2389 * parser.c: Likewise.
2390 * cp-objcp-common.c: Likewise.
2391 * cp-tree.h: Likewise.
2392 * name-lookup.c: Likewise.
2393 * lex.c: Likewise.
2394 * name-lookup.h: Likewise.
2395 * config-lang.in: Update paths in gtfiles for files in c-family/.
2396 * Make-lang.in: Likewise.
2397
2398 2010-06-04 Magnus Fromreide <magfr@lysator.liu.se>
2399
2400 * cvt.c (cp_convert_to_pointer): Use null_ptr_cst_p.
2401 * typeck.c (build_ptrmemfunc): Likewise.
2402
2403 2010-06-04 Jason Merrill <jason@redhat.com>
2404
2405 * typeck2.c (merge_exception_specifiers): Adjust merging of
2406 throw() and noexcept(true).
2407
2408 * pt.c (value_dependent_expression_p) [NOEXCEPT_EXPR]: Avoid
2409 using an uninitialized variable.
2410
2411 * cxx-pretty-print.c (pp_cxx_unary_expression): Handle NOEXCEPT_EXPR.
2412 (pp_cxx_expression): Likewise.
2413
2414 Implement noexcept-specification (15.4)
2415 * parser.c (cp_parser_exception_specification_opt): Parse it.
2416 Give -Wdeprecated warning about throw() specs.
2417 * pt.c (tsubst_exception_specification): Handle it.
2418 * error.c (dump_exception_spec): Handle it.
2419 (dump_expr): Handle NOEXCEPT_EXPR.
2420 * cxx-pretty-print.c (pp_cxx_exception_specification): Likewise.
2421 * typeck.c (comp_except_specs): Handle compatibility rules.
2422 Change exact parm to take an enum.
2423 * typeck2.c (merge_exception_specifiers): Handle noexcept.
2424 * except.c (nothrow_spec_p, type_noexcept_p): New fns.
2425 (type_throw_all_p, build_noexcept_spec): New fns.
2426 * cp-tree.h (TYPE_NOTHROW_P, TYPE_NOEXCEPT_P): Use them.
2427 (comp_except_specs): Define ce_derived, ce_normal, ce_exact enums.
2428 (cp_tree_index): Add CPTI_NOEXCEPT_TRUE_SPEC, CPTI_NOEXCEPT_FALSE_SPEC.
2429 (noexcept_true_spec, noexcept_false_spec): New macros.
2430 * name-lookup.c (pushdecl_maybe_friend): Adjust.
2431 * search.c (check_final_overrider): Adjust.
2432 * decl.c (check_redeclaration_exception_specification): Adjust.
2433 (use_eh_spec_block): Use type_throw_all_p.
2434 (cxx_init_decl_processing): Set noexcept_false_spec,noexcept_true_spec.
2435 Give operator new a noexcept-specification in C++0x mode.
2436 * tree.c (build_exception_variant, cxx_type_hash_eq): Adjust.
2437 (cp_build_type_attribute_variant): Don't test TYPE_RAISES_EXCEPTIONS.
2438
2439 Implement noexcept operator (5.3.7)
2440 * cp-tree.def (NOEXCEPT_EXPR): New.
2441 * except.c (check_noexcept_r, finish_noexcept_expr): New.
2442 * cp-tree.h: Declare finish_noexcept_expr.
2443 * parser.c (cp_parser_unary_expression): Parse noexcept-expression.
2444 * pt.c (tsubst_copy_and_build): And tsubst it.
2445 (type_dependent_expression_p): Handle it.
2446 (value_dependent_expression_p): Handle it.
2447
2448 * call.c (build_conditional_expr): Never fold in unevaluated context.
2449 * tree.c (build_aggr_init_expr): Propagate TREE_NOTHROW.
2450 * semantics.c (simplify_aggr_init_expr): Likewise.
2451 * typeck.c (merge_types): Call merge_exception_specifiers.
2452 * decl.c (duplicate_decls): Check DECL_SOURCE_LOCATION rather than
2453 DECL_ANTICIPATED for preferring new type.
2454
2455 2010-06-04 Joseph Myers <joseph@codesourcery.com>
2456
2457 * g++spec.c (lang_specific_driver): Use GCC-specific formats in
2458 diagnostics.
2459
2460 2010-06-04 Jakub Jelinek <jakub@redhat.com>
2461
2462 PR c++/44412
2463 * typeck.c (build_class_member_access_expr): Call mark_exp_read
2464 on object for static data members.
2465
2466 2010-06-04 Jakub Jelinek <jakub@redhat.com>
2467 Jason Merrill <jason@redhat.com>
2468
2469 PR c++/44362
2470 * call.c (build_conditional_expr): If both arg2 and arg3 are lvalues
2471 with the same type, call mark_lvalue_use on both.
2472
2473 2010-06-03 Nathan Froyd <froydnj@codesourcery.com>
2474
2475 * class.c (struct vtbl_init_data_s): Remove last_init field.
2476 (struct secondary_vptr_vtt_init_data_s): Change type of inits field
2477 to a VEC.
2478 (finish_vtbls): Use a VEC rather than a TREE_LIST for the accumulated
2479 initializers.
2480 (build_vtt): Likewise.
2481 (initialize_vtable): Take a VEC instead of a tree.
2482 (build_vtt_inits): Change return type to void. Take a VEC **
2483 instead of a tree *; accumulate results into said VEC.
2484 (build_ctor_vtbl_group): Use a VEC rather than a TREE_LIST for the
2485 accumulated initializers. Pass the vtable to accumulate_vtbl_inits.
2486 (accumulate_vtbl_inits): Add extra vtable tree parameter; take a VEC
2487 instead of a tree.
2488 (dfs_accumulate_vtbl_inits): Likewise. Change return type to void.
2489 (build_vtbl_initializer): Add VEC parameter; accumulate initializers
2490 into it.
2491 (dfs_build_secondary_vptr_vtt_inits): Use CONSTRUCTOR_APPEND_ELT
2492 rather than tree_cons.
2493 (build_vbase_offset_vtbl_entries): Likewise.
2494 (add_vcall_offset): Likewise.
2495 (build_rtti_vtbl_entries): Likewise.
2496 * cp-tree.h (initialize_artificial_var): Take a VEC instead of a tree.
2497 * decl.c (initialize_artificial_var): Use build_constructor instead
2498 of build_constructor_from_list.
2499
2500 2010-06-03 H.J. Lu <hongjiu.lu@intel.com>
2501
2502 PR c++/44294
2503 * class.c (layout_class_type): Check MAX_FIXED_MODE_SIZE on
2504 bit-field.
2505
2506 2010-06-02 Jonathan Wakely <jwakely.gcc@gmail.com>
2507
2508 * parser.c (cp_parser_mem_initializer_list): Change error text.
2509
2510 2010-06-02 Jakub Jelinek <jakub@redhat.com>
2511
2512 * cp-objcp-common.c (shadowed_var_for_decl): Change into
2513 tree_decl_map hashtab from tree_map.
2514 (decl_shadowed_for_var_lookup, decl_shadowed_for_var_insert): Adjust.
2515 (init_shadowed_var_for_decl): Adjust initialization.
2516
2517 PR c++/44361
2518 * cvt.c (convert_to_void): If implicit is NULL, call mark_rvalue_use
2519 instead of calling mark_exp_read only when not an assignment.
2520
2521 PR debug/44367
2522 * semantics.c (finalize_nrv): Don't copy DECL_ARTIFICIAL, DECL_IGNORED_P,
2523 DECL_SOURCE_LOCATION and DECL_ABSTRACT_ORIGIN from var to result.
2524 Set DECL_VALUE_EXPR on var.
2525
2526 2010-06-02 Jason Merrill <jason@redhat.com>
2527
2528 * error.c (dump_type): Improve typedef handling.
2529
2530 PR c++/9726
2531 PR c++/23594
2532 PR c++/44333
2533 * name-lookup.c (same_entity_p): New.
2534 (ambiguous_decl): Multiple declarations of the same entity
2535 are not ambiguous.
2536
2537 2010-06-01 Jason Merrill <jason@redhat.com>
2538
2539 DR 990
2540 * call.c (add_list_candidates): Prefer the default constructor.
2541 (build_aggr_conv): Treat missing initializers like { }.
2542 * typeck2.c (process_init_constructor_record): Likewise.
2543 * init.c (expand_default_init): Use digest_init for
2544 direct aggregate initialization, too.
2545
2546 * call.c (add_list_candidates): Split out...
2547 (build_user_type_conversion_1): ...from here.
2548 (build_new_method_call): And here.
2549 (implicit_conversion): Propagate LOOKUP_NO_NARROWING.
2550
2551 PR c++/44358
2552 * call.c (build_list_conv): Set list-initialization flags properly.
2553
2554 2010-06-01 Nathan Froyd <froydnj@codesourcery.com>
2555
2556 * typeck2.c (build_x_arrow): Make types_memoized a VEC.
2557
2558 2010-06-01 Arnaud Charlet <charlet@adacore.com>
2559 Matthew Gingell <gingell@adacore.com>
2560
2561 * Make-lang.in (CXX_C_OBJS): Add c-ada-spec.o.
2562 * decl2.c: Include langhooks.h and c-ada-spec.h.
2563 (cpp_check, collect_source_refs, collect_ada_namespace,
2564 collect_all_refs): New functions.
2565 (cp_write_global_declarations): Add handling of -fdump-ada-spec.
2566 * lang-specs.h: Ditto.
2567
2568 2010-05-29 Nathan Froyd <froydnj@codesourcery.com>
2569
2570 * cp-tree.h (cp_build_function_call_nary): Declare.
2571 * typeck.c (cp_build_function_call_nary): Define.
2572 * decl.c (register_dtor_fn): Use it instead of
2573 cp_build_function_call.
2574 (cxx_maybe_build_cleanup): Likewise.
2575 * decl2.c (generate_ctor_or_dtor_function): Likewise.
2576 * except.c (do_get_exception_ptr): Likewise.
2577 (do_begin_catch): Likewise.
2578 (do_allocate_exception): Likewise.
2579 (do_free_exception): Likewise.
2580 (build_throw): Likewise. Use cp_build_function_call_vec instead
2581 of cp_build_function_call.
2582 (do_end_catch): Likewise.
2583
2584 2010-05-29 Nathan Froyd <froydnj@codesourcery.com>
2585
2586 * cp-tree.h (struct cp_decl_specifier_seq): Move type_location field up.
2587 (struct cp_declarator): Move id_loc field up.
2588
2589 2010-05-29 Steven Bosscher <steven@gcc.gnu.org>
2590
2591 * cp-tree.h (ATTRIBUTE_GCC_CXXDIAG): Remove. Require that
2592 this file is included before c-common.h. Define GCC_DIAG_STYLE
2593 before including diagnostic-core.h and toplev.h.
2594 (pedwarn_cxx98): Use ATTRIBUTE_GCC_DIAG.
2595 * pt.c: Include cp-tree.h before c-common.h.
2596
2597 2010-05-29 Steven Bosscher <steven@gcc.gnu.org>
2598
2599 * tree.c (c_register_addr_space): Add stub.
2600
2601 2010-05-28 Joseph Myers <joseph@codesourcery.com>
2602
2603 * g++spec.c (lang_specific_driver): Use fatal_error instead of
2604 fatal.
2605
2606 2010-05-28 Dodji Seketeli <dodji@redhat.com>
2607
2608 Revert fix of PR c++/44188
2609 * cp-tree.h (typedef_variant_p): Revert moving this declaration to
2610 gcc/tree.h.
2611 * tree.c (typedef_variant_p): Revert moving this definition to
2612 gcc/tree.c.
2613 * decl.c (grokdeclarator): Revert naming typedef handling.
2614
2615 2010-05-27 Joseph Myers <joseph@codesourcery.com>
2616
2617 * call.c: Include diagnostic-core.h instead of diagnostic.h.
2618 * cp-lang.c: Don't include diagnostic.h
2619 * name-lookup.c: Include diagnostic-core.h instead of
2620 diagnostic.h.
2621 (cp_emit_debug_info_for_using): Use seen_error.
2622 * optimize.c: Include diagnostic-core.h instead of diagnostic.h.
2623 * parser.c: Include diagnostic-core.h instead of diagnostic.h.
2624 * pt.c (iterative_hash_template_arg): Use seen_error.
2625 * repo.c: Include diagnostic-core.h instead of diagnostic.h.
2626 * typeck2.c: Include diagnostic-core.h instead of diagnostic.h.
2627 * Make-lang.in (cp/cp-lang.o, cp/typeck2.o, cp/call.o, cp/repo.o,
2628 cp/optimize.o, cp/parser.o, cp/name-lookup.o): Update
2629 dependencies.
2630
2631 2010-05-25 Dodji Seketeli <dodji@redhat.com>
2632
2633 PR c++/44188
2634 * cp-tree.h (typedef_variant_p): Move this declaration to
2635 gcc/tree.h.
2636 * tree.c (typedef_variant_p): Move this definition to gcc/tree.c.
2637 * decl.c (grokdeclarator): Do not rename debug info of an
2638 anonymous tagged type named by a typedef.
2639
2640 2010-05-27 Jason Merrill <jason@redhat.com>
2641
2642 PR c++/43555
2643 * decl.c (grokdeclarator) [cdk_pointer et al]: Force evaluation of
2644 anonymous VLA size.
2645
2646 2010-05-27 Kai Tietz <kai.tietz@onevision.com>
2647
2648 PR bootstrap/44287
2649 * rtti.c (emit_support_tinfos): Check for NULL_TREE.
2650 * class.c (layout_class_type): Likewise.
2651 * decl.c (finish_enum): Likewise.
2652 * mangle.c (write_builitin_type): Likewise.
2653
2654 2010-05-26 Kai Tietz <kai.tietz@onevision.com>
2655
2656 * cp-tree.h (cp_decl_specifier_seq): Add new bifield
2657 explicit_int128_p.
2658 * decl.c (grokdeclarator): Handle __int128.
2659 * parser.c (cp_lexer_next_token_is_decl_specifier_ke): Likewise.
2660 (cp_parser_simple_type_specifier): Likewise.
2661 * rtti.c (emit_support_tinfos): Add int128 nodes for rtti.
2662 * typeck.c (cp_common_type): Handle __int128.
2663 * mangle.c (integer_type_codes): Add itk_int128 and
2664 itk_unsigned_int128.
2665
2666 2010-05-26 Jason Merrill <jason@redhat.com>
2667
2668 PR c++/43382
2669 * pt.c (tsubst_pack_expansion): Don't get confused by recursive
2670 unification.
2671
2672 2010-05-26 Steven Bosscher <steven@gcc.gnu.org>
2673
2674 * cp-lang.c: Do not include expr.h.
2675
2676 2010-05-26 Steven Bosscher <steven@gcc.gnu.org>
2677
2678 * decl.c: Do not include rtl.h
2679 * semantics.c: Likewise.
2680
2681 2010-05-25 Steven Bosscher <steven@gcc.gnu.org>
2682
2683 * cp-tree.h: Do not include splay-tree.h.
2684 (struct prtmem_cst): Remove unused field and false comment.
2685 * typeck.c: Do not include rtl.h, expr.h, and tm_p.h.
2686 * optimize.c: Do not inclde rtl.h, insn-config.h, and integrate.h.
2687 * init.c: Do not include rtl.h and expr.h.
2688 * class.c: Do not include rtl.h. Include splay-tree.h.
2689 (build_clone): Use plain NULL instead of NULL_RTX.
2690 * decl.c: Do not include expr.h. Explain why rtl.h has to be
2691 included. Include splay-tree.h.
2692 * method.c: Do not include rtl.h and expr.h.
2693 (use_thunk): Use plain NULL instead of NULL_RTX.
2694 * except.c: Do not include rtl.h, expr.h, and libfuncs.h.
2695 * tree.c: Do not include rtl.h, insn-config.h, integrate.h,
2696 and target.h. Include splay-tree.h.
2697 * expr.c: Do not include rtl.h and expr.h.
2698 * pt.c: Do not include obstack.h and rtl.h.
2699 (tsubst_friend_function): Use plain NULL instead of NULL_RTX.
2700 (tsubst_decl): Likewise.
2701 (instantiate_decl): Likewise.
2702 * semantics.c: Do not include exprt.h and debug.h. Explain why
2703 rtl.h has to be included.
2704 * decl2.c: Do not include rtl.h and expr.h. Include splay-tree.h.
2705 * call.c: Do not include rtl.h and expr.h.
2706 * search.c: Do not include obstack.h and rtl.h.
2707 * friend.c: Do not include rtl.h and expr.h.
2708 * Make-lang.in: Update dependencies.
2709
2710 2010-05-25 Jakub Jelinek <jakub@redhat.com>
2711
2712 PR c++/18249
2713 * parser.c (non_integral_constant): Add NIC_NONE.
2714 (required_token): Add RT_NONE.
2715 (cp_parser_unary_expression): Initialize non_constant_p
2716 to NIC_NONE.
2717 (cp_parser_asm_definition): Initialize missing to RT_NONE.
2718 (cp_parser_primary_expression, cp_parser_postfix_expression,
2719 cp_parser_cast_expression, cp_parser_binary_expression,
2720 cp_parser_functional_cast): Fix formatting.
2721
2722 2010-05-25 Shujing Zhao <pearly.zhao@oracle.com>
2723
2724 PR c++/18249
2725 * parser.c: Remove inclusion of dyn-string.h.
2726 (non_integral_constant): New enum.
2727 (name_lookup_error): New enum.
2728 (required_token): New enum.
2729 (cp_parser_required_error): New function.
2730 (cp_parser_require): Change the type of variable token_desc to
2731 required_token and use cp_parser_required_error.
2732 (cp_parser_require_keyword): Likewise.
2733 (cp_parser_error): Use gmsgid as parameter.
2734 (cp_parser_name_lookup_error): Change the type of variable desired to
2735 name_lookup_error and put the diagnostic in the full sentences. Change
2736 caller.
2737 (cp_parser_non_integral_constant_expression): Change the type of the
2738 variable thing to non_integral_constant and put the diagnostics in
2739 full sentences. Change caller.
2740
2741 2010-05-24 Eric Botcazou <ebotcazou@adacore.com>
2742
2743 PR middle-end/44100
2744 * typeck.c (cp_build_unary_op): Fold offsetof-like computations.
2745
2746 2010-05-24 Joseph Myers <joseph@codesourcery.com>
2747
2748 * error.c (cp_diagnostic_starter): Update call to
2749 diagnostic_build_prefix.
2750 (cp_print_error_function,
2751 print_instantiation_partial_context_line): Check show_column flag
2752 in context.
2753
2754 2010-05-24 Jason Merrill <jason@redhat.com>
2755
2756 PR c++/41510
2757 * decl.c (check_initializer): Don't wrap an init-list in a
2758 TREE_LIST.
2759 * init.c (build_aggr_init): Don't assume copy-initialization if
2760 init has CONSTRUCTOR_IS_DIRECT_INIT.
2761 * call.c (build_new_method_call): Sanity check.
2762
2763 2010-05-24 Nathan Froyd <froydnj@codesourcery.com>
2764
2765 * rtti.c (tinfo_base_init): Use build_constructor instead of
2766 build_constructor_from_list. Don't cons a tree node for
2767 returning.
2768 (generic_initializer): Use build_constructor_single instead of
2769 build_constructor_from_list.
2770 (ptr_initializer): Use build_constructor instead of
2771 build_constructor_from_list
2772 (ptm_initializer): Likewise.
2773 (class_initializer): Likewise. Take varargs instead of TRAIL.
2774 (get_pseudo_ti_init): Adjust calls to class_initializer. Use
2775 build_constructor instead of build_constructor_from_list.
2776
2777 2010-05-22 Steven Bosscher <steven@gcc.gnu.org>
2778
2779 * semantics.c: Include bitmap.h.
2780 * Make-lang.in: Update dependencies.
2781
2782 2010-05-22 Jan Hubicka <jh@suse.cz>
2783
2784 * decl2.c (maybe_emit_vtables): Produce same comdat group when outputting
2785 comdat vtables.
2786 (cxx_callgraph_analyze_expr): Remove code marking vtables needed.
2787
2788 2010-05-21 Joseph Myers <joseph@codesourcery.com>
2789
2790 * cxx-pretty-print.c: Correct merge error.
2791
2792 2010-05-21 Joseph Myers <joseph@codesourcery.com>
2793
2794 * error.c: Include tree-diagnostic.h and tree-pretty-print.h.
2795 (cp_print_error_function): Use diagnostic_abstract_origin macro.
2796 (cp_printer): Handle %K here using percent_K_format.
2797 * cxx-pretty-print.c: Include tree-pretty-print.h.
2798 * Make-lang.in (cp/error.o, cp/cxx-pretty-print.o): Update
2799 dependencies.
2800
2801 2010-05-21 Steven Bosscher <steven@gcc.gnu.org>
2802
2803 * error.c, tree.c, typeck2.c, cxx-pretty-print.c, mangle.c:
2804 Clean up redundant includes.
2805
2806 2010-05-20 Paolo Carlini <paolo.carlini@oracle.com>
2807
2808 PR c++/30298
2809 * decl.c (xref_basetypes): Return false in case of ill-formed
2810 redefinition.
2811
2812 2010-05-19 Jason Merrill <jason@redhat.com>
2813
2814 * call.c (reference_binding): Use cp_build_qualified_type_real
2815 and cp_type_quals consistently.
2816 (add_function_candidate): Likewise.
2817 (build_conditional_expr): Likewise.
2818 (convert_like_real): Likewise.
2819 (type_passed_as): Likewise.
2820 * class.c (add_method): Likewise.
2821 (same_signature_p): Likewise.
2822 (layout_class_type): Likewise.
2823 * decl.c (cxx_init_decl_processing): Likewise.
2824 (cp_fname_init): Likewise.
2825 (grokdeclarator): Likewise.
2826 * decl2.c (cp_reconstruct_complex_type): Likewise.
2827 * init.c (build_new_1): Likewise.
2828 * method.c (do_build_copy_constructor): Likewise.
2829 (implicitly_declare_fn): Likewise.
2830 * pt.c (tsubst_aggr_type): Likewise.
2831 (tsubst): Likewise.
2832 * rtti.c (init_rtti_processing): Likewise.
2833 (build_headof): Likewise.
2834 (build_dynamic_cast_1): Likewise.
2835 (tinfo_base_init): Likewise.
2836 (emit_support_tinfos): Likewise.
2837 * semantics.c (capture_decltype): Likewise.
2838 * tree.c (cv_unqualified): Likewise.
2839 * typeck.c (composite_pointer_type): Likewise.
2840 (string_conv_p): Likewise.
2841
2842 * mangle.c (write_CV_qualifiers_for_type): Tweak.
2843
2844 * call.c (initialize_reference): Use CP_TYPE_CONST_P.
2845 * decl.c (start_decl): Likewise.
2846 * semantics.c (finish_compound_literal): Likewise.
2847 * typeck.c (check_return_expr): Use CP_TYPE_VOLATILE_P.
2848 (cp_type_readonly): Remove.
2849 * cp-tree.h: Remove declaration.
2850
2851 * typeck.c (merge_types): Preserve memfn quals.
2852
2853 * decl.c (grokdeclarator): Don't check quals on fn type.
2854 * typeck.c (cp_apply_type_quals_to_decl): Likewise.
2855 * tree.c (cp_build_qualified_type_real): Simplify qualifier checking.
2856
2857 PR c++/44193
2858 * typeck.c (type_memfn_quals): New fn.
2859 (apply_memfn_quals): New fn.
2860 (cp_type_quals): Return TYPE_UNQUALIFIED for FUNCTION_TYPE.
2861 (cp_type_readonly): Use cp_type_quals.
2862 * cp-tree.h: Add declarations.
2863 * tree.c (cp_build_qualified_type_real): Don't set, but do
2864 preserve, quals on FUNCTION_TYPE.
2865 (strip_typedefs): Use apply_memfn_quals and type_memfn_quals.
2866 * decl.c (build_ptrmem_type): Likewise.
2867 (grokdeclarator): Likewise.
2868 (static_fn_type): Likewise.
2869 * decl2.c (change_return_type): Likewise.
2870 (cp_reconstruct_complex_type): Likewise.
2871 * pt.c (tsubst_function_type): Likewise.
2872 (unify): Likewise.
2873 (tsubst): Likewise. Drop special FUNCTION_TYPE substitution code.
2874
2875 2010-05-18 Nathan Froyd <froydnj@codesourcery.com>
2876
2877 * tree.c (build_min_non_dep_call_vec): Update comment.
2878
2879 2010-05-17 Jason Merrill <jason@redhat.com>
2880
2881 * call.c (struct z_candidate): Add explicit_targs field.
2882 (add_template_candidate_real): Set it.
2883 (build_over_call): Use it to control init-list warning.
2884
2885 PR c++/44157
2886 * call.c (build_over_call): Limit init-list deduction warning to
2887 cases where the argument is actually an init-list.
2888
2889 PR c++/44158
2890 * call.c (build_over_call): Don't do bitwise copy for move ctor.
2891
2892 2010-05-17 Dodji Seketeli <dodji@redhat.com>
2893 Jason Merrill <jason@redhat.com>
2894
2895 PR c++/44108
2896 * decl.c (compute_array_index_type): Call mark_rvalue_use.
2897
2898 2010-05-15 Jason Merrill <jason@redhat.com>
2899
2900 * cp-tree.h (TYPE_NOEXCEPT_P): New macro.
2901 * except.c (begin_eh_spec_block): Use MUST_NOT_THROW_EXPR if
2902 TYPE_NOEXCEPT_P.
2903 (finish_eh_spec_block): Adjust.
2904
2905 2010-05-15 Jakub Jelinek <jakub@redhat.com>
2906
2907 PR c++/44148
2908 * pt.c (tsubst): Unshare template argument.
2909
2910 2010-05-15 Steven Bosscher <steven@gcc.gnu.org>
2911
2912 * decl.c: Include tree-iterator.h, as fixup for tree-inline.h changes.
2913 * Make-lang.in: Fix dependencies accordingly.
2914
2915 2010-05-14 Jason Merrill <jason@redhat.com>
2916
2917 C++ DR 475
2918 * except.c (build_throw): Simplify, adjust for DR 475.
2919
2920 PR c++/44127
2921 * except.c (dtor_nothrow): Return nonzero for type with
2922 trivial destructor.
2923
2924 PR c++/44127
2925 * cp-gimplify.c (gimplify_must_not_throw_expr): Use
2926 gimple_build_eh_must_not_throw.
2927
2928 2010-05-14 Martin Jambor <mjambor@suse.cz>
2929
2930 * cp-lang.c (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove both its undef
2931 and define.
2932
2933 2010-05-14 Jonathan Wakely <jwakely.gcc@gmail.com>
2934
2935 * call.c (build_new_method_call): Change warning text.
2936 * typeck2.c (build_functional_cast): Change error text.
2937
2938 2010-05-14 Shujing Zhao <pearly.zhao@oracle.com>
2939
2940 PR c++/30566
2941 * name-lookup.c (pushdecl_maybe_friend): Avoid the warnings about
2942 shadowing the outer parameter or variables by the declaration of
2943 nested function in nested structure or class. Warn the shadowing by
2944 the declaration of nested lambda expression.
2945
2946 2010-05-13 Jason Merrill <jason@redhat.com>
2947
2948 * typeck.c (cp_build_array_ref): Factor out from...
2949 (build_array_ref): ...here. Drop complain parm.
2950 (build_new_op): Adjust.
2951 * class.c (build_vtbl_ref_1): Adjust.
2952 * decl2.c (grok_array_decl): Adjust.
2953 * cp-tree.h: Adjust prototypes.
2954
2955 2010-05-13 Jan Hubicka <jh@suse.cz>
2956
2957 * decl.c (cp_finish_decl): Do not worry about used attribute.
2958
2959 2010-05-12 Jason Merrill <jason@redhat.com>
2960
2961 * typeck.c (build_array_ref): Take complain parm.
2962 * cp-tree.h: Add it to prototype.
2963 * call.c (build_new_op): Pass it.
2964 * class.c (build_vtbl_ref): Pass it.
2965 * decl2.c (grok_array_decl): Pass it.
2966
2967 PR bootstrap/44048
2968 PR target/44099
2969 * cp-tree.def (NULLPTR_TYPE): Remove.
2970 * cp-tree.h (NULLPTR_TYPE_P): New.
2971 (SCALAR_TYPE_P): Use it.
2972 (nullptr_type_node): New.
2973 (cp_tree_index): Add CPTI_NULLPTR_TYPE.
2974 * decl.c (cxx_init_decl_processing): Call record_builtin_type on
2975 nullptr_type_node.
2976 * cvt.c (ocp_convert): Use NULLPTR_TYPE_P instead of NULLPTR_TYPE.
2977 * cxx-pretty-print.c (pp_cxx_constant): Likewise.
2978 * error.c (dump_type, dump_type_prefix, dump_type_suffix): Likewise.
2979 * mangle.c (write_type): Likewise.
2980 * name-lookup.c (arg_assoc_type): Likewise.
2981 * typeck.c (build_reinterpret_cast_1): Likewise.
2982 * rtti.c (typeinfo_in_lib_p): Likewise.
2983 (emit_support_tinfos): Remove local nullptr_type_node.
2984
2985 * cp-tree.h (UNKNOWN_TYPE): Remove.
2986 * decl.c (cxx_init_decl_processing): Use LANG_TYPE instead.
2987 * error.c (dumy_type, dump_type_prefix, dump_type_suffix): Likewise.
2988 * typeck2.c (cxx_incomplete_type_diagnostic): Likewise.
2989 * class.c (instantiate_type): Check unknown_type_node rather than
2990 UNKNOWN_TYPE.
2991 * name-lookup.c (maybe_push_decl): Likewise.
2992 * rtti.c (get_tinfo_decl_dynamic): Likewise.
2993 (get_typeid): Likewise.
2994 * semantics.c (finish_offsetof): Likewise.
2995
2996 PR c++/20669
2997 * call.c (add_template_candidate_real): If deduction fails, still
2998 add the template as a non-viable candidate.
2999 (equal_functions): Handle template candidates.
3000 (print_z_candidate): Likewise.
3001 (print_z_candidates): Likewise.
3002 (build_new_function_call): Likewise.
3003
3004 * cp-tree.h (LOOKUP_LIST_ONLY): New.
3005 * call.c (add_candidates): Enforce it.
3006 (build_new_method_call): Try non-list ctor if no viable list ctor.
3007 (build_user_type_conversion_1): Likewise.
3008
3009 * call.c (add_candidates): Distinguish between type(x) and
3010 x.operator type().
3011 (convert_class_to_reference): Set LOOKUP_NO_CONVERSION.
3012 (build_new_method_call): Give better error for conversion op.
3013
3014 * call.c (add_candidates): Add first_arg and return_type parms.
3015 Add special constructor/conversion op handling.
3016 (convert_class_to_reference): Use it.
3017 (build_user_type_conversion_1): Likewise.
3018 (build_op_call): Likewise.
3019 (build_new_method_call): Likewise.
3020 (build_new_op): Adjust.
3021 (perform_overload_resolution): Adjust.
3022
3023 2010-05-11 Paolo Carlini <paolo.carlini@oracle.com>
3024
3025 PR c++/34272
3026 PR c++/43630
3027 PR c++/34491
3028 * pt.c (process_partial_specialization): Return error_mark_node
3029 in case of unused template parameters in partial specialization.
3030
3031 2010-05-11 Jakub Jelinek <jakub@redhat.com>
3032
3033 PR c++/44062
3034 * semantics.c (finish_expr_stmt): Don't call mark_exp_read here...
3035 * cvt.c (convert_to_void): ... but here. If expr is a COMPOUND_EXPR,
3036 look at its second operand.
3037
3038 2010-05-10 Jason Merrill <jason@redhat.com>
3039
3040 PR c++/44017
3041 * semantics.c (baselink_for_fns): Revert earlier change.
3042
3043 PR c++/44045
3044 * typeck.c (cp_build_modify_expr): Complain about assignment to
3045 array from init list.
3046
3047 2010-05-10 Fabien Chêne <fabien.chene@gmail.com>
3048
3049 PR c++/43719
3050 * decl.c (check_initializer): strip array type before checking for
3051 uninitialized const or ref members.
3052
3053 2010-05-07 Fabien Chêne <fabien.chene@gmail.com>
3054
3055 PR c++/43951
3056 * init.c (diagnose_uninitialized_cst_or_ref_member_1): Returns the
3057 error count. Emit errors only if compain is true.
3058 (build_new_1): Do not return error_mark_node if
3059 diagnose_uninitialized_cst_or_ref_member_1 does not diagnose any
3060 errors. Delay the check for user-provided constructor.
3061 (perform_member_init): Adjust.
3062 * cp-tree.h (diagnose_uninitialized_cst_or_ref_member): Change the
3063 prototype.
3064
3065 2010-05-06 Magnus Fromreide <magfr@lysator.liu.se>
3066 Jason Merrill <jason@redhat.com>
3067
3068 Add support for C++0x nullptr.
3069 * cp-tree.def: Add NULLPTR_TYPE.
3070 * cp-tree.h: Add nullptr_node.
3071 (cp_tree_index): Add CPTI_NULLPTR.
3072 (SCALAR_TYPE_P): Add NULLPTR_TYPE.
3073 * call.c (null_ptr_cst_p): Handle nullptr.
3074 (standard_conversion): Likewise.
3075 (convert_arg_to_ellipsis): Likewise.
3076 * mangle.c (write_type): Likewise.
3077 * name-lookup.c (arg_assoc_type): Likewise.
3078 * parser.c (cp_parser_primary_expression): Likewise.
3079 * typeck.c (cp_build_binary_op): Likewise.
3080 (build_reinterpret_cast_1): Likewise.
3081 * error.c (dump_type): Likewise.
3082 (dump_type_prefix, dump_type_suffix): Likewise.
3083 * decl.c (cxx_init_decl_processing): Likewise.
3084 * cxx-pretty-print.c (pp_cxx_constant): Likewise.
3085 * cvt.c (ocp_convert): Likewise.
3086 * rtti.c (typeinfo_in_lib_p, emit_support_tinfos): Put
3087 nullptr_t tinfo in libsupc++.
3088
3089 2010-05-06 Jason Merrill <jason@redhat.com>
3090
3091 * semantics.c (simplify_aggr_init_expr): Use INIT_EXPR.
3092
3093 2010-04-22 Jakub Jelinek <jakub@redhat.com>
3094 Dodji Seketeli <dodji@redhat.com>
3095
3096 PR c/18624
3097 * cp-tree.h (mark_exp_read, rvalue_use, lvalue_use, type_use):
3098 Declare ...
3099 * expr.c (mark_exp_read, rvalue_use, lvalue_use, type_use): ... new fns.
3100 * typeck.c (cxx_sizeof_expr, cxx_alignof_expr): Call type_use.
3101 (decay_conversion, perform_integral_promotions): Call rvalue_use.
3102 (cp_build_unary_op): Call lvalue_use.
3103 * decl.c (unused_but_set_errorcount): New variable.
3104 (poplevel): Issue -Wunused-but-set-variable diagnostics.
3105 (duplicate_decls): Merge DECL_READ_P flags.
3106 (start_cleanup_fn): Set DECL_READ_P flag.
3107 (finish_function): Issue -Wunused-but-set-parameter diagnostics.
3108 * tree.c (rvalue): Call rvalue_use.
3109 * pt.c (convert_nontype_argument): Likewise.
3110 * semantics.c (finish_expr_stmt, finish_asm_stmt, finish_typeof,
3111 finish_decltype_type): Likewise.
3112 * call.c (convert_like_real) <ck_identity, ck_user>: Call rvalue use.
3113 (build_x_va_arg, build_new_method_call, build_over_call): Call lvalue_use
3114 or rvalue_use depending on the expr.
3115 * init.c (build_new, build_delete): Likewise.
3116 * rtti.c (build_typeid, build_dynamic_cast_1): Likewise.
3117
3118 2010-05-05 Jason Merrill <jason@redhat.com>
3119
3120 PR c++/43787
3121 * cp-gimplify.c (cp_gimplify_expr): Remove copies of empty classes.
3122 * call.c (build_over_call): Don't try to avoid INIT_EXPR copies here.
3123
3124 2010-05-04 Paolo Carlini <paolo.carlini@oracle.com>
3125
3126 PR c++/43028
3127 * pt.c (unify): Check each elt for error_mark_node.
3128
3129 2010-05-04 Jason Merrill <jason@redhat.com>
3130
3131 PR c++/38064
3132 * typeck.c (cp_build_binary_op): Allow enums for <> as well.
3133
3134 2010-05-04 Paolo Carlini <paolo.carlini@oracle.com>
3135
3136 PR c++/43705
3137 * call.c (build_new_method_call): Return error_mark_node if fns is
3138 NULL_TREE.
3139
3140 2010-05-03 Dodji Seketeli <dodji@redhat.com>
3141
3142 PR c++/43953
3143 * pt.c (most_specialized_class): Pretend we are processing
3144 a template decl during the call to coerce_template_parms.
3145
3146 2010-05-03 Jason Merrill <jason@redhat.com>
3147
3148 PR c++/42810
3149 PR c++/43680
3150 * decl.c (finish_enum): Use the TYPE_MIN_VALUE and TYPE_MAX_VALUE
3151 from the selected underlying type unless -fstrict-enums. Set
3152 ENUM_UNDERLYING_TYPE to have the restricted range.
3153 * cvt.c (type_promotes_to): Use ENUM_UNDERLYING_TYPE.
3154 * class.c (check_bitfield_decl): Likewise.
3155
3156 2010-05-01 H.J. Lu <hongjiu.lu@intel.com>
3157
3158 PR c++/43951
3159 * init.c (build_new_1): Revert the accidental checkin in
3160 revision 158918.
3161
3162 2010-04-30 Jason Merrill <jason@redhat.com>
3163
3164 PR c++/43868
3165 * cxx-pretty-print.c (pp_cxx_decl_specifier_seq): Move pmf handling...
3166 (pp_cxx_type_specifier_seq): ...here.
3167
3168 2010-04-30 Steven Bosscher <steven@gcc.gnu.org>
3169
3170 * optimize.c, parser.c, mangle.c, cp-tree.h: Do not include varray.h.
3171 * Make-lang.in: Don't include varray.h dependency in CXX_TREE_H.
3172
3173 2010-04-30 Shujing Zhao <pearly.zhao@oracle.com>
3174
3175 PR c++/43779
3176 * typeck.c (warn_args_num): New function.
3177 (convert_arguments): Use warn_args_num to print the diagnostic
3178 messages.
3179
3180 2010-04-29 Fabien Chêne <fabien.chene@gmail.com>
3181
3182 PR c++/43890
3183 * init.c (diagnose_uninitialized_cst_or_ref_member): check for
3184 user-provided constructor while recursing.
3185
3186 2010-04-28 Manuel López-Ibáñez <manu@gcc.gnu.org>
3187
3188 PR c++/9335
3189 * error.c (print_instantiation_partial_context_line): Handle
3190 recursive instantiation.
3191 (print_instantiation_partial_context): Likewise.
3192
3193 2010-04-27 Jason Merrill <jason@redhat.com>
3194
3195 * init.c (perform_member_init): Check CLASS_TYPE_P.
3196
3197 2010-04-27 Fabien Chêne <fabien.chene@gmail.com>
3198
3199 PR c++/29043
3200 * init.c (perform_member_init): check for uninitialized const or
3201 reference members, including array types.
3202
3203 2010-04-24 Jason Merrill <jason@redhat.com>
3204
3205 * tree.c (get_fns): Split out from get_first_fn.
3206 * cp-tree.h: Declare it.
3207 * search.c (shared_member_p): Use it.
3208 * semantics.c (finish_qualified_id_expr): Simplify.
3209 (finish_id_expression): Simplify.
3210
3211 * semantics.c (finish_non_static_data_member): Call maybe_dummy_object
3212 whenever object is NULL_TREE. Don't do 'this' capture here.
3213 (finish_qualified_id_expr): Pass NULL_TREE.
3214 (finish_id_expression): Likewise.
3215 (lambda_expr_this_capture): Likewise.
3216
3217 * semantics.c (finish_qualified_id_expr): Use maybe_dummy_object
3218 rather than checking current_class_ref directly.
3219 (finish_call_expr): Likewise.
3220
3221 PR c++/43856
3222 * name-lookup.c (qualify_lookup): Disqualify lambda op().
3223 * class.c (current_nonlambda_class_type): New fn.
3224 * semantics.c (nonlambda_method_basetype): New.
3225 * cp-tree.h: Declare them.
3226 * tree.c (maybe_dummy_object): Handle implicit 'this' capture.
3227
3228 * semantics.c (baselink_for_fns): Correct BASELINK_BINFO.
3229
3230 PR c++/43875
3231 * semantics.c (lambda_return_type): Complain about
3232 braced-init-list.
3233
3234 PR c++/43790
3235 * tree.c (cv_unqualified): Handle error_mark_node.
3236
3237 PR c++/41468
3238 * call.c (convert_like_real) [ck_ambig]: Just return error_mark_node
3239 if we don't want errors.
3240
3241 PR c++/41468
3242 * class.c (convert_to_base): Add complain parameter. Pass
3243 ba_quiet to lookup_base if we don't want errors.
3244 (build_vfield_ref): Pass complain to convert_to_base.
3245 * call.c (convert_like_real): Likewise.
3246 (initialize_reference): Likewise.
3247 (perform_direct_initialization_if_possible): Pass complain to
3248 convert_like_real.
3249 * cp-tree.h: Adjust.
3250
3251 2010-04-27 Fabien Chêne <fabien.chene@gmail.com>
3252 Jason Merrill <jason@redhat.com>
3253
3254 PR c++/42844
3255 * decl.c (check_for_uninitialized_const_var): Handle classes that need
3256 constructing, too.
3257 (check_initializer): Call it for classes that need constructing, too.
3258 * class.c (in_class_defaulted_default_constructor): New.
3259 * cp-tree.h: Declare it.
3260
3261 2010-04-20 Jason Merrill <jason@redhat.com>
3262
3263 PR c++/9335
3264 * init.c (constant_value_1): Treat error_mark_node as a constant
3265 if DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P is set.
3266 * cvt.c (ocp_convert): Handle getting error_mark_node from
3267 integral_constant_value.
3268 * decl.c (compute_array_index_type): Likewise.
3269
3270 2010-04-20 Dodji Seketeli <dodji@redhat.com>
3271
3272 PR c++/43800
3273 PR c++/43704
3274 * typeck.c (incompatible_dependent_types_p): If one of the
3275 compared types if not a typedef then honour their main variant
3276 equivalence.
3277
3278 2010-04-20 Jakub Jelinek <jakub@redhat.com>
3279
3280 * cp-tree.h (TYPE_REF_IS_RVALUE): Remove.
3281
3282 2010-04-19 Dodji Seketeli <dodji@redhat.com>
3283
3284 PR c++/43704
3285 * typeck.c (structural_comptypes): Test dependent typedefs
3286 incompatibility before testing for their main variant based
3287 equivalence.
3288
3289 2010-04-19 Jakub Jelinek <jakub@redhat.com>
3290
3291 * cp-tree.h (SCOPED_ENUM_P, UNSCOPED_ENUM_P, SET_SCOPED_ENUM_P): Use
3292 ENUM_IS_SCOPED bit instead of TYPE_LANG_FLAG_5.
3293
3294 2010-04-18 Eric Botcazou <ebotcazou@adacore.com>
3295
3296 * decl.c (cxx_init_decl_processing): Remove second argument in call to
3297 build_common_tree_nodes.
3298
3299 2010-04-14 Jason Merrill <jason@redhat.com>
3300
3301 PR c++/36625
3302 * parser.c (cp_parser_parenthesized_expression_list): Change
3303 is_attribute_list parm to int to indicate whether or not to
3304 handle initial identifier specially.
3305 (cp_parser_attribute_list): Use attribute_takes_identifier_p.
3306
3307 2010-04-13 Jason Merrill <jason@redhat.com>
3308
3309 * call.c (type_decays_to): Check MAYBE_CLASS_TYPE_P instead of
3310 CLASS_TYPE_P.
3311 * parser.c (cp_parser_lambda_expression): Complain about lambda in
3312 unevaluated context.
3313 * pt.c (iterative_hash_template_arg): Don't crash on lambda.
3314
3315 2010-04-12 Jason Merrill <jason@redhat.com>
3316
3317 PR c++/43641
3318 * semantics.c (maybe_add_lambda_conv_op): Use build_call_a and tweak
3319 return value directly.
3320
3321 * call.c (type_decays_to): Call cv_unqualified for non-class type.
3322
3323 2010-04-12 Fabien Chene <fabien.chene@gmail.com>
3324
3325 PR c++/25811
3326 * cp-tree.h (diagnose_uninitialized_cst_or_ref_member): Declare.
3327 * init.c (build_new_1): Check for uninitialized const members and
3328 uninitialized reference members, when using new without
3329 new-initializer. Call diagnose_uninitialized_cst_or_ref_member.
3330 (diagnose_uninitialized_cst_or_ref_member): Define, call
3331 diagnose_uninitialized_cst_or_ref_member_1.
3332 (diagnose_uninitialized_cst_or_ref_member_1): New function.
3333
3334 2010-04-12 Richard Guenther <rguenther@suse.de>
3335
3336 PR c++/43611
3337 * semantics.c (expand_or_defer_fn_1): Do not keep extern
3338 template inline functions.
3339
3340 2010-04-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
3341
3342 PR c++/28584
3343 * typeck.c (cp_build_c_cast): Warn for casting integer to larger
3344 pointer type.
3345
3346 2010-04-07 Jason Merrill <jason@redhat.com>
3347
3348 PR c++/43016
3349 * decl.c (start_preparsed_function): Do defer nested functions.
3350
3351 PR c++/11094, DR 408
3352 * cp-tree.h (VAR_HAD_UNKNOWN_BOUND, SET_VAR_HAD_UNKNOWN_BOUND): New.
3353 * decl2.c (finish_static_data_member_decl): Set it.
3354 * decl.c (duplicate_decls): Propagate it.
3355 * pt.c (tsubst_decl): Don't substitute the domain of an array
3356 VAR_DECL if it's set.
3357 (regenerate_decl_from_template): Substitute it here.
3358 (type_dependent_expression_p): Return true if it's set.
3359 * semantics.c (finish_decltype_type): Instantiate such a variable.
3360 * typeck.c (cxx_sizeof_expr): Likewise.
3361 (strip_array_domain): New.
3362
3363 PR c++/43145
3364 * name-lookup.c (current_decl_namespace): Non-static.
3365 (pop_nested_namespace): Sanity check.
3366 * cp-tree.h: Declare current_decl_namespace.
3367 * decl.c (grokvardecl): Use it instead of current_namespace.
3368 (grokfndecl): Likewise.
3369
3370 PR c++/38392
3371 * pt.c (tsubst_friend_function): Instatiate a friend that has already
3372 been used.
3373
3374 * pt.c (print_template_statistics): New.
3375 * cp-tree.h: Declare it.
3376 * tree.c (cxx_print_statistics): Call it.
3377
3378 PR c++/41970
3379 * decl.c (grokvardecl): Tweak warning message.
3380 (grokfndecl): Likewise.
3381
3382 2010-04-07 Dodji Seketeli <dodji@redhat.com>
3383
3384 PR c++/42697
3385 *pt.c (tsubst_decl): Get the arguments of a specialization from
3386 the specialization template, not from the most general template.
3387
3388 2010-04-07 Dodji Seketeli <dodji@redhat.com>
3389
3390 PR c++/40239
3391 * typeck2.c (process_init_constructor_record):
3392 value-initialize members that are are not explicitely
3393 initialized.
3394
3395 2010-04-07 Jie Zhang <jie@codesourcery.com>
3396
3397 PR c++/42556
3398 * typeck2.c (split_nonconstant_init_1): Drop empty CONSTRUCTOR
3399 when all of its elements are non-constant and have been split out.
3400
3401 2010-04-06 Taras Glek <taras@mozilla.com>
3402 Jason Merrill <jason@redhat.com>
3403
3404 * parser.c (cp_parser_class_specifier): Set class location to that
3405 of IDENTIFIER_NODE instead of '{' when possible.
3406 * semantics.c (begin_class_definition): Do not overide locations
3407 with less precise ones.
3408
3409 2010-04-06 Jason Merrill <jason@redhat.com>
3410
3411 PR c++/43648
3412 * name-lookup.c (constructor_name_p): Allow X::~X even for typedefs.
3413
3414 PR c++/43621
3415 * pt.c (maybe_update_decl_type): Check the return value from
3416 push_scope.
3417
3418 2010-04-01 Jason Merrill <jason@redhat.com>
3419
3420 * decl.c (next_initializable_field): No longer static.
3421 * cp-tree.h: Declare it.
3422 * call.c (build_aggr_conv): Fail if there are more initializers
3423 than initializable fields.
3424
3425 * semantics.c (maybe_add_lambda_conv_op): Use null_pointer_node
3426 instead of void_zero_node.
3427
3428 2010-03-31 Dodji Seketeli <dodji@redhat.com>
3429
3430 PR c++/43558
3431 * cp-tree.h (TEMPLATE_TYPE_PARM_SIBLING_PARMS): New accessor macro.
3432 * pt.c (end_template_parm_list): Store sibling template parms of
3433 each TEMPLATE_TYPE_PARMs into its TEMPLATE_TYPE_PARM_SIBLING_PARMS.
3434 (push_template_decl_real): Don't store the containing template decl
3435 into the DECL_CONTEXT of TEMPLATE_TYPE_PARMs anymore.
3436 * typeck.c (get_template_parms_of_dependent_type): Get sibling parms
3437 of a TEMPLATE_TYPE_PARM from TEMPLATE_TYPE_PARM_SIBLING_PARMS.
3438 Simplify the logic.
3439
3440 2010-03-30 Jason Merrill <jason@redhat.com>
3441
3442 PR c++/43076
3443 * pt.c (push_template_decl_real): Deal better with running out of
3444 scopes before running out of template parms.
3445
3446 PR c++/41185
3447 PR c++/41786
3448 * parser.c (cp_parser_direct_declarator): Don't allow VLAs in
3449 function parameter context. Don't print an error if parsing
3450 tentatively.
3451
3452 PR c++/43559
3453 * pt.c (more_specialized_fn): Don't control cv-qualifier check
3454 with same_type_p.
3455
3456 2010-03-26 Jason Merrill <jason@redhat.com>
3457
3458 PR c++/43509
3459 * parser.c (cp_parser_qualifying_entity): Do accept enum names in
3460 c++0x mode, but not other type-names.
3461
3462 2010-03-26 Dodji Seketeli <dodji@redhat.com>
3463
3464 PR c++/43327
3465 * pt.c (add_to_template_args): Support NULL ARGS;
3466 (most_specialized_class): call coerce_template_parms on
3467 template arguments passed to get_class_bindings. Use
3468 add_to_template_args.
3469 (unify): Handle VAR_DECLs.
3470
3471 2010-03-26 Dodji Seketeli <dodji@redhat.com>
3472
3473 * cp-tree.h (get_template_parms_at_level): Change unsigned parm
3474 into int.
3475 * pt.c (get_template_parms_at_level): Adjust.
3476
3477 2010-03-25 Dodji Seketeli <dodji@redhat.com>
3478
3479 PR c++/43206
3480 * cp-tree.h (get_template_parms_at_level): Declare ...
3481 * pt.c (get_template_parms_at_level): ... new function.
3482 * typeck.c (get_template_parms_of_dependent_type): If a template
3483 type parm's DECL_CONTEXT isn't yet set, get its siblings from
3484 current_template_parms. Use get_template_parms_at_level. Remove
3485 useless test.
3486 (incompatible_dependent_types_p): If we get empty parms from just one
3487 of the template type parms we are comparing then the template parms are
3488 incompatible.
3489
3490 2010-03-24 Jason Merrill <jason@redhat.com>
3491
3492 PR c++/43502
3493 * parser.c (make_declarator): Initialize id_loc.
3494 (cp_parser_lambda_declarator_opt): And set it.
3495
3496 2010-03-23 Jason Merrill <jason@redhat.com>
3497
3498 Make lambda conversion op and op() non-static.
3499 * semantics.c (maybe_add_lambda_conv_op): Make non-static.
3500 Also add the thunk function returned by the conversion op.
3501 Mark the conversion deleted if the op() is variadic.
3502 * decl2.c (mark_used): Give helpful message about deleted conversion.
3503 * parser.c (cp_parser_lambda_declarator_opt): Don't make op() static.
3504 * semantics.c (finish_this_expr): Adjust.
3505 * mangle.c (write_closure_type_name): Adjust.
3506 * decl.c (grok_op_properties): Don't allow it.
3507 * call.c (build_user_type_conversion_1): No static conversion ops.
3508 (build_op_call): Or op().
3509
3510 * decl2.c (change_return_type): Fix 'this' quals.
3511
3512 2010-03-22 Jason Merrill <jason@redhat.com>
3513
3514 PR c++/43333
3515 * tree.c (pod_type_p): Use old meaning in C++98 mode.
3516
3517 PR c++/43281
3518 * pt.c (contains_auto_r): New fn.
3519 (do_auto_deduction): Use it.
3520 (tsubst): Don't look at TREE_TYPE of a TEMPLATE_TYPE_PARM.
3521
3522 2010-03-20 Simon Martin <simartin@users.sourceforge.net>
3523
3524 PR c++/43081:
3525 * decl2.c (grokfield): Handle invalid initializers for member
3526 functions.
3527
3528 2010-03-20 Dodji Seketeli <dodji@redhat.com>
3529
3530 PR c++/43375
3531 * method.c (make_alias_for): Avoid crashing when DECL_LANG_SPECIFIC
3532 is NULL.
3533 * decl2.c (vague_linkage_p): Likewise.
3534
3535 2010-03-18 Paolo Carlini <paolo.carlini@oracle.com>
3536
3537 PR c++/43418
3538 * parser.c (cp_parser_for_init_statement): Use NULL_TREE, not
3539 false, in the cp_parser_expression_statement call.
3540
3541 2010-03-05 Jason Merrill <jason@redhat.com>
3542
3543 * mangle.c (mangle_decl): Give name collision error even without
3544 ASM_OUTPUT_DEF.
3545
3546 2010-03-04 Marco Poletti <poletti.marco@gmail.com>
3547
3548 * pt.c (process_partial_specialization): Use error_n instead of
3549 error.
3550
3551 2010-03-03 Jason Merrill <jason@redhat.com>
3552
3553 PR c++/12909
3554 * mangle.c (mangle_decl): Handle VAR_DECL, too.
3555
3556 2010-03-03 Jason Merrill <jason@redhat.com>
3557
3558 PR c++/12909
3559 * mangle.c: Include cgraph.h.
3560 (mangle_decl): If the mangled name will change in a later
3561 ABI version, make the later mangled name an alias.
3562 * method.c (make_alias_for): Copy DECL_ARGUMENTS.
3563 * Make-lang.in (mangle.o): Depend on cgraph.h.
3564 * method.c (make_alias_for): Handle VAR_DECL, too.
3565 * decl2.c (vague_linkage_p): Rename from vague_linkage_fn_p.
3566 * tree.c (no_linkage_check): Adjust.
3567 * decl.c (maybe_commonize_var): Adjust.
3568 * cp-tree.h: Adjust.
3569
3570 2010-03-01 Marco Poletti <poletti.marco@gmail.com>
3571
3572 * pt.c (redeclare_class_template): Use error_n and inform_n.
3573
3574 2010-02-27 Mark Mitchell <mark@codesourcery.com>
3575
3576 PR c++/42748
3577 * cp-tree.h (push_tinst_level): Declare.
3578 (pop_tinst_level): Likewise.
3579 * pt.c (push_tinst_level): Give it external linkage.
3580 (pop_tinst_level): Likewise.
3581 * mangle.c (mangle_decl_string): Set the source location to that
3582 of the decl while mangling.
3583
3584 2010-02-27 Simon Martin <simartin@users.sourceforge.net>
3585
3586 PR c++/42054
3587 * pt.c (redeclare_class_template): Return false if there are erroneous
3588 template parameters.
3589
3590 2010-02-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
3591
3592 * pt.c (push_tinst_level): Replace -ftemplate-depth- with
3593 -ftemplate-depth=.
3594
3595 2010-02-24 Jason Merrill <jason@redhat.com>
3596
3597 PR c++/12909
3598 * mangle.c (write_type): Give -Wabi warning for old vector mangling.
3599
3600 * class.c (layout_class_type): Don't give -Wabi warning for a bug
3601 in a previous ABI version.
3602
3603 2010-02-23 Jason Merrill <jason@redhat.com>
3604
3605 PR c++/43143
3606 * typeck2.c (digest_init_r): Accept value init of array.
3607
3608 2010-02-22 Manuel López-Ibáñez <manu@gcc.gnu.org>
3609
3610 PR c++/43126
3611 * typeck.c (convert_arguments): Update error message.
3612
3613 2010-02-22 Mike Stump <mikestump@comcast.net>
3614
3615 PR c++/43125
3616 * decl.c (duplicate_decls): Merge DECL_PRESERVE_P.
3617
3618 2010-02-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
3619
3620 PR c++/23510
3621 * error.c (print_instantiation_partial_context_line): New.
3622 (print_instantiation_partial_context): Print at most 12 contexts,
3623 skip the rest with a message.
3624
3625 2010-02-21 Dodji Seketeli <dodji@redhat.com>
3626
3627 PR c++/42824
3628 * pt.c (lookup_template_class): Better support of specialization
3629 of member of class template implicit instantiation.
3630
3631 2010-02-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
3632
3633 PR c++/35669
3634 * call.c (conversion_null_warnings): Replace -Wconversion with
3635 -Wconversion-null.
3636 * cvt.c (build_expr_type_conversion): Likewise.
3637
3638 2010-02-18 Jason Merrill <jason@redhat.com>
3639
3640 PR c++/42837
3641 * class.c (create_vtable_ptr): Set DECL_PACKED if type is packed.
3642
3643 PR c++/43108
3644 * typeck.c (cp_build_binary_op): Adapt mixed complex/non handling from
3645 C build_binary_op.
3646 * cp-tree.h (WANT_VECTOR_OR_COMPLEX): Rename from WANT_VECTOR.
3647 * cvt.c (build_expr_type_conversion): Allow COMPLEX_TYPE.
3648
3649 PR c++/43070
3650 * semantics.c (finish_goto_stmt): Don't call decay_conversion.
3651
3652 PR c++/26261
3653 PR c++/43101
3654 * pt.c (tsubst_qualified_id): Do normal lookup in non-dependent scope.
3655 (maybe_update_decl_type): New fn.
3656 * parser.c (cp_parser_init_declarator): Use it.
3657
3658 PR c++/43109
3659 * semantics.c (begin_class_definition): Don't crash on unnamed ns.
3660
3661 2010-02-17 Jason Merrill <jason@redhat.com>
3662
3663 PR c++/43075
3664 * call.c (build_over_call): Don't create zero-sized assignments.
3665 * cp-gimplify.c (cp_genericize_r): Don't remove them here.
3666 * cp-objcp-common.c (cp_expr_size): Remove.
3667 * cp-tree.h: Remove prototype.
3668
3669 PR c++/43069
3670 * name-lookup.c (set_decl_namespace): Don't copy DECL_CONTEXT if the
3671 decl we looked up doesn't match.
3672
3673 PR c++/43093
3674 * cp-gimplify.c (cp_gimplify_expr) [INIT_EXPR]: Return if we don't
3675 have an INIT_EXPR anymore.
3676
3677 PR c++/43079
3678 * pt.c (convert_nontype_argument): Change assert to test.
3679
3680 2010-02-16 Jason Merrill <jason@redhat.com>
3681
3682 * cp-gimplify.c (cp_gimplify_expr): Fix error recovery.
3683
3684 PR c++/43031
3685 * cp-gimplify.c (cp_gimplify_expr) [MODIFY_EXPR]: Use
3686 VIEW_CONVERT_EXPR for conversions between structural equality types
3687 that the back end can't tell are the same.
3688
3689 PR c++/43036
3690 * tree.c (build_cplus_array_type): Set TYPE_MAIN_VARIANT to strip
3691 cv-quals from element here.
3692 (cp_build_qualified_type_real): Not here. Preserve typedef name.
3693
3694 2010-02-14 Jason Merrill <jason@redhat.com>
3695
3696 PR c++/41997
3697 * semantics.c (finish_compound_literal): Use
3698 cp_apply_type_quals_to_decl when creating a static variable.
3699
3700 2010-02-12 Jason Merrill <jason@redhat.com>
3701
3702 PR c++/43024
3703 * name-lookup.h (current_binding_level): Check for null
3704 cp_function_chain.
3705
3706 2010-02-12 Jason Merrill <jason@redhat.com>
3707
3708 PR c++/43054
3709 * tree.c (cp_tree_equal): Correct CALL_EXPR logic.
3710
3711 2010-02-12 Jakub Jelinek <jakub@redhat.com>
3712
3713 PR c++/43033
3714 * name-lookup.c (pushdecl_maybe_friend): Check default args of t
3715 instead of x.
3716
3717 2010-02-10 Jason Merrill <jason@redhat.com>
3718
3719 PR c++/41896
3720 * semantics.c (outer_lambda_capture_p): Revert.
3721 (add_capture): Only finish_member_declaration if
3722 we're in the lambda class.
3723 (register_capture_members): New.
3724 * cp-tree.h: Declare it.
3725 * parser.c (cp_parser_lambda_expression): Call it.
3726
3727 2010-02-10 Jason Merrill <jason@redhat.com>
3728
3729 PR c++/41896
3730 * semantics.c (outer_lambda_capture_p): Use current_function_decl
3731 instead of current_class_type.
3732
3733 2010-02-10 Jason Merrill <jason@redhat.com>
3734
3735 PR c++/42983, core issue 906
3736 * method.c (defaultable_fn_check): Check virtualness.
3737
3738 2010-02-10 Jason Merrill <jason@redhat.com>
3739
3740 PR c++/43016
3741 * semantics.c (maybe_add_lambda_conv_op): Set DECL_INTERFACE_KNOWN.
3742
3743 2010-02-10 Shujing Zhao <pearly.zhao@oracle.com>
3744
3745 * Make-lang.in (cp/cvt.o, cp/parser.o, cp/search.o): Depend on intl.h.
3746 * cvt.c (warn_ref_binding): Wrap the messages into G_() for easy
3747 translation.
3748 * parser.c (cp_parser_postfix_expression, cp_parser_new_type_id)
3749 (cp_parser_cast_expression, cp_parser_condition, cp_parser_decltype)
3750 (cp_parser_parameter_declaration)
3751 (cp_parser_exception_specification_opt)
3752 (cp_parser_exception_declaration): Likewise.
3753 * pt.c (check_default_tmpl_args): Likewise.
3754 * search.c (lookup_field_r): Likewise.
3755
3756 2010-02-09 Jason Merrill <jason@redhat.com>
3757
3758 PR c++/42399
3759 * pt.c (tsubst_copy_and_build): Propagate LAMBDA_EXPR_LOCATION.
3760
3761 2010-02-09 Jason Merrill <jason@redhat.com>
3762
3763 PR c++/42370
3764 * decl2.c (change_return_type): New fn.
3765 * semantics.c (apply_lambda_return_type): Use it.
3766 * cp-tree.h: Declare it.
3767
3768 2010-02-05 Richard Guenther <rguenther@suse.de>
3769
3770 * Make-lang.in (cp/cp-lang.o): Depend on gt-cp-cp-lang.h.
3771 * cp-lang.c: Include gt-cp-cp-lang.h.
3772 * config-lang.in (gtfiles): Add cp/cp-lang.c.
3773
3774 2010-02-05 Dodji Seketeli <dodji@redhat.com>
3775
3776 PR c++/42915
3777 * typeck.c (get_template_parms_of_dependent_type): Try getting
3778 the template parameters fromt the type itself first.
3779
3780 2010-02-03 Jason Merrill <jason@redhat.com>
3781
3782 PR c++/4926
3783 PR c++/38600
3784 * mangle.c (write_unqualified_id): Split out from write_expression.
3785 (write_unqualified_name): Call it.
3786 (write_member_name): Likewise.
3787 (write_expression): Support TEMPLATE_ID_EXPR.
3788 Disambiguate operator names.
3789
3790 PR c++/12909
3791 * mangle.c (write_type) [VECTOR_TYPE]: Change mangling with
3792 -fabi-version=4.
3793
3794 2010-02-02 Jason Merrill <jason@redhat.com>
3795
3796 PR c++/41090
3797 * decl.c (cp_finish_decl): Add local statics to cfun->local_decls.
3798 * optimize.c (clone_body): Remap their initializers when making base
3799 variants.
3800 (maybe_clone_body): Complain if multiple clones aren't safe.
3801
3802 2010-01-29 Dodji Seketeli <dodji@redhat.com>
3803
3804 PR c++/42758
3805 PR c++/42634
3806 PR c++/42336
3807 PR c++/42797
3808 PR c++/42880
3809 * cp-tree.h (NON_DEFAULT_TEMPLATE_ARGS_COUNT,
3810 SET_NON_DEFAULT_TEMPLATE_ARGS_COUNT,
3811 GET_NON_DEFAULT_TEMPLATE_ARGS_COUNT): New accessor macros.
3812 * pt.c (coerce_template_parms, type_unification_real,
3813 expand_template_argument_pack, coerce_template_parameter_pack):
3814 Set the non default template args count.
3815 (current_template_args): Always set non defaulted
3816 template args count when compiled with --enable-checking
3817 (tsubst_template_args, type_unification_real): Propagate the non
3818 defaulted template args count.
3819 * error.c (get_non_default_template_args_count): Renamed
3820 count_non_default_template_args into this. Don't calculate the
3821 non default template argument count anymore. Use the new
3822 accessor macros above to get it.
3823 (dump_template_argument_list, dump_type, dump_decl,
3824 dump_template_parms): Adjust.
3825 * parser.c (cp_parser_template_argument_list): Always set defaulted
3826 template args count when compiled with --enable-checking.
3827
3828 2010-01-29 Shujing Zhao <pearly.zhao@oracle.com>
3829
3830 * decl.c (redeclaration_error_message): Wrap the return messages into
3831 G_() for easy translation.
3832
3833 2010-01-28 Jason Merrill <jason@redhat.com>
3834
3835 PR c++/42880
3836 * semantics.c (begin_class_definition): Don't use type_as_string.
3837
3838 2010-01-28 Dodji Seketeli <dodji@redhat.com>
3839
3840 PR c++/42713
3841 PR c++/42820
3842 * typeck.c (get_template_parms_of_dependent_type): Factorized
3843 this out of incompatible_template_type_parms_p
3844 (incompatible_dependent_types_p): Renamed
3845 incompatible_template_type_parms_p into this. Make it detect
3846 two incompatible dependent typedefs too.
3847 (structural_comptypes): Use incompatible_dependent_types_p.
3848 * pt.c (get_template_info):
3849 Handle BOUND_TEMPLATE_TEMPLATE_PARAM.
3850
3851 2010-01-20 Janis Johnson <janis187@us.ibm.com>
3852 Jason Merrill <jason@redhat.com>
3853
3854 * mangle.c (write_type): Mangle transparent record as member type.
3855 * semantics.c (begin_class_definition): Recognize decimal classes
3856 and set TYPE_TRANSPARENT_AGGR.
3857
3858 2010-01-20 Jason Merrill <jason@redhat.com>
3859
3860 PR c++/42338
3861 * mangle.c (write_expression): Handle tree codes that have extra
3862 arguments in the middle-end.
3863
3864 2010-01-20 Paolo Carlini <paolo.carlini@oracle.com>
3865
3866 PR c++/42038
3867 * except.c (expand_start_catch_block): Deal correctly with
3868 do_begin_catch returning error_mark_node.
3869
3870 2010-01-20 Jason Merrill <jason@redhat.com>
3871
3872 PR c++/41788
3873 * class.c (layout_class_type): Set packed_maybe_necessary for packed
3874 non-PODs.
3875
3876 PR c++/41920
3877 * semantics.c (build_lambda_object): Call mark_used on captured
3878 variables.
3879
3880 PR c++/40750
3881 * decl.c (grokdeclarator): Clear type_quals for a member function
3882 declared using a typedef. Don't complain about adding cv-quals
3883 to a function typedef in C++0x mode.
3884
3885 2010-01-20 Jakub Jelinek <jakub@redhat.com>
3886
3887 * decl.c (create_array_type_for_decl): Remove set but not used
3888 variable error_msg. Remove break stmts after return stmts.
3889
3890 2010-01-19 Dodji Seketeli <dodji@redhat.com>
3891
3892 * error.c (dump_template_parms, count_non_default_template_args):
3893 Revert fix of PR c++/42634.
3894
3895 2010-01-18 Dodji Seketeli <dodji@redhat.com>
3896
3897 PR c++/42634
3898 * error.c (dump_template_parms): Use innermost template
3899 arguments before calling count_non_default_template_args.
3900 (count_non_default_template_args): We are being called with
3901 template innermost arguments now. There is no need to ensure
3902 that again.
3903
3904 2010-01-18 Dodji Seketeli <dodji@redhat.com>
3905
3906 PR c++/42766
3907 * cvt.c (build_expr_type_conversion): Look through OVERLOAD.
3908
3909 2010-01-17 Dodji Seketeli <dodji@redhat.com>
3910
3911 PR c++/42697
3912 *pt.c (tsubst_decl): Revert commit for PR c++/42697.
3913
3914 2010-01-17 Dodji Seketeli <dodji@redhat.com>
3915
3916 PR c++/42697
3917 *pt.c (tsubst_decl): Get the arguments of a specialization from
3918 the specialization template, not from the most general template.
3919
3920 2010-01-16 Jason Merrill <jason@redhat.com>
3921
3922 PR c++/42761
3923 * semantics.c (finish_decltype_type): Within a template, treat
3924 unresolved CALL_EXPR as dependent.
3925
3926 2010-01-15 Dodji Seketeli <dodji@redhat.com>
3927
3928 * error.c (dump_template_parms,count_non_default_template_args):
3929 Revert changes of PR c++/42634.
3930
3931 2010-01-14 Jakub Jelinek <jakub@redhat.com>
3932
3933 PR middle-end/42674
3934 * decl.c (finish_function): Don't emit -Wreturn-type warnings in
3935 functions with noreturn attribute.
3936
3937 2010-01-14 Jason Merrill <jason@redhat.com>
3938
3939 PR c++/42701
3940 * call.c (build_new_method_call): Don't free the vec here.
3941
3942 PR c++/42655
3943 * call.c (convert_like_real): Do full decay_conversion for ck_rvalue.
3944
3945 2010-01-13 Dodji Seketeli <dodji@redhat.com>
3946
3947 PR c++/42634
3948 * error.c (dump_template_parms): Use innermost template
3949 arguments before calling count_non_default_template_args.
3950 (count_non_default_template_args): We are being called with
3951 template innermost arguments now. There is no need to ensure
3952 that again.
3953
3954 2010-01-07 Dodji Seketeli <dodji@redhat.com>
3955
3956 c++/40155
3957 * pt.c (unify_pack_expansion): In non-deduced contexts, re-use template
3958 arguments that were previously deduced.
3959
3960 2010-01-05 Jason Merrill <jason@redhat.com>
3961
3962 * pt.c (unify_pack_expansion): Handle deduction from init-list.
3963 * call.c (build_over_call): Don't complain about it.
3964
3965 2010-01-04 Jason Merrill <jason@redhat.com>
3966
3967 PR c++/42555
3968 * pt.c (tsubst_decl): Don't apply type attributes in place.
3969
3970 PR c++/42567
3971 * semantics.c (describable_type): Remove decltype comment and
3972 semantics.
3973
3974
3975 \f
3976 Copyright (C) 2010 Free Software Foundation, Inc.
3977
3978 Copying and distribution of this file, with or without modification,
3979 are permitted in any medium without royalty provided the copyright
3980 notice and this notice are preserved.
3981