summaryrefslogtreecommitdiff
path: root/gcc/tree.c
diff options
context:
space:
mode:
authorbstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4>2009-12-02 15:53:54 +0000
committerbstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4>2009-12-02 15:53:54 +0000
commit00791fbf592b63dfdbbf273137665e17a36bfdf9 (patch)
treee4ec0d7e6e0bcae48162ebd515995679bfadedf0 /gcc/tree.c
parente3bea2716012c9f7893d87c77de9a7acafdd624a (diff)
downloadgcc-00791fbf592b63dfdbbf273137665e17a36bfdf9.tar.gz
2009-12-02 Basile Starynkevitch <basile@starynkevitch.net>
MELT branch merged with trunk rev 154911 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@154917 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree.c')
-rw-r--r--gcc/tree.c47
1 files changed, 4 insertions, 43 deletions
diff --git a/gcc/tree.c b/gcc/tree.c
index f8fb6ce8770..c533fd8c12c 100644
--- a/gcc/tree.c
+++ b/gcc/tree.c
@@ -1685,7 +1685,7 @@ integer_pow2p (const_tree expr)
if (TREE_CODE (expr) != INTEGER_CST)
return 0;
- prec = int_or_pointer_precision (TREE_TYPE (expr));
+ prec = TYPE_PRECISION (TREE_TYPE (expr));
high = TREE_INT_CST_HIGH (expr);
low = TREE_INT_CST_LOW (expr);
@@ -1749,7 +1749,7 @@ tree_log2 (const_tree expr)
if (TREE_CODE (expr) == COMPLEX_CST)
return tree_log2 (TREE_REALPART (expr));
- prec = int_or_pointer_precision (TREE_TYPE (expr));
+ prec = TYPE_PRECISION (TREE_TYPE (expr));
high = TREE_INT_CST_HIGH (expr);
low = TREE_INT_CST_LOW (expr);
@@ -1785,7 +1785,7 @@ tree_floor_log2 (const_tree expr)
if (TREE_CODE (expr) == COMPLEX_CST)
return tree_log2 (TREE_REALPART (expr));
- prec = int_or_pointer_precision (TREE_TYPE (expr));
+ prec = TYPE_PRECISION (TREE_TYPE (expr));
high = TREE_INT_CST_HIGH (expr);
low = TREE_INT_CST_LOW (expr);
@@ -9685,12 +9685,8 @@ signed_or_unsigned_type_for (int unsignedp, tree type)
based on the named address space it points to. */
if (!TYPE_ADDR_SPACE (TREE_TYPE (t)))
t = size_type_node;
-
else
- {
- int prec = int_or_pointer_precision (t);
- return lang_hooks.types.type_for_size (prec, unsignedp);
- }
+ return lang_hooks.types.type_for_size (TYPE_PRECISION (t), unsignedp);
}
if (!INTEGRAL_TYPE_P (t) || TYPE_UNSIGNED (t) == unsignedp)
@@ -10565,41 +10561,6 @@ build_target_option_node (void)
return t;
}
-/* Return the size in bits of an integer or pointer type. TYPE_PRECISION
- contains the bits, but in the past it was not set in some cases and there
- was special purpose code that checked for POINTER_TYPE_P or OFFSET_TYPE, so
- check that it is consitant when assertion checking is used. */
-
-unsigned int
-int_or_pointer_precision (const_tree type)
-{
-#if ENABLE_ASSERT_CHECKING
- unsigned int prec;
-
- if (POINTER_TYPE_P (type))
- {
- addr_space_t as = TYPE_ADDR_SPACE (TREE_TYPE (type));
- prec = GET_MODE_BITSIZE (targetm.addr_space.pointer_mode (as));
- gcc_assert (prec == TYPE_PRECISION (type));
- }
- else if (TREE_CODE (type) == OFFSET_TYPE)
- {
- prec = POINTER_SIZE;
- gcc_assert (prec == TYPE_PRECISION (type));
- }
- else
- {
- prec = TYPE_PRECISION (type);
- gcc_assert (prec != 0);
- }
-
- return prec;
-
-#else
- return TYPE_PRECISION (type);
-#endif
-}
-
/* Determine the "ultimate origin" of a block. The block may be an inlined
instance of an inlined instance of a block which is local to an inline
function, so we have to trace all of the way back through the origin chain