Commit graph

75219 commits

Author SHA1 Message Date
Tom Tromey
e68227b907 * configure, config.in: Rebuild.
* configure.ac: Don't check for ctype.h, time.h.
	* expprint.c: Don't use HAVE_CTYPE_H.
2012-11-14 19:16:04 +00:00
Luis Machado
5e487a5f92 2012-11-14 Luis Machado <lgustavo@codesourcery.com>
* gdb.base/structs3.exp: Run to main before doing any tests.
2012-11-14 19:10:33 +00:00
Michael Eager
d3da77419a opcodes/
* microblaze-opc.h: Define new instruction type INST_TYPE_IMM5,
	update OPCODE_MASK_H13S, add OPCODE_MASK_HN, define MIN_IMM5 / MAX_IMM5,
	and increase MAX_OPCODES.
	(op_code_struct):  add mbar and sleep
	* microblaze-opcm.h (microblaze_instr): add mbar
	Define IMM_MBAR and IMM5_MBAR_MASK
	* microblaze-dis.c: Add get_field_imm5_mbar
	(print_insn_microblaze): Add support for INST_TYPE_IMM5 and INST_TYPE_NONE

gas/
	* config/tc-microblaze.c (md_assemble): Add support for INST_TYPE_IMM5

gas/testsuite/
	* gas/microblaze/allinsn.s: Add mbar and sleep
	* gas/microblaze/allinsn.d: Likewise
2012-11-14 17:05:24 +00:00
Michael Eager
ed8ec0ec78 Add clz opcode.
opcodes/
	* microblaze-opc.h: Increase MAX_OPCODES (op_code_struct):  add clz insn
	* microblaze-opcm.h (microblaze_instr): add clz

gas/testsuite/
	* gas/microblaze/allinsn.s: Add clz insn
	* gas/microblaze/allinsn.d: Likewise
2012-11-14 16:45:01 +00:00
Michael Eager
e692c2171e Add the endian reversing versions of load/store instructions;
2012-11-14  Edgar E. Iglesias <edgar.iglesias@gmail.com>

	* microblaze-opc.h: Increase MAX_OPCODES (op_code_struct):  add lbur,
	lhur, lwr, sbr, shr, swr
	* microblaze-opcm.h (microblaze_instr): add lbur, lhur, lwr, sbr, shr,
	swr

2012-11-14  David Holsgrove  <david.holsgrove@xilinx.com>

	* gas/microblaze/allinsn.exp: New file - test newly added opcodes
	* gas/microblaze/allinsn.s: Likewise
	* gas/microblaze/allinsn.d: Likewise
2012-11-14 16:19:30 +00:00
Tom Tromey
aff68abbd7 * gdbarch.h, gdbarch.c: Rebuild.
* gdbarch.sh (set_target_gdbarch): Rename from
	deprecated_target_gdbarch_select_hack.
	* arch-utils.c (gdbarch_update_p): Update.
	(set_gdbarch_from_file): Update.
2012-11-14 15:40:35 +00:00
Pierre Muller
f7c93334db * MAINTAINERS (Responsible Maintainers/misc): Add myself
as responsible of contrib/ari directory.
2012-11-14 15:18:06 +00:00
Ulrich Weigand
46b596ff8c gas/ChangeLog:
* config/tc-ppc.c (md_apply_fix): Leave field zero when emitting
	an ELF reloc on data as well.

gas/testsuite/ChangeLog:

	* gas/ppc/astest.d: Update for fixup changes.
	* gas/ppc/astest64.d: Likewise.
	* gas/ppc/astest2.d: Likewise.
	* gas/ppc/astest2_64.d: Likewise.
	* gas/ppc/test1elf32.d: Likewise.
	* gas/ppc/test1elf64.d: Likewise.
2012-11-14 13:44:45 +00:00
Tristan Gingold
1778ad74b3 bfd/
2012-11-14  Tristan Gingold  <gingold@adacore.com>

	* mach-o.c (bfd_mach_o_read_main)
	(bfd_mach_o_read_source_version): New functions.
	(bfd_mach_o_read_command): Handle BFD_MACH_O_LC_DATA_IN_CODE,
	BFD_MACH_O_LC_DYLIB_CODE_SIGN_DRS, BFD_MACH_O_LC_MAIN,
	BFD_MACH_O_LC_SOURCE_VERSION.
	* mach-o.h (bfd_mach_o_main_command)
	(bfd_mach_o_source_version_command): New types.
	(bfd_mach_o_load_command): Add fields for these new types.

