hanchenye-llvm-project/clang
Reid Kleckner a002bd544c [WinEH] Mark calls inside cleanups as noinline
This works around PR25162. The MSVC tables make it very difficult to
correctly inline a C++ destructor that contains try / catch.  We've
attempted to address PR25162 in LLVM's backend, but it feels pretty
infeasible.  MSVC and ICC both appear to avoid inlining such complex
destructors.

Long term, we want to fix this by making the inliner smart enough to
know when it is inlining into a cleanup, so it can inline simple
destructors (~unique_ptr and ~vector) while avoiding destructors
containing try / catch.

llvm-svn: 251576
2015-10-28 23:06:42 +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 clang-format: Add an additional value to AlignAfterOpenBracket: AlwaysBreak. 2015-10-27 12:38:37 +00:00
examples analyzer-plugin/MainCallChecker.cpp: s/generateSink/generateErrorNode/, corresponding to r247859. 2015-09-16 22:57:23 +00:00
include Put global classes into the appropriate namespace. 2015-10-28 13:54:16 +00:00
lib [WinEH] Mark calls inside cleanups as noinline 2015-10-28 23:06:42 +00:00
runtime [CMake] Make external compiler-rt install scripts relative to CMAKE_INSTALL_PREFIX. 2015-10-20 16:39:25 +00:00
test [WinEH] Mark calls inside cleanups as noinline 2015-10-28 23:06:42 +00:00
tools [analyzer] Preserve the order checkers were enabled/disabled. 2015-10-28 20:43:39 +00:00
unittests clang-format: When a line is formatted, also format subsequence lines if their indent is off. 2015-10-28 01:08:22 +00:00
utils Add the ability to define "fake" arguments on attributes. 2015-10-28 00:17:34 +00:00
www [analyzer] Enhance FAQ with instructions on handing unused variables. 2015-10-27 20:19:38 +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
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/