diff options
author | Chandler Carruth <chandlerc@gmail.com> | 2011-04-30 10:46:26 +0000 |
---|---|---|
committer | Chandler Carruth <chandlerc@gmail.com> | 2011-04-30 10:46:26 +0000 |
commit | 25df423cfc6689cf21d51a66af84ea1e70d489df (patch) | |
tree | c40ab3323b5aae562ca2a709599ccbf6cf58b7e6 /test | |
parent | 018a088b3b30e500efa9173f7cd4b1b1f6a065a8 (diff) |
Make type-traits reflect that Clang's vectors act like scalar types.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130606 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r-- | test/SemaCXX/literal-type.cpp | 4 | ||||
-rw-r--r-- | test/SemaCXX/type-traits.cpp | 9 |
2 files changed, 13 insertions, 0 deletions
diff --git a/test/SemaCXX/literal-type.cpp b/test/SemaCXX/literal-type.cpp index 19f07d390b..6a61823adb 100644 --- a/test/SemaCXX/literal-type.cpp +++ b/test/SemaCXX/literal-type.cpp @@ -8,6 +8,10 @@ static_assert(__is_literal(E), "fail"); static_assert(__is_literal(decltype(E1)), "fail"); typedef int IAR[10]; static_assert(__is_literal(IAR), "fail"); +typedef int Vector __attribute__((vector_size(16))); +typedef int VectorExt __attribute__((ext_vector_type(4))); +static_assert(__is_literal(Vector), "fail"); +static_assert(__is_literal(VectorExt), "fail"); // C++0x [basic.types]p10: // A type is a literal type if it is: diff --git a/test/SemaCXX/type-traits.cpp b/test/SemaCXX/type-traits.cpp index c45adecf66..a4ed500a80 100644 --- a/test/SemaCXX/type-traits.cpp +++ b/test/SemaCXX/type-traits.cpp @@ -27,6 +27,9 @@ struct HasAnonymousUnion { }; }; +typedef int Vector __attribute__((vector_size(16))); +typedef int VectorExt __attribute__((ext_vector_type(4))); + // Not PODs typedef const void cvoid; struct Derives : POD {}; @@ -104,6 +107,8 @@ void is_pod() { int arr[T(__is_pod(HasAssign))]; } { int arr[T(__is_pod(IntArNB))]; } { int arr[T(__is_pod(HasAnonymousUnion))]; } + { int arr[T(__is_pod(Vector))]; } + { int arr[T(__is_pod(VectorExt))]; } { int arr[F(__is_pod(Derives))]; } { int arr[F(__is_pod(DerivesAr))]; } @@ -942,6 +947,8 @@ void is_standard_layout() int t04[T(__is_standard_layout(CStruct))]; int t05[T(__is_standard_layout(CppStructStandard))]; int t06[T(__is_standard_layout(CppStructStandardAr))]; + int t07[T(__is_standard_layout(Vector))]; + int t08[T(__is_standard_layout(VectorExt))]; typedef CppStructNonStandardByBase CppStructNonStandardByBaseAr[4]; @@ -1447,6 +1454,8 @@ void is_trivial() { int arr[T(__is_trivial(HasProt))]; } { int arr[T(__is_trivial(DerivesHasPriv))]; } { int arr[T(__is_trivial(DerivesHasProt))]; } + { int arr[T(__is_trivial(Vector))]; } + { int arr[T(__is_trivial(VectorExt))]; } { int arr[F(__is_trivial(HasCons))]; } { int arr[F(__is_trivial(HasCopyAssign))]; } |