aboutsummaryrefslogtreecommitdiff
path: root/gcc/builtins.c
diff options
context:
space:
mode:
authorH.J. Lu <hongjiu.lu@intel.com>2010-11-25 13:47:42 +0000
committerH.J. Lu <hjl@gcc.gnu.org>2010-11-25 05:47:42 -0800
commitde77ab7591b12bfcbf70ccf5113fd013e322003a (patch)
tree699bfbb54b2d8698c6ae57973538cf901d351754 /gcc/builtins.c
parentd5fabb58358641e0d597a966b34e20339c231180 (diff)
downloadgcc-de77ab7591b12bfcbf70ccf5113fd013e322003a.zip
gcc-de77ab7591b12bfcbf70ccf5113fd013e322003a.tar.gz
gcc-de77ab7591b12bfcbf70ccf5113fd013e322003a.tar.bz2
Properly cast integer constant char.
gcc/ 2010-11-25 H.J. Lu <hongjiu.lu@intel.com> PR middle-end/46647 * builtins.c (target_char_cast): Check INTEGER_CST instead of host_integerp. Replace tree_low_cst with TREE_INT_CST_LOW. gcc/testsuite/ 2010-11-25 H.J. Lu <hongjiu.lu@intel.com> PR middle-end/46647 * gcc.target/i386/pr46647.c: New. From-SVN: r167146
Diffstat (limited to 'gcc/builtins.c')
-rw-r--r--gcc/builtins.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/builtins.c b/gcc/builtins.c
index c9e8e68..a90bf2f 100644
--- a/gcc/builtins.c
+++ b/gcc/builtins.c
@@ -630,11 +630,11 @@ target_char_cast (tree cst, char *p)
{
unsigned HOST_WIDE_INT val, hostval;
- if (!host_integerp (cst, 1)
+ if (TREE_CODE (cst) != INTEGER_CST
|| CHAR_TYPE_SIZE > HOST_BITS_PER_WIDE_INT)
return 1;
- val = tree_low_cst (cst, 1);
+ val = TREE_INT_CST_LOW (cst);
if (CHAR_TYPE_SIZE < HOST_BITS_PER_WIDE_INT)
val &= (((unsigned HOST_WIDE_INT) 1) << CHAR_TYPE_SIZE) - 1;