summaryrefslogtreecommitdiff
path: root/gcc/cp/Make-lang.in
Commit message (Collapse)AuthorAgeFilesLines
* * Makefile.in (gcc.o, gccspec.o, cppspec.o): Depend on gcc.h.ghazi1999-09-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * gcc.h: New file. (lang_specific_driver): Don't take a function pointer parameter. All callers changed. * gcc.c: Include gcc.h. (do_spec, fancy_abort,lang_specific_driver,lang_specific_pre_link, lang_specific_extra_outfiles, fatal): Don't declare. (multilib_defaults_raw): Constify. (read_specs): Call memset, rather than bzero. (main): Call return, not exit. (lookup_compiler): Call memcpy, not bcopy. (fatal): Make extern. * cppspec.c: Include gcc.h. (lang_specific_driver): Initialize variable `quote'. Constify a char*. All calls to the function pointer parameter now explicitly call `fatal'. * gccspec.c (lang_specific_driver): Include gcc.h. cp: * Make-lang.in (g++spec.o): Depend on system.h and gcc.h. * g++spec.c: Include gcc.h. (lang_specific_driver): Constify a char*. Call xcalloc, not xmalloc/bzero. All calls to the function pointer parameter now explicitly call `fatal'. f: * Make-lang.in (g77spec.o): Depend on system.h and gcc.h. * g77spec.c: Include gcc.h. (g77_xargv): Constify. (g77_fn): Add parameter prototypes. (lookup_option, append_arg): Add static prototypes. (g77_newargv): Constify. (lookup_option, append_arg, lang_specific_driver): Constify a char*. (lang_specific_driver): All calls to the function pointer parameter now explicitly call `fatal'. java: * Make-lang.in (jvspec.o): Depend on system.h and gcc.h. * jvspec.c: Include gcc.h. Don't include gansidecl.h. (do_spec, lang_specific_pre_link, lang_specific_driver, input_filename, input_filename_length): Don't declare. (main_class_name, jvgenmain_spec, lang_specific_driver): Constify a char*. (lang_specific_driver): All calls to the function pointer parameter now explicitly call `fatal'. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@29367 138bc75d-0d04-0410-961f-82ee72b054a4
* GCC:mmitchel1999-09-041-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Sat Sep 4 13:44:01 1999 Mark Mitchell <mark@codesourcery.com> * Makefile.in (C_AND_C_OBJS): Add gcc-callbacks.o. (OBJS): Add $(GCC). (ggc-callbacks.o): New target. * ggc-callbacks.c: New file. Chill: 1999-09-04 Mark Mitchell <mark@codesourcery.com> * Make-lang.in (cc1chill): Depend on ggc-callbacks.o. * Makefile.in (CHILL_OBJS): Add ggc-callbacks.o. C++: 1999-09-04 Mark Mitchell <mark@codesourcery.com> * Make-lang.in (cc1plus): Remove dependency on GGC. * Makefile.in (OBJS): Don't mention ggc-simple.o. (OBJDEPS): Don't mention ggc-simple.o. F77: Sat Sep 4 13:46:27 1999 Mark Mitchell <mark@codesourcery.com> * Make-lang.in (f771): Depend on ggc-callbacks.o. * Makefile.in (OBJS): Add ggc-callbacks.o. (OBJDEPS): Likewise. Objc: 1999-09-04 Mark Mitchell <mark@codesourcery.com> * Make-lang.in (jc1): Depend on ggc-callbacks.o. * Makefile.in (OBJS): Add ggc-callbacks.o. (OBJDEPS): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@29111 138bc75d-0d04-0410-961f-82ee72b054a4
* * Make-lang.in (cc1plus): Depend on $(GGC).mmitchel1999-09-041-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | * Makefile.in (OBJS): Add ggc-simple.o. (OBJDEPS): Likewise. * cp-tree.h (language_function): Rename members to `x_' versions; we now have x_named_labels, x_ctor_label, x_dtor_label, x_base_init_list, x_member_init_list, x_base_init_expr, x_current_class_ptr, x_current_class_ref, x_last_tree, x_last_expr_type, x_last_dtor_insn, x_last_parm_cleanup_insn, and x_result_rtx. (dtor_label, ctor_label, current_base_init_list, current_member_init_list, base_init_expr, current_class_ptr, current_class_ref, last_tree, last_expr_type): Adjust accordingly. * decl.c: Include ggc.h. (last_dtor_insn): Adjust to use x_ names. (last_parm_cleanup_insn): Likewise. (original_result_rtx): Likewise. (named_labels): Likewise. (mark_binding_level): New function. (mark_cp_function_context): Likewise. (mark_false_label_stack): Likewise. (lang_mark_tree): Likewise. (lang_cleanup_tree): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@29107 138bc75d-0d04-0410-961f-82ee72b054a4
* * extend.texi (C++ Signatures): Remove node.mmitchel1999-08-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * invoke.texi: Remove discussion of -fhandle-signatures, signature, sigof, __signature__, and __sigof__. * Make-lang.in (CXX_SRCS): Remove sig.c. * Makefile.in (CXX_OBJS): Remove sig.o. (sig.o): Remove. * cp-tree.h (CPTI_OPAQUE_TYPE): Remove. (CPTI_SIGNATURE_TYPE): Likewise. (CPTI_SIGTABLE_ENTRY_TYPE): Likewise. (opaque_type_node): Likewise. (signature_type_node): Likewise. (sigtable_entry_type): Likewise. (flag_handle_signatures): Likewise. (lang_type): Remove is_signature, is_signature_pointer, is_signature_reference, has_opaque_typedecls, sigtables_has_been_generated. Adjust dummy. Remove signature, signature_pointer_to, signature_reference_to. (IS_SIGNATURE): Remove. (SET_SIGNATURE): Remove. (CLEAR_SIGNATURE): Remove. (IS_SIGNATURE_POINTER): Remove. (IS_SIGNATURE_REFERENCE): Remove. (SIGNATURE_HAS_OPAQUE_TYPEDECLS): Remove. (SIGTABLE_HAS_BEEN_GENERATED): Remove. (CLASSTYPE_SIGNATURE): Remove. (SIGNATURE_TYPE): Remove. (SIGNATURE_METHOD_VEC): Remove. (SIGNATURE_POINTER_TO): Remove. (SIGNATURE_REFERENCE_TO): Remove. (lang_decl_flags): Remove is_default_implementation. Rename memfunc_pointer_to to saved_tree. (IS_DEFAULT_IMPLEMENTATION): Remove. (DECL_MEMFUNC_POINTER_TO): Remove. (DECL_MEMFUNC_POINTING_TO): Remove. (DECL_SAVED_TREE): Adjust definition. (tag_types): Remove signature_type_node. (SIGNATURE_FIELD_NAME): Remove. (SIGNATURE_FIELD_NAME_FORMAT): Likewise. (SIGNATURE_OPTR_NAME): Likewise. (SIGNATURE_SPTR_NAME): Likewise. (SIGNATURE_POINTER_NAME): Likewise. (SIGNATURE_POINTER_NAME_FORMAT): Likewise. (SIGNATURE_REFERENCE_NAME): Likewise. (SIGNATURE_REFERNECE_NAME_FORMAT): Likewise. (SIGTABLE_PTR_TYPE): Likewise. (SIGTABLE_NAME_FORMAT): Likewise. (SIGTABLE_NAME_FORMAT_LONG): Likewise. (SIGTABLE_TAG_NAME): Likewise. (SIGTABLE_VB_OFF_NAME): Likewise. (SIGTABLE_VT_OFF_NAME): Likewise. (finish_base_specifiers): Change prototype. (build_signature_pointer_type): Remove. (build_signature_reference_type): Remove. (build_signature_pointer_constructor): Remove. (build_signature_method_call): Remove. (build_optr_ref): Likewise. (append_signature_fields): Likewise. (signature_error): Likewise. * call.c (build_this): Remove signature support. (build_over_call): Likewise. (build_new_method_call): Likewise. * class.c (add_implicitly_declared_members): Likewise. (finish_struct_1): Likewise. (finish_struct): Likewise. * cvt.c (cp_convert_to_pointer): Likewise. (convert_to_pointer_force): Likewise. (ocp_convert): Likewise. * decl.c (sigtable_decl_p): Remove. (init_decl_processing): Remove support for signatures. (cp_finish_decl): Likewise. (grokdeclarator): Likewise. (grokparms): Likewise. (xref_tag): Likewise. (start_function): Likewise. (start_method): Likewise. * decl2.c (finish_sigtable_vardecl): Remove. (flag_handle_signatures): Remove. (lang_f_options): Remove handle-signatures. (grokfield): Remove support for signatures. (grokbitfield): Likewise. (finish_file): Likewise. (reparse_absdcl_as_casts): Likewise. * error.c (dump_type_real): Likewise. (dump_function_decl): Likewise. * friend.c (make_friend_class): Likewise. * gxx.gperf: Remove __signature__, signature, __sigof__, sigof. * hash.h: Regenerated. * init.c (build_new_1): Remove support for signatures. * lang-options.h: Remove -fhandle-signatures, -fno-handle-signatures. * lex.c (init_parse): Remove support for signatures. (yyprint): Likewise. * lex.h (rid): Remove RID_SIGNATURE. * method.c (build_decl_overload_real): Remove support for signatures. (hack_identifier): Likewise. * parse.y (base_class): Likewise. (base_class.1): Likewise. (access_specifier): Likewise. * search.c (lookup_member): Likewise. * semantics.c (finish_qualified_object_call_expr): Likewise. (finish_template_type_parm): Likewise. (begin_class_definition): Likewise. (finish_base_specifier): Likewise. * sig.c: Remove. * tree.c (build_cplus_method_type): Remove support for signatures. * typeck.c (require_complete_type): Likewise. (c_sizeof): Likewise. (c_alignof): Likewise. (build_object_ref): Likewise. (build_component_ref): Likewise. (build_indirect_ref): Likewise. (build_c_cast): Likewise. (build_modify_expr): Likewise. (convert_for_initialization): Likewise. * typeck2.c (signature_error): Remove. (store_init_value): Remove support for signatures. (digest_init): Likewise. (build_x_arrow): Likewise. (build_functional_cast): Likewise. * xref.c (GNU_xref_decl): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@28677 138bc75d-0d04-0410-961f-82ee72b054a4
* * invoke.texi (-fdump-translation-unit): New option.mmitchel1999-08-031-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Make-lang.in (CXX_SRCS): Add dump.c. * Makefile.in (CXX_OBJS): Add dump.o. (dump.o): New target. * cp-tree.h (DECL_CONV_FN_P): Document. (DECL_OVERLOADED_OPERATOR_P): New function. (TYPE_PTRMEM_CLASS_TYPE): New macro. (TYPE_PTRMEM_POINTED_TO_TYPE): Likewise. (PTRMEM_CST_CLASS): Use TYPE_PTRMEM_CLASS_TYPE. (ASM_VOLATILE_P): New macro. (STMT_LINENO): Likewise. (cp_namespace_decls): New function. (dump_node_to_file): New function. * decl.c (cp_namespace_decls): New function. (walk_namespaces_r): Use it. (wrapup_globals_for_namespace): Likewise. * decl2.c (flag_dump_translation_unit): New variable. (lang_decode_option): Handle -fdump-translation-unit. (finish_file): If flag_dump_translation_unit is set, dump the translation unit. * dump.c: New file. * lang-options.h: Add -fdump-translation-unit. * pt.c (tsubst_template_parms): Robustify. (tsubst_decl): Use DECL_OVERLOADED_OPERATOR_P. (tsubst_expr): Use STMT_LINENO. * semantics.c (finish_asm_stmt): Eliminate duplicate code. Check for invalid cv-qualifiers even while building templates. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@28434 138bc75d-0d04-0410-961f-82ee72b054a4
* * Make-lang.in (cc1plus): Make it depend on gxx.gperf.mmitchel1999-05-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | * cp-tree.h: Fix typo in documentation on pointers-to-members. (cp_build_qualified_type): Make it a macro. (cp_build_qualified_type_real): Declare. * decl.c (grokdeclarator): Remove misleading comment. Avoid problem with template parameters and restrict-qualification. * gxx.gperf: Replace NORID with RID_UNUSED throughout. * hash.h: Regenerated. * lex.h (rid): Move RID_FIRST_MODIFIER and RID_LAST_MODIFIER into the enumeration. (NORID): Remove definition. * pt.c (tsubst_aggr_type): Use cp_build_qualified_type_real. (tsubst): Likewise. Remove special handling for FUNCTION_TYPEs. (fn_type_unification): Check that the function type resulting from the deduction is legal. (check_cv_quals_for_unify): Don't handle FUNCTION_TYPEs specially. (unify): Use cp_build_qualified_type_real. * tree.c (build_cplus_array_type_1): Handle error_marks as inputs. (cp_build_qualified_type): Rename to ... (cp_build_qualified_type_real): Add additional COMPLAIN parameter and modify appropriately. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@27086 138bc75d-0d04-0410-961f-82ee72b054a4
* * Make-lang.in (cplib2.ready): Don't depend on phony targets.jason1999-04-261-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@26668 138bc75d-0d04-0410-961f-82ee72b054a4
* * gcc.c: Compile unconditionally all code formerly dependentlaw1999-03-251-17/+1
| | | | | | | | | | | | | | | | | on #ifdef LANG_SPECIFIC_DRIVER. * gccspec.c: New file with stub lang_specific_driver, lang_specific_pre_link. * Makefile.in: Link gccspec.o into xgcc. Add rule to compile gccspec.c. * cp/Make-lang.in: Remove all references to g++.o/g++.c. Link g++ from gcc.o. * f/Make-lang.in: Remove all references to g77.o/g77.c. Link g77 from gcc.o. * java/Make-lang.in: Remove all references to gcj.o/gcj.c. Link gcj from gcc.o. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@25989 138bc75d-0d04-0410-961f-82ee72b054a4
* * Make-lang.in: ($(INTL_TARGETS)): depend on cp/parse.coliva1999-03-181-0/+8
| | | | | | | ($(srcdir)/cp/parse.c): moved from ../Makefile.in git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@25852 138bc75d-0d04-0410-961f-82ee72b054a4
* improve wall of separation between build and installburley1999-02-221-1/+4
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@25367 138bc75d-0d04-0410-961f-82ee72b054a4
* * Make-lang.in (GXX_OBJS): Remove choose-temp.o, pexecute.o andlaw1999-02-031-4/+3
| | | | | | | | mkstemp.o. Get them from libiberty now. (DEMANGLER_PROG): Simlarly, temove getopt.o getopt1.o. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@25014 138bc75d-0d04-0410-961f-82ee72b054a4
* Merge in gcc2 snapshot 19980929. See gcc/ChangeLog and gcc/FSFChangeLog forlaw1999-01-271-5/+7
| | | | | | | details. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@24879 138bc75d-0d04-0410-961f-82ee72b054a4
* Copyright fixes.law1999-01-061-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@24537 138bc75d-0d04-0410-961f-82ee72b054a4
* * Make-lang.in (g++.o): Depend on prefix.h.ghazi1999-01-051-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@24499 138bc75d-0d04-0410-961f-82ee72b054a4
* * Make-lang.in (cxxmain.o): Depend on $(DEMANGLE_H), not demangle.hlaw1998-12-081-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@24185 138bc75d-0d04-0410-961f-82ee72b054a4
* * lex.c (handle_generic_pragma): Use token_buffer.jason1998-11-241-1/+2
| | | | | | | | | | | | | | | | | | | | * decl.c (check_tag_decl): Don't complain about null friend decl. * Make-lang.in (DEMANGLER_PROG): Move the output argumnts to the first position. * lex.c (check_newline): Use ISALPHA. (readescape): Use ISGRAPH. (yyerror): Use ISGRAPH. * search.c (get_abstract_virtuals): Do not use initial CLASSTYPE_ABSTRACT_VIRTUALS. * typeck2.c (abstract_virtuals_error): Show location of abstract declaration. * call.c (build_new_method_call): Use CLASSTYPE_ABSTRACT_VIRTUAL, rather than recalculate. * class.c (finish_struct_bits): Don't bother working out whether get_abstract_virtuals will do anything, just do it. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@23836 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/ChangeLog:manfred1998-11-191-8/+8
| | | | | | | | | | | | | | | | 1998-10-24 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> * Makefile.in (mandir): Set to @mandir@. (man1dir): New variable to hold the former value of $(mandir). Replace all uses of $(mandir) by $(man1dir). gcc/cp/ChangeLog: 1998-11-14 Manfred Hollstein <manfred@s-direktnet.de> * Make-lang.in (mandir): Replace all uses of $(mandir) by $(man1dir). gcc/f/ChangeLog: 1998-11-14 Manfred Hollstein <manfred@s-direktnet.de> * Make-lang.in (mandir): Replace all uses of $(mandir) by $(man1dir). git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@23708 138bc75d-0d04-0410-961f-82ee72b054a4
* * Make-lang.in (cc1plus): Add dependency on hash.o.mmitchel1998-11-181-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@23694 138bc75d-0d04-0410-961f-82ee72b054a4
* bothner1998-09-211-2/+2
| | | | | | | * Make-lang.in (c++-filt): Link libiberty.a after cxxmain.o. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@22527 138bc75d-0d04-0410-961f-82ee72b054a4
* * Make-lang.in (tinfo.o): Use CXXFLAGS when compiling.mmitchel1998-09-161-12/+12
| | | | | | | | | | | | | | | | | (tinfo2.o): Likewise. (exception.o): Likewise. (new.o): Likewise. (opnew.o): Likewise. (opnewnt.o): Likewise. (opvnew.o): Likewise. (opvnewnt.o): Likewise. (opdel.o): Likewise. (opdelnt.o): Likewise. (opvdel.o): Likewise. (opvdelnt.o): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@22450 138bc75d-0d04-0410-961f-82ee72b054a4
* revert error reporting patchjason1998-09-071-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@22310 138bc75d-0d04-0410-961f-82ee72b054a4
* * cp-error.def: New file.mmitchel1998-09-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Make-lang.in (cc1plus): Add dependency on it. * Makefile.in (CXX_TREE_H): Likewise. * cp-tree.h (error_code): New type. Include cp-error.def to get error codes. Make it possible to include cp-tree.h in errfn.c. (enable_warning): New function. (flag_diag_codes): New variable. * errfn.c: Include cp-tree.h. (cp_err_msg): New type. Include cp-error.def to define it. (err_msgs): New variable. (is_warning_enabled): New function. (cp_thing): Take an error_code, not a format string. Output the diagnostic code if flag_diag_codes. (cp_error, cp_compiler_error, cp_sprintf, cp_error_at): Take error_codes, not format strings. (cp_warning, cp_pedwarn, cp_warning_at, cp_pedwarn_at): Likewise. Call is_warning_enabled. * decl2.c (flag_diag_codes): New variable. (lang_decode_option): Handle -fdiag-codes and -Wnumber. * lang-options.h: Add -fdiag-codes, -fno-diag-codes, and -W-number-, and -Wno-number. * class.c: Update all calls to error-functions. * cvt.c: Likewise. * decl.c: Likewise. * decl2.c: Likewise. * except.c: Likewise. * expr.c: Likewise. * friend.c: Likewise. * lex.c: Likewise. * parse.y: Likewise. * pt.c: Likewise. * repo.c: Likewise. * rtti.c: Likewise. * search.c: Likewise. * semantics.c: Likewise. * sig.c: Likewise. * tree.c: Likewise. * typeck.c: Likewise. * typeck2.c: Likewise. * xref.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@22304 138bc75d-0d04-0410-961f-82ee72b054a4
* * cp-tree.h (set_identifier_local_value): Provide prototype.law1998-08-171-2/+2
| | | | | | | | * decl2.c (do_namespace_alias): Remove unused variables `binding' and `old'. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@21786 138bc75d-0d04-0410-961f-82ee72b054a4
* * Make-lang.in (g++): Depend on mkstemp.o. Link in mkstemp.olaw1998-06-271-2/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@20754 138bc75d-0d04-0410-961f-82ee72b054a4
* * Make-lang.in (c++.all.build): Don't depend on $(DEMANGLER_PROG),law1998-04-171-1/+1
| | | | | | | which requires a working target compiler to build. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@19260 138bc75d-0d04-0410-961f-82ee72b054a4
* * call.c: Include system.h. Remove includes, declarations andlaw1998-03-311-1/+2
| | | | | | | | | | | | | | | defines provided by system.h. * class.c, cvt.c, decl.c, decl2.c, errfn.c error.c: Likewise. * except.c, expr.c friend.c, g++spec.c, init.c, input.c: Likewise. * lex.c, parse.y, pt.c, ptree.c repo.c rtti.c, search.c: Likewise. * semantics.c, sig.c, spew.c, tree.c, typeck.c: Likewise. * typeck2.c, xref.c: Likewise. * Makefile.in: Dependencies updated as appropriate. * Make-lang.in: Likewise. system.h cutover from the cp subdir git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@18917 138bc75d-0d04-0410-961f-82ee72b054a4
* * cplus-dem.c (optable): Add sizeof.mmitchel1998-03-241-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (demangle_template_value_parm): New function containing code previously found in demangle_template. (demangle_integral_value): New function which handles complicated integral expressions. (demangle_template): Use them. * error.c (dump_expr): Remove unused variable `l'. * pt.c (for_each_template_parm): New function, created by converting uses_template_parms. (tree_fn_t): New typedef. (uses_template_parms): Use it. (mark_template_parm): New function. (push_template_decl): Check that the argument list of a partial specialization uses all the template parameters. * Make-lang.in (c++filt): Don't delete cxxmain.c after we're done with it; we might want it for debugging. * cp-tree.h (type_unification): Change interface. * class.c (finish_struct_1): Skip nested template types, just like ordinary nested types. (instantiate_type): Use new interface to type_unification. * lex.c (init_lex): Add __sz as opname for sizeof. * method.c (build_overload_scope_ref): New function. (build_overload_int): Handle complex expressions. Set numeric_output_need_bar if necessary. (build_overload_value): Handle non-PARM_DECL nodes; this routine is now used by build_overload_int. Remove some assignments to numeric_output_need_bar. Use build_overload_scope_ref. (build_qualified_name): Note that some template mangled names end with digits, and set numeric_output_need_bar appropriately. Use build_underscore_int. * pt.c (unify): Change interface. (type_unification_real): Likewise. (determine_specialization): Use new interfaces. (tsubst): Deal gracefully with situations in which the argument vector is not fully filled. (fn_type_unification): Use new interfaces. (type_unification): Likewise. Remove NOP_EXPR hack. (type_unification_real): Likewise. (unify): Likewise. Deal with unification of complex expresions. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@18795 138bc75d-0d04-0410-961f-82ee72b054a4
* * Makefile.in: Various fixes for building cygwin32 native toolchains.law1998-03-211-15/+15
| | | | | | | * Make-lang.in: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@18745 138bc75d-0d04-0410-961f-82ee72b054a4
* * semantics.c: New file, containing routines to perform themmitchel1998-03-181-1/+1
| | | | | | | | | | | | | | semantic phase of parsing. * parse.y: Use it. * pt.c (tsubst_expr): Likewise. * cp-tree.h: Declare the various functions in semantics.c. Provide macros to access _STMT tree nodes. * cp-tree.def: Add ASM_STMT tree node. * Makefile.in, Make-lang.in: Add dependencies on and for semantics.c. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@18658 138bc75d-0d04-0410-961f-82ee72b054a4
* Support for friend templates.jason1998-02-231-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * typeck.c (build_x_function_call): Handle static member function templates like non-templates. Handle friend templates like normal function templates. * pt.c (tsubst, *_PARM): Don't use orig_level. (get_bindings): Don't call add_to_template_args. (instantiate_template): Likewise. (tsubst, FUNCTION_DECL): Call add_to_template_args as appropriate. * ptree.c (print_lang_type): Print index/level for template parms. * Make-lang.in (cc1plus): Note that cc1plus depends on cp/cp-tree.h and cp/cp-tree.def. * cp-tree.def (TEMPLATE_CONST_PARM): Remove. (TEMPLATE_PARM_INDEX): New tree code, used to indicate a position in a template parameter list. * cp-tree.h (template_parm_index): New structure, used as the tree structure for a TEMPLATE_PARM_INDEX. (TEMPLATE_PARM_IDX): New macro. (TEMPLATE_PARM_LEVEL): Likewise. (TEMPLATE_PARM_DESCENDANTS): Likewise. (TEMPLATE_PARM_ORIG_LEVEL): Likewise. (TEMPLATE_PARM_DECL): Likewise. (TEMPLATE_TYPE_PARM_INDEX): Likewise. (TEMPLATE_TYPE_ORIG_LEVEL): Likewise. (TEMPLATE_TYPE_DECL): Likewise. (TEMPLATE_CONST_IDX): Remove. (TEMPLATE_CONST_LEVEL): Likewise. (TEMPLATE_CONST_SET_INFO): Likewise. (TEMPLATE_TYPE_SET_INFO): Likewise. (TEMPLATE_TYPE_IDX): Redefine in terms of TEMPLATE_PARM_INDEX node. (TEMPLATE_TYPE_LEVEL): Likewise. * decl.c (decls_match): Call comp_template_parms, rather than expanding it inline. (duplicate_decls): If two template declarations are being merged, then their TEMPLATE_INFOs should be merged as well. (grokfndecl): Save template-id information when declaring a friend with explicit template arguments. Pass arguments to check_explicit_specialization via correct convention; at some point check_explicit_specialization changed, but these call-sites did not. (grokdeclarator): Tidy up slightly. * decl2.c (check_classfn): Tidy up slightly. Don't assume that two template functions with the same DECL_ASSEMBLER_NAME the same, since the names are not yet mangled. * error.c (dump_decl): Use TEMPLATE_PARM_INDEX instead of TEMPLATE_CONST_PARM. (dump_expr): Likewise. Use the TEMPLATE_PARM_DECL to get at the decl for a non-type parameter, rather than printing `<tparm ...>'. * friend.c (is_friend): Handle TEMPLATE_DECL friends. (do_friend): Deal with template friends. * lex.c (do_pending_inlines): Call maybe_begin_member_template_processing, rather than conditionally calling begin_member_template_processing. (process_next_inline): Likewise. Call maybe_end_member_template_processing, rather than conditionally calling end_member_template_processing. (do_pending_defargs): Likewise. (do_identifier): Use TEMPLATE_PARM_INDEX instead of TEMPLATE_CONST_PARM. * method.c (build_mangled_template_parm_index): New function. (build_overload_value): Use it. (build_overload_name): Likewise. * pt.c (finish_member_template_decl): Allow friend declarations. (template_class_depth): New function. (is_member_template): Rename, and modify, to become... (is_member_or_friend_template): New function. (end_member_template_processing): Rename, and modify, to become... (maybe_end_member_template_processing). (build_template_parm_index): New function. (reduce_template_parm_level): New function. (process_template_parm): Modify to use build_template_parm_index. (current_template_args): Change name to current_template_parms. (push_template_decl): Deal with friend templates. (uses_template_parms): Use TEMPLATE_PARM_INDEX instead of TEMPLATE_CONST_PARM. (tsubst_friend_function): New function. (instantiate_class_template): Generate the DECL_FRIENDLIST for a new instantiation by using tsubst_friend_function rather than just tsubst. (tsubst): Don't tsubst into a type which is a TEMPLATE_DECL. Use TEMPLATE_PARM_INDEX instead of TEMPLATE_CONST_PARM, and the appropriate new macros. Use reduce_template_parm_level to generate lower-level template parameters. Handle tsubst'ing into TEMPLATE_DECLS that declare TEMPLATE_TEMPLATE_PARMS. Don't forget to tsubst the DECL_CONTEXT and DECL_CLASS_CONTEXT of newly created templates. Similarly for the template parameters for a new template. (tsubst_copy): Tidy up slightly. Use TEMPLATE_PARM_INDEX instead of TEMPLATE_CONST_PARM. Handle TYPE_DECLs by tsubsting into them. (unify): Use TEMPLATE_PARM_INDEX instead of TEMPLATE_CONST_PARM. (get_bindings): Call add_to_template_args if necessary. (instantiate_decl): Handle instantiations of friend templates. * search.c (lookup_field_1): Don't treat the TYPE_FIELDS of a TEMPLATE_TYPE_PARM as a list of fields; it's not! * spew.c (yylex): Do a little manual constant propogation to clarify the code. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@18198 138bc75d-0d04-0410-961f-82ee72b054a4
* * Make-lang.in (DEMANGLER_INSTALL_NAME, DEMANGLER_CROSS_NAME): Newjason1998-02-141-2/+15
| | | | | | | | | | macros. (c++.install-common): Install c++filt properly as native or as cross variant. (c++.uninstall): Add c++filt. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@18000 138bc75d-0d04-0410-961f-82ee72b054a4
* * cp-tree.h: Add access_protected_virtual_node.jason1998-02-131-1/+3
| | | | | | | | | | | * class.c (init_class_processing): Initialize it. * decl.c (xref_basetypes): Use it. * parse.y (base_class_access_list): Likewise. * Make-lang.in (DEMANGLER_PROG): Add $(exeext). (c++.install-common): Install c++filt. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@17894 138bc75d-0d04-0410-961f-82ee72b054a4
* Merge from gcc-2.8law1997-12-071-2/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@16987 138bc75d-0d04-0410-961f-82ee72b054a4
* ./:jason1997-11-201-5/+24
| | | | | | | | | | | | | | | | | | | | | | | * Makefile.in (LIB2FUNCS): Remove C++ memory management support. * libgcc2.c: Remove __builtin_new, __builtin_vec_new, set_new_handler, __builtin_delete, and __builtin_vec_delete. * except.c (output_exception_table): Don't bother with __EXCEPTION_END__. cp/: * Make-lang.in (CXX_LIB2FUNCS): Add new op new and op delete objs. (various.o): Likewise. * inc/new: Add placement deletes. Add throw specs for default new. * new.cc (set_new_handler): Move here from libgcc2. * new1.cc (new (nothrow)): Catch a bad_alloc thrown from the handler. (new): Move from libgcc2. Throw bad_alloc. * new2.cc: Move the rest of the op news and op deletes from libgcc2. * decl.c (init_decl_processing): Update exception specs on new and delete. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@16617 138bc75d-0d04-0410-961f-82ee72b054a4
* * stmt.c (expand_decl_cleanup_no_eh): New fn.jason1997-11-101-1/+7
| | | | | | | | | | | | | | | | | | | | | | * except.c (expand_leftover_cleanups): do_pending_stack_adjust. Complete nested exception support. * except.c (do_pop_exception): Split out... (push_eh_cleanup): From here. Handle the EH region by hand. (expand_start_catch_block): Add a new level for the catch parm. Move the rethrow region outside the two cleanup regions. Protect the initializer for the catch parm with terminate. (expand_end_catch_block): Likewise. End the region for the eh_cleanup. * exception.cc (__cp_pop_exception): Now takes two parms. Handle popping off the middle of the stack. * tree.c (lvalue_p, real_lvalue_p): Handle TRY_CATCH_EXPR, WITH_CLEANUP_EXPR, and UNSAVE_EXPR. (build_cplus_new): Only wrap CALL_EXPRs. * init.c (expand_default_init): Handle a TRY_CATCH_EXPR around the constructor call. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@16419 138bc75d-0d04-0410-961f-82ee72b054a4
* Update mainline egcs to gcc2 snapshot 971021.law1997-11-021-2/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@16278 138bc75d-0d04-0410-961f-82ee72b054a4
* Add Fred Fish's LN/LN_S patch.wilson1997-09-111-10/+5
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@15415 138bc75d-0d04-0410-961f-82ee72b054a4
* mergejason1997-08-191-0/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@14852 138bc75d-0d04-0410-961f-82ee72b054a4
* 92th Cygnus<->FSF quick mergemrs1997-08-011-10/+12
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@14576 138bc75d-0d04-0410-961f-82ee72b054a4
* (cplib2.ready): Also depend on $(LANGUAGES).meyering1997-07-071-1/+1
| | | | | | | From H.J. Lu. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@14394 138bc75d-0d04-0410-961f-82ee72b054a4
* 91th Cygnus<->FSF quick mergemrs1997-06-181-7/+7
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@14253 138bc75d-0d04-0410-961f-82ee72b054a4
* 91th Cygnus<->FSF mergemrs1997-04-231-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@13971 138bc75d-0d04-0410-961f-82ee72b054a4
* 90th Cygnus<->FSF quick mergemrs1997-04-021-2/+3
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@13831 138bc75d-0d04-0410-961f-82ee72b054a4
* 90th Cygnus<->FSF quick mergemrs1997-02-041-6/+13
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@13604 138bc75d-0d04-0410-961f-82ee72b054a4
* 90th Cygnus<->FSF quick mergemrs1996-12-271-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@13343 138bc75d-0d04-0410-961f-82ee72b054a4
* 90th Cygnus<->FSF quick mergemrs1996-12-181-5/+23
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@13321 138bc75d-0d04-0410-961f-82ee72b054a4
* 90th Cygnus<->FSF quick mergemrs1996-12-181-8/+9
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@13319 138bc75d-0d04-0410-961f-82ee72b054a4
* 89th Cygnus<->FSF quick mergemrs1996-10-181-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@12978 138bc75d-0d04-0410-961f-82ee72b054a4
* 89th Cygnus<->FSF quick mergemrs1996-09-301-0/+50
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@12883 138bc75d-0d04-0410-961f-82ee72b054a4
* 80th Cygnus<->FSF mergemrs1996-02-011-2/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@11150 138bc75d-0d04-0410-961f-82ee72b054a4