binutils/
2012-11-14  Tristan Gingold  <gingold@adacore.com>

	* od-macho.c (bfd_mach_o_load_command_name): Add new definitions.
	(dump_load_command): Handle BFD_MACH_O_LC_SOURCE_VERSION
	and BFD_MACH_O_LC_MAIN.
2012-11-14 11:03:27 +00:00
Tristan Gingold
91cb77818b 2012-11-14 Tristan Gingold <gingold@adacore.com>
* external.h (mach_o_entry_point_command_external)
	(mach_o_source_version_command_external)
	(mach_o_data_in_code_entry_external): New structures.

	* loader.h (bfd_mach_o_load_command_type): Add
	BFD_MACH_O_LC_MAIN, BFD_MACH_O_LC_DATA_IN_CODE,
	BFD_MACH_O_LC_SOURCE_VERSION and BFD_MACH_O_LC_DYLIB_CODE_SIGN_DRS.
	(BFD_MACH_O_REFERENCE_MASK): Adjust value.
	(BFD_MACH_O_N_REF_TO_WEAK): New definition.
	(BFD_MACH_O_N_ARM_THUMB_DEF, BFD_MACH_O_N_SYMBOL_RESOLVER): Likewise.
	(bfd_mach_o_data_in_code_entry_kind): New enum.
2012-11-14 10:45:39 +00:00
Tristan Gingold
f4716ee22e 2012-11-14 Tristan Gingold <gingold@adacore.com>
* mach-o.c (bfd_mach_o_canonicalize_one_reloc): Add a special
	handling for non-scattered pairs.  Update comments.
2012-11-14 10:29:46 +00:00
Tristan Gingold
16efefc9e1 2012-11-14 Tristan Gingold <gingold@adacore.com>
* arm.h: New file.
2012-11-14 10:22:27 +00:00
Andrew Burgess
6d67b990e9 http://sourceware.org/ml/gdb-patches/2012-11/msg00308.html
gdb/testsuite/ChangeLog

        * gdb.python/py-type.exp: Uniquify test names.
2012-11-14 10:16:46 +00:00
Yao Qi
e5d9816410 gdb/testsuite/
2012-11-14  Yao Qi  <yao@codesourcery.com>

	* gdb.threads/manythreads.c [DEBUG]: Include "stdio.h".
	(thread_function) [DEBUG]: Call 'printf'.
	* gdb.threads/manythreads.exp: Pass '-DDEBUG' to compilation
	command line if 'DEBUG=1' is passed to test.
	Remove a pattern to match inferior's output.
2012-11-14 05:52:32 +00:00
Yao Qi
2ae28aa91e gdb/
2012-11-14  Daniel Jacobowitz  <dan@codesourcery.com>
	    Yao Qi  <yao@codesourcery.com>

	* arm-tdep.c (arm_addr_bits_remove): Do not adjust the low
	bit of EXC_RETURN.
	(arm_m_exception_cache, arm_m_exception_this_id)
	(arm_m_exception_prev_register, arm_m_exception_unwind_sniffer)
	(arm_m_exception_unwind): New.
	(arm_gdbarch_init): Register arm_m_exception_unwind.
2012-11-14 03:49:12 +00:00
gdbadmin
413d821b4e *** empty log message *** 2012-11-14 00:00:36 +00:00
Alan Modra
52bef019f8 daily update 2012-11-13 23:00:04 +00:00
H.J. Lu
5964fc3adc Allocate elf_segment_map with bfd_zalloc
* elf.c (rewrite_elf_program_header): Allocate elf_segment_map
	with bfd_zalloc, instead of bfd_alloc.
2012-11-13 22:54:21 +00:00
Tom Tromey
62747a60cb 2012-11-13 Giuseppe Montalto <giuseppe.montalto@st.com>
* mi/mi-main.c (mi_cmd_data_write_memory): Handle additional
	parameter COUNT, for pattern filling of memory regions.
	* NEWS: Mention it.
doc
	* gdb.texinfo (GDB/MI Data Manipulation): Document new optional
	parameter "count" of -data-write-memory-bytes, and add an example.
