llvm-project/clang/lib
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
..
ARCMigrate Remove \brief commands from doxygen comments. 2018-05-09 01:00:01 +00:00
AST Revert "Append new attributes to the end of an AttributeList." 2018-06-25 20:06:13 +00:00
ASTMatchers [ASTMatchers] Introduce a blockDecl matcher for matching block declarations 2018-05-16 22:47:03 +00:00
Analysis [Sema] -Wformat-pedantic only for NSInteger/NSUInteger %zu/%zi on Darwin 2018-06-22 21:54:40 +00:00
Basic Use Triple::isMIPS() instead of enumerating all Triples. NFC 2018-06-25 16:49:52 +00:00
CodeGen [WebAssembly] Add no-prototype attribute to prototype-less C functions 2018-06-25 18:47:32 +00:00
CrossTU [CrossTU] Fix handling of Cross Translation Unit directory path 2017-10-27 12:53:37 +00:00
Driver [MachineOutliner] Outline from linkonceodrs by default in LTO when -moutline is passed 2018-06-25 17:36:05 +00:00
Edit Remove \brief commands from doxygen comments. 2018-05-09 01:00:01 +00:00
Format [clang-format] Add a default format style that can be used by users of `getStyle` 2018-06-25 16:29:19 +00:00
Frontend [clang-cl] Don't emit dllexport inline functions etc. from pch files (PR37801) 2018-06-25 13:23:49 +00:00
FrontendTool Add a new driver mode to dump compiler feature and extension options. 2018-05-31 13:57:09 +00:00
Headers [X86] Correct the inline assembly implementations of __movsb/w/d/q and __stosw/d/q to mark registers/memory as modified 2018-06-21 18:56:30 +00:00
Index [Fixed Point Arithmetic] Addition of the remaining fixed point types and their saturated equivalents 2018-06-14 14:53:51 +00:00
Lex Warning for framework include violation from Headers to PrivateHeaders 2018-06-25 22:24:17 +00:00
Parse Revert "Append new attributes to the end of an AttributeList." 2018-06-25 20:06:13 +00:00
Rewrite Remove \brief commands from doxygen comments. 2018-05-09 01:00:01 +00:00
Sema Revert "Append new attributes to the end of an AttributeList." 2018-06-25 20:06:13 +00:00
Serialization Revert "Append new attributes to the end of an AttributeList." 2018-06-25 20:06:13 +00:00
StaticAnalyzer Add const qualifier on FieldChainInfoComparator::operator() 2018-06-22 16:51:17 +00:00
Tooling Reland "Move #include manipulation code to new lib/Tooling/Inclusions." 2018-06-04 09:04:12 +00:00
CMakeLists.txt Add Cross Translation Unit support library 2017-09-22 11:11:01 +00:00