re PR middle-end/72657 ([CHKP] internal compiler error: in ix86_expand_builtin)
authorIlya Enkovich <ilya.enkovich@intel.com>
Thu, 28 Jul 2016 12:58:37 +0000 (12:58 +0000)
committerIlya Enkovich <ienkovich@gcc.gnu.org>
Thu, 28 Jul 2016 12:58:37 +0000 (12:58 +0000)
gcc/

PR middle-end/72657
PR target/72683
* tree-chkp.c (chkp_retbnd_call_by_val): Check for instrumentation
call using chkp_gimple_call_builtin_p.
(chkp_copy_bounds_for_assign): Likewise.

From-SVN: r238816

gcc/ChangeLog
gcc/tree-chkp.c

index 56d4fb7..c4ffd78 100644 (file)
@@ -1,3 +1,11 @@
+2016-07-28  Ilya Enkovich  <ilya.enkovich@intel.com>
+
+       PR middle-end/72657
+       PR target/72683
+       * tree-chkp.c (chkp_retbnd_call_by_val): Check for instrumentation
+       call using chkp_gimple_call_builtin_p.
+       (chkp_copy_bounds_for_assign): Likewise.
+
 2016-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
 
        * config/alpha/alpha.c (alpha_adjust_cost): Adjust.
index 44d6d70..f39c292 100644 (file)
@@ -2327,8 +2327,7 @@ chkp_retbnd_call_by_val (tree val)
   imm_use_iterator use_iter;
   use_operand_p use_p;
   FOR_EACH_IMM_USE_FAST (use_p, use_iter, val)
-    if (gimple_code (USE_STMT (use_p)) == GIMPLE_CALL
-       && gimple_call_fndecl (USE_STMT (use_p)) == chkp_ret_bnd_fndecl)
+    if (chkp_gimple_call_builtin_p (USE_STMT (use_p), BUILT_IN_CHKP_BNDRET))
       return as_a <gcall *> (USE_STMT (use_p));
 
   return NULL;
@@ -4096,9 +4095,9 @@ chkp_copy_bounds_for_assign (gimple *assign, struct cgraph_edge *edge)
          struct cgraph_node *callee = cgraph_node::get_create (fndecl);
          struct cgraph_edge *new_edge;
 
-         gcc_assert (fndecl == chkp_bndstx_fndecl
-                     || fndecl == chkp_bndldx_fndecl
-                     || fndecl == chkp_ret_bnd_fndecl);
+         gcc_assert (chkp_gimple_call_builtin_p (stmt, BUILT_IN_CHKP_BNDSTX)
+                     || chkp_gimple_call_builtin_p (stmt, BUILT_IN_CHKP_BNDLDX)
+                     || chkp_gimple_call_builtin_p (stmt, BUILT_IN_CHKP_BNDRET));
 
          new_edge = edge->caller->create_edge (callee,
                                                as_a <gcall *> (stmt),