changelog
来自「GCC编译器源代码」· 代码 · 共 1,838 行 · 第 1/5 页
TXT
1,838 行
(typeck.o, init.o): Also depend on $(srcdir)/../expr.h ../insn-codes.h. * call.c, cp-tree.h, decl.c, tree.c: Finish prototyping. * expr.c (cplus_expand_expr): Make it static. * decl2.c, init.c, typeck.c: Include "expr.h". (expand_expr): Use proper values when calling the function.Mon Sep 29 11:05:54 1997 Alexandre Oliva <oliva@dcc.unicamp.br> * lang-options.h: new -Wold-style-cast flag. * cp-tree.h (warn_old_style_cast): new variable. * decl2.c (warn_old_style_cast): ditto. (lang_decode_option): support -Wold-style-cast. (reparse_absdcl_as_casts): produce old-style-cast warning.Mon Sep 29 09:20:53 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com> * decl.c (cp_finish_decl): Allow expand_aggr_init to set TREE_USED, reset value based on already_used. * init.c (expand_member_init): Revert change. Mon Sep 29 08:57:53 1997 Jason Merrill <jason@yorick.cygnus.com> * cp-tree.h, decl.c, decl2.c, pt.c: Lose DECL_C_STATIC and DECL_PUBLIC. Don't pretend statics are public. * decl2.c (lang_decode_option): Add missing ;.Sat Sep 27 16:22:48 1997 Jason Merrill <jason@yorick.cygnus.com> * friend.c (do_friend): Disable injection for all template-derived decls. * decl2.c (lang_decode_option): Handle -fguiding-decls. * parse.y (notype_template_declarator): New nonterminal. (direct_notype_declarator): Use it. (complex_direct_notype_declarator): Likewise. (object_template_id): Accept any kind of identifier after TEMPLATE. (notype_qualified_id): Don't add template declarators here.Sat Sep 27 16:21:58 1997 Mark Mitchell <mmitchell@usa.net> * call.c (add_template_candidate): Add explicit_targs parameter. (build_scoped_method_call): Use it. (build_overload_call_real): Likewise. (build_user_type_conversion_1): Likewise. (build_new_function_call): Likewise. (build_object_call): Likewise. (build_new_op): Likewise. (build_new_method_call): Likewise. (build_new_function_call): Handle TEMPLATE_ID_EXPR. (build_new_method_call): Likewise. * class.c (finish_struct_methods): Add specialization pass to determine which methods were specializing which other methods. (instantiate_type): Handle TEMPLATE_ID_EXPR. * cp-tree.def (TEMPLATE_ID_EXPR): New tree code. * cp-tree.h (name_mangling_version): New variable. (flag_guiding_decls): Likewise. (build_template_decl_overload): New function. (begin_specialization): Likewise. (reset_specialization): Likewise. (end_specialization): Likewise. (determine_explicit_specialization): Likewise. (check_explicit_specialization): Likewise. (lookup_template_function): Likewise. (fn_type_unification): Add explicit_targs parameter. (type_unification): Likewise. * decl.c (duplicate_decls): Add smarts for explicit specializations. (grokdeclarator): Handle TEMPLATE_ID_EXPR, and function specializations. (grokfndecl): Call check_explicit_specialization. * decl2.c (lang_decode_option): Handle -fname-mangling-version. (build_expr_from_tree): Handle TEMPLATE_ID_EXPR. (check_classfn): Handle specializations. * error.c (dump_function_name): Print specialization arguments. * friend.c (do_friend): Don't call pushdecl for template instantiations. * init.c (build_member_call): Handle TEMPLATE_ID_EXPR. * lang-options.h: Add -fname-mangling-version, -fguiding-decls, and -fno-guiding-decls. * lex.c (identifier_type): Return PFUNCNAME for template function names. * method.c (build_decl_overload_real): New function. (build_template_parm_names): New function. (build_overload_identifier): Use it. (build_underscore_int): New function. (build_overload_int): Use it. Add levels for template parameters. (build_overload_name): Likewise. Also, handle TYPENAME_TYPEs. (build_overload_nested_names): Handle template type parameters. (build_template_decl_overload): New function. * parse.y (YYSTYPE): New ntype member. (nested_name_specifier): Use it. (nested_name_specifier_1): Likewise. (PFUNCNAME): New token. (template_id, object_template_id): New non-terminals. (template_parm_list): Note specializations. (template_def): Likewise. (structsp): Likewise. (fn.def2): Handle member template specializations. (component_decl_1): Likewise. (direct_notype_declarator): Handle template-ids. (component_decl_1): Likewise. (direct_notype_declarator): Handle template-ids. (primary): Handle TEMPLATE_ID_EXPR, and template-ids. * pt.c (processing_specializations): New variable. (template_header_count): Likewise. (type_unification_real): New function. (processing_explicit_specialization): Likewise. (note_template_header): Likewise. (is_member_template): Handle specializations. (end_template_decl): Call reset_specialization. (push_template_decl): Handle member template specializations. (tsubst): Likewise. (tsubst_copy): Handle TEMPLATE_ID_EXPR. (instantiate_template): Handle specializations. (instantiate_decl): Likewise. (fn_type_unification): Handle explicit_targs. (type_unification): Likewise. Allow incomplete unification without an error message, if allow_incomplete. (get_bindings): Use new calling sequence for fn_type_unification. * spew.c (yylex): Handle PFUNCNAME. * tree.c (is_overloaded_fn): Handle TEMPLATE_ID_EXPR. (really_overloaded_fn): Likewise. (get_first_fn): Handle function templates. * typeck.c (build_x_function_call): Use really_overloaded_fn. Handle TEMPLATE_ID_EXPR. (build_x_unary_op): Likewise. (build_unary_op): Likewise. (mark_addressable): Templates whose address is taken are marked as used. 1997-09-25 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * decl.c (init_decl_processing): Declare __builtin_constant_p as accepting any kind of type, not only int.Fri Sep 26 00:22:56 1997 Jason Merrill <jason@yorick.cygnus.com> * search.c (get_matching_virtual): Notice virtual bases when sorrying about covariant returns. * parse.y (member_init): Also imply typename here. Remove ancient extension for initializing base members.Thu Sep 25 11:11:13 1997 Jason Merrill <jason@yorick.cygnus.com> Handle multi-level typenames and implicit typename in base list. * parse.y (typename_sub{,[0-2]}): New rules. (structsp, rule TYPENAME_KEYWORD): Use typename_sub. (nonnested_type): New rule. (complete_type_name): Use it. (base_class.1): Use typename_sub and nonnested_type. (nested_name_specifier): Don't elide std:: here. * decl.c (make_typename_type): Handle getting a type for NAME. (lookup_name_real): Turn std:: into :: here. Rvalue conversions were removed in London. * call.c (is_subseq): Don't consider lvalue transformations. (build_conv): LVALUE_CONV and RVALUE_CONV get IDENTITY_RANK. (joust): Reenable ?: kludge.1997-09-22 Brendan Kehoe <brendan@lisa.cygnus.com> * decl.c (start_function): Up warning of no return type to be a pedwarn.Mon Sep 22 14:15:34 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com> * init.c (expand_member_init): Don't set TREE_USED. * decl.c (cp_finish_decl): Mark decls used if type has TREE_USED set,don't clear TREE_USED wholesale.Sat Sep 20 15:31:00 1997 Jason Merrill <jason@yorick.cygnus.com> * call.c (build_over_call): Do require_complete_type before build_cplus_new.Thu Sep 18 16:47:52 1997 Jason Merrill <jason@yorick.cygnus.com> * search.c (lookup_field): Call complete_type in all cases. * decl.c (finish_function): Just warn about flowing off the end.Wed Sep 17 10:31:25 1997 Jason Merrill <jason@yorick.cygnus.com> * decl.c (grokparms): Don't bash a permanent list node if we're in a function.1997-09-17 Brendan Kehoe <brendan@lisa.cygnus.com> * Makefile.in (CONFLICTS): Fix s/r conflict count to 18.Tue Sep 16 14:06:56 1997 Jason Merrill <jason@yorick.cygnus.com> * call.c (build_new_op): Give better error for syntactically correct, but semantically invalid, use of undeclared template. * call.c (compare_qual): Handle pmfs. * decl.c (store_parm_decls): last_parm_cleanup_insn is the insn after the exception spec.Mon Sep 15 11:52:13 1997 Jason Merrill <jason@yorick.cygnus.com> * call.c (null_ptr_cst_p): Integer type, not integral type. * call.c (joust): Disable warnings until they can be moved to the right place.Fri Sep 12 16:11:13 1997 Per Bothner <bothner@cygnus.com> * Makefile.in, config-lang.in: Convert to autoconf.Thu Sep 11 17:14:55 1997 Jason Merrill <jason@yorick.cygnus.com> * decl.c (lookup_name_real): Add implicit 'typename' to types from base classes. * pt.c (most_specialized_class): Fix typo. (tsubst): Move constant folding to TREE_VEC case.Thu Sep 11 10:08:45 1997 Mark Mitchell <mmitchell@usa.net> * pt.c (do_poplevel): Don't warn about unused local variables while processing_template_decl since we don't always know whether or not they will need constructing/destructing. * pt.c (uses_template_parms): Check the values of an enumeration type to make sure they don't depend on template parms. * decl.c (make_typename_type): Don't lookup the field if the context uses template parms, even if we're not processing_template_decl at the moment. * pt.c (coerce_template_parms): Avoid looking at the TYPE_LANG_DECL portion of a typename type, since there won't be one. (tsubst): Do constant folding as necessary to make sure that arguments passed to lookup_template_class really are constants. Wed Sep 10 11:21:55 1997 Jason Merrill <jason@yorick.cygnus.com> * except.c (expand_builtin_throw): #ifndef DWARF2_UNWIND_INFO. * decl2.c (finish_file): Only register exception tables if we need to. * decl.c (init_decl_processing): Add __builtin_[fs]p.Tue Sep 9 19:49:38 1997 Jason Merrill <jason@yorick.cygnus.com> * pt.c (unify): Just return 0 for a TYPENAME_TYPE.Tue Sep 9 17:57:25 1997 Mark Mitchell <mmitchell@usa.net> * error.c (dump_decl): Avoid crashing when presented with a uninitialized constant, as can occur with a template parameter. (dump_expr): Make sure that there are enough levels of current_template_parms before we start diving through them.1997-09-09 Brendan Kehoe <brendan@lisa.cygnus.com> * typeck.c (build_indirect_ref): Heed FLAG_VOLATILE similar to c-typeck.c.Tue Sep 9 09:36:39 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com> * except.c (expand_throw): Call build_delete for all exception types, not just objects with destructors.Mon Sep 8 02:33:20 1997 Jody Goldberg <jodyg@idt.net> * decl.c (current_local_enum): Remove static. * pt.c (tsubst_enum): Save and restore value of current_local_enum in case template is expanded in enum decl. (instantiate_class_template) : Use new tsubst_enum signature. (tsubst_expr): Likewise.Mon Sep 8 01:21:43 1997 Mark Mitchell <mmitchell@usa.net> * pt.c (begin_member_template_processing): Take a function as argument, not a set of template arguments. Use the template parameters, rather than the arguments. Handle non-type parameters correctly. Push a binding level for the parameters so that multiple member templates using the same parameter names can be declared. (end_member_template_processing): Pop the binding level. (push_template_decl): Mark member templates as static when appropriate. * lex.c (do_pending_inlines): Pass the function, not its template arguments, to begin_member_template_processing. (process_next_inline): Likewise. (do_pending_defargs): Likewise. * error.c (dump_expr): Obtain the correct declaration for a TEMPLATE_CONST_PARM. * call.c (add_template_conv_candidate): New function. (build_object_call): Handle member templates, as done in the other build_ functions. Sat Sep 6 10:20:27 1997 Mark Mitchell <mmitchell@usa.net> * decl.c (replace_defag): Undo previous change. * lex.c (do_pending_defargs): Deal with member templates. * pt.c (is_member_template): Avoid crashing when passed a non-function argument.Fri Sep 5 17:27:38 1997 Jason Merrill <jason@yorick.cygnus.com> * class.c (grow_method): Remove check for redeclaration.Fri Sep 5 01:37:17 1997 Mark Mitchell <mmitchell@usa.net> * cp-tree.h (INNERMOST_TEMPLATE_PARMS): New macro. (DECL_INNERMOST_TEMPLATE_PARMS): Likewise. (PRIMARY_TEMPLATE_P): Use it. * call.c (build_overload_call_real): Use it. * class.c (instantiate_type): Likewise. * decl.c (decls_match): Likewise. * method.c (build_overload_identifier): Likewise. * pt.c (push_template_decl): Likewise. (classtype_mangled_name): Likewise. (lookup_template_class): Likewise. * cp-tree.h (DECL_NTPARMS): Change name from DECL_NT_PARMS to DECL_NTPARMS to conform to usage elsewhere. * call.c (add_template_candidate): Likewise. * class.c (instantiate_type): Likewise. * pt.c (instantiate_template): Likewise. (get_bindings): Likewise. * class.c (grow_method): Use DECL_FUNCTION_TEMPLATE_P instead of is_member_template. * pt.c (unify): Undo changes to allow multiple levels of template parameters. (type_unification): Likewise. (fn_type_unification): Likewise. (get_class_bindings): Likewise. * cp-tree.h (Likewise). * decl.c (replace_defarg): Check that the type of the default parameter does not invlove a template type before complaining about the initialization. * error.c (dump_expr): Deal with template constant parameters in
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?