Commit graph

144299 commits

Author SHA1 Message Date
Jakub Jelinek
f0516ca404 re PR c++/69658 (Bogus "C99 designator outside aggregate initializer" error)
PR c++/69658
	* init.c (expand_default_init): Only call reshape_init
	in the direct-initialization from an initializer list case.

	* g++.dg/init/pr69658.C: New test.

From-SVN: r233435
2016-02-15 23:05:12 +01:00
Jakub Jelinek
ba6b3795d4 re PR c++/69797 (ICE on invalid code on x86_64-linux-gnu in operator[], at vec.h:714)
PR c++/69797
	* c-common.c (sync_resolve_size): Diagnose too few arguments
	even when params is non-NULL empty vector.

	* c-c++-common/pr69797.c: New test.

From-SVN: r233434
2016-02-15 22:30:50 +01:00
Evandro Menezes
c297d256e3 Add support for the FCCMP insn types
2016-01-21  Evandro Menezes  <e.menezes@samsung.com>

gcc/
	* config/aarch64/aarch64.md (fccmp): Change insn type.
	(fccmpe): Likewise.
	* config/aarch64/thunderx.md (thunderx_fcmp): Add "fccmp{s,d}" types.
	* config/arm/cortex-a53.md (cortex_a53_fpalu): Likewise.
	* config/arm/cortex-a57.md (cortex_a57_fp_cmp): Likewise.
	* config/arm/xgene1.md (xgene1_fcmp): Likewise.
	* config/arm/exynos-m1.md (exynos_m1_fp_ccmp): New insn reservation.
	* config/arm/types.md (fccmps): Add new insn type.
	(fccmpd): Likewise.

From-SVN: r233432
2016-02-15 21:15:49 +00:00
Jason Merrill
2bd0a2d6b1 re PR c++/69753 (bogus: expected primary-expression before ‘>’ token)
PR c++/69753

	* search.c (any_dependent_bases_p): Split out...
	* name-lookup.c (do_class_using_decl): ...from here.
	* call.c (build_new_method_call_1): Don't complain about missing object
	if there are dependent bases.  Tweak error.
	* tree.c (non_static_member_function_p): Remove.
	* pt.c (type_dependent_expression_p): A member template of a
	dependent type is dependent.
	* cp-tree.h: Adjust.

From-SVN: r233431
2016-02-15 16:14:05 -05:00
Jason Merrill
fe69277d66 re PR c++/68890 (ICE in verify_ctor_sanity, at cp/constexpr.c:2113)
PR c++/68890

	* constexpr.c (verify_ctor_sanity): Remove CONSTRUCTOR_NELTS check.

From-SVN: r233430
2016-02-15 16:13:57 -05:00
Bernd Edlinger
e8444ca6f8 * alias.c (get_alias_set): Fix a typo in comment.
From-SVN: r233428
2016-02-15 20:31:45 +00:00
Prathamesh Kulkarni
de3f9a2d73 target-supports.exp (check_effective_target_section_anchors): Add check for aarch64*-*-*.
2016-02-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

testsuite/
        * lib/target-supports.exp (check_effective_target_section_anchors): Add
        check for aarch64*-*-*.

From-SVN: r233426
2016-02-15 17:28:48 +00:00
Richard Biener
5d30c58de4 re PR tree-optimization/69595 (Bogus -Warray-bound warning due to missed optimization)
2016-02-15  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69595
	* match.pd: Complete range test simplification to true.

From-SVN: r233425
2016-02-15 13:49:42 +00:00
Bernd Schmidt
53250f44c0 Avoid removing sets of a pseudo PIC register in LRA.
PR rtl-optimization/69648
	* lra-constraints.c (update_ebb_live_info): Don't remove sets of
	pic_offset_table_rtx.

From-SVN: r233424
2016-02-15 12:06:44 +00:00
Bernd Schmidt
07b383317d Don't make something with an autoinc an equivalencing insn (PR69752).
PR rtl-optimization/69752
	* ira.c (update_equiv_regs): When looking for more than a single SET,
	also take other side effects into account.

