Commit Graph

52798 Commits

Author SHA1 Message Date
Daniel Jacobowitz 43bc5d6b3d sysv4.h (LIB_LINUX_SPEC): Make -pthread apply to shared libraries.
* config/rs6000/sysv4.h (LIB_LINUX_SPEC): Make -pthread apply
	to shared libraries.

From-SVN: r71458
2003-09-17 14:04:52 +00:00
Eric Botcazou 0b75beaaaf re PR rtl-optimization/11646 (ICE in commit_one_edge_insertion with -fnon-call-exceptions -fgcse -O)
PR optimization/11646
	* cfgrtl.c (purge_dead_edges) [JUMP_INSN]: Rematerialize the
	EDGE_ABNORMAL flag for EH edges.
	* toplev.c (rest_of_handle_cse): Delete unreachable blocks
	if dead edges were purged.

From-SVN: r71455
2003-09-17 07:11:01 +00:00
Bryce McKinlay 936346797b re PR java/12254 (Regression in java networking code)
* class.c (add_miranda_methods): Ensure super-interfaces are laid
        out. Fix for PR java/12254.

From-SVN: r71454
2003-09-17 06:00:46 +01:00
Thomas Fitzsimmons cc16baeb1b GtkEmbeddedWindowPeer.java (construct): Remove method declaration.
2003-09-16  Thomas Fitzsimmons  <fitzsim@redhat.com>

	* gnu/java/awt/peer/gtk/GtkEmbeddedWindowPeer.java (construct):
	Remove method declaration.
	(create()): Call native create.
	(create(int)): New method.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.c:
	(create): Add window_id parameter.  Call gtk_plug_new with
	window_id parameter.
	(construct): Remove method implementation.

From-SVN: r71453
2003-09-17 04:39:34 +00:00
Mohan Embar 2db99d0587 Makefile.am: (MOSTLYCLEANFILES) Removed libtool objects.
* Makefile.am: (MOSTLYCLEANFILES) Removed libtool objects.
	(mostlyclean-local): New target patterned after clean-local
	which recursively deletes all libtool objects using 'libtool rm'.
	(clean-local): Slightly modified comment to alleviate monotony.
	(distclean-local): New target patterned after clean-local
	which recursively deletes all .d files.
	* Makefile.in: Rebuilt.

From-SVN: r71451
2003-09-17 02:44:43 +00:00
Bernardo Innocenti e2ffd79638 m68k.h (TARGET_CPU_CPP_BUILTINS): Add target predefines.
* config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Add target predefines.
	* config/m68k/m68k-none.h (CPP_CPU_DEFAULT_SPEC): Kill all definitions.
	* config/m68k/m68k-none.h (CPP_FPU_SPEC): Remove.
	* config/m68k/m68k-none.h (CPP_SPEC): Likewise.

From-SVN: r71450
2003-09-17 02:41:46 +02:00
GCC Administrator 2339fbfdca Daily bump.
From-SVN: r71448
2003-09-17 00:16:08 +00:00
Ian Lance Taylor 1dd61cb4d0 cfgcleanup.c (label_is_jump_target_p): Correct use of table returned by tablejump_p.
* cfgcleanup.c (label_is_jump_target_p): Correct use of table
	returned by tablejump_p.

From-SVN: r71443
2003-09-16 21:14:41 +00:00
Joel Brobecker 1e290ba1e6 * dwarf2asm.c (dw2_asm_output_nstring): Add comment.
From-SVN: r71442
2003-09-16 18:32:36 +00:00
Joel Brobecker a080d12ba1 MAINTAINERS (Write After Approval): Add myself to write after approval list.
* MAINTAINERS (Write After Approval): Add myself to write after
       approval list.

