Commit Graph

48189 Commits

Author SHA1 Message Date
Roger Sayle
8beccec86d combine.c (combine_simplify_rtx, [...]): Use CC0_P.
* combine.c (combine_simplify_rtx, simplfy_comparison):  Use CC0_P.
	* cse.c (invalidate_skipped_set):  Likewise.
	* integrate.c (subst_constants):  Likewise.
	* jump.c (reversed_comparison_code_parts):  Likewise.
	* loop.c (canonicalize_condition):  Likewise.
	* simplify-rtx.c (simplify_relational_operation):  Likewise.

From-SVN: r63446
2003-02-26 03:05:40 +00:00
Roger Sayle
b052d8ee4d builtins.def (DEF_LIB_ALWAYS_BUILTIN, [...]): Delete.
* builtins.def (DEF_LIB_ALWAYS_BUILTIN, DEF_UNUSED_BUILTIN): Delete.
	(abs, labs, fabs, fabsf, fabsl, abort, exit, _exit, _Exit):  Use
	the appropriate macro to define built-in function.
	(fmod,fmodf,fmodl): New built-in functions.

	* java/decl.c (java_init_decl_processing): Get soft_fmod_node from
	built_in_decls[BUILT_IN_FMOD] rather than define it ourselves.

	* doc/extend.texi (fmod,fmodf,fmodl): Document new built-ins.

From-SVN: r63445
2003-02-26 03:02:14 +00:00
Richard Henderson
8d4540089a i386.c (function_arg): Pass variable sized structures correctly on the stack.
* config/i386/i386.c (function_arg): Pass variable sized
        structures correctly on the stack.

From-SVN: r63442
2003-02-25 17:26:51 -08:00
GCC Administrator
61ba356a99 Daily bump.
From-SVN: r63440
2003-02-26 00:17:03 +00:00
Phil Edwards
bd2726e0ca Intro.3: Update with new (proper) names.
2003-02-25  Phil Edwards  <pme@gcc.gnu.org>

	* docs/doxygen/Intro.3:  Update with new (proper) names.
	* docs/doxygen/TODO:  Update.
	* docs/doxygen/run_doxygen:  More comments, fix up man pages.
	Fake entries for standard typedefs.
	* docs/doxygen/user.cfg.in:  Turn INLINE_INHERITED_MEMB back on.
	* docs/html/documentation.html:  Top-level man page is now called
	C++Intro.
	* include/std/std_limits.h:  Doxygenate.

From-SVN: r63433
2003-02-26 00:02:16 +00:00
Kazu Hirata
fc943f5542 reload1.c (reload_cse_move2add): Use STRICT_LOW_PART if PLUS does not reduce the cost of SET.
* reload1.c (reload_cse_move2add): Use STRICT_LOW_PART if PLUS
	does not reduce the cost of SET.

From-SVN: r63426
2003-02-25 23:19:12 +00:00
Franz Sirl
3eaa60442f re PR target/9732 ([ppc32] Wrong code with -O2 -fPIC)
2003-02-25  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>

	PR target/9732
	* gcc.dg/20030225-1.c: New test.

From-SVN: r63424
2003-02-25 23:13:42 +00:00
Franz Sirl
14f00213a7 re PR target/9732 ([ppc32] Wrong code with -O2 -fPIC)
2003-02-25  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>

	PR target/9732
	* config/rs6000/rs6000.c (first_reg_to_save): Handle
	PIC_OFFSET_TABLE_REGNUM for -fPIC too.
	(rs6000_emit_prologue): Likewise.
	(rs6000_emit_epilogue): Likewise.
	* config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Make
	PIC_OFFSET_TABLE_REGNUM a fixed register for -fPIC.

From-SVN: r63423
2003-02-25 23:11:55 +00:00
Richard Henderson
8164b17107 real.c (real_to_integer2): Force overflow result only for unsigned overflow.
* real.c (real_to_integer2): Force overflow result only for
        unsigned overflow.

