浏览代码

* procvardefs must be encoded without any parameter attributes

git-svn-id: trunk@30673 -
Jonas Maebe 10 年之前
父节点
当前提交
2bb4a729c0
共有 1 个文件被更改,包括 7 次插入2 次删除
  1. 7 2
      compiler/llvm/llvmdef.pas

+ 7 - 2
compiler/llvm/llvmdef.pas

@@ -554,7 +554,12 @@ implementation
             end
           else if not paramanager.push_addr_param(hp.varspez,hp.vardef,proccalloption) and
              llvmbyvalparaloc(paraloc) then
-            encodedstr:=encodedstr+'* byval';
+            begin
+              if withattributes then
+                encodedstr:=encodedstr+'* byval'
+              else
+                encodedstr:=encodedstr+'*';
+            end;
           if withparaname then
             begin
               if paraloc^.llvmloc.loc<>LOC_REFERENCE then
@@ -590,7 +595,7 @@ implementation
             llvmextractvalueextinfo(def.returndef,usedef,signext);
             { specifying result sign extention information for an alias causes
               an error for some reason }
-            if pddecltype in [lpd_decl,lpd_procvar] then
+            if pddecltype in [lpd_decl] then
               encodedstr:=encodedstr+llvmvalueextension2str[signext];
             encodedstr:=encodedstr+' ';
             llvmaddencodedtype_intern(usedef,false,false,encodedstr);