Commit graph

109948 commits

Author SHA1 Message Date
Ian Lance Taylor
b7758f2275 libgo: Use GOCFLAGS when compiling tests.
From Uros Bizjak.

From-SVN: r175930
2011-07-06 19:51:58 +00:00
Jonathan Wakely
49d6830d66 re PR other/49658 (Typo in gcc/doc/extend.texi)
2011-07-06  Jonathan Wakely  <jwakely.gcc@gmail.com>

	PR other/49658
	* doc/extend.texi (Compound Literals): Fix typo.

From-SVN: r175928
2011-07-06 19:40:36 +01:00
Ian Lance Taylor
d75dae75d7 json: fix test when rand returns 0.
Fixes using gccgo when optimizing, which changes the order of
calls to rand.  Same patch proposed upstream.

From-SVN: r175927
2011-07-06 18:38:24 +00:00
Uros Bizjak
60b4539438 mt-alphaieee (GOCFLAGS_FOR_TARGET): Add -mieee.
* mt-alphaieee (GOCFLAGS_FOR_TARGET): Add -mieee.

From-SVN: r175926
2011-07-06 19:48:43 +02:00
James Greenhalgh
c884924f5b arm.h (TARGET_CPU_CPP_BUILTINS): Add __ARM_FEATURE_DSP.
2011-07-06  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add
	__ARM_FEATURE_DSP.

From-SVN: r175925
2011-07-06 17:26:15 +00:00
Basile Starynkevitch
bf5884559b configure.ac (plugin-version.h): Generate GCCPLUGIN_VERSION_MAJOR...
2011-07-06  Basile Starynkevitch  <basile@starynkevitch.net>

	* configure.ac (plugin-version.h): Generate
	GCCPLUGIN_VERSION_MAJOR, GCCPLUGIN_VERSION_MINOR,
	GCCPLUGIN_VERSION_PATCHLEVEL, GCCPLUGIN_VERSION constant integer
	macros.

	* configure: Regenerate.

	* doc/plugins.texi (Building GCC plugins): Mention
	GCCPLUGIN_VERSION ... constant macros in plugin-version.h.

From-SVN: r175923
2011-07-06 16:37:09 +00:00
Georg-Johann Lay
c8ecdaba87 target-supports.exp (check_profiling_available): Disable profiling with -fprofile-generate for target avr.
* lib/target-supports.exp (check_profiling_available): Disable
	profiling with -fprofile-generate for target avr.

From-SVN: r175922
2011-07-06 16:05:18 +00:00
Bernd Schmidt
d0edd768de machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): New macro.
* machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): New macro.
	* combine.c (make_extraction, gen_lowpart_or_truncate,
	apply_distributive_law, simplify_comparison,
	reg_truncated_to_mode, record_truncated_value): Use it.
	* cse.c (notreg_cost): Likewise.
	* expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
	* expr.c (convert_move, convert_modes): Likewise.
	* optabs.c (expand_binop, expand_unop): Likewise.
	* postreload.c (move2add_last_label): Likewise.
	* regmove.c (optimize_reg_copy_3): Likewise.
	* rtlhooks.c (gen_lowpart_general): Likewise.
	* simplify-rtx.c (simplify_unary_operation_1): Likewise.

From-SVN: r175921
2011-07-06 14:44:30 +00:00
Joseph Myers
e5cabdfba8 * config/rs6000/vxworks.h (WORDS_BIG_ENDIAN): Define.
From-SVN: r175919
2011-07-06 15:24:35 +01:00
Bernd Schmidt
f9c083450b * simplify-rtx.c (simplify_ternary_operation): Remove dead code.
From-SVN: r175918
2011-07-06 14:21:51 +00:00
Bernd Schmidt
2d0c270fd2 cse.c (find_comparison_args): Use val_mode_signbit_set_p.
* cse.c (find_comparison_args): Use val_mode_signbit_set_p.
	* simplify-rtx.c (mode_signbit_p): Use GET_MODE_PRECISION.
	(val_mode_signbit_p, val_mode_signbit_set_p): New functions.
	(simplify_const_unary_operation, simplify_binary_operation_1,
	simplify_const_binary_operation,
	simplify_const_relational_operation): Use them.  Use
	GET_MODE_MASK for masking and sign-extensions.
	* combine.c (set_nonzero_bits_and_sign_copies, simplify_set,
	combine_simplify_rtx, force_to_mode, reg_nonzero_bits_for_combine,
	simplify_shift_const_1, simplify_comparison): Likewise.
	* expr.c (convert_modes): Likewise.
	* rtlanal.c (nonzero_bits1, canonicalize_condition): Likewise.
	* expmed.c (emit_cstore, emit_store_flag_1, emit_store_flag):
	Likewise.
	* rtl.h (val_mode_signbit_p, val_mode_signbit_set_p): Declare.

