Nathan Sidwell [Thu, 11 Jan 2001 12:29:20 +0000 (12:29 +0000)]
call.c (convert_default_arg): Check for unprocessed DEFAULT_ARG.
cp:
* call.c (convert_default_arg): Check for unprocessed
DEFAULT_ARG.
* cp-tree.h (replace_defarg): Move to spew.c.
(maybe_snarf_defarg, add_defarg_fn, do_pending_defargs): Move to
spew.c, which is where they really are.
(done_pending_defargs): Declare.
(unprocessed_defarg_fn): Declare.
* decl.c (replace_defarg): Move to spew.c
* parse.y (structsp): Call done_pending_defargs.
* spew.c (defarg_fns): Rearrange list structure.
(defarg_fnsdone): New static variable.
(defarg_depfns): New static variable.
(init_spew): Adjust.
(add_defarg_fn): Store the type in TREE_TYPE.
(do_pending_defargs): Detect and deal with ordering constraints
and circularity.
(done_pending_defargs): New function.
(unprocessed_defarg_fn): New function.
(replace_defarg): Moved from decl.c. Robustify. Don't save
if circularity detected.
testsuite:
* g++.old-deja/g++.other/defarg7.C: New test.
* g++.old-deja/g++.other/defarg8.C: New test.
Nathan Sidwell [Thu, 11 Jan 2001 11:29:06 +0000 (11:29 +0000)]
parse.y (template_parm_header, [...]): New reductions.
cp:
* parse.y (template_parm_header, template_spec_header): New
reductions. Split out from ...
(template_header): ... here. Use them.
(template_template_parm): Use template_parm_header.
* semantics.c (finish_template_template_parm): Add assert.
testsuite:
* g++.old-deja/g++.pt/crash63.C: New test.
Bryce McKinlay [Thu, 11 Jan 2001 03:00:56 +0000 (03:00 +0000)]
parse.y (resolve_expression_name): Permit instance variables from enclosing context in super constructor call.
* parse.y (resolve_expression_name): Permit instance variables from
enclosing context in super constructor call.
(resolve_qualified_expression_name): Permit enclosing class's
qualified "this" in super constructor call.
Neil Booth [Wed, 10 Jan 2001 23:28:00 +0000 (23:28 +0000)]
Makefile.in (tradcpp0): Depend on mkdeps.h.
* Makefile.in (tradcpp0): Depend on mkdeps.h. Link mkdeps.o
* cppinit.c (cpp_start_read): Update comment, remove unneeded
if statement.
* tradcpp.c: Include mkdeps.h.
(deps, print_deps_phony_targets, deps_append, output_deps,
init_dependency_output, output_deps): New.
(deps_buffer, deps_allocated_size, deps_size, deps_column,
deps_output): Delete.
(print_deps_missing_files): Rename deps_missing_files.
(inhibit_output): Make global.
(main): Delete inhibit_output, deps_stream, deps_target.
Use mkdeps functionality in the same way as cpplib. Remove
-g3 handling. Handle -MF, -MP, -MQ, -MT. Update handling of
-M and -MM. Remove old handling of deps via deps_out, and
old reading of environment variables.
(get_filename): Update to use deps_add_dep.
* com.c (ffecom_init_zero_): Remove last argument in call to
make_decl_rtl; use make_function_rtl instead of make_decl_rtl.
(ffecom_lookup_label_): Likewise.
(builtin_function): Likewise.
(start_function): Likewise.
* class.c (build_utf8_ref): Remove last argument in call to
make_decl_rtl; use make_function_rtl instead of make_decl_rtl.
(build_class_ref): Likewise.
(build_static_field_ref): Likewise.
(get_dispatch_table): Likewise.
(layout_class_method): Likewise.
(emit_register_classes): Likewise.
* constants.c (build_constant_data_ref): Likewise.
* decl.c (builtin_function): Likewise.
(create_primitive_vtable): Likewise.
* expr.c (build_known_method_def): Likewise.
(build_jni_stub): Likewise.
(java_lang_expand_expr): Likewise.
* decl2.c (acceptable_java_type): Allow references too.
* init.c (build_java_class_ref): When using the new ABI, search
`class$' and have it mangled with `mangle_decl.'
* mangle.c (write_java_integer_type_codes): New function.
(write_builtin_type): Detect and mangle Java integer and real
types.
* java-tree.h (lang_printable_name_wls): New prototype.
* lang.c (put_decl_name): Removed dead code. Use DECL_CONTEXT
rather than `current_class' to print type name. Don't prepend type
names when printing constructor names.
(lang_printable_name_wls): New function.
* jcf-parse.c (jcf_parse_source): Pass NULL `file' argument to
`build_expr_wfl', alway set EXPR_WFL_FILENAME_NODE.
* parse.y (patch_method_invocation): Message tuned for constructors.
(not_accessible_p): Grant `private' access from within
enclosing contexts.
Joseph Myers [Wed, 10 Jan 2001 10:54:02 +0000 (10:54 +0000)]
gcc.texi: Define macro gcctabopt.
gcc:
* gcc.texi: Define macro gcctabopt.
* invoke.texi: Add manpage sections BUGS and AUTHOR. Use
@command, @env and @option in some places where appropriate. Use
@gcctabopt where appropriate. Put URLs and email addresses inside
@w.
contrib:
* texi2pod.pl: Handle @gcctabopt and @env in tables. Handle
@command. Format URLs and email addresses in bold.
Warren Levy [Wed, 10 Jan 2001 09:38:08 +0000 (09:38 +0000)]
re PR libgcj/1596 (setScale() missing from java.math.BigDecimal)
Fix for PR libgcj/1596:
* java/math/BigDecimal.java (divide): Check newScale for validity.
Ensure that BigInteger.pow() is called with a non-negative value.
(setScale (int)): New public method.
(setScale (int,int)): New public method.
Nathan Sidwell [Wed, 10 Jan 2001 08:18:10 +0000 (08:18 +0000)]
gcc.c (cpp_options): Set MD file name from output filename, if specified.
* gcc.c (cpp_options): Set MD file name from output
filename, if specified.
(suffix_subst): New static variable.
(do_spec): Clear it.
(do_spec_1, case '.'): Handle new `%.suffix' spec.
Clear it.
(give_switch): Handle suffix_subst.
* gcc.dg/20000419-2.c: Move to "special" subdirectory.
* gcc.dg/special/20000419-2.c: New file. Identical to above.
* gcc.dg/special/special.exp: New test driver which will check
for alias support for the above test.
Loren J. Rittle [Wed, 10 Jan 2001 02:08:16 +0000 (02:08 +0000)]
ctype_inline.h (is): (Make right code path:) Remove magic constants and restructure to handle...
* config/os/bsd/freebsd/bits/ctype_inline.h (is): (Make right
code path:) Remove magic constants and restructure to handle
ctype.h bit mask layout changes more gracefully. (Make fast
code path:) Use __maskrune (), if available.
(is): Remove special case for digit and xdigit masks.
* c-common.c (enum format_type): Add format_type_error.
(decode_format_type): New function.
(decl_attributes): Use it.
(format_kind_info): Adjust comment.
Kazu Hirata [Tue, 9 Jan 2001 20:17:02 +0000 (20:17 +0000)]
h8300.c (function_prologue): Fix code for a monitor function.
2001-01-09 Kazu Hirata <kazu@hxi.com>
* config/h8300/h8300.c (function_prologue): Fix code for a
monitor function. Support H8/S.
(function_epilogue): Do not output pop for a monitor function.
Kazu Hirata [Tue, 9 Jan 2001 20:02:35 +0000 (20:02 +0000)]
h8300.c (get_shift_alg): Remove an argument cpu.
2001-01-09 Kazu Hirata <kazu@hxi.com>
* config/h8300/h8300.c (get_shift_alg): Remove an argument cpu.
Change an argument mode of machine_mode to shift_mode of
shift_mode. Remove an extra error check.
(emit_a_shift): Adopt to the new calling prototype of
get_shift_alg.
Neil Booth [Tue, 9 Jan 2001 14:45:44 +0000 (14:45 +0000)]
cppinit.c (OPT_MD, OPT_MMD): Restore.
* cppinit.c (OPT_MD, OPT_MMD): Restore.
(cpp_handle_option): Handle them.
(cpp_post_options): Ensure one of -M or -MM is specified with
any other -M? option.
(init_dependency_output): Suppress output with -MG.
* cpp.texi: Update.
* invoke.texi: Update.
Nathan Sidwell [Tue, 9 Jan 2001 11:37:07 +0000 (11:37 +0000)]
class.c (handle_using_decl): Reject using of constructor name of sourcing class.
cp:
* class.c (handle_using_decl): Reject using of constructor name
of sourcing class. Allow injecting of a method with same name as
nested class. Fixup error messages.
testsuite:
* g++.old_deja/g++.pt/using8.C: New test.
Alexandre Oliva [Tue, 9 Jan 2001 10:31:32 +0000 (10:31 +0000)]
sh.h (STATIC_CHAIN_REGNUM): Change from r13 to r3.
* config/sh/sh.h (STATIC_CHAIN_REGNUM): Change from r13 to r3.
(INITIALIZE_TRAMPOLINE): Adjust accordingly.
* config/sh/sh.c (sh_expand_prologue): Use r1 as temporary for
stack adjusts, instead of r3.
Alexandre Oliva [Tue, 9 Jan 2001 03:01:56 +0000 (03:01 +0000)]
gen-num-limits.cc (signal_adapter): New template function.
* src/gen-num-limits.cc (signal_adapter): New template function.
(signal_handler): Use it, instead of signal.
(traps<T>): Likewise. Install SIGTRAP handler too. Don't
require both tests to trap to set trap_flag.
Benjamin Kosnik [Mon, 8 Jan 2001 23:51:57 +0000 (23:51 +0000)]
fpos.h (fpos:::fpos(streamoff __pos)): Explicitly initialize mbstate_t member, name offset data members *off, not pos.
2001-01-08 Benjamin Kosnik <bkoz@redhat.com>
* include/bits/fpos.h (fpos:::fpos(streamoff __pos)): Explicitly
initialize mbstate_t member, name offset data members *off, not pos.
* include/bits/fstream.tcc (filebuf::filebuf): Same.
Bryce McKinlay [Mon, 8 Jan 2001 23:28:56 +0000 (23:28 +0000)]
In gcc/java:
* class.c (make_class_data): Push initial value for "arrayclass".
* decl.c (init_decl_processing): Add new class field "arrayclass".
In libjava:
* java/lang/Class.h (_Jv_InitClass): Use __builtin_expect.
(_Jv_NewArrayClass): Renamed from _Jv_FindArrayClass.
(_Jv_GetArrayClass): New inline function.
(arrayclass): New field.
* prims.cc (_Jv_NewObjectArray): Use _Jv_GetArrayClass. Don't use
_Jv_GetArrayElementFromElementType.
(_Jv_NewPrimArray): Ditto.
(_Jv_PrimClass constructor): Initialize "depth", "ancestors", and
"idt" for completeness. Initialze "arrayclass" using _Jv_NewArrayClass.
Set Modifier::ABSTRACT.
* java/lang/natClassLoader.cc (_Jv_NewClass): Initialize "arrayclass".
(_Jv_NewArrayClass): Renamed from _Jv_FindArrayClass. Now void.
Now synchronized. Array classes are now referenced from
elementClass->arrayclass. Don't use _Jv_FindClassInCache.
Set array classes' accessibility flags correctly. Optimize so that
all array classes share the same IDT.
* java/lang/reflect/natArray.cc (newInstance): Use _Jv_GetArrayClass.
* java/lang/reflect/natMethod.cc (_Jv_GetTypesFromSignature): Ditto.
* java/lang/natClass.cc (_getFields): Increment offset. Prevent fields
in superclasses from overwriting classes own fields.
(_Jv_IsAssignableFrom): Check for NULL source idt instead of calling
Modifier::isAbstract().
(null_idt): New static field.
(_Jv_PrepareConstantTimeTables): Optimize case where class implements
no interfaces.
(_Jv_IndexOf): Made inline.
* boehm.cc (_Jv_MarkObj): Mark "arrayclass" field.
* arm.c (arm_arch5e): New variable.
(all_cores): XScale is a 5TE device.
(arm_override_options): Set arm_arch5e.
(arm_init_builtins): __builtin_prefetch is in arch5e.
* arm.h (arm_arch5e): Declare it.