Commit Graph

120689 Commits

Author SHA1 Message Date
Richard Biener 381d45ed49 gimple-fold.c (fold_stmt_1): Remove unnecessary code.
2012-11-27  Richard Biener  <rguenther@suse.de>

	* gimple-fold.c (fold_stmt_1): Remove unnecessary code.

From-SVN: r193844
2012-11-27 12:06:52 +00:00
Siddhesh Poyarekar 647545a516 configure.ac: Disable libsanitizer if we're not building C++.
* configure.ac: Disable libsanitizer if we're not building C++.
	* configure: Regenerate.

From-SVN: r193842
2012-11-27 11:52:54 +01:00
Bin Cheng e2b5ad1ea6 arm.c (thumb1_reorg): New function.
* config/arm/arm.c (thumb1_reorg): New function.
	(arm_reorg): Call thumb1_reorg.
	(thumb1_final_prescan_insn): Record src operand in thumb1_cc_op0.
	* config/arm/arm.md : Remove peephole2 patterns which rewrite move
	into subtract of ZERO.

From-SVN: r193841
2012-11-27 09:55:33 +00:00
Richard Biener 77d19c725f re PR middle-end/55331 (ICE: SIGSEGV in substitute_and_fold with -O2 -fno-tree-fre)
2012-11-27  Richard Biener  <rguenther@suse.de>

	PR middle-end/55331
	* gimple-fold.c (gimplify_and_update_call_from_tree): Replace
	stmt with a NOP instead of removing it.

	* g++.dg/opt/pr55331.C: New testcase.

From-SVN: r193839
2012-11-27 09:20:02 +00:00
GCC Administrator 3711757e19 Daily bump.
From-SVN: r193836
2012-11-27 00:18:34 +00:00
Steven Bosscher 92cfe9d50a loop-invariant.c (check_invariant_table_size): Take sizeof of the right type.
* loop-invariant.c (check_invariant_table_size): Take sizeof of
	the right type.

	* reorg.c (resource_conflicts_p): Use hard_reg_set_intersect_p.
	(rare_destination): Remove.
	(mostly_true_jump): Simplify.  Base result on REG_BR_PROP notes if
	available, otherwise assume branches are not taken.
	(fill_eager_delay_slots): Update mostly_true_jump call.
	(relax_delay_slots): Likewise.

From-SVN: r193834
2012-11-27 00:17:25 +00:00
Jonathan Wakely 5895a897b5 functional (__is_socketlike): Change from class template to alias template.
* include/std/functional (__is_socketlike): Change from class
	template to alias template.