testsuite
	* gdb.mi/mi-fill-memory.exp: New test.
2012-11-13 21:19:11 +00:00
Markus Metzger
4cd2972117 * disasm.h (DISASSEMBLY_FILENAME): New macro.
* disasm.c (do_mixed_source_and_assembly): Pass filename flag on
	to print_source_lines ().
	* symtab.h (PRINT_SOURCE_LINES_FILENAME): New print source lines
	flag.
	* source.c (print_source_lines_base): Prefix source line with
	filename if PRINT_SOURCE_LINES_FILENAME flag is set.
2012-11-13 15:35:43 +00:00
Markus Metzger
dfaae88645 * symtab.h (print_source_lines_flags): New enum.
* source.c (print_source_lines_base): Change noerror to flags.
	(print_source_lines): Change noerror to flags.
2012-11-13 15:19:56 +00:00
Markus Metzger
3ba6ad0f87 * Makefile.in: (INTERNAL_CFLAGS): Add -DGDBSERVER
(various make rules): Remove -DGDBSERVER
2012-11-13 15:01:44 +00:00
Pierre Muller
08850b56ed ARI fixes: Avoid sprintf function use rule.
* charset.c (convert_between_encodings): Use xsnprintf.
	* cli-out.c (cli_field_int): Likewise.
	* cp-namespace.c (cp_lookup_nested_symbol): Likewise.
	* expprint.c (op_name_standard): Likewise.
	* frv-tdep.c (set_variant_num_gprs): Likewise.
	(set_variant_num_fprs): Likewise.
	* m68hc11-tdep.c (m68hc11_initialize_register_info): Likewise.
	* nto-tdep.c (nto_find_and_open_solib): Likewise.
	(nto_init_solib_absolute_prefix): Likewise.
	* source.c (init_source_path): Likewise.
	(print_source_lines_base): Likewise.
	* valprint.c (print_wchar): Likewise.
	* mi/mi-out.c (mi_field_int): Likewise.
	windows-nat.c (windows_pid_to_exec_file): Likewise.
	(windows_create_inferior): Likewise.
	(_initialize_check_for_gdb_ini): Likewise.
2012-11-13 09:46:11 +00:00
Maciej W. Rozycki
cec6a5b82b * readelf.c (get_machine_flags) <EM_MIPS, EM_MIPS_RS3_LE>: Move
code to handle EF_SH_PIC and EF_SH_FDPIC...
	<EM_SH>: ... here.
2012-11-13 00:54:56 +00:00
gdbadmin
7530bb1a56 *** empty log message *** 2012-11-13 00:00:32 +00:00
Alan Modra
005c560c76 daily update 2012-11-12 23:00:03 +00:00
Joel Brobecker
ca9d61b90f rename frame_register_read into deprecated_frame_register_read.
gdb/ChangeLog:

        * frame.h (deprecated_frame_register_read): Renames
        frame_register_read.
        * frame.c (deprecated_frame_register_read): Renames
        frame_register_read.  Update all callers.
        * i386-tdep.c: Update all callers of frame_register_read.
        * infcmd.c: Likewise.
        * jit.c: Likewise.
        * mips-tdep.c: Likewise.
        * mt-tdep.c: Likewise.
        * sh64-tdep.c: Likewise.
2012-11-12 21:59:07 +00:00
Joel Brobecker
b2c7d45a4c Document replacement for frame_register_read (deprecated).
gdb/ChangeLog:

        * frame.h (frame_register_read): Remove FIXME comment.
        * frame.c (frame_register_read): Add suggestion explaining
        which function to use in place of this one.
