diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index fe91cc4a460..7c03f7e547e 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,8 @@ +2015-06-01 Pierre-Marie de Rodat + + * gcc-interface/decl.c (gnat_to_gnu_entity): Replace pointer types with + references ones for functions that return references. + 2015-06-01 Eric Botcazou * gcc-interface/decl.c (gnat_to_gnu_entity) : For a diff --git a/gcc/ada/gcc-interface/decl.c b/gcc/ada/gcc-interface/decl.c index 35930e0bfe0..dd2b06f9489 100644 --- a/gcc/ada/gcc-interface/decl.c +++ b/gcc/ada/gcc-interface/decl.c @@ -4198,7 +4198,7 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, int definition) type the pointer type and make a note of that. */ if (Returns_By_Ref (gnat_entity)) { - gnu_return_type = build_pointer_type (gnu_return_type); + gnu_return_type = build_reference_type (gnu_return_type); return_by_direct_ref_p = true; } @@ -4216,7 +4216,7 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, int definition) the actual return type is the pointer type. */ else if (Requires_Transient_Scope (gnat_return_type)) { - gnu_return_type = build_pointer_type (gnu_return_type); + gnu_return_type = build_reference_type (gnu_return_type); return_unconstrained_p = true; }