Преглед изворни кода

- 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 -

Jonas Maebe пре 10 година
родитељ
комит
b3e786eb77
1 измењених фајлова са 2 додато и 2 уклоњено
  1. 2 2
      compiler/llvm/llvmdef.pas

+ 2 - 2
compiler/llvm/llvmdef.pas

@@ -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