From-SVN: r233423
2016-02-15 12:04:13 +00:00
Marcin Kościelnicki
7e2507a578 S/390: New mcount call sequence for z900+ CPUs in 31-bit mode.
gcc/ChangeLog:

2016-02-15  Marcin Kościelnicki  <koriakin@0x04.net>

	* config/s390/s390.c (s390_function_profiler): Add a new sequence
	for z900+ CPUs in 31-bit mode.

From-SVN: r233422
2016-02-15 11:48:28 +00:00
Marcin Kościelnicki
4cb4721f93 S/390: Add -fsplit-stack support
libgcc/ChangeLog:

	* config.host: Use t-stack and t-stack-s390 for s390*-*-linux.
	* config/s390/morestack.S: New file.
	* config/s390/t-stack-s390: New file.
	* generic-morestack.c (__splitstack_find): Add s390-specific code.

gcc/ChangeLog:

	* common/config/s390/s390-common.c (s390_supports_split_stack):
	New function.
	(TARGET_SUPPORTS_SPLIT_STACK): New macro.
	* config/s390/s390-protos.h: Add s390_expand_split_stack_prologue.
	* config/s390/s390.c (struct machine_function): New field
	split_stack_varargs_pointer.
	(s390_register_info): Mark r12 as clobbered if it'll be used as temp
	in s390_emit_prologue.
	(s390_emit_prologue): Use r12 as temp if r1 is taken by split-stack
	vararg pointer.
	(morestack_ref): New global.
	(SPLIT_STACK_AVAILABLE): New macro.
	(s390_expand_split_stack_prologue): New function.
	(s390_live_on_entry): New function.
	(s390_va_start): Use split-stack vararg pointer if appropriate.
	(s390_asm_file_end): Emit the split-stack note sections.
	(TARGET_EXTRA_LIVE_ON_ENTRY): New macro.
	* config/s390/s390.md (UNSPEC_STACK_CHECK): New unspec.
	(UNSPECV_SPLIT_STACK_CALL): New unspec.
	(UNSPECV_SPLIT_STACK_DATA): New unspec.
	(split_stack_prologue): New expand.
	(split_stack_space_check): New expand.
	(split_stack_data): New insn.
	(split_stack_call): New expand.
	(split_stack_call_*): New insn.
	(split_stack_cond_call): New expand.
	(split_stack_cond_call_*): New insn.

From-SVN: r233421
2016-02-15 10:20:18 +00:00
Richard Biener
17a3b96792 re PR tree-optimization/69783 (Loop is not vectorized after r233212)
2016-02-15  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69783
	* tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
	Add trivially correct cases.

	* gcc.dg/vect/pr69783.c: New testcase.

From-SVN: r233420
2016-02-15 09:40:01 +00:00
Tom de Vries
ed5d948da9 Don't mark offload symbols with force_output in ltrans
2016-02-15  Tom de Vries  <tom@codesourcery.com>

	PR lto/69655
	* lto-cgraph.c (input_offload_tables): Add and handle bool parameter
	do_force_output.
	* lto-streamer.h (input_offload_tables): Add and handle bool parameter.

	* lto.c (read_cgraph_and_symbols): Call input_offload_tables with
	argument.

From-SVN: r233419
2016-02-15 09:30:31 +00:00
Richard Biener
1c48bff185 re PR tree-optimization/69776 (Wrong optimization with aliasing)
2016-02-15  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69776
	* tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
	* tree-ssa-sccvn.c (vn_reference_lookup): Add parameter to
	indicate whether we can use TBAA to disambiguate against stores.
	Use alias-set zero if not.
	(visit_reference_op_store): Do not use TBAA when looking up
	redundant stores.
	* tree-ssa-pre.c (compute_avail): Use TBAA here.
	(eliminate_dom_walker::before_dom_children): But not when looking
	up redundant stores.

	* gcc.dg/torture/pr69776.c: New testcase.

