summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaTemplate
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2011-10-26 06:49:26 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2011-10-26 06:49:26 +0000
commitae1bab56d91569ee0f693e0fe141194cd6bc2d05 (patch)
tree6ac5535cfde867bd7f9b3aaf7066778598768346 /clang/test/SemaTemplate
parent3d5c1fa93facbd101c7571036c7efc3a6d5e409b (diff)
downloadbcm5719-llvm-ae1bab56d91569ee0f693e0fe141194cd6bc2d05.tar.gz
bcm5719-llvm-ae1bab56d91569ee0f693e0fe141194cd6bc2d05.zip
Fix crash due to missing array-to-pointer decay when instantiating an unresolved
member expression. Refactoring to follow. llvm-svn: 143017
Diffstat (limited to 'clang/test/SemaTemplate')
-rw-r--r--clang/test/SemaTemplate/instantiate-expr-4.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/clang/test/SemaTemplate/instantiate-expr-4.cpp b/clang/test/SemaTemplate/instantiate-expr-4.cpp
index 9483f9b2836..d95ccfecd9b 100644
--- a/clang/test/SemaTemplate/instantiate-expr-4.cpp
+++ b/clang/test/SemaTemplate/instantiate-expr-4.cpp
@@ -282,6 +282,16 @@ template struct ArrowMemRef0<ArrowWrapper<MemIntFunc*>, int (*)(int)>;
template struct ArrowMemRef0<ArrowWrapper<MemInt*>, float&>; // expected-note{{instantiation}}
template struct ArrowMemRef0<ArrowWrapper<ArrowWrapper<MemInt*> >, int&>;
+struct UnresolvedMemRefArray {
+ int f(int);
+ int f(char);
+};
+UnresolvedMemRefArray Arr[10];
+template<typename U> int UnresolvedMemRefArrayT(U u) {
+ return Arr->f(u);
+}
+template int UnresolvedMemRefArrayT<int>(int);
+
// FIXME: we should be able to return a MemInt without the reference!
MemInt &createMemInt(int);
OpenPOWER on IntegriCloud