llvm-capstone/clang
Reid Kleckner 9da9448339 Add the "thunk" attribute to MS ABI virtual member pointers
This attribute implies indicates that the function musttail calls
another function and returns whatever it returns. The return type of the
thunk is meaningless, as the thunk can dynamically call different
functions with different return types. So long as the callers bitcast
the thunk with the correct type, behavior is well defined.

This attribute was necessary to fix PR20944, where the indirect call
combiner noticed that the thunk returned void and replaced the results
of the indirect call instruction with undef.

Over-the-shoulder reviewed by David Majnemer.

llvm-svn: 226707
2015-01-21 22:18:17 +00:00
..
bindings
cmake/modules
docs docs/conf.py: update for 3.7 2015-01-14 18:14:05 +00:00
examples
include Initial support for C++ parameter completion 2015-01-21 16:24:11 +00:00
INPUTS
lib Add the "thunk" attribute to MS ABI virtual member pointers 2015-01-21 22:18:17 +00:00
runtime [CMake] Add check-asan-dynamic command to external compiler-rt setup. 2014-12-18 21:40:39 +00:00
test Add the "thunk" attribute to MS ABI virtual member pointers 2015-01-21 22:18:17 +00:00
tools Initial support for C++ parameter completion 2015-01-21 16:24:11 +00:00
unittests clang-format: Fix crasher when splitting incomplete escape sequences. 2015-01-21 19:50:35 +00:00
utils [cleanup] Re-sort the #include lines using llvm/utils/sort_includes.py 2015-01-14 11:23:58 +00:00
www Update cxx_dr_status.html after 3.6 branch 2015-01-14 18:14:00 +00:00
.arcconfig
.clang-format
.clang-tidy
.gitignore
CMakeLists.txt clang/CMakeLists.txt: Introduce LLVM_SHLIB_OUTPUT_INTDIR also here, or plugins tests might fail. 2015-01-05 14:06:14 +00:00
CODE_OWNERS.TXT
INSTALL.txt
LICENSE.TXT
Makefile
ModuleInfo.txt
NOTES.txt
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/