]> granicus.if.org Git - clang/commit
[modules] Add local submodule visibility support for declarations.
authorRichard Smith <richard-llvm@metafoo.co.uk>
Fri, 15 May 2015 20:05:43 +0000 (20:05 +0000)
committerRichard Smith <richard-llvm@metafoo.co.uk>
Fri, 15 May 2015 20:05:43 +0000 (20:05 +0000)
commit049e702bb31e7877721af3986d97569a7ccd343d
treec676dbf9ba606b096b93f9f7d6d7002781108401
parentbb987e72f3305a14f82f358e2928b81d171ccfd9
[modules] Add local submodule visibility support for declarations.

With this change, enabling -fmodules-local-submodule-visibility results in name
visibility rules being applied to submodules of the current module in addition
to imported modules (that is, names no longer "leak" between submodules of the
same top-level module). This also makes it much safer to textually include a
non-modular library into a module: each submodule that textually includes that
library will get its own "copy" of that library, and so the library becomes
visible no matter which including submodule you import.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@237473 91177308-0d34-0410-b5e6-96231b3b80d8
32 files changed:
include/clang/AST/ASTContext.h
include/clang/AST/Decl.h
include/clang/AST/DeclBase.h
include/clang/ASTMatchers/ASTMatchersInternal.h
include/clang/Basic/Module.h
include/clang/Sema/Sema.h
include/clang/Serialization/ASTReader.h
lib/AST/ASTContext.cpp
lib/AST/ASTDumper.cpp
lib/AST/Decl.cpp
lib/AST/DeclBase.cpp
lib/CodeGen/CodeGenModule.cpp
lib/Frontend/CompilerInstance.cpp
lib/Frontend/CompilerInvocation.cpp
lib/Lex/ModuleMap.cpp
lib/Lex/PPLexerChange.cpp
lib/Lex/PPMacroExpansion.cpp
lib/Parse/Parser.cpp
lib/Sema/Sema.cpp
lib/Sema/SemaDecl.cpp
lib/Sema/SemaLookup.cpp
lib/Sema/SemaType.cpp
lib/Serialization/ASTReader.cpp
lib/Serialization/ASTReaderDecl.cpp
lib/Serialization/ASTWriter.cpp
test/Modules/Inputs/submodule-visibility/a.h [new file with mode: 0644]
test/Modules/Inputs/submodule-visibility/b.h [new file with mode: 0644]
test/Modules/Inputs/submodule-visibility/module.modulemap [new file with mode: 0644]
test/Modules/macros.c
test/Modules/macros2.c
test/Modules/submodule-visibility.cpp [new file with mode: 0644]
test/Modules/submodules-merge-defs.cpp