llvm-project/clang
Akira Hatanaka c866762272 Add support for function attribute 'not_tail_called'.
This attribute is used to prevent tail-call optimizations to the marked
function. For example, in the following piece of code, foo1 will not be
tail-call optimized: 

int __attribute__((not_tail_called)) foo1(int);

int foo2(int a) {
  return foo1(a); // Tail-call optimization is not performed.
}

The attribute has effect only on statically bound calls. It has no
effect on indirect calls. Also, virtual functions and objective-c
methods cannot be marked as 'not_tail_called'.

rdar://problem/22667622

Differential Revision: http://reviews.llvm.org/D12922

llvm-svn: 252369
2015-11-06 23:56:15 +00:00
..
INPUTS
bindings Index: expose is_mutable_field 2015-10-27 15:50:22 +00:00
cmake [CMake] Set CLANG_LINKS_TO_CREATE in Apple-stage2.cmake so that we create cc and c++ links. 2015-09-18 18:11:18 +00:00
docs Fixed a link. 2015-11-04 19:42:17 +00:00
examples analyzer-plugin/MainCallChecker.cpp: s/generateSink/generateErrorNode/, corresponding to r247859. 2015-09-16 22:57:23 +00:00
include Add support for function attribute 'not_tail_called'. 2015-11-06 23:56:15 +00:00
lib Add support for function attribute 'not_tail_called'. 2015-11-06 23:56:15 +00:00
runtime Revert "Support watchOS and tvOS in compiler-rt builds" 2015-11-03 18:14:42 +00:00
test Add support for function attribute 'not_tail_called'. 2015-11-06 23:56:15 +00:00
tools [Sema] Implement __make_integer_seq 2015-11-04 03:40:30 +00:00
unittests Make ArgumentAdjuster aware of the current file being processed. 2015-11-05 02:19:53 +00:00
utils Add the ability to define "fake" arguments on attributes. 2015-10-28 00:17:34 +00:00
www Better link for Library Fundamentals TS. 2015-11-05 22:21:52 +00:00
.arcconfig Revert r242365. 2015-07-16 00:32:26 +00:00
.clang-format
.clang-tidy
.gitignore Revert r242365. 2015-07-16 00:32:26 +00:00
CMakeLists.txt [CMake] Make clang/tools subdirectories controlled via options 2015-10-20 18:12:12 +00:00
CODE_OWNERS.TXT Update code owners for AST matchers / libtooling. 2015-09-08 10:31:09 +00:00
INSTALL.txt [docs] NFC: Fix line formatting in INSTALL.txt 2015-09-13 20:17:18 +00:00
LICENSE.TXT Update copyright year to 2015. 2015-03-12 01:36:10 +00:00
Makefile [autoconf] Fixing reversed logic introduced r245304. 2015-08-18 21:23:44 +00:00
ModuleInfo.txt
NOTES.txt
README.txt Update mailing list references to lists.llvm.org 2015-08-05 03:55:23 +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.llvm.org/mailman/listinfo/cfe-dev

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