@@ -2581,6 +2581,8 @@ create_component_ref_by_pieces_1 (basic_block block, vn_reference_t ref,
(TREE_CODE (fn) == FUNCTION_DECL
? build_fold_addr_expr (fn) : fn),
nargs, args);
+ if (currop->with_bounds)
+ CALL_WITH_BOUNDS_P (folded) = true;
free (args);
if (sc)
CALL_EXPR_STATIC_CHAIN (folded) = sc;
@@ -1149,6 +1149,8 @@ copy_reference_ops_from_call (gimple call,
if (stmt_could_throw_p (call) && (lr = lookup_stmt_eh_lp (call)) > 0)
temp.op2 = size_int (lr);
temp.off = -1;
+ if (gimple_call_with_bounds_p (call))
+ temp.with_bounds = 1;
result->safe_push (temp);
/* Copy the call arguments. As they can be references as well,
@@ -80,7 +80,9 @@ typedef const struct vn_phi_s *const_vn_phi_t;
typedef struct vn_reference_op_struct
{
- enum tree_code opcode;
+ ENUM_BITFIELD(tree_code) opcode : 16;
+ /* 1 for instrumented calls. */
+ unsigned with_bounds : 1;
/* Constant offset this op adds or -1 if it is variable. */
HOST_WIDE_INT off;
tree type;