aboutsummaryrefslogtreecommitdiff
path: root/clang/test/Modules/Inputs/codegen/use.cpp
diff options
context:
space:
mode:
authorDavid Blaikie <dblaikie@gmail.com>2017-04-11 20:46:34 +0000
committerDavid Blaikie <dblaikie@gmail.com>2017-04-11 20:46:34 +0000
commite6b7c28d17edf428c58ba65c549109c0a488a5be (patch)
tree115d3d7e4aea8682ad3d56bb219c1bcfafa84eda /clang/test/Modules/Inputs/codegen/use.cpp
parent4c54fe0c7bf8cc513509b488252d3e3f74958665 (diff)
downloadllvm-e6b7c28d17edf428c58ba65c549109c0a488a5be.zip
llvm-e6b7c28d17edf428c58ba65c549109c0a488a5be.tar.gz
llvm-e6b7c28d17edf428c58ba65c549109c0a488a5be.tar.bz2
Modular Codegen: Add/use a bit in serialized function definitions to track whether they are the subject of modular codegen
Some decls are created not where they are written, but in other module files/users (implicit special members and function template implicit specializations). To correctly identify them, use a bit next to the definition to track the modular codegen property. Discussed whether the module file bit could be omitted in favor of reconstituting from the modular codegen decls list - best guess today is that the efficiency improvement of not having to deserialize the whole list whenever any function is queried by a module user is worth it for the small size increase of this redundant (list + bit-on-def) representation. Reviewers: rsmith Differential Revision: https://reviews.llvm.org/D29901 llvm-svn: 299982
Diffstat (limited to 'clang/test/Modules/Inputs/codegen/use.cpp')
-rw-r--r--clang/test/Modules/Inputs/codegen/use.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/clang/test/Modules/Inputs/codegen/use.cpp b/clang/test/Modules/Inputs/codegen/use.cpp
new file mode 100644
index 0000000..cd1a4a64
--- /dev/null
+++ b/clang/test/Modules/Inputs/codegen/use.cpp
@@ -0,0 +1,8 @@
+#include "foo.h"
+void non_modular_use_of_implicit_dtor() {
+ implicit_dtor d1;
+ uninst_implicit_dtor d2;
+}
+void use_of_instantiated_declaration_without_definition() {
+ inst<int>();
+}