ソースを参照

* don't emit the */pointer suffix for procdefs in llvmaddencodedtype_intern(),
so that if a_loadaddr_ref_reg() is used to load the address of a procdef
into a register, the getpointerdef(procdef) won't (wrongly) result in two
*'s
o the previous behaviour was necessary for the tck_simple_procvar2proc
special case that was removed in the previous commit

git-svn-id: branches/hlcgllvm@28477 -

Jonas Maebe 11 年 前
コミット
b6fc2f1542
1 ファイル変更2 行追加1 行削除
  1. 2 1
      compiler/llvm/llvmdef.pas

+ 2 - 1
compiler/llvm/llvmdef.pas

@@ -402,7 +402,8 @@ implementation
                  tprocvardef(def).is_addressonly then
                 begin
                   llvmaddencodedproctype(tabstractprocdef(def),'',lpd_procvar,encodedstr);
-                  encodedstr:=encodedstr+'*';
+                  if def.typ=procvardef then
+                    encodedstr:=encodedstr+'*';
                 end
               else
                 begin