summaryrefslogtreecommitdiffstats
path: root/clang/test
diff options
context:
space:
mode:
authorChandler Carruth <chandlerc@gmail.com>2011-04-30 10:46:26 +0000
committerChandler Carruth <chandlerc@gmail.com>2011-04-30 10:46:26 +0000
commit61f4cbf38ab3dc3f20e4e8b4b204c0eb75b4af2b (patch)
treeed9f0dda8848118ff519119ffd7c70bddd69dd24 /clang/test
parent7623757cd015dfbbbdefbc7b911b09eccf860a73 (diff)
downloadbcm5719-llvm-61f4cbf38ab3dc3f20e4e8b4b204c0eb75b4af2b.tar.gz
bcm5719-llvm-61f4cbf38ab3dc3f20e4e8b4b204c0eb75b4af2b.zip
Make type-traits reflect that Clang's vectors act like scalar types.
llvm-svn: 130606
Diffstat (limited to 'clang/test')
-rw-r--r--clang/test/SemaCXX/literal-type.cpp4
-rw-r--r--clang/test/SemaCXX/type-traits.cpp9
2 files changed, 13 insertions, 0 deletions
diff --git a/clang/test/SemaCXX/literal-type.cpp b/clang/test/SemaCXX/literal-type.cpp
index 19f07d390b6..6a61823adb2 100644
--- a/clang/test/SemaCXX/literal-type.cpp
+++ b/clang/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/clang/test/SemaCXX/type-traits.cpp b/clang/test/SemaCXX/type-traits.cpp
index c45adecf665..a4ed500a804 100644
--- a/clang/test/SemaCXX/type-traits.cpp
+++ b/clang/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))]; }
OpenPOWER on IntegriCloud