]> granicus.if.org Git - clang/commit
[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)
commitaffbdbb5c5edf998ffc65b7f51ea00591be91dc2
treeba31e82c5fe32afc6d45261f233533cee9965334
parent807bcad4b090ed067caaa50bb1224dbf32766a30
[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.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@307434 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/Basic/Linkage.h
lib/AST/Decl.cpp
lib/CodeGen/CodeGenModule.cpp
lib/CodeGen/ItaniumCXXABI.cpp
lib/CodeGen/MicrosoftCXXABI.cpp
lib/Index/IndexSymbol.cpp
test/CXX/modules-ts/basic/basic.def.odr/p4/module.cpp
test/CXX/modules-ts/basic/basic.def.odr/p4/module.cppm
test/CXX/modules-ts/basic/basic.def.odr/p4/user.cpp