[modules ts] Basic for module linkage.
authorRichard Smith <richard-llvm@metafoo.co.uk>
Fri, 7 Jul 2017 20:04:28 +0000 (20:04 +0000)
committerRichard Smith <richard-llvm@metafoo.co.uk>
Fri, 7 Jul 2017 20:04:28 +0000 (20:04 +0000)
commit1283e9868d2c1cbf31a834bb5151af6d046c1cb3
treed8a0ea5f202e996293ae22a4487e81b466174cad
parent77235d345eb11a3705fbb93196eb7817734402a9
[modules ts] Basic for module linkage.

In addition to the formal linkage rules, the Modules TS includes cases where
internal-linkage symbols within a module interface unit can be referenced from
outside the module via exported inline functions / templates. We give such
declarations "module-internal linkage", which is formally internal linkage, but
results in an externally-visible symbol.

llvm-svn: 307434
clang/include/clang/Basic/Linkage.h
clang/lib/AST/Decl.cpp
clang/lib/CodeGen/CodeGenModule.cpp
clang/lib/CodeGen/ItaniumCXXABI.cpp
clang/lib/CodeGen/MicrosoftCXXABI.cpp
clang/lib/Index/IndexSymbol.cpp
clang/test/CXX/modules-ts/basic/basic.def.odr/p4/module.cpp
clang/test/CXX/modules-ts/basic/basic.def.odr/p4/module.cppm
clang/test/CXX/modules-ts/basic/basic.def.odr/p4/user.cpp