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

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