llvm-project/clang/test
Ben Langmuir 6a34e10514 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: 259624
2016-02-03 03:26:19 +00:00
..
ARCMT Define weak and __weak to mean ARC-style weak references, even in MRC. 2015-10-22 18:38:17 +00:00
ASTMerge Update tests touched by r249656 2015-10-08 06:31:22 +00:00
Analysis [analyzer] Use a wider integer type for an array index. 2016-02-01 09:29:17 +00:00
CXX PR23057: Fix assertion `Val && "isa<> used on a null pointer"' on invalid for-range expression. 2016-02-02 17:33:09 +00:00
CodeCompletion [Tests] Modified Lit Tests to be C++11 compatibile 2015-08-27 18:49:15 +00:00
CodeGen Add backend dignostic printer for unsupported features 2016-02-02 13:52:52 +00:00
CodeGenCUDA [CUDA] Do not allow dynamic initialization of global device side variables. 2016-02-02 22:29:48 +00:00
CodeGenCXX Fix Itanium RTTI emission so that we emit fundamental type information into the 2016-02-03 01:32:42 +00:00
CodeGenObjC Make CF constant string decl visible to name lookup to fix module errors 2016-02-03 03:26:19 +00:00
CodeGenObjCXX Reapply "[CodeGen] Fix assignments of inline layouts into the byref structure" 2015-12-21 20:21:15 +00:00
CodeGenOpenCL Add target triple to CodeGenOpenCL/pipe_types.cl test case 2016-01-29 10:45:23 +00:00
Coverage Stop messing with the 'g' group of options in CompilerInvocation. 2015-10-08 04:24:12 +00:00
CoverageMapping [PGO] Cleanup: Use covmap header definition in the template file 2016-01-03 19:25:54 +00:00
Driver [asan] Add iOS support for Address Sanitizer 2016-02-02 02:04:48 +00:00
FixIt [Lit Test] Updated 26 Lit tests to be C++11 compatible. 2015-11-11 19:34:47 +00:00
Format Fix clang-format test. I believe that the new behavior is better. 2015-11-23 08:50:52 +00:00
Frontend Add backend dignostic printer for unsupported features 2016-02-02 13:52:52 +00:00
Headers Make ms-intrin.cpp test require the x86 target. 2015-09-23 00:24:34 +00:00
Index [libclang] Introduce APIs for evaluating a cursor and checking if a macro is builtin/function. 2016-01-16 00:20:02 +00:00
Integration
Layout [MS] Fix for bug 25013 - #pragma vtordisp is unknown inside functions, by Denis Zobnin. 2015-11-20 07:02:57 +00:00
Lexer Add -Wexpansion-to-undefined: warn when using `defined` in a macro definition. 2016-01-19 15:15:31 +00:00
Misc Add backend dignostic printer for unsupported features 2016-02-02 13:52:52 +00:00
Modules Make CF constant string decl visible to name lookup to fix module errors 2016-02-03 03:26:19 +00:00
OpenMP [OPENMP 4.0] Allow to use 'omp simd' directive inside other simd-regions. 2016-02-02 04:59:52 +00:00
PCH [OpenCL] Pipe type support 2016-01-09 12:53:17 +00:00
Parser Fix miscompile and rejects-valids when disambiguating after an ambiguous 2016-02-03 02:58:20 +00:00
Preprocessor Adding a test for PR25717. 2016-01-27 02:18:28 +00:00
Profile [PGO] test case cleanups 2016-01-28 18:25:53 +00:00
Rewriter Stop messing with the 'g' group of options in CompilerInvocation. 2015-10-08 04:24:12 +00:00
Sema ARM: allow both vfma and vfms intrinsics on v7. 2016-02-02 18:02:10 +00:00
SemaCUDA [CUDA] Add -fcuda-allow-variadic-functions. 2016-01-26 17:47:20 +00:00
SemaCXX PR24989: Stop trying to use the C++11 rules for lambda return type inference in 2016-02-02 23:58:56 +00:00
SemaObjC Class Property: warn for synthesize on a class property. 2016-01-29 19:16:39 +00:00
SemaObjCXX ObjCXX: fix a crash during typo correction. 2016-02-02 22:23:03 +00:00
SemaOpenCL [OpenCL] Eliminate warning when declaring OpenCL builtin functions. 2016-02-02 11:29:43 +00:00
SemaTemplate Fix PR26134: When substituting into default template arguments, keep CurContext unchanged. 2016-01-19 03:58:55 +00:00
TableGen
Tooling int function without a return statement is invalid C++. 2015-11-27 18:10:49 +00:00
Unit
VFS [VFS] Fix status() of opened redirected file 2015-12-10 23:41:39 +00:00
.clang-format
CMakeLists.txt [ThinLTO] Option to invoke ThinLTO backend passes and importing 2015-12-07 19:21:34 +00:00
TestRunner.sh
cxx-sections.data
lit.cfg Adding a test for PR25717. 2016-01-27 02:18:28 +00:00
lit.site.cfg.in
make_test_dirs.pl