summaryrefslogtreecommitdiffstats
path: root/clang/test/Modules/Inputs/merge-decl-context
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2015-02-25 22:20:13 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2015-02-25 22:20:13 +0000
commit8cebe37fe9e1f56deb7e47f5aefa647960cdd840 (patch)
tree6675477db77032f69e1a6eb4b0ead08acaf63a0e /clang/test/Modules/Inputs/merge-decl-context
parente9401f61c26689c3029090dd4c4d8469c61d598e (diff)
downloadbcm5719-llvm-8cebe37fe9e1f56deb7e47f5aefa647960cdd840.tar.gz
bcm5719-llvm-8cebe37fe9e1f56deb7e47f5aefa647960cdd840.zip
[modules] Even if we already have a definition of a class, loading in another
one can give us more lookup results (due to implicit special members). Be sure to complete the redecl chain for every kind of DeclContext before performing a lookup into it, rather than only doing so for NamespaceDecls. llvm-svn: 230558
Diffstat (limited to 'clang/test/Modules/Inputs/merge-decl-context')
-rw-r--r--clang/test/Modules/Inputs/merge-decl-context/a.h22
-rw-r--r--clang/test/Modules/Inputs/merge-decl-context/b.h6
-rw-r--r--clang/test/Modules/Inputs/merge-decl-context/c.h7
-rw-r--r--clang/test/Modules/Inputs/merge-decl-context/merge-decl-context.modulemap13
4 files changed, 48 insertions, 0 deletions
diff --git a/clang/test/Modules/Inputs/merge-decl-context/a.h b/clang/test/Modules/Inputs/merge-decl-context/a.h
new file mode 100644
index 00000000000..bd08ecaf417
--- /dev/null
+++ b/clang/test/Modules/Inputs/merge-decl-context/a.h
@@ -0,0 +1,22 @@
+#ifndef A_H
+#define A_H
+
+template <typename T>
+struct A {
+ template <typename I>
+ A(I i1, I i2) {
+ }
+ A(double) {}
+ A(double, double) {}
+};
+
+template <typename T1, typename T2>
+T1 fff(T2* t) {
+ return T1(t, t);
+}
+
+inline A<int> ff(int i) {
+ return fff<A<int>>(&i);
+}
+
+#endif
diff --git a/clang/test/Modules/Inputs/merge-decl-context/b.h b/clang/test/Modules/Inputs/merge-decl-context/b.h
new file mode 100644
index 00000000000..cb06ac8e27c
--- /dev/null
+++ b/clang/test/Modules/Inputs/merge-decl-context/b.h
@@ -0,0 +1,6 @@
+#ifndef B_H
+#define B_H
+
+#include "a.h"
+
+#endif
diff --git a/clang/test/Modules/Inputs/merge-decl-context/c.h b/clang/test/Modules/Inputs/merge-decl-context/c.h
new file mode 100644
index 00000000000..af3a723969b
--- /dev/null
+++ b/clang/test/Modules/Inputs/merge-decl-context/c.h
@@ -0,0 +1,7 @@
+#ifndef C_H
+#define C_H
+
+#include "a.h"
+#include "b.h"
+
+#endif
diff --git a/clang/test/Modules/Inputs/merge-decl-context/merge-decl-context.modulemap b/clang/test/Modules/Inputs/merge-decl-context/merge-decl-context.modulemap
new file mode 100644
index 00000000000..fedc5dfbbe4
--- /dev/null
+++ b/clang/test/Modules/Inputs/merge-decl-context/merge-decl-context.modulemap
@@ -0,0 +1,13 @@
+module "a" {
+ textual header "a.h"
+}
+
+module "b" {
+ export *
+ header "b.h"
+}
+
+module "c" {
+ export *
+ header "c.h"
+}
OpenPOWER on IntegriCloud