summaryrefslogtreecommitdiff
path: root/clang/test/PCH/chain-pending-instantiations.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/test/PCH/chain-pending-instantiations.cpp')
-rw-r--r--clang/test/PCH/chain-pending-instantiations.cpp33
1 files changed, 33 insertions, 0 deletions
diff --git a/clang/test/PCH/chain-pending-instantiations.cpp b/clang/test/PCH/chain-pending-instantiations.cpp
new file mode 100644
index 0000000..e49abcd
--- /dev/null
+++ b/clang/test/PCH/chain-pending-instantiations.cpp
@@ -0,0 +1,33 @@
+// RUN: %clang_cc1 %s -emit-llvm -o - -chain-include %s -chain-include %s | FileCheck %s
+// CHECK: define linkonce_odr %{{[^ ]+}} @_ZN1AI1BE3getEv
+#if !defined(PASS1)
+#define PASS1
+
+template <typename Derived>
+struct A {
+ Derived* get() { return 0; }
+};
+
+struct B : A<B> {
+};
+
+#elif !defined(PASS2)
+#define PASS2
+
+struct C : B {
+};
+
+struct D : C {
+ void run() {
+ (void)get();
+ }
+};
+
+#else
+
+int main() {
+ D d;
+ d.run();
+}
+
+#endif