summaryrefslogtreecommitdiffstats
path: root/clang/test
diff options
context:
space:
mode:
authorTim Northover <tnorthover@apple.com>2013-06-07 00:04:50 +0000
committerTim Northover <tnorthover@apple.com>2013-06-07 00:04:50 +0000
commit0ae939182427c1f8b6db35bea33b07379ffdfacc (patch)
tree4c2e6b3310d6d5a2335c8f422fbe7ed58a30c90a /clang/test
parent0b3175a6fccd4c8cb43627b2e834026d986828fb (diff)
downloadbcm5719-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.c13
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;
+}
+
OpenPOWER on IntegriCloud