Treat module headers wrapped by our builtin headers as implicitly being textualheaders. We previously got this check backwards and treated the wrapper headeras being textual.This is important bec
Treat module headers wrapped by our builtin headers as implicitly being textualheaders. We previously got this check backwards and treated the wrapper headeras being textual.This is important because our wrapper headers sometimes inject macros into thesystem headers that they #include_next, and sometimes replace them entirely.llvm-svn: 285152
show more ...
[Modules] Add 'no_undeclared_includes' module map attributeThe 'no_undeclared_includes' attribute should be used in a module totell that only non-modular headers and headers from used modules are
[Modules] Add 'no_undeclared_includes' module map attributeThe 'no_undeclared_includes' attribute should be used in a module totell that only non-modular headers and headers from used modules areaccepted.The main motivation behind this is to prevent dep cycles between systemlibraries (such as darwin) and libc++.Patch by Richard Smith!llvm-svn: 284797
[Modules] Add Darwin-specific compatibility module map parsing hacksThis preserves backwards compatibility for two hacks in the Darwinsystem module map files:1. The use of 'requires excluded' to
[Modules] Add Darwin-specific compatibility module map parsing hacksThis preserves backwards compatibility for two hacks in the Darwinsystem module map files:1. The use of 'requires excluded' to make headers non-modular, whichshould really be mapped to 'textual' now that we have this feature.2. Silently removes a bogus cplusplus requirement from IOKit.avc.Once we start diagnosing missing requirements and headers onauto-imports these would have broken compatibility with existing DarwinSDKs.llvm-svn: 244912
Fix compiler_builtins.m test to not rely on including system stdlib.h and malloc.hImporting _Builtin_intrinsics.sse and avx would transitively pull in thoseheaders, and the test would fail when bu
Fix compiler_builtins.m test to not rely on including system stdlib.h and malloc.hImporting _Builtin_intrinsics.sse and avx would transitively pull in thoseheaders, and the test would fail when building in an environment wherethey were not available on the include path.This fixes PR20995 for me.Differential Revision: http://reviews.llvm.org/D7112llvm-svn: 226754
Note when a decl is used in AST files.When an AST file is built based on another AST file, it can use a decl fromthe fist file, and therefore mark the "isUsed" bit. We need to note this inthe AS
Note when a decl is used in AST files.When an AST file is built based on another AST file, it can use a decl fromthe fist file, and therefore mark the "isUsed" bit. We need to note this inthe AST file so that the bit is set correctly when the second AST file isloaded.This patch introduces the distinction between setIsUsed() and markUsed() sothat we don't call into the ASTMutationListener callback when it wouldn'tbe appropriate.Fixes PR16635.llvm-svn: 190016
When looking for the module associated with one of our magical builtin headers, speculatively load module maps.The "magical" builtin headers are the headers we provide as part ofthe C standard lib
When looking for the module associated with one of our magical builtin headers, speculatively load module maps.The "magical" builtin headers are the headers we provide as part ofthe C standard library, which typically comes from /usr/include. Weessentially merge our headers into that location (due to cyclicdependencies). This change makes sure that, when header search findsone of our builtin headers, we figure out which module it actuallylives in. This case is fairly rare; one ends up having to include oneof the few built-in C headers we provide before including anythingfrom /usr/include to trigger it. Fixes <rdar://problem/13787184>.llvm-svn: 180934
Back out my heinous hack that tricked the module generation mechanisminto using non-absolute system includes (<foo>)...... and introduce another hack that is simultaneously more heineousand more
Back out my heinous hack that tricked the module generation mechanisminto using non-absolute system includes (<foo>)...... and introduce another hack that is simultaneously more heineousand more effective. We whitelist Clang-supplied headers that augmentor override system headers (such as float.h, stdarg.h, andtgmath.h). For these headers, Clang does not provide a modulemapping. Instead, a system-supplied module map can refer to theseheaders in a system module, and Clang will look both in its owninclude directory and wherever the system-supplied module mapsuggests, then adds either or both headers. The end result is thatClang-supplied headers get merged into the system-supplied module forthe C standard library.As a drive-by, fix up a few dependencies in the _Builtin_instrinsicsmodule.llvm-svn: 149611