summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGenCXX/mangle-abi-tag.cpp
diff options
context:
space:
mode:
authorDmitry Polukhin <dmitry.polukhin@gmail.com>2016-09-21 08:27:03 +0000
committerDmitry Polukhin <dmitry.polukhin@gmail.com>2016-09-21 08:27:03 +0000
commitfda467b252413898b40d4db55ea7bbdbb3e535e3 (patch)
tree13eb9fa48f91d847c7062f72163e6c74b7d2e7e3 /clang/test/CodeGenCXX/mangle-abi-tag.cpp
parent2a3f066349bd376e2353da5b74faaa1d63518639 (diff)
downloadbcm5719-llvm-fda467b252413898b40d4db55ea7bbdbb3e535e3.tar.gz
bcm5719-llvm-fda467b252413898b40d4db55ea7bbdbb3e535e3.zip
PR30401: Fix substitutions for functions with abi_tag
llvm-svn: 282059
Diffstat (limited to 'clang/test/CodeGenCXX/mangle-abi-tag.cpp')
-rw-r--r--clang/test/CodeGenCXX/mangle-abi-tag.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/clang/test/CodeGenCXX/mangle-abi-tag.cpp b/clang/test/CodeGenCXX/mangle-abi-tag.cpp
index 385a16f26a5..990d2f94b5a 100644
--- a/clang/test/CodeGenCXX/mangle-abi-tag.cpp
+++ b/clang/test/CodeGenCXX/mangle-abi-tag.cpp
@@ -203,3 +203,19 @@ void f18_test() {
}
// A18::operator A[abi:A][abi:B]() but GCC adds the same tags twice!
// CHECK-DAG: define linkonce_odr {{.+}} @_ZN3A18cv1AB1AB1BEv(
+
+namespace N19 {
+ class A {};
+ class __attribute__((abi_tag("B"))) B {};
+ class D {};
+ class F {};
+
+ template<typename T, B F(T, D)>
+ class C {};
+
+ B foo(A, D);
+}
+void f19_test(N19::C<N19::A, &N19::foo>, N19::F, N19::D) {
+}
+// f19_test(N19::C<N19::A, &N19::foo[abi:B]>, N19::F, N19::D)
+// CHECK-DAG: define void @_Z8f19_testN3N191CINS_1AEXadL_ZNS_3fooB1BES1_NS_1DEEEEENS_1FES2_(
OpenPOWER on IntegriCloud