浏览代码

Merge pull request #12454 from richardkchapman/HPCC-21944

HPCC-21944 Folding function calls that return real values may fail

Reviewed-by: Gavin Halliday <ghalliday@hpccsystems.com>
Gavin Halliday 6 年之前
父节点
当前提交
f348b55230
共有 1 个文件被更改,包括 6 次插入6 次删除
  1. 6 6
      ecl/hql/hqlfold.cpp

+ 6 - 6
ecl/hql/hqlfold.cpp

@@ -1053,7 +1053,7 @@ IValue * doFoldExternalCall(IHqlExpression* expr, unsigned foldOptions, ITemplat
             {
                 __asm__  __volatile__(
                     "movss  %%xmm0,(%%rdi) \n\t"
-                    :
+                    :"=m"(floatresult)
                     : "D"(&(floatresult))
                 );
             }
@@ -1061,7 +1061,7 @@ IValue * doFoldExternalCall(IHqlExpression* expr, unsigned foldOptions, ITemplat
             {
                 __asm__  __volatile__(
                     "movsd  %%xmm0, (%%rdi) \n\t"
-                    :
+                    : "=m"(doubleresult)
                     : "D"(&(doubleresult))
                 );
             }
@@ -1094,7 +1094,7 @@ IValue * doFoldExternalCall(IHqlExpression* expr, unsigned foldOptions, ITemplat
             {
                 __asm__  __volatile__(
                     "fstps (%%edi) \n\t"
-                    :
+                    :"=m"(floatresult)
                     : "D"(&(floatresult))
                 );
             }
@@ -1102,7 +1102,7 @@ IValue * doFoldExternalCall(IHqlExpression* expr, unsigned foldOptions, ITemplat
             {
                 __asm__  __volatile__(
                     "fstpl (%%edi) \n\t"
-                    :
+                    :"=m"(doubleresult)
                     : "D"(&(doubleresult))
                 );
             }
@@ -1230,7 +1230,7 @@ IValue * doFoldExternalCall(IHqlExpression* expr, unsigned foldOptions, ITemplat
             {
                 __asm__  __volatile__(
                     "fsts  s0,[%[fresult]] \n\t"
-                    :
+                    :"=m"(floatresult)
                     : [fresult] "r"(&(floatresult))
                 );
             }
@@ -1238,7 +1238,7 @@ IValue * doFoldExternalCall(IHqlExpression* expr, unsigned foldOptions, ITemplat
             {
                 __asm__  __volatile__(
                     "fstd  d0,[%[fresult]] \n\t"
-                    :
+                    :"=m"(doubleresult)
                     : [fresult] "r"(&(doubleresult))
                 );
             }