From-SVN: r233418
2016-02-15 08:42:38 +00:00
GCC Administrator
9e074c0d6d Daily bump.
From-SVN: r233417
2016-02-15 00:16:14 +00:00
John David Anglin
fe4f432a9c pa.md (absqi2, [...]): New.
* config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New.

From-SVN: r233414
2016-02-14 18:26:00 +00:00
Thomas Koenig
1e6025b653 re PR fortran/60526 (Accepts-invalid: Variable name same as type name)
2016-02-14  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/60526
	* decl.c (build_sym):  If the name has already been defined as a
	type, it has a symtree with an upper case letter at the beginning.
	If such a symtree exists, issue an error and exit.  Don't do
	this if there is no corresponding upper case letter.


2016-02-14  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/60526
	* gfortran.dg/type_decl_4.f90:  Reinstated.

From-SVN: r233413
2016-02-14 17:08:44 +00:00
John David Anglin
d33082792f re PR fortran/68746 (FAIL: gfortran.dg/read_dir.f90 -O0 execution test)
PR fortran/68746
	* gfortran.dg/read_dir.f90: Xfail on hppa*-*-hpux*.

From-SVN: r233412
2016-02-14 16:29:08 +00:00
Thomas Koenig
b7c5658195 re PR fortran/60526 (Accepts-invalid: Variable name same as type name)
2016-02-14  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/60526
	PR bootstrap/69816
	* decl.c (build_sym):  Reverted previous patch.

2016-02-14  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/60526
	PR bootstrap/69816
	* gfortran.dg/type_decl_4.f90:  Removed.

From-SVN: r233411
2016-02-14 15:13:39 +00:00
Thomas Koenig
60cb4ef555 re PR fortran/60526 (Accepts-invalid: Variable name same as type name)
2016-02-14  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/60526
	* decl.c (build_sym):  If the name has already been defined as a
	type, issue error and return false.

2016-02-14  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/60526
	* gfortran.dg/type_decl_4.f90:  New test.

From-SVN: r233410
2016-02-14 12:23:59 +00:00
Venkataramanan Kumar
cdc647c36f Fix some pipe reservations in znver1.md
Fix some pipe reservations in znver1.md
	*  config/i386/znver1.md
	(znver1_pop, znver1_pop_mem,
	znver1_load_imov_double_store,
	znver1_load_imov_direct_store,
	znver1_load_imov_direct_load,
	znver1_load_imov_double_load): Add new.
	(znver1_insn, znver1_insn_load): Add icmov type.
	(znver1_sseavx_fma,
	znver1_sseavx_fma_load,
	znver1_avx256_fma,
	znver1_avx256_fma_load): Fix pipe usage.

From-SVN: r233409
2016-02-14 07:11:16 +00:00
Alan Modra
1a8849d11b Add missing pr number
From-SVN: r233408
2016-02-14 12:18:59 +10:30
Alan Modra
f6964637b6 Correct c-torture stkalign test
The test wrongly assumed that a local var will normally not be 64-bit
aligned, causing it to fail on many targets.  So the test needs to
pass if a local var *is* normally 64-bit aligned.

	* gcc.c-torture/execute/stkalign.c: Revise test.

From-SVN: r233407
2016-02-14 12:13:14 +10:30
Alan Modra
ab6e41cb3c PRE_INC with invalid hard reg
PR target/68973
	* reloads.c (find_reloads_address_1): For pre/post-inc/dec
	with an invalid hard reg, reload just the reg not the entire
	pre/post-inc/dec address expression.

From-SVN: r233406
2016-02-14 12:07:40 +10:30
GCC Administrator
114e2b5198 Daily bump.
From-SVN: r233405
2016-02-14 00:16:13 +00:00
Oleg Endo
f51219208b re PR target/67260 ([sh] Register spill bug for sibcall+complex+softfloat)
gcc/testsuite/
	PR target/67260
	* gcc.target/sh/torture/pr67260.c: Adjust additional options.

