Commit Graph

96505 Commits

Author SHA1 Message Date
Paolo Carlini
a018595e87 for_each_selectors.h: Minor uglification and stylistic fixes.
2009-10-13  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/parallel/for_each_selectors.h: Minor uglification and
	stylistic fixes.

From-SVN: r152708
2009-10-13 14:57:28 +00:00
Jakub Jelinek
e4fb38bd17 re PR target/41693 (RTL Check Failure in expand_debug_expr, at cfgexpand.c:2371)
PR target/41693
	* rtl.h (DEBUG_EXPR_TREE_DECL): Define.
	* sched-vis.c (print_value): Use it.
	* cselib.c (cselib_hash_rtx): Likewise.
	* print-rtl.c (print_rtx): Likewise.
	* cfgexpand.c (expand_debug_rtx): Likewise.
	* var-tracking.c (vt_expand_loc_callback): Likewise.

From-SVN: r152707
2009-10-13 15:56:07 +02:00
Richard Guenther
ab6218f150 re PR lto/41565 (-m32 causes an ICE when the object files were compiled with 64bit)
2009-10-13  Richard Guenther  <rguenther@suse.de>

	PR lto/41565
	* opts.c (handle_option): Split out code to handle setting
	the options flag var ...
	(set_option): ... here.
	* opts.h (set_option): Declare.
	* lto-opts.c (register_user_option_p): Include -fexceptions
	and all position independent code variants.
	(handle_common_option): Remove.
	(lto_reissue_options): Use set_option.

From-SVN: r152705
2009-10-13 12:42:30 +00:00
Richard Guenther
b02a92ce3e re PR lto/41668 (ICE in get_alias_set, at alias.c:698)
2009-10-13  Richard Guenther  <rguenther@suse.de>

	PR lto/41668
	* gcc.dg/lto/20091006-2_0.c: New testcase.
	* gcc.dg/lto/20091006-2_1.c: Likewise.
	* gcc.dg/lto/20091006-2_2.c: Likewise.
	* gcc.dg/lto/20091013-1_0.c: Likewise.
	* gcc.dg/lto/20091013-1_1.c: Likewise.
	* gcc.dg/lto/20091013-1_2.c: Likewise.

From-SVN: r152704
2009-10-13 12:39:06 +00:00
Edward Smith-Rowland
11c29d4bac Added myself to MAINTAINERS (Write After Approval).
From-SVN: r152703
2009-10-13 12:18:11 +00:00
Martin Jambor
c4e5fe4b51 re PR tree-optimization/41661 (ICE due to IPCP trying to create/fold a REAL typed comparision)
2009-10-13  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/41661
	* ipa-prop.c (compute_complex_pass_through): Allow only operations
	that are tcc_comparisons or do not change the type in any
	un-usleless way.
	* ipa-cp.c (ipcp_lattice_from_jfunc): Request boolean type when
	folding tcc_comparison operations.

	* testsuite/gcc.c-torture/compile/pr41661.c: New test.

From-SVN: r152702
2009-10-13 13:31:08 +02:00
Edward Smith-Rowland
3525f49b5a Added <initializer_list> to precompiled/stdc++.h.
From-SVN: r152701
2009-10-13 11:26:06 +00:00
Andreas Krebbel
35fcb6ba7d s390.c (s390_encode_section_info): Handle BLKmode properly.
2009-10-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

	* config/s390/s390.c (s390_encode_section_info): Handle BLKmode
	properly.

From-SVN: r152700
2009-10-13 10:50:41 +00:00
Richard Guenther
076c7ebe99 Makefile.am (liblto_plugin_la_LIBADD): Link against the correct libiberty.
2009-10-13  Richard Guenther  <rguenther@suse.de>

	* Makefile.am (liblto_plugin_la_LIBADD): Link against the
	correct libiberty.
	* Makefile.in: Regenerated.

From-SVN: r152698
2009-10-13 09:15:00 +00:00
Ralf Wildenhues
e4c5bd489f Fix toplevel 'config.status --recheck' for --enable-lto.
/:
	* configure.ac: Add 'lto' to enable_languages, not
	new_enable_languages, and only if not already present.
	* configure: Regenerate.

