Clang
Clang is a C/C++/Objective C/CUDA compiler based on LLVM. The most recent iteration is distributed under the "Apache 2.0 License with LLVM exceptions".
Installation
Build packages with Clang
Add export CC=clang
and (for C++) export CXX=clang++
to your /etc/makepkg.conf
. If you are building with debug
also remove -fvar-tracking-assignments
from DEBUG_CFLAGS
and DEBUG_CXXFLAGS
as clang does not support it.
NB: For packages that specify GCC-specific build options, there may be build errors that require either editing the source package, the pkgbuild or commenting out the clang lines in makepkg.conf.
Using the Static Analyzer
To analyze a project, simply place the word scan-build
in front of your build command. For example:
$ scan-build make
scan-build
won't rebuild and won't analyse it. To force recompilation and analysis, use -B
switch:
$ scan-build make -B
It is also possible to analyze specific files:
$ scan-build gcc -c t1.c t2.c
Tips and tricks
Bash completion
In order to enable Bash completion, install bash-completion and source /usr/share/clang/bash-autocomplete.sh
in a Bash startup file.