summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGenCXX/mangle.cpp
diff options
context:
space:
mode:
authorJohn McCall <rjmccall@apple.com>2010-08-17 21:51:21 +0000
committerJohn McCall <rjmccall@apple.com>2010-08-17 21:51:21 +0000
commit6d86202fa752a3dffa0a7c70f171c175e6028463 (patch)
tree42c47f3433b002c104c125930e31e2f62b349e01 /clang/test/CodeGenCXX/mangle.cpp
parentcad715fb9bfd50370fa22ca62634048dcc85598b (diff)
downloadbcm5719-llvm-6d86202fa752a3dffa0a7c70f171c175e6028463.tar.gz
bcm5719-llvm-6d86202fa752a3dffa0a7c70f171c175e6028463.zip
Whoops. Don't fall through into the overload case when mangling a
dependent call expression. llvm-svn: 111300
Diffstat (limited to 'clang/test/CodeGenCXX/mangle.cpp')
-rw-r--r--clang/test/CodeGenCXX/mangle.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/clang/test/CodeGenCXX/mangle.cpp b/clang/test/CodeGenCXX/mangle.cpp
index 4152dabc0b4..6636c926ae4 100644
--- a/clang/test/CodeGenCXX/mangle.cpp
+++ b/clang/test/CodeGenCXX/mangle.cpp
@@ -540,3 +540,20 @@ namespace test16 {
static union { struct { union {}; }; };
static union { struct { struct {}; }; };
}
+
+// rdar://problem/8302148
+namespace test17 {
+ template <int N> struct A {};
+
+ struct B {
+ static int foo(void);
+ };
+
+ template <class T> A<sizeof(T::foo())> func(void);
+
+ // CHECK: define i32 @_ZN6test174testEv()
+ // CHECK: call {{.*}} @_ZN6test174funcINS_1BEEENS_1AIXszclsrT_3fooEEEEv()
+ int test() {
+ func<B>(); // { dg-error "sorry, unimplemented" }
+ }
+}
OpenPOWER on IntegriCloud