From-SVN: r63421
2003-02-25 15:00:54 -08:00
Kazu Hirata
9e48c409cd * gcse.c (cprop_jump): Revert the 2003-02-23 change.
From-SVN: r63420
2003-02-25 22:56:27 +00:00
Vladimir Makarov
4e21585b53 Fixing typo in ChangeLog.
From-SVN: r63417
2003-02-25 21:45:18 +00:00
Vladimir Makarov
3044064ca5 sched-ebb.c (add_deps_for_risky_insns): Add the dependence when there is no similar load.
2003-02-25  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
            Richard Henderson  <rth@redhat.com>

	* sched-ebb.c (add_deps_for_risky_insns): Add the dependence when
	there is no similar load.

Co-Authored-By: Richard Henderson <rth@redhat.com>

From-SVN: r63416
2003-02-25 21:43:16 +00:00
Vladimir Makarov
15aab9c0ac sched-int.h (INSN_TRAP_CLASS, [...]): Move them from sched-rgn.c.
2003-02-25  Vladimir Makarov  <vmakarov@redhat.com>
            Richard Henderson  <rth@redhat.com>

	* sched-int.h (INSN_TRAP_CLASS, WORST_CLASS): Move them from
	sched-rgn.c.
	(add_forward_dependence): New function prototype.

	* sched-rgn.c (INSN_TRAP_CLASS, WORST_CLASS): Move them to
	sched-init.h.
	(CONST_BASED_ADDRESS_P, may_trap_exp, haifa_classify_insn): Move
	them to haifa-sched.c.

	* haifa-sched.c (CONST_BASED_ADDRESS_P, may_trap_exp,
	haifa_classify_insn): Move them from sched-rgn.c.

	* sched-deps.c (add_dependence): Return flag of creating a new
	entry.
	(add_forward_dependence): New function.
	(compute_forward_dependences): Use the function.

	* sched-ebb.c (earliest_block_with_similiar_load): New function.
	(add_deps_for_risky_insns): New function.
	(schedule_ebb): Call the function.

From-SVN: r63415
2003-02-25 20:40:57 +00:00
Aldy Hernandez
c8e4f0e96e 003-02-20 Aldy Hernandez <aldyh@redhat.com>
* doc/tm.texi: Document Rename TARGET_VECTOR_TYPES_COMPATIBLE to
        TARGET_VECTOR_OPAQUE_P.  Document accordingly.

        * testsuite/gcc.dg/20030218-1.c: Check that initialization of
        opaque types fail.

        * c-typeck.c (comptypes): Change call to vector_types_compatible
        to vector_opaque_p.
        (convert_for_assignment): Call vector_opaque_p instead of
        vector_types_compatible.
        (really_start_incremental_init): Disallow initialization of opaque
        types.

        * target-def.h: Remove TARGET_VECTOR_TYPES_COMPATIBLE.
        Define TARGET_VECTOR_OPAQUE_P.
        (TARGET_INITIALIZER): Same.

        * target.h (struct gcc_target): Remove vector_types_compatible.
        Add vector_opaque_p.

        * config/rs6000/rs6000.c (rs6000_spe_vector_types_compatible):
        Remove.
        (is_ev64_opaque_type): Check for TARGET_SPE and make sure type is
        a vector type.  Change return type to bool.
        (TARGET_VECTOR_TYPES_COMPATIBLE): Remove.
        (TARGET_VECTOR_OPAQUE_P): Define.

        * cp/parser.c (cp_parser_init_declarator): Call vector_opaque_p
        target hook.
        Include target.h.
        (cp_parser_init_declarator): Fix typo in function comments.

From-SVN: r63411
2003-02-25 17:06:41 +00:00
Gabriel Dos Reis
7d9f2df263 decl.c (add_binding): Time TV_NAME_LOOKUP.
* decl.c (add_binding): Time TV_NAME_LOOKUP.
      (push_class_binding): Likewise.
      (set_namespace_binding): Likewise.

From-SVN: r63410
2003-02-25 14:11:59 +00:00
Nick Clifton
4cf8cbf05a remove site-file support - it is obsolete
From-SVN: r63409
2003-02-25 14:05:36 +00:00
Jan Hubicka
fa1a0d022c Makefile.in (lcm.o): Add dependency on function.h
* Makefile.in (lcm.o):  Add dependency on function.h
	* lcm.c (function.h): Include.
	* i386.c (machine_function, ix86_stack_locals,
	* ix86_save_varrargs_registers) : Move to
	...
	* i386.h (machine_function, ix86_stack_locals,
	ix86_save_varrargs_registers): ... here; add optimize_mode_switching
	(ix86_optimize_mode_switching): New.
	* i386.md (fix patterns): Set ix86_optimize_mode_switching