From-SVN: r71441
2003-09-16 18:22:42 +00:00
Roger Sayle 0c6d17eca1 re PR bootstrap/12269 (Mainline failed to bootstrap on Linux/ia64)
PR bootstrap/12269
	* simplify-rtx.c (simplify_gen_relational): Allow the cmp_mode
	argument to be VOIDmode, taking the mode of the comparison from
	the operands.  Only call simplify_relational_operation if we
	know the mode of the comparison.  Honor FLOAT_STORE_FLAG_VALUE
	if comparison has a floating point result.  Ensure that the
	result is always of the specified mode.
	(simplify_replace_rtx): Simplify call to simplify_gen_relational.
	(simplify_unary_operation): Ensure the correct mode and cmp_mode
	are always passed to simplify_gen_relational.  Simplify NOT of
	comparison operator in any mode, not just BImode.
	(simplify_ternary_operation): Correct tests on the return value
	of simplify_relational_operation to use const_true_rtx, not
	const1_rtx.  Abort if it ever returns a non-constant result.

	* cfgloopanal.c (count_strange_loop_iterations): Use the function
	simplify_relational_operation, not simplify_gen_relational, if
	we're only interested in constant comparisons and will ignore
	non-constant results.

From-SVN: r71439
2003-09-16 17:16:25 +00:00
Roger Sayle 37af03cba8 fold-const.c (tree_swap_operands_p): New function to determine the prefered ordering of operands.
* fold-const.c (tree_swap_operands_p): New function to determine
	the prefered ordering of operands.
	(fold): Numerous clean-ups.  Use tree_swap_operands_p when swapping
	operands to commutative, comparison or ternary operators.  Replace
	uses of TREE_SET_CODE with recursive call to fold.  Remove duplicate
	transformation of A ? B : C into !A ? C : B.

From-SVN: r71438
2003-09-16 17:08:50 +00:00
Kriang Lerdsuwanakij ae8803a8e1 re PR c++/7939 (ICE on function template specialization)
PR c++/7939
	* typeck.c (comptypes): Don't ICE when its first argument is
	error_mark_node.
	(compparms): Reverse the arguments of same_type_p.

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

From-SVN: r71432
2003-09-16 15:27:51 +00:00
Dorit Naishlos 6cd2fc59b0 MAINTAINERS (Write After Approval): Add myself
From-SVN: r71427
2003-09-16 14:17:13 +00:00
Dorit Naishlos 49ed4fd4e1 MAINTAINERS (Write After Approval): Add myself.
From-SVN: r71426
2003-09-16 14:14:21 +00:00
Jakub Jelinek 42df219332 linux.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
* config/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
	* config/alpha/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
	* config/arm/linux-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
	* config/rs6000/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
	* config/rs6000/linux64.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
	* config/sh/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
	* config/sparc/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
	* config/sparc/linux64.h (LINK_GCC_C_SEQUENCE_SPEC): Define.

From-SVN: r71425
2003-09-16 10:04:34 +02:00
Jason Merrill 72954a4f44 c-common.c (handle_warn_unused_result_attribute): New function.
* c-common.c (handle_warn_unused_result_attribute): New function.
	(c_common_attribute_table): Add warn_unused_result.
	(c_expand_expr): Issue warning when result of inlined function
	with warn_unused_result attribute is ignored.
	* calls.c (expand_call): Issue warning when result of function
	with warn_unused_result attribute is ignored.
	* c-common.h (STMT_EXPR_WARN_UNUSED_RESULT): Define.
	* expr.c (expr_wfl_stack): Define.
	(expand_expr) <case EXPR_WITH_FILE_LOCATION>: If ignore,
	pass const0_rtx as target.  Chain locations into expr_wfl_stack.
	* tree-inline.c (expand_call_inline): Set STMT_EXPR_WARN_UNUSED_RESULT
	bit if inlined function has warn_unused_result attribute.
	* input.h (expr_wfl_stack): Declare.
	* doc/extend.texi: Document warn_unused_result attribute.

	* gcc.dg/attr-warn-unused-result.c: New test.

Co-Authored-By: Jakub Jelinek <jakub@redhat.com>

From-SVN: r71424
2003-09-16 09:58:27 +02:00
Andrew Cagney c9fbef12be Index: include/ChangeLog
2003-09-15  Andrew Cagney  <cagney@redhat.com>

	* floatformat.h (floatformat_to_double): Make input buffer constant.
	(floatformat_from_double, floatformat_is_valid): Ditto.

