From: Richard Biener Date: Fri, 14 Feb 2014 14:07:30 +0000 (+0000) Subject: cilk-common.c (cilk_arrow): Build a MEM_REF, not an INDIRECT_REF. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=3069b4210a4330c9bb570a1e65bb68144aea1761;p=gcc.git 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 --- 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; }