📄 changelog.1
字号:
* decl2.c (flag_new_for_scope): Add a new mode that follows ANSI for-scoping, but supports (and warns about) old programs. Make the new mode (with value 1) the default. (lang_f_options): The on-value for flag_new_for_scope is now 2. * cp-tree.h (DECL_DEAD_FOR_LOCAL, DECL_ERROR_REPORTED): New macros (DECL_SHADOWED_FOR_VAR): Likewise. * decl.c (struct binding_level): New fields dead_vars_from_for and is_for_scope. (note_level_for_for): New function. (poplevel): Special processing if is_for_scope. (pushdecl): Warn if for-scope variable shadows local. * lex.c (do_identifier): Handle old (non-ANSI) for scoping, and warn if conflicts. * parse.y (FOR): Call note_level_for_for.Mon Aug 21 10:28:31 1995 Jason Merrill <jason@deneb.cygnus.com> * decl2.c (import_export_inline): Class interface hackery does not apply to synthesized methods.Sun Aug 20 16:29:00 1995 Mike Stump <mrs@cygnus.com> * search.c (virtual_context): Find the right context more often. Solves a `recoverable compiler error, fixups for virtual function' problem.Sun Aug 20 13:53:24 1995 Mike Stump <mrs@cygnus.com> * except.c (expand_start_all_catch): Ensure that we always transfer control to the right EH handler, by rethrowing the end label on the region, instead of hoping we are nested and falling through. (expand_leftover_cleanups): Likewise. (end_protect): Since we now rethrow the end label, put a nop after it, so that outer regions are recognized. * init.c (build_vec_delete_1): New routine to handle most of vector deleting, all code moved here from build_vec_delete. (build_array_eh_cleanup): Use build_vec_delete_1 to do all the real work. (expand_vec_init): If the array needs partial destructing, setup an EH region to handle it. (build_vec_delete): Move lots of code to build_vec_delete_1, use build_vec_delete_1 to do the grunt work.Sat Aug 19 14:25:33 1995 Brendan Kehoe <brendan@lisa.cygnus.com> Handle decl attributes properly for function definitions without previous attribute-loaded declarations. * decl.c (start_function): New arg ATTRS. Add a call to cplus_decl_attributes with it before we create the RTL. * cp-tree.h (start_function): Update prototype. * parse.y (fn.def1): Pass ATTRS into start_function instead of trying to call cplus_decl_attributes too late. Pass a NULL_TREE for other use. * decl2.c (finish_file): Pass NULL_TREE as fourth arg to start_function. * method.c (synthesize_method): Likewise. * except.c (expand_builtin_throw): Likewise for start on __throw.Sat Aug 19 13:36:08 1995 Mike Stump <mrs@cygnus.com> * class.c (set_rtti_entry): Turn on -fvtable-thunk -frtti support. This changes -fvtable-thunks vtable layout, so a recompile will be necessary, if you use -fvtable-thunks. (get_vtable_entry): Use n, instead of i to be consistent with the rest of the compiler. (get_vtable_entry_n): Likewise. (add_virtual_function): Add a slot for the tdesc, if -fvtable-thunks are being used. (finish_struct_1): Likewise. (skip_rtti_stuff): New routine to collapse similar code from many different parts of the compiler. I think I got them all. (modify_one_vtable): Use it. (fixup_vtable_deltas1): Likewise. (override_one_vtable): Likewise. * decl2.c (mark_vtable_entries): Likewise. * tree.c (debug_binfo): Likewise. * search.c (expand_upcast_fixups): Likewise. (get_abstract_virtuals_1): Likewise. Use virtuals, instead of tmp to consistent with the rest of the compiler. (get_abstract_virtuals): Likewise. * cp-tree.h (skip_rtti_stuff): New routine, declare it. * gc.c (build_headof): Support -fvtable-thunk and -frtti together. (build_typeid): Likewise. (build_classof): Remove old style way of doing rtti. Remove support for `classof' and `headof'. * gxx.gperf: Likewise. * hash.h: Likewise. * parse.y: Likewise.Fri Aug 18 17:31:58 1995 Jason Merrill <jason@deneb.cygnus.com> * decl.c (start_function): Clear ctor_label and dtor_label. * class.c (finish_struct_1): Fix handling of access decls.Tue Aug 15 19:21:54 1995 Jason Merrill <jason@phydeaux.cygnus.com> * class.c (finish_struct): Only do minimal processing here, so it can be used for class template definitions, as well. (finish_struct_1): New function with the rest of the code.Tue Aug 15 09:46:16 1995 Mike Stump <mrs@cygnus.com> * class.c (prepare_fresh_vtable): On second though, always build the offset (see Aug 10 change), unless -fvtable-thunks is given. It does this by calling the new routine set_rtti_entry. (finish_struct): Likewise. (set_rtti_entry): New routine to update the rtti information at the start of the vtable.Mon Aug 14 12:21:22 1995 Brendan Kehoe <brendan@lisa.cygnus.com> * error.c (dump_decl, case IDENTIFIER_NODE): Only work on a dtor if it's declared in the C++ language spec. (dump_function_decl): Likewise. (dump_function_name): Likewise. (ident_fndecl): Make sure we got something back from lookup_name. * decl.c (start_function): Likewise.Fri Aug 11 16:52:15 1995 Jason Merrill <jason@phydeaux.cygnus.com> * call.c (build_method_call): Don't call build_new when calling a constructor without an instance.Thu Aug 10 20:00:17 1995 Mike Stump <mrs@cygnus.com> * class.c (prepare_fresh_vtable): Always build the offset to the complete object, as it doesn't cost much. This allows dynamic_cast to void * to work when -frtti isn't given. (finish_struct): Likewise.Thu Aug 10 16:31:28 1995 Mike Stump <mrs@cygnus.com> * except.c (build_eh_type): Split out some functionality to new routine named build_eh_type_type. (build_eh_type_type): New routine. (expand_start_catch_block): Use build_eh_type_type, as we never want the dynamic type of the catch parameter, just the static type. Fixes core dumps when -frtti is used and one catchs pointers to classes.Thu Aug 10 14:55:29 1995 Mike Stump <mrs@cygnus.com> * except.c (expand_builtin_throw): Since we now use normal calling conventions for __throw, we have to remove the first layer off the stack, so that the next context we search for handlers is the outer context instead of the context that had the call to __throw, if we don't immediately find the desired context.Tue Aug 8 17:44:23 1995 Jason Merrill <jason@phydeaux.cygnus.com> * tree.c (cp_expand_decl_cleanup): Returns int, not tree. * cp-tree.h: Update. * parse.y (template_type_parm): Add support for `typename'.Tue Aug 8 12:06:31 1995 Mike Stump <mrs@cygnus.com> * except.c (expand_internal_throw): New internal routine to throw a value. (expand_end_all_catch, expand_leftover_cleanups): All throwers changed to use `expand_internal_throw' instead of jumping to throw label. (expand_end_catch_block, expand_throw): Likewise. (throw_label): Removed. (expand_builtin_throw): Changed so that EH parameters are passed by normal function call conventions. Completes Aug 4th work.Fri Aug 4 17:17:08 1995 Mike Stump <mrs@cygnus.com> * cp-tree.h (expand_builtin_throw): Declare it. * decl2.c (finish_file): Call expand_builtin_throw. * except.c (make_first_label): Remove. (init_exception_processing): Don't use a LABEL_REF for throw_label, instead use a SYMBOL_REF, this is so that we don't use LABEL_REFs in other functions that don't really appear in those functions. This solves a problem where cc1plus consumed exponential amounts of memory when -Wall was used. (expand_end_all_catch, expand_leftover_cleanups, expand_end_catch_block, expand_throw): Change all uses of throw_label to match new style. (do_unwind): Rename parameter to inner_throw_label, as it is now different from throw_label. Also, assume that our caller will wrap the passed label with a LABEL_REF, if needed. (expand_builtin_throw): Make external, change so that the generated throw is now a real function. (expand_exception_blocks): Never generate throw code inside another function.Fri Aug 4 12:20:02 1995 Mike Stump <mrs@cygnus.com> * decl.c (grokdeclarator): Move checking of mutable const objects and mutable static objects down, as we might decide during parsing to unset staticp or constp (for example, when const is part of the object being pointed to).Thu Aug 3 17:13:43 1995 Mike Stump <mrs@cygnus.com> * except.c (output_exception_table_entry): Enhance portability to weird machines. (emit_exception_table): Likewise.Thu Aug 3 16:41:38 1995 Mike Stump <mrs@cygnus.com> * typeck.c (build_ptrmemfunc): Handle casting of pointer to non-virtual member functions.Wed Aug 2 11:58:25 1995 Mike Stump <mrs@cygnus.com> * gc.c (build_typeid): Strip cv qualifiers so that const T&, T&, T and const T all match.Wed Aug 2 11:25:33 1995 Mike Stump <mrs@cygnus.com> * except.c (build_eh_type): Strip cv qualifiers so that const T&, T&, T and const T all match.Tue Aug 1 14:20:16 1995 Mike Stump <mrs@cygnus.com> * except.c: Fix up comments, cleanup code and eliminate exceptNode, exceptStack, exceptstack, push_except_stmts, pop_except_stmts, new_except_stack, push_last_insn, pop_last_insn, insn_save_node and InsnSave. Also, numerous speed improvements, and correctness improvements. Double faulting in all situations should now be handled correctly. (expand_start_all_catch): Instead of having many terminate protected regions, just have one. (expand_start_catch_block): No longer have to protect false_label_rtx, as it isn't used for EH region marking. (expand_end_catch_block): Expand out EH cleanups here by using expand_leftover_cleanups. (expand_end_all_catch): Use sequences instead of playing with insn links directly. (expand_exception_blocks): Likewise. Also protect all catch clauses with one terminate region.Mon Jul 31 13:24:30 1995 Jason Merrill <jason@phydeaux.cygnus.com> * method.c (report_type_mismatch): Don't talk about an object parameter for non-methods.Sun Jul 30 13:13:02 1995 Jason Merrill <jason@phydeaux.cygnus.com> * class.c (finish_struct): Catch private and protected members of anonymous unions here. * decl2.c (finish_anon_union): And here. * parse.y: Instead of here. * errfn.c (ARGSLIST): Support passing four args. * error.c (cv_as_string): New function. (cp_printers): Add it. * call.c (build_method_call): Report 'const' at end of pseudo-decl. * method.c (report_type_mismatch): Deal with a bad_arg of 0. * init.c (expand_aggr_init): Handle volatile objects, too.Sat Jul 29 13:42:03 1995 Jason Merrill <jason@phydeaux.cygnus.com> * decl.c (struct binding_level): Keep list of incomplete decls. (print_binding_level): Use list_length to count them. (pushdecl): Build up the list. (hack_incomplete_structures): Walk it and prune completed decls.Fri Jul 28 15:26:44 1995 Jason Merrill <jason@phydeaux.cygnus.com> * typeck.c (comp_target_types): Don't check const and volatile for function types. (comp_ptr_ttypes_real): Likewise.Thu Jul 27 15:40:48 1995 Jason Merrill <jason@phydeaux.cygnus.com> * typeck.c (comp_target_types): Fix.Thu Jul 27 15:10:48 1995 Mike Stump <mrs@cygnus.com> * cp-tree.h (unsave_expr_now, build_unsave_expr, cp_expand_decl_cleanup): Declare new routines. * decl.c (cp_finish_decl, store_parm_decls, hack_incomplete_structures): Change all cals from expand_decl_cleanup to cp_expand_decl_cleanup. * gc.c (protect_value_from_gc): Likewise. * expr.c (cplus_expand_expr): Handle UNSAVE_EXPRs. * tree.c (unsave_expr): New routine to build an UNSAVE_EXPR. (unsave_expr_now): Backend routine used by tree expander. (cp_expand_decl_cleanup): Wrap second argument in an UNSAVE_EXPR to work around a limitation in the backend. The backend uses the cleanups multiple times, on disjoint control flows, so we cannot pass unsaved SAVE_EXPRs to the backend. * tree.def (UNSAVE_EXPR): New tree code. * typeck.c (c_expand_return): Move goto/return code up inside conditional, as we don't always want to do this, we only want to do this when we don't otherwise finish with this control flow.Thu Jul 27 10:38:43 1995 Brendan Kehoe <brendan@lisa.cygnus.com> * parse.y (typespec): Only complain about typeof if we're not getting it from a system header.Thu Jul 27 10:26:23 1995 Doug Evans <dje@canuck.cygnus.com> Clean up prefix attribute handling. * parse.y (reserved_declspecs): Link prefix attributes with declspecs. (declmods): Likewise. (all rules that reference typed_declspecs and declmods): Call split_specs_attrs or strip_attrs to separate declspecs and attrs. (lang_extdef): Delete resetting of prefix_attributes. (template_def, notype_declarator rule): Use NULL_TREE for prefix_attributes. (condition): Use NULL_TREE for prefix_attributes. (setattrs): Deleted. (nomods_initdcl0): Set prefix_attributes to NULL_TREE. (component_decl): Delete resetting of prefix_attributes. (component_decl_1, notype_components rule): Use NULL_TREE for prefix_attributes. (simple_stmt): Delete resetting of prefix_attributes.Mon Jul 24 13:37:53 1995 Jason Merrill <jason@phydeaux.cygnus.com> * call.c (convert_harshness): Deal with reference conversions before others. Actually do array->pointer decay. Call comp_target_types with pointer types rather than their targets. * typeck.c (comp_target_types): Avoid assigning D const * to B *.Mon Jul 24 08:54:46 1995 Brendan Kehoe <brendan@lisa.cygnus.com> * pt.c (to_be_restored): Move decl to global scope.Sat Jul 22 12:22:11 1995 Jason Merrill <jason@phydeaux.cygnus.com> * decl.c (start_decl): Put back clearing of DECL_IN_AGGR_P.Fri Jul 21 17:09:02 1995 Jason Merrill <jason@phydeaux.cygnus.com> * decl.c (grokdeclarator): Downgrade error about 'extern int A::i' to pedwarn. * pt.c (instantiate_template): Also avoid instantiation if the function has already been declared to be a specialization. * decl2.c (check_classfn): Ignore cname argument, and return the matching function. * decl.c (start_decl): Handle declarations of member functions outside of the class (i.e. specialization declarations).Thu Jul 20 10:34:48 1995 Jason Merrill <jason@phydeaux.cygnus.com> * class.c (finish_struct): Don't mess with the type of bitfields. * various.c: s/TYPE_POINTER_TO/build_pointer_type/.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -