llvm-project/clang
Quentin Colombet 043406b87f Reapply r259624, it is likely not the commit causing the bot failures.
Original message:
Make CF constant string decl visible to name lookup to fix module errors

The return type of the __builtin___*StringMakeConstantString functions
is a pointer to a struct, so we need that struct to be visible to name
lookup so that we will correctly merge multiple declarations of that
type if they come from different modules.

Incidentally, to make this visible to name lookup we need to rename the
type to __NSConstantString, since the real NSConstantString is an
Objective-C interface type.  This shouldn't affect anyone outside the
compiler since users of the constant string builtins cast the result
immediately to CFStringRef.

Since this struct type is otherwise implicitly created by the AST
context and cannot access namelookup, we make this a predefined type
and initialize it in Sema.

Note: this issue of builtins that refer to types not visible to name
lookup technically also affects other builtins (e.g. objc_msgSendSuper),
but in all other cases the builtin is a library builtin and the issue
goes away if you include the library that defines the types it uses,
unlike for these constant string builtins.

rdar://problem/24425801

llvm-svn: 259721
2016-02-03 22:41:00 +00:00
..
INPUTS
bindings libclang: expose dllexport, dllimport attributes 2015-12-10 18:45:18 +00:00
cmake [CMake] Support a simple case for bootstrap builds to generate PGO data 2016-01-05 23:51:42 +00:00
docs docs: Clarify that cfi-unrelated-cast is based on lifetime. 2016-02-01 18:55:50 +00:00
examples Remove autoconf support 2016-01-26 21:30:40 +00:00
include Reapply r259624, it is likely not the commit causing the bot failures. 2016-02-03 22:41:00 +00:00
lib Reapply r259624, it is likely not the commit causing the bot failures. 2016-02-03 22:41:00 +00:00
runtime Remove autoconf support 2016-01-26 21:30:40 +00:00
test Reapply r259624, it is likely not the commit causing the bot failures. 2016-02-03 22:41:00 +00:00
tools [OpenMP] Parsing + sema for target parallel for directive. 2016-02-03 15:46:42 +00:00
unittests clang-format: Fix formatting of ternary expressions with comments. 2016-02-03 17:27:10 +00:00
utils Add back the ABITest makefiles 2016-02-03 17:16:01 +00:00
www Mark DR1250 as implemented 2016-02-01 01:33:17 +00:00
.arcconfig Revert r242365. 2015-07-16 00:32:26 +00:00
.clang-format
.clang-tidy
.gitignore Add the clang debug info test directory to .gitignore as it's managed separately. 2016-01-29 01:35:55 +00:00
CMakeLists.txt [CMake] Don't apply Export set to clang tools 2016-01-19 23:01:38 +00:00
CODE_OWNERS.TXT Added Anastasia Stulova as a code owner for OpenCL 2016-02-03 18:51:19 +00:00
INSTALL.txt Honor system specific paths of MAN pages 2015-11-20 18:49:02 +00:00
LICENSE.TXT
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/