Index: libiberty/ChangeLog
2003-09-15  Andrew Cagney  <cagney@redhat.com>

	* floatformat.c (get_field): Make "data" constant.
	(floatformat_is_valid, floatformat_to_double): Make "from"
	constant, fix casts.
	(floatformat_from_double): Make "from" constant.

From-SVN: r71422
2003-09-16 01:51:07 +00:00
R. Kelley Cook 602a82f3cf Cleaned up Jan's ChangeLog entries
From-SVN: r71421
2003-09-16 01:06:47 +00:00
GCC Administrator 02dcfdcc6d Daily bump.
From-SVN: r71418
2003-09-16 00:16:06 +00:00
Alexandre Oliva 5a8a65b1c9 * cpplib.c (do_pragma): Remove unnecessary cb_line_change.
From-SVN: r71416
2003-09-16 00:13:28 +00:00
Bob Wilson cadafd1ffd xtensa.c (xtensa_multibss_section_type_flags): Add ATTRIBUTE_UNUSED.
* config/xtensa/xtensa.c (xtensa_multibss_section_type_flags): Add
	ATTRIBUTE_UNUSED.
	(call_insn_operand): For PIC, don't allow a direct call to a
	function in a different section than the current one.

From-SVN: r71415
2003-09-15 23:19:21 +00:00
Volker Reichelt fb0317c6ea invoke.texi (Warning Options): Add missing hyphen before "Wimport".
2003-09-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>

        * doc/invoke.texi (Warning Options): Add missing hyphen before
        "Wimport".  Change "-Wno-endif-labels" to "-Wendif-labels".
        Move "-Wold-style-definition" to the C-only section.
        Fix the ordering of the warning options.

From-SVN: r71414
2003-09-15 23:17:13 +00:00
Zdenek Dvorak d088acea7d gcse.c (remove_reachable_equiv_notes): New.
* gcse.c (remove_reachable_equiv_notes): New.
	(replace_store_insn): Call it.  Update antic list.
	(store_killed_in_insn): Take REG_EQUAL notes into account.
	(build_store_vectors, delete_store): Add parameter to
	replace_store_insn call.

Co-Authored-By: Jeff Law <law@redhat.com>

From-SVN: r71412
2003-09-15 17:07:29 -06:00
Bob Wilson b9397bb40b xtensa.h (LEGITIMATE_PIC_OPERAND_P): Use SYMBOL_REF_LOCAL_P.
* config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND_P): Use
	SYMBOL_REF_LOCAL_P.

From-SVN: r71411
2003-09-15 23:02:31 +00:00
Andrew Cagney a4cbdc57c8 floatformat.h (struct floatformat): Make "exp_bias" signed.
2003-09-15  Andrew Cagney  <cagney@redhat.com>

	* floatformat.h (struct floatformat): Make "exp_bias" signed.

From-SVN: r71407
2003-09-15 21:28:49 +00:00
Kazu Hirata d3704c4668 expr.h (DEFAULT_FUNCTION_ARG_PADDING): New.
* expr.h (DEFAULT_FUNCTION_ARG_PADDING): New.
	(FUNCTION_ARG_PADDING): Use DEFAULT_FUNCTION_ARG_PADDING.
	* config/ia64/ia64.c (ia64_hpux_function_arg_padding):
	Likewise.
	* config/m68hc11/m68hc11.c (m68hc11_function_arg_padding):
	Likewise.
	* config/rs6000/rs6000.c (function_arg_padding): Likewise.
	* config/sparc/sparc.c (function_arg_padding): Likewise.

From-SVN: r71406
2003-09-15 20:23:43 +00:00
Daniel Jacobowitz 9c8860c370 floatformat.c (floatformat_is_valid): New function.
* floatformat.c (floatformat_is_valid): New function.
	(get_field, put_field): Correct comments.

From-SVN: r71405
2003-09-15 20:16:32 +00:00
Daniel Jacobowitz 0d66a8212c * floatformat.h (floatformat_is_valid): Add prototype.
From-SVN: r71404
2003-09-15 20:16:22 +00:00
Vladimir Makarov 3d9b02802d haifa-sched.c (schedule_block): Use ready_remove_first instead of choose_ready for non-dfa insn scheduling.
2003-09-15  Vladimir Makarov  <vmakarov@redhat.com>

	* haifa-sched.c (schedule_block): Use ready_remove_first instead
	of choose_ready for non-dfa insn scheduling.

