summaryrefslogtreecommitdiffstats
path: root/test/SemaCXX/vector.cpp
diff options
context:
space:
mode:
authorEric Christopher <echristo@apple.com>2010-08-26 00:42:16 +0000
committerEric Christopher <echristo@apple.com>2010-08-26 00:42:16 +0000
commite84f9ebf8c89d5600f5930b65a0df0de890791b2 (patch)
tree88cc9391370f201d3d557ae5556fd62b11e5a141 /test/SemaCXX/vector.cpp
parent9214819c7d4b24fd1b38480d845d8e345d8f0196 (diff)
With lax vector conversions (the default) make sure we convert between two
vectors that are the same size. Fix up testcases accordingly and add a new one to make sure we still error if lax vector conversions are disabled. Fixes rdar://8328190 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112122 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/SemaCXX/vector.cpp')
-rw-r--r--test/SemaCXX/vector.cpp14
1 files changed, 8 insertions, 6 deletions
diff --git a/test/SemaCXX/vector.cpp b/test/SemaCXX/vector.cpp
index 66b2d680d2..9ae2c82fc5 100644
--- a/test/SemaCXX/vector.cpp
+++ b/test/SemaCXX/vector.cpp
@@ -51,10 +51,10 @@ void conditional(bool Cond, char16 c16, longlong16 ll16, char16_e c16e,
__typeof__(Cond? ll16 : ll16e) *ll16ep2 = &ll16e;
__typeof__(Cond? ll16e : ll16) *ll16ep3 = &ll16e;
- // Conditional operators with incompatible types.
- (void)(Cond? c16 : ll16); // expected-error{{can't convert between vector values}}
- (void)(Cond? ll16e : c16e); // expected-error{{can't convert between vector values}}
- (void)(Cond? ll16e : c16); // expected-error{{can't convert between vector values}}
+ // Conditional operators with compatible types under -flax-vector-conversions (default)
+ (void)(Cond? c16 : ll16);
+ (void)(Cond? ll16e : c16e);
+ (void)(Cond? ll16e : c16);
}
// Test C++ cast'ing of vector types.
@@ -183,8 +183,10 @@ void test_implicit_conversions(bool Cond, char16 c16, longlong16 ll16,
(void)(Cond? to_c16 : to_c16e);
(void)(Cond? to_ll16e : to_ll16);
- (void)(Cond? to_c16 : to_ll16); // expected-error{{can't convert between vector values of different size}}
- (void)(Cond? to_c16e : to_ll16e); // expected-error{{can't convert between vector values of different size}}
+
+ // These 2 are convertable with -flax-vector-conversions (default)
+ (void)(Cond? to_c16 : to_ll16);
+ (void)(Cond? to_c16e : to_ll16e);
}
typedef float fltx2 __attribute__((__vector_size__(8)));