From-SVN: r63404
2003-02-25 11:39:20 +00:00
Michael Koch
9d4c156509 MappedByteFileBuffer.java, [...]: New files, both are not compiled yet to get not noncompiling CVS.
2003-02-25  Michael Koch  <konqueror@gmx.de>

	* gnu/java/nio/MappedByteFileBuffer.java,
	gnu/java/nio/natMappedByteFileBuffer.cc:
	New files, both are not compiled yet to get not noncompiling CVS.

From-SVN: r63403
2003-02-25 11:09:44 +00:00
Nick Clifton
b103bfefc9 Fix typo.
Fix typo.  Name	of fourth arg is 'fndecl' not 'indirect'.  Update comment
describing the function's parameters.

From-SVN: r63401
2003-02-25 10:55:45 +00:00
Uwe Stieber
ef4e756902 Add support for kaOS as cross build target system.
From-SVN: r63400
2003-02-25 10:45:00 +00:00
Nick Clifton
64458158b9 remove bogus files accidentally commited during a previous delta
From-SVN: r63399
2003-02-25 10:17:06 +00:00
Scott Snyder
63b1a6ba01 re PR libstdc++/9811 (incorrect documentation for std::map::lower_bound, etc.)
2003-02-25  Scott Snyder  <snyder@fnal.gov>

	PR libstdc++/9811
	* include/bits/stl_map.h (lower_bound, upper_bound, equal_range):
	Correct documentation.
	* include/bits/stl_multimap.h (lower_bound, upper_bound,
	equal_range): Likewise.

From-SVN: r63396
2003-02-25 06:27:10 +00:00
GCC Administrator
bacbf39910 Daily bump.
From-SVN: r63392
2003-02-25 00:17:06 +00:00
Mark Mitchell
d12ad970f2 * README: Remove out-of-date information.
From-SVN: r63384
2003-02-24 22:01:56 +00:00
Mark Mitchell
353b4fc0d7 re PR c++/9836 (Error with typdefs in partial specializations of classes)
PR c++/9836
	* cp-tree.h (CLASSTYPE_PRIMARY_TEMPLATE): Do not skip from
	specializations back to the main template.
	* parser.c (cp_parser_diagnose_invalid_type_name):Adjust use.
	* pt.c (resolve_typename_type): Likewise.

	PR c++/9836
	* g++.dg/template/spec6.C: New test.

From-SVN: r63383
2003-02-24 21:52:00 +00:00
Tom Tromey
2afced1191 AbstractPreferences.java (isUserNode): Implemented.
* java/util/prefs/AbstractPreferences.java (isUserNode):
	Implemented.

From-SVN: r63382
2003-02-24 21:20:19 +00:00
Jan Hubicka
2d21f7d6b3 * combine.c (simplify_shift_const): Fix previous patch.
From-SVN: r63380
2003-02-24 21:10:39 +00:00
Jeffrey D. Oldham
8b6a662e3e re PR c++/9778 (ICE with sizeof(expr) in non-type template arg)
2003-02-24  Jeffrey D. Oldham  <oldham@codesourcery.com>

	PR c++/9778
	* cp/pt.c (tsubst_copy_and_build): For a templated function inside a
	scope, process template arguments.
	* testsuite/g++.dg/parse/template6.C: New test case.

From-SVN: r63379
2003-02-24 20:39:38 +00:00
Paolo Carlini
57df94c8f6 re PR libstdc++/9825 (filebuf::sputbackc breaks sbumpc)
2003-02-24  Paolo Carlini  <pcarlini@unitus.it>

	PR libstdc++/9825
	* src/fstream.cc
	(basic_filebuf<char/wchar_t>::_M_underflow_common): When
	__bump is true (uflow), always increment the read pointer
	(_M_in_cur) before returning successfully.
	* testsuite/27_io/filebuf_virtuals.cc (test12): Add.

From-SVN: r63378
2003-02-24 20:39:31 +00:00
Jeff Law
2bac97f7e7 i386.md (testdi_1_rex64): Discourage reload from using the %eax alternative.
* i386.md (testdi_1_rex64): Discourage reload from using the %eax
        alternative.
        (testsi_1, testhi_1, testqi_1): Likewise.

