- don't specify lef_inaggregate when getting the llvm type representation

for function results and parameters (they're not in an aggregate, and this
    caused 80 bits extended floating point types to be translated into arrays
    of 10 bytes, which have different ABI meanings)

git-svn-id: trunk@30714 -
This commit is contained in:
Jonas Maebe 2015-04-25 15:51:13 +00:00
parent bb4f8e62bf
commit b3e786eb77

View File

@ -597,7 +597,7 @@ implementation
encodedstr:=encodedstr+', '
else
first:=false;
llvmaddencodedtype_intern(usedef,[lef_inaggregate],encodedstr);
llvmaddencodedtype_intern(usedef,[],encodedstr);
{ in case signextstr<>'', there should be only one paraloc -> no need
to clear (reason: it means that the paraloc is larger than the
original parameter) }
@ -655,7 +655,7 @@ implementation
if pddecltype in [lpd_decl] then
encodedstr:=encodedstr+llvmvalueextension2str[signext];
encodedstr:=encodedstr+' ';
llvmaddencodedtype_intern(usedef,[lef_inaggregate],encodedstr);
llvmaddencodedtype_intern(usedef,[],encodedstr);
end
else
begin