summaryrefslogtreecommitdiffstats
path: root/clang/test
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2015-06-10 20:30:23 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2015-06-10 20:30:23 +0000
commite7bd6defd71d24e9b58f18462bb32c92a355c05b (patch)
treea18f813183af339aafcaf6f24cc9cbcff597883c /clang/test
parentccb8d5cc573d3c8a24a5671b13971a4357dc914e (diff)
downloadbcm5719-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')
-rw-r--r--clang/test/Modules/Inputs/template-default-args/a.h1
-rw-r--r--clang/test/Modules/Inputs/template-default-args/c.h1
-rw-r--r--clang/test/Modules/Inputs/template-default-args/module.modulemap6
-rw-r--r--clang/test/Modules/template-default-args.cpp6
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;
OpenPOWER on IntegriCloud