2012-11-12 21:28:51 +00:00
Tom Tromey
31594462ca * python/python.c (start_type_printers): Initialize 'result_obj'. 2012-11-12 19:24:14 +00:00
Tom Tromey
18a9fc1261 * NEWS: Update.
* data-directory/Makefile.in (PYTHON_FILES): Add
	type_printers.py.
	* python/lib/gdb/command/type_printers.py: New file.
	* python/lib/gdb/command/types.py (TypePrinter): New class.
	(_get_some_type_recognizers, get_type_recognizers,
	apply_type_recognizers, register_type_printer): New
	functions.
	* python/py-objfile.c (objfile_object) <type_printers>: New
	field.
	(objfpy_dealloc): Decref new field.
	(objfpy_new): Set new field.
	(objfpy_get_type_printers, objfpy_set_type_printers): New
	functions.
	(objfile_to_objfile_object): Set new field.
	(objfile_getset): Add "type_printers".
	* python/py-progspace.c (pspace_object) <type_printers>: New
	field.
	(pspy_dealloc): Decref new field.
	(pspy_new): Set new field.
	(pspy_get_type_printers, pspy_set_type_printers): New functions.
	(pspace_to_pspace_object): Set new field.
	(pspace_getset): Add "type_printers".
	* python/python.c (start_type_printers, apply_type_printers,
	free_type_printers): New functions.
	(_initialize_python): Set gdb.type_printers.
	* python/python.h (start_type_printers, apply_type_printers,
	free_type_printers): Declare.
	* typeprint.c (type_print_raw_options, default_ptype_flags):
	Update for new fields.
	(do_free_global_table, create_global_typedef_table,
	find_global_typedef): New functions.
	(find_typedef_in_hash): Use find_global_typedef.
	(whatis_exp): Use create_global_typedef_table.  Change cleanup
	handling.
	* typeprint.h (struct type_print_options) <global_typedefs,
	global_printers>: New fields.
doc
	* gdb.texinfo (Symbols): Document "info type-printers",
	"enable type-printer" and "disable type-printer".
	(Python API): Add new node to menu.
	(Type Printing API): New node.
	(Progspaces In Python): Document type_printers field.
	(Objfiles In Python): Likewise.
	(gdb.types) <get_type_recognizers, apply_type_recognizers,
	register_type_printer, TypePrinter>: Document.
testsuite
	* gdb.base/completion.exp: Update for "info type-printers".
	* gdb.python/py-typeprint.cc: New file.
	* gdb.python/py-typeprint.exp: New file.
	* gdb.python/py-typeprint.py: New file.
2012-11-12 17:41:59 +00:00
Tom Tromey
bd69fc683f * c-typeprint.c (find_typedef_for_canonicalize,
print_name_maybe_canonical): New functions.
	(c_print_type): Look up type name.
	(cp_type_print_derivation_info): Add flags argument.  Use
	print_name_maybe_canonical.
	(cp_type_print_method_args): Add wrapping.
	(c_type_print_varspec_prefix): Use print_name_maybe_canonical.
	(c_type_print_template_args): New function.
	(c_type_print_base): Change wrapping.  Use
	print_name_maybe_canonical.
	<TYPE_CODE_STRUCT>: Possibly create a typedef hash, and do
	type name lookups.
	* gdbtypes.c (types_equal): No longer static.
	* gdbtypes.h (types_equal): Declare.
	* typeprint.c (type_print_raw_options, default_ptype_flags):
	Update.
	(struct typedef_hash_table): New.
	(hash_typedef_field, eq_typedef_field,
	recursively_update_typedef_hash, add_template_parameters,
	create_typedef_hash, free_typedef_hash, do_free_typedef_hash,
	make_cleanup_free_typedef_hash, copy_typedef_hash_element,
	copy_typedef_hash, find_typedef_in_hash): New functions.
	* typeprint.h (struct type_print_options) <local_typedefs>:
	New field.
	(recursively_update_typedef_hash, add_template_parameters,
	create_typedef_hash, free_typedef_hash,
	make_cleanup_free_typedef_hash, copy_typedef_hash,
	find_typedef_in_hash): Declare.
testsuite
	* gdb.base/call-sc.exp: Use "ptype/r".
	* gdb.base/volatile.exp: Don't expect "int".
	* gdb.cp/ptype-flags.cc: New file.
	* gdb.cp/ptype-flags.exp: New file.
	* gdb.cp/templates.exp: Use ptype/r.
	(test_ptype_of_templates, test_template_typedef): Likewise.
	* lib/cp-support.exp (cp_test_ptype_class): Add in_ptype_arg
	argument.  Handle template names and template parameters.
	* gdb.mi/mi-var-cmd.exp: Accept "long".
	* gdb.mi/mi-var-child.exp: Accept "long".
	* gdb.mi/mi-var-display.exp: Accept "long".
	* gdb.mi/mi2-var-child.exp: Accept "long".