From-SVN: r233400
2016-02-13 08:43:15 +00:00
Oleg Endo
6cda3ab661 re PR target/67260 ([sh] Register spill bug for sibcall+complex+softfloat)
gcc/
	PR target/67260
	* config/sh/sh.md (sibcall_value_pcrel): Replace =&k scratch reg with
	fixed R1_REG scratch reg.
	(sibcall_value_pcrel_fdpic): Likewise.

gcc/testsuite/
	PR target/67260
	* gcc.target/sh/torture/pr67260.c: New.

From-SVN: r233399
2016-02-13 08:03:44 +00:00
John David Anglin
6786e598fa pr67964.c: Add dg-require-alias.
* gcc.dg/pr67964.c: Add dg-require-alias.

From-SVN: r233398
2016-02-13 01:32:06 +00:00
Oleg Endo
7e05dad86b re PR target/67636 ([SH] gcc.target/sh/pr54236-1.c failures)
gcc/
	PR target/67636
	PR target/64345
	* config/sh/sh.md (*zero_extract_3): New insn_and_split pattern.

gcc/testsuite/
	PR target/67636
	PR target/64345
	* gcc.target/sh/pr54236-1.c: Adjust optimization level.

From-SVN: r233397
2016-02-13 00:50:25 +00:00
GCC Administrator
cd544f0db9 Daily bump.
From-SVN: r233396
2016-02-13 00:16:12 +00:00
Ian Lance Taylor
54c9c975f1 runtime: For c-archive/c-shared, install signal handlers synchronously.
This is a port of https://golang.org/cl/18150 to the gccgo runtime.
    
    The previous behaviour of installing the signal handlers in a separate
    thread meant that Go initialization raced with non-Go initialization if
    the non-Go initialization also wanted to install signal handlers.  Make
    installing signal handlers synchronous so that the process-wide behavior
    is predictable.
    
    Reviewed-on: https://go-review.googlesource.com/19494

From-SVN: r233393
2016-02-12 22:10:09 +00:00
Joseph Myers
37064e3daf * eo.po: Update.
From-SVN: r233392
2016-02-12 21:26:33 +00:00
Mike Stump
82f0f78917 Fix FAIL: special_functions/18_riemann_zeta/check_value.cc (test for excess errors)
From-SVN: r233391
2016-02-12 21:23:11 +00:00
Walter Lee
77602f8bc5 t-tilepro: Replace CC_FOR_BUILD with CXX_FOR_BUILD.
gcc/ChangeLog:
        * config/tilepro/t-tilepro: Replace CC_FOR_BUILD with
          CXX_FOR_BUILD.
        * config/tilegx/t-tilegx: Likewise.

From-SVN: r233390
2016-02-12 21:21:15 +00:00
Walter Lee
b29d9a29a1 config.host (tilegx*-*-linux*): remove ti from softfp_int_modes for 32-bit configs.
libgcc/ChangeLog:
        * config.host (tilegx*-*-linux*): remove ti from
          softfp_int_modes for 32-bit configs.

From-SVN: r233389
2016-02-12 21:15:43 +00:00
Jerry DeLisle
7f4cc3ced8 re PR fortran/69668 (Error reading namelist opened with DELIM='NONE')
2016-02-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/69668
	* gfortran.dg/namelist_88.f90: New test.

From-SVN: r233388
2016-02-12 21:02:02 +00:00
Jerry DeLisle
955ca6dc77 re PR fortran/69668 (Error reading namelist opened with DELIM='NONE')
2016-02-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/69668
	* io/list_read.c (read_character): Remove code related to DELIM_NONE.

	PR libgfortran/69668
	* gfortran.dg/namelist_38.f90: Update test.
	* gfortran.dg/namelist_84.f90: Update test.

