diff options
author | Marina Yatsina <marina.yatsina@intel.com> | 2016-12-26 12:24:49 +0000 |
---|---|---|
committer | Marina Yatsina <marina.yatsina@intel.com> | 2016-12-26 12:24:49 +0000 |
commit | 1539663035b25e13b8dbe16bf3df1cf53d2fe280 (patch) | |
tree | 873c18d34766f198e0883d9577724a7f7a3ae332 /lib/asan/tests | |
parent | 54d197e8c706c9eb5108269de438950f2e56ab7c (diff) |
[inline-asm]No error for conflict between inputs\outputs and clobber list
Updated test according to commit 290539:
According to extended asm syntax, a case where the clobber list includes a variable from the inputs or outputs should be an error - conflict.
for example:
const long double a = 0.0;
int main()
{
char b;
double t1 = a;
__asm__ ("fucompp": "=a" (b) : "u" (t1), "t" (t1) : "cc", "st", "st(1)");
return 0;
}
This should conflict with the output - t1 which is st, and st which is st aswell.
The patch fixes it.
Commit on behald of Ziv Izhar.
Differential Revision: https://reviews.llvm.org/D15075
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@290540 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/asan/tests')
-rw-r--r-- | lib/asan/tests/asan_asm_test.cc | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/asan/tests/asan_asm_test.cc b/lib/asan/tests/asan_asm_test.cc index 09af5c386..eebf3e339 100644 --- a/lib/asan/tests/asan_asm_test.cc +++ b/lib/asan/tests/asan_asm_test.cc @@ -62,7 +62,7 @@ template<> Type asm_read<Type>(Type *ptr) { \ __asm__("rep " Movs " \n\t" \ : \ : "D"(dst), "S"(src), "c"(size) \ - : "rsi", "rdi", "rcx", "memory"); \ + : "memory"); \ } DECLARE_ASM_WRITE(U8, "8", "movq", "r"); @@ -104,7 +104,7 @@ template<> Type asm_read<Type>(Type *ptr) { \ __asm__("rep " Movs " \n\t" \ : \ : "D"(dst), "S"(src), "c"(size) \ - : "esi", "edi", "ecx", "memory"); \ + : "memory"); \ } } // End of anonymous namespace |