Clang dynamic memory analyzer not referencing back to source code Red Hat 6.3

We recently built the 3.3 release of clang/llvm using the Fedora 20
packaging process as a guide to unpacking, moving the different parts to
the correct location and building the compiler tool chain. All seems to
be working correctly except the dynamic memory analyzer is not
referencing back to the source code. The same usage on the Fedora
platform does reference back to the source code.

This is our first attempt to use the clang/llvm tool set. The GCC
compiler version 4.4.6 on Red Hat 6.3 does not have support for C++11
standard so the current build is without C++11 support. Two possible
things to be done are; re-configure to use clang to build clang/llvm and
add the c++11 support and or update to the latest 3.4 release.

"David Highley wrote:"

We recently built the 3.3 release of clang/llvm using the Fedora 20
packaging process as a guide to unpacking, moving the different parts to
the correct location and building the compiler tool chain. All seems to
be working correctly except the dynamic memory analyzer is not
referencing back to the source code. The same usage on the Fedora
platform does reference back to the source code.

This is our first attempt to use the clang/llvm tool set. The GCC
compiler version 4.4.6 on Red Hat 6.3 does not have support for C++11
standard so the current build is without C++11 support. Two possible
things to be done are; re-configure to use clang to build clang/llvm and
add the c++11 support and or update to the latest 3.4 release.

We found a solution, do not know quite why we needed to add the extra
environment setup. Compiling as follows:
PATH=/net/fas4045/home3/jq031c/llvm_sandbox/bin:$PATH make -j 16
DEPFILES= CXX=clang++ CC=clang CXXFLAGS="-fsanitize=memory
-fsanitize-memory-track-origins -fno-omit-frame-pointer"
LDXFLAGS=-fsanitize=memory

Runing as follows:
MSAN_SYMBOLIZER_PATH=/net/fas4045/home3/jq031c/llvm_sandbox/bin/llvm-symbolizer
./runtests.sh

We can understand that we need to add the analysis option to the link
flags as we do a two step build of compile followed by link. The
discovery after searching was the need to define the path to llvm-symbolizer with an environment variable which none of the other dynamic analysis options seems to need.

All sanitizer tools are supposed to look for llvm-symbolizer in
*_SYMBOLIZER_PATH, followed by PATH. In LLVM 3.3 MSan was at a pretty
early stage, and this logic could have been broken.