Jakub Jelinek [Sat, 5 Oct 2002 18:55:54 +0000 (20:55 +0200)]
gcc.c (set_multilib_dir): Don't access *end.
* gcc.c (set_multilib_dir): Don't access *end.
Use memcpy instead of strncpy. Don't write beyond malloced buffer.
(print_multilib_info): Don't show paths starting with ".:".
* genmultilib: Add new option, "yes" if multilibs are enabled.
Update comments. If multilibs not enabled, print .:${osdirout}
for each directory. If multilibs are enabled, always print
${dirout}:${osdirout}, even if the two are the same.
* Makefile.in (s-mlib): Pass @enable_multilib@ to genmultilib.
Pass all MULTILIB_* variables to genmultilib even if
--disable-multilib but MULTILIB_OSDIRNAMES is not empty.
* java/security/Security.java: Use java.home or gnu.classpath.home
to load providers.
(loadProviders): Extra dir argument.
(getProvider): Return null when not found.
Roger Sayle [Fri, 4 Oct 2002 16:36:42 +0000 (16:36 +0000)]
re PR target/8087 (sparc-sun-solaris2.7 C testsuite failures in execute/20020720-1.c w/-m64 or on sparcv9/sparc64)
* gcc.c-torture/execute/20020720-1.x: XFAIL instead of skipping
the test on failing platforms. Mark sparcv9-*-*, sparc64-*-*
and sparc-*-* with -m64 as expected failures. See PR 8087.
Roger Sayle [Fri, 4 Oct 2002 16:08:18 +0000 (16:08 +0000)]
i386.h (processor_costs): Add new fields fadd, fmul, fdiv, fabs, fchs and fsqrt to costs structure.
* config/i386/i386.h (processor_costs): Add new fields fadd,
fmul, fdiv, fabs, fchs and fsqrt to costs structure.
(RTX_COSTS): Use these fields to determine the RTX costs
of floating point addition/subtraction, multiplication,
division, fabs, negation and square root respectively.
* config/i386/i386.c (size_cost): Provide instruction sizes
for these new fields.
(i386_cost, i486_cost, pentium_cost, pentiumpro_cost,
k6_cost, athlon_cost, pentium4_cost): Provide typical cycle
counts for these new fields for all x86 processor variants.
* real.h (SIGNIFICAND_BITS): Add one more word.
(CONST_DOUBLE_FORMAT): Accomodate 6 words.
* real.c (times_pten): New.
(real_to_decimal, real_from_string): Use it.
(sticky_rshift_significand): Use & to find modulus.
(rshift_significand, lshift_significand): Likewise.
(do_divide): Apply sticky bit after normalization.
(real_to_decimal, real_to_hexadecimal): Fix sign of Inf and NaN.
Jason Thorpe [Fri, 4 Oct 2002 05:23:12 +0000 (05:23 +0000)]
vax.c (vax_output_function_prologue): Use asm_fprintf.
* config/vax/vax.c (vax_output_function_prologue): Use asm_fprintf.
* config/vax/vax.h (VAX_FUNCTION_PROFILER_NAME): New.
(FUNCTION_PROFILER): Rewrite to use ASM_GENERATE_INTERNAL_LABEL,
assemble_name, asm_fprintf, and VAX_FUNCTION_PROFILER_NAME.
(ASM_OUTPUT_MI_THUNK): Use asm_fprintf instead of REGISTER_PREFIX.
(PRINT_OPERAND_PUNCT_VALID_P): Fix comment.
* config/vax/elf.h (FUNCTION_PROFILER): Remove.
(VAX_FUNCTION_PROFILER_NAME): Redefine as "__mcount".
PR c++/7754
* decl2.c (finish_anon_union): Do not expand anonymous unions when
procesing template functions.
* pt.c (tsubst_decl, case VAR_DECL): Try to complete the variable
type. Call layout_decl.
(tsubst_expr, case DECL_STMT): Handle anonymous unions.
PR c++/7931
* g++.dg/template/ptrmem3.C: New test.
Alan Modra [Fri, 4 Oct 2002 03:19:32 +0000 (03:19 +0000)]
rs6000.c (rs6000_output_function_epilogue): Use a name for the tbtab label that depends on the function asm name.
* config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use a
name for the tbtab label that depends on the function asm name.
Don't output tbtab label unless optional_tbtab.
(output_mi_thunk): Formatting.
Jakub Jelinek [Thu, 3 Oct 2002 20:35:14 +0000 (22:35 +0200)]
gcc.c (print_multi_os_directory): New variable.
* gcc.c (print_multi_os_directory): New variable.
(option_map): Support --print-multi-os-directory.
(struct prefix_list): Add os_multilib field.
(multilib_os_dir): New variable.
(static_specs): Add multilib_options.
(find_a_file): Add multilib argument. Search in GCC or OS multilib
subdirs if non-zero.
(read_specs, execute): Update callers.
(find_file): Likewise. Don't prefix name with multilib_dir, instead
pass 1 as multilib option.
(display_help): Include --print-multi-os-directory.
(add_prefix): Add os_multilib argument. Initialize pl->os_multilib.
(process_command): Update callers. Handle --print-multi-os-directory.
(do_spec_1) ['D']: Use multilib_os_directory if pl->os_multilib is
set.
(main): Update find_a_file and add_prefix callers.
Handle print_multi_os_directory.
(struct mdswitchstr): New.
(mdswitches, n_mdswitches): New variables.
(used_arg): Add MULTILIB_DEFAULT switches too if they are not
present on the command line nor their mutually incompatible
switches.
(default_arg): Optimize.
(set_multilib_dir): Compute multilib_os_dir. Initialize mdswitches
array.
(print_multilib_info): Only print GCC multilib dir name, not OS
multilib dirname.
* genmultilib: Add osdirnames parameter. Output multilib_options
variable. If osdirnames is specified, output dirnames as
dirname:osdirname.
* mklibgcc.in: Use MULTILIB_OSDIRNAMES, --print-multi-directory
and --print-multi-os-directory instead of SHLIB_SLIBDIR_SUFFIXES
to compute libgcc_s soname and install path.
* Makefile.in (libgcc.mk): Pass MULTILIB_OSDIRNAMES instead of
SHLIB_SLIBDIR_SUFFIXES to mklibgcc.
(s_mlib): Pass MULTILIB_OSDIRNAMES or nothing as last genmultilib
argument.
Makefile.tpl: Make SET_LIB_PATH substitution more autoconfy.
2002-10-03 Nathanael Nerode <neroden@gcc.gnu.org>
* Makefile.tpl: Make SET_LIB_PATH substitution more autoconfy.
* configure.in: Make SET_LIB_PATH substitution more autoconfy.
* Makefile.in: Regenerate.
Makefile.tpl: Make RPATH_ENVVAR substitution more autoconfy.
2002-10-03 Nathanael Nerode <neroden@gcc.gnu.org>
* Makefile.tpl: Make RPATH_ENVVAR substitution more autoconfy.
* configure.in: Make RPATH_ENVVAR substitution more autoconfy.
* Makefile.in: Regenerate.
re PR libstdc++/3584 (arm-specific atomic operations not atomic)
PR libstdc++/3584
* config/cpu/arm/atomicity.h (__exchange_and_add): Don't try to use
ASM sequences that don't give us atomic addition operations. Instead
just add a comment explaining why it doesn't work.
(__atomic_add): Just use __exchange_and_add.
(__test_and_set, __always_swap): Delete.
Michael Koch [Thu, 3 Oct 2002 14:40:43 +0000 (14:40 +0000)]
Autoscroll.java: New file, merge from Classpath.
2002-10-03 Michael Koch <konqueror@gmx.de>
* java/awt/dnd/Autoscroll.java:
New file, merge from Classpath.
* java/awt/dnd/DragSourceAdapter.java:
(dragExit): Fixed typos in argument type.
(dragDropEnd): Fixed typos in argument type.
* java/awt/dnd/DragSourceDropEvent.java:
New file, merge from Classpath.
* java/awt/dnd/DropTarget.java:
Added stubs, merge from Classpath.
* java/awt/dnd/DropTargetAdapter.java:
New file, merge from Classpath.
* java/awt/dnd/DropTargetContext.java:
New file, merge from Classpath.
* java/awt/dnd/DropTargetDragEvent.java:
New file, merge from Classpath.
* java/awt/dnd/DropTargetDropEvent.java:
New file, merge from Classpath.
* java/awt/dnd/DropTargetEvent.java:
New file, merge from Classpath.
* java/awt/dnd/DropTargetListener.java:
New file, merge from Classpath.
* java/awt/dnd/MouseDragGestureRecognizer.java:
New file, merge from Classpath.
* java/awt/dnd/peer/DropTargetContextPeer.java:
New file, merge from Classpath.
Michael Koch [Thu, 3 Oct 2002 11:23:33 +0000 (11:23 +0000)]
2002-09-30 Michael Koch <konqueror@gmx.de>
* java/net/DatagramSocket.java
(receive): Check with SecurityManager AFTER the packet is received,
check if connected to multicast address, documentation added.
(send): Only check SecurityManager if connected, check address of
packet to send.
(connect): Implemented, documentation added.
* java/net/Inet6Address.java: New file (not added yet to Makefile.am).
* java/net/InetSocketAddress.java
(whole file): Reindented.
(hostname): New attribute.
(InetSocketAddress): Initialize new attribute.
(getAddress): Documentation added.
(getHostName): Documentation added.
(getPort): Documentation added.
(hashCode): Documentation added.
(isUnresolved): Documentation added.
(toString): Conform to output of JDK 1.4.1, documentation added.
* java/net/MulticastSocket.java
(joinGroup): Removed FIXME, documentation added.
(leaveGroup): Removed FIXME, documentation added.
(send): Documentation added.
* java/net/Socket.java
(inputShutdown): New variable.
(outputShutdown): New variable.
(Socket): Initialize new variables.
(getRemoteSocketAddress): Check if connected.
(shutdownInput): Set new variable.
(shutdownOutput): Set new variable.
(isConnected): New method.
(isClosed): New method.
(isInputShutdown): New method.
(isOutputShutdown): New method.
* java/net/URLStreamHandler.java
(URLStreamHandler): New method.
(openConnection): Added documentation.
(parseURL): Added documentation.
(getHostAddress): New method.
(getDefaultPort): New method.
Tom Tromey [Wed, 2 Oct 2002 21:21:37 +0000 (21:21 +0000)]
ActivationDesc.java, [...]: New versions from Classpath.
* java/rmi/activation/ActivationDesc.java,
java/rmi/activation/ActivationGroupDesc.java,
java/rmi/activation/ActivationGroupID.java,
java/rmi/activation/ActivationID.java: New versions from
Classpath.
Mark Mitchell [Wed, 2 Oct 2002 20:01:38 +0000 (20:01 +0000)]
re PR c++/7188 (Segfault with template class and recursive (incorrect) initalizer list.)
PR c++/7188.
* cp-tree.def (CTOR_INITIALIZER): Use one slot, not two.
* cp-tree.h (emit_base_init): Rename to ....
(emit_mem_initializers): ... this.
(expand_member_init): Change prototype.
* init.c (perform_member_init): Compute explicit, rather than
requiring it as a parameter.
(sort_member_init): Rename to ...
(sort_mem_initializers): ... this. Process bases and data members
together.
(sort_base_init): Remove.
(emit_base_init): Rename to ...
(emit_mem_initializers): ... this.
(expand_aggr_vbase_init_1): Remove.
(construct_virtual_bases): Rename to ...
(construct_virtual_base): ... this.
(expand_member_init): Rework handling of base initializers.
* method.c (do_build_copy_constructor): Use
finish_mem_initializers.
* parse.y (member_init): Adjust calls to expand_member_init.
* pt.c (tsubst_expr): Simplify CTOR_INITIALIZER case.
(tsubst_initializer_list): Use expand_member_init.
* semantics.c (finish_mem_intiailizers): Simplify.
PR c++/7188.
* g++.dg/template/meminit1.C: New test.
* g++.dg/warn/Wreorder-1.C: Likewise.
* g++.old-deja/g++.mike/warn3.C: Tweak.
* lib/prune.exp: Ingore "in copy constructor".
Roger Sayle [Wed, 2 Oct 2002 18:46:45 +0000 (18:46 +0000)]
re PR rtl-optimization/6627 (-fno-align-functions regression from 2.95)
PR optimization/6627
* toplev.c (force_align_functions_log): New global variable.
* flags.h (force_align_functions_log): Add extern prototype.
* varasm.c (assemble_start_function): Use it to force minimum
function alignment.
* config/i386/i386.h (FUNCTION_BOUNDARY): Set the correct
minimum function alignment to one byte.
(TARGET_PTRMEMFUNC_VBIT_LOCATION): Store the virtual bit in
the least significant bit of vtable member function pointers.
* tree.h (enum ptrmemfunc_vbit_where_t): Move definition to
here from cp/cp-tree.h.
* cp/cp-tree.h (enum ptrmemfunc_vbit_where_t): Delete definition
from here, and move it to tree.h.
* cp/decl.c (cxx_init_decl_processing): If storing the vbit
in function pointers, ensure that force_align_functions_log
is atleast one.
* java/lang.c (java_init): If storing the vbit in function
pointers, ensure that force_align_functions_log is atleast
one to aid compatability with g++ vtables.
real.c (real_to_decimal): Crop trailing zeros for DIGITS < 0.
* real.c (real_to_decimal): Crop trailing zeros for DIGITS < 0.
(real_to_hexadecimal): Likewise.
* print-rtl.c (print_rtx): If we are linked with real.c, don't
dump the XWINT fields of a floating point CONST_DOUBLE.