2012-11-12 17:37:38 +00:00
Tom Tromey
2621e0fd5c * cp-support.c (inspect_type,
replace_typedefs_qualified_name, replace_typedefs): Add
	finder, data arguments.  Call as needed.
	(cp_canonicalize_string_full): New function.
	(cp_canonicalize_string_no_typedefs): Rewrite.
	* cp-support.h (canonicalization_ftype): New typedef.
	(cp_canonicalize_string_full): Declare.
2012-11-12 17:30:06 +00:00
Tom Tromey
53342f27db * NEWS: Update.
* c-typeprint.c (c_type_print_base): Handle print_method and
	print_typedefs flags.
	* gdbcmd.h (setprinttypelist, showprinttypelist): Declare.
	* python/py-type.c (typy_str): Use LA_PRINT_TYPE and raw
	options.
	* typeprint.c (type_print_raw_options, default_ptype_flags):
	Update for new field.s
	(whatis_exp): Parse flags.  Use LA_PRINT_TYPE.
	(setprinttypelist, showprinttypelist, print_methods,
	print_typedefs): New globals.
	(set_print_type, show_print_type, set_print_type_methods,
	show_print_type_methods, set_print_type_typedefs,
	show_print_type_typedefs): New functions.
	(_initialize_typeprint): Update documentation.  Add "print
	type methods" and "print type typedefs" parameters.
	* typeprint.h (struct type_print_options) <print_methods,
	print_typedefs>: New fields.
doc
	* gdb.texinfo (Symbols): Document "set print type methods",
	"set print type typedefs", and flags to ptype and whatis.
2012-11-12 17:26:21 +00:00
Tom Tromey
6c8702eb92 * c-typeprint.c (cp_type_print_method_args): Add flags
argument.  Call c_print_type, not type_print.
	(c_type_print_base): Call c_print_type, not type_print.
	Update.
2012-11-12 17:20:39 +00:00
Tom Tromey
79d43c6168 * ada-lang.c (user_select_syms, ada_print_subexp): Pass flags
to type-printing functions.
	* ada-lang.h (ada_print_type): Add argument.
	* ada-typeprint.c (print_array_type, print_variant_clauses,
	print_variant_part, print_selected_record_field_types,
	print_record_field_types, print_unchecked_union_type,
	print_func_type, ada_print_type): Add flags argument.
	(ada_print_typedef): Update.
	* c-exp.y (OPERATOR conversion_type_id): Update.
	* c-lang.h (c_print_type, c_type_print_base): Update.
	* c-typeprint.c (c_print_type, c_type_print_varspec_prefix,
	c_type_print_modifier, c_type_print_args,
	c_type_print_varspec_suffix, c_type_print_base): Add flags
	argument.
	* cp-valprint.c (cp_print_class_member): Update.
	* dwarf2read.c (dwarf2_compute_name): Update.
	* f-lang.h (f_print_type): Add argument.
	* f-typeprint.c (f_print_type): Add flags argument.
	* gnu-v3-abi.c (gnuv3_print_method_ptr): Update.
	* go-lang.h (go_print_type): Add argument.
	* go-typeprint.c (go_print_type): Add flags argument.
	* jv-lang.h (java_print_type): Add argument.
	* jv-typeprint.c (java_type_print_base, java_print_type): Add
	flags argument.
	* language.c (unk_lang_print_type): Add flags argument.
	* language.h (struct language_defn) <la_print_type>: Add flags
	argument.
	(LA_PRINT_TYPE): Likewise.
	* m2-lang.h (m2_print_type): Add argument.
	* m2-typeprint.c (m2_print_type, m2_range, m2_typedef,
	m2_array, m2_pointer, m2_ref, m2_procedure, m2_long_set,
	m2_unbounded_array, m2_record_fields): Add flags argument.
	* p-lang.h (pascal_print_type, pascal_type_print_base,
	pascal_type_print_varspec_prefix): Add argument.
	* p-typeprint.c (pascal_print_type,
	pascal_type_print_varspec_prefix, pascal_print_func_args,
	pascal_type_print_varspec_suffix, pascal_type_print_base): Add
	flags argument.
	* symmisc.c (print_symbol): Update.
	* typeprint.c (type_print_raw_options, default_ptype_flags):
	New globals.
	(type_print): Update.
	* typeprint.h (struct type_print_options): New.
	(type_print_raw_options): Declare.
	(c_type_print_varspec_suffix, c_type_print_args): Add argument.
