aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIlya Enkovich <ilya.enkovich@intel.com>2016-07-28 12:58:37 +0000
committerIlya Enkovich <ienkovich@gcc.gnu.org>2016-07-28 12:58:37 +0000
commit69cd47a17f09ef328b6fbb3c6703cebf13864e95 (patch)
treea282fb1510d355de7ddcaa0eabfdb59dc6027dbd
parent7c428aa29d75ef163c334cf3974f87b3630d8b8b (diff)
downloadgcc-69cd47a17f09ef328b6fbb3c6703cebf13864e95.zip
gcc-69cd47a17f09ef328b6fbb3c6703cebf13864e95.tar.gz
gcc-69cd47a17f09ef328b6fbb3c6703cebf13864e95.tar.bz2
re PR middle-end/72657 ([CHKP] internal compiler error: in ix86_expand_builtin)
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
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/tree-chkp.c9
2 files changed, 12 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 56d4fb7..c4ffd78 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/tree-chkp.c b/gcc/tree-chkp.c
index 44d6d70..f39c292 100644
--- a/gcc/tree-chkp.c
+++ b/gcc/tree-chkp.c
@@ -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),