From-SVN: r175917
2011-07-06 14:21:03 +00:00
Richard Guenther
6d6c952527 re PR tree-optimization/49645 (g++.dg/tree-ssa/pr8781.C FAILs on Tru64 UNIX)
2011-07-06  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/49645
	* c-decl.c (finish_decl): Also set DECL_HARD_REGISTER for global
	register variables.
	* tree-ssa-sccvn.c (vn_reference_op_eq): Disregard differences
	in type qualification here ...
	(copy_reference_ops_from_ref): ... not here.
	(vn_reference_lookup_3): ... or here.
	(copy_reference_ops_from_ref): Record decl bases as MEM[&decl].
	(vn_reference_lookup): Do the lookup with a valueized ao-ref.

	* g++.dg/tree-ssa/pr8781.C: Disable SRA.

From-SVN: r175916
2011-07-06 14:05:54 +00:00
Ian Lance Taylor
d1a6ec1092 install.texi (Configuration): It's --enable-gnu-indirect-function, not --enable-indirect-function.
* doc/install.texi (Configuration): It's
	--enable-gnu-indirect-function, not --enable-indirect-function.

From-SVN: r175915
2011-07-06 13:58:39 +00:00
Bernd Schmidt
ff3e08afdd simplify-rtx.c (simplify_const_binary_operation): Use the shift_truncation_mask hook instead of performing modulo by width.
* simplify-rtx.c (simplify_const_binary_operation): Use the
	shift_truncation_mask hook instead of performing modulo by
	width.  Compare against mode precision, not bitsize.
	* combine.c (combine_simplify_rtx, simplify_shift_const_1):
	Use shift_truncation_mask instead of constructing the value
	manually.

From-SVN: r175913
2011-07-06 13:36:16 +00:00
H.J. Lu
a369b6399c Use pointer_mode for address computation.
gcc/

2011-07-06  H.J. Lu  <hongjiu.lu@intel.com>

	PR middle-end/47383
	* tree-ssa-address.c (addr_for_mem_ref): Use pointer_mode for
	address computation and convert to address_mode if needed.

gcc/testsuite/

2011-07-06  H.J. Lu  <hongjiu.lu@intel.com>

	PR middle-end/47383
	* gcc.dg/pr47383.c: New.

From-SVN: r175912
2011-07-06 06:19:04 -07:00
Rainer Orth
8dabd0988a re PR tree-optimization/49647 (gcc.dg/tree-ssa/20030807-7.c XPASSes everywhere)
PR tree-optimization/49647
	* gcc.dg/tree-ssa/20030807-7.c: Remove xfail *-*-*.

From-SVN: r175910
2011-07-06 11:56:46 +00:00
Richard Guenther
1a07229414 tree.c (build_common_tree_nodes_2): Merge with build_common_tree_nodes.
2011-07-06  Richard Guenther  <rguenther@suse.de>

	* tree.c (build_common_tree_nodes_2): Merge with
	build_common_tree_nodes.
	* tree.h (build_common_tree_nodes): Adjust prototype.
	(build_common_tree_nodes_2): Remove.
	* doc/tm.texi.in (lang_hooks.builtin_function): Adjust.
	* doc/tm.texi (lang_hooks.builtin_function): Regenerate.

	c-family/
	* c-common.c (c_common_nodes_and_builtins):
	Merge calls to build_common_tree_nodes and build_common_tree_nodes_2.

	fortran/
	* f95-lang.c (gfc_init_decl_processing):
	Merge calls to build_common_tree_nodes and build_common_tree_nodes_2.

	go/
	* go-lang.c (go_langhook_init):
	Merge calls to build_common_tree_nodes and build_common_tree_nodes_2.

	java/
	* decl.c (java_init_decl_processing):
	Merge calls to build_common_tree_nodes and build_common_tree_nodes_2.

	lto/
	* lto-lang.c (lto_init):
	Merge calls to build_common_tree_nodes and build_common_tree_nodes_2.

	ada/
	* gcc-interface/misc.c (gnat_init):
	Merge calls to build_common_tree_nodes and build_common_tree_nodes_2.
	Re-initialize boolean_false_node.

