📄 changelog
字号:
to members. * decl.c (unqualified_namespace_lookup): Return error_mark_node on error. (lookup_name_real): Set LOOKUP_COMPLAIN when *not* parsing. * lex.c (do_identifier): If we got error_mark_node, call lookup_name again.1999-03-24 Martin von L鰓is <loewis@informatik.hu-berlin.de> * class.c (finish_struct_1): Always reset TYPE_FIELDS for empty classes.1999-03-24 Jason Merrill <jason@yorick.cygnus.com> * decl.c (lookup_name_real): Do nested field lookup regardless of TYPE_BEING_DEFINED.1999-03-24 Mark Mitchell <mark@codesourcery.com> * cp-tree.h (lang_type): Remove has_assignment and has_real_assignment. Add befriending_classes. (TYPE_HAS_ASSIGNMENT): Remove. (TYPE_HAS_REAL_ASSIGNMENT): Likewise. (CLASSTYPE_BEFRIENDING_CLASSES): New macro. (lang_decl): Document. (DECL_BEFRIENDING_CLASSES): New macro. (FRIEND_NAME): Move declaration to more obvious location. (FRIEND_DECLS): Likewise. * class.c (finish_struct_1): Don't use TYPE_HAS_REAL_ASSIGNMENT. * decl.c (duplicate_decls): Copy DECL_BEFRIENDING_CLASSES. (fixup_anonymous_union): Don't use TYPE_HAS_ASSIGNMENT. (grok_op_properties): Likewise. * friend.c (is_friend): Use FRIEND_NAME and FRIEND_DECLS. (add_friend): Likewise. Don't do weird things with assignment operators. Update DECL_BEFRIENDING_CLASSES. (add_friends): Don't do weird things with assignment operators. (make_friend_class): Likewise. Update CLASSTYPE_BEFRIENDING_CLASSES. * pt.c (instantiate_class_template): Don't set TYPE_HAS_ASSIGNMENT. (tsubst_copy): Substitute the TREE_TYPE for more unary expressions. * ptree.c (print_lang_type): Don't look at TYPE_HAS_ASSIGNMENT. * search.c (protected_accessible_p): New function. (friend_accessible_p): Likewise. (accessible_p): Use them.1999-03-23 Mark Mitchell <mark@codesourcery.com> * pt.c (convert_nontype_argument): Don't create things that aren't PTRMEM_CSTs when applying a qualification conversion to a PTRMEM_CST.1999-03-23 Mark Mitchell <mark@codesourcery.com> * Makefile.in (OBJS): Don't mention hash.o. (OBJDEPS): Likewise.1999-03-23 Jason Merrill <jason@yorick.cygnus.com> * decl2.c (finish_file): Set at_eof to 2 after expanding ctors. * decl.c (expand_static_init): Make sure we don't add any after then. * decl.c (cp_finish_decl): Move intelligence about handling DECL_COMDAT for variables from here... * decl2.c (comdat_linkage): ...to here. (maybe_make_one_only): Tweak. (import_export_decl): Call comdat_linkage for variables, too. (finish_file): Handle template statics properly.1999-03-22 Mark Mitchell <mark@codesourcery.com> * cp-tree.h (TYPE_PTRMEMFUNC_P): Use TYPE_PTRMEMFUNC_FLAG. Document internals of pointer-to-member-functions. (DELTA2_FROM_PTRMEMFUNC): Make it call delta2_from_ptrmemfunc. (PFN_FROM_PTRMEMFUNC): Likewise. (build_type_conversion): Remove unused parameter. (build_ptrmemfunc1): Declare. (expand_ptrmemfunc_cst): New function. (delta2_from_ptrmemfunc): Likewise. (pfn_from_ptrmemfunc): Likewise. * cvt.c (cp_convert_to_pointer): Remove unused parameter to build_type_conversion. Use TYPE_PTRMEM_P for readability. (convert_to_reference): Remove unused parameter to build_type_conversion. (ocp_convert): Likewise. (build_user_type_conversion): Likewise. * error.c (dump_expr): Handle NULL pointer-to-member functions. * expr.c (cplus_expand_expr): Handle PTRMEM_CSTs for functions. * method.c (build_overload_value): Don't go splitting CONSTRUCTORs open when handling pointer-to-member functions. * pt.c (convert_nontype_argument): Clean up error messages. Be more stringent with pointers-to-members. * typeck.c (build_ptrmemfunc1): Don't declare. Make it global. (build_unary_op): Tidy ever-so-slightly. (build_conditional_expr): Remove extra parameter to build_type_conversion. (build_ptrmemfunc): Build PTRMEM_CSTs if we know what function we're using. (expand_ptrmemfunc_cst): Define. (delta2_from_ptrmemfunc): Likewise. (pfn_from_ptrmemfunc): Likewise.1999-03-19 Mark Mitchell <mark@codesourcery.com> * init.c (build_member_call): Handle template-id expressions correctly. * typeck.c (build_x_function_call): Likewise.1999-03-19 Chip Salzenberg <chip@perlsupport.com> * friend.c (make_friend_class): Avoid core dump when not-yet-defined friend type lacks TYPE_LANG_SPECIFIC().1999-03-18 Jason Merrill <jason@yorick.cygnus.com> * decl.c (start_function): Suppress normal linkage heuristics for #pragma interface under MULTIPLE_SYMBOL_SPACES.1999-03-19 Alexandre Oliva <oliva@dcc.unicamp.br> * Make-lang.in: ($(INTL_TARGETS)): Depend on cp/parse.c. ($(srcdir)/cp/parse.c): Moved from ../Makefile.in.1999-03-17 Martin von L鰓is <loewis@informatik.hu-berlin.de> * parse.y (named_complex_class_head_sans_basetype): Do not push a scope for error_mark_node. (maybe_base_class_list): Likewise. * decl.c (start_decl): Check for error_mark_node as a type. Detected by g++.brendan/array-refs.C. (start_decl_1): Likewise. Detected by g++.bugs/900322_01.C. (maybe_build_cleanup_1): Likewise. Detected by g++.jason/incomplete1.C. * tree.c (build_dummy_object): Use void_zero_node instead of the error_mark_node. (is_dummy_object): Check for such a node. Detected by g++.bob/inherit1.C1999-03-16 Jason Merrill <jason@yorick.cygnus.com> * method.c (old_backref_index): Split out... (flush_repeats): From here. Rename back from try_old_backref. (build_mangled_name): Put back some old-style repeat handling.Mon Mar 15 21:57:16 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> * lex.c: Don't include setjmp.h. (parse_float): New static function. (pf_args): New struct. (real_yylex): Use them in call to `do_float_handler'.1999-03-15 Mark Mitchell <mark@markmitchell.com> * decl.c (xref_basetypes): Set CLASSTYPE_VBASECLASSES here. * tree.c (layout_basetypes): Not here. * search.c (dfs_search): Remove; no longer used.1999-03-12 Mark Mitchell <mark@markmitchell.com> * decl2.c (validate_nonmember_using_decl): Issue sensible error-messages on bogus qualifiers.1999-03-14 Jason Merrill <jason@yorick.cygnus.com> * call.c (add_function_candidate): Fix uninitialized variable. * Makefile.in (search.o): Add dependency on varray.h.1999-03-13 Jason Merrill <jason@yorick.cygnus.com> * decl.c (duplicate_decls): Use same_type_p. * method.c (try_old_backref): Renamed from flush_repeats. Use same_type_p. Don't try to handle repeats. Return success. (is_back_referenceable_type): Return 0 if TYPE_FOR_JAVA. Support calls from old-style code, too. (check_ktype): Use same_type_p. (check_btype): Use same_type_p. Don't pull out TYPE_MAIN_VARIANT. (build_qualified_name): Simplify logic. (process_overload_item): Strip typedefs and quals at the top. (build_mangled_name_for_type_with_Gcode): Remove call to type_canonical_variant. (build_mangled_name): Likewise. Remove support for old-style repeats, which have been disabled since 2.7.2. Don't mess with TREE_USED. (build_decl_overload_real): Don't mess with TREE_USED.1999-03-13 Nathan Sidwell <nathan@acm.org> * error.c (cp_printers): Add 'F' escape character. (dump_type_real): Remove TREE_LIST (fnargs) printing. Functionality moved to dump_parameters. (dump_type_suffix): Use dump_parameters and dump_exception_spec. (dump_function_decl): Extend meaning of V parameter. Use dump_parameters and dump_exception_spec. (dump_parameters): New static function. (dump_exception_spec): New static function. (fndecl_as_string): Change argument semantics. Use dump_function_decl directly. * sig.c (build_signature_table_constructor): Use cp_error.1999-03-13 Martin von L鰓is <loewis@informatik.hu-berlin.de> * semantics.c (finish_switch_cond): Handle error cases gracefully. Detected by g++.law/enum5.C. * typeck.c (build_modify_expr): Check for errors after resolving offsets. Detected by g++.brendan/static1.C. * decl.c (complete_array_type): Ignore initial_value if it is an error. Detected by g++.benjamin/17930.C. * typeck2.c (process_init_constructor): Return error if one argument is in error. Detected by g++.benjamin/13478.C.1999-03-12 Martin von L鰓is <loewis@informatik.hu-berlin.de> * decl.c (select_decl): Allow class templates when we need types. * decl2.c (ambiguous_decl): Likewise.1999-03-12 Mark Mitchell <mark@markmitchell.com> * lex.c (do_identifier): Correct call to enforce_access. * search.c (accessible_p): Tweak comment.1999-03-10 Mark Mitchell <mark@markmitchell.com> * semantics.c (begin_class_definition): Call build_self_reference. (finish_member_declaration): Set DECL_CONTEXT for TYPE_DECLs. * search.c (assert_canonical_unmarked): Fix typo in prototype. * search.c (dfs_canonical_queue): New function. (dfs_assert_unmarked_p): Likewise. (assert_canonical_unmarked): Likewise. (access_in_type): Use it. (accessible_p): Likewise. Walk the whole tree when umarking. * sig.c (build_signature_table_constructor): Use accessible_p instead of compute_access.1999-03-09 Jason Merrill <jason@yorick.cygnus.com> * call.c (add_builtin_candidates): Handle overloaded conversion ops.1999-03-09 Mark Mitchell <mark@markmitchell.com> * cp-tree.h (flag_access_control): Declare. (TREE_VIA_PPUBLIC): Document. (DECL_NONSTATIC_MEMBER_P): New macro. (enforce_access): Return an indication of whether or not access was permitted. (build_self_reference): Change prototype. (compute_access): Replace with ... (accessible_p): New function. (dfs_walk): Change prototype. (dfs_unmark): Likewise. (markedp): Likewise. * call.c (enforce_access): Use accessible_p. * class.c (build_self_reference): Insert the declaration into the list of members for this type, and make it public. * decl.c (xref_basetypes): Avoid ill-timed recursion. * init.c (build_offset_ref): Use lookup_member, not three separate name-lookups. Call enforce_access rather than checking for illegal accesses here. (resolve_offset_ref): Likewise. * lex.c (do_identifier): Likewise. * method.c (hack_identifier): Likewise. * parse.y (self_reference): Remove. (opt_component_decl_list): Don't use it. * parse.c: Regenerated. * pt.c (print_candidates): Generalize to handle lists of overloaded functions. (instantiate_class_template): Don't rely on TREE_VIA_PRIVATE; it's not set. (get_template_base): Use new calling convention for dfs_walk. * search.c: Include varray.h. Add prototypes. (dfs_walk): Accept a data pointer to pass to the work functions. All callers changed. All work functions changed. (breadth_first_search): Rename to bfs_walk, and make consistent with dfs_walk. (dfs_walk_real): New function. (canonical_binfo): New function. (context_for_name_lookup): Likewise. (shared_marked_p): Likewise. (shared_unmarked_p): Likewise. (lokup_field_queue_p): Likewise. (lookup_field_r): Generalize to handle both functions and fields. (lookup_field): Just call lookup_member. (lookup_fnfields): Likewise. (lookup_member): Move body of lookup_field here and generalize. (dfs_accessible_queue_p): Likewise. (dfs_accessible_p): Likewise. (dfs_access_in_type): Likewise. (access_in_type): Likewise. (compute_access): Remove, and replace with ... (accessible_p): New function. (vbase_types): Remove. (vbase_decl_ptr_intermediate): Likewise. (vbase_decl_ptr): Likewise. (vbase_init_result): Likewise. (closed_envelopes): Likewise. (bvtable): Likewise.1999-03-09 Jason Merrill <jason@yorick.cygnus.com> * call.c (add_function_candidate): Check for proper number of args before checking the validity of those args.1999-03-06 Jason Merrill <jason@yorick.cygnus.com> * cp-tree.h (struct lang_type): Add anon_union field. (ANON_UNION_TYPE_P): Use it instead of examining type. (SET_ANON_UNION_TYPE_P): New macro. * decl.c (check_tag_decl): Use it. * search.c (compute_access): Handle non-type contexts earlier, and handle NULL_TREE. * tree.c (build_exception_variant): Use copy_to_permanent. * decl2.c (setup_initp): Give statics with no priority the default priority here. (do_dtors, do_ctors, finish_file): Remove special handling of non-prioritized statics.1999-03-05 Mark Mitchell <mark@markmitchell.com> * cp-tree.h (ANON_UNION_TYPE_P): Robustify. * decl.c (make_typename_type): Don't issue an error if an immediate lookup fails; it migt be resolved later. * friend.c (is_friend): Add comment. * search.c (breadth_first_search): Add POSTFN and DATA parameters. Tidy. All callers changed. (lookup_field_queue_p): New function. (lookup_field_r): Likewise. (lookup_field_post): Likewise. (lookup_field): Use them, via breadth_first_search, instead of duplicating logic. (compute_access): Robustify. (lookup_fnfield_info): New structure.1999-03-05 Jason Merrill <jason@yorick.cygnus.com> * pt.c (ts
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -