Răsfoiți Sursa

* fix maximum common alignment calculation in g_concatcopy() (if the second
parameter of newalignment() is larger than the first, the result is always
1)

git-svn-id: trunk@34295 -

Jonas Maebe 9 ani în urmă
părinte
comite
a83f3c1a45
1 a modificat fișierele cu 1 adăugiri și 1 ștergeri
  1. 1 1
      compiler/llvm/hlcgllvm.pas

+ 1 - 1
compiler/llvm/hlcgllvm.pas

@@ -1124,7 +1124,7 @@ implementation
       a_loadaddr_ref_cgpara(list,size,dest,destpara);
       a_loadaddr_ref_cgpara(list,size,dest,destpara);
       a_loadaddr_ref_cgpara(list,size,source,sourcepara);
       a_loadaddr_ref_cgpara(list,size,source,sourcepara);
       a_load_const_cgpara(list,u64inttype,size.size,sizepara);
       a_load_const_cgpara(list,u64inttype,size.size,sizepara);
-      maxalign:=newalignment(source.alignment,dest.alignment);
+      maxalign:=newalignment(max(source.alignment,dest.alignment),min(source.alignment,dest.alignment));
       a_load_const_cgpara(list,u32inttype,maxalign,alignpara);
       a_load_const_cgpara(list,u32inttype,maxalign,alignpara);
       { we don't know anything about volatility here, should become an extra
       { we don't know anything about volatility here, should become an extra
         parameter to g_concatcopy }
         parameter to g_concatcopy }