aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2006-03-04 18:27:08 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2006-03-04 18:27:08 +0000
commit936a6fa78adb1daf15cae50649f1413262697dcf (patch)
treeb03d4babea37195fff6bc1c1fc2c7d0273ce21a4 /gcc/ada
parent4469af7acf60b8af84174ece207e847e74067b27 (diff)
downloadgcc-936a6fa78adb1daf15cae50649f1413262697dcf.zip
gcc-936a6fa78adb1daf15cae50649f1413262697dcf.tar.gz
gcc-936a6fa78adb1daf15cae50649f1413262697dcf.tar.bz2
gigi.h (get_ada_base_type): Delete.
* gigi.h (get_ada_base_type): Delete. * utils2.c (get_ada_base_type): Likewise. * trans.c (convert_with_check): Operate in the real base type. From-SVN: r111711
Diffstat (limited to 'gcc/ada')
-rw-r--r--gcc/ada/ChangeLog6
-rw-r--r--gcc/ada/gigi.h3
-rw-r--r--gcc/ada/trans.c11
-rw-r--r--gcc/ada/utils2.c13
4 files changed, 11 insertions, 22 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index cc1a4b2..56e21e0 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,9 @@
+2006-03-04 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gigi.h (get_ada_base_type): Delete.
+ * utils2.c (get_ada_base_type): Likewise.
+ * trans.c (convert_with_check): Operate in the real base type.
+
2006-03-03 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* uintp.adb (Num_Bits): Handle Uint_Int_First specially.
diff --git a/gcc/ada/gigi.h b/gcc/ada/gigi.h
index bc7844c..e1914e4 100644
--- a/gcc/ada/gigi.h
+++ b/gcc/ada/gigi.h
@@ -671,9 +671,6 @@ extern tree gnat_truthvalue_conversion (tree expr);
/* Return the base type of TYPE. */
extern tree get_base_type (tree type);
-/* Likewise, but only return types known at Ada source. */
-extern tree get_ada_base_type (tree type);
-
/* EXP is a GCC tree representing an address. See if we can find how
strictly the object at that address is aligned. Return that alignment
strictly the object at that address is aligned. Return that alignment
diff --git a/gcc/ada/trans.c b/gcc/ada/trans.c
index 1a9f3f4..30c0fb5 100644
--- a/gcc/ada/trans.c
+++ b/gcc/ada/trans.c
@@ -5323,7 +5323,6 @@ convert_with_check (Entity_Id gnat_type, tree gnu_expr, bool overflowp,
tree gnu_in_type = TREE_TYPE (gnu_expr);
tree gnu_in_basetype = get_base_type (gnu_in_type);
tree gnu_base_type = get_base_type (gnu_type);
- tree gnu_ada_base_type = get_ada_base_type (gnu_type);
tree gnu_result = gnu_expr;
/* If we are not doing any checks, the output is an integral type, and
@@ -5415,7 +5414,7 @@ convert_with_check (Entity_Id gnat_type, tree gnu_expr, bool overflowp,
/* Now convert to the result base type. If this is a non-truncating
float-to-integer conversion, round. */
- if (INTEGRAL_TYPE_P (gnu_ada_base_type) && FLOAT_TYPE_P (gnu_in_basetype)
+ if (INTEGRAL_TYPE_P (gnu_base_type) && FLOAT_TYPE_P (gnu_in_basetype)
&& !truncatep)
{
REAL_VALUE_TYPE half_minus_pred_half, pred_half;
@@ -5474,12 +5473,12 @@ convert_with_check (Entity_Id gnat_type, tree gnu_expr, bool overflowp,
gnu_add_pred_half, gnu_subtract_pred_half);
}
- if (TREE_CODE (gnu_ada_base_type) == INTEGER_TYPE
- && TYPE_HAS_ACTUAL_BOUNDS_P (gnu_ada_base_type)
+ if (TREE_CODE (gnu_base_type) == INTEGER_TYPE
+ && TYPE_HAS_ACTUAL_BOUNDS_P (gnu_base_type)
&& TREE_CODE (gnu_result) == UNCONSTRAINED_ARRAY_REF)
- gnu_result = unchecked_convert (gnu_ada_base_type, gnu_result, false);
+ gnu_result = unchecked_convert (gnu_base_type, gnu_result, false);
else
- gnu_result = convert (gnu_ada_base_type, gnu_result);
+ gnu_result = convert (gnu_base_type, gnu_result);
/* Finally, do the range check if requested. Note that if the
result type is a modular type, the range check is actually
diff --git a/gcc/ada/utils2.c b/gcc/ada/utils2.c
index ee8dec5..65837bb 100644
--- a/gcc/ada/utils2.c
+++ b/gcc/ada/utils2.c
@@ -123,19 +123,6 @@ get_base_type (tree type)
return type;
}
-
-/* Likewise, but only return types known to the Ada source. */
-tree
-get_ada_base_type (tree type)
-{
- while (TREE_TYPE (type)
- && (TREE_CODE (type) == INTEGER_TYPE
- || TREE_CODE (type) == REAL_TYPE)
- && !TYPE_EXTRA_SUBTYPE_P (type))
- type = TREE_TYPE (type);
-
- return type;
-}
/* EXP is a GCC tree representing an address. See if we can find how
strictly the object at that address is aligned. Return that alignment