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
This commit is contained in:
Ilya Enkovich 2016-07-28 12:58:37 +00:00 committed by Ilya Enkovich
parent 7c428aa29d
commit 69cd47a17f
2 changed files with 12 additions and 5 deletions

View 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> 2016-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* config/alpha/alpha.c (alpha_adjust_cost): Adjust. * config/alpha/alpha.c (alpha_adjust_cost): Adjust.

View File

@ -2327,8 +2327,7 @@ chkp_retbnd_call_by_val (tree val)
imm_use_iterator use_iter; imm_use_iterator use_iter;
use_operand_p use_p; use_operand_p use_p;
FOR_EACH_IMM_USE_FAST (use_p, use_iter, val) FOR_EACH_IMM_USE_FAST (use_p, use_iter, val)
if (gimple_code (USE_STMT (use_p)) == GIMPLE_CALL if (chkp_gimple_call_builtin_p (USE_STMT (use_p), BUILT_IN_CHKP_BNDRET))
&& gimple_call_fndecl (USE_STMT (use_p)) == chkp_ret_bnd_fndecl)
return as_a <gcall *> (USE_STMT (use_p)); return as_a <gcall *> (USE_STMT (use_p));
return NULL; 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_node *callee = cgraph_node::get_create (fndecl);
struct cgraph_edge *new_edge; struct cgraph_edge *new_edge;
gcc_assert (fndecl == chkp_bndstx_fndecl gcc_assert (chkp_gimple_call_builtin_p (stmt, BUILT_IN_CHKP_BNDSTX)
|| fndecl == chkp_bndldx_fndecl || chkp_gimple_call_builtin_p (stmt, BUILT_IN_CHKP_BNDLDX)
|| fndecl == chkp_ret_bnd_fndecl); || chkp_gimple_call_builtin_p (stmt, BUILT_IN_CHKP_BNDRET));
new_edge = edge->caller->create_edge (callee, new_edge = edge->caller->create_edge (callee,
as_a <gcall *> (stmt), as_a <gcall *> (stmt),