From-SVN: r63376
2003-02-24 13:18:44 -07:00
Rainer Orth
7f9fc00642 physmem.c (physmem_total): Test for GSI_PHYSMEM.
* physmem.c (physmem_total) [HAVE_GETSYSINFO]: Test for
	GSI_PHYSMEM.
	(physmem_available) [HAVE_TABLE]: Test for TBL_VMSTATS.

From-SVN: r63373
2003-02-24 19:31:49 +00:00
Jeff Law
201b9f2a5d * gcc.c-torture/compile/20030224-1.c: New test for ia32 backend bug.
From-SVN: r63371
2003-02-24 11:57:06 -07:00
Rainer Orth
f8dc212b5d re PR c/5059 (Compiling s/w containing the use of DIR.H fails on other stat-calls)
* config/alpha/osf.h (TARGET_OS_CPP_BUILTINS): Rename
	__EXTERN_PREFIX to __PRAGMA_EXTERN_PREFIX.
	* doc/extend.texi (Tru64 Pragmas): Reflect this.

	* fixinc/inclhack.def (alpha___extern_prefix): Indicate #pragma
	extern_prefix support for Tru64 UNIX V5 <sys/stat.h>.
	* fixinc/fixincl.x: Regenerate.
	* fixinc/tests/base/sys/stat.h [ALPHA___EXTERN_PREFIX_CHECK]: New
	testcase.
	Fixes PR c/5059, c/6126, other/9671.

	testsuite:
	* g++.dg/other/pragma-ep-1.C: Test for __PRAGMA_EXTERN_PREFIX.
	* gcc.dg/pragma-ep-1.c: Likewise.

From-SVN: r63370
2003-02-24 18:52:51 +00:00
Paolo Carlini
391cd0955e PR libstdc++/9404, PR libstdc++/9701 (partial)
2003-02-24  Paolo Carlini <pcarlini@unitus.it>
	    Nathan Myers <ncm@cantrip.org>

	PR libstdc++/9404, PR libstdc++/9701 (partial)
	(aka pptr == epptr implies overflow)
	* include/bits/fstream.tcc (_M_allocate_internal_buffer):
	Consistently, _M_out_end points to the end of the buffer just
	created.
	(overflow): Tweak to use _M_out_buf_size().
	(_M_convert_to_external): The role of the old _M_out_end is
	now played by _M_out_lim.
	(_M_really_overflow): Likewise.
	(seekoff): Likewise.
	(setbuf): _M_out_end points to the end of the external buffer.
	* include/bits/sstream.tcc (overflow): Rewrote, taking into
	account the resolution of DR 169 (TC).
	(seekoff): Use _M_string.capacity(); ios_base::end is now _M_out_lim.
	(seekpos): Use _M_string.capacity(); tweak.
	* include/bits/streambuf.tcc (sputc, xsputn): Remove comments.
	* include/std/std_fstream.h (sync): The role of the old
	_M_out_end is now played by _M_out_lim.
	(_M_set_indeterminate): Use _M_set_determinate.
	(_M_set_determinate): _M_out_end is now _M_out_lim.
	(_M_is_indeterminate): Likewise.
	* include/std/std_sstream.h (str()): _M_out_end is now _M_out_lim.
	(_M_stringbuf_init): Don't set _M_buf_size, unused for sstreams,
	which have the information readily available as _M_string.capacity();
	for ate and app modes, pass the string size to _M_really_sync.
	(_M_really_sync): Consistently set _M_out_end and _M_out_lim, to
	point to the end of the buffer (i.e., epptr) and to the string end,
	respectively.
	* include/std/std_streambuf.h: tweak comments, add _M_out_lim,
	which points to the right limit of the used put area.
	(_M_out_cur_move): The role of the old _M_out_end is now played
	by _M_out_lim.
	(_M_out_buf_size): Simplify: now (when _M_out_cur) return simply
	_M_out_end  - _M_out_cur (i.e., pptr), _very_ close to the letter
	of the standard.
	(basic_streambuf()): Initialize _M_out_lim too.
	* testsuite/27_io/filebuf_virtuals.cc (test10): Trivial tweak.
	* testsuite/27_io/filebuf_virtuals.cc (test11): Add.
 	* testsuite/27_io/stringbuf_virtuals.cc (test09): Add.

