tree.h (tree_to_shwi, [...]): Declare, with inline expansions.

gcc/
	* tree.h (tree_to_shwi, tree_to_uhwi): Declare, with inline expansions.
	* tree.c (tree_to_shwi, tree_to_uhwi): New functions.

From-SVN: r204958
This commit is contained in:
Richard Sandiford 2013-11-18 14:51:45 +00:00 committed by Richard Sandiford
parent 5a36c51b09
commit 7c5efc1206
3 changed files with 43 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
* tree.h (tree_to_shwi, tree_to_uhwi): Declare, with inline expansions.
* tree.c (tree_to_shwi, tree_to_uhwi): New functions.
2013-11-18 Richard Sandiford <rdsandiford@googlemail.com> 2013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
* expr.h: Update comments to refer to tree_fits_[su]hwi_p rather * expr.h: Update comments to refer to tree_fits_[su]hwi_p rather

View File

@ -7027,6 +7027,28 @@ tree_low_cst (const_tree t, int pos)
return TREE_INT_CST_LOW (t); return TREE_INT_CST_LOW (t);
} }
/* T is an INTEGER_CST whose numerical value (extended according to
TYPE_UNSIGNED) fits in a signed HOST_WIDE_INT. Return that
HOST_WIDE_INT. */
HOST_WIDE_INT
tree_to_shwi (const_tree t)
{
gcc_assert (tree_fits_shwi_p (t));
return TREE_INT_CST_LOW (t);
}
/* T is an INTEGER_CST whose numerical value (extended according to
TYPE_UNSIGNED) fits in an unsigned HOST_WIDE_INT. Return that
HOST_WIDE_INT. */
HOST_WIDE_INT
tree_to_uhwi (const_tree t)
{
gcc_assert (tree_fits_uhwi_p (t));
return TREE_INT_CST_LOW (t);
}
/* Return the most significant (sign) bit of T. */ /* Return the most significant (sign) bit of T. */
int int

View File

@ -3673,6 +3673,8 @@ extern bool tree_fits_uhwi_p (const_tree)
#endif #endif
; ;
extern HOST_WIDE_INT tree_low_cst (const_tree, int); extern HOST_WIDE_INT tree_low_cst (const_tree, int);
extern HOST_WIDE_INT tree_to_shwi (const_tree);
extern HOST_WIDE_INT tree_to_uhwi (const_tree);
#if !defined ENABLE_TREE_CHECKING && (GCC_VERSION >= 4003) #if !defined ENABLE_TREE_CHECKING && (GCC_VERSION >= 4003)
extern inline __attribute__ ((__gnu_inline__)) HOST_WIDE_INT extern inline __attribute__ ((__gnu_inline__)) HOST_WIDE_INT
tree_low_cst (const_tree t, int pos) tree_low_cst (const_tree t, int pos)
@ -3680,6 +3682,20 @@ tree_low_cst (const_tree t, int pos)
gcc_assert (host_integerp (t, pos)); gcc_assert (host_integerp (t, pos));
return TREE_INT_CST_LOW (t); return TREE_INT_CST_LOW (t);
} }
extern inline __attribute__ ((__gnu_inline__)) HOST_WIDE_INT
tree_to_shwi (const_tree t)
{
gcc_assert (tree_fits_shwi_p (t));
return TREE_INT_CST_LOW (t);
}
extern inline __attribute__ ((__gnu_inline__)) HOST_WIDE_INT
tree_to_uhwi (const_tree t)
{
gcc_assert (tree_fits_uhwi_p (t));
return TREE_INT_CST_LOW (t);
}
#endif #endif
extern int tree_int_cst_sgn (const_tree); extern int tree_int_cst_sgn (const_tree);
extern int tree_int_cst_sign_bit (const_tree); extern int tree_int_cst_sign_bit (const_tree);