Browse Source

* always emit i8* instead of void* (mantis #14893)

git-svn-id: branches/llvm@14158 -
Jonas Maebe 16 years ago
parent
commit
03c5d25946
2 changed files with 6 additions and 3 deletions
  1. 2 2
      compiler/llvmdef.pas
  2. 4 1
      compiler/symdef.pas

+ 2 - 2
compiler/llvmdef.pas

@@ -962,12 +962,12 @@ implementation
           if assigned(def.childof) then
             defstr:=defstr+def_llvm_vmt_name(def.childof).name+'*, '
           else
-            defstr:=defstr+'void*, ';
+            defstr:=defstr+'i8*, ';
           { class name (length+string) }
           defstr:=defstr+'['+tostr(length(def.objrealname^)+1)+' x i8]*, ';
           { the other fields }
           for i:=1 to 8 do
-            defstr:=defstr+'void*, ';
+            defstr:=defstr+'i8*, ';
           for i:= 0 to def.VMTEntries.Count-1 do
             defstr:=defstr+def_llvm_pointer_name(pvmtentry(def.VMTEntries[i])^.procdef).name+', ';
           setlength(defstr,length(defstr)-2);

+ 4 - 1
compiler/symdef.pas

@@ -2102,7 +2102,10 @@ implementation
 {$ifdef support_llvm}
     function tpointerdef.llvm_mangledname:string;
       begin
-        result:=pointeddef.llvm_mangledname+'*';
+        if not is_void(pointeddef) then
+          result:=pointeddef.llvm_mangledname+'*'
+        else
+          result:='i8*'
       end;
 {$endif support_llvm}