From-SVN: r71403
2003-09-15 18:52:33 +00:00
Nathan Sidwell 3afd2e2007 re PR c++/12184 (ICE with trying to convert an incomplete type)
cp:
	PR c++/12184
	* typeck.c (convert_arguments): Return error_mark_node for an
	incomplete parameter. Make error message more informative.
testsuite:
	PR c++/12184
	* g++.dg/expr/call2.C: New test.

From-SVN: r71402
2003-09-15 14:48:29 +00:00
Andreas Jaeger 2352184a1f invoke.texi (Warning Options): Describe -Wold-style-definition.
2003-09-15  Andreas Jaeger  <aj@suse.de>
            Kaveh R. Ghazi <ghazi@caip.rutgers.edu>

	* doc/invoke.texi (Warning Options): Describe -Wold-style-definition.
	* c-opts.c (c_common_handle_option): Handle OPT_Wold_style_definition.
	* c-parse.in: Warn about old-style parameter definition.
	* c-common.c: Define warn_old_style_defintion.
	* c-common.h: Declare it.
	* c.opt: Add Wold-style-defintion.

From-SVN: r71401
2003-09-15 11:32:36 +02:00
Andreas Jaeger c034f12167 invoke.texi (Warning Options): Describe -Wold-style-definition.
2003-09-15  Andreas Jaeger  <aj@suse.de>
            Kaveh R. Ghazi <ghazi@caip.rutgers.edu>

	* doc/invoke.texi (Warning Options): Describe -Wold-style-definition.
	* c-opts.c (c_common_handle_option): Handle OPT_Wold_style_definition.
	* c-parse.in: Warn about old-style parameter definition.
	* c-common.c: Define warn_old_style_defintion.
	* c-common.h: Declare it.
	* c.opt: Add Wold-style-defintion.

testsuite:
2003-09-15  Andreas Jaeger  <aj@suse.de>

	* gcc.dg/Wold-style-definition-1.c: New test.

From-SVN: r71400
2003-09-15 11:31:17 +02:00
Andreas Jaeger 863d938c6a altivec.h: Convert () prototypes to ISO C90.
* config/rs6000/altivec.h: Convert () prototypes to ISO C90.
	* config/rs6000/rs6000.c: Likewise.

From-SVN: r71399
2003-09-15 06:53:00 +02:00
Zdenek Dvorak ec6ec6aaab re PR rtl-optimization/10914 (unswitch loops does not work on powerpc)
2003-09-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>

        PR optimization/10914
        * expr.h (get_condition, canonicalize_condition): Declaration changed.
        * cfgloopanal.c (simple_loop_exit_p): Add parameter to a get_condition
        and canonicalize_condition calls.
        * gcse.c (fis_get_condition, delete_null_pointer_checks_1,
        delete_null_pointer_checks): Ditto.
        * ifcvt.c (noce_get_alt_condition, noce_get_condition): Ditto.
        * predict.c (estimate_probability, expected_value_to_br_prob): Ditto.
        * loop.c (check_dbra_loop, get_condition_for_loop): Ditto.
        (canonicalize_condition, get_condition): Allow to return comparisons
        of cc mode registers.
        * loop-unswitch.c (may_unswitch_on_p, unswitch_single_loop): Allow
        cc mode registers comparison in condition.

