class.c (layout_class_method): Call build_java_argument_signature on constructors too.
Wed Dec 2 15:52:25 1998 Alexandre Petit-Bianco <apbianco@cygnus.com>
* class.c (layout_class_method): Call build_java_argument_signature
on constructors too.
* parse.y (check_method_redefinition): Use TYPE_ARGUMENT_SIGNATURE.
(patch_method_invocation): Define a primary when resolving an
expression name. Augmented comment on code checking illegal `this'
usage. Loosened it test by accepting NEW_CLASS_EXPR.
* c-common.c (declare_function_name): Declare predefinied variable
`__func__'.
* c-decl.c (flag_isoc9x): Set to 1 by default.
(c_decode_option): Handle -std= option. Remove -flang-isoc9x.
(grokdeclarator): Always emit warning about implicit int for ISO C 9x.
* c-parse.in: Allow constructors in ISO C 9x.
Rewrite designator list handling.
Allow [*] parameters.
Don't warn about comma at end of enum definition for ISO C 9x.
* cccp.c (c9x): New variable.
(rest_extension): New variable.
(print_help): Document new -std= option.
(main): Recognize -std= option. Set c9x appropriately.
(create_definition): Recognize ISO C 9x vararg macros.
* gcc.c (default_compilers): Adjust specs for -std options.
(option_map): Add --std.
(display_help): Document -std.
* toplev.c (documented_lang_options): Add -std and remove
-flang-isoc9x.
* c-lex.c (yylex): Recognize hex FP constants and call REAL_VALUE_ATOF
or REAL_VALUE_HTOF based on base of the constants.
* fold-const.c (real_hex_to_f): New function. Replacement function
for hex FP conversion if REAL_ARITHMETIC is not defined.
* real.c (asctoeg): Add handling of hex FP constants.
* real.h: Define REAL_VALUE_HTOF if necessary using ereal_atof or
real_hex_to_f.
Co-Authored-By: Richard Henderson <rth@cygnus.com> Co-Authored-By: Stephen L Moshier <moshier@world.std.com>
From-SVN: r24049
Jeffrey A Law [Tue, 1 Dec 1998 14:36:51 +0000 (14:36 +0000)]
reload1.c (reload): Do not set reload_completed or split insns here.
* reload1.c (reload): Do not set reload_completed or split insns
here. Instead...
* toplev.c (rest_of_compilation): Set reload_completed after
reload returns. Split insns after reload_cse has run.
class.c (layout_class_method): Don't report error on non-static overriding static if the method is private.
Tue Dec 1 13:53:24 1998 Alexandre Petit-Bianco <apbianco@cygnus.com>
* class.c (layout_class_method): Don't report error on non-static
overriding static if the method is private.
* java-tree.h (finish_class): Prototype added.
* lex.c (java_get_line_col): Handle col argument -2 value.
* parse.h: All static method declarations moved to parse.y.
* parse.y: Now contains all static method declarations previously
found in parse.h.
(find_expr_with_wfl, missing_return_error,
unreachable_stmt_error): New functions.
(java_get_real_method_name): Identify constructors bearing class
names in source code compiled classes only.
(java_complete_expand_methods): Call missing_return_error.
(invocation_mode): Private methods invoked as static methods.
(java_complete_tree): Call unreachable_stmt_error.
This patch corrects the way unreachable statement and missing return
statement errors are reported. It also fixes random bugs.
J"orn Rennecke [Tue, 1 Dec 1998 10:00:11 +0000 (10:00 +0000)]
local-alloc.c (function_invariant_p): New function.
* local-alloc.c (function_invariant_p): New function.
(update_equiv_regs): Use function_invariant_p instead of CONSTANT_P
to decide if an equivalence should be recorded.
* reload1.c (num_eliminable_invariants): New static variable.
(reload): Set it. Use function_invariant_p instead of CONSTANT_P
to decide if an equivalence should be recorded.
Unshare PLUS.
(calculate_needs_all_insns): Skip insns that only set an equivalence.
Take num_eliminable_invariants into account when deciding
if register elimination should be done.
(reload_as_needed): Take num_eliminable_invariants into account
when deciding if register elimination should be done.
(eliminate_regs): Handle non-constant reg_equiv_constant.
* rtl.h (function_invariant_p): Declare.
Jeff Law [Mon, 30 Nov 1998 01:38:10 +0000 (18:38 -0700)]
Fix cvs?
Fix cvs? lossage. Somehow the previous checkin scrogged this file. The
lossage caused the snapshot diff + patch sanity check to fail due to a bogus
.diff file.
Jason Merrill [Sun, 29 Nov 1998 15:30:30 +0000 (15:30 +0000)]
pt.c (unify, [...]): Pass down 'strict' rather than UNIFY_ALLOW_NONE.
* pt.c (unify, case OFFSET_TYPE): Pass down 'strict' rather than
UNIFY_ALLOW_NONE.
(convert_nontype_argument): Use TYPE_PTRMEMFUNC_FN_TYPE.
(resolve_overloaded_unification): Strip baselinks.
Fixes Sec14/10_2/P14264.C, Sec14/10_2/P14278.C, Sec14/10_2/C14413.cm.
Alexandre Oliva [Fri, 27 Nov 1998 12:10:39 +0000 (12:10 +0000)]
bitset: explicitly convert basic_string<...>::npos to size_t in default argument to...
* bitset: explicitly convert basic_string<...>::npos to size_t in
default argument to constructor, to avoid parse error at `>'
(__STL_EXPLICIT_FUNCTION_TMPL_ARGS): replace #if with #ifdef
Kaveh R. Ghazi [Fri, 27 Nov 1998 10:25:17 +0000 (10:25 +0000)]
Makefile.in (jc1, jv-scan): Link with $(SUBDIR_OBSTACK).
* Makefile.in (jc1, jv-scan): Link with $(SUBDIR_OBSTACK).
* jv-scan.c: Fix xmalloc prototype. Provide an xmalloc definition.
* jvgenmain.c: Remove the xmalloc prototype, we get it from
libiberty.h. Provide an xmalloc definition.
* jvspec.c: Remove the xmalloc prototype.
* parse-scan.y: Include config.h and system.h. Don't include
OS headers or gansidecl.h. Don't prototype xmalloc/xstrdup.
Provide an xstrdup definition.
Kaveh R. Ghazi [Fri, 27 Nov 1998 10:13:07 +0000 (10:13 +0000)]
fini.c: Rename variable `spaces' to `xspaces' to avoid conflicting with function...
* fini.c: Rename variable `spaces' to `xspaces' to avoid
conflicting with function `spaces' from libiberty.
* g77spec.c: Don't prototype libiberty functions.
* malloc.c: Likewise.
configure (skip-this-dir): Add handling for new shell script...
./ChangeLog:1998-11-26 Manfred Hollstein <manfred@s-direktnet.de>
* configure (skip-this-dir): Add handling for new shell script, which
might be created by a sub-directory's configure to indicate, this particular
directory is "unwanted".
* Makefile.in ($(CONFIGURE_TARGET_MODULES)): Likewise.
./gcc/ChangeLog:1998-11-26 Manfred Hollstein <manfred@s-direktnet.de>
* Makefile.in (CONFIG_LANGUAGES): New macro taking all languages
which can be configured.
(LANGUAGES): Use $(CONFIG_LANGUAGES) instead of @all_languages@
(Makefile): Pass actual LANGUAGES through the environment when
re-configuring.
(cstamp-h): Likewise.
(config.status): Likewise.
* configure.in (enable_languages): Add new configuration parameter
"--enable-languages=lang1,lang2,...".
(${srcdir}/*/config-lang.in): Change handling to configure only
those directories, that the user might have enabled; default to
"all" existing languages.
* configure: Regenerate.
./libchill/ChangeLog:1998-11-26 Manfred Hollstein <manfred@s-direktnet.de>
* configure.in (compiler_name): Add check to detect if this
language's compiler has been built.
* configure: Regenerate.
./libf2c/ChangeLog:1998-11-26 Manfred Hollstein <manfred@s-direktnet.de>
* configure.in (compiler_name): Add check to detect if this
language's compiler has been built.
* configure: Regenerate.
./libio/ChangeLog:1998-11-26 Manfred Hollstein <manfred@s-direktnet.de>
* configure.in (compiler_name): Add check to detect if this
language's compiler has been built.
./libobjc/ChangeLog:1998-11-26 Manfred Hollstein <manfred@s-direktnet.de>
* configure.in (compiler_name): Add check to detect if this
language's compiler has been built.
* configure: Regenerate.
./libstdc++/ChangeLog:1998-11-26 Manfred Hollstein <manfred@s-direktnet.de>
* configure.in (compiler_name): Add check to detect if this
language's compiler has been built.
* rtlanal.c (regs_set_between_p): New function.
* rtl.h (regs_set_between_p): Prototype it.
* jump.c (jump_optimize): Use it instead of modified_between_p
in the Sep 2 change.
Michael Hayes [Wed, 25 Nov 1998 21:32:27 +0000 (21:32 +0000)]
loop.h (precondition_loop_p): Added new mode argument.
* loop.h (precondition_loop_p): Added new mode argument.
* unroll.c (precondition_loop_p): Likewise.
(approx_final_value): Function deleted and subsumed
into loop_iterations.
(loop_find_equiv_value): New function.
(loop_iterations): Use loop_find_equiv_value to find increments
too large to be immediate constants. Also use it to find terms
common to initial and final iteration values that can be removed.
Michael Hayes [Wed, 25 Nov 1998 21:19:21 +0000 (21:19 +0000)]
loop.h (struct loop_info): Define new structure.
* loop.h (struct loop_info): Define new structure.
(precondition_loop_p): Added prototype.
(unroll_loop): Added new argument loop_info to prototype.
(final_biv_value, final_giv_value): Added new argument n_iterations
to prototype.
* loop.c (strength_reduce): Declare new structure loop_iteration_info
and new pointer loop_info.
(loop_n_iterations): Replace global variable by element in
loop_info structure.
(check_final_value): New argument n_iterations.
(insert_bct): New argument loop_info.
(loop_unroll_factor): Replace global array by element in
loop_info structure.
(loop_optimize): Remove code to allocate and initialise
loop_unroll_factor_array.
* unroll.c (precondition_loop_p): No longer static since
used by branch on count optimization.
(precondition_loop_p, unroll_loop): New argument loop_info.
(final_biv_value, final_giv_value, find_splittable_regs): New
argument n_iterations.
(loop_iteration_var, loop_initial_value, loop_increment,
loop_final_value, loop_comparison_code, loop_unroll_factor):
Replaced global variables by loop_info structure.
(loop_unroll_factor): Replace global array by element in
loop_info structure.
Michael Hayes [Wed, 25 Nov 1998 20:51:09 +0000 (20:51 +0000)]
loop.c (check_dbra_loop): Update JUMP_LABEL field of jump insn when loop reversed.
* loop.c (check_dbra_loop): Update JUMP_LABEL field of jump insn
when loop reversed.
* unroll.c (precondition_loop_p): Return loop_initial_value
for initial_value instead of loop_iteration_var.
Michael Hayes [Wed, 25 Nov 1998 20:21:49 +0000 (20:21 +0000)]
c4x.md: Fix minor formatting problems.
* config/c4x/c4x.md: Fix minor formatting problems. Update docs.
(*b, *b_rev, *b_noov, *b_noov_rev, *db,
decrement_and_branch_until_zero, rptb_end): Use c4x_output_cbranch
to output the instruction sequences.
(rpts): Delete.
(rptb_top): Provide alternatives to use any register or memory
for loop counter.
(rptb_end): Emit use of operands rather than assigning them
explicitly to the RS and RE registers.
Michael Hayes [Wed, 25 Nov 1998 19:59:39 +0000 (19:59 +0000)]
c4x.c: (c4x_override_options): For compatibility with old target options clear...
* config/c4x/c4x.c: (c4x_override_options): For compatibility
with old target options clear flag_branch_on_count_reg if
-mno-rptb specified and set flag_argument_alias is -mno-aliases
specified.
(c4x_output_cbranch): Handle a sequence of insns rather than a
single insn.
(c4x_rptb_insert): Do not emit a RPTB insn if the RC register
has not been allocated as the loop counter.
(c4x_address_conflict): Do not allow two volatile memory references.
(valid_parallel_operands_4, valid_parallel_operands_5,
valid_parallel_operands_6): Reject pattern if the register destination
of the first set is used as part of an address in the second set.
Zack Weinberg [Wed, 25 Nov 1998 11:56:54 +0000 (11:56 +0000)]
cpplib.h: Delete struct import_file.
Wed Nov 25 14:54:46 1998 Zack Weinberg <zack@rabi.phys.columbia.edu>
* cpplib.h: Delete struct import_file. Add ihash element to
struct cpp_buffer. Delete dont_repeat_files and
import_hash_table elements from cpp_reader; change
all_include_files to a hash table. Delete all foobar_include
/ last_foobar_include elements from struct cpp_options; put
back four such: quote_include, bracket_include,
system_include, after_include. Redo struct file_name_list
completely. Add new structure type include_hash. Add
prototypes for merge_include_chains and include_hash. Change
prototypes for finclude, find_include_file, and
append_include_chain to match changes below.
* cppfiles.c (simplify_pathname, include_hash,
remap_filename, merge_include_chains): New functions.
(add_import, lookup_import, open_include_file): Removed.
(INO_T_EQ): Define this (copied from cccp.c).
(hack_vms_include_specification): Remove all calls and #if 0
out the definition. It was being called incorrectly and at
the wrong times. Until a VMSie can look at this, it's better
to not pretend to support it.
(append_include_chain): Change calling convention; now takes
only one directory at a time, and sets up the data structure
itself.
(redundant_include_p): Rewritten - this is now used for all
include redundancy, whether by #ifndef, #import, or #pragma
once. Looks up things in the include hash table.
(file_cleanup): Decrement pfile->system_include_depth here if
it's >0.
(find_include_file): Calling convention changed; now passes
around a struct include_hash instead of 3 separate parameters.
Guts ripped out and replaced with new include_hash mechanism.
(finclude): Calling convention changed as for
find_include_file. Error exits pulled out-of-line. Reformat.
(safe_read): Return a long, not an int.
(deps_output): Don't recurse.
* cpplib.c (is_system_include): Deleted.
(path_include): Fix up call to append_include_chain.
(do_include): Fix up calls to find_include_file and finclude.
Clean up dependency output a bit. Shorten obnoxiously lengthy
#import warning message. Don't decrement
pfile->system_include_depth here.
(do_pragma): Understand the include_hash structure. Reformat.
(do_endif): Correct handling of control macros. Understand
the include_hash.
(cpp_start_read): Fix up calls to finclude. Call
merge_include_chains.
(cpp_handle_option): Fix up calls to append_include_chain.
Understand the four partial include chains.
(cpp_finish): Add debugging code (#if 0-ed out) for the
include_hash.
(cpp_cleanup): Free the include_hash, not the import hash and
the all_include and dont_repeat lists which no longer exist.
Jeff Law [Wed, 25 Nov 1998 10:31:24 +0000 (03:31 -0700)]
toplev.c (no_new_pseudos): Define.
* toplev.c (no_new_pseudos): Define.
(rest_of_compilation): Set no_new_pseudos as needed.
* emit-rtl.c (gen_reg_rtx): Abort if we try to create a new pseudo
if no_new_pseudos is set.
* rtl.h (no_new_pseudos): Declare it.
* reload1.c (reload): Update comments.
* md.texi: Corresponding changes.
* reload1.c (reg_used_in_insn): Renamed from reg_used_by_pseudo.
(choose_reload_regs): Rename it here as well. When computing it,
also merge in used hardregs.
Dave Love [Wed, 25 Nov 1998 10:05:05 +0000 (10:05 +0000)]
u77-test.f (main): Avoid testing [f]statb element, which fails on some systems.
1998-11-25 Dave Love <d.love@dl.ac.uk>
* g77.f-torture/execute/u77-test.f (main): Avoid testing [f]statb
element, which fails on some systems.
* g77.f-torture/execute/labug1.f: New test.