summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaCXX/crashes.cpp
diff options
context:
space:
mode:
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>2010-11-05 23:25:18 +0000
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>2010-11-05 23:25:18 +0000
commit7d391557ccfb3edfc3036057099a8885f35ea1d5 (patch)
treea9cf66eed57021dee0a4c22c4cb92d6fdd9c159b /clang/test/SemaCXX/crashes.cpp
parent25edf4302f07a59a49324731e153977806ecb131 (diff)
downloadbcm5719-llvm-7d391557ccfb3edfc3036057099a8885f35ea1d5.tar.gz
bcm5719-llvm-7d391557ccfb3edfc3036057099a8885f35ea1d5.zip
When determining which template partial specialization is more specialized,
make sure to setup the instantiation stack. Fixes rdar://8620775 & http://llvm.org/PR8234 llvm-svn: 118314
Diffstat (limited to 'clang/test/SemaCXX/crashes.cpp')
-rw-r--r--clang/test/SemaCXX/crashes.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/clang/test/SemaCXX/crashes.cpp b/clang/test/SemaCXX/crashes.cpp
index 53eecb6c14f..87bde2aa939 100644
--- a/clang/test/SemaCXX/crashes.cpp
+++ b/clang/test/SemaCXX/crashes.cpp
@@ -41,3 +41,30 @@ struct {
new Y // expected-error{{no viable conversion}}
};
}
+
+// http://llvm.org/PR8234
+namespace PR8234 {
+template<typename Signature>
+class callback
+{
+};
+
+template<typename R , typename ARG_TYPE0>
+class callback<R( ARG_TYPE0)>
+{
+ public:
+ callback() {}
+};
+
+template< typename ARG_TYPE0>
+class callback<void( ARG_TYPE0)>
+{
+ public:
+ callback() {}
+};
+
+void f()
+{
+ callback<void(const int&)> op;
+}
+}
OpenPOWER on IntegriCloud