summaryrefslogtreecommitdiffstats
path: root/test/Sema/asm.c
diff options
context:
space:
mode:
authordim <dim@FreeBSD.org>2013-06-10 20:45:12 +0000
committerdim <dim@FreeBSD.org>2013-06-10 20:45:12 +0000
commitea266cad53e3d49771fa38103913d3ec7a166694 (patch)
tree8f7776b7310bebaf415ac5b69e46e9f928c37144 /test/Sema/asm.c
parentc72c57c9e9b69944e3e009cd5e209634839581d3 (diff)
downloadFreeBSD-src-ea266cad53e3d49771fa38103913d3ec7a166694.zip
FreeBSD-src-ea266cad53e3d49771fa38103913d3ec7a166694.tar.gz
Vendor import of clang tags/RELEASE_33/final r183502 (effectively, 3.3
release): http://llvm.org/svn/llvm-project/cfe/tags/RELEASE_33/final@183502
Diffstat (limited to 'test/Sema/asm.c')
-rw-r--r--test/Sema/asm.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/test/Sema/asm.c b/test/Sema/asm.c
index 2c60085..c81f16a 100644
--- a/test/Sema/asm.c
+++ b/test/Sema/asm.c
@@ -130,3 +130,19 @@ void test14(struct S *s) {
__asm("": : "a"(*s)); // expected-error {{dereference of pointer to incomplete type 'struct S'}}
__asm("": "=a" (*s) :); // expected-error {{dereference of pointer to incomplete type 'struct S'}}
}
+
+// PR15759.
+double test15() {
+ double ret = 0;
+ __asm("0.0":"="(ret)); // expected-error {{invalid output constraint '=' in asm}}
+ __asm("0.0":"=&"(ret)); // expected-error {{invalid output constraint '=&' in asm}}
+ __asm("0.0":"+?"(ret)); // expected-error {{invalid output constraint '+?' in asm}}
+ __asm("0.0":"+!"(ret)); // expected-error {{invalid output constraint '+!' in asm}}
+ __asm("0.0":"+#"(ret)); // expected-error {{invalid output constraint '+#' in asm}}
+ __asm("0.0":"+*"(ret)); // expected-error {{invalid output constraint '+*' in asm}}
+ __asm("0.0":"=%"(ret)); // expected-error {{invalid output constraint '=%' in asm}}
+ __asm("0.0":"=,="(ret)); // expected-error {{invalid output constraint '=,=' in asm}}
+ __asm("0.0":"=,g"(ret)); // no-error
+ __asm("0.0":"=g"(ret)); // no-error
+ return ret;
+}
OpenPOWER on IntegriCloud