llvm-project/clang/lib/Lex
Bruno Cardoso Lopes 1b3b69fbda Warning for framework include violation from Headers to PrivateHeaders
Framework vendors usually layout their framework headers in the
following way:

Foo.framework/Headers -> "public" headers
Foo.framework/PrivateHeader -> "private" headers

Since both headers in both directories can be found with #import
<Foo/some-header.h>, it's easy to make mistakes and include headers in
Foo.framework/PrivateHeader from headers in Foo.framework/Headers, which
usually configures a layering violation on Darwin ecosystems. One of the
problem this causes is dep cycles when modules are used, since it's very
common for "private" modules to include from the "public" ones; adding
an edge the other way around will trigger cycles.

Add a warning to catch those cases such that:

./A.framework/Headers/A.h:1:10: warning: public framework header includes private framework header 'A/APriv.h'
#include <A/APriv.h>
         ^

rdar://problem/38712182

llvm-svn: 335542
2018-06-25 22:24:17 +00:00
..
CMakeLists.txt
HeaderMap.cpp Use StringRef for MemoryBuffer identifier API (NFC) 2016-10-01 16:38:28 +00:00
HeaderSearch.cpp Warning for framework include violation from Headers to PrivateHeaders 2018-06-25 22:24:17 +00:00
Lexer.cpp Remove \brief commands from doxygen comments. 2018-05-09 01:00:01 +00:00
LiteralSupport.cpp [Fixed Point Arithmetic] Fixed Point Precision Bits and Fixed Point Literals 2018-06-20 17:19:40 +00:00
MacroArgs.cpp Fix typos in clang 2018-04-06 15:14:32 +00:00
MacroInfo.cpp Remove \brief commands from doxygen comments. 2018-05-09 01:00:01 +00:00
ModuleMap.cpp [Modules] Improve .Private fix-its to handle 'explicit' and 'framework' 2018-06-15 20:13:28 +00:00
PPCaching.cpp [Lex] Fix crash on code completion in comment in included file. 2018-01-19 23:41:47 +00:00
PPCallbacks.cpp
PPConditionalDirectiveRecord.cpp
PPDirectives.cpp Reland '[clang] Adding CharacteristicKind to PPCallbacks::InclusionDirective' 2018-05-10 19:05:36 +00:00
PPExpressions.cpp Implement P0482R2, support for char8_t type. 2018-05-01 05:02:45 +00:00
PPLexerChange.cpp Remove \brief commands from doxygen comments. 2018-05-09 01:00:01 +00:00
PPMacroExpansion.cpp Add a new driver mode to dump compiler feature and extension options. 2018-05-31 13:57:09 +00:00
PTHLexer.cpp Fix typos in clang 2018-04-06 15:14:32 +00:00
Pragma.cpp Remove \brief commands from doxygen comments. 2018-05-09 01:00:01 +00:00
PreprocessingRecord.cpp Reland '[clang] Adding CharacteristicKind to PPCallbacks::InclusionDirective' 2018-05-10 19:05:36 +00:00
Preprocessor.cpp Remove \brief commands from doxygen comments. 2018-05-09 01:00:01 +00:00
PreprocessorLexer.cpp Remove \brief commands from doxygen comments. 2018-05-09 01:00:01 +00:00
ScratchBuffer.cpp [Lex] Use WritableMemoryBuffer in ScratchBuffer.cpp 2018-01-11 10:43:45 +00:00
TokenConcatenation.cpp Now that C++17 is official (https://www.iso.org/standard/68564.html), start changing the C++1z terminology over to C++17. NFC intended, these are all mechanical changes. 2017-12-04 20:27:34 +00:00
TokenLexer.cpp Remove \brief commands from doxygen comments. 2018-05-09 01:00:01 +00:00
UnicodeCharSets.h