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