From-SVN: r71398
2003-09-14 18:55:53 -07:00
Mark Mitchell a7e8c268ed re PR c++/3907 (nested template parm collides with member name)
* coverage.c (create_coverage): Do not call pushlevel/poplevel.
	* langhooks-def.h (lhd_do_nothing_iii_return_null_tree): New
	function.
	* langhooks.c (lhd_do_nothing_iii_return_null_tree): Define it.

	PR c++/3907
	* class.c (maybe_note_name_used_in_class): Refine test for whether
	or not we are in a class scope.

	* cp-tree.h (language_function): Remove x_expanding_p.
	(expanding_p): Remove.
	(doing_semantic_analysis_p): Remove.
	(scope_kind): Add sk_function_parms, sk_class,
	sk_namespace.
	(innermost_scope_kind): New method.
	* call.c (cxx_type_promotes_to): Use type_decays_to.
	* cp-lang.c (LANG_HOOKS_PUSHLEVEL): Redefine.
	(LANG_HOOKS_POPLEVEL): Likewise.
	* decl.c (cp_binding_level): Remove parm_flag, template_parms_p,
	template_spec_p, namespace_p, is_for_scope, is_try_scope, and
	is_catch_scope.  Add kind and explicit_spec_p.
	(cxx_scope_descriptor): Use a lookup table.
	(find_class_binding_level): Use "kind" field in binding_level, not
	the various flags.
	(pop_binding_level): Likewise.
	(innermost_nonclass_level): Likewise.
	(toplevel_bindings_p): Likewise.
	(namespace_bindings_p): Likewise.
	(template_parm_scope_p): Likewise.
	(innermost_scope_kind): New method.
	(current_tmpl_spec_kind): Use "kind" field in binding_level, not
	the various flags.
	(pushlevel): Remove check for doing_semantic_analysis_p.
	(begin_scope): Simplify.
	(add_decl_to_level): Use "kind" field in binding_level, not
	the various flags.
	(push_local_binding): Likewise.
	(pop_label): Remove check for doing_semantic_analysis_p.
	(poplevel): Use "kind" field in binding_level, not
	the various flags.
	(set_block): Remove check for doing_semantic_analysis_p.
	(pushlevel_class): Use "kind" field in binding_level, not
	the various flags.
	(poplevel_class): Likewise.
	(initial_push_namespace_scope): Likewise.
	(maybe_push_to_top_level): Likewise.
	(set_identifier_type_value_with_scope): Likewise.
	(pop_everything): Likewise.
	(maybe_process_template_type_declaration): Likewise.
	(pushtag): Likewise.
	(pushdecl): Likewise.
	(pushdecl_with_scope): Likewise.
	(check_previous_goto_1): Likewise.
	(define_label): Likewise.
	(finish_case_label): Likewise.
	(lookup_tag): Likewise.
	(unqualified_namespace_lookup): Likewise.
	(lookup_name_real): Likewise.
	(lookup_name_current_level): Likewise.
	(lookup_type_current_level): Likewise.
	(record_builtin_type): Likewise.
	(cp_make_fname_decl): Likewise.
	(maybe_inject_for_scope_var): Likewise.
	(cp_finish_decl): Remove check for doing_semantic_analysis_p.
	(start_function): Use begin_scope, not pushlevel.
	(finish_function): Use "kind" field in binding_level, not
	the various flags.
	(start_method): Use begin_scope, not pushlevel.
	(make_label_decl): Do not check expanding_p.
	(save_function-data): Do not set expanding_p.
	(cxx_push_function_context): Do not clear expanding_p.
	* semantics.c (cxx_expand_function_start): Do not set expanding_p.

	PR c++/3907
	* g++.dg/parse/template12.C: New test.

	* g++.dg/abi/bitfield11.C: New test.
	* g++.dg/abi/bitfield12.C: Likewise.

From-SVN: r71393
2003-09-15 00:59:28 +00:00
Mark Mitchell 29edb15c56 class.c (layout_class_type): Make DECL_MODE match TYPE_MODE for an bit-field whose width exceeds that of its...
* class.c (layout_class_type): Make DECL_MODE match TYPE_MODE for
	an bit-field whose width exceeds that of its type.

	* g++.dg/abi/bitfield11.C: New test.
	* g++.dg/abi/bitfield12.C: Likewise.

From-SVN: r71392
2003-09-15 00:27:16 +00:00
GCC Administrator bd12da498d Daily bump.
From-SVN: r71390
2003-09-15 00:16:06 +00:00
Mark Mitchell 269083955a class.c (layout_class_type): Make DECL_MODE match TYPE_MODE for an bit-field whose width exceeds that of its...
* class.c (layout_class_type): Make DECL_MODE match TYPE_MODE for
	an bit-field whose width exceeds that of its type.

