[PATCH] D51789: [WIP][clang] Add the no_extern_template attribute
Louis Dionne via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Sep 7 08:03:28 PDT 2018
ldionne created this revision.
ldionne added reviewers: rsmith, rjmccall.
Herald added subscribers: llvm-commits, dexonsmith.
This attribute allows excluding a member of a class template from being part
of an explicit template instantiation of that class template. This also makes
sure that code using such a member will not take for granted that an external
instantiation exists in another translation unit. The attribute was discussed
on cfe-dev at [1] and is primarily motivated by the removal of always_inline
in libc++ to control what's part of the ABI (see links in [1]).
[1]: http://lists.llvm.org/pipermail/cfe-dev/2018-August/059024.html
rdar://problem/43428125
Repository:
rL LLVM
https://reviews.llvm.org/D51789
Files:
clang/include/clang/Basic/Attr.td
clang/include/clang/Basic/AttrDocs.td
clang/include/clang/Basic/DiagnosticSemaKinds.td
clang/lib/Sema/SemaDeclAttr.cpp
clang/lib/Sema/SemaTemplateInstantiate.cpp
clang/test/CodeGenCXX/attribute_no_extern_template.explicit_instantiation.cpp
clang/test/CodeGenCXX/attribute_no_extern_template.extern_declaration.cpp
clang/test/CodeGenCXX/attribute_no_extern_template.merge_redeclarations.cpp
clang/test/SemaCXX/attr-no_extern_template.diagnose_when_undefined.cpp
clang/test/SemaCXX/attr-no_extern_template.valid_entities.cpp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D51789.164424.patch
Type: text/x-patch
Size: 16911 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180907/b9f6d932/attachment.bin>
More information about the llvm-commits
mailing list