Commit Graph

45452 Commits

Author SHA1 Message Date
Andreas Jaeger
635f468088 * config/i386/t-linux64 (MULTILIB_OSDIRNAMES): Fix value.
From-SVN: r57812
2002-10-04 10:05:38 +02:00
Richard Henderson
ee6ff31927 real.h (SIGNIFICAND_BITS): Add one more word.
* 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.

From-SVN: r57811
2002-10-04 01:01:12 -07:00
GCC Administrator
311b75739b Daily bump.
From-SVN: r57810
2002-10-04 07:17:11 +00:00
Andreas Jaeger
6d8dd94071 gengtype.c (adjust_field_rtx_def): Cast variables of type size_t to unsigned long, adjust printf format string.
* gengtype.c (adjust_field_rtx_def): Cast variables of type size_t
	to unsigned long, adjust printf format string.
	(output_mangled_typename): Likewise.

From-SVN: r57804
2002-10-04 08:08:19 +02:00
Jason Thorpe
191fe2bba2 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".

From-SVN: r57801
2002-10-04 05:23:12 +00:00
Mark Mitchell
bd9bb3d2b0 re PR c++/7931 (The compiler ices on some legal code)
PR c++/7931
	* pt.c (for_each_template_parm_r): Handle BASELINKs.

	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.

	PR c++/7754
	* g++.dg/template/union1.C: New test.

From-SVN: r57800
2002-10-04 05:13:59 +00:00
Mark Mitchell
6397d80b75 re PR c++/8006 (ice in mangle_conv_op_name_for_type boost regression)
* doc/invoke.texi (-Wabi): Document mangling bug.

	PR c++/8006
	* mangle.c (CLASSTYPE_TEMPLATE_ID_P): Handle instances of template
	template parameters.
	(globals): Add entity and need_abi_warning.
	(decl_is_template_id): Use TYPE_TEMPLATE_INFO, not
	CLASSTYPE_TEMPLATE_INFO.
	(is_std_substitution): Use CLASSTYPE_TI_TEMPLATE, not
	TYPE_TI_TEMPLATE.
	(write_prefix): Handle typename types correctly.
	(write_template_prefix): Handle template template parameters
	correctly.
	(start_mangling): Add entity parameter.
	(finish_mangling): Warn about names whose mangling will change.
	(mangle_decl_string): Adjust.
	(mangle_type_string): Likewise.
	(mangle_special_for_type): Likewise.
	(mangle_ctor_vtbl_for_type): Likewise.
	(mangle_thunk): Likewise.
	(mangle_guard_variable): Likewise.
	(mangle_ref_init_variable): Likewise.

	PR c++/8006
	* g++.dg/abi/mangle9.C: New test.
	* g++.dg/abi/mangle10.C: New test.
	* g++.dg/abi/mangle11.C: New test.
	* g++.dg/abi/mangle12.C: New test.

From-SVN: r57799
2002-10-04 04:59:39 +00:00
Alan Modra
69c7591674 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.

From-SVN: r57798
2002-10-04 12:49:32 +09:30
Richard Henderson
adf2ac3713 m68k.h (OVERRIDE_OPTIONS): Move additional code ...
* config/m68k/m68k.h (OVERRIDE_OPTIONS): Move additional code ...
        * config/m68k/m68k.c (override_options): ... here.
        * config/m68k/m68kelf.h (OVERRIDE_OPTIONS): Remove.
        * config/m68k/m68kv4.h (OVERRIDE_OPTIONS): Remove.
        * config/m68k/linux.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.
        * config/m68k/netbsd-elf.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.

From-SVN: r57797
2002-10-03 19:19:40 -07:00
Richard Henderson
a751939354 * real.h (struct real_value): Use ENUM_BITFIELD.
From-SVN: r57796
2002-10-03 17:50:58 -07:00
Richard Henderson
415527360a * config/i960/i960.md (call, call_value): Use emit_call_insn.
From-SVN: r57795
2002-10-03 17:39:27 -07:00
Adam Megacz
e662e109a1 natNetworkInterface.cc (getRealNetworkInterfaces): ifdef out some functionality that isn't supported yet on WIN32.
2002-10-03  Adam Megacz <adam@xwt.org>

	    * natNetworkInterface.cc (getRealNetworkInterfaces): ifdef out
	    some functionality that isn't supported yet on WIN32.

From-SVN: r57794
2002-10-03 22:54:04 +00:00
Steve Ellcey
882affa8c6 * config/pa/pa64-hpux.h (INIT_ENVIRONMENT): New.
From-SVN: r57793
2002-10-03 22:33:04 +00:00
Steve Ellcey
83eb95f995 config.gcc (hppa*64*-*-hpux11*): Check gnu_ld.
* config.gcc (hppa*64*-*-hpux11*): Check gnu_ld.
	* config/pa/pa.h (MASK_GNU_LD): New.
	(TARGET_GNU_LD): New.
	(TARGET_SWITCHES): New gnu-ld & no-gnu-ld flags.
	* config/pa/pa64-hpux.h (LINK_SPEC): Set based
	on gnu-ld and MASK_GNU_LD.

