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