Co-Authored-By: Nathan Myers <ncm@cantrip.org>

From-SVN: r63367
2003-02-24 18:22:58 +00:00
Benjamin Kosnik
2e812a0a41 ios_base_storage.cc (main): Call set_memory_limits.
2003-02-24  Benjamin Kosnik  <bkoz@redhat.com>

	* testsuite/27_io/ios_base_storage.cc (main): Call
	set_memory_limits.

From-SVN: r63366
2003-02-24 18:14:20 +00:00
Tom Tromey
d99c7b11c5 ClassLoader.java (defineClass(byte[],int,int)): Deprecate.
* java/lang/ClassLoader.java (defineClass(byte[],int,int)):
	Deprecate.
	* java/lang/Thread.java (resume): Deprecate.
	* java/io/ByteArrayOutputStream.java (toString(int)): Fixed typo
	in @deprecated.

From-SVN: r63364
2003-02-24 16:47:58 +00:00
Kriang Lerdsuwanakij
9e236a9d66 re PR c++/9602 (Total confusion about template/friend/virtual/abstract)
PR c++/9602
	* typeck2.c (abstract_virtuals_error): Don't check when
	TYPE is still template parameter dependent.

	* g++.dg/template/friend16.C: New test.

From-SVN: r63362
2003-02-24 15:47:24 +00:00
Roger Sayle
44ee6e9e62 gcc.c (do_spec_1): Handle pending argument upon return from handle_braces in "%{...}".
* gcc.c (do_spec_1) ['{']:  Handle pending argument upon return
	from handle_braces in "%{...}".

From-SVN: r63357
2003-02-24 14:52:42 +00:00
Steven Bosscher
a7a287eb4f * MAINTAINERS (Write after approval): Add myself.
From-SVN: r63356
2003-02-24 09:27:29 +00:00
Mark Mitchell
ca099ac8c5 re PR c++/5333 (ICE on nested template classes using other nested template classes)
PR c++/5333
	* cp-tree.h (CLASSTYPE_PRIMARY_TEMPLATE): New macro.
	* parser.c (cp_parser_diagnose_invalid_type_name): Use it.
	* pt.c (instantiate_class_template): Don't try to instantiate
	dependent types.
	(resolve_typename_type): Use CLASSTYPE_PRIMARY_TEMPLATE.

	PR c++/5333
	* g++.dg/parse/fused-params1.C: Adjust error messages.
	* g++.dg/template/nested3.C: New test.

From-SVN: r63354
2003-02-24 07:43:23 +00:00
Kaz Kojima
463f02cd03 sh.c (TARGET_HAVE_TLS): Conditionally define.
* config/sh/sh.c (TARGET_HAVE_TLS): Conditionally define.
	(prepare_move_operands): Handle TLS operands.
	(tls_symbolic_operand): New.
	(nonpic_symbol_mentioned_p): Handle TLS UNSPECs.
	(legitimize_pic_address): Do nothing for the TLS symbol.
	(sh_encode_section_info): Handle TLS case.
	(sh_strip_name_encoding): Drop TLS encoding.
	* config/sh/sh-protos.h (tls_symbolic_operand): Add prototype.
	* config/sh/sh.h (SH_TLS_ENCODING): Define.
	(TLS_SYMNAME_P, STRIP_TLS_ENCODING): Likewise.
	(ASM_OUTPUT_LABELREF): Drop TLS encoding.
	(OUTPUT_ADDR_CONST_EXTRA): Handle TLS UNSPECs.
	* config/sh/sh.md: Define TLS UNSPEC constants.
	(type): Add tls_load.
	("tls_global_dynamic", "tls_local_dynamic"): New insns.
	("sym2DTPOFF", "symDTPOFF2reg", "sym2GOTTPOFF"): New expanders.
	("tls_initial_exec"): New insn.
	("sym2TPOFF", "symTPOFF2reg"): New expanders.
	("load_gbr"): New insn.

	* configure.in (HAVE_AS_TLS): Add sh-*-* and sh[34]*-*-* cases.
        * configure: Regenerate.