From-SVN: r57792
2002-10-03 21:46:59 +00:00
Jan Hubicka
b72b1c298b * i386.c (athlon_cost): Fix the move costs.
From-SVN: r57791
2002-10-03 21:37:17 +00:00
Jan Hubicka
92b7a2a514 final.c (final): Use symbol name as function name for profiling.
* final.c (final): Use symbol name as function name for profiling.
	* profile.c (get_exec_counts): Likewise.
	(branch_prob): Likewise.

From-SVN: r57790
2002-10-03 21:22:12 +00:00
Jakub Jelinek
429489e54f * longlong.h (__udiv_qrnnd): Remove PARAMS from prototype.
From-SVN: r57787
2002-10-03 22:39:08 +02:00
Jakub Jelinek
5bbcd587a2 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.

	* config/sparc/t-linux64 (MULTILIB_OSDIRNAMES): Set.
	(SHLIB_SLIBDIR_SUFFIXES): Remove.
	* config/sparc/linux64.h (STARTFILE_SPEC32, STARTFILE_SPEC64,
	ENDFILE_SPEC32, ENDFILE_SPEC64, ENDFILE_COMMON): Remove.
	(STARTFILE_SPEC, ENDFILE_SPEC): Don't distinguish between -m32
	and -m64.
	* config/sparc/t-sol2-64 (MULTILIB_OSDIRNAMES): Set.
	(SHLIB_SLIBDIR_SUFFIXES): Remove.
	* config/sparc/sol2-bi.h (STARTFILE_ARCH64_SPEC): Remove.
	(STARTFILE_ARCH_SPEC): Remove.
	* config/i386/t-linux64 (MULTILIB_OSDIRNAMES): Set.
	(SHLIB_SLIBDIR_SUFFIXES): Remove.
	* config/i386/linux64.h (STARTFILE_PREFIX_SPEC): Remove.
	* config/mips/t-iris6 (MULTILIB_OSDIRNAMES): Set.
	(SHLIB_SLIBDIR_SUFFIXES): Remove.

From-SVN: r57786
2002-10-03 22:35:14 +02:00
Jan Hubicka
c07f146f07 * predict.c (choose_function_section): Avoid choice for linkonce functions.
From-SVN: r57785
2002-10-03 19:43:00 +00:00
Nathanael Nerode
aba8a49486 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.

From-SVN: r57783
2002-10-03 19:06:16 +00:00
Nathanael Nerode
fe3d5b7ff1 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.

From-SVN: r57782
2002-10-03 18:50:19 +00:00
Tom Tromey
3db03e43f9 Makefile.in: Rebuilt.
* Makefile.in: Rebuilt.
	* Makefile.am (awt_java_source_files): Added new files.

From-SVN: r57781
2002-10-03 18:22:40 +00:00
Michael Koch
8e3cce3234 InetAddress.java (class InetAddress): Removed final keyword.
2002-10-03  Michael Koch  <konqueror@gmx.de>

	* java/net/InetAddress.java
	(class InetAddress): Removed final keyword.
	(equals): Fixed typo.
	(getByAddress): New method.

From-SVN: r57779
2002-10-03 17:17:39 +00:00
Richard Earnshaw
bfc1eae300 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.

From-SVN: r57778
2002-10-03 15:58:29 +00:00
Michael Koch
e37383993d 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.

From-SVN: r57777
2002-10-03 14:40:43 +00:00
Michael Koch
a8e8f5c359 2002-10-03 Michael Koch <konqueror@gmx.de>
* java/net/DatagramPacket.java
	(setLength): Fixed typo and be HTML-aware.
	* java/net/InetSocketAddress.java
	(InetSocketAddress): Correct initialization of hostname, fixed typo.
	(equals): Added comment about equality of InetSocketAddress objects.
	* java/net/ServerSocket.java
	(accept): Added checks.
	(isClosed): New stubbed method.
	* java/net/SocketOptions.java: Reindention.
	* java/net/SocketPermission
	(SocketPermission): Documentation fixed.

From-SVN: r57776
2002-10-03 14:30:48 +00:00
Jan Hubicka
4c9c9a3da5 * i386.md (lea to mul peep2): Fix condition.
From-SVN: r57775
2002-10-03 13:15:53 +00:00
Andrew Haley
cd8dbeeff3 Array_3.java (baz): New.
2002-10-03  Andrew Haley  <aph@redhat.com>

	* libjava.lang/Array_3.java (baz): New.
	(main): Call baz.

From-SVN: r57774
2002-10-03 13:12:01 +00:00
Michael Koch
e832ab3c91 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.