From-SVN: r233387
2016-02-12 19:52:13 +00:00
David Malcolm
876217ae71 PR other/69554: avoid excessive source printing for widely-separated locations
gcc/ChangeLog:
	PR other/69554
	* diagnostic-show-locus.c (struct line_span): New struct.
	(layout::get_first_line): Delete.
	(layout::get_last_line): Delete.
	(layout::get_num_line_spans): New member function.
	(layout::get_line_span): Likewise.
	(layout::print_heading_for_line_span_index_p): Likewise.
	(layout::get_expanded_location): Likewise.
	(layout::calculate_line_spans): Likewise.
	(layout::m_first_line): Delete.
	(layout::m_last_line): Delete.
	(layout::m_line_spans): New field.
	(layout::layout): Update comment.  Replace m_first_line and
	m_last_line with m_line_spans, replacing their initialization
	with a call to calculate_line_spans.
	(diagnostic_show_locus): When printing source lines and
	annotations, rather than looping over a single span
	of lines, instead loop over each line_span within
	the layout, with an inner loop over the lines within them.
	Call the context's start_span callback when changing line spans.
	* diagnostic.c (diagnostic_initialize): Initialize start_span.
	(diagnostic_build_prefix): Break out the building of the location
	part of the string into...
	(diagnostic_get_location_text): ...this new function, rewriting
	it from nested ternary expressions to a sequence of "if"
	statements.
	(default_diagnostic_start_span_fn): New function.
	* diagnostic.h (diagnostic_start_span_fn): New typedef.
	(diagnostic_context::start_span): New field.
	(default_diagnostic_start_span_fn): New prototype.

gcc/fortran/ChangeLog:
	PR other/69554
	* error.c (gfc_diagnostic_start_span): New function.
	(gfc_diagnostics_init): Initialize global_dc's start_span.

gcc/testsuite/ChangeLog:
	PR other/69554
	* gcc.dg/pr69554-1.c: New test.
	* gfortran.dg/pr69554-1.F90: New test.
	* gfortran.dg/pr69554-2.F90: New test.
	* lib/gcc-dg.exp (proc dg-locus): New function.
	* lib/gfortran-dg.exp (proc gfortran-dg-test): Update comment to
	distinguish between the caret-printing and non-caret-printing
	cases.  If caret-printing has been explicitly enabled, bail out
	without attempting to fix up the output.

From-SVN: r233386
2016-02-12 19:18:03 +00:00
David Malcolm
8dccd19b3b PR driver/69779: fix bogus cleanup code used by libgccjit affecting s390x
gcc/ChangeLog:
	PR driver/69779
	* gcc.c (driver::finalize): Fix cleanup of "specs".

From-SVN: r233385
2016-02-12 18:37:35 +00:00
David Malcolm
61789eedf8 PR driver/69265 and 69453: improved suggestions for various misspelled options
gcc/ChangeLog:
	PR driver/69265
	PR driver/69453
	* gcc.c (driver::driver): Initialize m_option_suggestions.
	(driver::~driver): Clean up m_option_suggestions.
	(suggest_option): Convert to...
	(driver::suggest_option): ...this, and split out into
	driver::build_option_suggestions and find_closest_string.
	(driver::build_option_suggestions): New function, from
	first half of suggest_option.  Special-case
	OPT_fsanitize_ and OPT_fsanitize_recover_, making use of
	the sanitizer_opts array.  For options of enum types, add the
	various enum values to the candidate strings.
	(driver::handle_unrecognized_options): Remove "const".
	* gcc.h (driver::handle_unrecognized_options): Likewise.
	(driver::build_option_suggestions): New decl.
	(driver::suggest_option): New decl.
	(driver::m_option_suggestions): New field.
	* opts-common.c (add_misspelling_candidates): New function.
	* opts.c (sanitizer_opts): Remove decl of struct sanitizer_opts_s
	and make non-static.
	* opts.h (sanitizer_opts): New array decl.
	(add_misspelling_candidates): New function decl.
	* spellcheck.c (find_closest_string): New function.
	* spellcheck.h (find_closest_string): New function decl.

gcc/testsuite/ChangeLog:
	PR driver/69265
	PR driver/69453
	* gcc.dg/spellcheck-options-3.c: New test case.
	* gcc.dg/spellcheck-options-4.c: New test case.
	* gcc.dg/spellcheck-options-5.c: New test case.
	* gcc.dg/spellcheck-options-6.c: New test case.
	* gcc.dg/spellcheck-options-7.c: New test case.
	* gcc.dg/spellcheck-options-8.c: New test case.
	* gcc.dg/spellcheck-options-9.c: New test case.
	* gcc.dg/spellcheck-options-10.c: New test case.

