llvm-project/clang
Matt Beaumont-Gay 35439dff76 Currently, with -fsanitize=address, the driver appends libclang_rt.asan.a to
the link command. This all works fine when the driver is also responsible for
adding -lstdc++ to the link command. But, if -lstdc++ (or libstdc++.a, etc) is
passed explicitly to the driver, the ASan runtime will appear in the link
command after the standard library, leading to multiple-definition errors for
the global 'operator new' and 'operator delete'. Fix this in a painfully
simple way, by inserting libclang_rt.asan.a at the start of the link command
instead of the end.

If we need to do something more clever, we can walk the link command looking
for something that resembles libstdc++ and insert libclang_rt.asan.a as late
as possible, but the simple solution works for now.

llvm-svn: 169310
2012-12-04 21:18:26 +00:00
..
INPUTS Revert 'Fix a typo 'iff' => 'if''. iff is an abreviation of if and only if. See: http://en.wikipedia.org/wiki/If_and_only_if Commit 164766 2012-09-27 10:16:10 +00:00
bindings [clang.py] Add Cursor.get_arguments() 2012-11-01 05:46:30 +00:00
docs Update matcher documentation with script. 2012-12-04 12:08:08 +00:00
examples Sort the #include lines for examples/... 2012-12-04 09:37:22 +00:00
include libclang: Add a function to libclang for retrieving the bit width value 2012-12-04 15:13:46 +00:00
lib Currently, with -fsanitize=address, the driver appends libclang_rt.asan.a to 2012-12-04 21:18:26 +00:00
runtime UBSan: enable proper linking with UBsan runtime on Darwin. Turn on building ubsan on OS X in 'make' build system. Patch by Jean-Daniel Dupas. 2012-11-16 12:53:14 +00:00
test Currently, with -fsanitize=address, the driver appends libclang_rt.asan.a to 2012-12-04 21:18:26 +00:00
tools c-index-test.c: Make C89-compliant. 2012-12-04 15:32:03 +00:00
unittests Error recovery part 2 2012-12-04 17:27:50 +00:00
utils Sort the #include lines under utils/... 2012-12-04 09:53:39 +00:00
www docs: [CMake] Add Xcode to the list of project formats CMake can generate. 2012-11-27 23:34:28 +00:00
.arcconfig Add .arcconfig to the repository. Useful if someone wants to use phabricator's command line tool. 2012-12-01 12:08:08 +00:00
.gitignore Add extra vim swap file pattern 2012-10-09 23:48:58 +00:00
CMakeLists.txt CMake: Fix public header search for generating Xcode/MSVC projects. 2012-10-23 21:54:03 +00:00
CODE_OWNERS.TXT Duplicate some common owners between Clang and LLVM. 2012-11-27 00:48:12 +00:00
INSTALL.txt
LICENSE.TXT
Makefile The top-level clang Makefile is #included into other Makefiles. (sigh) So we 2012-10-03 08:39:19 +00:00
ModuleInfo.txt
NOTES.txt Fix typo (test commit) 2012-10-18 15:24:46 +00:00
README.txt commit access verified, revert change 2012-03-06 22:55:51 +00:00

README.txt

//===----------------------------------------------------------------------===//
// C Language Family Front-end
//===----------------------------------------------------------------------===//

Welcome to Clang.  This is a compiler front-end for the C family of languages
(C, C++, Objective-C, and Objective-C++) which is built as part of the LLVM
compiler infrastructure project.

Unlike many other compiler frontends, Clang is useful for a number of things
beyond just compiling code: we intend for Clang to be host to a number of
different source level tools.  One example of this is the Clang Static Analyzer.

If you're interested in more (including how to build Clang) it is best to read
the relevant web sites.  Here are some pointers:

Information on Clang:              http://clang.llvm.org/
Building and using Clang:          http://clang.llvm.org/get_started.html
Clang Static Analyzer:             http://clang-analyzer.llvm.org/
Information on the LLVM project:   http://llvm.org/

If you have questions or comments about Clang, a great place to discuss them is
on the Clang development mailing list:
  http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev

If you find a bug in Clang, please file it in the LLVM bug tracker:
  http://llvm.org/bugs/