2012-11-12 17:14:55 +00:00
Tom Tromey
b3720c3afd * gdb.cp/classes.exp (test_ptype_class_objects): Remove
"ptype" from calls to cp_test_ptype_class.
	(test_enums): Likewise.
	* gdb.cp/derivation.exp: Remove "ptype" from calls to
	cp_test_ptype_class.
	* gdb.cp/inherit.exp (test_ptype_si): Remove "ptype" from
	calls to cp_test_ptype_class.
	(test_ptype_mi, test_ptype_vi, test_ptype_mvi): Likewise.
	* gdb.cp/virtfunc.exp (test_ptype_of_classes): Remove "ptype"
	from calls to cp_test_ptype_class.
	* lib/cp-support.exp (cp_test_ptype_class): Supply "ptype"
	command here.  Change "in_command" argument to "in_exp".
2012-11-12 17:08:09 +00:00
H.J. Lu
8f5846c8af Correct gas microblaze ChangeLog entry 2012-11-12 16:39:48 +00:00
Michael Eager
477a32403b Add missing test cases.
* gas/microblaze/endian.exp: New file - endian testcase for microblaze / microblazeel.
	* gas/microblaze/endian.s: Likewise.
	* gas/microblaze/endian_be.d: Likewise.
	* gas/microblaze/endian_le.d: Likewise.
	* gas/microblaze/endian_le_elf.d: Likewise.
2012-11-12 00:23:25 +00:00
gdbadmin
45270a439c *** empty log message *** 2012-11-12 00:00:03 +00:00
Alan Modra
b494aad8c3 daily update 2012-11-11 23:00:04 +00:00
DJ Delorie
1f3de044c6 merge from gcc 2012-11-11 22:37:30 +00:00
Thomas Schwinge
416a7dc4fa Merge from GCC.
config/
	* dfp.m4 (enable_decimal_float): Enable for i?86*-*-gnu*.

libdecnumber/
	* configure: Regenerate.
2012-11-11 10:59:50 +00:00
gdbadmin
ddb7cf33ad *** empty log message *** 2012-11-11 00:00:03 +00:00
Alan Modra
f8869e47bf daily update 2012-11-10 23:00:04 +00:00
Keith Seitz
cf4ded82d0 * breakpoint.c (clear_command): Add cleanup for
sals.sals if an argument is given.

	* linespec.c (parse_linespec): Do cleanups after
	parsing a convenience variable.
2012-11-10 20:25:56 +00:00
Keith Seitz
0d63ecdad0 PR gdb/14288
* c-valprint.c (c_val_print): For character arrays
        with "print null" option on, print ellipses if
        the output is truncated and the next character is not \000.
        * valprint.c (MAX_WCHARS): Define.
        (WCHAR_BUFLEN): Likewise.
        (WCHAR_BUFLEN_MAX): Likewise.
        (struct converted_character): New structure.
        (count_next_character): New function.
        (print_converted_chars_to_obstack): New function.
        (generic_printstr): Rewrite using count_next_character
        and print_converted_chars_to_obstack.

        * gdb.base/printcmds.c: Add invalid_XXX globals
        for repeated byte tests.
        * gdb.base/printcmds.exp (test_repeat_bytes): New procedure.
        * gdb.base/wchar.c (main): Add and construct a wchar_t
        array with repeated characters.
        * gdb.base/wchar.exp: Add repeated character tests.
2012-11-10 20:19:01 +00:00
Stephane Carrez
9b8d682720 * tui/tui.c (tui_rl_command_key): Switch to TUI_ONE_COMMAND_MODE
while executing the gdb command.
(tui_rl_startup_hook): Do not switch back to TUI_SINGLE_KEY_MODE if we
are called from prompt_for_continue.
* tui/tui-io.c (tui_redisplay_readline): Likewise.
2012-11-10 13:12:18 +00:00
Stephane Carrez
e840f632eb PR tui/9584
* tui/tui.c (tui_rl_command_key): Do not call execute_command
  but insert the command to execute in readline's buffer.
2012-11-10 12:25:07 +00:00
gdbadmin
9014f82463 *** empty log message *** 2012-11-10 00:00:03 +00:00
Alan Modra
99443492b3 daily update 2012-11-09 23:00:03 +00:00