From-SVN: r63353
2003-02-24 02:44:02 +00:00
Tom Tromey
cf88ede3d2 Makefile.in: Rebuilt.
* Makefile.in: Rebuilt.
	* Makefile.am (JC1FLAGS): Added -Wno-deprecated.

From-SVN: r63352
2003-02-24 02:15:43 +00:00
Tom Tromey
6eebde4b4d * libjava.jacks/jacks.xfail: Most 4.7.10 tests pass now.
From-SVN: r63351
2003-02-24 02:15:22 +00:00
Tom Tromey
f94ae54025 lang-options.h: Added -Wdeprecated.
* lang-options.h: Added -Wdeprecated.
	* gcj.texi (Warnings): Document -Wdeprecated.
	* java-tree.h (flag_deprecated): Declare.
	* lang.c (lang_W_options): Added deprecated.
	(flag_deprecated): New global.
	* chartables.h: Rebuilt.
	* gen-table.pl (process_one): Look at whitespace.
	(print_tables): Define LETTER_SPACE, LETTER_MASK.
	* parse.h (CLEAR_DEPRECATED): New macro.
	(CHECK_DEPRECATED_NO_RESET): New macro.
	* jcf-parse.c (handle_deprecated): New function.
	(HANDLE_DEPRECATED_ATTRIBUTE): New define.
	* jcf-reader.c (get_attribute): Handle Deprecated attribute.
	* parse.y (resolve_type_during_patch): Check deprecation.
	(jdep_resolve_class): Likewise.
	(process_imports): Likewise.
	(resolve_expression_name): Likewise.
	(check_deprecation): Strip arrays from decl.  Check
	flag_deprecated.
	(patch_method_invocation): Also check the particular constructor
	for deprecation.
	(register_fields): Use CHECK_DEPRECATED_NO_RESET in loop.
	* jcf-write.c (append_deprecated_attribute): New function.
	(generate_classfile): Generate deprecated attribute when
	appropriate.
	* lex.c (java_parse_doc_section): Return type now void.  Rewrote.
	(java_lex) [case '*']: Simplify logic.
	(java_start_char_p): Use LETTER_MASK.
	(java_part_char_p): Likewise.
	(java_space_char_p): New function.

From-SVN: r63350
2003-02-24 02:14:49 +00:00
Tom Tromey
804b2c48ea natRuntime.cc (libraries_size, [...]): Removed.
* java/lang/natRuntime.cc (libraries_size, libraries_count,
	libraries): Removed.
	(add_library): Removed.
	(_load): Don't call add_library.
	(loadLibraryInternal): Likewise.
	(init): Likewise.
	(lookup_data): New struct.
	(find_symbol): New function.
	(_Jv_FindSymbolInExecutable): Use it.

From-SVN: r63348
2003-02-24 00:53:21 +00:00
GCC Administrator
6ecc7b8ffd Daily bump.
From-SVN: r63347
2003-02-24 00:17:04 +00:00
Alan Modra
f641e05b44 New test.
From-SVN: r63339
2003-02-24 09:18:05 +10:30
Alan Modra
8403445aba calls.c (store_one_arg): Revert 1999-02-16 change.
* calls.c (store_one_arg): Revert 1999-02-16 change.  Revert
	2000-12-17 change.  Pass EXPAND_STACK_PARM to expand_expr.
	* expr.h (enum expand_modifier): Define EXPAND_STACK_PARM.
	(enum block_op_methods): Reorder for better store_expr optimization.
	* expr.c (store_expr): Test bit 1 of "want_value" for call param
	stores, test bit 0 for original want_value meaning.  Pass
	BLOCK_OP_CALL_PARM to emit_block_move when bit 1 set.  Adjust
	recursive calls, and calls to expand_param.
	(expand_expr): Handle EXPAND_STACK_PARM modifier.  When cse
	expected, set target to 0 rather than to subtarget.  Formatting.

From-SVN: r63337
2003-02-24 08:49:39 +10:30
Kazu Hirata
ef90638128 * gcse.c (cprop_jump): Use the REG_EQUAL note if available.
From-SVN: r63332
2003-02-23 20:52:44 +00:00
Nick Clifton
7b652bb8eb Add %redact file
From-SVN: r63331
2003-02-23 20:32:20 +00:00