diff options
author | Dmitry Polukhin <dmitry.polukhin@gmail.com> | 2016-09-21 08:27:03 +0000 |
---|---|---|
committer | Dmitry Polukhin <dmitry.polukhin@gmail.com> | 2016-09-21 08:27:03 +0000 |
commit | fda467b252413898b40d4db55ea7bbdbb3e535e3 (patch) | |
tree | 13eb9fa48f91d847c7062f72163e6c74b7d2e7e3 /clang/test/CodeGenCXX/mangle-abi-tag.cpp | |
parent | 2a3f066349bd376e2353da5b74faaa1d63518639 (diff) | |
download | bcm5719-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.cpp | 16 |
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_( |