llvm-project/clang
Peter Collingbourne 8fabc1b47d CodeGen: Do not give local-linkage functions externally available linkage, even temporarily.
When an internal-linkage thunk is code gen'd, CodeGenVTables::emitThunk
will first be called with ForVTable=true (which incorrectly set the
thunk's linkage to available_externally under the Itanium ABI) and later
with ForVTable=false (which reset it to internal). Because we will always
see a call with ForVTable=false, this incorrect linkage never ended up in
the final IR. However, the temporary presence of this linkage caused us
to give such functions a comdat as a result of code introduced in r241102.
To avoid this, check that the thunk is externally visible before giving it
available_externally linkage.

llvm-svn: 241136
2015-07-01 02:10:26 +00:00
..
INPUTS
bindings [libclang] Add functions to get information about fields. 2015-04-13 16:55:04 +00:00
cmake/modules Make it easier to build against a pre-built Clang package with CMake 2014-11-05 23:14:59 +00:00
docs Sphinx-based clang man pages 2015-06-30 02:52:38 +00:00
examples Fixing a build bot break from r240400. 2015-06-23 13:29:33 +00:00
include [modules] Make the include guard optimization fire a bit more when considering 2015-07-01 01:51:38 +00:00
lib CodeGen: Do not give local-linkage functions externally available linkage, even temporarily. 2015-07-01 02:10:26 +00:00
runtime [UBSan] Use shared library for UBSan on OS X (Clang part). 2015-03-23 23:14:05 +00:00
test CodeGen: Do not give local-linkage functions externally available linkage, even temporarily. 2015-07-01 02:10:26 +00:00
tools [clang-fuzzer] Update clang-fuzzer to API change in r240225. 2015-06-25 20:21:59 +00:00
unittests clang-format: Properly parse parenthesis in braced lists. 2015-06-30 11:32:22 +00:00
utils [Static Analyzer] Minor improvements to SATest. 2015-06-30 15:31:17 +00:00
www Fix "the the" in comments/documentation/etc. 2015-06-19 01:52:53 +00:00
.arcconfig
.clang-format
.clang-tidy Enable display of compiler diagnostics in clang-tidy. 2014-10-29 17:28:51 +00:00
.gitignore [.gitignore] ignore vim swap files harder 2015-06-17 02:21:35 +00:00
CMakeLists.txt Use Clang version numbers for the Windows VERSIONINFO resource. 2015-06-12 16:33:38 +00:00
CODE_OWNERS.TXT List Alexey Bataev as code owner for Clang's OpenMP support, as discussed offline. 2015-05-12 20:29:41 +00:00
INSTALL.txt
LICENSE.TXT Update copyright year to 2015. 2015-03-12 01:36:10 +00:00
Makefile
ModuleInfo.txt
NOTES.txt
README.txt Reverting test commit. 2015-04-10 08:43:58 +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/