From 3069b4210a4330c9bb570a1e65bb68144aea1761 Mon Sep 17 00:00:00 2001 From: Richard Biener Date: Fri, 14 Feb 2014 14:07:30 +0000 Subject: [PATCH] cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF. 2014-02-14 Richard Biener * 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 --- gcc/ChangeLog | 6 ++++++ gcc/cilk-common.c | 8 ++------ 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2a2e5d2d5dc..91294f5f8f6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2014-02-14 Richard Biener + + * 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. + 2014-02-14 Richard Biener PR lto/60179 diff --git a/gcc/cilk-common.c b/gcc/cilk-common.c index f2a3b7594d6..a6a1aa2a968 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; } -- 2.30.2