diff options
author | Tim Northover <tnorthover@apple.com> | 2013-06-07 00:04:50 +0000 |
---|---|---|
committer | Tim Northover <tnorthover@apple.com> | 2013-06-07 00:04:50 +0000 |
commit | 0ae939182427c1f8b6db35bea33b07379ffdfacc (patch) | |
tree | 4c2e6b3310d6d5a2335c8f422fbe7ed58a30c90a /clang/test | |
parent | 0b3175a6fccd4c8cb43627b2e834026d986828fb (diff) | |
download | bcm5719-llvm-0ae939182427c1f8b6db35bea33b07379ffdfacc.tar.gz bcm5719-llvm-0ae939182427c1f8b6db35bea33b07379ffdfacc.zip |
Diagnose malformed x86 inline asm using 'y' constraint.
X86's 'y' inline assembly constraint represents an MMX register, this change
prevents Clang from hitting an assertion when passed an incompatible type to
deal with.
llvm-svn: 183467
Diffstat (limited to 'clang/test')
-rw-r--r-- | clang/test/CodeGen/mmx-inline-asm-error.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/clang/test/CodeGen/mmx-inline-asm-error.c b/clang/test/CodeGen/mmx-inline-asm-error.c new file mode 100644 index 00000000000..a6393682ced --- /dev/null +++ b/clang/test/CodeGen/mmx-inline-asm-error.c @@ -0,0 +1,13 @@ +// RUN: %clang_cc1 -verify -triple x86_64-unknown-unknown -emit-llvm-only %s +typedef int vec256 __attribute__((ext_vector_type(8))); + +vec256 foo(vec256 in) { + vec256 out; + + asm("something %0" : : "y"(in)); // expected-error {{invalid type 'vec256' in asm input for constraint 'y'}} + asm("something %0" : "=y"(out)); // expected-error {{invalid type 'vec256' in asm input for constraint 'y'}} + asm("something %0, %0" : "+y"(out)); // expected-error {{invalid type 'vec256' in asm input for constraint 'y'}} + + return out; +} + |