From ecb7e5c8afe929ee38155db94de6b084ec32a645 Mon Sep 17 00:00:00 2001
From: Roman Divacky
Supports the GCC vector extensions, plus some stuff like V[1]. ext_vector -with V.xyzw syntax and other tidbits. See also __builtin_shufflevector.
+Supports the GCC vector extensions, plus some stuff like V[1].
+ +Also supports ext_vector, which additionally support for V.xyzw +syntax and other tidbits as seen in OpenCL. An example is:
+ +
+
+typedef float float4 __attribute__((ext_vector_type(4)));
+typedef float float2 __attribute__((ext_vector_type(2)));
+
+float4 foo(float2 a, float2 b) {
+ float4 c;
+ c.xz = a;
+ c.yw = b;
+ return c;
+}
+
Query for this feature with __has_feature(attribute_ext_vector_type).
+See also __builtin_shufflevector.
+At this point, Clang C++ is not generally useful. However, Clang C++ support +
At this point, Clang C++ is not production-quality and is not recommended for use beyond experimentation. However, Clang C++ support is under active development and is progressing rapidly. Please see the C++ Status page for details or ask on the mailing list about how you can help.
-Note that the clang driver will refuse to even try to use clang to compile -C++ code unless you pass the -ccc-clang-cxx option to the driver. If -you really want to play with Clang's C++ support, please pass that flag.
+Note that released Clang compilers will refuse to even try to use clang to compile C++ code unless you pass the -ccc-clang-cxx option to the driver. To turn on Clang's C++ support, please pass that flag. Clang compilers built from the Subversion trunk enable C++ support by default, and do not require the -ccc-clang-cxx flag.