From-SVN: r233382
2016-02-12 17:39:27 +00:00
Jakub Jelinek
c3090c1f52 re PR rtl-optimization/69764 (ICE on x86_64-linux-gnu at -O0 (in decompose, at rtl.h:2107))
PR rtl-optimization/69764
	PR rtl-optimization/69771
	* optabs.c (expand_binop_directly): For shift_optab_p, force
	convert_modes with VOIDmode if xop1 has VOIDmode.

	* c-c++-common/pr69764.c: New test.
	* gcc.dg/torture/pr69771.c: New test.

From-SVN: r233381
2016-02-12 17:49:44 +01:00
Marek Polacek
8222034d05 * g++.dg/torture/init-list1.C: New.
From-SVN: r233380
2016-02-12 16:40:47 +00:00
Marek Polacek
f749f7923d * gcc.dg/pr69522.c: Add empty dg-options.
From-SVN: r233377
2016-02-12 13:48:01 +00:00
Ilya Enkovich
199fb02a78 re PR middle-end/69729 ([CHKP] internal compiler error: Segmentation fault)
gcc/

	PR target/69729
	* lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
	to correctly determine instrumentation thunks.

gcc/testsuite/

	* g++.dg/lto/lto.exp: Include and init mpx.
	* g++.dg/lto/pr69729_0.C: New test.

From-SVN: r233376
2016-02-12 13:17:28 +00:00
Jakub Jelinek
06ff700018 re PR ipa/69241 (ICE with noreturn and function that return non-POD)
PR ipa/69241
	* ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE
	type by reference, force lhs on the call.

	* g++.dg/ipa/pr69241-4.C: New test.

From-SVN: r233375
2016-02-12 12:59:00 +01:00
Jakub Jelinek
b69539cbf5 re PR ipa/68672 (g++.dg/torture/pr68470.C: ICE: cannot update SSA form: statement uses released SSA name)
PR ipa/68672
	* ipa-split.c (split_function): Don't compute/use main_part_return_p.
	Compute retval and retbnd early in all cases if split_part_return_p
	and return_bb is not EXIT.  Remove all clobber stmts and reset
	all debug stmts that refer to SSA_NAMEs defined in split part,
	except if it is retval, in that case replace the old retval with the
	lhs of the call to the split part.

	* g++.dg/ipa/pr68672-1.C: New test.
	* g++.dg/ipa/pr68672-2.C: New test.
	* g++.dg/ipa/pr68672-3.C: New test.

From-SVN: r233374
2016-02-12 12:57:54 +01:00
Kugan Vivekanandarajah
4c70798069 revert: re PR tree-optimization/66726 (missed optimization, factor conversion out of COND_EXPR)
2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>

	revert:
	2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>

	PR middle-end/66726
	* tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
	whose result is used in PHI.
	(maybe_optimize_range_tests): Likewise.
	(final_range_test_p): Likweise.

From-SVN: r233368
2016-02-12 06:40:55 +00:00
Bernd Schmidt
f48dfe985e Fix incomplete initialization of the declspec struct.
* c-decl.c (build_null_declspecs): Zero the entire struct.

From-SVN: r233367
2016-02-12 01:50:25 +00:00
Bernd Schmidt
16595a1f28 Fix obstack use-after-free problems in C frontend, PR69522
c/
	PR c/69522
	* c-parser.c (c_parser_braced_init): New arg outer_obstack.  All
	callers changed.  If nested_p is true, use it to call
	finish_implicit_inits.
	* c-tree.h (finish_implicit_inits): Declare.
	* c-typeck.c (finish_implicit_inits): New function.  Move code
	from ...
	(push_init_level): ... here.
	(set_designator, process_init_element): Call finish_implicit_inits.

testsuite/
	PR c/69522
	gcc.dg/pr69522.c: New test.

From-SVN: r233366
2016-02-12 01:38:06 +00:00