瀏覽代碼

- 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