From-SVN: r175906
2011-07-06 10:03:05 +00:00
Eric Botcazou
e6a64b21cb re PR testsuite/49542 (2 failures in the vectorization testsuite in 64-bit mode)
PR testsuite/49542
	* gcc.dg/vect/pr33804.c: XFAIL if vect_no_align unconditionally.
	* gcc.dg/vect/slp-multitypes-3.c: XFAIL on SPARC unconditionally.

From-SVN: r175905
2011-07-06 08:46:41 +00:00
Jason Merrill
31d2ea2a9a re PR c++/48157 (Unable to match function call to member function template)
PR c++/48157
	* pt.c (tsubst_qualified_id): Preserve TEMPLATE_ID_EXPR in
	partial instantiation.

From-SVN: r175904
2011-07-06 00:20:39 -04:00
GCC Administrator
b935c71804 Daily bump.
From-SVN: r175900
2011-07-06 00:18:36 +00:00
Thomas Schwinge
9e7714f424 libgcc/
* config.host (i[34567]86-*-kfreebsd*-gnu, i[34567]86-*-knetbsd*-gnu)
	(i[34567]86-*-gnu*, i[34567]86-*-kopensolaris*-gnu): Remove
	md_unwind_header by splitting out of...
	(i[34567]86-*-linux*): ... this.
	* config.host (x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu):
	Remove md_unwind_header by splitting out of...
	(x86_64-*-linux*): ... this.

From-SVN: r175892
2011-07-06 00:14:37 +02:00
Jakub Jelinek
f2c3a8ce9c re PR tree-optimization/49618 (When building uClibc with GCC 4.6.1 old_atexit is miscompiled)
PR tree-optimization/49618
	* tree-eh.c (tree_could_trap_p) <case CALL_EXPR>: For DECL_WEAK
	t recurse on the decl.
	<case FUNCTION_DECL, case VAR_DECL>: For DECL_WEAK decls
	return true if expr isn't known to be defined in current
	TU or some other LTO partition.

From-SVN: r175884
2011-07-05 20:43:04 +02:00
Georg-Johann Lay
49bf9170eb pr44023.c: Add dg-require-effective-target int32plus
* gcc.dg/pr44023.c: Add dg-require-effective-target int32plus
	* gcc.dg/pr43402.c: Ditto.

