* collect2.c (ldd_file_name): Bracket declaration with same
manifests as use.
(full_real_ld_suffix): Deleted. Variable was calloced and
written into, but never read.
From-SVN: r18202
* 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.
From-SVN: r18198
* com.c (ffecom_char_args_x_): Renamed from ffecom_char_args_,
which is now a macro (to avoid lots of changes to other code)
with new arg, ffecom_char_args_with_null_ being another new
macro to call same function with different value for new arg.
This function now appends a null byte to opCONTER expression
if the new arg is TRUE.
(ffecom_arg_ptr_to_expr): Support NULL length pointer.
* ste.c (ffeste_io_cilist_):
(ffeste_io_icilist_): Pass NULL length ptr for
FORMAT expression, so null byte gets appended where
feasible.
* target.c (ffetarget_character1):
(ffetarget_concatenate_character1):
(ffetarget_substr_character1):
(ffetarget_convert_character1_character1):
(ffetarget_convert_character1_hollerith):
(ffetarget_convert_character1_integer4):
(ffetarget_convert_character1_logical4):
(ffetarget_convert_character1_typeless):
(ffetarget_hollerith): Append extra phantom null byte as
part of FFETARGET-NULL-BYTE kludge.
Yes, even more patches from Craig :-)
From-SVN: r18187
* Make-lang.in (f77.install-common): Don't install, and
don't uninstall existing, Info files if f/g77.info
doesn't exit. (This is a somewhat modified version
of an egcs patch on 1998-01-07 12:05:51 by Bruno Haible
<bruno@linuix.mathematik.uni-karlsruhe.de>.
From-SVN: r18185
* com.c (ffecom_arglist_expr_): Crash if non-supplied
optional arg isn't passed as an address.
Pass null pointer explicitly, instead of via ffecom routine.
If incoming argstring is NULL, substitute pointer to "0".
Recognize '0' as ending the usual arg stuff, just like '\0'.
* com.c (ffecom_arglist_expr_): Pass null pointers for optional
args which aren't supplied.
More patches from Craig.
From-SVN: r18183
/
* config/sparc/sol2-sld.h (LINKER_DOES_NOT_WORK_WITH_DWARF2):
Define this new symbol.
(DWARF2_DEBUGGING_INFO, DWARF_DEBUGGING_INFO): Do not #undef.
* toplev.c (main): Do not default to DWARF2_DEBUG with -ggdb if
LINKER_DOES_NOT_WORK_WITH_DWARF2 is defined.
From-SVN: r18180
d
* config/sparc/sol2-sld.h (LINKER_DOES_NOT_WORK_WITH_DWARF2):
Define this new symbol.
(DWARF2_DEBUGGING_INFO, DWARF_DEBUGGING_INFO): Do not #undef.
* toplev.c (main): Do not default to DWARF2_DEBUG with -ggdb if
LINKER_DOES_NOT_WORK_WITH_DWARF2 is defined.
From-SVN: r18179
P
* vmsbuild.com [REQUIRE_OFILES]: Synchronized with Makefile.in:
Add fnmatch.o and objalloc.o; remove vasprintf.o.
[config.h]: Define NEED_strsignal.
* functions.def: Correct argument types for strerror and
strsignal. Reported by Alex Gutman <agutman@emc.com>.
From-SVN: r18172
* cplus-dem.c (gnu_special): Don't get confused by .<digits>
strings that are not actually lengths.
* config/mh-cygwin32: remove vasprintf.o from EXTRA_OFILES
since it gets built automatically
* vasprintf.c (int_vasprintf): Increase buffer size for float/double
values.
From-SVN: r18171
* alloca-norm.h (alloca, GCC case): Don't redefine alloca if it
was alr eady defined previously.
* Makefile.in (INSTALL): Use ../install-sh, not install.
From-SVN: r18170
* configure.in: For *-*-cygwin32*, add a -I for winsup to both
XCINCLUDES and XCXXINCLUDES.
* config.shared: Use ${host_includes} when setting CXXINCLUDES in
the DOING_LIBGXX case.
* Makefile.in (_G_config.h): Pass $(CINCLUDES) in CC and
$(CXXINCLUDES) in CXX when running gen-params.
* config.shared (THIS_FILE): Really found via TOLIBIO instead
of TOLIBCXX, which is empty when configuring gperf.
(LIBS): When linking gperf, find libstdc++ relative to TO_TOPDIR
instead of hardcoded "../".
From-SVN: r18168
* ropeimpl.h: Check __STL_PTHREADS instead of _PTHREADS.
* stl_alloc.h: Ditto.
* stl_config.h: Ditto.
* stl_rope.h: Ditto.
* stl_config.h: include <_G_config.h> if __GNUG__ is defined.
(__STL_PTHREADS): Defined if _PTHREADS is defined or
__GLIBC__ >= 2.
From-SVN: r18138
Thu Feb 19 22:36:53 1998 Andrey Slepuhin <pooh@msu.net>
David Edelsohn <edelsohn@mhpcc.edu>
* collect2.c (XCOFF_SCAN_LIBS): Remove.
(export_flag): New variable.
(export_file): #ifdef COLLECT_EXPORT_LIST.
(import_file, exports, imports, undefined): New variables.
(libs, cmdline_lib_dirs, libpath_lib_dirs, libpath, libexts): Same.
(dump_list, dump_prefix_list, is_in_list): New functions.
(write_export_file): $ifdef COLLECT_EXPORT_LIST.
(write_import_file, resolve_lib_name): New functions.
(use_import_list, ignore_library): Same.
(collect_exit): maybe_unlink import_file and #ifdef.
(handler): Same.
(main): New variable importf, #ifdef exportf. Move parsing of
-shared before general argument parsing. Resolve AIX library
paths and import libgcc.a symbols. Treat .so shared libraries the
same as objects and .a libraries. Create alias for object_lst and
increment it instead of original pointer. Scan AIX libraries as
objects earlier instead of using scan_libraries. Perform AIX
tlink later to resolve templates instead of forking ld.
(GCC_OK_SYMBOL): Ensure symbol not in undef section.
(GCC_UNDEF_SYMBOL): New macro.
(scan_prog_file): Loop for members of AIX libraries. Handle
export/import of ctors/dtors.
(aix_std_libs): New variable.
(scan_libraries, XCOFF): Delete.
Fri Feb 19 22:36:52 1998 Robert Lipe <robertl@dgii.com>
* collect2.c (full_real_ld_suffix): #ifdef CROSS_COMPILE.
From-SVN: r18128