From-SVN: r193832
2012-11-26 23:53:36 +00:00
Jonathan Wakely 5127244e4b re PR libstdc++/55463 (Result of std::mem_fn doesn't accept rvalues)
PR libstdc++/55463
	* include/std/functional (_Mem_fn): Handle rvalue objects. Add
	noexcept-specifications.
	* testsuite/20_util/function_objects/mem_fn/55463.cc: New.
	* testsuite/20_util/bind/ref_neg.cc: Adjust dg-error line numbers.

From-SVN: r193831
2012-11-26 23:53:29 +00:00
Steven Bosscher d5b8b24b12 * gcc.dg/20050811-2.c: Change -dv option to -graph option.
From-SVN: r193830
2012-11-26 22:58:41 +00:00
Eric Botcazou 90251a6208 * reorg.c (redundant_insn): Do not handle DEBUG_INSNs.
From-SVN: r193829
2012-11-26 21:58:09 +00:00
Georg-Johann Lay d8405cc137 54455.c: Require scheduling.
* gcc.dg/54455.c: Require scheduling.
	* gcc.dg/c1x-align-4.c: Skip avr.
	* gcc.dg/pr44024.c: Skip avr in final scan.

From-SVN: r193827
2012-11-26 18:47:23 +00:00
Georg-Johann Lay 72c931b4f6 re PR testsuite/52641 (Test cases fail for 16-bit int targets)
PR testsuite/52641
	* gcc.c-torture/execute/20120919-1.x: New file (int32plus).
	* gcc.dg/pr54676.c: Make work for 16-bit int.

From-SVN: r193826
2012-11-26 18:46:12 +00:00
Vladimir Makarov f421c426a2 re PR target/55277 (ICE in assign_by_spills, at lra-assigns.c:1217)
2012-11-26  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/55277
	* gcc.target/i386/pr55227.c: New test.

2012-11-26  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/55277
	* lra-constraints.c (in_class_p): Check reg class contents too.

From-SVN: r193824
2012-11-26 18:08:44 +00:00
James Greenhalgh 119103ca7b aarch64-builtins.c (aarch64_builtin_decls): New.
gcc/
	* config/aarch64/aarch64-builtins.c (aarch64_builtin_decls): New.
	(aarch64_init_simd_builtins): Store declaration after builtin
	initialisation.
	(aarch64_builtin_decl): New.
	* config/aarch64/aarch64-protos.h (aarch64_builtin_decl): New.
	* config/aarch64/aarch64.c (TARGET_BUILTIN_DECL): Define.

From-SVN: r193823
2012-11-26 17:48:13 +00:00
Steven Bosscher a27a5de969 invoke.texi: Remove -dv documentation.
gcc/
	* doc/invoke.texi: Remove -dv documentation.  Fix up graph dump related
	documentation.  Document the '-graph' dump option.  Complete the '-slim'
	dump option documentation.

	* common.opt (Variable graph_dump_format): Remove.
	* flag-types.h (enum graph_dump_types): Remove.
	* flags.h (dump_for_graph): Remove.
	* opts.c (decode_d_option): Remove -dv handling.
	* sched-int.h (print_insn, print_pattern, print_value): Move prototypes
	from here ...
	* rtl.h: ...to here.  Add note that these functions ought to be in
	another file.
	* sched-vis.c (print_insn): Add detailed dump for insn notes.
	* print-rtl.c (dump_for_graph): Remove.
	(print_rtx): Remove dump_for_graph related code.
	* graph.c: Almost complete re-write to dump DOT (GraphViz) dumps
	instead of VCG dumps.
	* graph.h (print_rtl_graph_with_bb): Update prototype.
	* passes.c (finish_optimization_passes): Fix profile dump finishing.
	Unconditionally loop over graph dumps to finalize.
	(execute_function_dump): Split code to dump graphs to separate block.
	(execute_one_pass): Don't set TDF_GRAPH here, let the dump option
	decoders do their job.

	* ddg.c (vcg_print_ddg): Make it a DEBUG_FUNCTION.
	* toplev.c: Don't include graph.h.
	* tree-optimize.c: Don't include graph.h.

testsuite/
	* testsuite/gcc.dg/20050811-1.c: Change -dv option to -graph option
	to -fdump-rtl-all.
	* testsuite/gcc.dg/pr37858.c: Remove -dv option.

From-SVN: r193821
2012-11-26 16:47:58 +00:00
Marek Polacek f460c170f0 Remove redundant variable in hash_set.
From-SVN: r193820
2012-11-26 16:38:32 +00:00
Eric Botcazou 8bed680964 tree.h (DECL_RESTRICTED_P): Delete.
* tree.h (DECL_RESTRICTED_P): Delete.
	(DECL_READ_P): Add comment.
	(DECL_NONSHAREABLE): Likewise.
	(TYPE_NO_FORCE_BLK): Fix comment.
	(struct tree_decl_common): Remove decl_restricted_flag, add decl_flag_3.
	* tree-emutls.c (new_emutls_decl): Do not deal with DECL_RESTRICTED_P.
	* tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise.
	* tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
fortran/
	* trans-decl.c (gfc_finish_var_decl): Do not set DECL_RESTRICTED_P.

	* alias.c (nonoverlapping_component_refs_p): Fix thinko.

From-SVN: r193815
2012-11-26 13:56:23 +00:00
Kyrylo Tkachov e3f9361d49 sourcebuild.texi: Document arm_v8_vfp_ok.
gcc/

2012-11-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* doc/sourcebuild.texi: Document arm_v8_vfp_ok.

gcc/testsuite/

2012-11-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* lib/target-supports.exp (check_effective_target_arm_v8_vfp_ok):
	 New procedure.
	(add_options_for_arm_v8_vfp): New procedure.
	* gcc.target/arm/vrintaf32.c: New test.
	* gcc.target/arm/vrintaf64.c: Likewise.
	* gcc.target/arm/vrintmf32.c: Likewise.
	* gcc.target/arm/vrintmf64.c: Likewise.
	* gcc.target/arm/vrintpf32.c: Likewise.
	* gcc.target/arm/vrintpf64.c: Likewise.
	* gcc.target/arm/vrintrf32.c: Likewise.
	* gcc.target/arm/vrintrf64.c: Likewise.
	* gcc.target/arm/vrintxf32.c: Likewise.
	* gcc.target/arm/vrintxf64.c: Likewise.
	* gcc.target/arm/vrintzf32.c: Likewise.
	* gcc.target/arm/vrintzf64.c: Likewise.

From-SVN: r193814
2012-11-26 12:37:55 +00:00
Kyrylo Tkachov 1dd4fe1fd8 arm.h (TARGET_FPU_ARMV8): New macro.
gcc/

2012-11-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/arm/arm.h (TARGET_FPU_ARMV8): New macro.
	* config/arm/arm.md (UNSPEC_VRINTZ, UNSPEC_VRINTP, UNSPEC_VRINTM)
	(UNSPEC_VRINTR, UNSPEC_VRINTX, UNSPEC_VRINTA): New unspecs.
	(f_rints, f_rintd): New types.
	* config/arm/iterators.md (VRINT): New int iterator.
	(F_fma_type): Remove.
	(vfp_type): New mode attribute.
	(vfp_double_cond): Likewise.
	(vrint_pattern, vrint_variant, vrint_predicable): New int attribute.
	* config/arm/vfp.md (fma<SDF:mode>4): Use vfp_type iterator
	instead of F_fma_type.
	(*fmsub<SDF:mode>4, *fnmsub<SDF:mode>4, *fnmadd<SDF:mode>4): Likewise.
	(<vrint_pattern><SDF:mode>2): New pattern.

From-SVN: r193813
2012-11-26 12:33:02 +00:00
Eric Botcazou 67ae67ec94 fold-const.c (const_binop): Adjust comment.
* fold-const.c (const_binop): Adjust comment.
	(extract_muldiv_1): Likewise.
	(fold_comparison): Likewise.
	* stor-layout.c (place_field): Fix typo.
	* tree.c (double_int_fits_to_tree_p): Remove obsolete comment.
	(force_fit_type_double): Likewise.  Fix long line.

From-SVN: r193812
2012-11-26 12:01:07 +00:00
Janus Weil 29be7510af re PR fortran/54997 (-Wunused-function gives false warnings)
2012-11-26  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/54997
	* decl.c (match_procedure_decl): Don't set 'referenced' attribute
	for PROCEDURE declarations.
	* parse.c (gfc_fixup_sibling_symbols,parse_contained): Don't set
	'referenced' attribute for all contained procedures.
	* trans-decl.c (gfc_get_symbol_decl): Allow for unreferenced procedures.
	(build_function_decl): Set TREE_USED for referenced procedures.

2012-11-26  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/54997
	* gfortran.dg/warn_unused_function_2.f90: New.

From-SVN: r193811
2012-11-26 12:16:31 +01:00
Greta Yorsh 3383b7fa40 arm.h (TARGET_LDRD): Reject Thumb1 targets.
2012-11-26  Greta Yorsh  <Greta.Yorsh@arm.com>

	* config/arm/arm.h (TARGET_LDRD): Reject Thumb1 targets.

From-SVN: r193810
2012-11-26 10:38:23 +00:00
Janus Weil fca04db335 re PR fortran/54881 ([OOP] ICE in fold_convert_loc, at fold-const.c:2016)
2012-11-26  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/54881
	* match.c (select_derived_set_tmp,select_class_set_tmp): Removed and
	unified into ...
	(select_type_set_tmp): ... this one. Set POINTER argument according to
	selector.
	* trans-intrinsic.c (gfc_conv_associated): Use 'gfc_class_data_get'
	instead of 'gfc_add_data_component'.

2012-11-26  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/54881
	* gfortran.dg/associated_6.f90: New.
	* gfortran.dg/select_type_30.f03: New.

From-SVN: r193809
2012-11-26 11:30:12 +01:00
Matthias Klose 412dc84237 t-linux (MULTIARCH_DIRNAME): Fix unbalanced parentheses.
2012-11-26  Matthias Klose  <doko@ubuntu.com>

        * config/rs6000/t-linux (MULTIARCH_DIRNAME): Fix unbalanced
        parentheses.

From-SVN: r193807
2012-11-26 09:41:45 +00:00
Jakub Jelinek 751a243337 re PR tree-optimization/54471 (FAIL: gcc.dg/sms-8.c execution test)
PR tree-optimization/54471
	* tree-vrp.c (extract_range_from_binary_expr_1): For MULT_EXPR,
	don't canonicalize range if min2 is zero.

	* gcc.dg/tree-ssa/vrp86.c: New test.
	* gcc.c-torture/execute/pr54471.c: New test.

From-SVN: r193806
2012-11-26 10:19:30 +01:00
Hans-Peter Nilsson d42f26c16c re PR middle-end/55030 (gcc.c-torture/execute/builtins/memcpy-chk.c execution, -Os (et al))
PR middle-end/55030
	* gcc.dg/guality/pr36728-1.c, gcc.dg/guality/pr36728-2.c (foo): Don't
	use volatile asms, use plain asms.   Where the output value for the
	asm is unused, write a global variable.

From-SVN: r193803
2012-11-26 03:25:57 +00:00
Hans-Peter Nilsson adddc3471f re PR middle-end/55030 (gcc.c-torture/execute/builtins/memcpy-chk.c execution, -Os (et al))
PR middle-end/55030
	* builtins.c (expand_builtin_setjmp_receiver): Update comment
	regarding purpose of blockage.
	* emit-rtl.c [!HAVE_blockage] (gen_blockage): Similarly for
	the head comment.
	* rtlanal.c (volatile_insn_p): Ditto.
	* doc/md.texi (blockage): Update similarly.  Change wording to
	require one of two forms, rather than implying a wider choice.
	* cse.c (cse_insn): Where checking for blocking insns, use
	volatile_insn_p instead of manual check for volatile ASM.
	* dse.c (scan_insn): Ditto.
	* cselib.c (cselib_process_insn): Ditto.

From-SVN: r193802
2012-11-26 03:22:15 +00:00
GCC Administrator 15c115d38e Daily bump.
From-SVN: r193801
2012-11-26 00:18:38 +00:00
Uros Bizjak 3cfefd5fdd sw-1.c (dg-options): Add -mtune=generic.
* gcc.target/i386/sw-1.c (dg-options): Add -mtune=generic.

From-SVN: r193798
2012-11-25 23:04:02 +01:00
Uros Bizjak b377a31098 sse.md (<sse>_loadu<ssemodesuffix><avxsizesuffix>): Do not depend on TARGET_SSE_TYPELESS_STORES.
* config/i386/sse.md (<sse>_loadu<ssemodesuffix><avxsizesuffix>):
	Do not depend on TARGET_SSE_TYPELESS_STORES.
	(<sse2>_loaddqu<avxsizesuffix>): Ditto.
	(<sse>_storeu<ssemodesuffix><avxsizesuffix>): Fix handling of
	TARGET_SSE_TYPELESS_STORES.
	(<sse2>_storedqu<avxsizesuffix>): Ditto.

From-SVN: r193797
2012-11-25 21:36:38 +01:00
Tobias Burnus 24a9cea6ef re PR libquadmath/55462 (FAIL: gfortran.dg/quad_2.f90 -O* execution test after revision 193770)
2012-11-25  Tobias Burnus  <burnus@net-b.de>

        PR libquadmath/55462
        * strtod/strtod_l.c (round_and_return): Use HAVE_FENV_H
        instead of nonexisting HAVE_GET_ROUNDING_MODE.

From-SVN: r193796
2012-11-25 20:59:07 +01:00
Thomas Koenig 305a35dafb re PR fortran/30146 (Redefining do-variable in excecution cycle)
2012-11-25  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/30146
	* frontend-passes.c (doloop_warn):  New function.
	(doloop_list):  New static variable.
	(doloop_size):  New static variable.
	(doloop_level):  New static variable.
	(gfc_run_passes): Call doloop_warn.
	(doloop_code):  New function.
	(doloop_function):  New function.
	(gfc_code_walker):  Keep track of DO level.

2012-11-25  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/30146
	* gfortran.dg/do_check_6.f90:  New test.

From-SVN: r193793
2012-11-25 17:24:09 +00:00
Ian Lance Taylor 99303b325e compiler: Don't use memcmp for equality if struct has trailing padding.
From-SVN: r193791
2012-11-25 00:55:35 +00:00
GCC Administrator 489a33f9c1 Daily bump.
From-SVN: r193790
2012-11-25 00:18:12 +00:00
Steven Bosscher 97049e8328 tm.texi.in (DELAY_SLOTS_FOR_EPILOGUE): Remove documentation.
gcc/
	* doc/tm.texi.in (DELAY_SLOTS_FOR_EPILOGUE): Remove documentation.
	(ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
	* doc/tm.texi: Regenerate.
	* reorg.c (fill_simple_delay_slots): Remove code conditional on
	DELAY_SLOTS_FOR_EPILOGUE being defined.
	(make_return_insns, dbr_schedule): Likewise.
	* system.h (DELAY_SLOTS_FOR_EPILOGUE): Poison.
	(ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.

From-SVN: r193787
2012-11-25 00:05:33 +00:00
Paolo Carlini ddffee6824 re PR c++/55446 (array new with size zero vanishes from object code)
/cp
2012-11-24  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/55446
	* init.c (build_vec_init): Do not early return error_mark_mode
	when integer_all_onesp (maxindex).

/testsuite
2012-11-24  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/55446
	* g++.dg/init/new41.C: New.

From-SVN: r193785
2012-11-24 23:45:45 +00:00
Ian Lance Taylor 40ff695f5c syscall: Fix handling of Unix domain @ addresses.
From-SVN: r193783
2012-11-24 20:46:59 +00:00
Jack Howarth f246eadc0a [libsanitizer] add mach_override and enable libsanitizer on darwin
From-SVN: r193781
2012-11-24 18:24:13 +00:00
Matthias Klose 9f1b2dcbad t-linux64 (MULTILIB_OSDIRNAMES): Use x86_64-linux-gnux32 as multiarch name for x32.
2012-11-24  Matthias Klose  <doko@ubuntu.com>

        * gcc/config/i386/t-linux64 (MULTILIB_OSDIRNAMES): Use
        x86_64-linux-gnux32 as multiarch name for x32.

From-SVN: r193779
2012-11-24 17:01:07 +00:00
Thomas Koenig 02bfa7081e re PR fortran/55314 (Rejects some valid ALLOCATE statements)
2012-11-24  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/55314
	* resolve.c (resolve_allocate_deallocate):  Compare all
	subscripts when deciding if to reject a (de)allocate
	statement.

2012-11-24  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/55314
	* gfortran.dg/allocate_error_4.f90:  New test.

From-SVN: r193778
2012-11-24 15:00:16 +00:00
Hans-Peter Nilsson 59ad52e0fb gcc-gdb-test.exp (gdb-test): Pass -- as first argument to send_log.
* lib/gcc-gdb-test.exp (gdb-test): Pass -- as first argument
	to send_log.

From-SVN: r193777
2012-11-24 09:39:38 +00:00
Matthias Klose 5213f20cfb configure.ac (multiarch): Use $enableval instead of $withval.
2012-11-24  Matthias Klose  <doko@ubuntu.com>

        * configure.ac (multiarch): Use $enableval instead of $withval.
        * configure: Regenerate.
        * config/i386/t-kfreebsd (MULTILIB_OSDIRNAMES): Filter out x32.

From-SVN: r193776
2012-11-24 02:25:50 +00:00
H.J. Lu 1773438a1b Don't pass void to fegetround
PR bootstrap/55455
	* quadmath-rounding-mode.h (get_rounding_mode): Don't pass
	void to fegetround.

From-SVN: r193775
2012-11-23 17:12:59 -08:00
GCC Administrator 4197028d21 Daily bump.
From-SVN: r193774
2012-11-24 00:18:05 +00:00
H.J. Lu 8a1af320bc Add the missing file
From-SVN: r193771
2012-11-23 15:37:45 -08:00
Tobias Burnus 05abb346d6 quadmath-rounding-mode.h: New.
2012-11-23  Tobias Burnus  <burnus@net-b.de>
            Joseph Myers  <joseph@codesourcery.com>

        * quadmath-rounding-mode.h: New.
        * printf/fpioconst.c: Update from GLIBC. Fix strtod rounding.
        * printf/fpioconst.h: Ditto.
        * printf/printf_fp.c (__quadmath_printf_fp): Update from GLIBC.
        Make printf respect the rounding mode for decimal output.
        * printf/printf_fphex.c (__quadmath_printf_fphex): Update from
        GLIBC.  Make printf respect the rounding mode for hex output.
        * strtod/strtod_l.c: Update from GLIBC. Make strtod respect the
        rounding mode. Fix strtod handling of underflow.


Co-Authored-By: Joseph Myers <joseph@codesourcery.com>

From-SVN: r193770
2012-11-23 23:11:40 +01:00
Jonathan Wakely aa66b299c8 re PR libstdc++/52680 (std::this_thread::sleep_for #ifdef'd out by _GLIBCXX_USE_NANOSLEEP)
PR libstdc++/52680
	* acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_TIME): Check for usleep and
	sleep if nanosleep is not available. Bump libtool revision.
	* config.h.in: Regenerate.
	* configure: Likewise.
	* config/abi/pre/gnu.ver (GLIBCXX_3.4.18): Add __sleep_for.
	* include/std/thread (this_thread::__sleep_for): Add.
	(this_thread::yield, this_thread::sleep_until, this_thread::sleep_for):
	Declare unconditionally.
	* src/c++11/thread.cc (this_thread::__sleep_for): Define.
	* testsuite/lib/libstdc++.exp (check_v3_target_nanosleep): Rename to
	check_v3_target_sleep.
	* testsuite/lib/dg-options.exp (dg-require-nanosleep): Rename to
	dg-require-sleep.
	* testsuite/30_threads/condition_variable_any/53830.cc: Update.
	* testsuite/30_threads/this_thread/2.cc: Likewise.
	* testsuite/30_threads/this_thread/3.cc: Likewise.
	* testsuite/30_threads/this_thread/4.cc: Likewise.
	* testsuite/30_threads/async/54297.cc: Likewise.

From-SVN: r193769
2012-11-23 22:11:23 +00:00
H.J. Lu 9cb5411c17 Set gcc_version in tsan/Makefile.am
PR sanitizer/55450
	* tsan/Makefile.am (gcc_version): New.
	* tsan/Makefile.in: Regenerated.

From-SVN: r193767
2012-11-23 13:14:05 -08:00
Tobias Burnus a1b98cc1f1 invoke.texi (-fsanitize=address): Remove obsolete remark.
2012-11-23  Tobias Burnus  <burnus@net-b.de>

        * doc/invoke.texi (-fsanitize=address): Remove obsolete
        remark.

From-SVN: r193764
2012-11-23 18:14:56 +01:00
Jakub Jelinek 644525ff99 asan-dg.exp (asan_symbolize): Remove all "BFD: " prefixed lines from the output.
* lib/asan-dg.exp (asan_symbolize): Remove all "BFD: " prefixed lines
	from the output.

From-SVN: r193763
2012-11-23 17:05:03 +01:00