From-SVN: r175882
2011-07-05 18:27:57 +00:00
Thomas Koenig
a787f6f9ec memory.c (internal_malloc_size): If size is zero, allocate a single byte.
2011-07-05  Thomas Koenig  <tkoenig@gcc.gnu.org>

	* runtime/memory.c (internal_malloc_size):  If size is zero,
	allocate a single byte.
	* m4/pack.m4 (pack_'rtype_code`):  Don't check for zero size
	for the argument of internal_malloc_size.
	* m4/spread.m4 (spread_'rtype_code`):  Likewise.
	* m4/eoshift1.m4 (eoshift1):  Don't allocate twice.  Don't check
	for zero size for the argument of internal_malloc_size.
	* m4/eoshift3.m4: Don't check for zero size for the argument of
	internal_malloc_size.
	* intrinsics/pack_generic.c (pack_internal):  Likewise.
	(pack_s_internal):  Likewise.
	* intrinsics/cshift0.c (cshift0):  Likewise.
	* intrinsics/spread_generic.c (spread_internal):  Likewise.
	* intrinsics/eoshift0.c (eoshift0):  Likewise.
	* intrinsics/eoshift2.c (eoshift2):  Likewise.
	* generated/eoshift1_16.c: Regenerated.
	* generated/eoshift1_4.c: Regenerated.
	* generated/eoshift1_8.c: Regenerated.
	* generated/eoshift3_16.c: Regenerated.
	* generated/eoshift3_4.c: Regenerated.
	* generated/eoshift3_8.c: Regenerated.
	* generated/pack_c10.c: Regenerated.
	* generated/pack_c16.c: Regenerated.
	* generated/pack_c4.c: Regenerated.
	* generated/pack_c8.c: Regenerated.
	* generated/pack_i16.c: Regenerated.
	* generated/pack_i1.c: Regenerated.
	* generated/pack_i2.c: Regenerated.
	* generated/pack_i4.c: Regenerated.
	* generated/pack_i8.c: Regenerated.
	* generated/pack_r10.c: Regenerated.
	* generated/pack_r16.c: Regenerated.
	* generated/pack_r4.c: Regenerated.
	* generated/pack_r8.c: Regenerated.
	* generated/spread_c10.c: Regenerated.
	* generated/spread_c16.c: Regenerated.
	* generated/spread_c4.c: Regenerated.
	* generated/spread_c8.c: Regenerated.
	* generated/spread_i16.c: Regenerated.
	* generated/spread_i1.c: Regenerated.
	* generated/spread_i2.c: Regenerated.
	* generated/spread_i4.c: Regenerated.
	* generated/spread_i8.c: Regenerated.
	* generated/spread_r10.c: Regenerated.
	* generated/spread_r16.c: Regenerated.
	* generated/spread_r4.c: Regenerated.
	* generated/spread_r8.c: Regenerated.

From-SVN: r175880
2011-07-05 18:16:17 +00:00
Georg-Johann Lay
3c428fb333 * gcc.dg/cpp/pragma-3.c: Add dg-require-effective-target fopenmp.
From-SVN: r175879
2011-07-05 18:03:04 +00:00
Michael Meissner
3aa439ed17 Add --param case-values-threshold
From-SVN: r175878
2011-07-05 17:45:38 +00:00
Janis Johnson
fb237f9c64 * gcc.target/arm/pr42093.c: Use "-fno-reorder-blocks".
From-SVN: r175877
2011-07-05 17:16:17 +00:00
Richard Henderson
499566678c dwarf2out: Remove unused text-based unwind entry points.
The dwarf2out_cfi_label function is privatized, the
dwarf2out_def_cfa function is merged into its last user.
The others really are unused.

        * dwarf2out.c (dwarf2out_cfi_label): Make static.
        (dwarf2out_flush_queued_reg_saves): Make static.
        (dwarf2out_reg_save): Remove.
        (dwarf2out_return_save): Remove.
        (dwarf2out_return_reg): Remove.
        (dwarf2out_reg_save_reg): Remove.
        (dwarf2out_def_cfa): Merge into ...
        (dwarf2out_frame_init): ... here.
        * dwarf2out.h, tree.h: Remove declarations as necessary.

From-SVN: r175876
2011-07-05 10:14:16 -07:00
Richard Henderson
c2b40eba3a ia64: Remove TARGET_DWARF_HANDLE_FRAME_UNSPEC hook.
Use an empty REG_FRAME_RELATED_EXPR instead.

        * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): Remove.
        (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
        (ia64_expand_epilogue): Emit an empty FRAME_RELATED_EXPR for
        the alloc insn.

From-SVN: r175875
2011-07-05 10:10:29 -07:00
Richard Henderson
7d3c6cd8f4 ia64: Remove dead code in process_epilogue.
* config/ia64/ia64.c (ia64_emit_deleted_label_after_insn): Remove.
        (IA64_CHANGE_CFA_IN_EPILOGUE): Remove.
        (process_epilogue): Don't call dwarf2out_def_cfa.

From-SVN: r175874
2011-07-05 10:08:58 -07:00
Richard Henderson
5f7409731e ia64: Use pc_rtx to save the return address.
When actually emitting dwarf2, this now produces proper results.
When emitting ia64 unwind info, this removes a hard-coded assumption.

        * config/ia64/ia64.c (ia64_expand_prologue): Use pc_rtx to
        indicate the return address save.
        (process_cfa_register): Likewise.

From-SVN: r175873
2011-07-05 10:08:52 -07:00
Richard Henderson
a18801474a ia64: Remove ia64_dwarf2out_def_steady_cfa.
This defines nothing that we can't deduce already, so remove it.

        * config/ia64/ia64.c (ia64_dwarf2out_def_steady_cfa): Remove.
        (process_cfa_adjust_cfa, ia64_asm_unwind_emit): Don't call it.

From-SVN: r175872
2011-07-05 10:06:09 -07:00
Richard Henderson
9f2ff8e5c9 ia64: Issue REG_CFA_REGISTER for ar.pfs at alloc insn.
* config/ia64/ia64.c (ia64_expand_prologue): Emit REG_CFA_REGISTER
        for ar.pfs save at alloc insn.

From-SVN: r175871
2011-07-05 10:05:04 -07:00
Richard Henderson
ddc6e7d62c arm: Use REG_CFA_REGISTER instead of UNSPEC_STACK_ALIGN.
This requires a bit of extra preparation in arm_unwind_emit, in
order to handle the change for ARM unwinding.

        * config/arm/arm.c (arm_dwarf_handle_frame_unspec): Remove.
        (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
        (arm_expand_prologue): Use REG_CFA_REGISTER to mark the
        stack pointer save.
        (arm_unwind_emit_set): Don't recognize UNSPEC_STACK_ALIGN.
        (arm_unwind_emit): Walk REG_NOTES for unwinding notes.  Emit
        proper unwind info for a REG_CFA_REGISTER save of stack pointer.
        * config/arm/arm.md (UNSPEC_STACK_ALIGN): Remove.

From-SVN: r175870
2011-07-05 10:03:41 -07:00
Richard Henderson
a351560575 vax: Emit prologue as rtl.
Not that there's much rtl to emit, since the CALL instruction
interpreting the procedure entry mask does almost all the work.
However, it means we're no longer emitting dwarf2 via the
text-based entry points.

        * config/vax/vax.md (define_c_enum unspecv): New.  Define the
        VUNSPEC_* constants here instead of via define_constants.
        (VUNSPEC_PEM): New constant.
        (procedure_entry_mask): New insn.
        (prologue): New expander.
        * config/vax/vax.c (vax_add_reg_cfa_offset): New.
        (vax_expand_prologue): Rename from vax_output_function_prologue;
        emit rtl instead of text.
        (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
        (print_operand): Add 'x' prefix.

From-SVN: r175869
2011-07-05 09:58:42 -07:00
Jason Merrill
96241349e9 * g++.dg/rtti/anon-ns1.C: Allow for null-termination.
From-SVN: r175867
2011-07-05 12:36:59 -04:00
H.J. Lu
a7adbbcbc3 Promote the function argument before checking non-legitimate constant.
2011-07-05  H.J. Lu  <hongjiu.lu@intel.com>

	PR middle-end/47715
	* calls.c (precompute_register_parameters): Promote the function
	argument before checking non-legitimate constant.

From-SVN: r175864
2011-07-05 08:47:40 -07:00
Sebastian Pop
cec11ec414 Fix PR47654: Loop blocking should strip-mine at least two loops.
PR tree-optimization/47654
	* graphite-blocking.c (pbb_strip_mine_time_depth): Do not return bool.
	(lst_do_strip_mine_loop): Return an int.
	(lst_do_strip_mine): Same.
	(scop_do_strip_mine): Same.
	(scop_do_block): Loop blocking should strip-mine at least two loops.
	* graphite-interchange.c (lst_interchange_select_outer): Return an int.
	(scop_do_interchange): Same.
	* graphite-poly.h (scop_do_interchange): Update declaration.
	(scop_do_strip_mine): Same.

	* gcc.dg/graphite/block-pr47654.c: New.

From-SVN: r175861
2011-07-05 14:50:34 +00:00
Sebastian Pop
9b0d314a45 Fix computation of precision.
* graphite-clast-to-gimple.c (precision_for_value): Removed.
	(precision_for_interval): Removed.
	(gcc_type_for_interval): Use mpz_sizeinbase.

From-SVN: r175860
2011-07-05 14:50:27 +00:00
Sebastian Pop
81d6d0802d Correct computation of max.
* graphite-ppl.h (value_max): Correct computation of max.

From-SVN: r175859
2011-07-05 14:50:21 +00:00
Sebastian Pop
369e343060 Correct typo.
* graphite-clast-to-gimple.c (clast_name_to_index): Add missing space.

From-SVN: r175858
2011-07-05 14:50:13 +00:00
Jason Merrill
f395f5e2a1 re PR c++/49598 ([C++0x] Ice on lambda with implicit capture by value.)
PR c++/49598
	* semantics.c (finish_id_expression): convert_from_reference.

From-SVN: r175857
2011-07-05 10:47:21 -04:00
Richard Guenther
fce5dddd3d c-common.c (c_common_nodes_and_builtins): Build all common tree nodes first.
2011-07-05  Richard Guenther  <rguenther@suse.de>

	c-family/
	* c-common.c (c_common_nodes_and_builtins): Build all common
	tree nodes first.

	* c-decl.c (c_init_decl_processing): Defer building common
	tree nodes to c_common_nodes_and_builtins.

	cp/
	* decl.c (cxx_init_decl_processing): Defer building common
	tree nodes to c_common_nodes_and_builtins.

From-SVN: r175856
2011-07-05 14:39:30 +00:00
Razya Ladelsky
12037899ea 07-05-2011 Razya Ladelsky <razya@il.ibm.com>
* tree-cfg.c (gimple_duplicate_sese_tail): Remove handling of 
        the loop's number of iterations.
        * tree-parloops.c (transform_to_exit_first_loop): Add the 
        handling of the loop's number of iterations before the call 
        to gimple_duplicate_sese_tail.
        Insert the stmt caclculating the new rhs of the loop's
        condition stmt to the preheader instead of iters_bb.
        * testsuite/gcc.dg/autopar/pr49580.c: New test.

From-SVN: r175851
2011-07-05 13:08:01 +00:00
H.J. Lu
509a31f8e5 Don't propagate hard registers in forward_propagate_subreg.
2011-07-05  H.J. Lu  <hongjiu.lu@intel.com>

	PR rtl-optimization/47449
	* fwprop.c (forward_propagate_subreg): Don't propagate hard
	register nor zero/sign extended hard register.

From-SVN: r175849
2011-07-05 05:47:35 -07:00
Richard Guenther
39becbac3d re PR tree-optimization/49518 (ICE in vect_enhance_data_refs_alignment, at tree-vect-data-refs.c:1555)
2011-07-05  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/49518
	PR tree-optimization/49628
	* tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Skip
	irrelevant and invariant data-references.
	(vect_analyze_data_ref_access): For invariant loads clear the
	group association.

	* g++.dg/torture/pr49628.C: New testcase.
	* gcc.dg/torture/pr49518.c: Likewise.

From-SVN: r175847
2011-07-05 11:24:26 +00:00
Rainer Orth
08b3c764e8 run_acats (which): Extract last field from type -p, type output only if command succeeded.
* ada/acats/run_acats (which): Extract last field from type -p,
	type output only if command succeeded.

From-SVN: r175843
2011-07-05 10:22:50 +00:00
GCC Administrator
441e4f5389 Daily bump.
From-SVN: r175840
2011-07-05 00:17:59 +00:00
Jason Merrill
a517066db8 cp-demangle.c (d_expression): Handle 'this'.
* cp-demangle.c (d_expression): Handle 'this'.
	(d_print_comp) [DEMANGLE_COMPONENT_FUNCTION_PARAM]: Likewise.

From-SVN: r175836
2011-07-04 17:44:11 -04:00
Jason Merrill
f2fe30af83 DR 1207 PR c++/49589
DR 1207
	PR c++/49589
	* mangle.c (write_expression): Handle 'this'.
	* parser.c (cp_parser_postfix_dot_deref_expression): Allow
	incomplete *this.
	* semantics.c (potential_constant_expression_1): Check that
	DECL_CONTEXT is set on 'this'.

From-SVN: r175835
2011-07-04 17:44:04 -04:00