1 2004-12-31 Richard Henderson <rth@redhat.com>
4 * call.c (make_temporary_var_for_ref_to_temp): Set DECL_IGNORED_P.
5 * class.c (build_vtable): Don't conditionallize setting it
7 (layout_class_type): Set DECL_IGNORED_P.
8 * decl2.c (get_guard): Likewise.
9 * rtti.c (get_tinfo_decl, build_lang_decl): Likewise.
10 * tree.c (build_local_temp): Likewise.
12 2004-12-30 Mark Mitchell <mark@codesourcery.com>
14 * cp-tree.h (cp_declarator): Split "name" field into
15 qualifying_scope and unqualified_name.
16 * decl.c (get_scope_of_declarator): Adjust accordingly.
17 (grokdeclarator): Likewise.
18 * decl2.c (grokfield): Likewise, and adjust call to
20 * name-lookup.c (do_class_using_decl): Split "decl" into
21 "scope" and "name". Remove unnecessary code.
22 * name-lookup.h (do_class_using_decl): Adjust declaration.
23 * parser.c (make_id_declarator): Split "id" into qualifying_scope
25 (cp_parser_using_declaration): Adjust call to do_class_using_decl.
26 (cp_parser_direct_declarator): Adjust to handle the fact that
27 cp_parser_declarator_id no longer returns a SCOPE_REF.
28 (cp_parser_direct_declarator): Likewise.
29 (cp_parser_declarator_id): Do not create a SCOPE_REF for qualified
31 (cp_parser_member_declaration): Adjust call to make_id_declarator.
32 (cp_parser_check_declarator_template_parameters): Do not expect a
35 * decl.c (duplicate_decls): Call ggc_free on declarations we will
36 not be needing any longer.
39 * cvt.c (convert_to_void): Do not use STRIP_NOPs.
41 2004-12-28 Richard Henderson <rth@redhat.com>
44 * semantics.c (finish_asm_stmt): Resolve asm names. Validate input
45 constraints. Mark memory inputs addressable.
47 2004-12-27 Jason Merrill <jason@redhat.com>
49 * decl.c (expand_static_init): Don't use shortcut if
50 targetm.relaxed_ordering.
52 2004-12-27 Mark Mitchell <mark@codesourcery.com>
55 * decl.c (check_tag_decl): Robustify.
57 2004-12-23 Mark Mitchell <mark@codesourcery.com>
60 * parser.c (cp_parser_error): Issue better messages about
61 #pragma in locations where it is not permitted.
64 * pt.c (check_instantiated_args): Remove bogus SFINAE code.
66 * cvt.c (convert_to_void): Fix typo in comment.
68 2004-12-23 Alexandre Oliva <aoliva@redhat.com>
71 * pt.c (check_explicit_specialization): Use the argument list from
72 the definition in a template function specialization definition.
74 2004-12-23 Giovanni Bajo <giovannibajo@gcc.gnu.org>
77 * pt.c (check_explicit_specialization): Use special logic to validate
78 befriended specializations.
80 2004-12-22 Mark Mitchell <mark@codesourcery.com>
82 * rtti.c (emit_support_tinfos): Avoid using C99 semantics.
85 * call.c (build_this): In templates, do not bother with
87 * typeck.c (unary_complex_lvalue): In a template, always refuse
91 * cp-gimplify.c (cp_genericize): Relax assertion.
94 * cvt.c (convert_to_void): Warn about unused values.
97 * rtti.c (emit_support_tinfos): On systems without weak symbols,
98 emit the runtime library type-info objects as non-COMDAT.
100 2004-12-21 Mark Mitchell <mark@codesourcery.com>
103 * call.c (convert_like_real): Do not permit the use of a copy
104 constructor to copy a packed field.
107 * decl.c (grokdeclarator): Return error_mark_node, not
108 void_type_node, to indicate errors.
109 * parser.c (cp_parser_template_parameter_list): Robustify.
110 (cp_parser_template_parameter): Likewise.
113 * tree.c (cp_tree_equal): Handle OVERLOAD.
115 2004-12-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
117 * decl.c (define_label): Use POP_TIMEVAR_AND_RETURN.
118 * name-lookup.c (pushdecl_class_level): Likewise.
120 2004-12-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
122 * name-lookup.c (pushtag): Add missing POP_TIMEVAR_AND_RETURN.
124 2004-12-21 Andrew Pinski <pinskia@physics.uc.edu>
127 * cp-gimplify.c (cp_genericize_r): Don't insert first but instead
128 check to see if contains the pointer. Insert the statement before
131 2004-12-21 Nathan Sidwell <nathan@codesourcery.com>
134 * decl.c (check_initializer): Check string initializer of array is
136 * cp-tree.h (PAREN_STRING_LITERAL_P): New.
137 * semantics.c (finish_parenthesized_expr): Mark a STRING_CST.
138 * error.c (dump_expr): <STRING_CST case> Add parens, if needed.
140 * cp-tree.def (TEMPLATE_TYPE_PARM,
141 BOUND_TEMPLATE_TEMPLATE_PARM, TYPE_OF_TYPE, TYPENAME_TYPE): Reorder
142 for better code efficiency.
143 * cp-tree.h (CLASS_TYPE_P): Short circuit IS_AGGR_TYPE check.
144 (CAN_HAVE_FULL_LANG_DECL_P): Reorder for better optimization.
145 (INTEGRAL_CODE_P, CP_INTEGRAL_TYPE_P,
146 INTEGRAL_OR_ENUMERATION_TYPE_P, SCALAR_TYPE_P,
147 CP_AGGREGATE_TYPE_P, TYPE_PTROB_P, TYPE_REF_OBJ_P,
148 TYPE_PTROBV_P): Likewise.
151 * method.c (do_build_copy_constructor): Refactor. Don't const
152 qualify a mutable field.
153 (do_build_assign_ref): Likewise.
155 2004-12-20 Matt Austern <austern@apple.com>
158 * decl.c (make_rtl_for_nonlocal_decl): Use
159 set_builtin_user_assembler_name.
161 2004-12-19 Mark Mitchell <mark@codesourcery.com>
163 * cp-tree.h (note_decl_for_pch): New function.
164 * class.c (build_clone): Call note_decl_for_pch.
165 * semantics.c (finish_member_declaration): Likewise.
166 (note_decl_for_pch): New function.
168 2004-12-17 Steven Bosscher <stevenb@suse.de>
170 * init.c (build_zero_init): max_index is the number of
173 2004-12-17 Nathan Sidwell <nathan@codesourcery.com>
176 * class.c (add_method): Do not push conversion operators into a
179 * cp-tree.h (CLASSTYPE_PRIMARY_TEMPLATE_TYPE): Reformat.
180 * error.c (dump_decl): <TYPE_DECL case> Remove extraneous braces.
182 2004-12-16 Nathan Sidwell <nathan@codesourcery.com>
185 * cp-tree.h (integral_constant_value): Declare.
186 * call.c (null_ptr_cst_p): Use integral_constant_value, not
188 (convert_like_real): Likewise.
189 * class.c (check_bitfield_decl): Likewise.
190 * cvt.c (ocp_convert): Likewise.
191 (convert): Remove unnecessary decl_constant_value call.
192 * decl.c (compute_array_index_type): Use integral_constant_value,
193 not decl_constant_value.
194 (build_enumerator): Likewise.
195 * decl2.c (grokfield): Likewise.
196 * init.c (decl_constant_value): Simplify.
197 (integral_constant_value): New.
198 * pt.c (fold_decl_constant_value): Use integral_constant_value,
199 remove subsequent check.
200 (tsubst): Use integral_constant_value, not decl_constant_value.
201 (tsubst_copy, unify): Likewise.
202 * typeck.c (decay_conversion): Likewise.
203 (build_compound_expr): Remove unnecessary decl_constant_value
205 (build_static_cast_1, build_reinterpret_cast_1):
206 (convert_for_assignment): Remove comment about not calling
209 2004-12-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
212 * pt.c (instantiate_class_template): Set input_location for
214 (tsubst_friend_function): Don't set input_location here.
215 Make sure the context is complete if necessary.
217 2004-12-15 Nathan Sidwell <nathan@codesourcery.com>
220 * parser.c (cp_parser_lookup_name): Remove unneeded TYPENAME_TYPE
223 2004-12-14 Mark Mitchell <mark@codesourcery.com>
226 * decl.c (make_typename_type): Do not handle namespace-scoped
228 (tag_name): Handle typename_type.
229 (check_elaborated_type_specifier): Handle typenames.
230 * parser.c (cp_parser_diagnose_invalid_type_name): Improve
232 (cp_parser_elaborated_type_specifier): Use
233 cp_parser_diagnose_invalid_type_name.
235 2004-12-14 Andrew Pinski <pinskia@physics.uc.edu>
238 * init.c (build_zero_init): If the max_index is 0, there is no
239 need to create a RANGE_EXPR.
241 2004-12-14 Mark Mitchell <mark@codesourcery.com>
244 * cp-objcp-common.c (cp_expr_size): Loosen assertion.
246 2004-12-14 Nathan Sidwell <nathan@codesourcery.com>
249 * pt.c (tsubst_copy_and_build): <INDIRECT_REF case> Check that a
250 REFERENCE_REF_P is dereferencing a reference type.
251 * typeck.c (build_static_cast): Convert from reference even in a
253 (build_reinterpret_cast, build_const_cast, build_c_cast): Likewise.
255 2004-12-14 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
257 * parser.c (cp_parser_uncommitted_to_tentative_parse_p): New function.
258 (cp_parser_name_lookup_error): Use it.
259 (cp_parser_check_for_invalid_template_id): Likewise.
260 (cp_parser_skip_to_closing_parenthesis): Likewise.
261 (cp_parser_nested_name_specifier_opt): Likewise.
262 (cp_parser_simple_declaration, cp_parser_template_id): Likewise.
263 (cp_parser_parameter_declaration_list): Likewise.
264 (cp_parser_parameter_declaration): Likewise.
265 (cp_parser_template_name): Let cp_parser_simulate_error perform
267 (cp_parser_committed_to_tentative_parse): Remove.
269 2004-12-13 Andrew Pinski <pinskia@physics.uc.edu>
272 * class.c (build_base_path): Convert the zero constant to the correct
275 2004-12-13 Mark Mitchell <mark@codesourcery.com>
278 * class.c (layout_class_type): Determine the visibility of static
281 2004-12-12 Roger Sayle <roger@eyesopen.com>
284 * cp-gimplify.c (gimplify_if_stmt): Optimize the case where the
285 condition is a constant and the unexecuted clause is empty.
287 2004-12-10 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
290 * parser.c (cp_parser_class_head): Reject typedef-name in class head.
292 2004-12-09 Matt Austern <austern@apple.com>
295 * name-lookup.c (do_nonmember_using_decl): A real function
296 declaration takes precedence over an anticipated declaration.
298 2004-12-09 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
300 * parser.c (cp_parser_member_declaration): Fix comment typo.
302 2004-12-09 Alexandre Oliva <aoliva@redhat.com>
305 * parser.c (cp_parser_template_id): Don't create a CPP_TEMPLATE_ID
308 2004-12-09 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
311 * typeck.c (build_reinterpret_cast_1): Allow cast from vector type.
313 2004-12-09 Nathan Sidwell <nathan@codesourcery.com>
316 * init.c (build_zero_init): Build a RANGE_EXPR for an array
319 2004-12-08 Kelley Cook <kcook@gcc.gnu.org>
321 * typeck.c: Remove DOS line endings.
323 2004-12-08 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
326 * decl.c (lookup_and_check_tag): Diagnose nested class with
327 the same name as enclosing class.
329 2004-12-08 Nathan Sidwell <nathan@codesourcery.com>
332 * cp-tree.h (REFERENCE_REF_P): New.
333 (CPTI_TYPE_INFO_TYPE): Rename to ...
334 (CPTI_CONST_TYPE_INFO_TYPE): ... here.
335 (CPTI_TYPE_INFO_REF_TYPE): Remove.
336 (type_info_type_node): Rename to ...
337 (const_type_info_type_node): ... here.
338 (type_info_ref_type): Remove.
339 * call.c (build_user_type_conversion): Reformat.
340 (resolve_args): Do not convert_from_reference.
341 (build_object_call): Call convert_from_reference.
342 (prep_operand): Do not convert_from_reference.
343 (build_new_method_call): Likewise.
344 * class.c (build_vfield_ref): Likewise.
345 * cvt.c (convert_to_reference): Likewise.
346 (convert_from_reference): Build INDIRECT_REF here, not with
348 (convert_force): Do not convert_from_reference.
349 (build_expr_type_conversion): Likewise.
350 * decl.c (grok_reference_init): Likewise.
351 * decl2.c (delete_sanity): Likewise.
352 * except.c (initialize_handler_parm): Use POINTER_TYPE_P.
353 * init.c (build_dtor_call): Do not convert_from_reference.
354 * parser.c (cp_parser_template_argument): Unwrap indirected
355 reference. Allow TEMPLATE_PARM_INDEX as an object parm.
356 * pt.c (tsubst_copy_and_build) <case INDIRECT_REF>: Use
357 convert_from_reference, if indicated.
358 <case CALL_EXPR>: Do not convert_from_reference.
359 <case PARM_DECL, VAR_DECL>: Convert_from_reference if needed.
360 (tsubst_initializer_list): Do not convert_from_reference.
361 * rtti.c (init_rtti_processing): Adjust node creation.
362 (throw_bad_typeid): Use const_type_info_type_node.
363 Do not convert_from_reference.
364 (typeid_ok_p): Use const_type_info_type_node.
365 (build_typeid, get_typeid): Always return type_info typed node.
366 (build_dynamic_cast_1): Dont convert_from_reference. Refactor.
367 * semantics.c (finish_stmt_expr_expr): Do not
368 convert_from_reference.
369 (finish_id_expression): Convert_from_reference as appropriate.
370 * typeck.c (decay_conversion): Do not convert_from_reference.
371 (finish_class_member_access_expr): Likewise.
372 (build_indirect_ref): Use POINTER_TYPE_P.
373 (convert_arguments): Do not convert_from_reference.
374 (build_modify_expr): Likewise.
375 (convert_for_initialization): Likewise.
376 * typeck2.c (build_x_arrow): Likewise.
378 2004-12-07 Ziemowit Laski <zlaski@apple.com>
380 * cp-tree.h (struct lang_type_class): Rename 'objc_protocols'
381 field to 'objc_info'.
383 2004-12-07 Kazu Hirata <kazu@cs.umass.edu>
385 * pt.c: Replace a use of first_rtl_op with TREE_CODE_LENGTH.
387 2004-12-07 Roger Sayle <roger@eyesopen.com>
389 * name-lookup.c (leave_scope): We only need to update
390 class_binding_level when leaving a class scope.
392 2004-12-06 Ziemowit Laski <zlaski@apple.com>
394 * cp-tree.h (struct lang_type_class): Add 'objc_protocols' field.
396 2004-12-04 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
398 PR c++/17011, c++/17971
399 * pt.c (tsubst_copy) <FIELD_DECL case>: Check and diagnose
401 (tsubst_copy_and_build) <COMPONENT_REF case>: Check
402 error_mark_node after member substitution.
403 * semantics.c (finish_id_expression): Call
404 finish_non_static_data_member for non-dependent FIELD_DECL.
406 2004-12-03 Nathan Sidwell <nathan@codesourcery.com>
409 * decl.c (grokdeclarator): Make sure class in pointer to member is
412 2004-12-02 Nathan Sidwell <nathan@codesourcery.com>
415 * parser.c (cp_parser_new_type_id): Move array size expression
417 * init.c (build_new): ... to here.
419 2004-12-02 Nathan Sidwell <nathan@codesourcery.com>
422 * parser.c (cp_parser_class_head): Return NULL_TREE when
423 push_template_decl fails. Update comment.
425 2004-12-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
427 PR c++/15664, c++/18276
428 * pt.c (tsubst_decl) <TEMPLATE_DECL case>: Reorganize. Correctly
429 tsubst TEMPLATE_DECL that is a TEMPLATE_TEMPLATE_PARM.
431 2004-12-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
434 * parser.c (cp_parser_type_specifier): Catch template declaration
437 2004-12-01 Matt Austern <austern@apple.com>
439 * name-lookup.c (namespace_binding): Omit alias check for global
442 2004-12-01 Nathan Sidwell <nathan@codesourcery.com>
445 * parser.c (cp_parser_class_name): Check decl's type is not
449 * call.c (standard_conversion): Add FLAGS parameter. Do not allow
450 derived to base conversion when checking constructor
452 (implicit_conversion): Pass FLAGS to standard_conversion.
453 (check_constructir_callable): Disallow conversion functions.
455 2004-11-30 Kazu Hirata <kazu@cs.umass.edu>
457 * parser.c: Fix comment typos.
459 2004-11-27 Mark Mitchell <mark@codesourcery.com>
462 * parser.c (cp_parser_check_for_definition_in_return_type): Take
463 the defined type as a parameter, and inform the user about the
464 possibility of a missing semicolon.
465 (cp_parser_explicit_instantiation): Adjust call to
466 cp_parser_check_for_definition_in_return_type.
467 (cp_parser_init_declarator): Likewise.
468 (cp_parser_member_declaration): Likewise.
471 * cp-tree.def (TYPENAME_TYPE): Remove discussion of implicit
472 typename from comments.
473 * cp-tree.h (TYPENAME_IS_ENUM_P): New macro.
474 (TYPENAME_IS_CLASS_P): Likewise.
475 (make_typename_type): Change prototype.
476 * decl.c (struct_typename_info): New type.
477 (typename_compare): Expect the second argument to be a
478 typename_info, not a tree.
479 (build_typename_type): Add tag_type parameter. Do not create a
480 new type until necessary.
481 (make_typename_type): Add tag_type parameter.
482 * error.c (TYPENAME_TYPE): Print tags other than "typename" if
484 * friend.c (make_friend_class): Adjust call to make_typename_type.
485 * parser.c (cp_parser_make_typename_type): Likewise.
486 (cp_parser_primary_expression): Adjust call to
487 cp_parser_lookup_name.
488 (cp_parser_unqualified_id): Adjust calls to cp_parser_class_name.
489 (cp_parser_class_or_namespace_name): Likewise.
490 (cp_parser_postfix_expression): Adjust calls to
492 (cp_parser_mem_initializer_id): Adjust calls to
493 cp_parser_class_name.
494 (cp_parser_type_parameter): Adjust calls to cp_parser_lookup_name.
495 (cp_parser_template_name): Likewise.
496 (cp_parser_template_argument): Likewise.
497 (cp_parser_type_name): Adjust call to cp_parser_class_name.
498 (cp_parser_elaborated_type_specifier): Adjust calls to
499 make_typename_type and cp_parser_lookup_name.
500 (cp_parser_namespace_name): Likewise.
501 (cp_parser_class_name): Replace type_p parameter with tag_type.
502 Adjust calls to make_typename_type and cp_parser_lookup_name.
503 (cp_parser_class_head): Adjust calls to cp_parser_class_name.
504 (cp_parser_base_specifier): Likewise.
505 (cp_parser_lookup_name): Replace is_type parameter with tag_type.
506 Adjust calls to make_typename_type and lookup_qualified_name.
507 (cp_parser_lookup_name_simple): Adjust call to
508 cp_parser_lookup_name.
509 (cp_parser_constructor_declarator_p): Adjust call to
510 cp_parser_class_name.
511 * pt.c (convert_template_argument): Adjust all to
513 (tsubst_decl): Do not pre-substitute the type of the declaration.
514 (tsubst): Hand off declarations more quickly. Adjust call to
518 * parser.c (cp_parser_postfix_dot_deref_expression): Robustify.
520 2004-11-29 Daniel Jacobowitz <dan@codesourcery.com>
523 * Make-lang.in (cp/decl2.o): Update dependencies.
524 * decl2.c (finish_file): Call maybe_apply_pending_pragma_weaks.
526 2004-11-29 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
529 * name-lookup.c (pushtag): Change return type to tree.
530 * cp-tree.h (pushtag): Adjust declaration.
531 * decl.c (xref_tag, start_enum): Use return value of pushtag.
532 * pt.c (push_template_decl_real): Return immediately if
533 pushdecl_namespace_level returns error_mark_node.
535 2004-11-27 Kazu Hirata <kazu@cs.umass.edu>
537 * pt.c: Fix a comment typo.
539 2004-11-27 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
541 Friend class name lookup 4/n
542 * class.c (pushclass): Don't call cxx_remember_type_decls.
543 * cp-tree.h (clear_anon_tags): Remove declaration.
544 * decl.c (grokdeclarator): Don't call lookup_tag_reverse.
545 * name-lookup.c (binding_entry_free, binding_table_free): Comment
547 (binding_table_find_anon_type, binding_table_reverse_maybe_remap,
548 binding_table_remove_anonymous_types, cxx_remember_type_decls,
549 bt_print_entry, clear_anon_tags, follow_tag_typedef, lookup_tag,
550 lookup_tag_reverse): Remove
551 (begin_scope, leave_scope, kept_level_p, print_binding_level):
552 Don't use type_decls field in cp_binding_level.
553 (maybe_process_template_type_declaration, pushtag): Set
554 CLASSTYPE_NESTED_UTDS directly.
555 * name-lookup.h (binding_table_remove_anonymous_types,
556 cxx_remember_type_decls, lookup_tag, lookup_tag_reverse): Remove
558 (cp_binding_level): Remove type_decls field.
560 2004-11-26 Kazu Hirata <kazu@cs.umass.edu>
562 * typeck.c: Fix a comment typo.
564 2004-11-25 Mark Mitchell <mark@codesourcery.com>
567 * class.c (instantiate_type): Treat NON_DEPENDENT_EXPRs with
568 unknown_type as non matching. Tidy up.
569 * pt.c (build_non_dependent_expr): Do not build a
570 NON_DEPENDENT_EXPR for a VAR_DECL.
573 * cp-tree.h (lvalue_or_else): Remove declaration.
574 * tree.c (lvalue_or_else): Remove.
575 * typeck.c (build_unary_op): Adjust call to lvalue_or_else.
576 (build_modify_expr): Likewise.
579 * decl.c (duplicate_decls): Return error_mark_node on error, as
583 * decl.c (grokvardecl): Keep track of whether or not a there was
584 explicit qualification.
585 * name-lookup.c (set_decl_namespace): Complain about explicit
586 qualification of a name within its own namespace.
589 * typeck.c (check_return_expr): Robustify.
591 2004-11-25 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
593 Friend class name lookup 3/n, PR c++/3332
594 * name-lookup.c (push_inner_scope, pop_inner_scope): New functions.
595 (lookup_type_scope): Don't deal with name from user declaration
597 * name-lookup.h (push_inner_scope, pop_inner_scope): Add declarations.
598 * parser.c (cp_parser_class_specifier): Use push_inner_scope and
601 2004-11-25 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
603 Friend class name lookup 2/n, PR c++/14513, c++/15410
604 * name-lookup.c (lookup_name_real): Simplify.
605 (lookup_type_scope): Add SCOPE parameter. Handle friend class
607 * name-lookup.h (tag_scope): New enum type.
608 (lookup_type_scope): Adjust declaration.
609 * decl.c (lookup_and_check_tag, xref_tag, xref_tag_from_type):
610 Change bool parameter GLOBALIZED to TAG_SCOPE parameter SCOPE.
611 (start_enum): Likewise. Add assertion test that NAME is
612 IDENTIFIER_NODE. Use anonymous name for dummy ENUMERAL_TYPE in
614 * cp-tree.h (xref_tag, xref_tag_from_type): Adjust declarations.
615 * parser.c (cp_parser_elaborated_type_specifier,
616 cp_parser_class_head): Adjust call to xref_tag.
617 * pt.c (lookup_template_class, instantiate_class_template):
619 * rtti.c (init_rtti_processing, build_dynamic_cast_1,
620 tinfo_base_init, emit_support_tinfos): Likewise.
622 2004-11-25 Joseph S. Myers <joseph@codesourcery.com>
624 * g++spec.c, lex.c: Avoid ` as left quote in diagnostics.
626 2004-11-24 Mark Mitchell <mark@codesourcery.com>
629 * name-lookup.c (supplement_binding): Do not allow typedefs to be
630 redefined in class scope.
633 * parser.c (cp_parser_set_decl_type_spec): Do not try to allow
634 redefinitions of builtin types other that "bool" or "wchar_t".
636 2004-11-24 Steven Bosscher <stevenb@suse.de>
638 * decl.c (cxx_init_decl_processing): Don't clear
639 flag_inline_functions.
641 2004-11-24 Mark Mitchell <mark@codesourcery.com>
643 * pt.c (tsubst_function_type): Do not permit function types which
644 return arrays or functions.
647 * parser.c (cp_parser_init_declarator): Do not pop scope twice.
650 * cp-tree.h (CTOR_NAME): Remove.
652 * decl.c (initialize_predefined_identifiers): Add spaces to the
653 end of constructor and destructor names.
655 2004-11-24 Giovanni Bajo <giovannibajo@gcc.gnu.org>
658 * decl.c (start_decl): Check for invalid specialization headers.
660 2004-11-24 Paolo Bonzini <bonzini@gnu.org>
664 * call.c (standard_conversion): Move check for conversions between
666 * typeck.c (ptr_reasonably_similar): ... here.
668 2004-11-23 Ben Elliston <bje@au.ibm.com>
670 * cp-tree.h (context_as_string): Remove extern.
671 * error.c (context_as_string): Remove.
673 * cp-tree.h (cp_type_qual_from_rid): Remove extern.
674 * lex.c (cp_type_qual_from_rid): Remove.
676 * cp-tree.h (do_poplevel): Remove extern.
677 (check_multiple_declarators): Likewise.
678 * semantics.c (do_poplevel): Make static.
679 (check_multiple_declarators): Remove.
681 * cp-tree.h (check_final_overrider): Remove extern.
682 * search.c (check_final_overrider): Make static.
684 * cp-tree.h (build_artificial_parm): Remove extern.
685 * decl2.c (build_artificial_parm): Make static.
687 2004-11-22 Giovanni Bajo <giovannibajo@gcc.gnu.org>
690 * typeck.c (build_unary_op) <CONVERT_EXPR, NEGATE_EXPR>: Unify code.
691 Make sure the result is always a rvalue.
693 2004-11-16 Giovanni Bajo <giovannibajo@gcc.gnu.org>
695 * decl.c (start_preparsed_function): Call check_function_type even
697 (require_complete_types_for_parms): Skip dependent types.
698 (check_function_type): Likewise.
700 2004-11-16 Steven Bosscher <stevenb@suse.de>
702 * Make-lang.in (cp/decl.o, cp/search.o): Don't depend on stack.h.
703 * search.c: Don't include it.
705 2004-11-15 Andrew Pinski <pinskia@physics.uc.edu>
707 * cp-gimplify.c: Include pointer-set.h
708 (cp_genericize_r): Use pointer_sets instead of a hashtable.
709 Also instert the new statement for CLEANUP_STMT.
710 (cp_genericize): Use pointer_sets instead of a hashtable.
711 * Make-lang.in (cp-gimplify.o): Depend on pointer-set.h.
713 2004-11-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
715 Friend class name lookup 1/n, PR c++/18471
716 * decl.c (lookup_and_check_tag): New function.
717 (xref_tag, start_enum): Use it.
718 (check_elaborated_type_specifier): Move TEMPLATE_TYPE_PARM check
719 before !DECL_IMPLICIT_TYPEDEF_P. Also display previously declared
721 * name-lookup.c (lookup_name_current_level): Rename to ...
722 (lookup_name_innermost_nonclass_level): ... this.
723 (lookup_type_scope): New function.
724 * name-lookup.h (lookup_name_current_level): Rename to ...
725 (lookup_name_innermost_nonclass_level): ... this.
726 (lookup_type_scope): Add declaration.
728 2004-11-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
731 * pt.c (coerce_template_parms): Only emit error message about
732 invalid template argument when TF_ERROR.
734 2004-11-12 Mark Mitchell <mark@codesourcery.com>
737 * decl.c (start_decl): Make sure to set *pop_scope_p. Return
738 error_mark_node to indicate errors.
741 * parser.c (cp_parser_direct_declarator): Disallow non-constant
742 array bounds when not inside a function.
745 * pt.c (tsubst_copy_and_build): Do not do Koenig lookup when an
746 unqualified name resolves to a member function.
749 * pt.c (tsubst_copy_and_build): Handle qualified names used from a
750 derived class correctly.
752 * decl2.c (import_export_decl): Fix typo in comment.
753 * tree.c (pod_type_p): Likewise.
755 2004-11-10 Andrew Pinski <pinskia@physics.uc.edu>
757 * typeck.c (cxx_mark_addressable): Add braces around the first if.
759 2004-11-10 Adam Nemet <anemet@lnxw.com>
762 * typeck.c (cxx_mark_addressable): Issue an error if address of an
763 explicit register variable is requested.
765 2004-11-10 Nathan Sidwell <nathan@codesourcery.com>
768 * cp-tree.h (NON_THUNK_FUNCTION_CHECK, THUNK_FUNCTION_CHECK): New.
769 (struct lang_decl_flags): Add thunk_p flag.
770 (struct lang_decl): Remove separate fixed_offset. Place
771 cloned_function and fixed_offset into union.
772 (DECL_CLONED_FUNCTION_P, DECL_CLONED_FUNCTION): Adjust.
773 (DECL_THUNK_P, SET_DECL_THUNK_P): Adjust.
774 (THUNK_FIXED_OFFSET): Adjust.
775 * method.c (make_thunk): Adjust.
777 2004-11-09 Mark Mitchell <mark@codesourcery.com>
780 * init.c (build_new_1): Handle parenthesized type-ids that name an
783 2004-11-09 Joseph S. Myers <joseph@codesourcery.com>
785 * call.c, class.c, decl.c, decl2.c, error.c, mangle.c, parser.c,
786 pt.c, search.c, semantics.c, typeck.c: Use %q, %< and %> for
787 quoting in diagnostics.
788 * parser.c (cp_parser_sizeof_operand): Use '' instead of `' for
789 quoting in printf format.
790 * decl.c (duplicate_decls, start_decl): Use %qD instead of
793 2004-11-08 Kazu Hirata <kazu@cs.umass.edu>
795 * class.c, decl.c, lex.c, name-lookup.c, parser.c, pt.c,
796 search.c, typeck2.c: Fix comment formatting.
798 2004-11-04 Ulrich Weigand <uweigand@de.ibm.com>
800 PR tree-optimization/18184
801 * cp-objcp-common.c (cxx_types_compatible_p): Do not treat pointers
802 of different modes or alias-all flags as equivalent.
803 * typeck.c (comptypes): Likewise.
805 2004-11-04 Giovanni Bajo <giovannibajo@gcc.gnu.org>
808 * cp-tree.h (TYPE_REF_OBJ_P): New macro.
809 (TYPE_PTR_P, TYPE_PTROB_P, TYPE_PTROBV_P, TYPE_PTRFN_P,
810 TYPE_REFFN_P): Document.
811 (fold_decl_constant_value): New prototype.
812 * pt.c (convert_nontype_argument_function): Rewrite and extract
814 (fold_decl_constant_value, convert_nontype_argument_function): New.
815 (lookup_template_class): Add comment about useless double call.
816 * mangle.c (write_expression): Strip conversions before lowering
818 * cvt.c (ocp_convert): Check LOOKUP_COMPLAIN for a pedwarn. Disallow
819 enum to enum conversion.
821 2004-11-02 Mark Mitchell <mark@codesourcery.com>
824 * parser.c (cp_parser_type_parameter): Robustify.
827 * parser.c (cp_parser_single_declaration): Disallow template
831 * typeck.c (build_const_cast): Use error_operand_p.
833 2004-11-02 Ziemowit Laski <zlaski@apple.com>
835 * cp-lang.c (cxx_types_compatible_p): Remove prototype and definition.
836 (LANG_HOOKS_TYPES_COMPATIBLE_P): Move to cp-objcp-common.h.
837 * cp-objcp-common.c (cxx_types_compatible_p): Moved definition here
839 * cp-objcp-common.h (cxx_types_compatible_p): Moved prototype here
841 (LANG_HOOKS_TYPES_COMPATIBLE_P): Moved here from cp-lang.c.
843 2004-11-01 Nathan Sidwell <nathan@codesourcery.com>
846 * search.c (check_final_overrider): Deprecate gnu covariant extension.
848 2004-10-31 Gabriel Dos Reis <gdr@integrable-solutions.net>
850 Convert diagnostics to use quoting flag q 9/n
851 * typeck.c (build_x_unary_op, convert_member_func_to_ptr,
852 get_delta_difference): Use new quotation style.
853 * repo.c (reopen_repo_file_for_write): Likewise.
854 * pt.c (do_type_instantiation): Likewise.
855 * parser.c (cp_parser_diagnose_invalid_type_name):
856 * name-lookup.c (push_overloaded_decl, set_decl_namespace):
857 * error.c (cp_print_error_function,
858 print_instantiation_full_context): Likewise.
859 * decl.c (define_label, grok_reference_init,
860 maybe_deduce_size_from_array_init, revert_static_member_fn):
861 * decl2.c (check_classfn): Likewise.
862 * class.c (add_method, check_field_decls, layout_class_type,
863 resolve_address_of_overloaded_function): Likewise.
864 * call.c (build_x_va_arg, build_over_call): Likewise.
866 2004-10-31 Gabriel Dos Reis <gdr@integrable-solutions.net>
868 Convert diagnostics to use quoting flag q 8/n
869 * cvt.c (cp_convert_to_pointer, warn_ref_binding,
870 convert_to_reference, ocp_convert, convert_to_void
871 cp_convert_to_pointer): Use new quotation style.
873 2004-10-31 Mark Mitchell <mark@codesourcery.com>
876 * typeck2.c (store_init_value): Use split_nonconstant_init even
877 for types that require construction.
879 2004-10-28 Matt Austern <austern@apple.com>
882 * cp-tree.h (class_key_or_enum_as_string): Declare.
883 * error.c (class_key_or_enum): Rename to class_key_or_enum_as_string
884 and remove static qualifier.
885 * decl.c (shadow_tag): Warn about ignored attributes in class/struct/
886 union/enum declaration.
888 2004-10-29 Kazu Hirata <kazu@cs.umass.edu>
890 * pt.c: Fix a comment typo.
892 2004-10-28 Nathan Sidwell <nathan@codesourcery.com>
894 * typeck.c (composite_pointer_type): Remove comment about DR 195.
895 (build_reinterpret_cast_1): Revert DR195 patch. Only emit a
896 warning when being pedantic.
897 (build_reinterpet_cast, build_c_cast): Adjust.
899 2004-10-29 Mark Mitchell <mark@codesourcery.com>
902 * decl.c (grokdeclarator): Mark TYPE_DECLs as abstract when they
903 appear in a constructor/destructor that will be cloned.
905 2004-10-28 Matt Austern <austern@apple.com>
908 * decl.c (finish_enum): Handle packed attribute.
909 * parser.c (cp_parser_enum_specifier): Process trailing attributes.
911 2004-10-28 Mark Mitchell <mark@codesourcery.com>
914 * pt.c (instantiate_class_template): Increment
915 processing_template_decl when substituting into a member class
918 2004-10-27 Mark Mitchell <mark@codesourcery.com>
921 * call.c (convert_like_real): Fix formatting.
922 (initialize_reference): When binding a temporary to a base class,
923 ensure that the nominal copy made is to the derived class, not the
927 * parser.c (cp_parser_next_token_ends_template_argument_p): Do not
930 2004-10-27 Andrew Pinski <pinskia@physics.uc.edu>
932 * decl.c (bad_specifiers): Move the q after the %.
934 2004-10-27 Andrew Pinski <pinskia@physics.uc.edu>
936 * parser.c (cp_parser_diagnose_invalid_type_name): Move the q after
939 2004-10-26 Mark Mitchell <mark@codesourcery.com>
941 * name-lookup.c (do_namespace_alias): Use FROB_CONTEXT.
942 * search.c (current_scope): Fix prototype.
945 * search.c (current_scope): Return the innermost non-block scope,
946 not the innermost non-block, non-namespace scope.
947 (at_namespace_scope_p): Adjust accordingly.
948 (dfs_accessible_post): Do not pass namespaces to is_friend.
949 (dfs_walk_once_accessible_r): Likewise.
950 * decl.c (grokvardecl): Adjust call to current_scope.
951 (build_enumerator): Likewise.
952 * parser.c (cp_parser_using_declaration): Likewise.
953 (cp_parser_direct_declarator): Use at_namespace_scope_p instead of
955 (cp_parser_class_head): Adjust call to current_scope.
956 * name-lookup.c (do_namespace_alias): Set the DECL_CONTEXT for the
960 * pt.c (tusbst_copy_and_build): Resolve enumeration constants to
961 their underlying values.
964 * typeck.c (build_binary_op): Honor build_type, even when in a
967 2004-10-26 Nathan Sidwell <nathan@codesourcery.com>
969 * parser.c (cp_lexer_get_preprocessor_token): Remove unneeded
970 padding token checking.
972 2004-10-25 Andrew Pinski <pinskia@physics.uc.edu>
975 * decl.c (grokdeclarator) <case cdk_array>: Remove the call
976 layout_type as it is already done by create_array_type_for_decl.
978 2004-10-22 Nathan Sidwell <nathan@codesourcery.com>
981 * parser.c (eof_token): Make const, correctly initialize rid and
983 (struct cp_lexer): Replace buffer_end pointer with buffer_length
985 (cp_lexer_new_main): Directly grow lexer's buffer here. Don't
987 (cp_lexer_new_from_tokens): Adjust.
988 (cp_lexer_grow_buffer): Remove.
989 (cp_lexer_peek_nth_token, cp_lexer_consume_token,
990 cp_lexer_purge_token): Add const casts.
992 2004-10-21 Mark Mitchell <mark@codesourcery.com>
996 * cp-tree.h (convert_to_base): Change prototype.
997 (build_ptrmemfunc): Likewise.
998 (convert_ptrmem): New function.
999 * call.c (struct conversion): Adjust documentation for base_p.
1000 (standard_conversion): Set base_p for ck_pmem conversions as
1002 (convert_like_real): Use convert_to_base for ck_pmem and ck_ptr
1004 * class.c (convert_to_base): Handle both pointers and objects.
1005 Add nonnull parameter.
1006 (build_vfield_ref): Adjust call to convert_to_base.
1007 * cvt.c (cp_convert_to_pointer): Adjust call to build_ptrmemfunc.
1008 (convert_force): Likewise.
1009 * typeck.c (build_unary_op): Likewise.
1010 (convert_ptrmem): New function.
1011 (build_static_cast_1): Use it.
1012 (build_reinterpret_cast): Allow conversions to vector types.
1013 (get_delta_difference): Add c_cast_p parameter.
1014 (build_ptrmemfunc): Likewise. Adjust calls to
1015 get_delta_difference.
1017 2004-10-21 Andrew Pinski <pinskia@physics.uc.edu>
1020 * error.c (cp_error_at): Output the context as it might be
1021 different file as the other location.
1023 2004-10-21 Kazu Hirata <kazu@cs.umass.edu>
1025 * typeck.c: Fix a comment typo.
1027 2004-10-20 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
1030 * decl.c (make_unbound_class_template): Add PARM_LIST parameter.
1031 * cp-tree.h (make_unbound_class_template): Adjust prototype.
1032 * parser.c (cp_parser_lookup_name): Adjust call to
1033 make_unbound_class_template.
1034 (cp_parser_single_declaration): Handle member class of class
1035 template as template friend parsing correctly.
1036 * friend.c (is_friend): Call is_specialization_of_friend for
1037 template friend class.
1038 (make_friend_class): Handle member class of class template as
1040 * pt.c (is_specialization_of_friend): Likewise.
1041 (instantiate_class_template): Likewise.
1042 (tsubst): Adjust call to make_unbound_class_template.
1044 2004-10-20 Nathan Sidwell <nathan@codesourcery.com>
1046 * typeck.c (composite_pointer_type): Add comment about DR 195
1047 (build_reinterpret_cast_1): Add for_reinterpret_cast_p parameter.
1048 Allow function pointer conversions that DR195 suggests.
1049 (build_reinterpret_cast, build_c_cast): Update
1050 build_reinterpret_cast_1 calls.
1052 2004-10-20 Kazu Hirata <kazu@cs.umass.edu>
1054 * call.c, typeck.c: Fix comment typos.
1056 2004-10-20 Nathan Sidwell <nathan@codesourcery.com>
1058 * parser.c (cp_token_position): New typedef. Define VEC thereof.
1059 (struct cp_lexer): Allow buffer and buffer_end to be NULL. Make
1060 next_token and last_token cp_token_position. Make saved_tokens a
1061 VEC(cp_token_position).
1062 (eof_token): New static variable.
1063 (CP_SAVED_TOKENS_SIZE): Rename to ...
1064 (CP_SAVED_TOKEN_STACK): ... here.
1065 (cp_lexer_new_main): Adjust main lexer creation and buffer
1067 (cp_lexer_new_from_tokens): Do not copy the tokens, merely point
1068 to the parent buffer. Do not append eof token.
1069 (cp_lexer_destroy): Only free buffer if non-NULL. Free token
1071 (cp_lexer_next_token, cp_lexer_prev_token): Remove.
1072 (cp_lexer_token_position, cp_lexer_token_at): New.
1073 (cp_lexer_saving_tokens): Adjust. Make inline.
1074 (cp_lexer_advance_token, cp_lexer_token_difference): Remove.
1075 (cp_lexer_peek_token_emit_debug_info): Fold into ...
1076 (cp_lexer_peek_token): ... here.
1077 (cp_lexer_peek_nth_token): Don't peek past EOF.
1078 (cp_lexer_consume_token): Set next_token to eof_token, if reaching
1080 (cp_lexer_purge_token): Adjust eof setting.
1081 (cp_lexer_purge_tokens_after): Likewise.
1082 (cp_lexer_save_tokens): Push next_token directly.
1083 (cp_lexer_commit_tokens): Adjust.
1084 (cp_lexer_rollback_tokens): Pop next_token directly.
1085 (cp_parser_check_for_invalid_template_id): Adjust token purging.
1086 (cp_parser_translation_unit): Do not consume the EOF.
1087 (cp_parser_nested_name_specifier_opt): Adjust token purging.
1088 (cp_parser_template_id, cp_parser_template_name): Likewise.
1090 2004-10-19 Mark Mitchell <mark@codesourcery.com>
1093 * call.c (struct conversion): Add base_p.
1094 (convert_like): Add c_cast_p argument.
1095 (convert_like_with_conversion): Likewise.
1096 (build_conv): Clear base_p.
1097 (standard_conversion): Set it, for derived-to-base conversions.
1098 (convert_like_real): Add c_cast_p parameter. Handle pointer
1099 conversions directly rather than relying on ocp_convert.
1100 (perform_direct_initialization_if_possible): Add c_cast_p
1102 * cp-tree.h (perform_direct_initialization_if_possible): Change
1104 (convert_member_func_to_ptr): New function.
1105 * typeck.c (check_for_casting_away_constness): Add diag_fn
1107 (build_static_cast_1): New function, split out from ...
1108 (build_static_cast): ... here. Use build_static_cast_1.
1109 (build_reinterpret_cast_1): New function, split out from ...
1110 (build_reinterpret_cast): ... here. Use build_reinterpret_cast_1.
1111 (build_const_cast_1): New function, split out from ...
1112 (build_const_cast): ... here. Use build_const_cast_1.
1113 (build_c_cast): Rewrite to use build_const_cast_1,
1114 build_static_cast_1, and build_reinterpret_cast_1.
1115 (convert_member_func_to_ptr): New function.
1117 2004-10-19 Paolo Bonzini <bonzini@gnu.org>
1120 * parser.c (enum cp_parser_prec): Give relational expressions
1121 a higher precedence than equality expressions.
1123 2004-10-15 Nathan Sidwell <nathan@codesourcery.com>
1125 * cp-tree.h (UNIQUELY_DERIVED_FROM_P): Adjust lookup_base call.
1126 (ACCESSIBLY_UNIQUELY_DERIVED_P): Remove.
1127 (PUBLICLY_UNIQUELY_DERIVED_P): Adjust lookup_base call.
1128 (enum base_access): Reorganize.
1129 (accessible_base_p, accessible_p): Add consider_local_p parameter.
1130 * call.c (standard_conversion): Update comment about
1132 (enforce_access): Adjust accessible_p call.
1133 (build_over_call): Adjust accessible_base_p call.
1134 * class.c (convert_to_base): Adjust lookup_base call.
1135 (build_vtbl_ref_1): Likewise.
1136 (warn_about_ambiguous_bases): Likewise. Add early exit.
1137 * cvt.c (convert_to_pointer_force) Adjust lookup_base call.
1138 * search.c (accessible_base_p): Add consider_local_p parameter.
1139 (lookup_base): Pass consider_local_p to accessible_base_p call.
1140 (friend_accessible_p): Check whether scope is a class member.
1141 Remove unnecessary class template check.
1142 (accessible_p): Add consider_local_p parameter. Use it.
1143 (adjust_result_of_qualified_name_lookup): Adjust lookup_base call.
1144 * tree.c (maybe_dummy_object): Likewise.
1145 * typeck.c (comp_except_type): Use PUBLICLY_UNIQUELY_DERIVED_P.
1146 (build_class_member_access_expr): Adjust lookup_base call.
1147 * typeck2.c (binfo_or_else): Likewise.
1148 * rtti.c (build_dynamic_cast_1): Access can consider friendship
1151 2004-10-17 Giovanni Bajo <giovannibajo@gcc.gnu.org>
1154 * decl2.c (grokfield): Apply attributes also to TYPE_DECLs.
1156 2004-10-16 Giovanni Bajo <giovannibajo@gcc.gnu.org>
1159 * parser.c (cp_parser_parenthesized_expression_list): Fold
1160 non-dependent expressions in attribute lists.
1162 2004-10-15 Mark Mitchell <mark@codesourcery.com>
1165 * decl.c (declare_global_var): Use the return value from pushdecl.
1168 * parser.c (cp_parser_simple_declaration): Do not diagnose invalid
1169 type names if we have already found a valid type.
1170 (cp_parser_member_declaration): Likewise.
1173 * parser.c (cp_parser_member_specification_opt): Handle
1176 2004-10-15 Kazu Hirata <kazu@cs.umass.edu>
1178 * dump.c, g++spec.c, repo.c: Update copyright.
1180 2004-10-15 Kazu Hirata <kazu@cs.umass.edu>
1182 * decl.c: Fix a comment typo.
1184 2004-10-13 Andrew Pinski <pinskia@physics.uc.edu>
1187 * name-lookup.c (parse_using_directive): If we have a
1188 error_mark_node, do not set the decl namespace associations
1191 2004-10-14 Mark Mitchell <mark@codesourcery.com>
1194 * decl.c (cp_finish_decl): Do not call expand_static_init more
1195 than once for a single variable.
1197 2004-10-14 Matt Austern <austern@apple.com>
1199 * Make-lang.in (pt.o): depends on pointer-set.h
1200 * cp-tree.h (cp_walk_subtrees): Last argument is pointer_set_t* now.
1201 * pt.c (struct pair_fn_data): Use pointer_set_t, not htab_t
1202 (for_each_template_parm): Convert from htab_t to pointer_set_t.
1203 * tree.c (cp_walk_subtrees): Last argument is pointer_set_t* now.
1205 2004-10-13 Andrew Pinski <pinskia@physics.uc.edu>
1208 * semantics.c (finish_for_expr): Convert expression to void
1209 so that we don't create temporaries for a?b:c.
1211 2004-10-13 Kazu Hirata <kazu@cs.umass.edu>
1213 * search.c: Fix a comment typo.
1215 2004-10-12 Nathan Sidwell <nathan@codesourcery.com>
1217 * class.c (dfs_modify_vtables): Simplify condition. Return
1218 dfs_skip_bases as appropriate.
1219 (modify_all_vtables): Walk in pre-order.
1220 * search.c (dfs_walk_all, dfs_walk_once_r,
1221 dfs_walk_once_accessible_r): Assert post order function never
1222 returns dfs_skip_bases.
1224 * search.c (struct lookup_base_data_s): New.
1225 (lookup_base_r): Replace with ...
1226 (dfs_lookup_base): ... this.
1227 (lookup_base): Use dfs_walk_all.
1229 2004-10-12 Kazu Hirata <kazu@cs.umass.edu>
1231 * search.c: Fix comment typos.
1233 2004-10-11 Mark Mitchell <mark@codesourcery.com>
1236 * parser.c (cp_parser_declarator): Add member_p parameter.
1237 (cp_parser_condition): Adjust calls to cp_parser_declarator.
1238 (cp_parser_explicit_instantiation): Likewise.
1239 (cp_parser_init_declarator): Likewise.
1240 (cp_parser_direct_declarator): Add member_p parameter. Do not
1241 parse tentatively when parsing the parameters to a member.
1242 (cp_parser_type_id): Adjust calls to cp_parser_declarator.
1243 (cp_parser_parameter_declaration): Likewise.
1244 (cp_parser_member_declaration): Likewise.
1245 (cp_parser_exception_declaration): Likewise.
1248 * cp-tree.h (CLASSTYPE_TEMPLATE_SPECIALIZATION): Add a comment.
1249 * pt.c (optimize_specialization_lookup_p): Do not optimize lookups
1250 for members of partial or explicit specializations.
1253 * decl2.c (finish_anon_union): Robustify.
1255 2004-10-11 Nathan Sidwell <nathan@codesourcery.com>
1257 * cp-tree.h (get_dynamic_cast_base_type): Rename to ...
1258 (dcast_base_hint): ... here.
1259 * rtti.c (build_dynamic_cast_1): Use dcast_base_hint.
1260 * search.c (struct dcast_data_s): New.
1261 (dynamic_cast_base_recurse): Remove. Replace with ...
1262 (dfs_dcast_hint_pre, dfs_dcast_base_post): ... these. New.
1263 (get_dynamic_cast_base_type): Rename to ...
1264 (dcast_base_hint): ... here. Use dfs_walk_once_accessible.
1265 (accessible_r): Remove.
1266 (dfs_accessible_post): New, broken out of accessible_r.
1267 (accessible_p): Use dfs_walk_once_accessible.
1268 (dfs_walk_once_accessible_r): New. From accessible_r.
1269 (dfs_walk_once_accessible): New. From acessible_p.
1271 * cp-tree.h (SAME_BINFO_TYPE_P): New.
1272 * class.c (build_base_path): Use SAME_BINFO_TYPE_P to compare
1274 (convert_to_base_statically, determine_primary_bases,
1275 update_vtable_entry_for_fn, dfs_modify_vtables, build_vtt_inits,
1276 dfs_build_secondary_vptr_vtt_inits, build_ctor_vtbl_group,
1277 accumulate_vtbl_inits, dfs_accumulate_vtbl_inits,
1278 build_vtbl_initializer, add_vcall_offset_vtbl_entries_1): Likewise.
1279 * init.c (expand_member_init): Likewise.
1280 * search.c (lookup_base_r, dynamic_cast_base_recurse,
1281 binfo_via_virtual, copied_binfo, binfo_for_vbase,
1282 original_binfo): Likewise.
1283 * tree.c (copy_binfo): Likewise.
1285 2004-10-11 Kazu Hirata <kazu@cs.umass.edu>
1287 * semantics.c: Fix comment typos.
1289 2004-10-10 Andrew Pinski <pinskia@physics.uc.edu>
1294 * semantics.c (maybe_cleanup_point_expr): Call
1295 fold_build_cleanup_point_expr.
1296 (maybe_cleanup_point_expr_void): New function.
1297 (add_decl_expr): Call maybe_cleanup_point_expr_void.
1298 (finish_expr_stmt): Likewise.
1299 (finish_return_stmt): Likewise.
1300 (finish_for_expr): Likewise.
1301 (finish_asm_stmt): Likewise.
1302 * typeck.c (condition_conversion): Call
1303 fold_build_cleanup_point_expr.
1305 2004-10-10 Andrew Pinski <pinskia@physics.uc.edu>
1308 * semantics.c (add_decl_expr): If the decl has a size which
1309 has side effects then the decl expression needs a cleanup point.
1311 2004-10-10 Mark Mitchell <mark@codesourcery.com>
1314 * decl.c (grokdeclarator): Robustify error-recovery on invalid
1317 2004-10-10 Gabriel Dos Reis <gdr@integrable-solutions.net>
1319 Convert diagnostics to use quoting flag q 7/n
1320 * typeck.c (composite_pointer_type_r, composite_pointer_type,
1321 cxx_sizeof_or_alignof_type, cxx_sizeof_or_alignof_expr,
1322 string_conv_p, build_class_member_access_expr,
1323 build_class_member_access_expr, lookup_destructor,
1324 finish_class_member_access_expr, build_indirect_ref,
1325 get_member_function_from_ptrfunc, build_function_call,
1326 convert_arguments, build_binary_op, pointer_diff, build_unary_op,
1327 check_for_casting_away_constness, build_static_cast,
1328 build_reinterpret_cast, build_const_cast, build_c_cast,
1329 build_modify_expr, get_delta_difference, build_ptrmemfunc,
1330 dubious_conversion_warnings, convert_for_assignment,
1331 convert_for_initialization,
1332 maybe_warn_about_returning_address_of_local, check_return_expr):
1335 * typeck2.c (error_not_base_type, readonly_error,
1336 abstract_virtuals_error, cxx_incomplete_type_diagnostic,
1337 store_init_value, digest_init, build_x_arrow,
1338 build_m_component_ref, require_complete_eh_spec_types): Likewise.
1340 * tree.c (cp_build_qualified_type_real,
1341 handle_java_interface_attribute, handle_init_priority_attribute):
1344 * semantics.c (finish_asm_stmt, finish_non_static_data_member,
1345 finish_pseudo_destructor_expr,
1346 check_template_template_default_arg, begin_class_definition,
1347 finish_base_specifier, qualified_name_lookup_error,
1348 finish_id_expression, finish_typeof): Likewise.
1350 * search.c (lookup_base, check_final_overrider,
1351 look_for_overrides_r): Likewise.
1353 * rtti.c (get_tinfo_decl, build_dynamic_cast_1): Likewise.
1355 2004-10-09 Mark Mitchell <mark@codesourcery.com>
1358 * error.c (dump_expr): Correct handling of AGGR_INIT_EXPRs using a
1362 * init.c (build_new): Correct comments.
1363 * parser.c (cp_parser_new_expression): Use NULL_TREE for nelts in
1367 * parser.c (cp_parser_postfix_dot_deref_expression): If the
1368 pseduo-destructor-name production does not work, fall back to the
1369 ordinary production.
1372 * tree.c (cp_tree_equal): Handle a BASELINK.
1375 * cp-tree.h (check_var_type): New function.
1376 * decl.c (check_var_type): New function, split out from ...
1377 (grokdeclarator): ... here.
1378 * pt.c (tsubst_decl): Use check_var_type.
1381 * decl.c (grokdeclarator): Disallow declarations of operators as
1384 2004-10-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1387 * error.c (dump_expr): Add missing case for RDIV_EXPR.
1389 2004-10-08 Kazu Hirata <kazu@cs.umass.edu>
1391 * pt.c, search.c: Fix comment typos.
1393 2004-10-08 Nathan Sidwell <nathan@codesourcery.com>
1395 * cp-tree.h (dfs_walk, dfs_walk_real, dfs_unmark, markedp,
1397 (dfs_skip_bases, dfs_walk_all, dfs_walk_once): New.
1398 * class.c (struct find_final_overrider_data): Remove most_derived,
1399 vpath_list and vpath fields. Add path field.
1400 (dfs_find_final_ocerrider_1): Add DEPTH parameter. Adjust.
1401 (dfs_find_final_overrider): Rename to ...
1402 (dfs_find_final_overrider_pre): ... here. Adjust.
1403 (dfs_find_final_overrider_post): Adjust.
1404 (dfs_find_final_overrider_q): Fold into
1405 dfs_find_final_overrider_pre.
1406 (find_final_overrider): Adjust dfs searching.
1407 (dfs_modify_vtables): Don't mark binfo here.
1408 (modify_all_vtables): Use dfs_walk_once.
1409 (build_vtt_inits): Likwise. Use dfs_walk_all.
1410 (dfs_build_secondary_vptr_vtt_inits): Don't mark binfo here.
1411 Return dfs_skip_bases as appropriate.
1412 (dfs_fixup_binfo_vtbls): Return dfs_skip_bases as appropriate.
1413 * init.c (dfs_initialized_vtbl_ptrs): Return dfs_skip_bases as
1414 appropriate. Don't mark binfo here.
1415 (initialize_vtbl_ptrs): Use dfs_walk_once.
1416 * search.c (struct vbase_info): Remove unused struct.
1417 (access_in_type): Use dfs_walk_once.
1418 (dfs_access_in_type): Don't mark binfo here.
1419 (dfs_accessible_queue_p, dfs_accessible_p) Remove.
1421 (accessible_r): ... here. New. Specialize dfs_walk_once.
1422 (accessible_p): Use accessible_r.
1423 (lookup_field_queue_p): Remove. Fold into ...
1424 (lookup_field_r): ... here. Adjust.
1425 (lookup_member): Use dfs_walk_all.
1426 (dfs_walk_real, dfs_walk): Replace with ...
1427 (dfs_walk_all, dfs_walk_once): ... these.
1428 (dfs_walk_once_r, dfs_unmark_r): Workers for dfs_walk_once.
1429 (dfs_unmark, unmarkedp, markedp): Remove.
1430 (dfs_get_pure_virtuals): Don't mark binfo here.
1431 (get_pure_virtuals): Use dfs_walk_once.
1432 (dfs_debug_unmarked_p): Remove. Fold into ...
1433 (dfs_debug_mark): ... here.
1434 (note_debug_info_needed): Use dfs_walk_all.
1436 2004-10-07 Andrew Pinski <pinskia@physics.uc.edu>
1438 * pt.c (tsubst_expr) <case ASM_EXPR>: Look passed the
1439 CLEANUP_POINT_EXPR to get the asm expression.
1441 2004-10-07 Mark Mitchell <mark@codesourcery.com>
1443 * cp-tree.h (ICS_USER_FLAG): Remove comment about obsolete flag.
1444 (DECL_MEMBER_TEMPLATE_P): New macro.
1445 (is_member_template): Remove.
1446 (class_method_index_for_fn): New function.
1447 * pt.c (build_over_call): Use DECL_MEMBER_TEMPLATE_P.
1448 * class.c (finish_struct_methods): Remove out-of-date comment.
1449 * decl.c (copy_fn_p): Use DECL_MBMER_TEMPLATE_P.
1450 * decl2.c (check_classfn): Use DECL_MEMBER_TEMPLATE_P and
1451 class_method_index_for_fn.
1452 * pt.c (is_member_template): Remove.
1453 (is_member_template_class): Likewise.
1454 (optimize_specialization_lookup_p): New function.
1455 (retrieve_specialization): Optimize lookups for members that are
1456 not member templates.
1457 (register_specialization): Adjust accordingly.
1458 (build_template_decl): Add member_template_p parameter. Set
1459 DECL_MEMBER_TEMPLATE_P.
1460 (process_partial_specialization): Adjust call to
1461 retrieve_specialization.
1462 (push_template_decl_real): Determine whether the template is a
1464 (lookup_template_class): Use retrieve_specialization.
1465 (tsubst_decl): Adjust call to retrieve_specialization.
1466 (tsubst_exception_specification): New function.
1468 (tsubst_copy): Use DECL_MEMBER_TEMPLATE_P.
1469 (instantiate_template): Adjust call to retrieve_specialization.
1470 (regenerate_decl_from_template): Do not actually generate a new
1472 (instantiate_decl): Adjust call to retrieve_specialization.
1473 (class_method_index_for_fn): New method.
1475 2004-10-07 Andrew Pinski <pinskia@physics.uc.edu>
1477 * parser.c (cp_parser_asm_definition): Look passed the
1478 CLEANUP_POINT_EXPR to get the asm expression.
1480 2004-10-06 Andrew Pinski <pinskia@physics.uc.edu>
1483 * semantics.c (finish_asm_stmt): Asm expressions need cleanup
1486 2004-10-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
1488 Convert diagnostics to use quoting flag q 6/n
1489 * pt.c (finish_member_template_decl, check_specialization_scope,
1490 maybe_process_partial_specialization, determine_specialization,
1491 check_explicit_specialization, maybe_check_template_type,
1492 process_partial_specialization, check_default_tmpl_args,
1493 push_template_decl_real, redeclare_class_template,
1494 convert_nontype_argument, coerce_template_parms,
1495 lookup_template_class, push_tinst_level,
1496 instantiate_class_template, tsubst_arg_types,
1497 tsubst_function_type, tsubst, tsubst_qualified_id,
1498 tsubst_copy_and_build, check_instantiated_args,
1499 do_decl_instantiation, do_type_instantiation,
1500 invalid_nontype_parm_type_p, check_specialization_namespace,
1501 convert_template_argument, determine_specialization,
1502 check_template_shadow, tsubst_decl
1503 instantiate_pending_templates): Use quoting marks.
1505 2004-10-05 Nathan Sidwell <nathan@codesourcery.com>
1508 * parser.c (cp_parser_postfix_expression): Inhibit Koenig when
1509 unqualified lookup finds a member function.
1511 2004-10-04 Gabriel Dos Reis <gdr@integrable-solutions.net>
1513 Convert diagnostics to use quoting flag q 5/n
1514 * parser.c (cp_parser_name_lookup_error,
1515 cp_parser_diagnose_invalid_type_name,
1516 cp_parser_primary_expression, cp_parser_unqualified_id,
1517 cp_parser_nested_name_specifier_opt, cp_parser_labeled_statement,
1518 cp_parser_jump_statement, cp_parser_simple_declaration,
1519 cp_parser_decl_specifier_seq, cp_parser_mem_initializer_id,
1520 cp_parser_type_parameter, cp_parser_template_id,
1521 cp_parser_template_name, cp_parser_direct_declarator,
1522 cp_parser_parameter_declaration_list, cp_parser_class_head,
1523 cp_parser_base_specifier, cp_parser_lookup_name,
1524 cp_parser_late_parsing_default_args,
1525 cp_parser_optional_template_keyword
1526 cp_parser_elaborated_type_specifier, cp_parser_check_class_key,
1527 cp_parser_check_access_in_redeclaration): Use quoting marks.
1529 * name-lookup.c (supplement_binding, pushdecl,
1530 check_for_out_of_scope_variable, validate_nonmember_using_decl,
1531 do_nonmember_using_decl, lookup_tag, set_decl_namespace,
1532 push_namespace, do_namespace_alias, do_using_directive,
1533 ambiguous_decl, lookup_namespace_name, add_function): Likewise.
1535 * method.c (use_thunk): Likewise.
1537 * lex.c (unqualified_name_lookup_error,
1538 unqualified_fn_lookup_error): Likewise.
1540 2004-10-04 Gabriel Dos Reis <gdr@integrable-solutions.net>
1542 Convert diagnostics to use quoting flag q 4/n
1543 * except.c (decl_is_java_type, build_throw,
1544 is_admissible_throw_operand, check_handlers_1, check_handlers):
1545 Use quoting formats.
1546 * friend.c (add_friend, make_friend_class, do_friend): Likewise.
1547 * init.c (sort_mem_initializers, emit_mem_initializers,
1548 member_init_ok_or_else, expand_member_init, is_aggr_type,
1549 build_offset_ref, build_java_class_ref): Likewise.
1551 2004-10-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
1553 Convert diagnostics to use quoting flag q 3/n
1554 * decl.c (pop_label, duplicate_decls, redeclaration_error_message,
1555 redeclaration_error_message, lookup_label, check_goto,
1556 make_typename_type, make_unbound_class_template,
1557 fixup_anonymous_aggr, check_tag_decl, start_decl, start_decl_1,
1558 grok_reference_init, layout_var_decl, maybe_commonize_var,
1559 check_for_uninitialized_const_var, reshape_init_array,
1560 reshape_init, check_initializer, cp_finish_decl,
1561 member_function_or_else, bad_specifiers, grokfndecl, grokvardecl,
1562 check_static_variable_definition, compute_array_index_type,
1563 create_array_type_for_decl, check_special_function_return_type,
1564 grokdeclarator, check_default_argument, grokparms,
1565 grok_ctor_properties, grok_op_properties,
1566 check_elaborated_type_specifier, xref_tag, finish_enum,
1567 build_enumerator, check_function_type, start_preparsed_function,
1568 store_parm_decls): Use quoting formats.
1569 * decl2.c (grok_array_decl, delete_sanity, check_member_template,
1570 check_java_method, check_classfn, finish_static_data_member_decl,
1571 grokfield, grokbitfield, grok_function_init,
1572 build_anon_union_vars, coerce_new_type, coerce_delete_type,
1573 check_default_args): Likewise.
1574 * parser.c (cp_parser_decl_specifier_seq): Likewise.
1576 2004-10-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
1578 Convert diagnostics to use quoting flag q 2/n
1579 * class.c (build_base_path, add_method, alter_access,
1580 handle_using_decl, check_bases,
1581 maybe_warn_about_overly_private_class, find_final_overrider,
1582 warn_hidden, finish_struct_anon, add_implicitly_declared_members,
1583 check_bitfield_decl, check_field_decls, layout_empty_base,
1584 build_base_field, check_methods, layout_virtual_bases,
1585 warn_about_ambiguous_bases, layout_class_type, finish_struct_1,
1586 resolve_address_of_overloaded_function, instantiate_type,
1587 note_name_declared_in_class): Use format flag "q" for quoting.
1589 2004-10-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
1591 Convert diagnostics to use quoting flag q 1/n
1592 * error.c (locate_error): Ignore quoting flag q.
1593 * call.c (build_user_type_conversion_1, build_operator_new_call,
1594 build_object_call, op_error, build_conditional_expr,
1595 build_new_op, build_op_delete_call, enforce_access,
1596 convert_like_real, convert_arg_to_ellipsis, build_x_va_arg,
1597 convert_default_arg, build_over_call, build_new_method_call,
1598 joust, perform_implicit_conversion, initialize_reference): Use the
1601 2004-10-03 Andrew Pinski <pinskia@physics.uc.edu>
1604 * typeck.c (build_reinterpret_cast): Return if the inner type
1607 2004-10-01 Jan Hubicka <jh@suse.cz>
1609 * semantics.c (expand_body): Update call of tree_rest_of_compilation.
1611 2004-09-30 Nathan Sidwell <nathan@codesourcery.com>
1613 * cp-tree.h (struct lang_decl): Shrink by reordering fields and
1614 turning operator_code and fixed_offset into bitfields.
1616 2004-09-29 Joseph S. Myers <jsm@polyomino.org.uk>
1618 * decl.c (duplicate_decls): Merge TREE_DEPRECATED.
1620 2004-09-29 Jason Merrill <jason@redhat.com>
1622 PR tree-optimization/17697
1623 * decl.c (duplicate_decls): Copy TREE_NOTHROW from newdecl to olddecl.
1625 2004-09-28 Jason Merrill <jason@redhat.com>
1628 * class.c (build_base_field): Set TYPE_MODE.
1630 2004-09-28 Roger Sayle <roger@eyesopen.com>
1633 * g++spec.c (lang_specific_driver): Unrecognized libraries, other
1634 than -lc and -lm, may require linking against libstc++.
1636 2004-09-28 Kazu Hirata <kazu@cs.umass.edu>
1638 * tree.c: Fix a comment typo.
1640 2004-09-28 Nathan Sidwell <nathan@codesourcery.com>
1642 * class.c (VTT_TOP_LEVEL_P, VTT_MARKED_BINFO_P): Remove.
1643 (struct secondary_vptr_vtt_init_data_s): New.
1644 (build_vtt_inits): Adjust dfs_walkers.
1645 (dfs_build_secondary_vptr_vtt_inits): Caller data is a
1646 secondary_vptr_vtt_init_data_s structure. Adjust.
1647 (dfs_ctor_vtable_bases_queue_p): Remove.
1648 (dfs_fixup_binfo_vtbls): No need to clear BINFO_MARKED. Simplify.
1650 * pt.c (struct get_template_base_data_s): Remove.
1651 (get_template_base_r): Fold into get_template_base.
1652 (get_template_base): Walk base binfos directly in inheritance
1655 2004-09-27 Mark Mitchell <mark@codesourcery.com>
1658 * cp-tree.h (fold_if_not_in_template): New function.
1659 * call.c (build_conditional_expr): Use fold_if_not_in_template.
1660 (build_cxx_call): Likewise.
1661 * cvt.c (convert_to_complex): Likewise.
1662 (ocp_convert): Likewise.
1663 (convert): Likewise.
1664 (convert_force): Likewise.
1665 * decl.c (compute_array_index_type): Clear
1666 processing_template_decl while folding array bounds.
1667 * pt.c (convert_nontype_argument): Clear
1668 processing_template_decl while processing non-type argument
1670 * tree.c (fold_if_not_in_template): New function.
1671 * typeck.c (build_class_member_access_expr): Use
1672 fold_if_not_in_template.
1673 (build_array_ref): Likewise.
1674 (build_binary_op): Likewise. Do not try to optimize computations
1675 when processing templates.
1676 (cp_pointer_int_sum): Use fold_if_not_in_template.
1677 (pointer_diff): Likewise.
1678 (build_unary_op): Likewise.
1679 (build_reinterpret_cast): Likewise.
1680 (get_delta_difference): Likewise.
1681 (expand_ptrmemfunc_cst): Likewise.
1682 (dubious_conversion_warnings): Likewise.
1684 2004-09-27 Matt Austern <austern@apple.com>
1686 * cp/parser.c (struct cp_token): New one-bit field , implicit_extern_c
1687 (cp_lexer_get_preprocessor_token): Set implicit_extern_c for
1688 tokens that come from headers that are implicitly extern "C".
1689 (struct cp_parser): new one-bit field, implicit_extern_c.
1690 (cp_parser_new): Set parser's implicit_extern_c to false.
1691 (cp_parser_translation_unit): Pop lang context if we were in a
1692 header that was implicitly extern "C".
1693 (cp_parser_declaration_seq_opt): Push/pop lang context as
1694 required by the token's and parser's implicit_extern_c.
1696 2004-09-27 Mark Mitchell <mark@codesourcery.com>
1699 * cp-tree.h (shared_member_p): Declare.
1700 * search.c (shared_member_p): Give it external linkage.
1701 * semantics.c (finish_qualified_id_expr): Use it.
1702 (finish_id_expression): Likewise.
1705 * semantics.c (finish_id_expression): Do not add "this->" to
1706 static member functions.
1708 2004-09-27 Nathan Sidwell <nathan@codesourcery.com>
1711 * error.c (dump_type): Change TREE_VEC case into TREE_BINFO.
1713 * class.c (struct count_depth_data): Remove.
1714 (dfs_depth_post, dfs_depth_q): Remove.
1715 (find_final_overrider): Use number of vbase classes as depth
1718 * cp-tree.h (types_overlap_p): Remove.
1719 * search.c (struct overlap_info): Remove.
1720 (dfs_check_overlap, dfs_no_overlap_yet, types_overlap_p): Remove.
1722 * pt.c (GTB_VIA_VIRTUAL, GTB_IGNORE_TYPE): Remove.
1723 (get_template_base_recursive): Remove. Replace with ...
1724 (get_template_base_r): ... this.
1725 (struct get_template_base_data_s): New.
1726 (get_template_base): Use get_template_base_r via dfs_walk. Always
1727 return NULL on failure.
1728 (unify): Remove error_mark_node check from get_template_base result.
1730 2004-09-24 Paolo Bonzini <bonzini@gnu.org>
1732 * parser.c (cp_parser_expression_stack): Clarify why it is
1733 an array of NUM_PREC_VALUES elements.
1734 (cp_parser_binary_expression): Clarify why we do not need to
1735 handle stack overflow.
1737 2004-09-24 Nathan Sidwell <nathan@codesourcery.com>
1740 * search.c (lookup_field_queue_p): Correct check for hidden base.
1742 * search.c (bfs_walk): Remove.
1743 (lookup_member): Use dfs_walk_real.
1744 (dfs_walk_real): Move and adjust documentation from bfs_walk.
1746 2004-09-23 Zack Weinberg <zack@codesourcery.com>
1748 * decl.c (grokfndecl): If ::main is found not to return int,
1749 correct it after issuing a diagnostic.
1750 (grokdeclarator): If the incoming type was error_mark_node, do
1751 not complain about declaring something with no type.
1752 (start_function): Change check for ::main not returning int to
1753 an assertion, as grokfndecl now catches this when the user did it.
1754 * init.c (perform_member_init, sort_mem_initializers)
1755 (emit_mem_initializers): Make most diagnostics be issued on
1756 the line of current_function_decl, not whatever the current
1758 * parser.c (cp_lexer_peek_token_emit_debug_info): Surround
1759 definition and declaration with #ifdef ENABLE_CHECKING.
1760 Avoid unnecessary use of fprintf.
1761 (cp_lexer_print_token, cp_lexer_debug_stream): Adjust stub
1762 definitions to avoid warnings.
1763 (cp_lexer_new_main): Add assertion that first token is not a
1765 (cp_lexer_new_from_token_array): Fold into ...
1766 (cp_lexer_new_from_tokens): ... here. Add assertion that
1767 first token is not a padding token.
1768 (cp_lexer_set_source_position_from_token): Move nearer to callers.
1769 Remove unused lexer argument.
1770 (cp_lexer_peek_token): Just print debugging report (if enabled)
1771 and return lexer->next_token.
1772 (cp_lexer_skip_purged_tokens): Delete.
1773 (cp_lexer_next_token_is, cp_lexer_next_token_is_not): Make
1774 inline, simplify bodies.
1775 (cp_lexer_peek_nth_token): Add debugging report a la
1776 cp_lexer_peek_token.
1777 (cp_lexer_consume_token): Correct commentary. Advance over
1778 purged tokens here. Set current source position here, from
1779 token to be returned. Avoid unnecessary use of fprintf.
1780 (cp_lexer_purge_token): Advance next_token pointer over this and
1781 subsequent purged tokens.
1782 (cp_parser_error): Adjust source position to that of the
1784 (cp_parser_push_lexer_for_tokens, cp_parser_pop_lexer): New functions.
1785 (cp_parser_string_literal): Remove some excessive cleverness.
1786 (cp_parser_enum_specifier): Call start_enum before consuming
1788 (cp_parser_member_declaration): Make the "extra semicolon"
1789 diagnostic consistently-worded with the other place this is
1790 diagnosed. Explicitly set the diagnostic location to the
1791 location of the offending semicolon.
1792 (cp_parser_enclosed_template_argument_list): Use %</%> quoting
1793 in diagnostics. Do not use cp_parser_require. Set location
1794 of diagnostics about improper use of '>>' to location of
1796 (cp_parser_late_parsing_for_member):
1797 Use cp_parser_push_lexer_for_tokens and cp_parser_pop_lexer.
1798 (cp_parser_late_parsing_default_args): Likewise. Manually
1799 move some logic outside the loop.
1801 2004-09-23 Andrew Pinski <pinskia@physics.uc.edu>
1804 * cvt.c (cp_convert_to_pointer): Return early when the type is
1807 2004-09-21 Fariborz Jahanian <fjahanian@apple.com>
1811 * decl.c (grokfndecl): Add new argument "attrlist", use it
1812 to call cplus_decl_attributes.
1813 (start_function): Remove call to cplus_decl_attributes.
1814 * cvt.c (ocp_convert): Add support to use type conversion
1815 function to vector type.
1816 * parser.c (cp_parser_conversion_type_id): Add attributes, if any,
1819 2004-09-23 Paolo Bonzini <bonzini@gnu.org>
1823 * parser.c (cp_parser_token_tree_map_node,
1824 cp_parser_pm_expression, cp_parser_additive_expression,
1825 cp_parser_multiplicative_expression, cp_parser_shift_expression,
1826 cp_parser_relational_expression, cp_parser_equality_expression,
1827 cp_parser_and_expression, cp_parser_exclusive_or_expression,
1828 cp_parser_inclusive_or_expression,
1829 cp_parser_logical_and_expression,
1830 cp_parser_logical_or_expression): Removed.
1831 (enum cp_parser_prec, struct cp_parser_token_tree_map_node,
1832 binops, binops_by_token): New.
1833 (cp_parser_assignment_expression): Use cp_parser_binary_expression.
1834 (cp_parser_new): Initialize binops_by_token.
1835 (cp_parser_binary_expression): Rewritten.
1838 2004-09-23 Kazu Hirata <kazu@cs.umass.edu>
1840 * parser.c: Fix a comment typo.
1842 2004-09-23 Nathan Sidwell <nathan@codesourcery.com>
1845 * decl.c (xref_basetypes): Look through typedefs before checking
1848 2004-09-22 Nathan Sidwell <nathan@codesourcery.com>
1850 * cp-tree.h (unemitted_tinfo_decls): Make a VEC(tree).
1851 * decl2.c (cp_finish_file): Adjust tinfo decl emission loop.
1852 * rtti.c (unemitted_tinfo_decls): Make a VEC(tree).
1853 (init_rtti_processing): Initialize it to something realistic.
1854 (get_tinfo_decl): Adjust pushing the new decl.
1856 * cp-tree.h (struct lang_type_class): Remove marked flags, add
1857 diamond_shaped and repeated_base flags. Reorder to keep 8-bit blocks.
1858 (TYPE_MARKED_P): New.
1859 (CLASSTYPE_DIAMOND_SHAPED_P, CLASSTYPE_REPEATED_BASE_P): New.
1860 (CLASSTYPE_MARKED_N, SET_CLASSTYPE_MARKED_N,
1861 CLEAR_CLASSTYPE_MARKED_N): Remove.
1862 (CLASSTYPE_MARKED_*, SET_CLASSTYPE_MARKED_*,
1863 CLEAR_CLASSTYPE_MARKED_*): Remove.
1864 * decl.c (xref_basetypes): Use TYPE_MARKED_P. Determine diamond
1865 shaped and repeated base properties.
1866 * lex.c (cxx_make_type): Don't clear TYPE_ALIAS_SET.
1867 * rtti.c (dfs_class_hint_mark, dfs_class_hint_unmark,
1868 class_hint_flags): Remove.
1869 (get_pseudo_ti_init): Use CLASSTYPE_REPEATED_BASE_P and
1870 CLASSTYPE_DIAMOND_SHAPED_P.
1872 2004-09-21 Ziemowit Laski <zlaski@apple.com>
1874 * cp-lang.c (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Moved here from
1876 (objcp_tsubst_copy_and_build): Reformat function signature.
1877 * cp-objcp-common.h (objcp_tsubst_copy_and_build): Likewise.
1878 (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Moved to cp-lang.c.
1880 2004-09-21 Zack Weinberg <zack@codesourcery.com>
1882 * parser.c (cp_lexer_peek_token, cp_lexer_consume_token):
1883 Don't handle CPP_PRAGMA tokens specially.
1884 (cp_lexer_handle_pragma): Use cp_lexer_consume_token. Don't
1885 purge the token; do clear token->value after processing. Add
1886 assertion at beginning that token->value is nonzero.
1887 (cp_parser_statement, cp_parser_declaration_seq_opt): Handle
1888 CPP_PRAGMA as a full statement or declaration in its own right.
1890 2004-09-21 Matt Austern <austern@apple.com>
1893 * decl.c (grokvardecl): Accept declarations of global variables
1894 using anonymous types.
1896 2004-09-21 Roger Sayle <roger@eyesopen.com>
1899 * tree.c (lvalue_p_1): Disallow MIN_EXPR and MAX_EXPR as lvalues
1900 if either operand has side-effects.
1901 * typeck.c (rationalize_conditional_expr): Assert that neither
1902 operand of MIN_EXPR or MAX_EXPR has side-effects.
1903 (build_modify_expr): Add support for MIN_EXPR and MAX_EXPR.
1904 Check that the "lhs" is a valid lvalue, i.e. that neither operand
1905 of a MIN_EXPR or MAX_EXPR has a side-effect.
1907 2004-09-21 Nathan Sidwell <nathan@codesourcery.com>
1909 * cp-tree.h (struct lang_type_header): Remove
1910 uses_multiple_inheritance field.
1911 (TYPE_USES_MULTIPLE_INHERITANCE): Remove.
1912 (TYPE_BASE_CONVS_MAY_REQUIRE_CODE_P): Remove.
1913 (TYPE_USES_VIRTUAL_BASECLASSES): Remove.
1914 (DECL_NEEDS_VTT_PARM_P): Use CLASSTYPE_VBASECLASSES.
1915 (TYPE_CONTAINS_VPTR_P): Likewise.
1916 * call.c (add_template_candidate_real): Use
1917 CLASSTYPE_VBASECLASSES.
1918 (build_special_member_call): Likewise.
1919 * class.c (finish_struct_bits): Remove
1920 TYPE_BASE_CONVS_MAY_REQUIRE_CODE_P & TYPE_USES_VIRTUAL_BASECLASSES
1922 (check_bases_and_members): Use TYPE_CONTAINS_VPTR_P.
1923 (create_vtable_ptr): Remove TYPE_BASE_CONVS_MAY_REQUIRE_CODE_P
1925 (build_vtt_inits): Use CLASSTYPE_VBASECLASSES.
1926 (accumulate_vtbl_inits, build_vbase_offset_vtbl_entries):
1928 * decl.c (xref_basetypes): Remove TYPE_USES_MULTIPLE_INHERITANCE,
1929 TYPE_BASE_CONVS_MAY_REQUIRE_CODE_P, TYPE_USES_VIRTUAL_BASECLASSES
1931 (cxx_maybe_build_cleanup): Use CLASSTYPE_VBASECLASSES.
1932 * decl2.c (maybe_retrofit_in_chrg): Likewise.
1933 * init.c (expand_member, push_base_cleanups): Likewise.
1934 * pt.c (instantiate_class_template): Remove
1935 TYPE_USES_MULTIPLE_INHERITANCE,
1936 TYPE_BASE_CONVS_MAY_REQUIRE_CODE_P, TYPE_USES_VIRTUAL_BASECLASSES
1938 * ptree.c (cxx_print_type): Remove TYPE_USES_MULTIPLE_INHERITANCE
1940 * typeck2.c (process_init_constructor): Replace some sorrys with
1943 2004-09-21 Andreas Tobler <a.tobler@schweiz.ch>
1945 * decl.c (reshape_init_array): Initialize max_index_cst to fix
1948 2004-09-20 Mark Mitchell <mark@codesourcery.com>
1951 * pt.c (tsubst): Fix parentheses to accomodate emacs.
1952 (tsubst_baselink): If we get a single function, mark it as used.
1954 2004-09-20 Matt Austern <austern@apple.com>
1955 Zack Weinberg <zack@codesourcery.com>
1957 * decl.c (make_rtl_for_nonlocal_decl, start_preparsed_function):
1958 Apply lbasename to input_filename before passing to get_fileinfo.
1959 * semantics.c (begin_class_definition): Likewise.
1960 * lex.c (handle_pragma_interface): Apply get_fileinfo to the
1961 correct filename. Rename variables to be less confusing.
1962 (handle_pragma_implementation): Likewise. Disable "appears
1963 after file is included" diagnostic.
1965 * parser.c (struct cp_token): Add in_system_header fiag.
1966 (CP_TOKEN_BLOCK_NUM_TOKENS, struct cp_token_block)
1967 (CP_TOKEN_BUFFER_SIZE, cp_token_cache_push_token)
1968 (CPP_NONE, cp_lexer_read_token): Delete.
1969 (struct cp_lexer): Remove first_token, string_tokens,
1970 main_lexer_p fields. Clarify comments.
1971 (struct cp_token_cache): Now just a pair of pointers.
1972 (CP_LEXER_BUFFER_SIZE): New #define.
1973 (CPP_PURGED): New fake token type.
1974 (cp_lexer_new_from_token_array, cp_lexer_destroy)
1975 (cp_lexer_peek_token_emit_debug_info, cp_lexer_skip_purged_tokens)
1976 (cp_lexer_handle_pragma, cp_token_cache_new, cp_parser_string_literal):
1978 (cp_lexer_new_from_tokens): Now a simple wrapper around
1979 cp_lexer_new_from_token_array.
1980 (cp_lexer_set_source_position_from_token): Also update
1982 (cp_lexer_next_token, cp_lexer_prev_token, cp_lexer_advance_token):
1984 (cp_lexer_token_difference): Dont handle wrapping round.
1985 (cp_lexer_new_main): Enable pragma deferral and raw strings,
1986 read the entire translation unit through c_lex_with_flags into
1987 this lexer's buffer, then turn raw strings back off again.
1988 (cp_lexer_grow_buffer): Adjust for buffer no longer being circular.
1989 (cp_lexer_get_preprocessor_token): No need to handle not being
1990 the main lexer. Set token->in_system_header too.
1991 (cp_lexer_peek_token): Skip purged tokens. Feed pragma tokens
1992 to cp_lexer_handle_pragma. No need to call cp_lexer_read_token.
1993 (cp_lexer_peek_nth_token): Likewise.
1994 (cp_lexer_purge_token): Mark the token PURGED, don't shift all
1995 the other tokens down.
1996 (cp_lexer_purge_tokens_after): Likewise.
1997 (cp_lexer_save_tokens, cp_lexer_rollback_tokens): Don't worry
1998 about there being no tokens.
1999 (cp_lexer_print_token): Revise to give useful information on
2001 (struct cp_parser): Add field translate_strings_p.
2002 (cp_parser_new): Initialize it.
2003 (cp_parser_translation_unit): Destroy the lexer when done.
2004 (cp_parser_parameter_declaration): Restructure saving of
2006 (cp_parser_save_member_function_body): Likewise.
2007 (cp_parser_check_for_invalid_template_id)
2008 (cp_parser_nested_name_specifier_opt, cp_parser_template_id):
2009 Adjust calls to cp_lexer_advance_token.
2010 (cp_parser_skip_to_closing_parenthesis, cp_parser_declaration):
2011 No need to fiddle c_lex_string_translate.
2012 (cp_parser_primary_expression, cp_parser_linkage_specification)
2013 (cp_parser_asm_definition, cp_parser_asm_specification_opt)
2014 (cp_parser_asm_operand_list, cp_parser_asm_clobber_list)
2015 Use cp_parser_string_literal.
2016 (cp_parser_attribute_list): Save and restore
2017 parser->translate_strings_p, not c_lex_string_translate.
2018 (cp_parser_cache_group): Delete.
2019 (cp_parser_cache_group_1): Rename cp_parser_cache_group. Do
2020 not take a cache argument.
2022 2004-09-20 Giovanni Bajo <giovannibajo@gcc.gnu.org>
2025 * decl.c (reshape_init): Extract array handling into...
2026 (reshape_init_array): New function. Use integers instead of trees
2027 for indices. Handle out-of-range designated initializers.
2029 2004-09-20 Steven Bosscher <stevenb@suse.de>
2031 * lex.c (cxx_init): Don't set the ridpointer for RID_NULL
2034 2004-09-19 Mark Mitchell <mark@codesourcery.com>
2036 * decl2.c (determine_visibility): Allow class visibility
2037 directives to override targetm.cxx.export_class_data.
2039 2004-09-18 Kazu Hirata <kazu@cs.umass.edu>
2041 * call.c, semantics.c: Follow spelling conventions.
2042 * class.c: Fix a comment typo.
2044 2004-09-16 Geoffrey Keating <geoffk@apple.com>
2047 * cp/lex.c (handle_pragma_interface): Duplicate string from tree.
2048 (handle_pragma_implementation): Likewise.
2050 2004-09-17 Jeffrey D. Oldham <oldham@codesourcery.com>
2051 Zack Weinberg <zack@codesourcery.com>
2053 * cp-tree.def: Use tree_code_class enumeration constants
2054 instead of code letters.
2055 * call.c, class.c, cp-gimplify.c, cp-lang.c, cxx-pretty-print.c
2056 * mangle.c, pt.c, semantics.c, tree.c, typeck.c:
2057 Update for new tree-class enumeration constants.
2059 2004-09-16 Mark Mitchell <mark@codesourcery.com>
2062 * parser.c (cp_parser_simple_declaration): Commit to tentative
2063 parses after seeing a decl-specifier.
2064 (cp_parser_simple_declaration): Eliminate spurious message.
2065 (cp_parser_init_declarator): Adjust error message.
2068 * lex.c (unqualified_name_lookup_error): Mark the dummy
2069 declaration as used.
2072 * parser.c (cp_parser_nested_name_specifier): Do not resolve
2073 typename types if the user explicitly said "typename".
2075 2004-09-16 Andrew MacLeod <amacleod@redhat.com>
2077 * error.c (dump_decl): Make sure there is lang_specific info before
2078 checking for DTOR and CTOR decls.
2080 2004-09-16 Nathan Sidwell <nathan@codesourcery.com>
2082 * class.c (copy_virtuals): Remove.
2083 (build_primary_vtable): Use copy_list directly.
2084 (build_secondary_vtable): Likewise.
2085 (update_vtable_entry_for_fn): Clear BV_CALL_INDEX here.
2086 (create_vtable_ptr): Likewise.
2088 2004-09-16 Kazu Hirata <kazu@cs.umass.edu>
2090 * search.c: Follow spelling conventions.
2092 2004-09-16 Nathan Sidwell <nathan@codesourcery.com>
2094 * cp-tree.h (struct lang_type_class): Make pure_virtuals a
2096 (CLASSTYPE_INLINE_FRIENDS, CLASSTYPE_PURE_VIRTUALS): Update
2098 * call.c (build_new_method_call): Don't confirm a pure virtual is
2099 in CLASSTYPE_PURE_VIRTUALS. Reorder checks. Make it a warning.
2100 * class.c (check_methods): CLASSTYPE_INLINE_FRIENDS is a VEC(tree).
2101 (fixup_inline_methods, finish_struct): Likewise.
2102 * decl.c (finish_method): Likewise.
2103 * search.c (dfs_get_pure_virtuals, get_pure_virtuals):
2104 CLASSTYPE_PURE_VIRTUALS is a VEC(tree).
2105 * typeck2.c (abstract_virtuals_error): Likewise. Truncate the
2106 vector to avoid repeating the list in error messages.
2108 2004-09-15 Mark Mitchell <mark@codesourcery.com>
2110 * cp-objcp-common.h (LANG_HOOKS_COMDAT_GROUP): Define.
2111 * cp-tree.h (cxx_comdat_group): Declare.
2112 * decl.c (cxx_comdat_group): New function.
2114 2004-09-15 Nathan Sidwell <nathan@codesourcery.com>
2116 * search.c (get_pure_virtuals): Remove unused variables.
2118 * cp-tree.h (struct lang_decl_flags): Remove
2119 needs_final_overrider.
2120 (DECL_NEEDS_FINAL_OVERRIDER_P): Remove.
2121 * decl.c (duplicate_decls): Do not copy DECL_NEEDS_FINAL_OVERRIDER_P.
2122 * class.c (finish_struct_bits): Correct comment about
2123 CLASSTYPE_PURE_VIRTUALS.
2124 * search.c (get_pure_virtuals): Remove useless loop.
2126 2004-09-14 Mark Mitchell <mark@codesourcery.com>
2129 * mangle.c (partially_mangled_name): New variable.
2130 (partially_mangled_name_len): Likewise.
2131 (save_partially_mangled_name): New function.
2132 (restore_partially_mangled_name): Likewise.
2133 (write_encoding): Save and restore partially mangled names around
2134 calls to get_mostly_instantiated_function_type.
2135 (write_unqualified_name): Likewise.
2137 2004-09-14 Nathan Sidwell <nathan@codesourcery.com>
2139 * pt.c (unify): Replace gcc_unreachable with gcc_assert.
2141 2004-09-13 Mark Mitchell <mark@codesourcery.com>
2144 * parser.c (cp_parser_id_expression): Correct value for
2146 (cp_parser_nested_name_specifier_opt): Look through typenames as
2148 (cp_parser_template_name): Honor check_dependency_p.
2151 * parser.c (cp_parser_parse_and_diagnose_invalid_type_name):
2155 * pt.c (unify): Add ENUMERAL_TYPE case. Replace sorry with
2158 2004-09-12 Richard Henderson <rth@redhat.com>
2161 * semantics.c (maybe_cleanup_point_expr): Don't call fold.
2162 * typeck.c (condition_conversion): Likewise.
2164 2004-09-11 Richard Henderson <rth@redhat.com>
2167 * pt.c (cur_stmt_expr): Move from tsubst_expr.
2168 (tsubst_expr) <case STMT_EXPR>: Move ...
2169 (tsubst_copy_and_build): ... here.
2171 2004-09-10 Zack Weinberg <zack@codesourcery.com>
2173 * cp-tree.h (interface_only, interface_unknown): Delete declarations;
2174 comment explaining them moved to c-common.h.
2175 * lex.c (interface_only, interface_unknown, extract_interface_info):
2177 (cxx_finish): Don't reset interface_unknown.
2178 (handle_pragma_interface): Don't set interface_only and
2179 interface_unknown; just the like-named fields in finfo.
2180 (handle_pragma_implementation): Adjust comment.
2181 * decl2.c (cp_finish_file): Don't reset interface_only and
2183 * method.c (synthesize_method): Don't reset interface_unknown or
2184 call extract_interface_info.
2185 * pt.c (pop_tinst_level): Don't call extract_interface_info.
2186 * decl.c (start_cleanup_fn): Don't save or restore interface_only
2187 and interface_unknown.
2188 (make_rtl_for_nonlocal_decl): Call get_fileinfo on input_filename
2189 and use the result instead of the interface_only/interface_unknown
2191 (start_preparsed_function): Likewise.
2192 * lex.c (cxx_make_type): Likewise.
2193 * semantics.c (begin_class_definition): Likewise.
2194 (expand_body): Don't call extract_interface_info.
2196 2004-09-10 Ziemowit Laski <zlaski@apple.com>
2198 * decl.c (objc_mark_locals_volatile): Make description of
2199 routine more descriptive; only mark VAR_DECLs at each
2202 2004-09-10 Richard Henderson <rth@redhat.com>
2205 * call.c (build_vfield_ref): Move...
2206 * class.c (build_vfield_ref): ... here. Convert datum to the
2207 primary base containing the vptr.
2208 (make_new_vtable): Simplify build_primary_vtable arguments.
2209 (finish_struct_1): Do not duplicate TYPE_VFIELD.
2210 * typeck.c (build_class_member_access_expr): Don't warn for
2211 null object access to base fields.
2213 2004-09-10 Ziemowit Laski <zlaski@apple.com>
2215 * decl.c (objc_get_current_scope, objc_mark_locals_volatile):
2216 New functions, to be called from ObjC++.
2218 2004-09-10 Kazu Hirata <kazu@cs.umass.edu>
2220 * class.c, cp-tree.h, decl.c, decl2.c, mangle.c,
2221 name-lookup.h, parser.c, search.c, semantics.c, typeck2.c: Fix
2224 2004-09-09 Ziemowit Laski <zlaski@apple.com>
2226 * typeck.c (build_c_cast): Preserve the cast if casting
2227 to and from an Objective-C type.
2229 2004-09-09 Ziemowit Laski <zlaski@apple.com>
2231 * Make-lang.in (cp/typeck.o): Depend on c-common.h.
2232 * typeck.c: Include c-common.h.
2233 (comptypes): For RECORD_TYPEs, call objc_comptypes() and
2234 return the result if nonnegative.
2236 2004-09-09 Zack Weinberg <zack@codesourcery.com>
2238 * decl2.c (import_export_class)
2239 * lex.c (handle_pragma_interface):
2240 Test MULTIPLE_SYMBOL_SPACES with if, not #ifdef.
2242 2004-09-08 Ziemowit Laski <zlaski@apple.com>
2244 * Make-lang.in (cp/semantics.o): Depend on c-common.h.
2245 * semantics.c: Include c-common.h.
2246 (finish_compound_stmt): Call objc_clear_super_receiver().
2248 2004-09-08 Ziemowit Laski <zlaski@apple.com>
2250 * cp-tree.h (do_poplevel): New prototype.
2251 * semantics.c (do_poplevel): Make externally visible.
2253 2004-09-08 Nathan Sidwell <nathan@codesourcery.com>
2255 * cp-tree.h (tree_pair_s): Define a GC'd vector.
2256 * name-lookup.h (cxx_saved_binding, cp_class_binding): Likewise.
2257 * semantics.c (deferred_access): Likewise.
2259 2004-09-06 Daniel Jacobowitz <dan@debian.org>
2261 * semantics.c (expand_body): Assert that we are not nested.
2263 2004-09-06 Zack Weinberg <zack@codesourcery.com>
2265 * decl.c (build_enumerator): Use add_double and int_fits_type_p
2266 instead of cp_build_binary_op, to avoid creating short-lived trees.
2267 * parser.c (cp_parse_type_specifier <RID_ENUM>): Use two-token
2268 lookahead instead of backtracking. Move some code to avoid a
2270 (cp_parser_enum_specifier): Avoid duplication of effort with caller.
2271 Use cp_lexer_next_token_is/cp_lexer_next_token_is_not as appropriate.
2272 (cp_parser_enumerator_list, cp_parser_enumerator_definition):
2273 Use cp_lexer_next_token_is/cp_lexer_next_token_is_not as appropriate.
2275 2004-09-04 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
2277 * decl.c (grok_declarator): Remove a redundant semicolon.
2279 * parser.c (cp_parser_decl_specifier_seq, cp_parser_type_specifier):
2280 Correct comments describing function parameters.
2282 2004-09-03 Matt Austern <austern@apple.com>
2283 Compile speed improvement.
2284 * parser.c (cp_lexer_print_token): Only define if ENABLE_CHECKING set.
2285 Otherwise define a stub macro that expands to nothing.
2286 (cp_lexer_debugging_p): Only define if ENABLE_CHECKING set. Otherwise
2287 define a stub macro that expands to 0.
2288 (cp_lexer_start_debugging): Only define if ENABLE_CHECKING set.
2289 (cp_lexer_stop_debugging): Likewise.
2290 (cp_lexer_debug_stream): Only define if ENABLE_CHECKING set. Otherwise
2291 define a stub macro that expands to NULL.
2292 (cp_lexer_new_main): Only set debugging_p if ENABLE_CHECKING set.
2293 (cp_lexer_new_from_tokens): Likewise.
2295 2004-09-03 Jan Hubicka <jh@suse.cz>
2297 * decl.c (finish_function): Clean out pointers we no longer need.
2299 2004-09-03 Jan Beulich <jbeulich@novell.com>
2301 * g++spec.c (MATH_LIBRARY_PROFILE): Default to MATH_LIBRARY rather
2304 2004-09-02 Paul Brook <paul@codesourcery.com>
2306 * decl2.c (determine_visibility): Only check data visibility
2309 2004-08-31 Mark Mitchell <mark@codesourcery.com>
2311 * cp-tree.h (DECL_CONSTRUCTION_VTABLE_P): New macro.
2312 * class.c (build_ctor_vtbl_group): Set DECL_CONSTRUCTION_VTABLE_P.
2313 * decl2.c (determine_visibility): Honor
2314 TARGET_CXX_EXPORT_CLASS_DATA.
2316 * class.c (key_method): Rename to ...
2317 (determine_key_method): ... this.
2318 (finish_struct_1): Adjust accordingly.
2319 * cp-tree.h (key_method): Declare.
2320 * decl2.c (maybe_emit_vtables): Determine the key method here if
2321 it has not already been done.
2323 2004-08-31 Ziemowit Laski <zlaski@apple.com>
2325 * Make-lang.in (CXX_AND_OBJCXX_OBJS): Add cp/cp-objcp-common.o.
2326 (cp/cp-lang.o): Depend on debug.h, gtype-cp.h and cp/cp-objcp-common.h.
2327 (cp/cp-decl.c): Do not depend on gtype-cp.h.
2328 (cp/cp-objcp-common.o): New target.
2329 * cp-lang.c: Include debug.h, cp-objcp-common.h and gtype-cp.h.
2330 (cxx_get_alias_set, cxx_warn_unused_global_decl, cp_expr_size,
2331 cp_tree_size, cp_var_mod_type_p, cxx_initialize_diagnostics): Move
2332 prototypes and definitions to cp-objcp-common.h and cp-objcp-common.c,
2334 (LANG_HOOKS_TREE_SIZE, LANG_HOOKS_FINISH,
2335 LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_INIT_OPTIONS,
2336 LANG_HOOKS_INITIALIZE_DIAGNOSTICS, LANG_HOOKS_HANDLE_OPTION,
2337 LANG_HOOKS_HANDLE_FILENAME, LANG_HOOKS_MISSING_ARGUMENT,
2338 LANG_HOOKS_POST_OPTIONS, LANG_HOOKS_GET_ALIAS_SET,
2339 LANG_HOOKS_EXPAND_CONSTANT, LANG_HOOKS_EXPAND_EXPR,
2340 LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_PARSE_FILE,
2341 LANG_HOOKS_DUP_LANG_SPECIFIC_DECL, LANG_HOOKS_TRUTHVALUE_CONVERSION,
2342 LANG_HOOKS_SET_DECL_ASSEMBLER_NAME, LANG_HOOKS_MARK_ADDRESSABLE,
2343 LANG_HOOKS_PRINT_STATISTICS, LANG_HOOKS_PRINT_XNODE,
2344 LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE,
2345 LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_PRINT_ERROR_FUNCTION,
2346 LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL, LANG_HOOKS_WRITE_GLOBALS,
2347 LANG_HOOKS_FUNCTION_INIT, LANG_HOOKS_FUNCTION_FINAL,
2348 LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
2349 LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
2350 LANG_HOOKS_ATTRIBUTE_TABLE, LANG_HOOKS_TREE_INLINING_WALK_SUBTREES,
2351 LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN,
2352 LANG_HOOKS_TREE_INLINING_ADD_PENDING_FN_DECLS,
2353 LANG_HOOKS_TREE_INLINING_AUTO_VAR_IN_FN_P,
2354 LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
2355 LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P,
2356 LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN,
2357 LANG_HOOKS_TREE_DUMP_TYPE_QUALS_FN, LANG_HOOKS_EXPR_SIZE,
2358 LANG_HOOKS_CALLGRAPH_ANALYZE_EXPR,
2359 LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, LANG_HOOKS_MAKE_TYPE,
2360 LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE,
2361 LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
2362 LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE, LANG_HOOKS_INCOMPLETE_TYPE_ERROR,
2363 LANG_HOOKS_TYPE_PROMOTES_TO, LANG_HOOKS_REGISTER_BUILTIN_TYPE,
2364 LANG_HOOKS_GIMPLIFY_EXPR, LANG_HOOKS_FOLD_OBJ_TYPE_REF): Move
2365 hooks to cp-objcp-common.h.
2366 (finish_file): New function.
2367 * cp-objcp-common.c: New file.
2368 * cp-objcp-common.h: New file.
2369 * cp-tree.h (cp_finish_file): New prototype.
2370 * decl.c: Do not include gtype-cp.h.
2371 * decl2.c (finish_file): Rename to cp_finish_file.
2373 2004-08-31 Richard Henderson <rth@redhat.com>
2376 * pt.c (tsubst_expr): Move OFFSETOF_EXPR handling ...
2377 (tsubst_copy_and_build): ... here.
2379 2004-08-30 Mark Mitchell <mark@codesourcery.com>
2381 * cp-tree.h (initialize_artificial_var): Declare.
2382 * decl.c (initialize_artifical_var): New function.
2383 * class.c (initialize_array): Remove.
2384 (initialize_vtable): Use initialize_artificial_var.
2385 (build_vtt): Likewise.
2386 (build_ctor_vtbl_group): Likewise.
2388 2004-08-30 Richard Henderson <rth@redhat.com>
2390 * class.c (build_base_path): Use build_address directly.
2391 * typeck.c (build_unary_op): Don't lower &a.b to pointer
2392 arithmetic directly.
2393 * typeck2.c (store_init_value): Don't assume !TREE_CONSTANT
2394 means !initializer_constant_valid_p.
2396 2004-08-30 Richard Henderson <rth@redhat.com>
2398 * class.c (fixed_type_or_null): Use get_base_address before
2399 assuming an ADDR_EXPR is non-null.
2401 2004-08-30 Nathan Sidwell <nathan@codesourcery.com>
2403 * name-lookup.c (pop_binding, pushdecl,
2404 set_identifier_type_value_with_scope, push_overloaded_decl,
2405 arg_assoc_type): Replace abort with gcc_assert or gcc_unreachable.
2406 * parser.c (cp_parser_diagnose_invalid_type_name,
2407 cp_parser_postfix_expression, cp_parser_unary_expression,
2408 cp_parser_check_declarator_template_para): Likewise.
2409 * pt.c (push_inline_template_parms_recursive,
2410 check_explicit_specialization, convert_nontype_argument,
2411 coerce_template_template_parms, uses_template_parms,
2412 instantiate_class_template, tsubst_decl, tsubst, tsubst_copy,
2413 tsubst_expr, instantiate_template,
2414 maybe_adjust_types_for_deduction, type_unification_real,
2415 resolve_overloaded_unification, template_decl_level,
2416 type_dependent_expression_p): Likewise.
2417 * search.c (lookup_base_r): Likewise.
2418 * semantics.c (finish_stmt_expr, simplify_aggr_init_expr): Likewise.
2419 * tree.c (lvalue_p_1, count_functions, cxx_printable_name,
2420 verify_stmt_tree_r, get_type_decl, stabilize_call): Likewise.
2421 * typeck.c (common_type, get_member_function_from_ptrfunc,
2422 build_binary_op, build_unary_op, expand_ptrmemfunc_cst): Likewise.
2423 * typeck2.c (cxx_incomplete_type_diagnostic,
2424 split_nonconstant_init_1, store_init_value,
2425 process_init_constructor): Likewise.
2427 2004-08-30 Nathan Sidwell <nathan@codesourcery.com>
2429 * call.c (check_dtor_name): Replace abort with gcc_assert or
2431 (build_call, add_builtin_candidate, build_new_op,
2432 convert_like_real, build_over_call, in_charge_arg_for_name,
2433 source_type, joust): Likewise.
2434 * class.c (build_simple_base_path, get_vcall_index,
2435 finish_struct_1, instantiate_type, get_enclosing_class,
2436 add_vcall_offset_vtbl_entries_1, cp_fold_obj_type_ref): Likewise.
2437 * cp-gimplify.c (cp_genericize): Likewise.
2438 * cp-lang.c (cp_expr_size, cp_tree_size): Likewise.
2439 * cvt.c (cp_convert_to_pointer, ocp_convert): Likewise.
2440 * decl.c (poplevel, make_unbound_class_template, reshape_init,
2441 check_special_function_return_type, grokdeclarator,
2442 grok_op_properties, tag_name, xref_tag, start_preparsed_function,
2443 finish_function): Likewise.
2444 * decl2.c (grokfield, maybe_emit_vtables):Likewise.
2445 * error.c (dump_global_iord, dump_decl, dump_template_decl,
2446 language_to_string): Likewise.
2447 * except.c (choose_personality_routine): Likewise.
2448 * friend.c (do_friend): Likewise.
2449 * g++spec.c (lang_specific_driver): Likewise.
2450 * init.c (build_zero_init, expand_default_init, build_new_1,
2451 build_vec_delete_1, build_vec_init, build_dtor_call): Likewise.
2452 * lex.c (retrofit_lang_decl, cp_type_qual_from_rid): Likewise.
2453 * mangle.c (add_substitution, write_unscoped_name,
2454 write_template_prefix, write_identifier,
2455 write_special_name_destructor, write_type, write_builtin_type,
2456 write_expression, write_template_param,
2457 write_java_integer_type_codes): Likewise.
2458 * method.c (implicitly_declare_fn): Likewise.
2460 2004-08-30 Nathan Sidwell <nathan@codesourcery.com>
2462 * cp-tree.h (BINFO_PRIMARY_P): Use a binfo flag.
2463 (BINFO_INDIRECT_PRIMARY_P): Remove.
2464 * class.c (determine_primary_base): Rename to ...
2465 (determine_primary_bases): ... here. Set all primary bases.
2466 (set_primary_base): Remove.
2467 (mark_primary_bases): Remove.
2468 (build_simple_base_path, walk_subobject_offsets,
2469 propagate_binfo_offsets, end_of_class): Adjust.
2470 (layout_class_type): Rename determine_primary_base call.
2471 (dump_class_hierarchy_r, dump_vtable): Adjust. Don't pass a binfo
2473 (dfs_build_secondary_vptr_vtt_inits, dfs_accumulate_vtbl_inits,
2474 build_rtti_vtbl_entries): Adjust.
2475 * init.c (build_vtbl_address): Adjust.
2477 * cp-tree.h (SET_BINFO_NEW_VTABLE_MARKED): Use gcc_assert.
2479 2004-08-28 Ziemowit Laski <zlaski@apple.com>
2481 * Make-lang.in (CXX_OBJS): Split up into CXX_OBJS and
2482 CXX_AND_OBJCXX_OBJS.
2483 (CXX_C_OBJS): Include in CXX_AND_OBJCXX_OBJS instead of listing
2484 separately on the link line.
2486 2004-08-28 Jason Merrill <jason@redhat.com>
2488 * decl.c (expand_static_init): Avoid bogus warnings.
2490 2004-08-27 Jason Merrill <jason@redhat.com>
2493 * tree.c (stabilize_init): See through a COMPOUND_EXPR.
2496 * decl.c (expand_static_init): Use thread-safety API.
2497 (register_dtor_fn): Return the call, don't expand it.
2498 * tree.c (add_stmt_to_compound): New fn.
2499 (stabilize_call): Use it.
2501 2004-08-27 Richard Henderson <rth@redhat.com>
2503 * cp-tree.def (OFFSETOF_EXPR): New.
2504 * parser.c (cp_parser_builtin_offsetof): Either built an
2505 OFFSETOF_EXPR, or call fold_offsetof immediately.
2506 * pt.c (tsubst_expr): Handle OFFSETOF_EXPR.
2508 2004-08-27 Nathan Sidwell <nathan@codesourcery.com>
2510 * call.c (validate_conversion_obstack): Replace
2511 my_friendly_assert with gcc_assert or gcc_unreachable.
2512 (direct_reference_binding, merge_conversion_sequences,
2513 build_user_type_conversion_1, perform_overload_resolution,
2514 build_op_delete_call, enforce_access, call_builtin_trap,
2515 build_over_call, build_special_member_call, build_new_method_call,
2516 initialize_reference): Likewise.
2517 * class.c (build_base_path, build_primary_vtable, alter_access,
2518 check_bases, update_vtable_entry_for_fn, layout_empty_base,
2519 clone_function_decl, adjust_clone_args,
2520 type_requires_array_cookie, include_empty_classes,
2521 finish_struct_1, resolve_address_of_overloaded_function,
2522 instantiate_type, get_vtbl_decl_for_binfo, build_vtt_inits,
2523 dfs_build_secondary_vptr_vtt_inits, build_ctor_vtbl_group,
2524 accumulate_vtbl_inits, build_vtbl_initializer,
2525 build_vbase_offset_vtbl_entries, build_rtti_vtbl_entries): Likewise.
2526 * cvt.c (build_up_reference, convert_to_reference): Likewise.
2527 * decl.c (poplevel, duplicate_decls, make_typename_type,
2528 cxx_init_decl_processing, reshape_init, check_initializer,
2529 make_rtl_for_nonlocal_decl, initialize_local_var, cp_finish_decl,
2530 expand_static_init, grokfndecl, grokvardecl, build_ptrmem_type,
2531 grokdeclarator, copy_fn_p, grok_op_properties, xref_tag,
2532 xref_basetypes, start_preparsed_function, save_function_data,
2533 finish_function, finish_method, maybe_register_incomplete_var,
2534 complete_vars): Likewise.
2535 * decl2.c (grok_array_decl, check_member_template,
2536 check_classfn, finish_static_data_member_decl, coerce_new_type,
2537 coerce_delete_type, import_export_class, decl_needed_p,
2538 determine_visibility, import_export_decl, build_cleanup,
2539 start_static_initialization_or_destructi, do_static_destruction,
2540 prune_vars_needing_no_initialization,
2541 build_offset_ref_call_from_tree): Likewise.
2542 * error.c (dump_decl, dump_expr): Likewise.
2543 * init.c (finish_init_stmts, build_zero_init,
2544 expand_virtual_init, expand_default_init, expand_aggr_init_1,
2545 build_offset_ref, build_new_1, build_delete, build_vbase_delete):
2547 * mangle.c (write_method_parms, write_template_args,
2548 write_expression, write_template_arg): Likewise.
2549 * method.c (make_thunk, finish_thunk, use_thunk): Likewise.
2550 * name-lookup.c (pop_binding, begin_scope, leave_scope,
2551 resume_scope, push_using_decl, validate_nonmember_using_decl,
2552 is_ancestor, poplevel_class, set_inherited_value_binding_p,
2553 push_class_level_binding, do_class_using_decl, push_namespace,
2554 pop_namespace, add_using_namespace, ambiguous_decl,
2555 lookup_namespace_name, lookup_type_current_level,
2556 maybe_process_template_type_declaration): Likewise.
2557 * parser.c (cp_lexer_peek_nth_token,
2558 cp_parser_parse_and_diagnose_invalid_typ,
2559 cp_parser_translation_unit, cp_parser_template_id,
2560 cp_parser_lookup_name, cp_parser_late_parsing_for_member): Likewise.
2561 * pt.c (push_access_scope, finish_member_template_decl,
2562 push_inline_template_parms_recursive, add_outermost_template_args,
2563 get_innermost_template_args, begin_explicit_instantiation,
2564 end_explicit_instantiation, retrieve_specialization,
2565 is_specialization_of, is_specialization_of_friend,
2566 register_specialization, check_explicit_specialization,
2567 comp_template_parms, process_template_parm,
2568 process_partial_specialization, convert_nontype_argument,
2569 coerce_template_template_parms, coerce_template_parms,
2570 mangle_class_name_for_template, lookup_template_function,
2571 lookup_template_class, instantiate_class_template, tsubst_decl,
2572 tsubst_function_type, tsubst, tsubst_qualified_id, tsubst_copy,
2573 instantiate_template, fn_type_unification, type_unification_real,
2574 get_template_base, regenerate_decl_from_template,
2575 template_for_substitution, instantiate_decl,
2576 get_mostly_instantiated_function_type, dependent_scope_ref_p,
2577 value_dependent_expression_p, resolve_typename_type): Likewise.
2578 * repo.c (repo_emit_p): Likewise.
2579 * rtti.c (build_headof, get_tinfo_decl, get_pseudo_ti_init,
2580 create_tinfo_types, emit_tinfo_decl): Likewise.
2581 * search.c (lookup_base_r, lookup_base, lookup_field_1,
2582 dfs_access_in_type, build_baselink, lookup_member,
2583 adjust_result_of_qualified_name_lookup, copied_binfo): Likewise.
2584 * semantics.c (perform_or_defer_access_check,
2585 finish_non_static_data_member, finish_stmt_expr_expr,
2586 finish_stmt_expr, finish_call_expr, finish_pseudo_destructor_expr,
2587 finish_template_template_parm, finish_member_declaration,
2588 emit_associated_thunks): Likewise.
2589 * tree.c (build_target_expr_with_type, force_target_expr,
2590 copy_binfo, get_first_fn, cp_tree_equal): Likewise.
2591 * typeck.c (type_after_usual_arithmetic_conversions, comptypes,
2592 cxx_sizeof_or_alignof_type, perform_integral_promotions,
2593 build_class_member_access_expr, finish_class_member_access_expr,
2594 build_ptrmemfunc_access_expr, build_unary_op,
2595 unary_complex_lvalue, cxx_mark_addressable, build_modify_expr,
2596 build_ptrmemfunc, expand_ptrmemfunc_cst, check_return_expr
2597 * typeck2.c (complete_type_check_abstract,
2598 abstract_virtuals_error, process_init_constructor,
2599 add_exception_specifier): Likewise.
2601 2004-08-27 Nathan Sidwell <nathan@codesourcery.com>
2603 * class.c (build_vtbl_initializer): Use ssize_int.
2604 * decl.c (complete_array_type): Likewise.
2605 * method.c (finish_thunk): Likewise.
2606 * search.c (get_dynamic_base_type): Likewise.
2608 2004-08-26 Richard Henderson <rth@redhat.com>
2610 * cp-tree.h (DECL_FIELD_IS_BASE): New.
2611 * class.c (build_base_field): Set it.
2612 (build_simple_base_path): Use it.
2613 (fixed_type_or_null): Don't consider base fields definitive.
2615 2004-08-25 Roger Sayle <roger@eyesopen.com>
2618 PR tree-optimization/16372
2619 * decl.c (finish_enum): Make the precision of the enumerated type
2620 the same width as the underlying integer type.
2622 2004-08-25 Mark Mitchell <mark@codesourcery.com>
2625 * lex.c (build_lang_decl): Set DECL_NO_STATIC_CHAIN for all C++
2628 * mangle.c (get_identifier_nocopy): Add cast.
2630 * cp-tree.h (mangle_type): Remove.
2631 * mangle.c (globals): GTY it.
2632 (mangle_obstack): New variable.
2633 (name_obstack): Likewise.
2634 (name_base): Likewise.
2635 (write_char): Adjust accordingly.
2636 (write_chars): Likewise.
2637 (write_string): Likewise.
2638 (start_mangling): Initialize G.substitutions only one. Add
2640 (finish_mangling): Use VARRAY_CLEAR to reclaim
2641 storage in G.substitutions. Use obstack_finish.
2642 (init_mangle): Adjust for changes to variable names above.
2643 Initialize G.substitutions.
2644 (mangle_decl_string): Adjust call to start_mangling.
2645 (get_identifier_nocopy): New function.
2646 (mangle_decl): Use it.
2647 (mangle_type_string): Adjust call to start_mangling.
2648 (mangle_special_for_type): Likewise.
2649 (mangle_vtt_for_type): Likewise.
2650 (mangle_ctor_vtbl_for_type): Likewise.
2651 (mangle_thunk): Likewise.
2652 (mangle_guard_variable): Likewise.
2653 (mangle_ref_init_variable): Likewise.
2655 2004-08-25 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
2658 * pt.c (redeclare_class_template): Check the type of non-type and
2659 template template parameter.
2661 2004-08-25 Nathan Sidwell <nathan@codesourcery.com>
2663 * call.c (convert_class_to_reference): Adjust build_int_cst calls.
2664 (build_user_type_conversion_1, convert_like_real,
2665 build_java_interface_fn_ref, build_special_member_call): Likewise.
2666 * class.c (finish_struct_1, build_vtbl_initializer): Likewise.
2667 * cp-gimplify.c (cp_gimplify_expr): Likewise.
2668 * cvt.c (cp_convert_to_pointer): Likewise.
2669 * decl.c (cxx_init_decl_processing, complete_array_type): Likewise.
2670 * decl2.c (start_static_initialization_or_destruction,
2671 generate_ctor_or_dtor_function): Likewise.
2672 * except.c (build_throw): Likewise.
2673 * mangle.c (write_integer_cst): Likewise.
2674 * method.c (finish_thunk): Likewise.
2675 * rtti.c (build_headof, get_tinfo_decl_dynamic,
2676 build_dynamic_cast_1, ptr_initializer, ptm_initializer,
2677 get_pseudo_ti_init): Likewise.
2678 * search.c (get_dynamic_cast_base_type): Likewise.
2680 2004-08-25 Zack Weinberg <zack@codesourcery.com>
2682 * class.c, search.c: Remove references to DWARF_DEBUG.
2684 2004-08-25 Adam Nemet <anemet@lnxw.com>
2686 * repo.c (extract_string): Reset backquote after one character.
2687 (get_base_filename): Fix indentation.
2689 2004-08-24 Nathan Sidwell <nathan@codesourcery.com>
2691 * decl.c (cxx_init_decl_processing): Adjust
2692 build_common_tree_nodes call.
2694 2004-08-24 Nathan Sidwell <nathan@codesourcery.com>
2697 * (is_subobject_of_p): Resurrect & optimize.
2698 (lookup_field_r): Use it.
2700 2004-08-24 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
2703 * search.c (friend_accessible_p): Increment processing_template_decl
2704 when deal with TEMPLATE_DECL of SCOPE.
2706 2004-08-24 Nathan Sidwell <nathan@codesourcery.com>
2709 * semantics.c (check_accessibility_of_qualified_id): Defer check
2710 if qualifying_type is a template parameter.
2712 2004-08-23 Mark Mitchell <mark@codesourcery.com>
2715 * pt.c (instantiate_decl): Do not try to apply
2716 DECL_DECLARED_INLINED_P to a VAR_DECL.
2718 * search.c (build_baselink): Fix typo in comment.
2720 2004-08-22 Andrew Pinski <apinski@apple.com>
2723 2004-08-22 Andrew Pinski <apinski@apple.com>
2725 * typeck.c (build_unary_op): Use &a.b if the folded lowered
2726 expression is not constant.
2728 2004-08-23 Nathan Sidwell <nathan@codesourcery.com>
2730 * name-lookup.c (pushdecl): Rename build_type_copy call.
2731 * tree.c (cp_build_qualified_type_real,
2732 build_exception_variant, handle_java_interface_attribute): Likewise.
2734 2004-08-22 Andrew Pinski <apinski@apple.com>
2737 * typeck.c (build_unary_op): Use &a.b if the folded lowered
2738 expression is not constant.
2740 2004-08-20 Mark Mitchell <mark@codesourcery.com>
2743 * decl.c (expand_static_init): Use DECL_FUNCTION_SCOPE_P.
2745 2004-08-21 Joseph S. Myers <jsm@polyomino.org.uk>
2748 * pt.c (tsubst_copy_and_build): Avoid clearing TREE_NO_WARNING for
2751 2004-08-20 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
2753 * pt.c (register_specialization): Check DECL_TEMPLATE_SPECIALIZATION
2754 before calling comp_template_args.
2756 2004-08-20 Nathan Sidwell <nathan@codesourcery.com>
2758 * class.c (build_vtbl_initializer): Use build_int_cst for
2759 negative size types.
2760 * decl.c (complete_array_type): Likewise.
2761 * method.c (finish_thunk): Likewise.
2763 2004-08-20 Andreas Tobler <a.tobler@schweiz.ch>
2765 * tree.c: Remove unused mark_local_for_remap_r.
2767 2004-08-19 Eric Christopher <echristo@redhat.com>
2769 * cp-tree.h (cxx_unsave_expr_now): Delete prototype.
2770 * tree.c (cxx_unsave_expr_now): Delete.
2771 (cp_unsave_r): Ditto.
2773 2004-08-19 Mark Mitchell <mark@codesourcery.com>
2776 * pt.c (push_template_decl_real): Disallow template allocation
2777 functions with fewer than two parameters.
2779 2004-08-19 Nathan Sidwell <nathan@codesourcery.com>
2781 * cp-tree.h (build_shared_int_cst): Remove.
2782 * tree.c (shared_int_cache): Remove.
2783 (build_shared_int_cst): Remove.
2784 * class.c (finish_struct_1): Use build_int_cst.
2786 2004-08-19 Nathan Sidwell <nathan@codesourcery.com>
2788 * decl.c (finish_enum): Do not copy value node early, copy
2790 * lex.c (cxx_init): Force null_node to be unique.
2792 2004-08-19 Joseph S. Myers <jsm@polyomino.org.uk>
2795 * pt.c (tsubst_copy, tsubst_copy_and_build): Copy TREE_NO_WARNING
2796 from input for MODOP_EXPR.
2798 2004-08-18 Mark Mitchell <mark@codesourcery.com>
2800 * pt.c (dependent_template_p): Fix typo in commment.
2803 * pt.c (dependent_template_p): Treat IDENTIFIER_NODEs as
2806 2004-08-17 Mark Mitchell <mark@codesourcery.com>
2809 * pt.c (unify): Tidy ARRAY_TYPE handling. Make sure that non-type
2810 arguments have the same type as the corresponding parameter.
2813 * parser.c (cp_parser_name_lookup_error): If parser->object_scope
2814 is set use it for diagnostic purposes.
2815 (cp_parser_pseudo_destructor_name): Remove special-case error
2819 * semantics.c (expand_or_defer_fn): Honor -fkeep-inline-functions.
2822 * cp-tree.h (qualified_name_lookup_error): Add parameter.
2823 * name-lookup.c (do_class_using_decl): Restrict set of entities
2824 passed to cp_emit_debug_info_for_using more carefully.
2825 (lookup_qualified_name): Allow lookup_member to return sets of
2827 * parser.c (cp_parser_lookup_name): Add ambiguous_p parameter.
2828 (cp_parser_primary_expression): Handle ambiguous lookups.
2829 (cp_parser_template_name): Adjust use of cp_parser_lookup_name.
2830 (cp_parser_template_argument): Likewise.
2831 (cp_parser_elaborate_type_specifier): Likewise.
2832 (cp_parser_namespace_name): Likewise.
2833 (cp_parser_class_name): Likewise.
2834 (cp_parser_lookup_name_simple): Likewise.
2835 * pt.c (tsubst_qualified_id): Handle ambiguous results.
2836 (tsubst_expr): Likewise.
2837 * semantics.c (qualified_name_lookup_error): Add decl paramter.
2838 For ambiguous lookups, print candidates.
2840 2004-08-16 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
2843 * pt.c (instantiate_pending_templates): Add int parameter. Don't
2845 * cp-tree.h (instantiate_pending_templates): Adjust prototype.
2846 * decl2.c (finish_file): Adjust call to
2847 instantiate_pending_templates.
2849 2004-08-15 Roger Sayle <roger@eyesopen.com>
2851 * call.c (build_vfield_ref, build_call, build_conditional_expr,
2852 convert_arg_to_ellipsis, build_x_va_arg, build_over_call,
2853 build_java_interface_fn_ref, build_special_member_call,
2854 build_new_method_call, initialize_reference): Replace calls to
2855 build with calls to buildN.
2856 * class.c (build_base_path, convert_to_base_statically,
2857 build_vfn_ref, instantiate_type, dfs_accumulate_vtbl_inits,
2858 build_vtbl_initializer): Likewise.
2859 * cp-gimplify.c (genericize_try_block, genericize_catch_block,
2860 gimplify_if_stmt, cp_genericize_r): Likewise.
2861 * cvt.c (convert_to_void): Likewise.
2862 * decl.c (check_initializer, finish_constructor_body,
2863 finish_destructor_body): Likewise.
2864 * error.c (dump_expr): Likewise.
2865 * except.c (build_exc_ptr, expand_start_catch_block, build_throw):
2867 * init.c (perform_member_init, expand_virtual_init,
2868 expand_cleanup_for_base, build_init, expand_default_init,
2869 build_offset_ref, decl_constant_value, build_new, build_new_1,
2870 build_vec_delete_1, build_vec_init, build_delete,
2871 push_base_cleanups, build_vec_delete): Likewise.
2872 * mangle.c (write_integer_cst): Likewise.
2873 * method.c (thunk_adjust, do_build_copy_constructor,
2874 do_build_assign_ref): Likewise.
2875 * pt.c (lookup_template_function, tsubst, tsubst_copy_and_build,
2876 unify, build_non_dependent_expr): Likewise.
2877 * rtti.c (build_headof, build_typeid, ifnonnull,
2878 build_dyanmic_cast_1, tinfo_base_init): Likewise.
2879 * semantics.c (begin_compound_stmt, finish_call_expr,
2880 finish_pseudo_destructor_expr, finish_id_expression,
2881 simplify_aggr_init_expr, finalize_nrv_r): Likewise.
2882 * tree.c (build_target_expr, build_cplus_new, array_type_nelts_top,
2883 array_type_nelts_total, stabilize_call): Likewise.
2884 * typeck.c (decay_conversion, build_class_member_access_expr,
2885 lookup_destructor, build_ptrmemfunc_access_expr, build_array_ref,
2886 get_member_function_from_ptrfunc, build_binary_op, pointer_diff,
2887 build_x_unary_op, build_unary_op, unary_complex_lvalue,
2888 build_compound_expr, build_modify_expr, expand_ptrmemfunc_cst,
2889 check_return_expr): Likewise.
2890 * typeck2.c (split_nonconstant_1, split_nonconstant_init_1,
2891 split_nonconstant_init, store_init_value, build_m_component_ref):
2894 2004-08-15 Nathan Sidwell <nathan@codesourcery.com>
2896 * call.c (convert_class_to_reference,
2897 build_user_type_conversion_1, convert_like_real,
2898 build_java_interface_fn_ref, build_special_member_call): Use
2900 * class.c (build_vtbl_initializer): Likewise.
2901 * cp-gimplify.c (cp_gimplify_expr): Likewise.
2902 * cvt.c (cp_convert_to_pointer): Likewise.
2903 * decl.c (cxx_init_decl_processing, complete_array_type): Likewise.
2904 * decl2.c (start_static_initialization_or_destruction,
2905 generate_ctor_or_dtor_function): Likewise.
2906 * except.c (build_throw): Likewise.
2907 * lex.c (cxx_init): Likewise.
2908 * mangle.c (write_integer_cst): Likewise.
2909 * rtti.c (build_headof, get_tinfo_decl_dynamic,
2910 build_dynamic_cast_1, ptr_initializer, ptm_initializer,
2911 get_pseudo_ti_init): Likewise.
2912 * search.c (get_dynamic_cast_base_type): Likewise.
2913 * tree.c (build_shared_int_cst): Likewise.
2915 2004-08-12 Mark Mitchell <mark@codesourcery.com>
2918 * class.c (count_depth_data): New type.
2919 (dfs_depth_post): New function.
2920 (dfs_depth_q): Likewise.
2921 (find_final_overrider_data_s): Change type of vpath.
2923 (dfs_find_final_overrider_1): New function.
2924 (dfs_find_final_overrider): Use it.
2925 (dfs_find_final_overrider_q): Adjust use of vpath.
2926 (dfs_find_final_overrider_post): Likewise.
2927 (find_final_overrider): Use dfs_depth. Allocate and deallocate
2930 2004-08-12 Jan Beulich <jbeulich@novell.com>
2932 * parser.c (cp_parser_asm_definition): Properly consume scope operator
2933 tokens preceding the clobbers. Don't check for scope operator
2934 following inputs. Simplify inputs handling to match that now used for
2937 2004-08-11 Mark Mitchell <mark@codesourcery.com>
2940 * except.c (build_throw): Allocate cleanup_type and the function
2941 for __cxa_throw separately.
2944 * call.c (standard_conversion): Do not accept conversions between
2945 pointers to members if the class types are unrelated.
2948 * parser.c (cp_parser_builtin_offsetof): Cast to "const volatile
2949 char &" instead of just "char &".
2952 * pt.c (tsubst): Just return the unknown_type_node.
2954 2004-08-11 Mark Mitchell <mark@codesourcery.com>
2957 * parser.c (cp_parser_class_specifier): Robustify.
2960 * pt.c (tsubst_copy_and_build): Complain about invalid
2964 * pt.c (tsubst_default_argument): Clear out current_class_ptr and
2965 current_class_ref while tsubsting.
2967 2004-08-10 Mark Mitchell <mark@codesourcery.com>
2970 * parser.c (cp_parser_init_declarator): Robustify.
2972 2004-08-06 Richard Sandiford <rsandifo@redhat.com>
2974 * typeck2.c (process_init_constructor): Guard the missing field warning
2975 with warn_missing_field_initializers rather than extra_warnings.
2977 2004-08-06 Paolo Bonzini <bonzini@gnu.org>
2979 * class.c (instantiate_type) <ENTRY_VALUE_EXPR>: Do not handle.
2981 2004-08-05 Mark Mitchell <mark@codesourcery.com>
2983 * decl.c (start_preparsed_function): Move determine_visibility
2985 * decl2.c (determine_visibility): Incorporate dllexport testing.
2987 2004-08-05 Geoffrey Keating <geoffk@apple.com>
2989 * g++spec.c (lang_specific_driver): An -Xlinker or -Wl, option
2990 means that libstdc++ is needed.
2992 2004-08-05 Nathan Sidwell <nathan@codesourcery.com>
2994 * cvt.c (cp_convert_to_pointer): Adjust force_fit_type call.
2996 2004-08-04 Geoffrey Keating <geoffk@apple.com>
2998 * decl.c (make_rtl_for_nonlocal_decl): Set DECL_ASSEMBLER_NAME rather
2999 than passing it as a parameter to rest_of_decl_compilation.
3000 * decl2.c (grokfield): Use set_user_assembler_name.
3002 2004-08-04 Nathan Sidwell <nathan@codesourcery.com>
3004 * decl.c (complete_array_type): Don't gratuitously copy
3005 maxindex. Its type is always set.
3007 2004-08-04 Paul Brook <paul@codesourcery.com>
3009 * Make-lang.in (cp/semantics.o, cp/optimize.o): Depend on TARGET_H.
3010 * cp-tree.h (struct language_function): Rename x_dtor_label to
3012 (dtor_label): Rename ...
3013 (cdtor_label): ... to this.
3014 * decl.c (begin_constructor_body): Remove.
3015 (check_special_function_return_type): Maybe change the return type.
3016 (grokdeclarator): Pass the class type.
3017 (start_preparsed_function): Constructors may need a return label.
3018 (finish_constructor_body, finish_destructor_body): Set the return
3020 (begin_function_body): Don't call begin_constructor_body.
3021 (finish_function): Don't warn for constructors or destructors.
3022 (implicitly_declare_fn): Maybe change the return type.
3023 * optimize.c: Include target.h.
3024 (maybe_clone_body): Remap the function result.
3025 * semantics.c: Include target.h.
3026 (finish_return_stmt): Maybe jump to return label for constructors.
3028 2004-08-03 Mark Mitchell <mark@codesourcery.com>
3030 * class.c (build_vtable): Do not set DECL_VISIBILITY here.
3031 (check_field_decls): Or here.
3032 (check_methods): Or here.
3033 (initialize_array): Don't mess with DECL_CONTEXT.
3034 * cp-tree.h (start_decl): Adjust prototype.
3035 (determine_visibility): New function.
3036 * decl.c (duplicate_decls): Remove checks for hidden "operator
3038 (build_library_fn_1): Give all library functions default
3040 (start_decl): Add pop_scope_p parameter. Tidy.
3041 (cp_finish_decl): Do not pop scopes here. Call
3042 determine_visibility for variable definitions.
3043 (start_preparsed_function): Call determine_visibility.
3044 * decl2.c (determine_visibility): New function.
3045 * method.c (use_thunk): Fix formatting.
3046 * parser.c (cp_parser_condition): Adjust calls to start_decl.
3047 (cp_parser_init_declarator): Likewise.
3048 * pt.c (instantiate_decl): Always call pop_nested_class.
3049 * rtti.c (get_tinfo_decl): Do not set DECL_VISIBILITY.
3050 (tinfo_base_init): Likewise.
3052 2004-08-02 Mark Mitchell <mark@codesourcery.com>
3055 * name-lookup.c (validate_nonmember_using_decl): Robustify.
3057 2004-08-01 Mark Mitchell <mark@codesourcery.com>
3060 * name-lookup.c (decl_namespace): Remove.
3061 (current_decl_namespace): Use decl_namespace_context instead of
3063 (push_decl_namespace): Likewise.
3064 (arg_assoc_class): Likewise.
3065 (arg_assoc_type): Likewise.
3066 * pt.c (check_specialization_namespace): New function.
3067 (maybe_process_partial_specialization): Use it.
3068 (register_specialization): Likewise.
3071 * cp-tree.h (DECL_INTEGRAL_CONSTANT_VAR_P): New macro.
3072 * call.c (null_ptr_cst_p): Handle variables with constant
3074 * pt.c (convert_nontype_argument): Use
3075 DECL_INTEGRAL_CONSTANT_VAR_P.
3076 * semantics.c (finish_id_expression): Likewise.
3079 * decl.c (duplicate_decls): Reject duplicate namespace
3083 * typeck.c (build_ptrmemfunc): Loosen assertion.
3085 2004-08-01 Gabriel Dos Reis <gdr@integrable-solutions.net>
3087 * call.c (z_candidate::template_decl): Rename from template.
3088 (add_template_candidate_real): Adjust member reference.
3091 2004-07-29 Mark Mitchell <mark@codesourcery.com>
3093 * cp-tree.h (IDENTIFIER_REPO_CHOSEN): Define.
3094 (lang_decl_flags): Narrow the width of "languages". Add
3096 (DECL_NEEDED_P): Remove.
3097 (FOR_EACH_CLONE): New macro.
3098 (DECL_REPO_AVAILABLE_P): Likewise.
3099 (DECL_TINFO_P): Likewise.
3100 (set_linkage_according_to_type): Declare.
3101 (import_export_vtable): Remove.
3102 (import_export_tinfo): Likewise.
3103 (mark_needed): New function.
3104 (decl_needed_p): Likewise.
3105 (note_vauge_linkage_fn): Likewise.
3106 (init_repo): Change prototype.
3107 (repo_template_used): Remove.
3108 (repo_template_instantiated): Likewise.
3109 (repo_emit_p): New function.
3110 (repo_export_class_p): Likewise.
3111 (no_linkage_check): Change prototype.
3112 * class.c (set_linkage_according_to_type): New function.
3113 (build_vtable): Use it. Do not call import_export_vtable. Set
3114 DECL_IGNORED_P if appropriate.
3115 * decl.c (duplicate_decls): Preserve DECL_REPO_AVAILABLE_P.
3116 (make_rtL_for_nonlocal_decls): Check for template instantiations
3118 (grokfndecl): Adjust call to no_linkage_check.
3119 (set_linkage_for_static_data_member): New function.
3120 (grokvardecl): Use it. Adjust call to no_linkage_check.
3121 (grokdeclarator): Use set_linkage_for_static_data_member.
3122 * decl2.c (note_vague_linkage_fn): New function.
3123 (note_vague_linkage_var): Likewise.
3124 (finish_static_data_member_decl): Use it.
3125 (import_export_vtable): Remove.
3126 (import_export_class): Use repo_export_class_p.
3127 (var_finalized_p): Simplify.
3128 (maybe_emit_vtables): Simplify.
3129 (mark_needed): New function.
3130 (decl_needed_p): Likewise.
3131 (import_export_decl): Add documentation and consistency checks.
3132 Use repo_emit_p. Handle virtual tables and RTTI information
3134 (import_export_tinfo): Remove.
3135 (write_out_vars): Call import_export_decl.
3136 (cxx_callgraph_analyze_expr): Ensure that all vtables are emitted
3138 (finish_file): Use decl_needed_p. Do not call import_export_decl
3139 for undefined static data members. Do not warn about undefined
3140 inlines when using a repository.
3141 (mark_used): Use note_vague_linkage_fn. Always defer template
3143 * lex.c (cxx_init): Adjust call to init_repo. Always set
3144 flag_unit_at_a-time.
3145 * method.c (synthesize_method): Remove unncessary
3146 import_export_decl call.
3147 (implicitly_declare_fn): Use set_linkage_according_to_type.
3148 * optimize.c (maybe_clone_body): Use FOR_EACH_CLONE.
3149 * pt.c (instantiate_class_template): Don't redundantly add classes
3150 to keyed_classes. Don't call repo_template_used.
3151 (tsubst_decl): Set DECL_INTERFACE_KNOWN for instantiations of
3152 templates with internal linkage.
3153 (check_instantiated_args): Adjust call to no_linkage_check.
3154 (instantiate_template): Use FOR_EACH_CLONE.
3155 (mark_definable): New function.
3156 (mark_decl_instantiated): Use it.
3157 (do_decl_instantiation): Adjust tests for explicit instantiation
3158 after "extern template".
3159 (instantiate_class_member): Do not use repo_template_instantiated.
3160 (do_type_instantiation): Simplify.
3161 (instantiate_decl): Use mark_definable. Check repo_emit_p.
3163 * repo.c (repo_get_id): Remove.
3164 (original_repo): Remove.
3165 (IDENTIFIER_REPO_USED): Remove.
3166 (IDENTIFIER_REPO_CHOSEN): Remove.
3167 Remove all #if 0'd code.
3168 (repo_template_used): Remove.
3169 (repo_template_instantiated): Remove.
3170 (temporary_obstack_initialized_p): New variable.
3171 (init_repo): Register with lang_post_pch_load. Avoid creating
3172 identifiers unnecessarily. Don't use original_repo. Close the
3174 (reopen_repo_file_for_write): Not here.
3175 (finish_repo): Always write out a new repository file.
3176 (repo_emit_p): New function.
3177 (repo_export_class_p): Likewise.
3178 * rtti.c (get_tinfo_decl): Use set_linkage_according_to_type.
3179 (involves_incomplete_p): New function.
3180 (tinfo_base_init): Use it.
3181 (ptr_initializer): Remove non_public_ptr parameter.
3182 (ptm_initializer): Likewise.
3183 (get_pseudo_ti_init): Likewise.
3184 (unemitted_tinfo_decl_p): Remove.
3185 (emit_tinfo_decl): Use import_export_decl.
3186 * semantics.c (expand_body): Move updates of static_ctors and
3188 (expand_or_defer_fn): ... here.
3189 * tree.c (no_linkage_check): Add relaxed_p parameter.
3191 2004-07-28 Eric Christopher <echristo@redhat.com>
3193 * cp-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
3195 2004-07-28 Nathan Sidwell <nathan@codesourcery.com>
3197 * cp-tree.h (struct tree_pair_s): New.
3198 (typedef tree_pair_p): New.
3199 (DEF_VEC_O(tree_pair_s)): New.
3200 (struct lang_type_class): Make vcall_indices a VEC(tree_pair_s).
3201 (CLASSTYPE_VCALL_INDICES): Update documentation.
3202 * class.c (get_vcall_index): Adjust.
3203 (add_vcall_offset): Adjust.
3205 2004-07-27 Kelley Cook <kcook@gcc.gnu.org>
3207 * pt.c, typeck.c: Remove spurious carriage returns.
3209 2004-07-27 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
3212 * pt.c (coerce_template_template_parms) <PARM_DECL case>: Only check
3213 when the type of ARG is not dependent.
3215 2004-07-26 Geoffrey Keating <geoffk@apple.com>
3217 * g++spec.c (LIBSTDCXX_PROFILE): Default to LIBSTDCXX.
3218 (lang_specific_driver): If the C++ or math library options don't
3219 start with '-l', don't count them as added libraries.
3221 2004-07-26 Nathan Sidwell <nathan@codesourcery.com>
3223 * decl.c (xref_basetypes): Adjust base access vector creation.
3224 * rtti.c (get_pseudo_ti_init, get_pseudo_ti_desc): Adjust base
3226 * search.c (dynamic_cast_base_recurse, dfs_access_in_type): Likewise.
3228 2004-07-26 Niall Douglas <s_fsfeurope2@nedprod.com>
3229 Brian Ryner <bryner@brianryner.com>
3233 * class.c (check_field_decls): Apply hidden visibility if
3234 -fvisibility-inlines-hidden and inlined unless otherwise specified
3235 (build_vtable): Set vtable visibility to class visibility.
3236 (check_field_decls): Default static member visibility to class
3238 (check_methods): Default method visibility to class visibility.
3239 * cp-tree.h: Added CLASSTYPE_VISIBILITY and
3240 CLASSTYPE_VISIBILITY_SPECIFIED macro.
3241 * decl.c (duplicate_decls): New logic for merging definition decls
3242 with declaration decls. Added ignore & warning when non default
3243 applied to global operator new or delete.
3244 * method.c, optimize.c, rtti.c: Added setting of VISIBILITY_SPECIFIED
3245 wherever VISIBILITY was changed
3246 * rtti.c (get_tinfo_decl): Set typeinfo visibility to class
3248 (tinfo_base_init): Set typeinfo name visibility to class visibility.
3250 2004-07-25 Bernardo Innocenti <bernie@develer.com>
3252 * decl.c: Rename all identifiers named `class' to `cl'.
3253 * cp-tree.h: Likewise.
3255 2004-07-25 Gabriel Dos Reis <gdr@integrable-solutions.net>
3257 * cp-tree.h (TYPE_SET_PTRMEMFUNC_TYPE): Use GGC_CNEW.
3258 * typeck2.c (abstract_virtuals_error): Use GGC_NEW.
3259 * name-lookup.c (binding_entry_make): Use GGC_NEW.
3260 (binding_table_construct): Use GGC_CNEWVEC.
3261 (binding_table_new): Use GGC_NEW.
3262 (cxx_binding_make): Likewise.
3263 (begin_scope): Likewise.
3264 (push_to_top_level): Use GCC_CNEW.
3265 * parser.c (cp_token_cache_new): Likewise.
3266 (cp_token_cache_push_token): Likewise.
3267 (cp_lexer_new_main): Likewise.
3268 (cp_lexer_new_from_tokens): Likewise.
3269 (cp_parser_context_new): Likewise.
3270 (cp_parser_new): Likewise.
3271 (cp_lexer_new_from_tokens): Use GGC_NEWVEC.
3272 * lex.c (cxx_make_type): Use GGC_CNEW.
3273 (retrofit_lang_decl): Use GGC_NEWVAR.
3274 (cxx_dup_lang_specific_decl): Likewise.
3275 (copy_lang_type): Likewise.
3276 * decl.c (use_label): Use GGC_NEW instead of ggc_alloc.
3277 (save_function_data): Likewise.
3278 (lookup_label): Use GGC_CNEW instead of ggc_alloc_cleared.
3279 (cxx_push_function_context): Likewise.
3281 2004-07-25 Richard Henderson <rth@redhat.com>
3283 * decl.c (start_preparsed_function): Set DECL_ARTIFICIAL and
3284 DECL_IGNORED_P on RESULT_DECL.
3285 * semantics.c (finalize_nrv): Copy them too.
3287 2004-07-23 Nathan Sidwell <nathan@codesourcery.com>
3289 * search.c (lookup_conversion_operator): Avoid two loops.
3290 (add_conversions): Remove.
3291 (check_hidden_convs, split_conversions,
3292 lookup_conversions_r): New.
3293 (lookup_conversions): Use lookup_conversions_r.
3295 2004-07-22 Nathan Sidwell <nathan@codesourcery.com>
3297 * pt.c (get_template_base): Check type is completable.
3299 2004-07-21 Eric Christopher <echristo@redhat.com>
3301 * decl.c (poplevel): Inline unused variable checking.
3304 2004-07-21 Paolo Bonzini <bonzini@gnu.org>
3306 * typeck.c (build_binary_op): Do not use RDIV_EXPR for
3309 2004-07-21 Giovanni Bajo <giovannibajo@gcc.gnu.org>
3312 * pt.c (check_explicit_specialization): Remove extension to accept
3313 specializations without template headers. Fall-through to normal
3316 2004-07-21 Giovanni Bajo <giovannibajo@gcc.gnu.org>
3319 * pt.c (determine_specialization): New parameter template_count.
3320 Disambiguate between member templates and member functions counting
3321 the template headers.
3322 (check_explicit_specialization): Update caller.
3323 (tsubst_friend_function): Likewise.
3325 2004-07-20 Steven Bosscher <stevenb@suse.de>
3327 * cp-tree.def (TINST_LEVEL): Make it an 'x' node.
3328 * cp-tree.h (tinst_level_t): New tree type.
3329 (union lang_tree_node): Handle it.
3330 (TINST_LOCATION): New accessor macro.
3331 (make_tinst_level): New prototype.
3332 * cp-lang.c (cp_tree_size): Handle TINST_LEVEL.
3333 * decl.c (cp_tree_node_structure): Likewise.
3334 * error.c (print_instantiation_full_context): Use TINST_LOCATION.
3335 (print_instantiation_partial_context): Likewise.
3336 * pt.c (pop_tinst_level): Likewise.
3337 (push_tinst_level): Use make_tinst_level.
3338 * tree.c (make_tinst_level): New function.
3339 (cp_walk_subtrees): Walk TINST_DECL for a TINST_LEVEL node.
3341 2004-07-20 Mark Mitchell <mark@codesourcery.com>
3343 * parser.c (cp_parser_simple_type_specifier): Fix typo.
3346 * parser.c (cp_parser_simple_type_specifier): Do not record usage
3347 of globally-qualified names.
3349 2004-07-20 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
3352 * error.c (dump_type) <BOUND_TEMPLATE_TEMPLATE_PARM case>: Output
3355 2004-07-19 Mark Mitchell <mark@codesourcery.com>
3358 * cp-tree.h (lang_type_class): Add lazy_assignment_op.
3359 (CLASSTYPE_LAZY_ASSIGNMENT_OP): New macro.
3360 * class.c (add_implicitly_declared_members): Use
3361 CLASSTYPE_LAZY_ASSIGNMENT_OP.
3362 * method.c (lazily_declare_fn): Clear
3363 CLASSTYPE_LAZY_ASSIGNMENT_OP.
3364 * search.c (lookup_fnfields_1): Check it.
3366 2004-07-20 Nathan Sidwell <nathan@codesourcery.com>
3368 * cp-tree.h (vec_binfo_member): Remove.
3369 * tree.c (vec_binfo_member): Remove.
3371 * cp-tree.h (struct lang_type_class): Remove vfields field.
3372 (CLASSTYPE_VFIELDS): Remove.
3373 (SET_BINFO_NEW_VTABLE_MARKED): Adjust.
3374 * class.c (determine_primary_base): Remove CLASSTYPE_VFIELDS
3376 (dfs_modify_vtables): Use TYPE_CONTAINS_VPTR_P.
3377 (finish_struct_1): Remove CLASSTYPE_VFIELDS handling.
3378 * init.c (dfs_initialize_vtbl_ptrs): Use TYPE_CONTAINS_VPTR_P.
3380 2004-07-20 Nathan Sidwell <nathan@codesourcery.com>
3382 * cp-tree.h (DEF_VEC_P(tree)): Remove here.
3383 (BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, BINFO_PRIMARY_BASE_OF):
3385 (BINFO_LANG_SLOTS): Remove.
3386 * tree.c (copy_binfo): Adjust BINFO creation and accessors.
3387 * decl.c (xref_basetypes): Adjust BINFO creation and accessors.
3388 * class.c (check_bases): Adjust BINFO accessors.
3389 (determine_primary_base, finish_struct_bits,
3390 maybe_warn_about_overly_private_class, warn_hidden,
3391 walk_subobject_offsets, propagate_binfo_offsets, end_of_class,
3392 warn_about_ambiguous_bases, get_vfield_name,
3393 dump_class_hierarchy_r, build_vtt_inits, accumulate_vtbl_inits,
3394 add_vcall_offset_vtbl_entries_r): Likewise.
3395 * dump.c (cp_dump_tree): Likewise.
3396 * init.c (sort_mem_initializers, expand_member_init, build_delete,
3397 push_base_cleanups): Likewise.
3398 * method.c (do_build_copy_constructor, do_build_assign_ref,
3399 synthesize_exception_spec): Likewise.
3400 name-lookup.c (arg_assoc_class): Likewise.
3401 * pt.c (instantiate_class_template,
3402 get_template_base_recursive): Likewise.
3403 * rtti.c (get_pseudo_ti_init, get_pseudo_ti_desc): Likewise.
3404 * typeck2.c (process_init_constructor): Likewise.
3405 * search.c (lookup_base_r, dynamic_cast_base_recurse,
3406 dfs_access_in_type, dfs_walk_real, look_for_overrides,
3407 types_overlap_p, copied_binfo, original_binfo): Likewise.
3408 (binfo_for_vtable): Remove
3410 2004-07-20 Steven Bosscher <stevenb@suse.de>
3412 * cp-tree.h (struct lang_decl_flags): Unify the template_info and
3413 thunk_alias, and the access and virtual_offset fields.
3414 (THUNK_VIRTUAL_OFFSET, THUNK_ALIAS): Adjust.
3415 * decl.c (finish_case_label): Update c_add_case_node call.
3417 2004-07-19 Mark Mitchell <mark@codesourcery.com>
3419 Revert patch for PR c++/16623.
3421 2004-07-19 Kelley Cook <kcook@gcc.gnu.org>
3423 * except.c: Remove two spurious carriage returns.
3425 2004-07-19 Mark Mitchell <mark@codesourcery.com>
3428 * cp-tree.h (lang_type_class): Add lazy_assignment_op.
3429 (CLASSTYPE_LAZY_ASSIGNMENT_OP): New macro.
3430 * class.c (add_implicitly_declared_members): Use
3431 CLASSTYPE_LAZY_ASSIGNMENT_OP.
3432 * method.c (lazily_declare_fn): Clear
3433 CLASSTYPE_LAZY_ASSIGNMENT_OP.
3434 * search.c (lookup_fnfields_1): Check it.
3436 2004-07-19 Nathan Sidwell <nathan@codesourcery.com>
3438 * class.c (add_method): Delay adding the slot until the end.
3439 (determine_primary_base): Adjust VEC_iterate invokation.
3440 (resort_type_method_vec, finish_struct_methods, warn_hidden,
3441 walk_subobject_offsets, end_of_class, warn_about_ambiguous_bases,
3442 build_vtbl_initializer): Likewise.
3443 * init.c (sort_mem_initializers, build_delete, push_base_cleanups,
3444 build_vbase_delete): Likewise.
3445 * method.c (do_build_copy_constructor): Likewise.
3446 * name-lookup.c (new_class_binding, print_binding_level,
3447 poplevel_class, store_class_bindings, push_to_top_level,
3448 pop_from_top_level): Likewise.
3449 * pt.c (check_explicit_specialization): Likewise.
3450 * search.c (lookup_conversion_operator, lookup_fnfields_1,
3451 get_pure_virtuals, add_conversions, dfs_check_overlap,
3452 binfo_for_vbase): Likewise.
3454 2004-07-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
3457 * pt.c (unify) <BOUND_TEMPLATE_TEMPLATE_PARM case>: Use only
3458 innermost set of template arguments during deduction. Simplify.
3460 2004-07-19 Joseph S. Myers <jsm@polyomino.org.uk>
3462 * typeck.c (build_modify_expr, build_x_modify_expr): Set
3463 TREE_NO_WARNING on assignments with an operator other than '='.
3465 2004-07-10 Steven Bosscher <stevenb@suse.de>
3466 Joseph S. Myers <jsm@polyomino.org.uk>
3468 * cp-tree.h (C_SET_EXP_ORIGINAL_CODE): Remove.
3469 * decl2.c (grokfield): Don't check current_class_depth via
3470 unused TREE_COMPLEXITY.
3471 * semantics.c (finish_parenthesized_expr): Set TREE_NO_WARNING
3472 to avoid the missing parentheses warning.
3473 Don't set C_SET_EXP_ORIGINAL_CODE.
3475 2004-07-18 Mark Mitchell <mark@codesourcery.com>
3477 * tree.c (no_linkage_helper): Remove.
3478 (no_linkage_check): Don't use walk_tree_without_duplicates.
3480 * mangle.c (write_expression): Issue a sorry for zero-operand
3483 2004-07-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
3486 * init.c (build_offset_ref): Build SCOPE_REF with non-null
3487 TREE_TYPE for non-dependent names.
3488 * typeck.c (build_x_unary_op): Handle non-dependent SCOPE_REF.
3489 * pt.c (type_dependent_expression_p): Handle SCOPE_REF with
3490 unknown_type_node as its TREE_TYPE.
3491 * cxx-pretty_print.c (pp_cxx_unqualified_id): Handle BASELINK.
3492 * error.c (dump_decl) <SCOPE_REF case>: Use pp_expression.
3493 (dump_expr) <SCOPE_REF case>: Likewise.
3495 2004-07-17 Jason Merrill <jason@redhat.com>
3498 * call.c (type_passed_as): Make the invisible reference type
3500 * cp-gimplify.c (gimplify_cleanup_stmt): Rename to
3501 cp_genericize_r. Handle invisible reference lowering.
3502 (is_invisiref_parm): New fn.
3503 (cp_genericize): Adjust the types of invisible reference parms.
3504 Don't repeat the walk for clones.
3505 * decl.c (store_parm_decls): Don't generate any code for clones.
3507 2004-07-17 Joseph S. Myers <jsm@polyomino.org.uk>
3509 * cp-tree.h (builtin_function): Declare.
3511 2004-07-16 Mark Mitchell <mark@codesourcery.com>
3513 * class.c (finish_struct_methods): Remove unncessary code.
3514 (add_implicitly_declared_members): Create declarations for default
3515 constructors and copy constructors lazily.
3516 * cp-tree.h (lang_type_class): Remove lazy_default_ctor and
3518 (CLASSTYPE_LAZY_DEFAULT_CTOR): New macro.
3519 (CLASSTYPE_LAZY_COPY_CTOR): Likewise.
3520 * decl2.c (check_classfn): Robustify.
3521 (locate_dtor): Handle empty CLASSTYPE_METHOD_VEC.
3522 (locate_ctor): Handle lazy default constructors.
3523 (locate_copy): Handle lazy copy constructors.
3524 (implicitly_declare_fn): Make sure we're looking at the
3525 TYPE_MAIN_VARIANT for a class before creating functions. Don't
3526 set TYPE_HAS_CONSTRUCTOR.
3527 (lazily_declare_fn): New function.
3528 * name-lookup.c (constructor_name_full): Simplify.
3529 * search.c (lookup_fnfields_1): Lazily create methods, as
3531 (lookup_for_overrides): Handle empty CLASSTYPE_METHOD_VEC.
3533 2004-07-16 Steven Bosscher <stevenb@suse.de>
3535 * cp-tree.h (struct lang_type): Don't have three GTY options on a
3536 single bit GTY desc.
3538 2004-07-16 Richard Henderson <rth@redhat.com>
3540 * cp-lang.c (LANG_HOOKS_TREE_INLINING_COPY_RES_DECL_FOR_INLINING): Die.
3541 * cp-tree.h (cp_copy_res_decl_for_inlining): Remove.
3542 * tree.c (cp_copy_res_decl_for_inlining): Remove.
3544 2004-07-16 Nathan Sidwell <nathan@codesourcery.com>
3546 * class.c (finish_struct_bits): Use for loop.
3547 (propagate_binfo_offsets): Do primary binfo outside of loop.
3550 * dump.c (cp_dump_tree): Don't dump the bases if there's no
3553 * pt.c (tsubst) <TREE_BINFO case>: We should never get here.
3555 2004-07-15 Mark Mitchell <mark@codesourcery.com>
3557 * cp-tree.h (lang_type_class): Remove has_real_assign_ref and
3558 has_abstract_assign_ref. Make methods a VEC(tree) *.
3559 (TYPE_HAS_CONST_ASSIGN_REF): Add documentation.
3560 (CLASSTYPE_CONSTRUCTORS): Adjust for changes to CLASSTYPE_METHOD_VEC.
3561 (CLASSTYPE_DESTRUCTORS): Likewise.
3562 (TYPE_HAS_REAL_ASSIGN_REF): Remove.
3563 (TYPE_HAS_ABSTRACT_ASSIGN_REF): Likewise.
3564 (add_method): Change prototoype.
3565 * class.c (add_method): Remove error_p parameter. Adjust for
3566 changes to CLASSTYPE_METHOD_VEC.
3567 (handle_using_decl): Adjust call to add_method.
3568 (maybe_warn_about_overly_private_class): Adjust for
3569 changes to CLASSTYPE_METHOD_VEC.
3570 (resort_type_method_vec): Likewise.
3571 (finish_struct_methods): Likewise.
3572 (check_for_override): Likewise.
3573 (warn_hidden): Likewise.
3574 (add_implicitly_declared_members): Defer creation of assignment
3575 operators. Adjust call to add_method.
3576 (clone_function_decl): Adjust call to add_method.
3577 (check_bases_and_members): Don't set TYPE_HAS_REAL_ASSIGN_REF.
3578 (finish_struct_1): Use CLASSTYPE_DESTRUCTORS.
3579 * decl.c (grok_special_member_properties): Don't set
3580 TYPE_HAS_ABSTRACT_ASSIGN_REF.
3581 * decl2.c (check_classfn): Adjust for
3582 changes to CLASSTYPE_METHOD_VEC.
3583 * method.c (locate_dtor): Use CLASSTYPE_DESTRUCTORS.
3584 (locate_ctor): Use CLASSTYPE_CONSTRUCTORS.
3585 (locate_copy): Adjust for changes to CLASSTYPE_METHOD_VEC.
3586 (implicitly_declare_fn): Set DECL_SOURCE_LOCATION. Do not call
3588 * pt.c (check_explicit_specialization): Adjust for
3589 changes to CLASSTYPE_METHOD_VEC.
3590 (instantiate_class_template): Do not set
3591 TYPE_HAS_ABSTRACT_ASSIGN_REF.
3592 * ptree.c (cxx_print_type): Don't try to print
3593 CLASSTYPE_METHOD_VEC.
3594 * rtti.c (emit_support_tinfos): Use CLASSTYPE_DESTRUCTORS.
3595 * search.c (lookup_field_r): Adjust for
3596 changes to CLASSTYPE_METHOD_VEC.
3597 (lookup_fnfields): Likewise.
3598 (lookup_conversion_operator): Likewise.
3599 (lookup_fnfields_1): Likewise. Create assignment operators
3601 (look_for_overrides_here): Adjust for
3602 changes to CLASSTYPE_METHOD_VEC.
3603 (add_conversions): Likewise.
3604 * semantics.c (finish_member_declaration): Adjust call to add_method.
3606 2004-07-15 Jason Merrill <jason@redhat.com>
3608 * cp-lang.c (cxx_types_compatible_p): To the middle-end,
3609 references and pointers are compatible.
3611 2004-07-15 Nathan Sidwell <nathan@codesourcery.com>
3613 * decl.c (xref_basetypes): Refactor.
3614 * tree.c (copy_base_binfos): Replace with ...
3615 (copy_binfo): ... this. Deep copy the given binfo, (not the just
3616 bases of the given base).
3617 * cp-tree.h (copy_base_binfo): Remove.
3618 (copy_binfo): Declare.
3620 2004-07-15 Mark Mitchell <mark@codesourcery.com>
3622 * name-lookup.c (set_inherited_value_binding_p): Add class_type
3624 (get_class_binding): Adjust.
3625 (push_class_level_binding): Don't use set_inherited_value_binding_p.
3627 2004-07-15 Nathan Sidwell <nathan@codesourcery.com>
3629 * class.c (finish_struct_bits): Don't set TYPE_HAS_CONVERSION here.
3630 * decl.c (xref_basetypes): Set it here.
3632 * class.c (check_bases): Don't set CLASSTYPE_NON_AGGREGATE here.
3633 Don't check for incomplete base.
3634 (get_vfield_name): Simplify while loop.
3635 * decl.c (xref_basetypes): Set CLASSTYPE_NON_AGGREGATE here.
3637 2004-07-14 Mark Mitchell <mark@codesourcery.com>
3639 * lex.c (cxx_make_type): Remove call to get_pointer_type.
3641 * cp-tree.h (IDENTIFIER_VALUE): Remove.
3642 (BINFO_PUSHDECLS_MARKED): Likewise.
3643 (maybe_inject_for_scope_var): Likewise.
3644 (push_class_decls): Likewise.
3645 * name-lookup.h (push_class_binding): Remove.
3646 (innermost_non_namespace_value): New function.
3647 (outer_binding): Likewise.
3648 * class.c (add_method): Push bindings before adding to
3650 (restore_class_cache): Do not restore class_shadowed.
3651 (pushclass): Do not add USING_DECLs. Do not call
3653 * config-lang.in (gtfiles): Remove $(srcdir)/cp/search.c.
3654 * decl.c (pushdecl): Use outer_binding.
3655 (poplevel): Set the scope for an out-of-scope for-loop declaration
3657 (cp_finish_decl): Don't call maybe_inject_for_scope_var.
3658 * name-lookup.c (new_class_binding): New function.
3659 (push_binding): Use it.
3660 (pushdecl): Use innermost_non_namespace_value.
3661 (maybe_inject_for_scope_var): Remove.
3662 (push_class_binding): Remove.
3663 (set_inherited_value_binding_p): New function.
3664 (get_class_binding): New function.
3665 (push_class_level_binding): Assert that the current_class_type is
3667 (outer_binding): New function.
3668 (innermost_non_namespace_value): Likewise.
3669 (lookup_name_real): Use outer_binding.
3670 (lookup_name_current_level): Ignore out-of-scope variables.
3671 * pt.c (check_template_shadow): Use innermost_non_namespace_value.
3672 (lookup_template_class): Likewise.
3673 * search.c (dfs_push_type_decls): Remove.
3674 (dfs_push_decls): Likewise.
3675 (setup_class_bindings): Likewise.
3676 (lookup_field_1): Handle USING_DECLs from dependent scopes.
3677 (marked_pushdecls_p): Remove.
3678 (unmarked_pushdecls_p): Remove.
3679 (marked_identifiers): Remove.
3680 (setup_class_bindings): Remove.
3681 (dfs_push_type_decls): Remove.
3682 (dfs_push_decls): Remove.
3683 (push_class_decls): Remove.
3685 2004-07-13 Mark Mitchell <mark@codesourcery.com>
3689 * decl.c (grokvardecl): Make declspecs parameter const.
3690 (grokdeclarator): Likewise. Adjust accordingly.
3691 * decl.h (grokdeclarator): Adjust declaration.
3692 * parser.c (cp_parser_init_declarator): Do not clear
3693 decl_specifiers->attributes.
3695 * cp-tree.h (lang_identifier): Remove class_value.
3696 (IDENTIFIER_CLASS_VALUE): Remove.
3697 (pop_class_decls): Likewise.
3698 (init_search_processing): Likewise.
3699 * class.c (handle_using_decl): Use lookup_member, not
3700 IDENTIFIER_CLASS_VALUE.
3701 (restore_class_cache): New function, split out from ...
3702 (pushclass): ... here. Do not call clear_identifier_class_values.
3703 (invalidate_class_lookup_cache): Do not clear
3704 IDENTIFIER_CLASS_VALUE.
3705 (popclass): Do not call pop_class_decls.
3706 (maybe_note_name_used_in_class): Do not save names looked up after
3707 the class is complete. Use lookup_member, not
3708 IDENTIFIER_CLASS_VALUE.
3709 * config-lang.in (gtfiles): Add $(srcdir)/cp/search.c.
3710 * decl.c (cxx_init_decl_processing): Do not call
3711 init_search_processing.
3712 * method.c (do_build_copy_constructor): Remove unnecessary code.
3713 (do_build_assign_ref): Likewise.
3714 * name-lookup.c (pushdecl): Use lookup_member, not
3715 IDENTIFIER_CLASS_VALUE.
3716 (set_identifier_type_value_with_scope): Set TREE_TYPE on the
3718 (poplevel_class): Do not restore IDENTIFIER_CLASS_VALUE.
3719 (push_class_binding): Do not set it.
3720 (clear_identifier_class_values): Remove.
3721 (push_class_level_binding): Do not set IDENTIFIER_CLASS_VALUE.
3722 (store_binding): Do not save it.
3723 (pop_from_top_level): Do not restore it.
3724 * name-lookup.h (cxx_saved_binding): Remove class_value.
3725 (clear_identifier_class_values): Remove.
3726 * ptree.c (cxx_print_identifier): Do not print
3727 IDENTIFIER_CLASS_VALUE.
3728 * search.c (search_obstack): Remove.
3729 (push_stack_level): Remove.
3730 (pop_stack_level): Remove.
3731 (search_level): Remove.
3732 (search_stack): Remove.
3733 (lookup_member): Don't check IDENTIFIER_CLASS_VALUE.
3734 (setup_class_bindings): Use IDENTIFIER_MARKED, not
3735 IDENTIFIER_CLASS_VALUE.
3736 (marked_identifiers): New variable.
3737 (push_class_decls): Clear IDENTIFIER_MARKED.
3738 (pop_class_decls): Don't call pop_search_level.
3739 (init_search_processing): Remove.
3741 2004-07-12 Mark Mitchell <mark@codesourcery.com>
3743 * cp-tree.h (get_aggr_typedef): Remove.
3744 * init.c (get_aggr_typedef): Likewise.
3746 * name-lookup.c (push_class_level_binding): Simplify.
3748 2004-07-12 Andrew Pinski <apinski@apple.com>
3752 2004-07-07 H.J. Lu <hongjiu.lu@intel.com>
3754 * rtti.c (emit_tinfo_decl): Turn off DECL_ONE_ONLY if typeinfo
3757 2004-07-12 Eric Christopher <echristo@redhat.com>
3759 * parser.c (cp_parser_class_head): Remove unused variable.
3761 2004-07-12 Giovanni Bajo <giovannibajo@gcc.gnu.org>
3763 * decl.c (grok_op_properties): Reject [de-]allocation functions
3764 declared in a namespace, or declared as static.
3766 2004-07-12 Nathan Sidwell <nathan@codesourcery.com>
3768 * cp-tree.h (make_binfo): Remove.
3769 * decl.c (xref_basetypes): Use make_tree_binfo directly.
3770 * tree.h (copy_base_binfos): Likewise.
3771 (make_binfo): Remove.
3773 * call.c (build_user_type_conversion_1, build_new_op,
3774 check_constructor_callable, build_temp,
3775 perform_direct_initialization_of_possible): Pass type directly to
3776 lookup_fnfields & build_special_member_call.
3777 (build_special_member_call): Accept a type, and complete it.
3778 * class.c (finish_stuct_bits): Copy the BINFOs here.
3779 * cvt.c (ocp_convert): Pass type directly to
3780 build_special_member_call.
3781 * decl.c (build_ptrmemfunc_type): Call xref_bastypes here.
3782 (xref_basetypes): Allocate the binfo here. Adjust.
3783 * init.c (build_init, build_new_1): Pass type directly to
3784 build_special_member_call.
3785 * lex.c (cxx_make_type): Do not allocate binfo here.
3786 * name-lookup.c (arg_assoc_class): Incomplete types have no binfo.
3787 * parser.c (cp_parser_class_head): Always call xref_basetypes.
3788 * pt.c (instantiate_class_template): Likewise. Inhibit access
3789 checking for template friends.
3790 * ptree.c (cxx_print_type): Adjust record printing.
3791 * search.c (lookup_base): When taking a type, complete it before
3792 looking for a binfo.
3793 (lookup_member): Delay completing a type.
3794 (push_class_decls): Don't walk an incomplete type.
3795 (lookup_conversions): Likewise.
3796 * semantics.c (finish_stmt_expr_expr): Pass type directly to
3797 build_special_member_call.
3798 * tree.c (copy_base_binfos): Adjust.
3799 (make_binfo): Likewise.
3800 * typeck.c (build_modify_expr): Pass type directly to
3801 build_special_member_call.
3802 * typeck2.c (process_init_constructor): Check a binfo exists.
3803 (build_m_component_ref): Allow accessing an incomplete type.
3804 (build_functional_cast): Pass type directly to
3805 build_special_member_call.
3807 2004-07-12 Giovanni Bajo <giovannibajo@gcc.gnu.org>
3810 * config-lang.in (gtfiles): Add typeck2.c.
3811 * Make-lang.in: Tweak typeck2.c dependencies, and add rule for
3813 * cp-tree.h: Declare complete_type_check_abstract.
3814 * typeck2.c (pat_calc_hash, pat_compare,
3815 complete_type_check_abstract): New functions.
3816 (abstract_virtuals_error): If the type is abstract, register the
3817 declaration within abstract_pending_vars for further checks.
3818 Inspect also dependent types. Handle IDENTIFIER_NODEs as decl.
3819 * decl.c (cp_finish_decl): Do not strip array types.
3820 (create_array_type_for_decl): Check for abstractness of the element
3822 (complete_vars): Call complete_type_check_abstract.
3823 * class.c (finish_struct): Prepare a list of virtual functions for
3824 template types, and call complete_vars on it to check for abstractness.
3826 2004-07-12 Paolo Bonzini <bonzini@gnu.org>
3828 PR tree-optimization/14107
3829 * decl.c (finish_function): Remove temporary band-aid.
3831 2004-07-11 Mark Mitchell <mark@codesourcery.com>
3833 * call.c (build_operator_new_call): Avoid using push_to_top_level.
3834 (build_new_op): Adjust call to lookup_function_nonclass.
3835 * name-lookup.c (identifier_type_value): Adjust call to
3837 (lookup_name_real): Add block_p parameter.
3838 (lookup_name_nonclass): Adjust call to lookup_name_real.
3839 (lookup_function_nonclass): Likewise.
3840 (lookup_name): Likewise.
3841 * name-lookup.h (lookup_name_real): Change prototype.
3842 (lookup_name_nonclass): Likewise.
3843 * parser.c (cp_parser_lookup_name): Likewise.
3845 * cp-tree.h (saved_scope): Make old_bindings a vector.
3846 (unuse_fields): Remove.
3847 * name-lookup.h (cxx_saved_binding): Define it.
3848 * class.c (pushclass): Don't use unuse_fields.
3849 * name-lookup.c (cxx_saved_binding_make): Remove.
3850 (store_binding): Add new bindings to a vector, using an
3851 accumulator style, rather than adding them to a list.
3852 (store_bindings): Adjust accordingly.
3853 (store_class_bindings): Likewise.
3854 (push_to_top_level): Likewise.
3855 (pop_from_top_level): Likewise.
3856 * optimize.c (maybe_clone_body): Must push_to_top_level and
3857 pop_from_top_level calls outside of loop.
3858 * parser.c (cp_parser_class_specifier): Move push_scope/pop_scope
3859 calls here from cp_parser_late_parsing_default_args.
3860 (cp_parser_save_default_args): Record the class type in which the
3861 function is declared.
3862 (cp_parser_late_parsing_default_args): Do not call
3863 push_nested_class/pop_nested_class.
3864 * search.c (dfs_unuse_fields): Remove.
3865 (unuse_fields): Remove.
3867 2004-07-11 Joseph S. Myers <jsm@polyomino.org.uk>
3869 * cp-lang.c (LANG_HOOKS_MAYBE_BUILD_CLEANUP, LANG_HOOKS_PUSHLEVEL,
3870 LANG_HOOKS_POPLEVEL, LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): Remove.
3871 * cp-tree.h (poplevel): Declare.
3872 (set_block): Remove.
3873 * decl.c (set_block): Remove.
3875 2004-07-10 Mike Stump <mrs@apple.com>
3877 * decl2.c (import_export_class): Never export/import vtables
3878 with inline key functions.
3880 2004-07-09 Steven Bosscher <stevenb@suse.de>
3882 * typeck.c (c_expand_asm_operands): Remove.
3884 2004-07-09 Mike Stump <mrs@apple.com>
3886 * typeck.c (build_class_member_access_expr): Skip null deref
3887 warning when we don't dereference it.
3889 2004-07-09 Giovanni Bajo <giovannibajo@gcc.gnu.org>
3893 * class.c (check_field_decls): Improve -Weffc++ warning: do not
3894 warn for pointers to functions/members, or for classes without
3897 2004-07-08 Mark Mitchell <mark@codesourcery.com>
3899 * name-lookup.h (struct cp_binding_level): Update documentation
3902 2004-07-08 Giovanni Bajo <giovannibajo@gcc.gnu.org>
3905 * typeck.c (check_return_expr): Improve -Weffc++ warning: handle
3906 returning CALL_EXPR, and non-reference return type.
3908 2004-07-08 Nathan Sidwell <nathan@codesourcery.com>
3910 * name-lookup.c (push_binding): Use VEC_reserve.
3912 2004-07-08 Richard Henderson <rth@redhat.com>
3914 * cp-tree.h (expand_eh_spec_block): Remove.
3916 2004-07-07 Mark Mitchell <mark@codesourcery.com>
3918 * cp-tree.h (saved_scope): Remove x_previous_class_type and
3919 x_previous_class_values; add x_previous_class_level.
3920 (previous_class_type): Remove.
3921 (previous_class_values): Remove.
3922 (previous_class_level): New macro.
3923 * class.c (pushclass): Restore the identifier cache more
3925 (invalidate_class_lookup_cache): Use vector for class_shadowed and
3926 previous_class_values.
3927 * decl.c (poplevel): Likewise.
3928 * name-lookup.c (cxx_binding_init): New function.
3929 (cxx_binding_make): Use it.
3930 (push_binding): For a binding in a class level, use a vector of
3931 cp_class_binding nodes.
3932 (push_binding_level): New function.
3933 (begin_scope): Use it.
3934 (leave_scope): Do not put class binding levels on the free list.
3935 (print_binding_level): Adjust for the fact that class_shadowed is
3937 (poplevel_class): Likewise.
3938 (clear_identifier_class_values): Likewise.
3939 (push_class_level_binding): Likewise.
3940 (set_class_shadows): Remove.
3941 (store_binding): New function.
3942 (store_class_bindings): New function.
3943 (push_to_top_level): Use store_class_bindings as appropriate.
3944 (pop_from_top_level): Use previous_class_level, not
3945 previous_class_type.
3946 * name-lookup.h (cp_class_binding): New type.
3947 (cp_binding_level): Use a vector object for class_shadowed.
3948 (push_binding_level): Declare.
3949 (set_class_shadows): Remove.
3951 2004-07-07 Andrew Pinski <apinski@apple.com>
3953 * class.c (instantiate_type): BUFFER_REF is dead.
3954 * lex.c (init_operators): IN_EXPR is dead.
3956 2004-07-07 Jason Merrill <jason@redhat.com>
3959 * call.c (build_new_op): Give overload warnings for built-in
3962 2004-07-07 H.J. Lu <hongjiu.lu@intel.com>
3965 * rtti.c (emit_tinfo_decl): Turn off DECL_ONE_ONLY if typeinfo
3968 2004-07-07 Nathan Sidwell <nathan@codesourcery.com>
3970 * cp-tree.h (CLASSTYPE_N_BASECLASSES): Remove.
3971 * class.c (build_primary_vtable, check_bases,
3972 determine_primary_base, finish_struct_bits,
3973 maybe_warn_about_overly_private_class, dfs_find_final_overrider_q,
3974 get_basefndecls, warn_hidden, walk_subobject_offsets,
3975 build_base_fields, create_vtable_ptr, propagate_binfo_offsets,
3976 layout_virtual_bases, end_of_class, warn_about_ambiguous_bases,
3977 finish_struct_1, get_vfield_name, contains_empty_class_p,
3978 dump_class_hierarchy_r, finish_vtbls, build_vtt_inits,
3979 dfs_ctor_vtable_bases_queue_p, accumulate_vtbl_inits,
3980 add_vcall_offset_vtbl_entries_r, cp_fold_obj_type_ref): Adjust
3982 * decl.c (xref_basetypes): Likewise.
3983 * dump.c (cp_dump_tree): Likewise.
3984 * error.c (dump_expr): Likewise.
3985 * init.c (sort_mem_initializers, expand_member_init,
3986 push_base_cleanups): Likewise.
3987 * method.c (do_build_copy_constructor, do_build_assign_reg,
3988 synthesize_exception_spec): Likewise.
3989 * name-lookup.c (arg_assoc_class): Likewise.
3990 * pt.c (instantiate_class_template, tsubst,
3991 get_template_base_recursive): Likewise.
3992 * ptree.c (cxx_print_type): Likewise.
3993 * rtti.c (get_psuedo_ti_init, get_pseudo_ti_desc): Likewise.
3994 * search.c (lookup_base_r, dynamic_cast_base_recurse,
3995 dfs_access_in_type, access_in_type, lookup_field_queue_p,
3996 bfs_walk, dfs_walk_real, look_for_overrides, markedp, unmarkedp,
3997 marked_pushdecls_p, unmarked_pushdecls_p, dfs_debug_markedp,
3998 dfs_debug_unmarkedp, dfs_check_overlap, dfs_no_overlap_yet,
3999 binfo_for_vtable, copied_binfo, original_binfo): Likewise
4000 * tree.c (copy_base_binfos, make_binfo): Likewise.
4001 * typeck.c (commmon_base_type): Likewise
4002 * typeck2.c (process_init_constructor): Likewise
4004 2004-07-06 Joseph S. Myers <jsm@polyomino.org.uk>
4006 * decl.c (check_tag_decl): Name redeclared type in diagnostic.
4008 2004-07-06 Giovanni Bajo <giovannibajo@gcc.gnu.org>
4011 * pt.c (convert_nontype_argument): Disallow conversions between
4012 different enumeration types.
4014 2004-07-06 Nathan Sidwell <nathan@codesourcery.com>
4016 * cp-tree.h (BINFO_MARKED): Remove.
4017 (BINFO_VTABLE_PATH_MARKED, BINFO_NEW_VTABLE_MARKED,
4018 BINFO_DEPENDENT_BASE_P, BINFO_LOST_PRIMARY_P,
4019 BINFO_INDIRECT_PRIMARY_P): Use appropriate BINFO_FLAG_n.
4020 (SET_BINFO_NEW_VTABLE_MARKED): Use BINFO_VIRTUAL_P.
4021 * class.c (build_base_path): Use BINFO_VIRTUAL_P.
4022 (mark_primary_bases, determine_primary_base, base_derived_from,
4023 dfs_find_final_overrider, dfs_find_final_overrider_q,
4024 dfs_find_inal_overrider_post, update_vtable_entry_for_fn,
4025 dfs_modify_vtables, walk_subobject_offsets,
4026 layout_nonempty_base_or_field, build_base_field,
4027 build_base_fields, propagate_binfo_offsets, layout_virtual_bases,
4028 end_of_class, get_vfield_name, dump_class_hierarchy, dump_vtable,
4029 finish_vtbls, build_vtt_inits, dfs_build_secondary_vptr_vtt_inits,
4030 build_ctor_vtbl_group, accumulate_vtble_inits,
4031 dfs_accumulate_vtbls_inits, build_vbase_offset_vtbl_entries,
4032 build_vcall_offset_vtbl_entries, add_vcall_offset_vtbl_entries_r,
4033 add_vcall_offset_vtbl_entries_1): Likewise.
4034 * decl.c (xref_basetypes): Incoming virtual base indicated by
4036 * dump.c (cp_dump_tree): Use BINFO_VIRTUAL_P.
4037 * init.c (finish_init_stmts, sort_mem_initializers,
4038 emit_mem_initializers, build_vtble_address, expand_member_init,
4039 push_base_cleanups): Likewise.
4040 * method.c (do_build_copy_constructor): Likewise.
4041 * pt.c (instantiate_class_template,
4042 get_template_base_recursive): Likewise.
4043 * rtti.c (dfs_class_hint_mark, get_pseudo_ti_init,
4044 get_pseudo_ti_desc): Likewise.
4045 * search.c (lookup_base_r, dynamic_cast_base_recurse,
4046 binfo_from_vbase, binfo_via_virtual, copied_binfo,
4047 original_binfo): Likewise.
4048 * semantics.c (finish_base_specifier): Virtualness is indicated
4050 * tree.c (copy_base_binfos): Use BINFO_VIRTUAL_P.
4052 2004-07-06 Mark Mitchell <mark@codesourcery.com>
4055 2004-06-24 Jason Merrill <jason@redhat.com>
4057 * decl.c (grokparms): Give the PARM_DECL reference type if the
4058 parameter is passed by invisible reference.
4060 2004-07-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
4062 * cp-lang.c (cp_var_mod_type_p): Add extra arg.
4063 * decl.c (grokdeclarator): Extra arg to variably_modified_type_p.
4064 * pt.c (check_instantiated_args, unify): Likewise.
4066 2004-07-05 Phil Edwards <phil@codesourcery.com>
4068 * Make-lang.in (check-c++, lang_checks): Add some comments.
4070 2004-07-05 Zack Weinberg <zack@codesourcery.com>
4072 * cp-mudflap.c: Delete file.
4073 * Makefile.in: Remove all references to cp-mudflap.o.
4075 2004-07-05 Zack Weinberg <zack@codesourcery.com>
4077 * decl.c (cxx_init_decl_processing): Call
4078 build_common_tree_nodes before creating the global NAMESPACE_DECL.
4080 2004-07-05 Giovanni Bajo <giovannibajo@gcc.gnu.org>
4083 * call.c (build_operator_new_call): Look only at global scope.
4085 2004-07-05 Nathan Sidwell <nathan@codesourcery.com>
4087 * call.c (enforce_access): Expect TREE_BINFO.
4088 * class.c (binfo_ctor_vtable): Check TREE_BINFO.
4089 * cp-tree.h (RECORD_OR_UNION_TYPE_CHECK): Remove.
4090 (BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, BINFO_PRIMARY_BASE_OF):
4092 (BINFO_LANG_ELTS): Remove.
4093 (BINFO_LANG_SLOTS): New.
4094 (TYPE_RAISES_EXCEPTIONS, ENUM_TEMPLATE_INFO): Use TYPE_LANG_SLOT_1.
4095 (CLASSTYPE_TEMPLATE_INFO): Adjust.
4096 * pt.c (tsubst): Split TREE_BINFO case from TREE_VEC case.
4097 * search.c (lookup_member): Check TREE_BINFO.
4098 * semantics.c (perform_or_defer_access_check): Likewise.
4099 (check_accessibility_of_qualified_id): Check
4100 deferred_access_no_check.
4101 * tree.c (make_binfo): Use make_tree_binfo.
4103 2004-07-04 Mark Mitchell <mark@codesourcery.com>
4105 * method.c (implicitly_declare_fn): Set linkage of generated
4108 2004-07-04 Richard Henderson <rth@redhat.com>
4110 * typeck.c (cxx_mark_addressable): Don't put_var_into_stack.
4112 2004-07-03 Scott Brumbaugh <scottb.lists@verizon.net>
4115 * name-lookup.c (push_class_level_binding): Don't pass a
4116 TREE_LIST of ambiguous names to check_template_shadow as it
4117 only handles declarations. Instead, pull the declaration
4120 2004-07-03 Giovanni Bajo <giovannibajo@gcc.gnu.org>
4123 * pt.c (check_explicit_specialization): Clarify error message.
4125 2004-07-02 Richard Henderson <rth@redhat.com>
4127 * tree.c (cp_unsave_r): Update remap_save_expr call.
4129 2004-07-02 Mark Mitchell <mark@codesourcery.com>
4132 * mangle.c (write_template_arg): Correct mangling.
4135 * decl.c (grokdeclarator): Robustify.
4137 2004-07-01 Richard Henderson <rth@redhat.com>
4139 * class.c (fixed_type_or_null): Don't handle RTL_EXPR.
4140 * method.c (synthesize_method): Don't clear_last_expr.
4141 * name-lookup.c (maybe_push_cleanup_level): Likewise.
4143 2004-07-01 Nick Clifton <nickc@redhat.com>
4145 * decl2.c (import_export_class): Invoke the
4146 import_export_class field in the gcc_target structure if it is not
4149 2004-06-30 Richard Henderson (rth@redhat.com>
4151 * decl.c (start_preparsed_function): Don't set immediate_size_expand.
4152 * method.c (use_thunk): Likewise.
4154 2004-06-30 Joseph S. Myers <jsm@polyomino.org.uk>
4156 * call.c (build_over_call), typeck.c (build_function_call): Call
4157 check_function_arguments instead of check_function_format.
4159 2004-06-30 Joseph S. Myers <jsm@polyomino.org.uk>
4161 * call.c (build_over_call), typeck.c (build_function_call): Update
4162 calls to check_function_format.
4164 2004-06-30 Richard Henderson <rth@redhat.com>
4166 * call.c (build_over_call): Use __builtin_memcpy for copying
4167 CLASS_AS_BASE rather than funny casting.
4169 2004-06-30 Richard Henderson <rth@redhat.com>
4171 * init.c (build_new_1): Fill in TYPE_DOMAIN, TYPE_SIZE and
4172 TYPE_SIZE_UNIT of full_type.
4174 2004-06-30 Per Bothner <per@bothner.com>
4176 Conditionally compile support for --enable-mapped_location.
4177 * decl.c (pop_label): Handle (imperfectly) USE_MAPPED_LOCATION case.
4178 * decl2.c: If USE_MAPPED_LOCATION, don't do some line number
4179 adjustments - which I don't understand.
4180 * error.c (dump_decl): Rename "<interrnal>" to "<built-in>".
4181 * error.c: Use LOCATION_FILE and EXPR_LOCATION macros.
4182 (print_instantiation_partial_context): Use expand_location.
4183 * decl.c (duplicate_decl): Use new DECL_IS_BUILTIN macro.
4184 * name-lookup.c: Likewise.
4185 * lex.c (cxx_init): Likewise. Also use BUILTINS_LOCATION.
4186 * name-lookup.c: Use input_line macro.
4187 * parser.c (cp_lexer_get_preprocessor_token): Use UNKNOWN_LOCATION.
4188 (cp_parser_statement): Rename locaal variable statement_locus to
4189 statement_location and use SET_EXPR_LOCATION macro.
4190 * pt.c: Handle USE_MAPPED_LOCATION case. Use new macros.
4191 * tree.c (cp_walk_subtrees): Likewise.
4193 2004-06-29 Per Bothner <per@bothner.com>
4195 * tree.c (build_min_nt, build_min, build_min_non_dep):
4196 Don't set TREE_COMPLEXITY from input_line.
4198 2004-06-29 Paul Brook <paul@codesourcery.com>
4200 * init.c: Include target.h.
4201 (get_cookie_size): Remove and replace with target hook.
4203 (build_new_1): Store the element size in the cookie.
4205 2004-06-29 Nathan Sidwell <nathan@codesourcery.com>
4208 * parser.c (cp_parser_template_declaration_after_export): Disable
4209 access checks here ...
4210 (cp_parser_class_specifier): ... not here.
4212 2004-06-28 Nathan Sidwell <nathan@codesourcery.com>
4214 * cp-tree.h (VAR_OR_FUNCTION_DECL_CHECK,
4215 VAR_FUNCTION_OR_PARM_DECL_CHECK, RECORD_OR_UNION_TYPE_CHECK,
4216 BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): Use appropriate
4219 2004-06-28 Nathan Sidwell <nathan@codesourcery.com>
4221 * cp-tree.h (struct deferred_access): Move to ...
4222 * semantics.c (struct deferred_access): ... here. Adjust.
4223 (deferred_access_stack): Make a VEC(deferred_access),
4224 (deferred_access_free_list): Remove.
4225 (deferred_access_no_check): New.
4226 (push_deferring_access_checks, resume_deferring_access_checks,
4227 stop_deferring_access_checks, pop_deferring_access_checks,
4228 get_deferred_access_checks, pop_to_parent_deferring_access_checks,
4229 perform_deferred_access_checks, perform_or_defer_access_check): Adjust.
4231 2004-06-28 Nathan Sidwell <nathan@codesourcery.com>
4234 * call.c (build_temp): Declare.
4235 (check_constructor_callable): New.
4236 (reference_binding): Only set CHECK_COPY_CONSTRUCTOR if not for
4237 CONSTRUCTOR_CALLABLE.
4238 (convert_like_real, initialize_reference): Use
4239 check_constructor_callable.
4240 * cp-tree.h (LOOKUP_CONSTRUCTOR_CALLABLE): New.
4241 (LOOKUP_*): Renumber.
4243 2004-06-28 Nathan Sidwell <nathan@codesourcery.com>
4245 * friend.c (add_friend): Only perform access checks when context
4247 * lex.c (cxx_make_type): Only create a binfo for aggregate types.
4248 * parser.c (cp_parser_class_specifier): Disable access checks here
4249 when parsing the body of a templated class.
4250 * semantics.c (perform_or_defer_access_checks): Reorder to allow
4251 NULL binfos when not checking access.
4253 2004-06-28 Nathan Sidwell <nathan@codesourcery.com>
4255 Use vector API for vbase list.
4256 * cp-tree.h: Include vec.h
4257 (DEF_VEC_P (tree)): New type.
4258 (struct lang_type_class): Change vbase's member type.
4259 (binfo_for_vbase): Declare.
4260 * class.c (determine_primary_base, base_derived_from,
4261 update_vtable_entry_for_fn, walk_subobject_offsets, end_of_class,
4262 warn_about_ambiguous_bases, dfs_accumulate_vtbl_inits,
4263 build_vtbl_initializer): Adjust.
4264 * decl.c (xref_basetypes): Adjust, accumulate upper bound of
4266 * init.c (sort_mem_initializers, expand_member_init,
4267 push_base_cleanups): Adjust.
4268 * method.c (do_build_copy_constructor): Adjust.
4269 * search.c (get_pure_virtuals, copied_binfo, original_binfo): Adjust.
4270 (binfo_for_vbase): New.
4271 * tree.c (copy_base_binfos): Adjust.
4273 2004-06-28 Mark Mitchell <mark@codesourcery.com>
4275 * parser.c (cp_parser_set_decl_spec_type): Fix thinko.
4277 2004-06-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
4280 * cxx-pretty-print.c (pp_cxx_ptr_operator): Properly put
4281 paranthesis in case of pointers to array members.
4282 * error.c (dump_type_prefix): Likewise.
4283 (dump_type_suffix): Maybe issue a whitespace when printing
4286 2004-06-27 Mark Mitchell <mark@codesourcery.com>
4289 * parser.c (cp_parser_set_decl_spec_type): Refine test for
4290 redefinition of built-in types.
4292 2004-06-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
4294 * error.c (pp_template_argument_list_start): Remove.
4295 (pp_template_argument_list_end): Likewise.
4296 (pp_separate_with_comma): Use pp_cxx_separate_with.
4297 (reinit_global_formatting_buffer): Remove.
4298 (pp_non_consecutive_character): Likewise.
4299 (dump_scope): Use pp_cxx_colon_colon.
4300 (dump_template_parameter): Use pp_cxx_identifier,
4301 pp_cxx_tree_identifier and pp_cxx_whitespace.
4302 (dump_templat_bindings): Replace use of pp_string with sequence
4303 of pp_cxx_whitespace and pp_equal.
4304 (dump_type): Use pp_cxx_identifier, pp_cxx_tree_identifier,
4305 pp_cxx_colon_colon, pp_cxx_whitespace throughout. Don't set
4307 (dump_aggr_type): Use pp_cxx_identifier amd pp_cxx_tree_identifier.
4308 (dump_type_prefix): Don't set padding. Use pp_cxx_whitespace,
4309 pp_cxx_left_parent, pp_cxx_colon_colon and pp_cxx_star troughout.
4310 (dump_type_suffix): Use pp_cxx_right_paren, pp_cxx_left_bracket,
4311 pp_cxx_right_bracket, pp_cxx_identifier throughout,
4312 (dump_decl): Likewise.
4313 (dump_template_decl): Likewise.
4314 (dump_function_decl): Likewise. Set padding as appropriate.
4315 (dump_parameters): Use pp_cxx_left_paren, pp_cxx_identifier and
4317 (dump_exception_spec): Likewise.
4318 (dump_function_name): Use pp_cxx_tree_identifier and
4320 (dump_template_parms): Use pp_cxx_begin_template_argument_list and
4321 pp_cxx_end_template_argument_list.
4322 (dump_expr): Use pp_cxx_left_paren, pp_cxx_right_paren,
4323 pp_cxx_colon_colon, pp_cxx_identifier, pp_cxx_tree_identifier and
4324 pp_cxx_whitespace throughout.
4325 (dump_binary_op): Use pp_cxx_whitespace, pp_cxx_left_paren and
4327 (dump_unary_op): Likewise.
4328 (reinit_cxx_pp): New function.
4329 (type_as_string); Use it.
4330 (expr_as_string): Likewise.
4331 (decl_as_string); Likewise.
4332 (context_as_string): Likewise.
4333 (lang_decl_name): Likewise.
4334 (decl_to_string): Likewise.
4335 (expr_to_string): Likewise.
4336 (parm_to_string): Likewise.
4337 (type_to_string): Likewise.
4338 (args_to_string): Likewise.
4339 (cv_to_string): Likewise.
4341 2004-06-26 Mark Mitchell <mark@codesourcery.com>
4343 * cp-tree.h (cp_cv_quals): New type.
4344 (cp_declarator): Use it instead of "tree" as appropriate.
4345 (grok_method_quals): Adjust prototype.
4346 (grokclassfn): Likewise.
4347 (do_friend): Likewise.
4348 * decl.c (grokfndecl): Use cp_cv_quals, not tree.
4349 (grokdeclarator): Likewise.
4350 * decl2.c (grok_method_quals): Likewise.
4351 (grokclassfn): Likewise.
4352 * friend.c (do_friend): Likewise.
4353 * method.c (implicitly_declare_fn): Adjust call to grokclassfn.
4354 * parser.c (make_call_declarator): Use cp_cv_quals, not tree.
4355 (make_pointer_declarator): Likewise.
4356 (make_reference_declarator): Likewise.
4357 (make_ptrmem_declarator): Likewise.
4358 (cp_parser_ptr_operator): Likewise.
4359 (cp_parser_cv_qualifier_seq_opt): Likewise.
4360 (cp_parser_cv_qualifier_opt): Remove.
4361 (cp_parser_new_declarator_opt): Adjust call to
4362 cp_parser_ptr_operator.
4363 (cp_parser_conversion_declaration_opt): Likewise.
4364 (cp_parser_declarator): Use cp_cv_quals, not tree.
4365 (cp_parser_direct_declarator): Likewise.
4367 2004-06-26 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
4369 * call.c, cp-tree.h, cxx-pretty-print.c, decl.c, decl2.c:
4370 Rename DECL_STMT to DECL_EXPR.
4371 * init.c, name-lookup.c, parser.c, pt.c, semantics.c: Likewise.
4372 * cp-lang.c (LANG_HOOKS_SAFE_FROM_P): Deleted.
4373 * tree.c (cp_walk_subtrees): Don't call c_walk_subtrees.
4375 2004-06-26 Jan Hubicka <jh@suse.cz>
4378 * decl2.c (maybe_emit_vtables): Always import_export_vtable for the
4379 reachability analysis.
4381 2004-06-25 Mark Mitchell <mark@codesourcery.com>
4383 * cp-mudflap.c (mflang_flush_calls): Fix thinkos resulting from
4386 2004-06-25 Paul Brook <paul@codesourcery.com>
4388 * decl2.c (get_guard): Call targetm.cxx.guard_type.
4389 (get_guard_bits, get_guard_cond): Call targetm.cxx.guard_mask_bit.
4391 2004-06-24 Mark Mitchell <mark@codesourcery.com>
4393 * decl.c (grokdeclarator): Restore error messages about __thread.
4394 * parser.c (cp_parser_decl_specifier_seq): Likewise.
4396 2004-06-24 Jason Merrill <jason@redhat.com>
4399 * decl.c (grokparms): Give the PARM_DECL reference type if the
4400 parameter is passed by invisible reference.
4402 2004-06-24 Andreas Schwab <schwab@suse.de>
4404 * cp-tree.h (enum cp_storage_class): Remove trailing comma.
4406 2004-06-23 Mark Mitchell <mark@codesourcery.com>
4408 * Make-lang.in (cp/lex.o): Do not depend on cp/lex.h.
4409 (cp/decl.o): Likewise.
4410 (cp/decl2.o): Likewise.
4411 (cp/pt.o): Likewise.
4412 (cp/semantics.o): Likewise.
4413 * config-lang.in (gtfiles): Do not reference cp/lex.h.
4414 * class.c: Do not include lex.h.
4415 (add_implicitly_declared_members): Do not use
4416 adding_implicit_members.
4417 (check_bases_and_members): Do not talk about grok_x_components.
4418 * cp/cp-tree.h (adding_implicit_members): Remove.
4419 (cp_storage_class): New type.
4420 (cp_decl_spec): Likewise.
4421 (cp_decl_specifier_seq): Likewise.
4422 (cp_parameter_declarator): Use it for the decl_specifiers field.
4423 (check_tag_decl): Adjust prototype.
4424 (shadow_tag): Likewise.
4425 (groktypename): Likewise.
4426 (start_decl): Likewise.
4427 (start_function): Likewise.
4428 (start_method): Likewise.
4429 (grok_x_components): Remove.
4430 (grokfield): Adjust prototype.
4431 (grokbitfield): Likewise.
4432 (finish_member_class_template): Remove.
4433 * decl.c: Do not include lex.h.
4434 (adding_implicit_members): Do not define.
4435 (check_tag_decl): Do not use trees to represent decl-specifiers.
4436 (shadow_tag): Likewise.
4437 (groktypename): Likewise.
4438 (start_decl): Likewise.
4439 (grokvardecl): Likewise.
4440 (grokdeclarator): Likewise.
4441 (grokparms): Likewise.
4442 (start_function): Likewise.
4443 (start_method): Likewise.
4444 * decl.h (grokdeclarator): Adjust prototype.
4445 * decl2.c: Do not include lex.h.
4446 (grok_x_components): Remove.
4447 (grokfield): Do not use trees to represent decl-specifiers.
4448 (grokbitfield): Likewise.
4449 * lex.c: Do not include lex.h.
4451 * parser.c: Include target.h.
4452 (clear_decl_specs): New function.
4453 (cp_parser_translation_unit): Do not use trees to represent
4455 (cp_parser_postfix_expression): Likewise.
4456 (cp_parser_new_type_id): Likewise.
4457 (cp_parser_condition): Likewise.
4458 (cp_parser_simple_declaration): Likewise.
4459 (cp_parser_decl_specifier_seq): Likewise.
4460 (cp_parser_function_specifier_opt): Likewise.
4461 (cp_parser_conversion_type_id): Likewise.
4462 (cp_parser_template_parameter): Likewise.
4463 (cp_parser_explicit_instantiation): Likewise.
4464 (cp_parser_type_specifier): Likewise.
4465 (cp_parser_simple_type_specifier): Likewise.
4466 (cp_parser_init_declarator): Likewise.
4467 (cp_parser_type_id): Likewise.
4468 (cp_parser_type_specifier_seq): Likewise.
4469 (cp_parser_parameter_declaration): Likewise.
4470 (cp_parser_member_declaration): Likewise.
4471 (cp_parser_exception_declaration): Likewise.
4472 (cp_parser_function_definition_from_specifiers_and_declarator):
4474 (cp_parser_single_declaration): Likewise.
4475 (cp_parser_save_member_function_body): Likewise.
4476 (cp_parser_friend_p): Likewise.
4477 (cp_parser_set_storage_class): New function.
4478 (cp_parser_set_decl_spec_type): Likewise.
4479 * pt.c: Do not include lex.h.
4480 * semantics.c: Likewise.
4481 (finish_member_class_template): Remove.
4483 2004-06-23 Roger Sayle <roger@eyesopen.com>
4485 * call.c (build_cxx_call): Don't call expand_tree_builtin. No
4486 longer take both "args" and "convert_args" as arguments.
4487 (build_op_delete_call): Update call to build_cxx_call.
4488 (build_over_call): Likewise, update call to build_cxx_call.
4489 * cp-tree.h (build_cxx_call): Update funtion prototype.
4490 * typeck.c (build_function_call): Don't call expand_tree_builtin.
4491 * rtti.c (throw_bad_cast): Update call to build_cxx_call.
4492 (throw_bad_typeid): Likewise.
4493 (build_dynamic_cast_1): Likewise.
4495 2004-06-22 Richard Henderson <rth@redhat.com>
4497 * class.c (build_vfn_ref): Take a pointer not object. Build
4499 (cp_fold_obj_type_ref): New.
4500 * call.c (build_over_call): Update build_vfn_ref call.
4501 * cp-lang.c (LANG_HOOKS_FOLD_OBJ_TYPE_REF): New.
4502 * cp-tree.h (cp_fold_obj_type_ref): Declare.
4504 2004-06-21 Jason Merrill <jason@redhat.com>
4507 * cp-gimplify.c (cp_gimplify_init_expr): Look through
4510 2004-06-21 Mark Mitchell <mark@codesourcery.com>
4512 * cp-tree.def (NEW_EXPR): Add a fourth slot.
4513 * cp-tree.h (PARMLIST_ELLIPSIS_P): Remove.
4514 (TREE_PARMLIST): Likewise.
4515 (CALL_DECLARATOR_PARMS): Likewise.
4516 (CALL_DECLARATOR_QUALS): Likewise.
4517 (CALL_DECLARATOR_EXCEPTION_SPEC): Likewise.
4518 (cp_declarator_kind): New type.
4519 (cp_parameter_declarator): Likewise.
4520 (cp_declarator): Likewise.
4521 (cp_error_declarator): Likewise.
4522 (no_parameters): Likewise.
4523 (groktypename): Change prototype.
4524 (start_decl): Likewise.
4525 (start_handler_parms): Likewise.
4526 (get_scope_of_declarator): Likewise.
4527 (start_function): Likewise.
4528 (start_preparsed_function): New function.
4529 (start_function): Change prototype.
4530 (start_method): Likewise.
4531 (grokfield): Likewise.
4532 (grokbitfield): Likewise.
4533 (build_new): Likewise.
4534 (make_pointer_declarator): Remove.
4535 (make_reference_declarator): Likewise.
4536 (make_call_declarator): Likewise.
4537 (set_quals_and_spec): Likewise.
4538 (process_template_parm): Change prototype.
4539 (begin_function_definition): Remove.
4540 (finish_parmlist): Remove.
4541 * decl.c (groktypename): Do not use trees to represent
4543 (start_decl): Likewise.
4544 (start_handler_parms): Remove.
4545 (get_scope_of_declarator): Reimplement.
4546 (grokdeclarator): Do not use trees to represent declarators.
4547 (grokparms): Likewise.
4548 (start_function): Likewise.
4549 (start_method): Likewise.
4550 (build_void_list_mode): Do not use TREE_PARMLIST.
4551 * decl.h (grokdeclarator): Change prototype.
4552 * decl2.c (grok_method_quals): Robustify.
4553 (grok_x_components): Do not use trees to represent declarators.
4554 (grokfield): Likewise.
4555 (grokbitfield): Likewise.
4556 (start_objects): Build FUNCTION_DECLs, not declarators.
4557 (start_static_storage_duration_function): Likewise.
4558 * init.c (build_new): Simplify.
4559 * lex.c (make_pointer_declarator): Remove.
4560 (make_reference_declarator): Likewise.
4561 (make_call_declarator): Likewise.
4562 (set_quals_and_spec): Likewise.
4563 * method.c (use_thunk): Use start_preparsed_function.
4564 (synthesize_method): Likewise.
4565 (implicitly_declare_fn): Build FUNCTION_DECLs, not declarators.
4566 * optimize.c (maybe_clone_body): Use start_preparsed_function.
4567 * parser.c (cp_error_declarator): New variable.
4568 (declarator_obstack): Likewise.
4569 (alloc_declarator): New function.
4570 (make_declarator): Likewise.
4571 (make_id_declarator): Likewise.
4572 (make_pointer_declarator): Likewise.
4573 (make_reference_declarator): Likewise.
4574 (make_ptrmem_declarator): Likewise.
4575 (make_call_declarator): Likewise.
4576 (make_array_declarator): Likewise.
4577 (no_parameters): New variable.
4578 (make_parameter_declarator): Likewise.
4579 (cp_parser_check_for_definition_in_return_type): Do not use trees
4580 to represent declarators.
4581 (cp_parser_translation_unit): Likewise.
4582 (cp_parser_new_expression): Likewise.
4583 (cp_parser_new_type_id): Likewise.
4584 (cp_parser_new_declarator_opt): Likewise.
4585 (cp_parser_direct_new_declarator): Likewise.
4586 (cp_parser_condition): Likewise.
4587 (cp_parser_declaration_statement): Likewise.
4588 (cp_parser_declaration): Likewise.
4589 (cp_parser_conversion_type_id): Likewise.
4590 (cp_parser_conversion_declarator_opt): Likewise.
4591 (cp_parser_template_parameter_list): Likewise.
4592 (cp_parser_template_parameter): Likewise.
4593 (cp_parser_explicit_instantiation): Likewise.
4594 (cp_parser_init_declarator): Likewise.
4595 (cp_parser_declarator): Likewise.
4596 (cp_parser_direct_declarator): Likewise.
4597 (cp_parser_type_id): Likewise.
4598 (cp_parser_parameter_declaration_clause): Likewise.
4599 (cp_parser_parameter_declaration_list): Likewise.
4600 (cp_parser_parameter_declaration): Likewise.
4601 (cp_parser_member_declaration): Likewise.
4602 (cp_parser_exception_declaration): Likewise.
4603 (cp_parser_check_declarator_template_parameters): Likewise.
4604 (cp_parser_function_definition_from_specifiers_and_declarator):
4606 (cp_parser_save_member_function_body): Likewise.
4607 * pt.c (process_template_parm): Add is_non_type parameter.
4608 (convert_template_argument): Adjust call to groktypename.
4609 (tsubst_call_declarator_parms): Remove use of TREE_PARMLIST.
4610 (tsubst): Do not expect declarators.
4611 (tsubst_copy_and_build): Adjust NEW_EXPR case to handle additional
4613 (instantiate_decl): Use start_preparsed_function.
4614 * semantics.c (begin_function_definition): Remove.
4615 (finish_parmlist): Remove.
4616 * cp-mudflap.c (mflang_flush_calls): Build FUNCTION_DECLs, not
4619 2004-06-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
4621 * call.c (build_vfield_ref): Add new operand for COMPONENT_REF.
4622 (build_new_method_call): Likewise.
4623 * decl.c (local_variable_p_walkfn): Don't walk into types.
4624 * decl2.c (grok_array_decl): Add new operands for ARRAY_REF.
4625 (build_anon_union_vars): Add new operand for COMPONENT_REF.
4626 * init.c (buld_new): Add new operand for ARRAY_REF.
4627 * method.c (do_build_copy_constructor): New op for COMPONENT_REF.
4628 (do_build_assign_ref): Likewise.
4629 * parser.c (cp_parser_direct_new_declarator): Add new operands
4631 (cp_parser_direct_declarator): Likewise.
4632 * pt.c (tsubst): Likewise.
4633 (tsubst_copy, tsubst_copy_and_build): Likewise; also add new operand
4635 * semantics.c (finish_non_static_data_member): Add new operand
4637 * typeck.c (build_class_member_access_expr): Likewise.
4638 (build_class_member_access_expr, finish_class_member_access_expr):
4640 (build_ptrmemfunc_access_expr): Likewise.
4641 (build_array_ref): Add new operands for ARRAY_REF.
4642 * typeck2.c (split_nonconstant_init_1): Likewise; COMPONENT_REF too.
4643 * tree.c (count_trees_r, no_linkage_helper): Don't walk in types.
4645 2004-06-21 Richard Henderson <rth@redhat.com>
4647 * dump.c (cp_dump_tree): Don't use dump_next_stmt.
4648 * parser.c (cp_parser_jump_statement): Update commentary.
4649 * pt.c (tsubst_expr): Use RETURN_EXPR.
4650 * semantics.c (finish_return_stmt): Likewise.
4651 (finalize_nrv_r): Likewise.
4652 * typeck.c, typeck2.c: Update file start commentary.
4654 2004-06-21 Richard Henderson <rth@redhat.com>
4656 * semantics.c (finish_expr_stmt): Call verify_sequence_points.
4658 2004-06-20 Richard Henderson <rth@redhat.com>
4660 * cp-tree.h (add_decl_stmt): Declare.
4661 * pt.c (tsubst_copy): Abort for CLEANUP_POINT_EXPR.
4662 * semantics.c (maybe_cleanup_point_expr): New.
4663 (add_decl_stmt, finish_expr_stmt, finish_return_stmt,
4664 finish_for_expr, finish_switch_cond): Use it.
4665 (finalize_nrv_r): Don't build an EXPR_STMT. Don't frob TREE_CHAIN.
4667 2004-06-20 Richard Henderson <rth@redhat.com>
4669 * cp-tree.def (CLEANUP_STMT, IF_STMT): Move from c-common.def.
4670 * cp-gimplify.c (gimplify_if_stmt): Move from c-gimplify.c.
4671 (cp_gimplify_expr): Call it.
4672 (gimplify_cleanup_stmt): Move from c-gimplify.c.
4673 (cp_genericize): New.
4674 * decl.c (finish_function): Call it.
4675 * cp-tree.h (cp_stmt_codes): Add CLEANUP_STMT, IF_STMT.
4676 (CLEANUP_BODY, CLEANUP_EXPR, CLEANUP_DECL): Move from c-common.h.
4677 (IF_COND, THEN_CLAUSE, ELSE_CLAUSE): Likewise.
4678 (cp_genericize): Declare.
4679 * cxx-pretty-print.c (pp_cxx_statement): Add CLEANUP_STMT, IF_STMT.
4680 * dump.c (cp_dump_tree): Likewise.
4681 * semantics.c (push_cleanup): Move from c-semantics.c.
4683 2004-06-20 Zack Weinberg <zack@codesourcery.com>
4685 * cp-lang.c (has_c_linkage): Implement.
4687 * cp-tree.h (set_mangled_name_for_decl): Don't prototype.
4688 * decl.c (duplicate_decls): Use COPY_DECL_RTL.
4689 (builtin_function_1): Don't call make_decl_rtl.
4690 (build_cp_library_fn): Don't call set_mangled_name_for_decl.
4691 (grokvardecl): Don't call mangle_decl.
4692 * except.c (nothrow_libfn_p): Look at DECL_NAME, not
4693 DECL_ASSEMBLER_NAME.
4694 * method.c (set_mangled_name_for_decl): Delete.
4695 * name-lookup.c (pushdecl): When a local extern shadows a
4696 file-scope declaration of the same object, give both DECLs the
4698 * typeck.c (cxx_mark_addressable): Don't set TREE_ADDRESSABLE
4699 on DECL_ASSEMBLER_NAME.
4701 2004-06-19 Richard Henderson <rth@redhat.com>
4703 * cp-gimplify.c: Remove unnecessary prototypes.
4704 (cp_gimplify_stmt): Merge into ...
4705 (cp_gimplify_expr): ... here. Move to end of file. Handle
4706 stmts_are_full_exprs_p frobbing.
4707 * cp-tree.h (cp_gimplify_stmt): Remove.
4708 * pt.c (tsubst_expr): Merge prep_stmt and unify.
4709 * tree.c (init_tree): Don't set lang_gimplify_stmt.
4711 2004-06-18 Richard Henderson <rth@redhat.com>
4714 * semantics.c (begin_cond): New.
4715 (finish_cond): Rewrite to handle template DECL_STMTs specially.
4716 Assume that non-template decls go land before the conditional.
4717 (simplify_loop_decl_cond): Likewise.
4718 (begin_if_stmt, finish_if_stmt_cond, begin_while_stmt,
4719 finish_while_stmt_cond, finish_for_init_stmt, finish_for_cond,
4720 begin_switch_stmt, finish_switch_cond): Update to match.
4722 2004-06-17 Jason Merrill <jason@redhat.com>
4725 * semantics.c (simplify_aggr_init_expr): Don't return the slot.
4726 (finish_stmt_expr_expr): Update type after conversions.
4727 (finish_stmt_expr): Wrap initializer in CLEANUP_POINT_EXPR.
4728 Handle void initializer.
4729 * tree.c (build_cplus_new): Make AGGR_INIT_EXPRs void.
4731 2004-06-17 Geoffrey Keating <geoffk@apple.com>
4733 * class.c (build_clone): Don't call defer_fn, let mark_used do it.
4734 * cp-tree.h (defer_fn): Delete.
4735 * decl2.c (defer_fn): Delete.
4736 (finish_file): Simplify deferred_fns loops; check that
4737 only used inline functions get into deferred_fns.
4738 (mark_used): Inline previous contents of defer_fn.
4740 2004-06-16 Richard Henderson <rth@redhat.com>
4742 * cp-tree.h (COMPOUND_STMT_TRY_BLOCK, COMPOUND_STMT_BODY_BLOCK): Kill.
4743 (BIND_EXPR_TRY_BLOCK, BIND_EXPR_BODY_BLOCK): New.
4744 * cxx-pretty-print.c (pp_cxx_function_definition): Move handling
4745 of CTOR_INITIALIZER ...
4746 (pp_cxx_statement): ... here.
4747 * decl.c (begin_function_body): Don't set COMPOUND_STMT_BODY_BLOCK.
4748 (finish_function): Use alloc_stmt_list to zap entire function.
4749 * parser.c (cp_parser_compound_statement): Update commentary.
4750 * pt.c (tsubst_expr): Use BIND_EXPR instead of COMPOUND_STMT.
4751 * semantics.c (begin_compound_stmt, finish_compound_stmt): Likewise.
4752 (finish_stmt_expr): Don't look through COMPOUND_STMT.
4754 2004-06-16 Geoffrey Keating <geoffk@apple.com>
4756 * pt.c (mark_decl_instantiated): Don't call defer_fn.
4758 2004-06-16 Richard Henderson <rth@redhat.com>
4760 * parser.c (cp_parser_labeled_statement): Update commentary.
4761 * pt.c (tsubst_expr): Use CASE_LABEL_EXPR.
4762 * tree.c (mark_local_for_remap_r): Likewise.
4764 2004-06-16 Richard Henderson <rth@redhat.com>
4766 * parser.c (cp_parser_asm_definition): Update commentary.
4767 * pt.c (tsubst_expr): Use ASM_EXPR.
4768 * semantics.c (finish_asm_stmt): Likewise.
4770 2004-06-16 Richard Henderson <rth@redhat.com>
4772 * decl.c (finish_destructor_body): Use LABEL_EXPR.
4773 * parser.c (cp_parser_statement): Update commentary.
4774 * pt.c (tsubst_expr): Use LABEL_EXPR, GOTO_EXPR.
4775 * semantics.c (finish_goto_stmt, finish_label_stmt): Likewise.
4776 * tree.c (mark_local_for_remap_r): Likewise.
4778 2004-06-16 Richard Henderson <rth@redhat.com>
4781 * semantics.c (begin_for_stmt, begin_for_stmt): Do put the init
4782 statement in FOR_INIT_STMT for templates.
4784 2004-06-15 Richard Henderson <rth@redhat.com>
4786 * call.c (initialize_reference): Don't build CLEANUP_STMT here.
4787 * cp-gimplify.c (cp_gimplify_stmt): Remove next_p argument.
4788 (genericize_try_block): Use gimplify_stmt.
4789 (genericize_catch_block, genericize_eh_spec_block): Likewise.
4790 (cp_gimplify_init_expr): Remove STMT_EXPR special case.
4791 (gimplify_must_not_throw_expr): Update voidify_wrapper_expr call.
4792 * cp-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Remove.
4793 (cp_tree_chain_matters_p): Remove.
4794 * cp-tree.h (COMPOUND_STMT_TRY_BLOCK): New.
4795 (COMPOUND_STMT_BODY_BLOCK): New.
4796 (STATEMENT_LIST_NO_SCOPE, STATEMENT_LIST_TRY_BLOCK): New.
4797 (EXPR_STMT_STMT_EXPR_RESULT): New.
4798 (building_stmt_tree): Check cur_stmt_list.
4799 (tf_stmt_expr_cmpd, tf_stmt_expr_body): Remove.
4800 (BCS_NO_SCOPE, BCS_TRY_BLOCK, BCS_FN_BODY): New.
4801 * decl.c (poplevel): Use pop_stmt_list for minding cleanups.
4802 (cp_finish_decl): Use push_cleanup.
4803 (start_function, finish_function): Use statement lists.
4804 (finish_stmt): Do nothing.
4805 * except.c (begin_eh_spec_block): Use statement lists.
4806 (check_handlers_1, check_handlers): Likewise.
4807 * init.c (construct_virtual_base): Don't add extra compound stmts.
4808 (build_vec_init): Likewise.
4809 * name-lookup.c (maybe_push_cleanup_level): Use statement lists.
4810 * name-lookup.h (struct cp_binding_level): Add statement_list.
4811 * parser.c (cp_parser_statement): Take the STMT_EXPR node, not a bool.
4812 (cp_parser_labeled_statement, cp_parser_expression_statement,
4813 cp_parser_statement_seq_opt): Likewise.
4814 (cp_parser_compound_statement): Likewise. Take bool for try block.
4815 (cp_parser_selection_statement): Tidy if processing.
4816 (cp_parser_already_scoped_statement): Rewrite to do what it says.
4817 * pt.c (tsubst_copy): Move STMT_EXPR to tsubst_expr.
4818 (tsubst_expr): Rewrite STMT_EXPR processing. Handle STATEMENT_LIST.
4819 Mind COMPOUND_STMT_TRY_BLOCK, EXPR_STMT_STMT_EXPR_RESULT.
4820 * semantics.c (do_poplevel, do_pushlevel): Use statement lists.
4821 (finish_cond): New, rewritten from FINISH_COND.
4822 (simplify_loop_decl_cond): New.
4823 (finish_expr_stmt): Avoid nested EXPR_STMTs.
4824 (begin_if_stmt, finish_if_stmt_cond, finish_then_clause,
4825 begin_else_clause, finish_else_clause, finish_if_stmt,
4826 begin_while_stmt, finish_while_stmt_cond, finish_while_stmt,
4827 begin_do_stmt, finish_do_body, begin_for_stmt, finish_for_init_stmt,
4828 finish_for_cond, finish_for_stmt, begin_switch_stmt,
4829 finish_switch_cond, finish_switch_stmt, begin_try_block,
4830 finish_try_block, finish_cleanup_try_block, finish_function_try_block,
4831 finish_handler_sequence, finish_function_handler_sequence,
4832 begin_handler, finish_handler_parms, finish_handler,
4833 begin_stmt_expr, finish_stmt_expr_expr, finish_stmt_expr): Rewrite
4834 using statement lists.
4835 (begin_compound_stmt): Replace has_no_scope argument with flags.
4836 Update all callers. Use statement lists.
4837 (finish_compound_stmt): Likewise.
4838 (finish_decl_cleanup, finish_eh_cleanup): Use push_cleanup.
4839 (current_scope_stmt_stack): Remove.
4840 (simplify_aggr_init_expr): Don't muck with TREE_CHAIN.
4841 * typeck2.c (split_nonconstant_init_1, split_nonconstant_init):
4842 Rewrite with statement lists.
4844 2004-06-15 Alexandre Oliva <aoliva@redhat.com>
4846 * parser.c: Change all assignments of c_lex_string_translate
4847 to true and false to 1 and 0.
4848 (cp_lexer_read_token): Convert type of the translated string.
4849 (cp_parser_skip_to_closing_parentheses): Preserve original
4850 value of c_lex_string_translate, and set it to -1 while
4852 (cp_parser_cache_group): Likewise.
4853 (cp_parser_cache_group_1): Renamed.
4854 (cp_parser_asm_operand_list): Remove redundant setting of
4855 c_lex_string_translate.
4856 (cp_parser_primary_expression) [CPP_STRING, CPP_WSTRING]:
4857 Handle chained strings.
4859 2004-06-12 Andrew Pinski <apinski@apple.com>
4863 2004-06-02 Andrew Pinski <pinskia@physics.uc.edu>
4865 * cp-tree.h: Fix typo.
4867 * cp-tree.h: Include cgraph.h
4868 (DECL_NEEDED_P): Use cgraph_*node on the decl instead of
4869 TREE_SYMBOL_REFERENCED on the DECL_ASSEMBLER_NAME of the decl.
4871 2004-06-12 Jason Merrill <jason@redhat.com>
4873 PR tree-optimization/14107
4874 * decl.c (finish_function): Warn about no return in all functions.
4876 2004-06-15 Paolo Bonzini <bonzini@gnu.org>
4878 * cp-tree.h (struct language_function): Remove cannot_inline.
4879 * decl.c (save_function_data): cannot_inline is no more.
4880 (cxx_push_function_context): Likewise.
4881 * decl2.c (start_objects, start_static_storage_duration_function):
4882 Reset DECL_INLINE, set DECL_UNINLINABLE.
4884 2004-06-14 Giovanni Bajo <giovannibajo@gcc.gnu.org>
4887 * search.c (lookup_field): Propagate the ambiguity list.
4888 (lookup_fnfields): Likewise.
4890 2004-06-14 Giovanni Bajo <giovannibajo@gcc.gnu.org>
4893 * parser.c (cp_parser_template_name): Ctors/dtors never need a
4894 template keyword to disambiguate.
4896 2004-06-14 Mark Mitchell <mark@codesourcery.com>
4899 * decl.c (grokdeclarator): Ignore pointer-to-members when
4900 computing template depth.
4903 * name-lookup.c (pushtag): Do not try to put class declarations in
4904 explicit specialization scopes.
4906 2004-06-11 Andrew Pinski <pinskia@physics.uc.edu>
4908 * decl.c (grokdeclarator): Do not depend on C99's _Bool's behavior.
4910 2004-06-11 Mark Mitchell <mark@codesourcery.com>
4913 * name-lookup.c (unqualified_namespace_lookup): Do not ignore type
4914 bindings for undeclared built-ins.
4916 2004-06-11 Giovanni Bajo <giovannibajo@gcc.gnu.org>
4918 * typeck2.c (abstract_virtual_errors): Reword diagnostics, make them
4919 appear at the correct location.
4921 2004-06-10 Jason Merrill <jason@redhat.com>
4925 2004-06-01 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
4926 * init.c (build_offset_ref): Build SCOPE_REF with non-null
4927 TREE_TYPE for non-dependent names.
4928 * pt.c (type_dependent_expression_p): Handle SCOPE_REF with
4929 unknown_type_node as its TREE_TYPE.
4930 * cxx-pretty_print.c (pp_cxx_unqualified_id): Handle BASELINK.
4931 * error.c (dump_decl) <SCOPE_REF case>: Use pp_expression.
4932 (dump_expr) <SCOPE_REF case>: Likewise.
4934 2004-06-10 Mark Mitchell <mark@codesourcery.com>
4937 * parser.c (cp_parser_direct_declarator): Robustify.
4940 * pt.c (tsubst_copy): Use decl_constant_value on enumeration
4941 constants in non-dependent contexts.
4945 * typeck.c (build_static_cast): Wrap casts in NON_LVALUE_EXPR when
4948 2004-06-10 Jakub Jelinek <jakub@redhat.com>
4951 * decl.c (duplicate_decls): Handle fileptr_type_node arguments
4954 2004-06-09 Mark Mitchell <mark@codesourcery.com>
4958 2004-06-07 Mark Mitchell <mark@codesourcery.com>
4959 * lex.c (handle_pragma_interface): Deprecate.
4960 (handle_pragma_implementation): Likewise.
4962 2004-06-09 Andrew Pinski <pinskia@physics.uc.edu>
4964 * g++spec.c (lang_specific_driver): Remove check for -lm
4965 and -lmath when check it see if it was the math library.
4967 2004-06-08 Giovanni Bajo <giovannibajo@gcc.gnu.org>
4970 * parser.c (cp_parser_direct_declarator): Reject constructor named
4971 as qualified template-id.
4973 2004-06-07 Mark Mitchell <mark@codesourcery.com>
4976 * lex.c (handle_pragma_interface): Deprecate.
4977 (handle_pragma_implementation): Likewise.
4979 2004-06-07 Mark Mitchell <mark@codesourcery.com>
4982 * parser.c (cp_parser_iteration_statement): Fix typo in error
4986 * pt.c (tsubst_default_argument): Do not defer access checks
4987 while substituting into the default argument.
4990 * pt.c (tsubst_copy): Do not try to substitute for an enumeration
4991 constant in a non-dependent context.
4994 * except.c (build_throw): Ensure that temp_expr has been
4997 2004-06-06 Roger Sayle <roger@eyesopen.com>
4999 * cp/cp-tree.h (lvalue_or_else): Add function prototype.
5001 2004-06-06 Giovanni Bajo <giovannibajo@gcc.gnu.org>
5004 * parser.c (cp_parser_mem_initializer_id): Gracefully reject
5005 'typename', and accept 'template'.
5007 2004-06-03 Andrew Pinski <pinskia@physics.uc.edu>
5008 Jan Hubicka <jh@suse.cz>
5011 * method.c (use_think): Do not mark thunk as referenced.
5013 2004-06-03 Matt Austern <austern@apple.com>
5016 * decl2.c (maybe_emit_vtables): If TARGET_WEAK_NOT_IN_ARCHIVE_TOC
5017 is nonzero, and if we see a noninline definition of a key method,
5018 make the vtables nonweak.
5020 2004-06-02 Matt Austern <austern@apple.com>
5022 * cp-tree.h (instantiate_decl): new boolean parameter,
5023 undefined_ok. Current behavior is equivalent to its being 0.
5024 * decl2.c (mark_used): Add new argument when calling instantiate_decl
5025 * pt.c (mark_decl_instantiated): Unconditionally make
5026 instantiations explicit unconditionally
5027 (do_decl_instantiation): Don't call SET_DECL_EXPLICIT_INSTANTIATION,
5028 since mark_decl_instantiated now does it.
5029 (instantiate_class_member): New. Instantiate a member of an
5030 explicitly instantiated class template.
5031 (do_type_instantiation): Explicitly instantiate members of an
5032 explicitly instantiated class template.
5033 (instantiate_decl): if undefined_ok is nonzero, and if we're
5034 trying to explicitly instantiated a template with no definition,
5035 change it to an implicit instantiation.
5036 (instantiate_pending_templates): Add new argument to instantiate_decl.
5037 * tree.c (cp_cannot_inline_tree_fn): Likewise.
5039 2004-06-02 Andrew Pinski <pinskia@physics.uc.edu>
5041 * cp-tree.h: Fix typo.
5043 * cp-tree.h: Include cgraph.h
5044 (DECL_NEEDED_P): Use cgraph_*node on the decl instead of
5045 TREE_SYMBOL_REFERENCED on the DECL_ASSEMBLER_NAME of the decl.
5047 2004-06-01 Jason Merrill <jason@redhat.com>
5050 * call.c (call_builtin_trap): Remove type parm.
5051 (convert_arg_to_ellipsis): Change a non-POD argument to integer type.
5052 (build_x_va_arg): Dereference a null pointer for a non-POD argument.
5054 2004-06-01 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
5057 * init.c (build_offset_ref): Build SCOPE_REF with non-null
5058 TREE_TYPE for non-dependent names.
5059 * pt.c (type_dependent_expression_p): Handle SCOPE_REF with
5060 unknown_type_node as its TREE_TYPE.
5061 * cxx-pretty_print.c (pp_cxx_unqualified_id): Handle BASELINK.
5062 * error.c (dump_decl) <SCOPE_REF case>: Use pp_expression.
5063 (dump_expr) <SCOPE_REF case>: Likewise.
5065 2004-06-01 Richard Henderson <rth@redhat.com>
5066 Andrew Pinski <pinskia@physics.uc.edu>
5068 * lex.c (reswords): Rename "__offsetof" to "__builtin_offsetof".
5069 * parser.c (struct cp_parser): Remove in_offsetof.
5070 (cp_parser_new): Don't set it.
5071 (cp_parser_unary_expression): Don't check it.
5072 (cp_parser_postfix_open_square_expression): Split out from ...
5073 (cp_parser_postfix_expression): ... here.
5074 (cp_parser_postfix_dot_deref_expression): Likewise.
5075 (cp_parser_builtin_offsetof): New.
5076 (cp_parser_primary_expression): Use it.
5078 2004-06-01 Giovanni Bajo <giovannibajo@gcc.gnu.org>
5081 * parser.c (cp_parser_postfix_expression): Allow subscript
5082 operator in offsetof.
5084 2004-05-31 Mark Mitchell <mark@codesourcery.com>
5087 * friend.c (add_friend): Do not try to perform access checks for
5088 functions from dependent classes.
5090 2004-05-31 Gabriel Dos Reis <gdr@integrable-solutions.net>
5092 * cxx-pretty-print.c (pp_cxx_colon_colon): Expor.
5093 (pp_cxx_begin_template_argument_list): Turn into a function.
5094 (pp_cxx_end_template_argument_list): Likewise.
5095 (pp_cxx_separate_with): Define.
5096 (pp_cxx_unqualified_id): Tidy.
5097 (pp_cxx_primary_expression): Likewise.
5098 (pp_cxx_postfix_expression): Likewise.
5099 (pp_cxx_expression): Likewise.
5100 (pp_cxx_simple_type_specifier): Likewise.
5101 (pp_cxx_type_specifier_seq): Likewise.
5102 (pp_cxx_parameter_declaration_clause): Likewise.
5103 (pp_cxx_exception_specification): Likewise.
5104 (pp_cxx_direct_declarator): Likewise.
5105 (pp_cxx_type_id): Likewise.
5106 * cxx-pretty-print.h (pp_cxx_whitespace): Export from
5108 (pp_cxx_left_paren): Likewise.
5109 (pp_cxx_right_paren): Likewise.
5110 (pp_cxx_left_brace): Likewise.
5111 (pp_cxx_right_brace): Likewise.
5112 (pp_cxx_left_bracket): Likewise.
5113 (pp_cxx_right_bracket): Likewise.
5114 (pp_cxx_dot): Likewise.
5115 (pp_cxx_identifier): Likewise.
5116 (pp_cxx_tree_identifier): Likewise.
5117 (pp_cxx_ampersand): New macro.
5118 (pp_cxx_star): Likewise.
5119 (pp_cxx_arrow): Likewise.
5120 (pp_cxx_semicolon): Likewise.
5121 (pp_cxx_complement): Likewise.
5122 (pp_cxx_begin_template_argument_list): Declaree.
5123 (pp_cxx_end_template_argument_list): Likewise.
5124 (pp_cxx_colon_colon): likewise.
5126 2004-05-31 Eric Botcazou <ebotcazou@libertysurf.fr>
5128 * parser.c (cp_parser_simple_type_specifier): Explicitly test
5131 2004-05-31 Kazu Hirata <kazu@cs.umass.edu>
5133 * call.c, class.c, cp-tree.def, decl2.c, name-lookup.c, pt.c,
5134 typeck.c: Fix comment formatting.
5136 2004-05-30 Andrew Pinski <pinskia@physics.uc.edu>
5138 * cp-lang.c (cp_expand_decl): Remove.
5139 (LANG_HOOKS_EXPAND_DECL): Use c_expand_decl.
5141 2004-05-30 Andreas Jaeger <aj@suse.de>
5143 * lang-specs.h: Add missing initializers for .ii.
5145 2004-05-28 Aldy Hernandez <aldyh@redhat.com>
5147 * decl.c (cp_make_fname_decl): Free return value from
5150 2004-05-28 Mark Mitchell <mark@codesourcery.com>
5153 * decl2.c (delete_sanity): Set TREE_SIDE_EFFECTS on a DELETE_EXPR,
5155 * init.c (build_new): Likewise.
5158 * name-lookup.c (arg_assoc): Robustify.
5161 * typeck.c (unary_complex_lvalue): Use context_for_name_lookup
5162 when determining the scope to use for a pointer to member.
5163 (lookup_anon_field): Give it external linkage.
5164 * cp-tree.h (lookup_anon_field): Declare it.
5165 * expr.c (cplus_expand_constant): Use it.
5167 2004-05-28 Mark Mitchell <mark@codesourcery.com>
5170 * parser.c (cp_parser_simple_type_specifier): Call
5171 maybe_note_name_used_in_class.
5173 2004-05-28 Tom Marshall <tmarshall@real.com>
5176 * class.c (finish_struct_1): Warn only if the dtor is non-private or
5177 the class has friends.
5179 2004-05-27 Adam Nemet <anemet@lnxw.com>
5182 * decl.c (complete_array_type): Set TYPE_NEEDS_CONSTRUCTING and
5183 TYPE_HAS_NONTRIVIAL_DESTRUCTOR based on the underlying type.
5185 2004-05-24 Geoffrey Keating <geoffk@apple.com>
5187 * method.c (implicitly_declare_fn): Don't call defer_fn; abort
5188 if it might be needed.
5189 * pt.c (mark_decl_instantiated): Only call defer_fn if
5190 the function actually needs processing in finish_file.
5191 * decl2.c (finish_file): Add check that elements in
5192 deferred_fns_used are really needed there. Remove unnecessary
5193 test of DECL_SAVED_TREE.
5195 2004-05-23 Paolo Bonzini <bonzini@gnu.org>
5197 * Make-lang.in: No need to specify $(LIBCPP).
5199 2004-05-23 Mark Mitchell <mark@codesourcery.com>
5202 * parser.c (cp_parser_class_head): Robustify.
5205 * parser.c (cp_parser_decl_specifier_seq): Correct error in
5207 (cp_parser_constructor_declarator_p): Treat attributes
5211 * typeck.c (build_unary_op): Do not attempt to resolve casts to
5212 base classes in templates.
5214 2004-05-23 Mark Mitchell <mark@codesourcery.com>
5217 * pt.c (instantiate_template): Robustify.
5219 2004-05-23 Mark Mitchell <mark@codesourcery.com>
5222 * decl.c (xref_tag): Issue errors about redeclaring template
5223 classes as non-template classes.
5225 2004-05-23 Mark Mitchell <mark@codesourcery.com>
5228 * name-lookup.c (supplement_binding): Allow redefinitions of
5232 * parser.c (cp_parser_template_argument): Robustify.
5234 2004-05-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
5236 * class.c (alter_access): Use %E format specifier to print an
5237 identifier node. Avoid looking at the IDENTIFIER_POINTER.
5238 (push_lang_context): Likewise.
5239 * decl.c (lookup_label): Likewise.
5240 (grokdeclarator): Likewise.
5241 * parser.c (cp_parser_check_for_invalid_template_id): Likewise.
5242 * pt.c (do_type_instantiation): Likewise.
5243 * tree.c (handle_java_interface_attribute): Likewise.
5244 (handle_com_interface_attribute): Likewise.
5245 (handle_init_priority_attribute): Likewise.
5247 2004-05-22 Mark Mitchell <mark@codesourcery.com>
5251 * pt.c (build_non_dependent_expr): Expand the set of tree nodes
5252 recognized as overloaded functions.
5254 2004-05-22 Mark Mitchell <mark@codesourcery.com>
5257 * class.c (layout_nonempty_base_or_field): Do not try to avoid
5258 layout conflicts for unions.
5261 * typeck.c (build_x_unary_op): Instantiate template class
5262 specializations before looking for "operator &".
5265 * typeck.c (complete_type): Layout non-dependent array types, even
5269 * typeck.c (build_unary_op): Do not optimize "&x[y]" when in a
5272 2004-05-22 Roger Sayle <roger@eyesopen.com>
5274 * name-lookup.c (check_for_out_of_scope_variable): Avoid ICE by
5275 returning when TREE_TYPE is error_mark_node.
5276 * typeck.c (require_complete_type): Return error_mark_node if
5277 value's type is an error_mark_node.
5279 2004-05-20 Andrew Pinski <pinskia@physics.uc.edu>
5281 * optimize.c (calls_setjmp_r): Remove.
5282 (calls_setjmp_p): Remove.
5283 * cp-tree.c (calls_setjmp_p): Remove.
5284 * decl.c (finish_function): Do not call calls_setjmp_p.
5286 2004-05-18 Zack Weinberg <zack@codesourcery.com>
5288 * decl.c (cp_finish_decl): Use mark_decl_referenced.
5289 * decl2.c (maybe_make_one_only): Likewise.
5290 * method.c (use_thunk): Likewise.
5292 2004-05-18 Jason Merrill <jason@redhat.com>
5294 * class.c (build_base_path): Tidy a bit.
5296 2004-05-14 Geoffrey Keating <geoffk@apple.com>
5298 * name-lookup.c (struct scope_binding): New.
5299 (EMPTY_SCOPE_BINDING): New.
5300 (lookup_using_namespace): Take a scope_binding instead of a
5302 (qualified_lookup_using_namespace): Likewise.
5303 (cxx_binding_clear): Delete.
5304 (do_nonmember_using_decl): Use a scope_binding instead of a
5306 (lookup_tag): Don't call select_decl.
5307 (ambiguous_decl): Don't return anything (and change callers to match).
5308 Take a scope_binding as the second parameter.
5309 (lookup_namespace_name): Use a scope_binding instead of a
5311 (unqualified_namespace_lookup): Likewise.
5312 (lookup_qualified_name): Likewise.
5313 (select_decl): Take a scope_binding instead of a cxx_binding.
5314 Use macros rather than hand-coding tests for type-ness.
5316 2004-05-13 Diego Novillo <dnovillo@redhat.com>
5318 * cp-gimplify.c: Rename from cp-simplify.c.
5319 * Make-lang.in, optimize.c: Update.
5321 2004-05-13 Diego Novillo <dnovillo@redhat.com>
5323 Merge from tree-ssa-20020619-branch. See
5324 ChangeLog.tree-ssa for details.
5326 * Make-lang.in, call.c, class.c, cp-lang.c, cp-tree.def,
5327 cp-tree.h, cvt.c, decl.c, decl2.c, error.c, except.c,
5328 expr.c, init.c, name-lookup.h, optimize.c, parser.c,
5329 pt.c, rtti.c, semantics.c, tree.c, typeck.c, typeck2.c:
5331 * cp-mudflap.c: New file.
5332 * cp-simplify.c:: New file.
5334 2004-05-03 Giovanni Bajo <giovannibajo@gcc.gnu.org>
5337 * decl2.c (check_classfn): For member templates, compare also the
5338 template parameters to match the declaration.
5339 * cp-tree.h: Adjust declaration of check_classfn.
5340 * decl.c (start_decl, grokfndecl): Adjust callers of check_classfn.
5341 * friend.c (do_friend): Likewise.
5342 * pt.c (tsubst_friend_function): Likewise.
5344 2004-05-01 Zack Weinberg <zack@codesourcery.com>
5346 * decl.c (reshape_init): Do not apply TYPE_DOMAIN to a VECTOR_TYPE.
5347 Instead, dig into the representation type to find the array bound.
5349 2004-04-30 Jason Merrill <jason@redhat.com>
5351 Refer to base members using COMPONENT_REFs where possible.
5352 * class.c (build_simple_base_path): New fn.
5353 (build_base_path): Use it for non-virtual base references.
5354 (layout_class_type): Change base fields to their real type
5355 after layout is done.
5356 * cp-tree.h (IS_FAKE_BASE_TYPE): New macro.
5357 * cp-lang.c (cxx_get_alias_set): Use it.
5359 2004-04-30 Kazu Hirata <kazu@cs.umass.edu>
5361 * class.c, cp-tree.h, decl.c, decl2.c, pt.c, rtti.c: Fix
5364 2004-04-23 Giovanni Bajo <giovannibajo@gcc.gnu.org>
5367 * parser.c (cp_parser_postfix_expression): typeid operator cannot be
5368 used in integral constant expressions.
5370 2004-04-22 Mark Mitchell <mark@codesourcery.com>
5372 * init.c (build_aggr_init): Fix accidental use of C99 construct in
5375 * class.c (initialize_array): Don't set TREE_HAS_CONSTRUCTOR on
5377 * cp-tree.h (BRACE_ENCLOSED_INITIALIZER_P): New macro.
5378 * decl.c (reshape_init): Use it.
5379 * init.c (perform_member_init): Remove redundant condition.
5380 (build_aggr_init): Adjust to handle brace-enclosed initializers
5382 (expand_default_init): Use BRACE_ENCLOSED_INITIALIZER_P.
5384 * parser.c (cp_parser_initializer_clause): Do not set
5385 TREE_HAS_CONSTRUCTOR on the initializer.
5386 * rtti.c (tinfo_base_init): Likewise.
5387 (generic_initializer): Likewise.
5388 (ptr_initializer): Likewise.
5389 (ptm_initializer): Likewise.
5390 (class_initializer): Likewise.
5391 (get_pseudo_ti_init): Likewise.
5392 * typeck2.c (digest_init): Use BRACE_ENCLOSED_INITIALIZER_P.
5394 2004-04-22 Alan Modra <amodra@bigpond.net.au>
5396 * name-lookup.c (anonymous_namespace_name): Make static.
5398 2004-04-19 Roger Sayle <roger@eyesopen.com>
5401 * class.c (build_base_path): Call fold whilst building the NULL
5402 pointer check expression trees.
5404 2004-04-15 Bryce McKinlay <mckinlay@redhat.com>
5406 * init.c (build_new_1): Don't use type size argument for Java
5407 _Jv_AllocObject call.
5409 2004-04-09 Danny Smith <dannysmith@users.sourceforge.net>
5411 * method.c (make_alias_for_thunk): Remove preprocessor guard on
5412 declaration and definition.
5414 2004-04-08 Danny Smith <dannysmith@users.sourceforge.net>
5417 * method.c (use_thunk): Test TARGET_USE_LOCAL_THUNK_ALIAS_P rather
5418 than ASM_OUTPUT_DEF.
5420 2004-04-08 Jakub Jelinek <jakub@redhat.com>
5422 * decl2.c (mark_used): Don't segfault if cfun != NULL but
5423 current_function_decl == NULL.
5425 2004-04-05 Nathan Sidwell <nathan@codesourcery.com>
5428 * pt.c (check_cv_quals_for_unify): Ignore bogus CV quals at outer
5431 2004-04-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5433 * init.c (decl_constant_value): Don't look at DECL_INITIAL
5435 * tree.c (bot_manip, build_min): Don't look at TREE_CONSTANT
5436 or TREE_SIDE_EFFECTS of a type.
5438 2004-04-02 Nathan Sidwell <nathan@codesourcery.com>
5441 * pt.c (check_cv_quals_for_unify): Correct logic for disallowed
5442 cv-qualifier unification.
5443 * tree.c (cp_build_qualified_type_real): Renable DR295 logic.
5445 2004-04-02 Jan Hubicka <jh@suse.cz>
5447 * cp-lang. (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): Define.
5448 * cp-tree.h (cp_update_decl_after_saving): Declare.
5449 * tree.c (cp_update_decl_after_saving): Define.
5451 2004-04-01 Mark Mitchell <mark@codesourcery.com>
5454 * typeck.c (get_delta_difference): Call fold before returning the
5457 2004-04-01 Richard Henderson <rth@redhat.com>
5460 * decl.c (cp_finish_decl): Preserve TREE_READONLY more often.
5461 * typeck2.c (split_nonconstant_init): Clear TREE_READONLY.
5463 2004-04-01 Mark Mitchell <mark@codesourcery.com>
5466 * name-lookup.c (maybe_push_cleanup_level): Robustify.
5468 2004-04-01 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5470 * class.c (VTT_TOP_LEVEL_P): Use unsigned_flag directly.
5472 2004-03-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5474 * call.c (joust): Use TYPE_UNSIGNED, not TREE_UNSIGNED.
5475 * class.c (check_bitfield_decl): Likewise.
5476 * cvt.c (type_promotes_to): Likewise.
5477 * decl.c (finish_enum): Likewise.
5478 * mangle.c (write_builtin_type): Likewise.
5479 * semantics.c (finish_switch_cond, finish_unary_op_expr): Likewise.
5480 * typeck.c (type_after_usual_arithmetic_conversions): Likewise.
5481 (build_binary_op): Likewise.
5483 2004-03-31 Jan Hubicka <jh@suse.cz>
5485 * tree.h (optimize_function): Kill prototype.
5486 * optimize.c (dump_function, optimize_function, dump_finction): Kill.
5487 * semantics.c (expand_body): Kill.
5489 2004-03-30 Mark Mitchell <mark@codesourcery.com>
5492 * decl.c (start_decl_1): Do not decide whether or not to create a
5493 new cleanup level until after the type has been completed.
5496 * pt.c (tsubst_default_argument): Clear current_function_decl.
5498 2004-03-30 Zack Weinberg <zack@codesourcery.com>
5500 * name-lookup.c, parser.c: Use new shorter form of GTY markers.
5502 2004-03-29 Zack Weinberg <zack@codesourcery.com>
5504 * error.c (dump_function_name): If T's DECL_LANG_SPECIFIC
5505 is null, just print the literal name and return.
5507 2004-03-25 Kazu Hirata <kazu@cs.umass.edu>
5509 * cxx-pretty-print.c: Fix comment typos.
5511 2004-03-24 Kazu Hirata <kazu@cs.umass.edu>
5513 * cxx-pretty-print.c, cxx-pretty-print.h, decl.h, friend.c:
5516 2004-03-23 Ziemowit Laski <zlaski@apple.com>
5518 * Make-lang.in (cp/mangle.o): Depend on $(TARGET_H).
5519 * mangle.c (write_type): Add call to 'mangle_fundamental_type'
5522 2004-03-23 Zack Weinberg <zack@codesourcery.com>
5524 PR 12267, 12391, 12560, 13129, 14114, 14133
5525 * cp-lang.c (c_reset_state): Delete.
5526 (push_file_scope, pop_file_scope): New stubs.
5527 * parser.c (c_parse_file): Call sorry() here if called more than once.
5529 2004-03-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5531 * typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
5534 2004-03-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
5536 * cxx-pretty-print.c (pp_cxx_parameter_declaration_clause): Declare.
5538 2004-03-21 Gabriel Dos Reis <gdr@integrable-solutions.net>
5540 * error.c (enum pad): Remove.
5541 (dump_qualifiers): Likewise.
5542 (dump_type): Replace dump_qualifiers with pp_cxx_cv_qualifier_seq.
5543 (dump_aggr_type): Likewise.
5544 (dump_type_suffix): Likewise.
5545 (dump_simple_decl): Likewise.
5546 (dump_function_decl): Likewise.
5547 (cv_to_string): Likewise.
5548 (dump_type_prefix): Likewise. Adjust return void.
5549 * cxx-pretty-print.c (pp_cxx_cv_qualifier_seq): Move to
5551 (pp_cxx_template_keyword_if_needed): Document.
5552 (pp_cxx_qualified_id): Document case FUNCTION_DECL. Tidy.
5553 (pp_cxx_expression): Handle NON_DEPENDENT_EXPR and
5554 MUST_NOT_THROW_EXPR.
5556 2004-03-21 Mark Mitchell <mark@codesourcery.com>
5559 * decl.c (cp_finish_decl): Compute the size of arrays declared in
5560 templates, if their type is non-dependent.
5562 2004-03-19 Mark Mitchell <mark@codesourcery.com>
5564 * call.c (build_op_delete_call): Do not forget the placement
5565 arguments when iterating through mutiple delete operators.
5567 * cp-tree.h (svaed_scope): Remove last_parms.
5568 (NEW_DELETE_OPNAME_P): New macro.
5569 (last_function_parms): Remove.
5570 (do_friend): Adjust prototype.
5571 * decl.c (grokparms): Return the PARM_DECLs directly, rather than
5572 using last_function_parms.
5573 (grokfndecl): Take the PARM_DECLs as an argument, rather than
5574 using last_function_parms.
5575 (grokdeclarator): Adjust accordingly. Do not form METHOD_TYPEs
5576 for class-specific operator new and operator delete.
5577 (grok_op_properties): Do not look for allocation functions with
5579 (start_function): Use DECL_ARGUMENTS instead of
5580 last_function_parms.
5581 * decl.h (last_function_parms): Do not declare.
5582 * decl2.c (grokclassfn): Do not use last_function_parms.
5583 * friend.c (do_friend): Remove parmdecls parameter.
5584 * name-lookup.c (push_to_top_level): Do not save last_function_parms.
5585 (pop_from_top_level): Do not restore it.
5586 * pt.c (check_explicit_specialization): Do not adjust
5587 last_function_parms.
5589 * name-lookup.c (do_local_using_decl): Create a local binding for
5590 types brought in via using declarations.
5592 * name-lookup.c (lookup_arg_dependent): Handle block-scope
5593 function declarations correctly.
5595 * semantics.c (finish_id_expression): Correct handling of
5596 conversion operators to dependent types.
5598 * typeck.c (lookup_destructor): Allow the use of destructors from
5601 2004-03-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5603 * cxx-pretty-print.c (pp_cxx_unqualified_id): Use
5604 TEMPLATE_TYPE_PARM_INDEX instead of TYPE_FIELDS.
5605 * search.c (dfs_unuse_fields): Add two more TREE_CODES that mean
5606 the field is named TEMPLATE_TYPE_PARM_INDEX.
5608 2004-03-19 Giovanni Bajo <giovannibajo@gcc.gnu.org>
5611 * parser.c (cp_parser_functional_cast): A cast to anything
5612 but integral or enumaration type is not an integral constant
5614 * pt.c (value_dependent_expression_p): Handle cast expressions
5615 without operands (such as "int()").
5617 2004-03-18 Mark Mitchell <mark@codesourcery.com>
5619 * semantics.c (finish_pseudo_destructor_expr): Allow differing
5620 cv-qualification between the type named by the
5621 pseudo-destructor-name and the object-type.
5623 * search.c (accessible_base_p): Handle non-proper bases.
5625 * name-lookup.c (do_nonmember_using_decl): If a using declaration
5626 refers to a single overloaded function, set the type of the
5628 * tree.c (lvalue_type): Simplify.
5629 * typeck.c (type_unknown_p): Do not assume all OVERLOADs have an
5631 (build_unary_op): Handle OVERLOADs with known types.
5633 * decl.c (duplicate_decls): Do not destroy DECL_ARGUMENTS for
5636 * parser.c (cp_parser_postfix_expression): Handle the use of
5637 "typename" in non-dependent contexts. Convert appropriately when
5638 when using a qualified name after "->" or ".".
5640 * call.c (conditional_conversion): Honor the requirement that some
5641 conversions refer to the original object.
5643 2004-03-18 Mark Mitchell <mark@codesourcery.com>
5645 * call.c (build_conditional_expr): Do not call force_rvalue for
5646 operands of void_type when the conditional expression itself has
5648 * name-lookup.c (pushdecl): Don't consider a declaration of a
5649 function named "main" to be an overload of a type named "main".
5650 * parser.c (cp_parser_template_name): Perform name lookup when the
5651 template name is proceeded by "template" if the qualifying scope
5653 * typeck.c (composite_pointer_type_r): Correctly handle
5654 pointer-to-member types.
5655 (build_const_cast): Likewise.
5657 2004-03-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5659 * cp-tree.def (TEMPLATE_TYPE_PARM, TYPEOF_TYPE): Update comments.
5660 * cp-tree.h (NEW_EXPR_USE_GLOBAL, DELETE_EXPR_USE_GLOBAL): Add check.
5661 (DELETE_EXPR_USE_VEC, COMPOUND_EXPR_OVERLOADED): Likewise.
5662 (KOENIG_LOOKUP_P, PTRMEM_OK_P, TEMPLATE_TYPE_PARM_INDEX): Likewise.
5663 (TYPENAME_TYPE_FULLNAME): Add check and use type.values.
5664 (TYPEOF_TYPE_EXPR): New macro.
5665 * class.c (finish_struct_bits): Use TYPE_VFIELD and TYPE_METHODS.
5666 * error.c (dump_type): Use TYPEOF_TYPE_EXPR.
5667 * pt.c (tsubst): Likewise.
5668 * semantics.c (finish_typeof): Likewise.
5669 * search.c (dfs_unuse_fields): Handle TYPENAME_TYPE, TYPEOF_TYPE,
5670 and TEMPLATE_TYPE_PARM.
5671 * typeck.c (comptypes): Use TYPE_ORIG_SIZE_TYPE, not TYPE_DOMAIN.
5672 (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
5674 2004-03-16 Mark Mitchell <mark@codesourcery.com>
5677 * cp-tree.h (build_new_op): Change prototype.
5678 (build_x_binary_op): Likewise.
5679 * call.c (build_new_op): Add overloaded_p parameter.
5680 * decl2.c (grok_array_decl): Adjust call to build_new_op.
5681 * parser.c (cp_parser_binary_expression): Note that uses of
5682 overloaded operators prevents an expression from being considered
5683 an integral constant.
5684 * pt.c (tsubst_copy_and_build): Adjust calls to build_new_op and/or
5686 * semantics.c (finish_call_expr): Likewise.
5687 * typeck.c (rationalize_conditional_expr): Likewise.
5688 (build_x_indirect_ref): Likewise.
5689 (build_x_binary_op): Likewise.
5690 (build_x_unary_op): Likewise.
5691 (build_x_compound_expr): Likewise.
5692 (build_modify_expr): Likewise.
5693 * typeck2.c (build_x_arrow): Likewise.
5695 2004-03-15 Kazu Hirata <kazu@cs.umass.edu>
5697 * cp-lang.c, ptree.c: Update copyright.
5699 2004-03-13 Mark Mitchell <mark@codesourcery.com>
5702 * parser.c (cp_parser_non_integral_constant_expression): Encode
5703 more of the idiom that surrounded calls to this function within
5705 (cp_parser_primary_expression): Adjust accordingly.
5706 (cp_parser_postfix_expression): Likewise.
5707 (cp_parser_unary_expression): Likewise.
5708 (cp_parser_cast_expression): Likewise.
5709 (cp_parser_assignment_expression): Likewise.
5710 (cp_parser_expression): Likewise.
5711 (cp_parser_new_expression): Note that new-expressions are not
5712 allowed in integral constant expressions.
5713 (cp_parser_delete_expression): Likewise.
5715 2004-03-12 Matt Austern <austern@apple.com>
5717 * decl2.c (maybe_make_one_only): Look at
5718 TARGET_EXPLICIT_INSTANTIATION_ONE_ONLY when deciding whether
5719 to make an explicit instantiation weak.
5720 * method.c (use_thunk): Make sure we call comdat_linkage
5722 * pt.c (do_type_instantiation): On systems where weak symbols
5723 don't go in a static archive's TOC, explicit instantiation of a
5724 class must imply *explicit* instantiation of its memeber.
5726 2004-03-11 Kazu Hirata <kazu@cs.umass.edu>
5728 * call.c, cp-tree.h, pt.c: Fix comment typos.
5730 2004-03-10 Mark Mitchell <mark@codesourcery.com>
5733 * decl.c (xref_tag): Disregard non-type declarations when
5734 looking up a tagged type.
5736 2004-03-09 Nathan Sidwell <nathan@codesourcery.com>
5739 * call.c (convert_like_real): Build a const qualified temporary,
5740 when testing ctor access.
5742 2004-03-09 Mark Mitchell <mark@codesourcery.com>
5744 * call.c (initialize_reference): Fix typo.
5746 2004-03-09 Giovanni Bajo <giovannibajo@gcc.gnu.org>
5749 * pt.c (determine_specialization): For member templates, match also
5753 * parser.c (cp_parser_initializer_clause): Fold initializer if it is
5755 * pt.c (tsubst_copy_and_build): Handle NOP_EXPRs.
5757 2004-03-09 Mark Mitchell <mark@codesourcery.com>
5760 * call.c (initialize_reference): Handle initializers that are
5761 class-member access expressions applies to rvalues.
5763 2004-03-09 Mark Mitchell <mark@codesourcery.com>
5766 * name-lookup.c (supplement_binding): Ignore functions that are
5767 marked DECL_ANTICIPATED.
5769 2004-03-08 Mark Mitchell <mark@codesourcery.com>
5772 * class.c (check_field_decls): Complain about non-static data
5773 members of reference type in unions. Propagate
5774 CLASSTYPE_REF_FIELDS_NEED_INIT and
5775 CLASSTYPE_READONLY_FIELDS_NEED_INIT from the types of non-static
5777 * init.c (perform_member_init): Complain about mbmers with const
5778 type that are not explicitly initialized.
5780 2004-03-08 Mark Mitchell <mark@codesourcery.com>
5782 * class.c (check_methods): Don't use IDENTIFIER_ERROR_LOCUS.
5783 * cp-tree.h (DECL_INVALID_OVERRIDER_P): New macro.
5784 (lang_identifier): Remove implicit_decl and error_locus.
5785 (IDENTIFIER_IMPLICIT_DECL): Remove.
5786 (SET_IDENTIFIER_IMPLICTI_DECL): Likewise.
5787 (IDENTIFIER_ERROR_LOCUS): Likewise.
5788 (SET_IDENTIFIER_ERROR_LOCUS): Likewise.
5789 (TYPE_ASSEMBLER_NAME_STRING): Likewise.
5790 (TYPE_ASSEMBLER_NAME_LENGTH): Likewise.
5791 (implicitly_declare): Remove.
5792 * decl.c (warn_extern_redeclared_static): Remove check of
5793 IDENTIFIER_IMPLICIT_DECL.
5794 (duplicate_decls): Don't check IDENTIFIER_ERROR_LOCUS.
5795 (implicitly_declare): Remove.
5796 (grok_ctor_properties): Don't set IDENTIFIER_ERROR_LOCUS.
5797 (start_function): Don't check IDENTIFIER_IMPLICIT_DECL.
5798 (start_method): Don't check IDENTIFIER_ERROR_LOCUS.
5799 * lex.c (unqualified_name_lookup_error): Create a dummy VAR_DECL
5800 in the innermost scope, rather than at namespace scope.
5801 * name-lookup.c (push_local_binding): Give it external linkage.
5802 (pushdecl): Remove dead code.
5803 * name-lookup.h (push_local_binding): Declare it.
5804 * ptree.c (cxx_print_identifier): Don't print
5805 IDENTIFIER_IMPLICIT_DECL or IDENTIFIER_ERROR_LOCUS.
5806 * search.c (check_final_overrider): Use DECL_INVALID_OVERRIDER_P,
5807 not IDENTIFIER_ERROR_LOCUS.
5808 * typeck.c (build_function_call): Remove dead code.
5810 2004-03-08 Jason Merrill <jason@redhat.com>
5813 * decl.c (xref_tag): Remove attribute handling.
5814 * cp-tree.h: Adjust prototype.
5815 * decl.c, parser.c, rtti.c: Adjust callers.
5816 * parser.c (cp_parser_class_head): Pass back attributes in the
5818 (cp_parser_class_specifier): Adjust.
5820 2004-03-08 Matt Austern <austern@apple.com>
5823 * name-lookup.c (add_decl_to_level): Add extern variables, as well
5824 as static, to static_decls array.
5826 2004-03-05 Jason Merrill <jason@redhat.com>
5828 * tree.c (list_hash_pieces): s/TYPE_HASH/TREE_HASH/.
5830 2004-03-04 Geoffrey Keating <geoffk@apple.com>
5832 * decl.c (grokfndecl): Update old incorrect comment.
5833 (grokvardecl): Diagnose C++ variables of type with no linkage.
5835 2004-03-01 Mark Mitchell <mark@codesourcery.com>
5838 * pt.c (build_non_dependent_expr): Do not create a
5839 NON_DEPENDENT_EXPR for a THROW_EXPR.
5841 2004-03-01 Gabriel Dos Reis <gdr@integrable-solutions.net>
5844 * error.c (dump_expr): Handle THROW_EXPR.
5846 2004-03-01 Mark Mitchell <mark@codesourcery.com>
5849 * parser.c (cp_parser_postfix_expression): Do not perform Koenig
5850 lookup if ordinary name-lookup finds a non-function.
5851 * pt.c (tsubst_copy_and_build): Likewise.
5854 * parser.c (cp_parser_late_parsing_default_args): Check that there
5855 are no extra tokens after the end of the default-argument
5858 2004-03-01 Mark Mitchell <mark@codesourcery.com>
5861 * lex.c (retrofit_lang_decl): Treat entities with no linkage as
5862 having C++ linkage for name-mangling purposes.
5865 * parser.c (cp_parser_direct_declarator): Recognize constructor
5866 declarators that use a template-id to name the class being
5870 * pt.c (tsubst_qualified_id): Handle dependent qualifying scopes.
5871 (tsubst_expr): Do not call tsubst_copy, even when
5872 processing_template_decl.
5874 2004-03-01 Jeff Law <law@redhat.com>
5876 * init.c (build_vec_delete_1): Convert 2nd argument to NE_EXPR to
5879 2004-02-29 Mark Mitchell <mark@codesourcery.com>
5882 * name-lookup.h (push_scope): Change prototype.
5883 * name-lookup.c (push_scope): Do not reenter the current class
5885 * decl.c (grokfndecl): Check return code from push_scope before
5887 * decl2.c (check_classfn): Likewise.
5888 * parser.c (cp_parser_conversion_function_id): Likewise.
5889 (cp_parser_init_declarator): Likewise.
5890 (cp_parser_direct_declarator): Likewise.
5891 (cp_parser_class_specifier): Likewise.
5892 (cp_parser_class_head): Likewise.
5893 (cp_parser_lookup_name): Likewise.
5894 (cp_parser_constructor_declarator_p): Likewise.
5895 * pt.c (instantiate_class_template): Likewise.
5896 (resolve_typename_type): Likewise.
5898 2004-02-29 Mark Mitchell <mark@codesourcery.com>
5901 * typeck.c (build_modify_expr): Remove more of the cast-as-lvalue
5905 * class.c (update_vtable_entry_for_fn): Do not go through
5906 covariance machinery if the type returned by an overrider is the
5907 same as the original.
5909 2004-02-29 Kazu Hirata <kazu@cs.umass.edu>
5911 * call.c: Fix a comment typo.
5913 2004-02-27 Ziemowit Laski <zlaski@apple.com>
5915 * tree.c (pod_type_p): Treat VECTOR_TYPEs as PODs.
5917 2004-02-26 Mark Mitchell <mark@codesourcery.com>
5920 * parser.c (cp_parser_parameter_declaration_list): Commit
5921 to fewer tentative parses.
5923 2004-02-26 Giovanni Bajo <giovannibajo@gcc.gnu.org>
5926 * pt.c (dependent_type_p_r): A template template parameter is a
5929 2004-02-26 Giovanni Bajo <giovannibajo@gcc.gnu.org>
5932 * mangle.c (write_template_arg_literal): Don't rely on identity for
5935 2004-02-24 Jason Merrill <jason@redhat.com>
5937 * tree.c (build_exception_variant): Use check_qualified_type.
5939 2004-02-23 Zack Weinberg <zack@codesourcery.com>
5940 Kazu Hirata <kazu@cs.umass.edu>
5942 * decl.c (cxx_init_decl_processing): Don't check
5943 flag_writable_strings.
5945 2004-02-23 Andrew Pinski <pinskia@physics.uc.edu>
5948 * typeck.c (maybe_warn_about_returning_address_of_location):
5949 Change check for VAR_DECL to use DECL_P instead.
5951 2004-02-23 Giovanni Bajo <giovannibajo@gcc.gnu.org>
5954 * cvt.c (build_expr_type_conversion): Type must be complete before
5955 looking up for conversions.
5957 2004-02-23 Giovanni Bajo <giovannibajo@gcc.gnu.org>
5960 * name-lookup.c (arg_assoc_class): Don't look into template
5961 arguments if it is not a primary template.
5963 2004-02-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5966 * method.c (use_thunk): Always clone function argument tree.
5968 2004-02-20 Mark Mitchell <mark@codesourcery.com>
5971 * pt.c (tsubst_copy): Call mark_used for a PARM_DECL.
5974 * semantics.c (begin_class_definition): Set TYPE_PACKED correctly
5975 for all type variants.
5977 2004-02-19 Mark Mitchell <mark@codesourcery.com>
5980 * decl.c (duplicate_decls): Return error_mark_node for invalid
5982 * name-lookup.c (push_namespace): Ignore the return value from
5984 * pt.c (push_template_decl_real): Robustify.
5987 * name-lookup.c (push_class_level_binding): Do not complain about
5988 adding a binding for a member whose name is the same as the
5989 enclosing class if the member is located in a base class of the
5992 2004-02-19 Giovanni Bajo <giovannibajo@gcc.gnu.org>
5995 * parser.c (cp_parser_new_expression): Parse an ill-formed
5996 direct-new-declarator after a parenthesized type-id to emit good
5999 2004-02-18 Kazu Hirata <kazu@cs.umass.edu>
6001 * cp-tree.def, cvt.c: Update copyright.
6003 2004-02-17 Mark Mitchell <mark@codesourcery.com>
6006 * cp-tree.h (abi_version_at_least): Remove.
6007 * mangle.c: Include flags.h.
6009 2004-02-15 Mark Mitchell <mark@codesourcery.com>
6012 * call.c (build_conditional_expr): Handle conversions between
6013 class types which result in differently cv-qualified type
6017 * class.c (delete_duplicate_fields_1): Remove.
6018 (delete_duplicate_fields): Likewise.
6019 (finish_struct_anon): Remove check for members with the same name
6020 as their enclosing class.
6021 (check_field_decls): Do not call duplicate_fields.
6022 * decl.c (grokdeclarator): Remove check for static data members
6023 with the same name as their enclosing class.
6024 * name-lookup.c (push_class_level_binding): Check for members with
6025 the same name as their enclosing class.
6027 2004-02-15 Gabriel Dos Reis <gdr@integrable-solutions.net>
6030 * error.c (dump_decl): Handle TEMPLATE_TYPE_PARM.
6032 2004-02-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
6035 * pt.c (push_template_decl_real): Make sure DECL_TI_ARGS of DECL
6036 has full set of arguments.
6038 2004-02-13 Giovanni Bajo <giovannibajo@gcc.gnu.org>
6041 * error.c (dump_decl) <ALIAS_DECL>: Dump as simple declarations.
6043 2004-02-13 Mark Mitchell <mark@codesourcery.com>
6046 * cp-tree.h (delete_sanity): Change prototype.
6047 * decl2.c (delete_sanity): Make doing_vec a bool, not an int.
6048 Remove dead code. Adjust code to warn about deleting an array.
6049 * typekc.c (decay_conversion): Use build_address and build_nop.
6052 * search.c (accessible_p): Do not check access in thunks.
6055 * call.c (build_conditional_expr): Call force_rvalue on the
6056 non-void operand in the case that one result is a throw-expression
6057 and the other is not.
6059 2004-02-13 Ian Lance Taylor <ian@wasabisystems.com>
6062 * parser.c (cp_parser_pseudo_destructor_name): Check for errors on
6063 the type name and look ahead for ::~, and bail out early with a
6064 better error message if the parse is going to fail.
6066 2004-02-12 Mark Mitchell <mark@codesourcery.com>
6068 * call.c (conversion_kind): New type.
6069 (conversion_rank): Likewise.
6070 (conversion): Likewise.
6071 (CONVERSION_RANK): New macro.
6072 (conversion_obstack): New variable.
6073 (obstack_initialized): Likewise.
6074 (z_candidate): Change type of convs and second_conv.
6075 (candidate_warning): New type.
6076 (IDENTITY_RANK): Remove.
6077 (EXACT_RANK): Likewise.
6078 (PROMO_RANK): Likewise.
6079 (STD_RANK): Likewise.
6080 (PBOOL_RANK): Likewise.
6081 (USER_RANK): Likewise.
6082 (ELLIPSIS_RANK): Likewise.
6083 (BAD_RANK): Likewise.
6084 (ICS_RANK): Likewise.
6085 (ICS_STD_RANK): Likewise.
6086 (ICS_USER_FLAG): Likewise.
6087 (ICS_ELLIPSIS_FLAG): Likewise.
6088 (ICS_THIS_FLAG): Likewise.
6089 (ICS_BAD_FLAG): Likewise.
6090 (NEED_TEMPORARY_P): Likewise.
6091 (CHECK_COPY_CONSTRUCTOR_P): Likewise.
6092 (USER_CONV_CAND): Likewise.
6093 (USER_CONV_FN): Likewise.
6094 (conversion_obstack_alloc): New function.
6095 (alloc_conversion): Likewise.
6096 (validate_conversion_obstack): Likewise.
6097 (alloc_conversions): Likewise.
6098 (build_conv): Adjust to deal with new conversion data structures.
6099 (build_identity_conv): New function.
6100 (build_ambiguous_conv): Likewise.
6101 (standard_conversion): Adjust to deal with new conversion data
6103 (convert_class_to_reference): Likewise.
6104 (direct_reference_binding): Likewise.
6105 (reference_binding): Likewise.
6106 (implicit_conversion): Likewise.
6107 (add_candidate): Likewise.
6108 (add_function_candidate): Likewise.
6109 (add_conv_candidate): Likewise.
6110 (build_builtin_candidate): Likewise.
6111 (print_z_candidate): Likewise.
6112 (merge_conversion_sequences): Likewise.
6113 (build_user_type_conversion_1): Likewise.
6114 (build_user_type_conversion): Likewise.
6115 (build_new_function_call): Likewise.
6116 (build_object_call): Likewise.
6117 (conditional_conversion): Likewise.
6118 (build_conditional_expr): Likewise.
6119 (build_new_op): Likewise.
6120 (build_op_delete_call): Likewise.
6121 (convert_like_real): Likewise.
6122 (build_over_call): Likewise.
6123 (build_new_method_call): Likewise.
6124 (is_subseq): Likewise.
6125 (maybe_handle_implicit_object): Likewise.
6126 (maybe_handle_ref_bind): Likewise.
6127 (compare_ics): Likewise.
6128 (source_type): Likewise.
6129 (add_warning): Likewise.
6131 (can_convert_arg): Likewise.
6132 (can_convert_arg_bad): Likewise.
6133 (perform_implicit_conversion): Likewise.
6134 (perform_direct_initialization_if_possible): Likewise.
6135 (initialize_reference): Likewise.
6136 * cp-lang.c (cp_tree_size): Do not handle WRAPPER.
6137 * cp-tree.def (WRAPPER): Likewise.
6138 (IDENTITY_CONV): Remove.
6139 (LVALUE_CONV): Likewise.
6140 (QUAL_CONV): Likewise.
6141 (STD_CONV): Likewise.
6142 (PTR_CONV): Likewise.
6143 (PMEM_CONV): Likewise.
6144 (BASE_CONV): Likewise.
6145 (REF_BIND): Likewise.
6146 (USER_CONV): Likewise.
6147 (AMBIG_CONV): Likewise.
6148 (RVALUE_CONV): Likewise.
6149 * cp-tree.h (tree_wrapper): Remove.
6150 (WRAPPER_ZC): Remove.
6151 (lang_tree_node): Remove wrapper.
6152 (LOOKUP_SPECULATIVELY): Remove.
6153 (build_op_delete_call): Adjust prototype.
6154 (validate_conversion_obstack): Declare.
6155 (build_zc_wrapper): Remove.
6156 * cvt.c (convert_to_reference): Remove dead code.
6157 (ocp_convert): Likewise.
6158 * decl.c (redeclaration_error_message): Correct handling of
6160 (finish_destructor_body): Do not use LOOKUP_SPECULATIVELY.
6161 (cp_tree_node_structure): Remove WRAPPER case.
6162 * decl2.c (finish_file): Call validate_conversion_obstack.
6163 * init.c (build_new_1): Remove use of LOOKUP_SPECULATIVELY.
6164 (build_op_delete_call): Likewise.
6165 (build_x_delete): Likewise.
6166 (build_delete): Adjust call to build_op_delete_call.
6167 * pt.c (tsubst_friend_declaration): Adjust code to determine
6168 whether or not a friend template is a definition.
6169 (tsubst_decl): Clear DECL_INITIAL for new FUNCTION_DECLs.
6170 * tree.c (build_zc_wrapper): Remove.
6172 2004-02-12 Zack Weinberg <zack@codesourcery.com>
6174 * cp-lang.c: Don't define LANG_HOOKS_BUILTIN_TYPE_DECLS.
6175 * cp-tree.h: Don't declare cxx_builtin_type_decls.
6176 * decl.c (builtin_type_decls, cxx_builtin_type_decls): Delete.
6177 (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
6179 2004-02-10 Mark Mitchell <mark@codesourcery.com>
6181 * typeck.c (lookup_destructor): Fix typo in error message.
6183 2004-02-09 Kazu Hirata <kazu@cs.umass.edu>
6185 * call.c, parser.c, tree.c: Fix comment typos.
6187 2004-02-07 Zack Weinberg <zack@codesourcery.com>
6190 * optimize.c (maybe_clone_body): Don't update DECL_ESTIMATED_INSNS.
6191 * decl.c (duplicate_decls, start_function): Likewise.
6193 2004-02-07 Zack Weinberg <zack@codesourcery.com>
6195 * name-lookup.c (pushdecl): Issue shadow warnings directly.
6196 * parser.c (free_parser_stacks): Delete.
6198 2004-02-07 Kazu Hirata <kazu@cs.umass.edu>
6200 * rtti.c: Update copyright.
6202 2004-02-06 Giovanni Bajo <giovannibajo@gcc.gnu.org>
6205 * decl.c (require_complete_types_for_parms): Do not insert
6206 error_mark_node in the parameter list.
6208 2004-02-06 Giovanni Bajo <giovannibajo@gcc.gnu.org>
6211 * parser.c (cp_parser_enclosed_template_argument_list): Emit straight
6212 error when terminator can not be found.
6214 2004-02-05 Kelley Cook <kcook@gcc.gnu.org>
6216 Make-lang.in (po-generated): Delete.
6218 2004-02-05 Kazu Hirata <kazu@cs.umass.edu>
6220 * call.c (type_passed_as): Replace PROMOTE_PROTOTYPES with
6221 targetm.calls.promote_prototypes.
6223 2004-02-05 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
6227 2004-01-15 Geoffrey Keating <geoffk@apple.com>
6229 * cp/lex.c (handle_pragma_interface): Duplicate string from tree.
6230 (handle_pragma_implementation): Likewise.
6232 2004-02-05 Mark Mitchell <mark@codesourcery.com>
6235 * typeck.c (lookup_destructor): Tweak error message.
6237 2004-02-05 Jan Hubicka <jh@suse.cz>
6239 * tree.c (cp_cannot_inline_tree_fn): Allow inlining of comdat
6242 2004-02-05 Giovanni Bajo <giovannibajo@gcc.gnu.org>
6245 * parser.c (cp_parser_diagnose_invalid_typename): Removed parsing
6246 code, only emits the diagnostic now. Added lookup of the identifier
6247 and support for qualified ids.
6248 (cp_parser_parse_and_diagnose_invalid_type_name): New function.
6249 Parse an (invalid) type name as id-expression within a declarator.
6250 (cp_parser_simple_declaration): Use it.
6251 (cp_parser_member_declaration): Likewise.
6252 (cp_parser_make_typename_type): New function. Handle errors through
6253 cp_parser_diagnose_invalid_typename.
6254 (cp_parser_elaborated_type_specifier): Use it.
6256 2004-02-04 Mark Mitchell <mark@codesourcery.com>
6259 * call.c (convert_like_real): Use "converting" rather than
6260 "argument" as the descriptive keyword to
6261 dubious_conversion_warnings.
6262 * typeck.c (convert_for_assignment): Do not call
6263 dubious_conversion_warnings.
6265 2004-02-04 Giovanni Bajo <giovannibajo@gcc.gnu.org>
6268 * init.c (build_delete): Emit a more informative error message in
6269 case of an incomplete type, and on the correct source line.
6271 2004-02-04 Kazu Hirata <kazu@cs.umass.edu>
6273 * error.c, search.c: Update copyright.
6275 2004-02-04 Mark Mitchell <mark@codesourcery.com>
6278 * rtti.c (tinfo_base_init): Use import_export_tinfo to decide the
6279 linkage for the typeinfo name string.
6281 2004-02-04 Mark Mitchell <mark@codesourcery.com>
6284 * cp-tree.h (fold_non_dependent_expr): New function.
6285 * parser.c (cp_parser_fold_non_dependent_expr): Remove.
6286 (cp_parser_template_argument): Use fold_non_dependent_expr.
6287 (cp_parser_direct_declarator): Likewise.
6288 * pt.c (fold_non_dependent_expr): New function.
6289 (convert_nontype_argument): Use it.
6290 (tsubst_qualified_id): Simplify.
6291 (tsubst_copy_and_build): Likewise.
6293 2004-02-04 Mark Mitchell <mark@codesourcery.com>
6295 * decl.c (cxx_push_function_context): Do not set
6296 current_function_is_thunk.
6297 * method.c (use_thunk): Set CALL_FROM_THUNK on the call to the
6300 2004-02-04 Giovanni Bajo <giovannibajo@gcc.gnu.org>
6303 * pt.c (more_specialized_class): Increase processing_template_decl
6304 while partial ordering.
6306 2004-02-03 Mark Mitchell <mark@codesourcery.com>
6309 * decl.c (start_function): Do not call pushdecl for any
6310 instantiation or specialization of a primary template.
6312 2004-02-03 Mark Mitchell <mark@codesourcery.com>
6315 * parser.c (cp_parser_class_name): Robustify.
6318 * parser.c (cp_parser_cache_group): Do not consume the EOF token.
6321 * semantics.c (finish_id_expression): Do not return an
6322 IDENTIFIER_NODE when lookup finds a PARM_DECL.
6324 2004-02-03 Mark Mitchell <mark@codesourcery.com>
6327 * pt.c (build_non_dependent_expr): Do not build
6328 NON_DEPENDENT_EXPRs for FUNCTION_DECLs or TEMPLATE_DECLs.
6331 * semantics.c (finish_id_expression): Do not return an
6332 IDENTIFIER_NODE when lookup finds a VAR_DECL.
6335 * parser.c (cp_parser_simple_declaration): When skipping to the
6336 end of the statement swallow the terminating semicolon.
6338 2004-02-02 Mark Mitchell <mark@codesourcery.com>
6341 * init.c (build_offset_ref): Improve error recovery for invalid
6342 uses of non-static member functions.
6345 * cp-tree.h (cp_build_type_attribute_variant): New function.
6346 * class.c (build_clone): Use cp_build_type_attribute_variant.
6347 * decl.c (duplicate_decls): Likewise.
6348 * pt.c (copy_default_args_to_explicit_spec): Likewise.
6349 (tsubst_function_type): Likewise.
6350 * tree.c (build_exception_variant): Check attributes before
6351 concluding that two types are the same.
6352 (cp_build_type-attribute_variant): New method.
6353 * typeck.c (merge_types): Use cp_build_type_attribute_variant.
6356 * call.c (convert_class_to_reference): Keep better track of
6357 pedantically invalid user-defined conversions.
6359 2004-02-01 Giovanni Bajo <giovannibajo@gcc.gnu.org>
6362 * pt.c (tsubst_qualified_id): Improved error message when a type
6363 is expected but not found.
6365 2004-01-31 Kazu Hirata <kazu@cs.umass.edu>
6367 * class.c: Fix comment typos.
6369 * error.c: Likewise.
6370 * parser.c: Likewise.
6372 * search.c: Likewise.
6373 * typeck.c: Likewise.
6375 2004-01-30 Richard Henderson <rth@redhat.com>
6378 * method.c (use_thunk): Don't force_target_expr for void thunks.
6379 * tree.c (build_target_expr_with_type): Assert non-void type.
6380 (force_target_expr): Likewise.
6382 2004-01-30 Michael Matz <matz@suse.de>
6384 * parser.c (cp_parser_labeled_statement): Accept case ranges.
6386 2004-01-30 Giovanni Bajo <giovannibajo@gcc.gnu.org>
6390 * decl.c (grokdeclarator): Check immediatly type completeness for
6391 non-dependent types.
6393 2004-01-30 Giovanni Bajo <giovannibajo@gcc.gnu.org>
6396 * call.c (convert_arg_to_ellipsis): Don't emit a warning if within
6397 a sizeof expression.block
6399 2004-01-29 Mark Mitchell <mark@codesourcery.com>
6402 * mangle.c (write_encoding): Correct encoding of member template
6405 2004-01-28 Giovanni Bajo <giovannibajo@gcc.gnu.org>
6407 * parser.c (cp_parser_template_id): Parse tentatively `[:' after a
6408 template name as it was `<::' (digraph typo).
6409 (cp_parser_nth_token_starts_template_argument_list_p): New function.
6410 (cp_parser_id_expression): Use it.
6411 (cp_parser_nested_name_specifier_opt): Likewise.
6412 (cp_parser_template_name): Likewise.
6413 (cp_parser_class_name): Likewise.
6414 (cp_lexer_get_preprocessor_token): Use c_lex_with_flags.
6416 2004-01-28 Mark Mitchell <mark@codesourcery.com>
6419 * typeck.c (merge_types): Do not merge attributes into
6423 * parser.c (cp_parser_direct_declarator): Do not prevent
6424 backtracking inside a parenthesized declarator.
6425 (cp_parser_parameter_declaration): Fix typo in comment.
6427 2004-01-28 Jan Hubicka <jh@suse.cz>
6429 * semantics.c (expand_body) Do emit_associated_thunks before
6432 2004-01-27 Devang Patel <dpatel@apple.com>
6434 * name-lookup.c: Include "debug.h"
6435 (do_namespace_alias): Invoke debug_hooks to emit debug info
6436 for namespace alias.
6437 (do_local_using_decl): Invoke debug_hooks to emit debug info
6439 (do_class_using_decl): Same.
6440 (do_toplevel_using_decl): Same.
6441 (do_using_directive): Same.
6442 (cp_emit_debug_info_for_using): New function.
6443 * Make-lang.in (cp/parser.o): Depend on debug.h
6444 (cp/name-lookup.o): Same.
6446 2004-01-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6448 * cp-tree.h (language_function, lang_type_header): Use
6450 * name-lookup.h (cp_binding_level): Likewise.
6452 2004-01-26 Mark Mitchell <mark@codesourcery.com>
6455 * semantics.c (finish_for_expr): Check for unresolved overloaded
6458 * class.c (add_method): Just check processing_template_decl to
6459 determine whether or not we are within a template.
6460 * decl2.c (maybe_retrofit_in_chrg): Likewise.
6461 * init.c (decl_constant_value): Check the type of the declaration,
6463 * name-lookup.c (maybe_push_to_top_level): Rename to ...
6464 (push_to_top_level): ... this.
6465 * name-lookup.h (maybe_push_to_top_level): Do not declare it.
6466 * pt.c (push_template_decl_real): Reorder condition for speed.
6467 (convert_template_argument): Use dependency-checking functions in
6468 place of uses_template_parms.
6469 (lookup_template_class): Avoid calling uses_template_parms more
6471 (uses_template_parms): Reimplement, using dependency-checking
6473 (instantiate_class_template): Use push_to_top_level, not
6474 maybe_push_to_top_level.
6475 (type_unification_real): Simplify.
6476 (type_dependent_expression_p): Handle OFFSET_REFs and
6478 (any_dependent_template_arguments_p): Handle multiple levels of
6480 * semantics.c (expand_or_defer_fn): Do not check
6481 uses_template_parms for template instantiations.
6482 * typeck.c (comptypes): Avoid calling cp_type_quals.
6484 2004-01-25 Mark Mitchell <mark@codesourcery.com>
6487 * call.c (build_over_call): Do not convert arguments when
6488 processing a template.
6489 * pt.c (build_non_dependent_expr): Do not build a
6490 NON_DEPENDENT_EXPR for arithmetic constants.
6492 2004-01-25 Giovanni Bajo <giovannibajo@gcc.gnu.org>
6495 * parser.c (cp_parser_type_parameter): When cp_parser_id_expression
6496 returns a TYPE_DECL. no further lookup is required.
6497 * semantics.c (check_template_template_default_arg): A TYPE_DECL
6498 is invalid. Rework to give better diagnostics.
6500 2004-01-25 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
6503 * pt.c (instantiate_class_template): Add an error_mark_node
6505 (tsubst_decl) <TEMPLATE_DECL case>: Likewise.
6507 2004-01-23 Andrew Pinski <pinskia@physics.uc.edu>
6510 * decl.c (finish_function): Move the call to
6511 finish_fname_decls below the call to
6512 finish_eh_spec_block.
6514 2004-01-21 Kazu Hirata <kazu@cs.umass.edu>
6516 * optimize.c, typeck2.c: Update copyright.
6518 2004-01-21 Kazu Hirata <kazu@cs.umass.edu>
6520 * Make-lang.in, call.c, class.c, decl2.c, except.c, expr.c,
6521 init.c, mangle.c, typeck.c: Update copyright.
6523 2004-01-21 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
6525 * parser.c (cp_parser_class_specifier): Prevent garbage collection.
6527 2004-01-20 Kelley Cook <kcook@gcc.gnu.org>
6529 * Make-lang.in: Replace $(docdir) with doc.
6530 (c++.info, c++.srcinfo): Dummy entry.
6531 (c++.man, c++.srcman): New rules.
6532 (c++.install-man): Revamp rule.
6534 2004-01-20 Kelley Cook <kcook@gcc.gnu.org>
6536 * Make-lang.in (CXX_INSTALL_NAME, GXX_INSTALL_NAME,
6537 CXX_TARGET_INSTALL_NAME, GXX_TARGET_INSTALL_NAME): Define via a
6538 immediate $(shell) instead of deferred backquote.
6540 2004-01-19 Mark Mitchell <mark@codesourcery.com>
6543 * parser.c (cp_parser_postfix_expression): When encountering
6544 incomplete type on left-hand side of "->" or ".", treat the entire
6545 expression as erroneous.
6548 * call.c (build_field_call): Remove.
6549 (n_build_method_call): Likewise.
6550 (build_method_call): Likewise.
6551 (build_new_method_call): Do not call build_field_call.
6552 * class.c (n_build_method_call): Remove.
6553 (print_class_statistics): Do not print it.
6554 * cp-tree.h (build_method_call): Remove declaration.
6555 (finish_object_call_expr): Likewise.
6556 (build_new_1): Do not use build_method_call.
6557 * parser.c (cp_parser_postfix_expression): Use finish_call_expr
6558 when the function appearing on the right-hand-side of "." or "->"
6559 is not actually a function.
6560 * pt.c (tsubst_copy_and_build): Likewise.
6561 * semantics.c (finish_object_call_expr): Remove.
6563 2004-01-18 Mark Mitchell <mark@codesourcery.com>
6566 * pt.c (tsubst): Use finish_typeof.
6568 2004-01-18 Jason Merrill <jason@redhat.com>
6571 * except.c (build_throw): In a template, set
6572 current_function_returns_abnormally.
6574 2004-01-17 Fred Fish <fnf@intrinsity.com>
6577 * decl.c (reshape_init): Handle VECTOR_TYPE like ARRAY_TYPE,
6578 except don't call array_type_nelts() with a VECTOR_TYPE.
6580 2004-01-16 Jan Hubicka <jh@suse.cz>
6582 * mangle.c (write_mangled_name): Remove inline modifier.
6584 2004-01-16 Mark Mitchell <mark@codesourcery.com>
6587 * decl.c (compute_array_index_type): Fix grammar in comment.
6588 * init.c (build_zero_init): Handle zero-sized arrays correctly.
6591 * call.c (name_as_c_string): Print conversion operator names
6595 * call.c (initialize_reference): Pass -1 for inner parameter to
6598 2004-01-15 Giovanni Bajo <giovannibajo@gcc.gnu.org>
6601 * parser.c (cp_parser_base_specifier): Check for an invalid
6602 keyword `typename' and emit an user-friendly error message.
6604 2004-01-15 Geoffrey Keating <geoffk@apple.com>
6607 * cp/lex.c (handle_pragma_interface): Duplicate string from tree.
6608 (handle_pragma_implementation): Likewise.
6610 2004-01-15 Giovanni Bajo <giovannibajo@gcc.gnu.org>
6613 * typeck.c (build_class_member_access_expr): Allow to access members
6614 of the currently open class.
6615 (finish_class_member_access_expr): Likewise.
6617 2004-01-15 Alexandre Oliva <aoliva@redhat.com>
6620 * name-lookup.c (validate_nonmember_using_decl): Take scope and
6621 name by value, instead of computing them.
6622 (do_local_using_decl, do_toplevel_using_decl): Add scope and name
6623 arguments. Pass them to validate_nonmember_using_decl.
6624 * name-lookup.h (do_local_using_decl): Adjust.
6625 (do_toplevel_using_decl): Likewise.
6626 * parser.c (cp_parser_using_declaration): Likewise.
6627 * pt.c (tsubst_expr): Likewise.
6629 2004-01-15 Alexandre Oliva <aoliva@redhat.com>
6633 * name-lookup.c (qualified_lookup_using_namespace): Search
6634 strongly-associated namespaces first, and only then try other
6637 2004-01-15 Kelley Cook <kcook@gcc.gnu.org>
6639 * Make-lang.in (c++.srcextra): Dummy entry.
6641 2004-01-15 Giovanni Bajo <giovannibajo@gcc.gnu.org>
6644 * parser.c (cp_parser_template_name): Don't try to parse a
6645 conversion-function-id, as it cannot be a template-name.
6646 (cp_parser_simple_type_specifier): Check for invalid template-ids
6647 even after a built-in type.
6649 2004-01-14 Jan Hubicka <jh@suse.cz>
6652 * pt.c (instantiate_decl): Do not increase function_depth.
6654 2004-01-14 Danny Smith <dannysmith@users,sourceforge.net>
6658 * parser.c (cp_parser_elaborated_type_specifier): Warn about
6659 attributes and discard.
6660 * decl.c (xref_tag): Don't overwite existing attributes with
6663 2004-01-14 Giovanni Bajo <giovannibajo@gcc.gnu.org>
6666 * parser.c (cp_parser_lookup_name): Return error_mark_node if there
6667 is no destructor while looking up a BIT_NOT_EXPR.
6669 2004-01-13 Ian Lance Taylor <ian@wasabisystems.com>
6671 * cxxfilt.c: Remove unused file.
6673 2004-01-14 Jan Hubicka <jh@suse.cz>
6675 Partial fix to PR c++/12850
6676 * decl2.c (mark_used): Do not proactively instantiate templates
6677 when compiling in unit-at-a-time or not optimizing.
6678 * optimize.c (maybe_clone_body): Do not increase function depth.
6680 2004-01-13 Giovanni Bajo <giovannibajo@gcc.gnu.org>
6683 * pt.c (tsubst) <INTEGER_TYPE>: Remove obsolete array index tweaking.
6685 2004-01-12 Steven Bosscher <stevenb@suse.de>
6688 * parser.c (cp_parser_member_declaration): Any non-type is also
6689 not a class or a function.
6691 2004-01-12 Jason Merrill <jason@redhat.com>
6694 * class.c (build_base_path): Do not mark vtable references as
6696 (build_vtbl_ref_1): Likewise.
6698 2004-01-12 Richard Henderson <rth@redhat.com>
6701 * typeck2.c (split_nonconstant_init_1, split_nonconstant_init): New.
6702 (store_init_value): Use it.
6703 * decl.c (check_initializer): Expect full initialization code
6704 from store_init_value.
6705 * init.c (expand_aggr_init_1): Likewise.
6706 * decl2.c (maybe_emit_vtables): Abort if runtime init needed.
6708 2004-01-12 Mark Mitchell <mark@codesourcery.com>
6710 * class.c (layout_class_type): For non-POD class types, also copy
6711 the DECL_SIZE and DECL_MODE of fields to the base class type.
6713 2004-01-12 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
6716 * pt.c (instantiate_decl): Set DECL_TEMPLATE_INSTANTIATED before
6717 calling regenerate_decl_from_template.
6719 2004-01-12 Scott Brumbaugh <scottb.lists@verizon.net>
6722 * parser.c (cp_parser_decl_specifier_seq): Add check for a friend
6723 decl-specifier occurring along with a class definition.
6725 2004-01-12 Ian Lance Taylor <ian@wasabisystems.com>
6727 * parser.c (cp_parser_decl_specifier_seq): Add parenthetical
6728 clauses to comments describing declares_class_or_enum.
6729 (cp_parser_type_specifier): Set *declares_class_or_enum to 0, not
6732 2004-01-12 Jan Hubicka <jh@suse.cz>
6734 * pt.c (for_each_template_parm): Do not check for duplicates.
6735 (for_each_template_parm): Use walk_tree duplicate checking code.
6737 2004-01-11 Ian Lance Taylor <ian@wasabisystems.com>
6740 * parser.c (cp_parser_decl_specifier_seq): If the first decl_spec
6741 is error_mark_node, don't add any more decl_specs.
6742 (cp_parser_init_declarator): After committing to a declaration, if
6743 the decl_specifiers start with error_mark_node, issue an error and
6744 change the type to "int".
6746 2004-01-09 Nathanael Nerode <neroden@gcc.gnu.org>
6749 * Make-lang.in: Copy gcc.1 to g++.1 rather than using .so.
6751 2004-01-10 Giovanni Bajo <giovannibajo@gcc.gnu.org>
6755 * pt.c (tsubst): Substitution must fail if we are attempting to
6756 create an array with element type that is an abstract class type.
6757 * decl.c (cp_finish_decl): Strip pointers and array types recursively
6758 before calling abstract_virtuals_error.
6760 2004-01-09 Alexandre Oliva <aoliva@redhat.com>
6762 * name-lookup.c (qualified_lookup_using_namespace): Consider
6763 strong using directives even if we've already found a binding.
6765 2004-01-09 Mark Mitchell <mark@codesourcery.com>
6767 * cp-tree.h (cxx_expand_expr): Change prototype.
6768 * expr.c (cxx_expand_expr): Add alt_rtl parameter.
6770 2004-01-08 Giovanni Bajo <giovannibajo@gcc.gnu.org>
6773 * pt.c (value_dependent_expression_p): Handle COMPONENT_REFs by
6774 looking into them recursively. They can be there because of the
6775 new __offsetof__ extension.
6777 2004-01-07 Zack Weinberg <zack@codesourcery.com>
6779 * parser.c (cp_parser_save_member_function_body): Mark the
6782 2004-01-05 Mark Mitchell <mark@codesourcery.com>
6785 * class.c (build_clone): Copy type attributes from the original
6786 function to the clone.
6789 * class.c (build_vtbl_ref_1): Do not unconditionally mark vtable
6790 references as constant.
6793 * parser.c (cp_parser_explicit_instantiation): Improve error
6795 (cp_parser_require): Improve indication of the error location.
6798 * parser.c (cp_parser_class_head): Reorder logic to check for
6799 invalid qualification.
6801 2004-01-04 Mark Mitchell <mark@codesourcery.com>
6804 * name-lookup.c (lookup_using_namespace): Remove spacesp
6806 (unqualified_namespace_lookup): Likewise.
6807 (lookup_qualified_name): Adjust accordingly.
6808 (lookup_name_real): Likewise.
6809 (lookup_arg_dependent): Do not eliminate the namespace of the
6810 functions found by unqualified name lookup unless that is the
6813 2004-01-04 Andrew Pinski <pinskia@physics.uc.edu>
6815 * semantics.c (push_deferring_access_checks): Fix format.
6816 (resume_deferring_access_checks): Likewise.
6817 (stop_deferring_access_checks): Likewise.
6818 (pop_deferring_access_checks): Likewise.
6819 (get_deferred_access_checks): Likewise.
6820 (pop_to_parent_deferring_access_checks): Likewise.
6821 (perform_deferred_access_checks): Likewise.
6822 (perform_or_defer_access_check): Likewise.
6824 2004-01-04 Richard Henderson <rth@redhat.com>
6826 * call.c (build_over_call): Don't create a save_expr of an
6827 aggregate, but rather its address.
6829 2004-01-04 Mark Mitchell <mark@codesourcery.com>
6832 * parser.c (cp_parser_postfix_expression): Allow "." to appear in
6833 an offsetof expression.
6835 * parser.c (cp_parser_parameter_declaration): Fix comment.
6838 * call.c (CHECK_COPY_CONSTRUCTOR_P): New macro.
6839 (reference_binding): Set it when appropriate.
6840 (build_temp): New function, split out from ...
6841 (convert_like_real): ... here. Honor CHECK_COPY_CONSTRUCTOR_P.
6842 (initialize_reference): Likewise.
6845 * parser.c (cp_parser): Add in_type_id_in_expr_p.
6846 (cp_parser_new): Initialize it.
6847 (cp_parser_postfix_expression): Set it.
6848 (cp_parser_sizeof_operand): Likewise.
6849 (cp_parser_parameteR_declaration): Do not commit early to tenative
6850 parsers when in_type_id_in_expr_p is set.
6852 2004-01-03 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
6855 * parser.c (cp_parser_template_argument): Don't call
6856 make_unbound_class_template directly.
6857 (cp_parser_lookup_name): Don't extract TEMPLATE_DECL from
6858 UNBOUND_CLASS_TEMPLATE tree node.
6860 2004-01-02 Richard Sandiford <rsandifo@redhat.com>
6863 * method.c (use_thunk): Pass the CALL_EXPR through force_target_expr.
6865 2004-01-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
6868 * cp-tree.h (DECL_UNBOUND_CLASS_TEMPLATE_P): New macro.
6869 (DECL_FUNCTION_TEMPLATE_P): Use it.
6870 (DECL_CLASS_TEMPLATE_P): Likewise.
6871 * parser.c (cp_parser_lookup_name): Add is_template parameter.
6872 (cp_parser_type_parameter): Adjust call to cp_parser_lookup_name.
6873 (cp_parser_template_name): Likewise.
6874 (cp_parser_elaborated_type_specifier): Likewise.
6875 (cp_parser_namespace_name): Likewise.
6876 (cp_parser_class_name): Likewise.
6877 (cp_parser_lookup_name_simple): Likewise.
6880 Copyright (C) 2004 Free Software Foundation, Inc.
6882 Copying and distribution of this file, with or without modification,
6883 are permitted in any medium without royalty provided the copyright
6884 notice and this notice are preserved.