diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2015-06-10 20:30:23 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2015-06-10 20:30:23 +0000 |
commit | e7bd6defd71d24e9b58f18462bb32c92a355c05b (patch) | |
tree | a18f813183af339aafcaf6f24cc9cbcff597883c /clang/test | |
parent | ccb8d5cc573d3c8a24a5671b13971a4357dc914e (diff) | |
download | bcm5719-llvm-e7bd6defd71d24e9b58f18462bb32c92a355c05b.tar.gz bcm5719-llvm-e7bd6defd71d24e9b58f18462bb32c92a355c05b.zip |
[modules] Track all default template arguments for a given parameter across
modules, and allow use of a default template argument if any of the parameters
providing it is visible.
llvm-svn: 239485
Diffstat (limited to 'clang/test')
4 files changed, 13 insertions, 1 deletions
diff --git a/clang/test/Modules/Inputs/template-default-args/a.h b/clang/test/Modules/Inputs/template-default-args/a.h index 1ef1ea5907b..3e415358243 100644 --- a/clang/test/Modules/Inputs/template-default-args/a.h +++ b/clang/test/Modules/Inputs/template-default-args/a.h @@ -2,3 +2,4 @@ template<typename T = int> struct A {}; template<typename T> struct B {}; template<typename T> struct C; template<typename T> struct D; +template<typename T> struct E; diff --git a/clang/test/Modules/Inputs/template-default-args/c.h b/clang/test/Modules/Inputs/template-default-args/c.h new file mode 100644 index 00000000000..c204f313367 --- /dev/null +++ b/clang/test/Modules/Inputs/template-default-args/c.h @@ -0,0 +1 @@ +template<typename T = int> struct F; diff --git a/clang/test/Modules/Inputs/template-default-args/module.modulemap b/clang/test/Modules/Inputs/template-default-args/module.modulemap index 6182e6b3eee..d54dfc345ab 100644 --- a/clang/test/Modules/Inputs/template-default-args/module.modulemap +++ b/clang/test/Modules/Inputs/template-default-args/module.modulemap @@ -1 +1,5 @@ -module X { module A { header "a.h" } module B { header "b.h" } } +module X { + module A { header "a.h" } + module B { header "b.h" } + module C { header "c.h" } +} diff --git a/clang/test/Modules/template-default-args.cpp b/clang/test/Modules/template-default-args.cpp index 63187b8dc19..97569f0aa33 100644 --- a/clang/test/Modules/template-default-args.cpp +++ b/clang/test/Modules/template-default-args.cpp @@ -7,6 +7,7 @@ template<typename T> struct A; template<typename T> struct B; template<typename T> struct C; template<typename T = int> struct D; +template<typename T = int> struct E {}; #include "b.h" @@ -15,8 +16,13 @@ template<typename T> struct B {}; template<typename T = int> struct B; template<typename T = int> struct C; template<typename T> struct D {}; +template<typename T> struct F {}; + +#include "c.h" A<> a; B<> b; extern C<> c; D<> d; +E<> e; +F<> f; |