summaryrefslogtreecommitdiffstats
path: root/clang/test/Parser
diff options
context:
space:
mode:
Diffstat (limited to 'clang/test/Parser')
-rw-r--r--clang/test/Parser/altivec.c12
-rw-r--r--clang/test/Parser/cxx-altivec.cpp12
-rw-r--r--clang/test/Parser/vsx.c10
3 files changed, 22 insertions, 12 deletions
diff --git a/clang/test/Parser/altivec.c b/clang/test/Parser/altivec.c
index a9b41b9b7ac..7adca6143bd 100644
--- a/clang/test/Parser/altivec.c
+++ b/clang/test/Parser/altivec.c
@@ -61,15 +61,15 @@ vector unsigned long v_ul; // expected-warning {{Use of 'long' with '__
vector long int v_li; // expected-warning {{Use of 'long' with '__vector' is deprecated}}
vector signed long int v_sli; // expected-warning {{Use of 'long' with '__vector' is deprecated}}
vector unsigned long int v_uli; // expected-warning {{Use of 'long' with '__vector' is deprecated}}
-__vector long double vv_ld; // expected-warning {{Use of 'long' with '__vector' is deprecated}} expected-error {{cannot use 'double' with '__vector'}}
-vector long double v_ld; // expected-warning {{Use of 'long' with '__vector' is deprecated}} expected-error {{cannot use 'double' with '__vector'}}
+__vector long double vv_ld; // expected-error {{cannot use 'long double' with '__vector'}}
+vector long double v_ld; // expected-error {{cannot use 'long double' with '__vector'}}
vector bool v_b; // expected-warning {{type specifier missing, defaults to 'int'}}
// These should have errors.
-__vector double vv_d1; // expected-error {{cannot use 'double' with '__vector'}}
-vector double v_d2; // expected-error {{cannot use 'double' with '__vector'}}
-__vector long double vv_ld3; // expected-warning {{Use of 'long' with '__vector' is deprecated}} expected-error {{cannot use 'double' with '__vector'}}
-vector long double v_ld4; // expected-warning {{Use of 'long' with '__vector' is deprecated}} expected-error {{cannot use 'double' with '__vector'}}
+__vector double vv_d1; // expected-error {{use of 'double' with '__vector' requires VSX support to be enabled (available on the POWER7 or later)}}
+vector double v_d2; // expected-error {{use of 'double' with '__vector' requires VSX support to be enabled (available on the POWER7 or later)}}
+__vector long double vv_ld3; // expected-error {{cannot use 'long double' with '__vector'}}
+vector long double v_ld4; // expected-error {{cannot use 'long double' with '__vector'}}
vector bool float v_bf; // expected-error {{cannot use 'float' with '__vector bool'}}
vector bool double v_bd; // expected-error {{cannot use 'double' with '__vector bool'}}
vector bool pixel v_bp; // expected-error {{cannot use '__pixel' with '__vector bool'}}
diff --git a/clang/test/Parser/cxx-altivec.cpp b/clang/test/Parser/cxx-altivec.cpp
index 23a6acd86be..f2ba28b641a 100644
--- a/clang/test/Parser/cxx-altivec.cpp
+++ b/clang/test/Parser/cxx-altivec.cpp
@@ -61,14 +61,14 @@ vector unsigned long v_ul; // expected-warning {{Use of 'long' with '__
vector long int v_li; // expected-warning {{Use of 'long' with '__vector' is deprecated}}
vector signed long int v_sli; // expected-warning {{Use of 'long' with '__vector' is deprecated}}
vector unsigned long int v_uli; // expected-warning {{Use of 'long' with '__vector' is deprecated}}
-__vector long double vv_ld; // expected-warning {{Use of 'long' with '__vector' is deprecated}} expected-error {{cannot use 'double' with '__vector'}}
-vector long double v_ld; // expected-warning {{Use of 'long' with '__vector' is deprecated}} expected-error {{cannot use 'double' with '__vector'}}
+__vector long double vv_ld; // expected-error {{cannot use 'long double' with '__vector'}}
+vector long double v_ld; // expected-error {{cannot use 'long double' with '__vector'}}
// These should have errors.
-__vector double vv_d1; // expected-error {{cannot use 'double' with '__vector'}}
-vector double v_d2; // expected-error {{cannot use 'double' with '__vector'}}
-__vector long double vv_ld3; // expected-warning {{Use of 'long' with '__vector' is deprecated}} expected-error {{cannot use 'double' with '__vector'}}
-vector long double v_ld4; // expected-warning {{Use of 'long' with '__vector' is deprecated}} expected-error {{cannot use 'double' with '__vector'}}
+__vector double vv_d1; // expected-error {{use of 'double' with '__vector' requires VSX support to be enabled (available on the POWER7 or later)}}
+vector double v_d2; // expected-error {{use of 'double' with '__vector' requires VSX support to be enabled (available on the POWER7 or later)}}
+__vector long double vv_ld3; // expected-error {{cannot use 'long double' with '__vector'}}
+vector long double v_ld4; // expected-error {{cannot use 'long double' with '__vector'}}
vector bool v_b; // expected-error {{C++ requires a type specifier for all declarations}}
vector bool float v_bf; // expected-error {{cannot use 'float' with '__vector bool'}}
vector bool double v_bd; // expected-error {{cannot use 'double' with '__vector bool'}}
diff --git a/clang/test/Parser/vsx.c b/clang/test/Parser/vsx.c
new file mode 100644
index 00000000000..ead09814c8c
--- /dev/null
+++ b/clang/test/Parser/vsx.c
@@ -0,0 +1,10 @@
+// RUN: %clang_cc1 -triple=powerpc64-unknown-linux-gnu -faltivec -target-feature +vsx -fsyntax-only -verify %s
+// RUN: %clang_cc1 -triple=powerpc64le-unknown-linux-gnu -faltivec -target-feature +vsx -fsyntax-only -verify %s
+
+// Legitimate for VSX.
+__vector double vv_d1;
+vector double v_d2;
+
+// These should have errors.
+__vector long double vv_ld3; // expected-error {{cannot use 'long double' with '__vector'}}
+vector long double v_ld4; // expected-error {{cannot use 'long double' with '__vector'}}
OpenPOWER on IntegriCloud