Parcourir la source

* fixed open array constructors for llvm

git-svn-id: trunk@31057 -
Jonas Maebe il y a 10 ans
Parent
commit
bcd04953c2
1 fichiers modifiés avec 26 ajouts et 2 suppressions
  1. 26 2
      compiler/llvm/nllvmld.pas

+ 26 - 2
compiler/llvm/nllvmld.pas

@@ -26,19 +26,43 @@ unit nllvmld;
 interface
 
     uses
-      ncgnstld;
+      globtype,
+      cgutils,
+      symtype,
+      ncgld, ncgnstld;
 
     type
       tllvmloadnode = class(tcgnestloadnode)
       end;
 
+      { tllvmarrayconstructornode }
+
+      tllvmarrayconstructornode = class(tcgarrayconstructornode)
+       protected
+        procedure makearrayref(var ref: treference; eledef: tdef); override;
+      end;
+
 
 implementation
 
      uses
-       nld;
+       aasmdata,
+       nld,
+       symdef,
+       hlcgobj;
+
+{ tllvmarrayconstructornode }
+
+procedure tllvmarrayconstructornode.makearrayref(var ref: treference; eledef: tdef);
+  begin
+    { the array elements are addressed as pointer to the individual elements ->
+      convert }
+    hlcg.g_ptrtypecast_ref(current_asmdata.CurrAsmList,getpointerdef(resultdef),getpointerdef(eledef),ref);
+  end;
+
 
 begin
   cloadnode:=tllvmloadnode;
+  carrayconstructornode:=tllvmarrayconstructornode;
 end.