aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTristan Gingold <gingold@adacore.com>2012-07-16 13:10:02 +0000
committerArnaud Charlet <charlet@gcc.gnu.org>2012-07-16 15:10:02 +0200
commitb15062a82dd6ed8ac63c65da904ac5c5caf39108 (patch)
tree6ee0e07e764406617f8f8b5651122752fcf8ea7f
parent9d08a38d3b668199dbb2b6ebd501bb857af5da57 (diff)
downloadgcc-b15062a82dd6ed8ac63c65da904ac5c5caf39108.zip
gcc-b15062a82dd6ed8ac63c65da904ac5c5caf39108.tar.gz
gcc-b15062a82dd6ed8ac63c65da904ac5c5caf39108.tar.bz2
decl.c (intrin_return_compatible_p): Map Address to void *.
2012-07-16 Tristan Gingold <gingold@adacore.com> * decl.c (intrin_return_compatible_p): Map Address to void *. From-SVN: r189536
-rw-r--r--gcc/ada/ChangeLog5
-rw-r--r--gcc/ada/gcc-interface/decl.c4
2 files changed, 9 insertions, 0 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 15797a1..a8e8203 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,8 @@
+2012-07-16 Tristan Gingold <gingold@adacore.com>
+
+ * gcc-interface/decl.c (intrin_return_compatible_p): Map Address to
+ void *.
+
2012-07-16 Thomas Quinot <quinot@adacore.com>
* exp_ch9.adb (Ensure_Statement_Present): New subprogram.
diff --git a/gcc/ada/gcc-interface/decl.c b/gcc/ada/gcc-interface/decl.c
index 9a2dc45..ef7c87c 100644
--- a/gcc/ada/gcc-interface/decl.c
+++ b/gcc/ada/gcc-interface/decl.c
@@ -8046,6 +8046,10 @@ intrin_return_compatible_p (intrin_binding_t * inb)
&& !VOID_TYPE_P (btin_return_type))
return true;
+ /* If return type is Address (integer type), map it to void *. */
+ if (Is_Descendent_Of_Address (Etype (inb->gnat_entity)))
+ ada_return_type = ptr_void_type_node;
+
/* Check return types compatibility otherwise. Note that this
handles void/void as well. */
if (intrin_types_incompatible_p (btin_return_type, ada_return_type))