* alpha.c (alpha_expand_prologue, alpha_expand_epilogue): New fns.
(output_prologue, output_epilogue): Merge VMS and OSF versions;
Remove anything related to the actual code generation.
(output_end_prologue): New function.
(alpha_sa_mask, alpha_sa_size): Merge VMS and OSF versions.
(alpha_does_function_need_gp): Return false for VMS.
(alpha_function_needs_gp): Make static.
(add_long_const): Delete.
(summarize_insn): Don't assume a SUBREG is of a REG.
Prototype all static functions. Rename VMS-specific global
variables vms_*.
* alpha.h (TARGET_CAN_FAULT_IN_PROLOGUE): Default to 0.
(FUNCTION_BOUNDARY): Align to cache line.
(LOOP_ALIGN, ALIGN_LABEL_AFTER_BARRIER): Align to octaword.
(FUNCTION_END_PROLOGUE): New macro.
* alpha.md (attribute length): New. Mark all insns.
(return_internal, prologue_stack_probe_loop) New patterns.
(prologue, init_fp, epilogue): New patterns.
Disable peepholes.
* linux.h (TARGET_CAN_FAULT_IN_PROLOGUE): Define.
From-SVN: r20528
* reload1.c (reload_reg_free_before_p): RELOAD_FOR_OUTADDR_ADDRESS
is earlier than RELOAD_FOR_OUTPUT_ADDRESS; RELOAD_FOR_INPADDR_ADDRESS
is earlier than RELOAD_FOR_INPUT_ADDRESS.
From-SVN: r20526
1998-06-16 Andrew MacLeod <amacleod@cygnus.com>
* decl.c (grokvardecl): Don't build external assembler names for
TYPENAMEs in other namespaces as there is no declarator.
* error.c (cp_file_of, cp_line_of): Don't extract file or line number
info from DECL_CONTEXT if it is NULL.
From-SVN: r20524
* method.c (hack_identifier): Don't let a class template out.
* call.c (check_dtor_name): Split out.
(build_scoped_method_call): Use it.
(build_method_call): Use it.
* init.c (build_offset_ref): Use it.
* typeck.c (build_static_cast): Fix handling of pointers to members.
* decl.c (finish_function): Just return nothing from a constructor.
* typeck.c (c_expand_return): Complain about returning a void
expression from a destructor.
From-SVN: r20521
Sat Jun 13 03:13:18 1998 Craig Burley <burley@gnu.org>
* g77spec.c (lang_specific_driver): Print out egcs
version info first, to be compatible with what some
test facilities expect.
From-SVN: r20508
Sat Jun 13 03:46:40 1998 Craig Burley <burley@gnu.org>
* Makefile.in (install): Don't install if $(libsubdir)
is empty; issue a diagnostic saying top-level Makefile
must pass it in instead, and exit.
* Makefile.in (g2c.h): Rename from f2c.h.
* Makefile.in, libF77/Makefile.in, libI77/Makefile.in,
libU77/Makefile.in: Rewrite config and var assignment
sections to be even more minimal than before, and to
more clearly documented what macros are expected to be
set and to what sorts of values. Eliminate CROSS and
related stuff, since there's no such things as CROSS
in egcs. Rename GCC_FOR_TARGET to CC throughout.
* Makefile.in (stamp-libi77, stamp-libf77, stamp-libu77):
Eliminate CROSS.
* configure.in: Eliminate CROSS.
Rename libf2c.a and f2c.h to libg2c.a and g2c.h,
normalize and simplify g77/libg2c build process:
* Makefile.in: Remove all stuff pertaining to
installation, cleaning, and so on. Parent Makefile
does all that now. Pass F2C_H_DIR,
G2C_H_DIR, and GCC_H_DIR, the pathnames for the
directories containing f2c.h, g2c.h, and other
#include files, to subdirectory Makefiles.
(stamp-libf77, stamp-libi77, stamp-libu77):
Don't specify `-f Makefile' anymore, it's not needed
now that subdirectory makefile's from netlib are
renamed to makefile.netlib in g77 source (and to
makefile.ori by configuration process, in case they're
still around somehow).
(stamp-libe77): Don't make libE77 dir unless it doesn't
exist, if it does just delete all objects in it.
Compile using $(GCC_FOR_TARGET), not $(CC).
(rebuilt): Remove this and all subordinate targets,
as parent Makefile now handles all that.
(*clean): Remove.
* configure.in (Pad_UDread, ALWAYS_FLUSH, WANT_LEAD_0):
Remove these and commentary to new f2c.h file.
AC_OUTPUT g2c.h instead of f2c.h. Remove old commentary
regarding concatenation.
* g2c.h.in: Rename from f2c.h.in, add appropriate
commentary.
* f2c.h: New file, a wrapper for g2c.h that does
libg2c-specific stuff.
* libF77/Makefile.in, libI77/Makefile.in, libU77/Makefile.in:
Change $(ALL_CFLAGS) to use F2C_H_DIR, G2C_H_DIR, and GCC_H_DIR
macros. Remove F2C_H macro, replace use with explicit
dependencies on f2c.h and g2c.h.
(*clean): Remove.
From-SVN: r20507
Thu May 28 21:32:18 1998 Craig Burley <burley@gnu.org>
Restore circa-0.5.22 capabilities of `g77' driver:
* Make-lang.in (g77spec.o): Depend on f/version.h.
(g77version.o): New rule to compile g77 version info.
(g77$(exeext)): Depend on and link in g77version.o.
* g77spec.c: Rewrite to be more like 0.5.22 version
of g77.c, making filtering of command line smarter
so mixed Fortran and C (etc.) can be compiled, verbose
version info can be obtained, etc.
* lang-specs.h (f77-version): New "language" to support
"g77 -v" command under new gcc 2.8 regime.
* lex.c (ffelex_file_fixed): If -fnull-version, just
substitute a "source file" that prints out version info.
* top.c, top.h: Support -fnull-version.
* lang-specs.h: Use "%O" instead of OO macro to specify
object extension. Remove old stringizing cruft.
* Make-lang.in (g77.c, g77spec.o, g77.o, g77$(exeext),
g77-cross$(exeext), f771,
$(srcdir)/f/g77.info, $(srcdir)/f/g77.dvi,
$(srcdir)/f/intdoc.texi,
f77.install-common, f77.install-info, f77.install-man,
f77.uninstall, $(G77STAGESTUFF), f77.stage1, f77.stage2,
f77.stage3, f77.stage4, f77.distdir): Don't do anything
unless user specified "f77" or "F77" in $LANGUAGES either
during configuration or explicitly. For convenience of
various tests and to work around lack of the assignment
"LANGUAGES=$(BOOT_LANGUAGES)" in the "make stage1" command
of "make bootstrap" in gcc, use a touch file named "lang-f77"
to communicate whether this is the case.
* Make-lang.in (F77_FLAGS_TO_PASS): Delete this macro,
replace with minimal expansion of its former self in
each of the two instances where it was used.
* Makefile.in (HOST_CC): Delete this definition.
* com.c (index, rindex): Delete these declarations.
* proj.h: (isascii): Delete this.
* Make-lang.in (f77.install-common): Warn if `f77-install-ok'
flag-file exists, since it no longer triggers any activity.
Rename libf2c.a and f2c.h to libg2c.a and g2c.h,
normalize and simplify g77/libg2c build process:
* Make-lang.in: Remove all support for overwriting
/usr/bin/f77 etc., or whatever the actual names are
via $(prefix) and $(local_prefix). (g++ overwrites
/usr/bin/c++, but then it's often the only C++ compiler
on the system; f77 often exists on systems that are
installing g77.)
(f77.realclean): Remove obsolete target.
(g77.c, g77$(exeext)): Minor changes to look more like g++'s
stuff.
(f771): Now built with srcdir=gcc/f, not srcdir=gcc, to be
more like g++ and such.
(f/Makefile): Removed, as g++ doesn't need this rule.
(f77.install-common): No longer install f77, etc.
(f77.install-man): No longer install f77.1.
(f77.uninstall): No longer uninstall f77, f77.1, etc.
(f77.stage1, f77.stage2, f77.stage3, f77.stage4): Do work
only if "f77" appears in $(LANGUAGES).
(Note: gcc's Makefile.in's bootstrap target should set
LANGUAGES=$(BOOT_LANGUAGES) when making the stage1 target.)
* Makefile.in: Update vis-a-vis gcc/cp/Makefile.in.
(none): Remove.
(g77-only): Relocate.
(all.indirect, f771, *.o): Now assumes current directory
is this dir (gcc/f), not the parent directory.
(TAGS): Remove "echo 'parse.y,0' >> TAGS ;" line.
* config-lang.in: Delete commented-out code.
Fix stagestuff definition. Add more stuff to
diff_excludes definition. Don't create any directories.
Set outputs to f/Makefile, to get variable substition
to happen (what does that really do, anyway?!).
* g77spec.c: Rename libf2c to libg2c.
* com.h: Remove all of the gcc back-end decls,
since egcs should have all of them correct.
* com.c: Include "proj.h" before anything else,
as that's how things are supposed to work.
* ste.c: Ditto.
* bad.c: Include "flags.j" here, since some diagnostics
check flag_pedantic_errors.
* Makefile.in (f/*.o): Rebuild dependencies via
deps-kinda.
* output.j: New source file.
* Make-lang.in (F77_SRCS): Update accordingly.
* Makefile.in (OUTPUT_H): Ditto.
(deps-kinda): Ditto.
* com.c: Include "output.j" here.
* lex.c: Ditto.
From-SVN: r20506
* class.c (alter_access): Accept a BINFO explaining how to get
from the entity whose accessed is being altered to the type doing
the altering.
(handle_using_decl): New function containing code split out from ...
(finish_struct_1): Here.
From-SVN: r20500
* cp-tree.h (complete_type_or_else): Declare.
* init.c (build_new_1, build_delete): Use it.
* typeck.c (require_complete_type): Use complete_type, rather than
expanding it inline.
(complete_type_or_else): New function.
(build_component_ref): Use it.
(pointer_int_sum): Make sure the type pointed to is complete.
(pointer_diff): Likewise.
From-SVN: r20499
* pt.c (check_explicit_specialization): If DECLARATOR turned into
an error_mark_node from lookup_template_function, return the same.
(determine_specialization): Also make sure TEMPLATE_ID isn't an
error_mark_node, before we try to read its operands.
* decl.c (grokdeclarator): If we got an error_mark_node from
check_explicit_specialization, just return it right back.
From-SVN: r20444
* mips.c (small_int): Mark parameter `mode' with ATTRIBUTE_UNUSED.
(large_int): Likewise.
(pc_or_label_operand): Likewise.
(call_insn_operand): Likewise.
(consttable_operand): Likewise.
(m16_uimm3_b): Likewise.
(m16_simm4_1): Likewise.
(m16_nsimm4_1): Likewise.
(m16_simm5_1): Likewise.
(m16_nsimm5_1): Likewise.
(m16_uimm5_4): Likewise.
(m16_nuimm5_4): Likewise.
(m16_simm8_1): Likewise.
(m16_nsimm8_1): Likewise.
(m16_uimm8_1): Likewise.
(m16_nuimm8_1): Likewise.
(m16_uimm8_m1_1): Likewise.
(m16_uimm8_4): Likewise.
(m16_nuimm8_4): Likewise.
(m16_simm8_8): Likewise.
(m16_nsimm8_8): Likewise.
(m16_usym8_4): Likewise.
(m16_usym5_4): Likewise.
(mips_move_1word): Change type of variable `i' from int to size_t.
(mips_move_2words): Likewise.
(output_block_move): Mark parameter `libname' with ATTRIBUTE_UNUSED.
(function_arg_advance): Use HOST_PTR_PRINTF to print an address.
(function_arg): Likewise.
(function_arg_partial_nregs): Mark parameter `named' with
ATTRIBUTE_UNUSED.
(override_options): Use ISDIGIT instead of isdigit.
(mips_output_external): Mark parameter `file' with ATTRIBUTE_UNUSED.
(final_prescan_insn): Likewise for parameters `opvec' and `noperands'.
(save_restore_insns): Cast HOST_WIDE_INT arguments passed to
function `fatal' to long before printing. Use
HOST_WIDE_INT_PRINT_DEC in fprintf. Both changes done several
times in this function.
(function_prologue): Mark parameter `size' with ATTRIBUTE_UNUSED.
(function_epilogue): Likewise for parameters `file' and `size'.
Print an int with "%d" not "%ld".
(mips_select_rtx_section): Mark parameter `x' with ATTRIBUTE_UNUSED.
(mips_function_value): Likewise for parameter `func'.
(function_arg_pass_by_reference): Likewise for parameters `cum'
and `named'.
(extend_operator): Likewise for parameter `mode'
(highpart_shift_operator): Likewise.
* mips.md (mul_acc_si): Remove unused variable `macc'.
From-SVN: r20443
* class.c (instantiate_type): Don't treat template-ids that don't
specify any template arguments as equivalent to ordinary
identifiers. Use OFFSET_REF instead of SCOPE_REF to refer to
pointer-to-members for member templates. Tidy slightly.
* cp-tree.def (TEMPLATE_ID_EXPR): Revise documentation.
* init.c (build_offset_ref): Handle template-ids like ordinary
identifiers, for the most part, but store a TEMPLATE_ID_EXPR in the
offset part of the OFFSET_REF.
* typeck.c (build_unary_op): Change check for unknown types to
look for OFFSET_REFs, not SCOPE_REFs.
From-SVN: r20442