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