On May 22,
the release of LLVM 3.1 , a family of compiler tools built on a modular basis,
took place . The project is being actively developed as an alternative to GCC by companies such as Apple and Google.
The most notable changes include
improved support for the C ++ standard '11 Clang'om (including lambdas, initialization lists, constant expressions, user literals and atomics); the emergence of
AddressSanitizer - a tool for dynamic catching of errors in working with memory; major improvements in compile time and the emergence of new features for ARM architecture; markedly improved support for the MIPS architecture (including MIPS64).

For those who are interested in the details - welcome under cat.
')
Let me remind you that the main tool for LLVM is Clang, the native compiler for the Mac platform is the C / C ++ / Objective C language compiler. The compiler is also available on other major platforms - Linux and Windows. True, Windows support is still experimental. This compiler compares favorably with competitors by its speed and powerful and accurate error diagnostics. For those who are looking for an alternative to GCC, but do not want to abandon the open-source products, the new release is an excellent opportunity to try this compiler.
Probably the main interesting feature in LLVM 3.1 is the emergence of
AddressSanitizer among the standard tools - a tool for dynamically searching for errors in working with memory. This tool, born in the depths of Google, allows you to catch buffer overflows (in the heap, on the stack, in the globals) and use-after-free errors, with a relatively small deceleration of performance (about two times). This is a very good addition to the already existing static code verification tool
Clang Static Analyzer .
LLVM 3.1 also includes
DragonEgg , a GCC plug-in that replaces the gcc optimizer with the LLVM code generator. The new release fully supports GCC 4.5 and 4.6 and partly just released 4.7. The languages Ada, C, C ++ and Fortran, partially Go, Java, Obj-C and Obj-C ++, are fully supported. As we can see, although the GCC frontend has ceased to be the main one for LLVM, this subproject continues to actively develop.
A complete list of changes can be found in
release notes . And try a compiler - download it in
binaries or sorsah from the project site.