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 + -
显示快捷键?