From-SVN: r57772
2002-10-03 11:23:33 +00:00
GCC Administrator
3eacc81d00 Daily bump.
From-SVN: r57771
2002-10-03 07:17:09 +00:00
Andreas Jaeger
f6c772fef4 Add forgotten ChangeLog entry.
From-SVN: r57764
2002-10-03 08:59:13 +02:00
John David Anglin
f50df1d58f pa-linux.h (FUNCTION_OK_FOR_SIBCALL): Delete macro.
* pa-linux.h (FUNCTION_OK_FOR_SIBCALL): Delete macro.
	* pa32-linux.h (FUNCTION_OK_FOR_SIBCALL): Define.

From-SVN: r57758
2002-10-03 04:05:54 +00:00
Matt Austern
69788039ff Fixed ChangLog entries that went in the wrong place.
From-SVN: r57753
2002-10-02 21:46:13 +00:00
Tom Tromey
593bbdc115 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.

From-SVN: r57752
2002-10-02 21:21:37 +00:00
Richard Henderson
d631b80aa7 re PR rtl-optimization/7124 (-O2 -march=athlon produces ICE)
PR opt/7124
        * config/i386/i386.c (ix86_register_move_cost): Increase cost
        for secondary_memory_needed pairs.

From-SVN: r57751
2002-10-02 13:35:49 -07:00
Janis Johnson
a6ad79e790 MAINTAINERS: Add myself as web pages co-maintainer.
2002-10-02  Janis Johnson  <janis187@us.ibm.com>

	* MAINTAINERS: Add myself as web pages co-maintainer.

From-SVN: r57750
2002-10-02 20:02:13 +00:00
Matt Austern
b930e4282a class.c (check_field_decls): Changed warning about const member variables so that it doesn't get issued for...
* class.c (check_field_decls): Changed warning about const member
        variables so that it doesn't get issued for a class aggregate.

From-SVN: r57749
2002-10-02 20:02:10 +00:00
Mark Mitchell
2282d28d48 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".

From-SVN: r57748
2002-10-02 20:01:38 +00:00
Nathanael Nerode
854ef3909d vms.texi: Blow away false include file section.
2002-10-02  Nathanael Nerode  <neroden@gcc.gnu.org>

	* doc/vms.texi: Blow away false include file section.

From-SVN: r57747
2002-10-02 19:17:30 +00:00
Nathanael Nerode
6a8a90589c Makefile.tpl: Eliminate reference to all-gui, all-libproc.
2002-10-02  Nathanael Nerode  <neroden@gcc.gnu.org>

	* Makefile.tpl: Eliminate reference to all-gui, all-libproc.
	* Makefile.in: Regenerate.

From-SVN: r57746
2002-10-02 19:12:43 +00:00
Roger Sayle
f963b5d977 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.

From-SVN: r57745
2002-10-02 18:46:45 +00:00
Zack Weinberg
327d975a3a MAINTAINERS: Add myself and Nathan Sidwell <nathan@codesourcery.com> as VxWorks maintainers.
* MAINTAINERS: Add myself and Nathan Sidwell
	<nathan@codesourcery.com> as VxWorks maintainers.

From-SVN: r57743
2002-10-02 17:51:40 +00:00
Andreas Jaeger
3a3f686886 baseline_symbols.txt: New file.
* config/abi/x86_64-unknown-linux-gnu/baseline_symbols.txt:
	New file.

From-SVN: r57742
2002-10-02 18:46:38 +02:00
Matt Austern
0246d49e5b decl.c (walk_vtables_r): Fixed typo that caused result to never get a nonzero value.
* cp/decl.c (walk_vtables_r): Fixed typo that caused result to
	never get a nonzero value.

From-SVN: r57741
2002-10-02 16:00:33 +00:00
Jan Hubicka
200bcf7efc i386.c (print_operand_address): Use RIP addressing for offsetted label refs too.
* i386.c (print_operand_address): Use RIP addressing for offsetted
	label refs too.

From-SVN: r57740
2002-10-02 15:02:50 +00:00
Andreas Jaeger
e5ec43ac7b Enable tests on x86-64.
From-SVN: r57737
2002-10-02 10:26:51 +02:00
GCC Administrator
7217543f1e Daily bump.
From-SVN: r57736
2002-10-02 07:17:13 +00:00
Nathanael Nerode
a5ae8f192b Fix bogus date.
From-SVN: r57730
2002-10-02 06:27:54 +00:00
Nathanael Nerode
f5e0c73c6c Makefile.def: Remove order dependency comments.
2002-10-02  Nathanael Nerode  <neroden@gcc.gnu.org>

	* Makefile.def: Remove order dependency comments.
	* Makefile.tpl: Add explicit install-install dependencies.
	* Makefile.in: Regenerate.

From-SVN: r57729
2002-10-02 06:27:24 +00:00
Andreas Jaeger
eae853b7d5 * include/private/gcconfig.h (HBLKSIZE): Define for x86-64.
From-SVN: r57728
2002-10-02 08:25:37 +02:00