diff options
author | Tristan Gingold <gingold@adacore.com> | 2012-07-16 13:10:02 +0000 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2012-07-16 15:10:02 +0200 |
commit | b15062a82dd6ed8ac63c65da904ac5c5caf39108 (patch) | |
tree | 6ee0e07e764406617f8f8b5651122752fcf8ea7f | |
parent | 9d08a38d3b668199dbb2b6ebd501bb857af5da57 (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/ada/gcc-interface/decl.c | 4 |
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)) |