From-SVN: r71388
2003-09-14 23:50:49 +00:00
Geoffrey Keating 80a1718866 * rtti.c (get_tinfo_decl): Set TREE_PUBLIC for typeinfo decls.
From-SVN: r71387
2003-09-14 20:24:00 +00:00
Kazu Hirata 5565e8744f combine.c (simplify_comparison): Convert (ne (and (lshiftrt (xor X CST) Y) 1) 0) into (eq (and (lshiftrt X Y) 1) 0).
* combine.c (simplify_comparison): Convert
	(ne (and (lshiftrt (xor X CST) Y) 1) 0) into
	(eq (and (lshiftrt X Y) 1) 0).

From-SVN: r71385
2003-09-14 18:31:13 +00:00
Kazu Hirata 83a00410f5 alias.c: Follow spelling conventions.
* alias.c: Follow spelling conventions.
	* cpphash.h: Likewise.
	* fold-const.c: Likewise.
	* cp/ChangeLog: Likewise.
	* cp/parser.c: Likewise.

From-SVN: r71382
2003-09-14 14:49:08 +00:00
Alexandre Oliva 7b9a5a662b c-ppoutput.c (cb_line_change): Revert 2003-08-04's change.
* c-ppoutput.c (cb_line_change): Revert 2003-08-04's change.
* c-lex.c (cb_line_change): Skip line changing whenever
c-ppoutput.c would.

From-SVN: r71381
2003-09-14 13:56:18 +00:00
Alexandre Oliva aab68b4aba separate-1.c: Adjust line of error.
* gcc.dg/cpp/separate-1.c: Adjust line of error.  Test for correct
non-expansion of functional macro name without arguments at EOL.
* gcc.dg/cpp/spacing1.c: Revert 2003-08-04's change.  Likewise.

From-SVN: r71380
2003-09-14 13:52:56 +00:00
Steven Bosscher 93bad80ebc ra.c: Convert to ISO C90 prototypes.
2003-09-14  Steven Bosscher  <steven@gcc.gnu.org>

	* ra.c: Convert to ISO C90 prototypes.
	* ra-build.c: Likewise.
	* ra-colorize.c: Likewise.
	* ra-debug.c: Likewise.
	* ra-rewrite.c: Likewise.

From-SVN: r71379
2003-09-14 13:42:33 +00:00
Richard Sandiford 3983d33ea8 * Makefile.in (%.dvi): Remove excess $(docdir).
From-SVN: r71373
2003-09-14 10:28:21 +00:00
Richard Sandiford 975f381876 function.c (STACK_BYTES): Move definition to head of file.
* function.c (STACK_BYTES): Move definition to head of file.
	(assign_parms): Don't pass current_function_pretend_args_size
	directly to SETUP_INCOMING_VARARGS.  For partial register arguments,
	round current_function_pretend_args_size up to STACK_BYTES.  Skip any
	excess before laying out the argument.

From-SVN: r71372
2003-09-14 10:07:51 +00:00
Andreas Jaeger 011d50d946 objc-act.c: Convert to ISO C90 prototypes.
* objc/objc-act.c: Convert to ISO C90 prototypes.
	* objc/objc-act.h: Likewise.

From-SVN: r71371
2003-09-14 11:42:57 +02:00
Olaf Hering a56d737201 rs6000.c: Fix typo: Remove extra ')'.
2003-09-14  Olaf Hering  <olh@suse.de>

	* config/rs6000/rs6000.c: Fix typo: Remove extra ')'.

From-SVN: r71370
2003-09-14 08:23:15 +02:00
Andrew Pinski 6ef3d45791 re PR target/12021 (warning "cpu" and "machine" reasserted for every file)
2003-09-13  Andrew Pinski <pinskia@physics.uc.edu>

        PR target/12021
        * config/m68k/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Remove the asserts
        as they already are done in config/m68k/m68k.h.
        * config/m68k/netbsd.h (TARGET_OS_CPP_BUILTINS): Likewise

From-SVN: r71369
2003-09-13 21:43:10 -07:00