summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2008-05-27 08:50:43 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2008-05-27 08:50:43 +0000
commit83263ece1c0a21bf4c4a3ea0b1e17335970c4dbc (patch)
tree393ed5a77a297afd69d6e6d98af5bab026fffe1e /gcc
parent5f65b7fd95896c9e45292fc302030ba2bbf23a33 (diff)
downloadgcc-83263ece1c0a21bf4c4a3ea0b1e17335970c4dbc.tar.gz
2008-05-27 Doug Rupp <rupp@adacore.com>
* exp_ch6.adb: (Expand_N_Function_Call): Fix comments. Minor reformatting. * exp_vfpt.ads: (Expand_Vax_Foreign_Return): Fix comments. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@135983 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/exp_ch6.adb10
-rw-r--r--gcc/ada/exp_vfpt.ads6
2 files changed, 8 insertions, 8 deletions
diff --git a/gcc/ada/exp_ch6.adb b/gcc/ada/exp_ch6.adb
index 793d0f1e3cf..7a3c744a1ec 100644
--- a/gcc/ada/exp_ch6.adb
+++ b/gcc/ada/exp_ch6.adb
@@ -3965,17 +3965,17 @@ package body Exp_Ch6 is
begin
Expand_Call (N);
- -- Handle VAX Float return values from foreign compiled functions
-
- -- More commments required here, what are the tests below for ???
+ -- If the return value of a foreign compiled function is
+ -- VAX Float then expand the return (adjusts the location
+ -- of the return value on Alpha/VMS, noop everywere else).
+ -- Comes_From_Source intercepts recursive expansion.
if Vax_Float (Etype (N))
and then Nkind (N) = N_Function_Call
- and then not (Nkind (Parent (N)) = N_Type_Conversion
- and then not Comes_From_Source (Parent (N)))
and then Present (Name (N))
and then Present (Entity (Name (N)))
and then Has_Foreign_Convention (Entity (Name (N)))
+ and then Comes_From_Source (Parent (N))
then
Expand_Vax_Foreign_Return (N);
end if;
diff --git a/gcc/ada/exp_vfpt.ads b/gcc/ada/exp_vfpt.ads
index fc73795cd55..fdca701cfb1 100644
--- a/gcc/ada/exp_vfpt.ads
+++ b/gcc/ada/exp_vfpt.ads
@@ -47,9 +47,9 @@ package Exp_VFpt is
procedure Expand_Vax_Foreign_Return (N : Node_Id);
-- The node N is a call to a foreign function that returns a Vax float
- -- value in a floating point register.
- -- Yes, but what does it do??? there is no hint anywhere in the spec or
- -- body comments, need full spec here ???
+ -- value in a floating point register. Wraps the call in an asm stub
+ -- that moves the return value to an integer location on Alpha/VMS,
+ -- noop everywhere else.
procedure Expand_Vax_Real_Literal (N : Node_Id);
-- The node N is a real literal node where the type is a Vax floating-point