Richard Henderson
1548bf0514
m32r.c (TARGET_TRAMPOLINE_INIT): New.
...
* config/m32r/m32r.c (TARGET_TRAMPOLINE_INIT): New.
(m32r_trampoline_init): New.
* config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Move code to
m32r_trampoline_init.
From-SVN: r151997
2009-09-22 08:13:30 -07:00
Richard Henderson
229fbccbab
m32c-protos.h (m32c_initialize_trampoline): Remove.
...
* config/m32c/m32c-protos.h (m32c_initialize_trampoline): Remove.
* config/m32c/m32c.c (TARGET_TRAMPOLINE_INIT): New.
(m32c_trampoline_init): Rename from m32c_initialize_trampoline;
adjust for hook parameters.
* config/m32c/m32c.h (INITIALIZE_TRAMPOLINE): Remove.
From-SVN: r151996
2009-09-22 08:13:24 -07:00
Richard Henderson
f4a33d3727
iq2000.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
...
* config/iq2000/iq2000.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
(TARGET_TRAMPOLINE_INIT): New.
(iq2000_asm_trampoline_template, iq2000_trampoline_init): New.
* config/iq2000/iq2000.h (TRAMPOLINE_TEMPLATE): Move code to
iq2000_asm_trampoline_template.
(INITIALIZE_TRAMPOLINE): Move code to iq2000_trampoline_init.
(TRAMPOLINE_CODE_SIZE): New.
(TRAMPOLINE_SIZE): Use it.
(TRAMPOLINE_ALIGNMENT): Follow Pmode.
From-SVN: r151995
2009-09-22 08:13:11 -07:00
Richard Henderson
2a1211e51b
ia64-protos.h (ia64_initialize_trampoline): Remove.
...
* config/ia64/ia64-protos.h (ia64_initialize_trampoline): Remove.
* config/ia64/ia64.c (TARGET_TRAMPOLINE_INIT): New.
(ia64_trampoline_init): Rename from ia64_initialize_trampoline;
make static; adjust for hook parameters.
* config/ia64/ia64.h (INITIALIZE_TRAMPOLINE): Remove.
From-SVN: r151994
2009-09-22 08:13:03 -07:00
Richard Henderson
9f6ef043a8
h8300.c (h8300_trampoline_init): New.
...
* config/h8300/h8300.c (h8300_trampoline_init): New.
(TARGET_TRAMPOLINE_INIT): New.
* config/h8300/h8300.h (INITIALIZE_TRAMPOLINE): Move code
to h8300_trampoline_init and adjust for hook parameters.
From-SVN: r151993
2009-09-22 08:12:56 -07:00
Richard Henderson
e9d5fdb247
frv.c (TARGET_TRAMPOLINE_INIT): New.
...
* config/frv/frv.c (TARGET_TRAMPOLINE_INIT): New.
(frv_trampoline_init): Rename from frv_initialize_trampoline;
make static, adjust arguments for TARGET_TRAMPOLINE_INIT hook.
* config/frv/frv.h (INITIALIZE_TRAMPOLINE): Remove.
* config/frv/frv-protos.h (frv_initialize_trampoline): Remove.
From-SVN: r151992
2009-09-22 08:12:48 -07:00
Richard Henderson
98689f5ece
fr30.c (TARGET_ASM_TRAMPOLINE_TEMPLATE, [...]): New.
...
* config/fr30/fr30.c (TARGET_ASM_TRAMPOLINE_TEMPLATE,
TARGET_TRAMPOLINE_INIT, fr30_asm_trampoline_template,
fr30_trampoline_init): New.
* config/fr30/fr30.h (TRAMPOLINE_TEMPLATE): Move code to
fr30_asm_trampoline_template.
(INITIALIZE_TRAMPOLINE): Move code to fr30_trampoline_init;
adjust for target hook parameters.
From-SVN: r151991
2009-09-22 08:12:41 -07:00
Richard Henderson
956c97fc69
* config/crx/crx.h (INITIALIZE_TRAMPOLINE): Remove.
...
From-SVN: r151990
2009-09-22 08:12:31 -07:00
Richard Henderson
3e322b77d6
cris.c (TARGET_ASM_TRAMPOLINE_TEMPLATE, [...]): New.
...
* config/cris/cris.c (TARGET_ASM_TRAMPOLINE_TEMPLATE,
TARGET_TRAMPOLINE_INIT, cris_asm_trampoline_template,
cris_trampoline_init): New.
* config/cris/cris.h (TRAMPOLINE_TEMPLATE): Move code to
cris_asm_trampoline_template.
(INITIALIZE_TRAMPOLINE): Move code to cris_trampoline_init;
adjust for target hook parameters.
From-SVN: r151989
2009-09-22 08:12:23 -07:00
Richard Henderson
92910d774d
bfin-protos.h (initialize_trampoline): Remove.
...
* config/bfin/bfin-protos.h (initialize_trampoline): Remove.
* config/bfin/bfin.c (bfin_asm_trampoline_template): New.
(bfin_trampoline_init): Rename from initialize_trampoline;
make static; update for target hook parameters.
(TARGET_ASM_TRAMPOLINE_TEMPLATE, TARGET_TRAMPOLINE_INIT): New.
* config/bfin/bfin.h (TRAMPOLINE_TEMPLATE): Move code to
bfin_asm_trampoline_template.
(INITIALIZE_TRAMPOLINE): Remove.
From-SVN: r151988
2009-09-22 08:12:16 -07:00
Richard Henderson
6eee506e2f
* config/avr/avr.h (TRAMPOLINE_TEMPLATE, INITIALIZE_TRAMPOLINE): Remove.
...
From-SVN: r151987
2009-09-22 08:12:09 -07:00
Richard Henderson
0ef9304b22
arm.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
...
* config/arm/arm.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
(TARGET_TRAMPOLINE_INIT, TARGET_TRAMPOLINE_ADJUST_ADDRESS): New.
(arm_asm_trampoline_template): New.
(arm_trampoline_init, arm_trampoline_adjust_address): New.
* config/arm/arm.h (TRAMPOLINE_TEMPLATE,
* ARM_TRAMPOLINE_TEMPLATE,
THUMB2_TRAMPOLINE_TEMPLATE, THUMB1_TRAMPOLINE_TEMPLATE): Move all
code to arm_asm_trampoline_template.
(TRAMPOLINE_ADJUST_ADDRESS): Move code to
arm_trampoline_adjust_address.
(INITIALIZE_TRAMPOLINE): Move code to arm_trampoline_init;
adjust for target hook parameters.
From-SVN: r151986
2009-09-22 08:12:02 -07:00
Richard Henderson
672f0baaec
arc.h (TRAMPOLINE_ALIGNMENT): New.
...
* config/arc/arc.h (TRAMPOLINE_ALIGNMENT): New.
(TRAMPOLINE_TEMPLATE): Merge with ...
(INITIALIZE_TRAMPOLINE): ... this and move ...
* config/arc/arc.c (arc_trampoline_init): ... here.
(TARGET_TRAMPOLINE_INIT): New.
From-SVN: r151985
2009-09-22 08:11:53 -07:00
Richard Henderson
2d7b663adf
alpha.c (alpha_trampoline_init): Rename from alpha_initialize_trampoline.
...
* config/alpha/alpha.c (alpha_trampoline_init): Rename from
alpha_initialize_trampoline. Make static. Merge VMS parameter
differences into the TARGET_ABI_OPEN_VMS code block.
(TARGET_TRAMPOLINE_INIT): New.
* config/alpha/alpha.h (TRAMPOLINE_TEMPLATE): Remove.
(TRAMPOLINE_SECTION, INITIALIZE_TRAMPOLINE): Remove.
* config/alpha/vms.h (TRAMPOLINE_SIZE, TRAMPOLINE_ALIGNMENT):
* Remove.
(INITIALIZE_TRAMPOLINE): Remove.
From-SVN: r151984
2009-09-22 08:11:45 -07:00
Richard Henderson
531ca746f9
re PR target/41246 (should "sorry" when regparm=3 and nested functions are encountered)
...
PR target/41246
* target.h (struct gcc_target): Add asm_out.trampoline_template,
calls.static_chain, calls.trampoline_init,
calls.trampoline_adjust_address.
* target-def.h (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
(TARGET_STATIC_CHAIN, TARGET_TRAMPOLINE_INIT): New.
(TARGET_TRAMPOLINE_ADJUST_ADDRESS): New.
* builtins.c (expand_builtin_setjmp_receiver): Use
targetm.calls.static_chain; only clobber registers.
(expand_builtin_init_trampoline): Use targetm.calls.trampoline_init;
set up memory attributes properly for the trampoline block.
(expand_builtin_adjust_trampoline): Use
targetm.calls.trampoline_adjust_address.
* calls.c (prepare_call_address): Add fndecl argument. Use
targetm.calls.static_chain.
* df-scan.c (df_need_static_chain_reg): Remove.
(df_get_entry_block_def_set): Use targetm.calls.static_chain;
consolodate static chain handling.
* doc/tm.texi: Document new hooks.
* emit-rtl.c (static_chain_rtx, static_chain_incoming_rtx): Remove.
(init_emit_regs): Don't initialize them.
* expr.h (prepare_call_address): Update decl.
* final.c (profile_function): Use targetm.calls.static_chain.
* function.c (expand_function_start): Likewise.
* rtl.h (static_chain_rtx, static_chain_incoming_rtx): Remove.
* stmt.c (expand_nl_goto_receiver): Use targetm.calls.static_chain;
only clobber registers.
* targhooks.c (default_static_chain): New.
(default_asm_trampoline_template, default_trampoline_init): New.
(default_trampoline_adjust_address): New.
* targhooks.h: Declare them.
* varasm.c (assemble_trampoline_template): Use
targetm.asm_out.trampoline_template. Make the memory block const
and set its size.
From-SVN: r151983
2009-09-22 08:11:37 -07:00
Richard Guenther
2df373c2eb
re PR bootstrap/41395 (Revision 151800 failed bootstrap)
...
2009-09-22 Richard Guenther <rguenther@suse.de>
PR middle-end/41395
* tree-dfa.c (get_ref_base_and_extent): Handle trailing
arrays really properly.
* gcc.c-torture/execute/pr41395-1.c: New testcase.
* gcc.c-torture/execute/pr41395-2.c: Likewise.
From-SVN: r151981
2009-09-22 14:58:05 +00:00
Richard Guenther
cf76ef1a46
re PR objc++/41430 (exception handling testsuite failures in objc++)
...
2009-09-22 Richard Guenther <rguenther@suse.de>
PR objc++/41430
* Make-lang.in (objcp-lang.o): Add $(EXCEPT_H) dependency.
* objcp-lang.c (LANG_HOOKS_EH_PERSONALITY): Define.
(LANG_HOOKS_EH_RUNTIME_TYPE): Likewise.
(objcxx_eh_personality): New function.
From-SVN: r151979
2009-09-22 13:49:03 +00:00
Jakub Jelinek
65f753a01e
re PR bootstrap/41405 (Bootstrap fails on *-apple-darwin* due to revision 151815)
...
PR bootstrap/41405
* dwarf2out.c (base_type_die, record_type_tag, gen_subprogram_die,
add_call_src_coords_attributes, add_high_low_attributes,
gen_compile_unit_die, gen_type_die_with_usage force_decl_die,
gen_decl_die, dwarf2out_imported_module_or_decl_1, dwarf2out_finish,
dwarf2out_imported_module_or_decl): Avoid using DWARF3 additions
when -gdwarf-2 -gstrict-dwarf.
(loc_list_from_tree): Likewise. Avoid using DWARF4 additions when
-gdwarf-[23] -gstrict-dwarf.
(address_of_int_loc_descriptor, loc_descriptor,
loc_list_for_address_of_addr_expr_of_indirect_ref): Avoid using
DWARF4 additions when -gdwarf-[23] -gstrict-dwarf.
* common.opt (gno-strict-dwarf, gstrict-dwarf): New options.
* gfortran.dg/debug/pr37738.f: Add -gno-strict-dwarf to dg-options.
* gfortran.dg/debug/pr35154-dwarf2.f: Likewise.
* g++.dg/debug/dwarf2/explicit-constructor.C: Likewise.
* g++.dg/debug/dwarf2/imported-module-2.C: Likewise.
* g++.dg/debug/dwarf2/imported-module-3.C: Likewise.
* g++.dg/debug/dwarf2/imported-module-4.C: Likewise.
* g++.dg/debug/dwarf2/namespace-1.C: Likewise.
* objc.dg/dwarf-2.m: Likewise.
From-SVN: r151978
2009-09-22 15:22:15 +02:00
Jakub Jelinek
9190e0a99c
rs6000.c (bdesc_2arg): Fix CODE_FOR_vector_gt* codes for __builtin_altivec_vcmpgt{sb,uh,sh,uw}.
...
* config/rs6000/rs6000.c (bdesc_2arg): Fix CODE_FOR_vector_gt* codes
for __builtin_altivec_vcmpgt{sb,uh,sh,uw}.
From-SVN: r151977
2009-09-22 14:53:14 +02:00
Jakub Jelinek
39dbcfc364
reload1.c (reload): Call wrap_constant when substituting reg for equiv inside of DEBUG_INSNs.
...
* reload1.c (reload): Call wrap_constant when substituting
reg for equiv inside of DEBUG_INSNs.
* gcc.dg/20090922-1.c: New test.
From-SVN: r151976
2009-09-22 14:52:20 +02:00
Iain Sandoe
db1cf15c83
configure.ac: Check for GFORTRAN_C99_1.1 funcs in OS libm.
...
2009-09-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
* configure.ac: Check for GFORTRAN_C99_1.1 funcs in OS libm.
* configure: Regenerate.
* config.h.in: Ditto.
From-SVN: r151972
2009-09-22 12:23:06 +02:00
Richard Guenther
9a8a2b7a38
re PR preprocessor/38987 (Including a precompiled header from another header causes invalid assembly to be generated)
...
2009-09-22 Richard Guenther <rguenther@suse.de>
PR pch/38987
* files.c (pch_open_file): Disallow non-toplevel PCH inclusion.
From-SVN: r151970
2009-09-22 08:37:31 +00:00
Richard Guenther
f61e18ec67
re PR tree-optimization/41428 (CCP doesn't fold all comparisons it could)
...
2009-09-22 Richard Guenther <rguenther@suse.de>
PR tree-optimization/41428
* tree-ssa-ccp.c (ccp_fold_stmt): New function.
(ccp_finalize): Pass it to substitute_and_fold.
* g++.dg/tree-ssa/pr41428.C: New testcase.
From-SVN: r151969
2009-09-22 08:34:52 +00:00
Richard Guenther
ff7ffb8f2a
tree-ssa-propagate.h (ssa_prop_fold_stmt_fn): Declare.
...
2009-09-22 Richard Guenther <rguenther@suse.de>
* tree-ssa-propagate.h (ssa_prop_fold_stmt_fn): Declare.
(substitute_and_fold): Adjust prototype.
* tree-vrp.c (vrp_evaluate_conditional): Make static.
(simplify_stmt_using_ranges): Likewise.
(fold_predicate_in): Move here from tree-ssa-propagate.c.
(vrp_fold_stmt): New function.
(vrp_finalize): Pass it to substitute_and_fold.
* tree-flow.h (vrp_evaluate_conditional): Remove.
(simplify_stmt_using_ranges): Likewise.
* tree-ssa-ccp.c (ccp_finalize): Adjust call to substitute_and_fold.
* tree-ssa-copy.c (fini_copy_prop): Likewise.
* tree-ssa-propagate.c (struct prop_stats_d): Rename num_pred_folded
member.
(fold_predicate_in): Move to tree-vrp.c.
(substitute_and_fold): Use the callback instead of calling into
tree-vrp.c functions directly.
From-SVN: r151968
2009-09-22 08:30:34 +00:00
Jakub Jelinek
8b659ecb8e
dwarf2out.c (address_of_int_loc_descriptor): Avoid signed/unsigned comparison warning on rs6000.
...
* dwarf2out.c (address_of_int_loc_descriptor): Avoid signed/unsigned
comparison warning on rs6000.
From-SVN: r151967
2009-09-22 08:43:53 +02:00
Jakub Jelinek
40742b4269
re PR middle-end/41429 (gomp tests timeout with -fpic)
...
PR middle-end/41429
* tree-cfg.c (remove_useless_stmts_tc): Call gsi_next (gsi) even for
GIMPLE_EH_MUST_NOT_THROW cleanup.
(verify_types_in_gimple_stmt): Handle GIMPLE_EH_MUST_NOT_THROW.
* g++.dg/gomp/pr41429.C: New test.
From-SVN: r151966
2009-09-22 08:42:26 +02:00
Peter O'Gorman
c8c1ca587b
Correct the copyright year. It is not 2006 or 2007.
...
From-SVN: r151961
2009-09-22 02:37:45 +00:00
Jack Howarth
c9c80434b6
re PR middle-end/41260 (major regressions on *-apple-darwin10 at -m64 caused by r147995)
...
PR middle-end/41260
* gcc/config.gcc: Use darwin9.h and darwin10.h on darwin10 and later.
* gcc/config/darwin10.h: Add file to pass -no_compact_unwind on
LIB_SPEC for darwin10 and later since it always uses the unwinder in
libSystem which is derived from the gcc 4.2.1 unwinder.
From-SVN: r151960
2009-09-22 02:28:19 +00:00
Dave Korn
e0fd74691d
re PR middle-end/41357 (libgomp build fail)
...
PR middle-end/41357
* varasm.c (default_encode_section_info): Copy TLS model into
sym_ref flags regardless of backend support for TLS, for all
model types except TLS_MODEL_EMULATED.
From-SVN: r151959
2009-09-22 01:33:53 +00:00
Dave Korn
cf09842e67
re PR bootstrap/41404 (expr.c undefined reference while linking jc1)
...
PR bootstrap/41404
* dwarf2out.c (mem_loc_descriptor): Punt on CONST_STRING until
we can handle it correctly.
From-SVN: r151958
2009-09-22 01:17:24 +00:00
GCC Administrator
1b6429d765
Daily bump.
...
From-SVN: r151957
2009-09-22 00:16:50 +00:00
Joel Sherrill
9673668f4d
s-osinte-rtems.ad[bs]: Get_Page_Size cannot return 0.
...
2009-09-21 Joel Sherrill <joel.sherrill@oarcorp.com>
* s-osinte-rtems.ad[bs]: Get_Page_Size cannot return 0.
Bind to getpagesize() in RTEMS 4.10 and newer.
From-SVN: r151946
2009-09-21 20:52:46 +00:00
Gerald Pfeifer
c1493544c1
* doc/install.texi (os2): Remove section.
...
From-SVN: r151945
2009-09-21 20:50:57 +00:00
Gerald Pfeifer
2f55829ea0
* doc/standards.texi (Objective-C): Adjust two URLs.
...
From-SVN: r151944
2009-09-21 20:34:47 +00:00
Ralf Wildenhues
79cd2b2322
Require c++ in stage1_languages with --enable-gold in combined bootstrap.
...
/:
* configure.ac: If bootstrapping a combined tree with
--enable-gold, require c++ in stage1_languages.
* configure: Regenerate.
From-SVN: r151943
2009-09-21 20:32:37 +00:00
Ralf Wildenhues
ab9dcd0c1e
toplevel configure: bootstrap target_libs of stage1_languages.
...
/:
* configure.ac: Also add target_libs of stage1_languages to
bootstrap_target_libs.
* configure: Regenerate.
From-SVN: r151942
2009-09-21 20:31:18 +00:00
Gerald Pfeifer
ed20c43e49
appendix_contributing.xml: Adjust link to coreutils.
...
* doc/xml/manual/appendix_contributing.xml: Adjust link to
coreutils.
From-SVN: r151941
2009-09-21 20:15:07 +00:00
Ralf Wildenhues
ca6d0d6209
Diagnose --enable-build-with-cxx --enable-bootstrap --enable-languages w/o c++
...
/*
* configure.ac: Diagnose --enable-build-with-cxx bootstrap
with --enable-languages not containing c++.
* configure: Regenerate.
From-SVN: r151939
2009-09-21 19:24:40 +00:00
Rainer Orth
576891f9a6
ada: init.c (__gnat_error_handler): Cast msg to const char *.
...
* env.c [__alpha__ && __osf__] (_BSD): Define.
* init.c [__alpha__ && __osf__] (__gnat_error_handler): Cast msg
to const char *.
From-SVN: r151938
2009-09-21 18:58:29 +00:00
Giuseppe Scrivano
d9334061ea
tree-tailcall.c (process_assignment): Don't check if a multiplication or an addition are already present.
...
2009-09-21 Giuseppe Scrivano <gscrivano@gnu.org>
* tree-tailcall.c (process_assignment): Don't check if a multiplication
or an addition are already present.
(find_tail_calls): Combine multiple additions and multiplications.
(adjust_accumulator_values): Emit accumulators.
testsuite:
2009-09-21 Giuseppe Scrivano <gscrivano@gnu.org>
* gcc.dg/tree-ssa/tailrecursion-6.c: New file.
From-SVN: r151935
2009-09-21 16:41:58 +00:00
Jason Merrill
334738b440
re PR c++/41421 ([C++0x] Trivial types should require trivial default constructor.)
...
PR c++/41421
* tree.c (trivial_type_p): Fix logic.
From-SVN: r151932
2009-09-21 12:11:26 -04:00
Jason Merrill
c67a1c461a
* name-lookup.c (push_class_level_binding): Sanity check.
...
From-SVN: r151931
2009-09-21 12:11:19 -04:00
Kai Tietz
4b51caf2da
i386.c (ix86_expand_epilogue): Adjust offset for xmm register restore.
...
2009-09-21 Kai Tietz <kai.tietz@onevision.com>
* config/i386/i386.c (ix86_expand_epilogue): Adjust offset for
xmm register restore.
2009-09-21 Kai Tietz <kai.tietz@onevision.com>
* gcc.dg/torture/calleesave-sse.c: New.
From-SVN: r151918
2009-09-21 15:24:37 +02:00
Jan Hubicka
5b5fba56fe
inline-params.c: New testcase.
...
* gcc.dg/guality/inline-params.c: New testcase.
* dwarf2out.c (decl_loc_table_eq): Allow decl_loc_table to be NULL.
(dwarf2out_abstract_function): NULLify decl_loc_table at begginig and
restore at the end.
From-SVN: r151917
2009-09-21 12:48:37 +00:00
Uros Bizjak
9e2ceea07a
ieee.exp (additional_flags): Add -fno-inline.
...
* gcc.c-torture/execute/ieee/ieee.exp (additional_flags):
Add -fno-inline.
* gcc.c-torture/execute/ieee/pr36332.c (foo): Remove attributes.
* gcc.c-torture/execute/ieee/pr30704.c (f1): Ditto.
(f2): Ditto.
From-SVN: r151915
2009-09-21 12:52:57 +02:00
Eric Botcazou
473ebbc582
* stor-layout.c (layout_type): Remove obsolete code.
...
From-SVN: r151913
2009-09-21 05:55:22 +00:00
GCC Administrator
b31b556704
Daily bump.
...
From-SVN: r151911
2009-09-21 00:17:08 +00:00
H.J. Lu
f7d1fabcba
ipa-sra-1.c (dg-options): Add -fipa-sra.
...
2009-09-20 H.J. Lu <hongjiu.lu@intel.com>
* gcc.dg/ipa/ipa-sra-1.c (dg-options): Add -fipa-sra.
* gcc.dg/ipa/ipa-sra-2.c (dg-options): Likewise.
* gcc.dg/ipa/ipa-sra-3.c (dg-options): Likewise.
* gcc.dg/ipa/ipa-sra-4.c (dg-options): Likewise.
* gcc.dg/ipa/ipa-sra-5.c (dg-options): Likewise.
From-SVN: r151908
2009-09-20 14:13:56 -07:00
Andrew Pinski
15651f0bbd
re PR tree-optimization/40642 (ICE with -fprofile-generate)
...
2009-09-20 Andrew Pinski <pinskia@gcc.gnu.org>
PR middle-end/40642
* g++.dg/torture/pr40642.C: New testcase.
From-SVN: r151907
2009-09-20 13:05:00 -07:00
H.J. Lu
1dbb24a3f3
re PR bootstrap/41395 (Revision 151800 failed bootstrap)
...
2009-09-20 H.J. Lu <hongjiu.lu@intel.com>
PR middle-end/41395
* opts.c (decode_options): Don't turn on flag_ipa_sra for opt2.
From-SVN: r151905
2009-09-20 10:59:44 -07:00