From-SVN: r152697
2009-10-13 03:31:50 +00:00
Jerry DeLisle
4e70743f83 re PR libfortran/41683 (F2003 Repeat specification after P descriptor rejected)
2009-10-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/41683
	* gfortran.dg/fmt_error_9.f: Add check for repeat count after P.

From-SVN: r152696
2009-10-13 02:03:54 +00:00
Jerry DeLisle
0a81006d27 re PR libfortran/41683 (F2003 Repeat specification after P descriptor rejected)
2009-10-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/41683
	* io/format.c (parse_format_list): Allow a repeat specifier immediately
	after a P specifier.

From-SVN: r152695
2009-10-13 01:43:39 +00:00
GCC Administrator
b19dd52777 Daily bump.
From-SVN: r152694
2009-10-13 00:17:06 +00:00
Richard Henderson
bad72d7a82 Rebuild config.in, configure.
From-SVN: r152687
2009-10-12 14:29:10 -07:00
Jason Merrill
478a716ab7 re PR c++/37875 ([c++0x] misinterpreted closing angle bracket in decltype operand)
PR c++/37875
	* parser.c (cp_parser_decltype): Set greater_than_is_operator_p.

From-SVN: r152686
2009-10-12 17:04:35 -04:00
Jason Merrill
23f392e019 re PR c++/37766 ([C++0x] ICE with function's default reference template parameter)
PR c++/37766
	* pt.c (type_unification_real): Call convert_template_argument
	for function default template arguments.
	(check_default_tmpl_args): Suggest -std=c++0x when function default
	template args seen in C++98 mode.

From-SVN: r152685
2009-10-12 17:04:27 -04:00
Janis Johnson
610bf3ebef * gcc.dg/lto/20090914-2.c: Fix typos in test directives.
From-SVN: r152684
2009-10-12 20:17:43 +00:00
Uros Bizjak
4c76903690 i386.md (*setcc_<mode>_2): Remove insn pattern.
* config/i386/i386.md (*setcc_<mode>_2): Remove insn pattern.

From-SVN: r152683
2009-10-12 21:23:30 +02:00
Paolo Carlini
77e3c51603 random.h (class linear_congruential_engine, [...]): Do not use simulated concept checks...
2009-10-12  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/bits/random.h (class linear_congruential_engine,
	class mersenne_twister_engine, class subtract_with_carry_engine,
	class discard_block_engine, class independent_bits_engine,
	class shuffle_order_engine, class uniform_int_distribution,
	class binomial_distribution, class geometric_distribution,
	class negative_binomial_distribution, class poisson_distribution,
	class discrete_distribution): Do not use simulated concept checks,
	tidy startic_asserts on argument types and ranges.
	(class uniform_real_distribution, class normal_distribution,
	class lognormal_distribution, class gamma_distribution,
	class chi_squared_distribution, class cauchy_distribution,
	class fisher_f_distribution, class student_t_distribution,
	class exponential_distribution, class weibull_distribution,
	class extreme_value_distribution, class piecewise_linear_distribution,
	class piecewise_constant_distribution): Add static_assert on
	template argument type.
	* include/std/random: Do not include <bits/concept_check.h>.
	* testsuite/26_numerics/random/discard_block_engine/cons/base_move.cc:
	Fix.
	* testsuite/26_numerics/random/discard_block_engine/cons/seed1.cc:
	Likewise.
	* testsuite/26_numerics/random/discard_block_engine/cons/seed2.cc:
	Likewise.
	* testsuite/26_numerics/random/discard_block_engine/cons/base_copy.cc:
	Likewise.
	* testsuite/26_numerics/random/discard_block_engine/cons/default.cc:
	Likewise.
	* testsuite/26_numerics/random/discard_block_engine/cons/seed_seq.cc:
	Likewise.
	* testsuite/26_numerics/random/discard_block_engine/requirements/
	typedefs.cc: Likewise.
	* testsuite/26_numerics/random/discard_block_engine/operators/
	equal.cc: Likewise.
	* testsuite/26_numerics/random/discard_block_engine/operators/
	serialize.cc: Likewise.
	* testsuite/26_numerics/random/linear_congruential_engine/
	requirements/non_uint_neg.cc: Tweak.

From-SVN: r152682
2009-10-12 19:11:31 +00:00
Alexandre Oliva
0ca5af51ab re PR debug/41343 (sysdeps/ieee754/dbl-64/dosincos.c from glibc causes excessive memory use)
gcc/ChangeLog:
PR debug/41343
PR debug/41447
PR debug/41264
PR debug/41338
* tree.def (DEBUG_EXPR_DECL): New.
* rtl.def (DEBUG_EXPR): New.
* gengtype.c (adjust_field_rtx_def): Handle it.
* tree-ssa.c (propagate_var_def_into_debug_stmts): Rename to...
(insert_debug_temp_for_var_def): ... this.  Drop support for
moving.  Take iterator for def stmt; insert debug stmt before it.
Scan early for use count and kind in debug stmts.
(propagate_defs_into_debug_stmts): Rename to...
(insert_debug_temps_for_defs): ... this.  Likewise.
* tree.h (DEBUG_TEMP_UID): New.
* tree.c (next_debug_decl_uid): New.
(make_node_stat): Count debug decls separately.
(copy_node_stat): Likewise.
* cfgexpand.c (expand_debug_expr): Handle DEBUG_EXPR_DECL.
* var-tracking.c (dv_is_decl_p): Recognize it.
(VALUE_RECURSED_INTO): Apply to DEBUG_EXPRs too.
(track_expr_p): Track expanded DEBUG_EXPR_DECLs.
(vt_expand_loc_callback): Expand DEBUG_EXPRs.
(emit_note_insn_var_location): Don't emit notes for DEBUG_EXPR_DECLs.
* cselib.c (rtx_equal_for_cselib_p): Handle DEBUG_EXPR.
(cselib_hash_rtx): Likewise.
(cselib_expand_value_rtx_1): Use callback for DEBUG_EXPR.
* tree-ssa-operands.c (get_expr_operands): Skip DEBUG_EXPR_DECLs in
debug bind stmts.
* emit-rtl.c (verify_rtx_sharing): Handle DEBUG_EXPR and VALUE.
(copy_rtx_if_shared_1, reset_used_flags, set_used_flags): Likewise.
* rtl.c (copy_rtx): Likewise.
(rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_EXPR.
* print-rtl.c (print_rtx): Likewise.
* sched-vis.c (print_value): Likewise.
(print_insn): Handle DEBUG_EXPR_DECL.
* tree-dump.c (dequeue_and_dump): Likewise.
* tree-pretty-print.c (dump_decl_name, dump_generic_node): Likewise.
* gimple-iterator (gsi_replace): Check for same lhs.
(gsi_remove): Insert debug temps.
* tree-ssa-loop-im.c (rewrite_reciprocal): Replace with same lhs.
(move_computations_stmt): Drop explicit propagation into debug stmts.
(rewrite_bittest): Likewise.  Use gsi_remove for propagation.
* tree-ssa-reassoc.c (rewrite_expr_tree, linearize_expr): Likewise.
* tree-ssa-sink.c (statement_sink_location): Likewise.
* tree-ssa-forwprop (forward_propagate_addr_expr): Likewise.
* tree-ssanames.c (release_ssa_name): Adjust for rename.
* tree-flow.h: Likewise.
* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Don't mark
debug temps without values.
(eliminate_unnecessary_stmts): Don't discard just-inserted
debug stmts.
gcc/testsuite/ChangeLog:
PR debug/41343
PR debug/41447
PR debug/41264
PR debug/41338
* gcc.dg/guality/pr41447-1.c: New.
* gcc.dg/debug/pr41264-1.c: New.
* gcc.dg/debug/pr41343-1.c: New.

From-SVN: r152681
2009-10-12 18:58:38 +00:00
Hans-Peter Nilsson
2e723874b5 re PR target/26515 (peephole2 causes unrecognized insn, zero_extending non-general register)
PR target/26515
	* gcc.dg/torture/pr26515.c: New test.

From-SVN: r152677
2009-10-12 17:40:08 +00:00
Hans-Peter Nilsson
365cacbf41 re PR target/26515 (peephole2 causes unrecognized insn, zero_extending non-general register)
PR target/26515
	* config/cris/cris.md (andu): Check that operand 1 is one of the
	general registers.  Fix typo in head comment.

From-SVN: r152676
2009-10-12 17:37:48 +00:00
Janis Johnson
af672ec108 fix typo from previous change to ChangeLog
From-SVN: r152672
2009-10-12 17:14:53 +00:00
Janis Johnson
7b25ea29a8 re PR testsuite/41659 (FAIL: gcc.dg/lto/20090914-2 c_lto_20090914-2_0.o assemble, -O0 -fwhopr)
PR testsuite/41659
	* gcc.dg/lto/20090914-2.c: Use dg-skip-if to skip test.
	* lib/lto.exp (lto-get-options-main): Report error for using "target"
	or "xfail" with dg-lto-dg.

From-SVN: r152671
2009-10-12 17:13:41 +00:00
Stefan Dösinger
afd2c302c6 i386.md (vswapmov): New.
2009-10-12  Stefan Dösinger  <stefan@codeweavers.com>

	* config/i386/i386.md (vswapmov): New.
	* config/i386/i386.c (ix86_handle_fndecl_attribute): New.
	(ix86_function_ms_hook_prologue): New.
	(ix86_expand_prologue): Handle ms_hook_prologue attribute.
	* configure.ac: Test for swap suffix support in as.
	* configure: Rebuild.

From-SVN: r152670
2009-10-12 09:36:37 -07:00
Michael Matz
ea1b2f550d one_time_plugin.c: Update test to use the cfg pass.
* gcc.dg/plugin/one_time_plugin.c: Update test to use the cfg
pass.

From-SVN: r152669
2009-10-12 16:31:37 +00:00
Jakub Jelinek
821bdb2322 re PR target/41680 (ICE in trunc_int_for_mode)
PR target/41680
	* config/i386/i386.md (split after *testqi_ext_3_rex64): Only narrow
	paradoxical subregs to prevent partial register stalls if the inner
	mode is integer mode.

	* g++.dg/torture/pr41680.C: New test.

From-SVN: r152665
2009-10-12 15:35:03 +02:00
Uros Bizjak
aeaf114b41 i386.md (*setcc_<mode>_2): Do not use ix86_expand_clear to zero operand 0.
* config/i386/i386.md (*setcc_<mode>_2): Do not use ix86_expand_clear
	to zero operand 0.

From-SVN: r152664
2009-10-12 14:31:38 +02:00
Dodji Seketeli
9ef3dbcdae Candidate fix for PR c++/41570
gcc/ChangeLog:
	PR c++/41570
	* gcc/dwarf2out.c (template_parameter_pack_die,
	gen_formal_parameter_pack_die): Use add_name_and_src_coords_attributes.

gcc/testsuite/ChangeLog:
	PR c++/41570
	* gcc/testsuite/g++.dg/debug/dwarf2/template-params-7.C: New test.

From-SVN: r152663
2009-10-12 13:57:30 +02:00
Alexandre Oliva
3a56edc75e re PR debug/41616 (Variables promoted to Gimple registers by aliasing are not getting debug statements.)
gcc/ChangeLog:
PR debug/41616
* tree-into-ssa.c (insert_phi_nodes_for): Build debug bind stmts
on updates too.
(maybe_register_def): Likewise.  Take stmt iterator.
(rewrite_update_stmt): Take stmt iterator and pass it on.
(rewrite_update_enter_block): Pass stmt iterator.
gcc/testsuite/ChangeLog:
PR debug/41616
* gcc.dg/guality/pr41616-1.c: New.

From-SVN: r152662
2009-10-12 05:15:02 +00:00
Jason Merrill
45fe7947ed re PR c++/37204 ([c++0x] reinterpret_cast<T&&>(v) incorrectly yields an lvalue)
PR c++/37204
	* typeck.c (build_reinterpret_cast_1): Handle rvalue refs
	properly.

From-SVN: r152661
2009-10-12 00:39:04 -04:00
Jerry DeLisle
420bc2e7aa re PR fortran/38439 (I/O PD edit descriptor inconsistency)
2009-10-11  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/38439
	* gfortran.dg/fmt_error_9.f: New test.
	* gfortran.dg/fmt_error_10.f: New test.

From-SVN: r152658
2009-10-12 00:54:11 +00:00
Jerry DeLisle
a30595bf43 re PR fortran/38439 (I/O PD edit descriptor inconsistency)
2009-10-11  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/38439
	* io/format.c (parse_format_list): Correct logic for FMT_F reading vs
	writing. Code clean-up.

From-SVN: r152657
2009-10-12 00:52:45 +00:00
GCC Administrator
f4089aae40 Daily bump.
From-SVN: r152656
2009-10-12 00:16:42 +00:00
Andrew Pinski
2c93399fdf spu.c (TARGET_BUILTIN_DECL): Define.
2009-10-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        * config/spu/spu.c (TARGET_BUILTIN_DECL): Define.
        (spu_builtin_decl): New function.

From-SVN: r152651
2009-10-11 14:58:13 -07:00
Uros Bizjak
bfb597465a i386.md (SWIM): New mode iterator.
* config/i386/i386.md (SWIM): New mode iterator.
	(mov<mode>cc): Macroize expander from mov{qi,hi,si,di}cc patterns
	using SWIM mode iterator.
	(x86_mov<mode>cc_0_m1): Macroize insn from x86_mov{si,di}cc_0_m1
	patterns using SWI48 mode iterator.
	(*x86_mov<mode>cc_0_m1_se):  Macroize insn from
	*x86_mov{si,di}cc_0_m1_se patterns using SWI48 mode iterator.
	(*x86_mov<mode>cc_0_m1_neg): New insn pattern.
	(*mov<mode>cc_noc): Macroize insn from *mov{hi,si,di}cc_noc
	patterns using SWI248 mode iterator.
	* config/i386/i386.c (ix86_expand_int_movcc): Update the call to
	gen_x86_movdicc_0_m1_rex64 for renamed function

From-SVN: r152650
2009-10-11 23:49:10 +02:00
Jose Ruiz
cb7d60a677 re PR target/33743 (unwinding through signal frames)
PR target/33743
	* config/sparc/sol2.h (MD_UNWIND_SUPPORT): Define.
	* config/sparc/sol2-unwind.h: New file.

Co-Authored-By: Eric Botcazou <ebotcazou@adacore.com>

From-SVN: r152649
2009-10-11 20:48:46 +00:00
Olivier Hainque
8d232178a9 re PR target/33743 (unwinding through signal frames)
PR target/33743
	* config/i386/sol2.h (MD_UNWIND_SUPPORT): Define.
	* config/i386/sol2-unwind.h: New file.

Co-Authored-By: Eric Botcazou <ebotcazou@adacore.com>

From-SVN: r152648
2009-10-11 20:06:12 +00:00
H.J. Lu
e1d4f419ea re PR target/41665 (Typo in addsi_1_zext?)
2009-10-11  H.J. Lu  <hongjiu.lu@intel.com>

	PR target/41665
	* config/i386/i386.md (addsi_1_zext): Get the proper second
	operand for lea.

From-SVN: r152647
2009-10-11 12:42:54 -07:00
Richard Sandiford
c47d1dbaeb simplify-rtx.c (simplify_replace_rtx): Use rtx_equal_p for all OLD_RTXes, not just REGs.
gcc/
	* simplify-rtx.c (simplify_replace_rtx): Use rtx_equal_p for
	all OLD_RTXes, not just REGs.  Use copy_rtx to create the
	replacement value.

From-SVN: r152646
2009-10-11 19:09:01 +00:00
Jerry DeLisle
3c6d5e12dd re PR fortran/38439 (I/O PD edit descriptor inconsistency)
2009-10-11 Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/38439
	* io.c (check_format): Fix locus for error messages and fix a comment.

From-SVN: r152645
2009-10-11 17:41:23 +00:00
Jerry DeLisle
d8c00a207c re PR fortran/38439 (I/O PD edit descriptor inconsistency)
2009-10-11  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/38439
	* io/format.c (parse_format_list): Add check for tokens not allowed
	after P specifier. Fix comments.  Remove un-needed code. Fix the
	default exponent list. Correct pointer assignment error.

From-SVN: r152644
2009-10-11 17:37:50 +00:00
Richard Guenther
652a8c1cde gimple.c (iterative_hash_type_name): Do not handle special anonymous names.
2009-10-11  Richard Guenther  <rguenther@suse.de>

	* gimple.c (iterative_hash_type_name): Do not handle special
	anonymous names.

	cp/
	* tree.c (cp_free_lang_data): Drop anonymous aggregate names.

From-SVN: r152643
2009-10-11 16:29:57 +00:00
Uros Bizjak
b09ee6aaf7 i386.md (*setcc_di_1): New insn_and_split pattern.
* config/i386/i386.md (*setcc_di_1): New insn_and_split pattern.
	(*setcc_si_1_and): Ditto.
	(*setcc_si_1_movzbl): Ditto.
	(*setcc_<mode>_2): Ditto.
	(*setcc_qi): Rename from *setcc_1.
	(*setcc_qi_slp): Rename from *setcc_2.

	(*zero_extendqihi2_movzbw_and splitter): Use ix86_expand_clear.
	(*zero_extendqisi2_movzbw_and splitter): Ditto.

	* config/i386/i386.c (ix86_expand_clear): Remove reload_completed from
	"if" condition, there is already assert with reload_completed present.

From-SVN: r152642
2009-10-11 14:53:24 +02:00
Paul Thomas
1aa4ade670 re PR fortran/41583 ([OOP] TYPE IS rejected because of way vtable index is implemented)
2009-10-11  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/41583
	* decl.c (hash_value): New function.
	(gfc_match_derived_decl): Call it.

2009-10-11  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/41583
	* gfortran.dg/class_4a.f03: New test with class_4b,c and d.f03.
	* gfortran.dg/class_4b.f03: As above.
	* gfortran.dg/class_4c.f03: As above.
	* gfortran.dg/class_4d.f03: As above.

From-SVN: r152641
2009-10-11 12:24:51 +00:00
Paul Thomas
a14ce12818 re PR fortran/40440 (Automatic deallocation component of DT function return value)
2009-10-11  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/40440
	* decl.c (hash_value): New function.
	(gfc_match_derived_decl): Call it.

2009-10-11  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/40440
	* gfortran.dg/class_4a.f03: New test with class_4b,c and d.f03.
	* gfortran.dg/class_4b.f03: As above.
	* gfortran.dg/class_4c.f03: As above.
	* gfortran.dg/class_4d.f03: As above.

From-SVN: r152640
2009-10-11 12:20:09 +00:00
Richard Guenther
b89127e20f re PR tree-optimization/41555 (possible miscompilation in whole-program mode)
2009-10-11  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/41555
	* gcc.dg/torture/pr41555.c: New testcase.

From-SVN: r152639
2009-10-11 11:24:10 +00:00
Gerald Pfeifer
57703d27e2 plugin.c (try_init_one_plugin): Improve constness of variable err.
* plugin.c (try_init_one_plugin): Improve constness of variable
	err.

From-SVN: r152638
2009-10-11 09:17:09 +00:00
GCC Administrator
fdd504a226 Daily bump.
From-SVN: r152635
2009-10-11 00:16:51 +00:00
Jerry DeLisle
007dccd795 re PR libfortran/35862 ([F2003] Implement new rounding modes for run time)
2009-10-10  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/35862
	* gfortran.dg/round_2.f03: Eliminate possible compile error. Use max
	function correctly.

From-SVN: r152632
2009-10-10 23:02:11 +00:00