summaryrefslogtreecommitdiffstats
path: root/clang/test
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2011-01-25 18:11:52 +0000
committerDouglas Gregor <dgregor@apple.com>2011-01-25 18:11:52 +0000
commitd0d7bf32e3274d162d442579d46fbaaa9125a54e (patch)
treec803079f97f41afee875b726d77c28b1216e7faa /clang/test
parent70f8e5962a5d35b5a52639ff1bff9151ad343616 (diff)
downloadbcm5719-llvm-d0d7bf32e3274d162d442579d46fbaaa9125a54e.tar.gz
bcm5719-llvm-d0d7bf32e3274d162d442579d46fbaaa9125a54e.zip
Add test for PR8629
llvm-svn: 124204
Diffstat (limited to 'clang/test')
-rw-r--r--clang/test/SemaTemplate/instantiate-template-template-parm.cpp36
1 files changed, 36 insertions, 0 deletions
diff --git a/clang/test/SemaTemplate/instantiate-template-template-parm.cpp b/clang/test/SemaTemplate/instantiate-template-template-parm.cpp
index 1e3346998fa..a70c7e8b081 100644
--- a/clang/test/SemaTemplate/instantiate-template-template-parm.cpp
+++ b/clang/test/SemaTemplate/instantiate-template-template-parm.cpp
@@ -59,3 +59,39 @@ template <int x, int y> struct lt {
};
Comp<int, lt> c0;
+
+namespace PR8629 {
+ template<template<int> class TT> struct X0
+ {
+ static void apply();
+ };
+ template<int> struct Type { };
+
+ template<class T> struct X1
+ {
+ template<class U> struct Inner;
+
+ template<class U> void g()
+ {
+ typedef Inner<U> Init;
+ X0<Init::template VeryInner>::apply();
+ }
+ template<int N> void f ()
+ {
+ g<Type<N> >();
+ }
+ };
+ template<class T> template<class U> struct X1<T>::Inner
+ {
+ template<int> struct VeryInner {
+ };
+ };
+ struct X1Container
+ {
+ X1Container()
+ {
+ simplex_.f<0>();
+ }
+ X1<double> simplex_;
+ };
+}
OpenPOWER on IntegriCloud