From b15062a82dd6ed8ac63c65da904ac5c5caf39108 Mon Sep 17 00:00:00 2001 From: Tristan Gingold Date: Mon, 16 Jul 2012 13:10:02 +0000 Subject: [PATCH] decl.c (intrin_return_compatible_p): Map Address to void *. 2012-07-16 Tristan Gingold * decl.c (intrin_return_compatible_p): Map Address to void *. From-SVN: r189536 --- gcc/ada/ChangeLog | 5 +++++ gcc/ada/gcc-interface/decl.c | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 15797a1b65a..a8e82037ba7 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,8 @@ +2012-07-16 Tristan Gingold + + * gcc-interface/decl.c (intrin_return_compatible_p): Map Address to + void *. + 2012-07-16 Thomas Quinot * 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 9a2dc458b2f..ef7c87c366e 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)) -- 2.34.1