There's only about one week left
until LLVM 3.1
will be released and with that will come the 3.1 release of the Clang C/C++ compiler. While we have previously looked at some of the LLVM 3.1 changes
, here's a quick look at some of the Clang-specific compiler C11/C++11 improvements.
For C11 language coverage, Clang 3.1 now supports anonymous structs and anonymous unions from this latest ISO C standard. Support for the C11 language standard with Clang is available via the -std=c11
When it comes to the C++11 language support within Clang, the 3.1 version provides production-quality support for generalized constant expressions, lambda expressions, generalized initializers, unrestricted unions, user-defined literals, forward-declared enumerations, and atomics.
The Clang 3.1 release for Objective-C now has format string checking for NSString literals.
Aside from the language support improvements, there's also new and better diagnostics support, tooling support, and more, as will be talked about in future Phoronix articles. For those curious about the LLVM/Clang 3.1 compiler performance compared to GCC, there is Intel Sandy Bridge benchmarks
and AMD Bulldozer compiler benchmarks
. More compiler benchmarks of LLVM/Clang 3.1 will be coming up later this month.