diff options
author | Richard Biener <rguenther@suse.de> | 2014-02-14 14:07:30 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2014-02-14 14:07:30 +0000 |
commit | 3069b4210a4330c9bb570a1e65bb68144aea1761 (patch) | |
tree | aa5f0b15f66120c3faaea0084413e5c79de357b8 /gcc/cilk-common.c | |
parent | 1966fd99d822c06cbfb667806ba8bcf1fecaef58 (diff) | |
download | gcc-3069b4210a4330c9bb570a1e65bb68144aea1761.zip gcc-3069b4210a4330c9bb570a1e65bb68144aea1761.tar.gz gcc-3069b4210a4330c9bb570a1e65bb68144aea1761.tar.bz2 |
cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
2014-02-14 Richard Biener <rguenther@suse.de>
* cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF.
(get_frame_arg): Drop the assert with langhook types_compatible_p.
Do not strip INDIRECT_REFs.
From-SVN: r207784
Diffstat (limited to 'gcc/cilk-common.c')
-rw-r--r-- | gcc/cilk-common.c | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/gcc/cilk-common.c b/gcc/cilk-common.c index f2a3b75..a6a1aa2 100644 --- a/gcc/cilk-common.c +++ b/gcc/cilk-common.c @@ -66,8 +66,7 @@ cilk_dot (tree frame, int field_number, bool volatil) tree cilk_arrow (tree frame_ptr, int field_number, bool volatil) { - return cilk_dot (fold_build1 (INDIRECT_REF, - TREE_TYPE (TREE_TYPE (frame_ptr)), frame_ptr), + return cilk_dot (build_simple_mem_ref (frame_ptr), field_number, volatil); } @@ -287,12 +286,9 @@ get_frame_arg (tree call) argtype = TREE_TYPE (argtype); - gcc_assert (!lang_hooks.types_compatible_p - || lang_hooks.types_compatible_p (argtype, cilk_frame_type_decl)); - /* If it is passed in as an address, then just use the value directly since the function is inlined. */ - if (TREE_CODE (arg) == INDIRECT_REF || TREE_CODE (arg) == ADDR_EXPR) + if (TREE_CODE (arg) == ADDR_EXPR) return TREE_OPERAND (arg, 0); return arg; } |