diff options
| author | Richard Smith <richard-llvm@metafoo.co.uk> | 2015-02-25 22:20:13 +0000 |
|---|---|---|
| committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2015-02-25 22:20:13 +0000 |
| commit | 8cebe37fe9e1f56deb7e47f5aefa647960cdd840 (patch) | |
| tree | 6675477db77032f69e1a6eb4b0ead08acaf63a0e /clang/test/Modules/Inputs/merge-decl-context | |
| parent | e9401f61c26689c3029090dd4c4d8469c61d598e (diff) | |
| download | bcm5719-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')
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" +} |

