diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2016-10-24 20:29:40 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2016-10-24 20:29:40 +0000 |
commit | 4631be74027bf2fcaea44c3a30758b2fdcacf6c8 (patch) | |
tree | 39930e2c25c400e065d6aab91c429f3e062117b5 /clang/test/CodeGenCXX/mangle.cpp | |
parent | c968297b952739f33e48746f4bb53eef10372cd4 (diff) | |
download | bcm5719-llvm-4631be74027bf2fcaea44c3a30758b2fdcacf6c8.tar.gz bcm5719-llvm-4631be74027bf2fcaea44c3a30758b2fdcacf6c8.zip |
Fix mangling of implicit calls to operator-> to only include a single "pt",
rather than including an extra one for each level of 'operator->()' invoked.
llvm-svn: 285015
Diffstat (limited to 'clang/test/CodeGenCXX/mangle.cpp')
-rw-r--r-- | clang/test/CodeGenCXX/mangle.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/clang/test/CodeGenCXX/mangle.cpp b/clang/test/CodeGenCXX/mangle.cpp index 5d757102ed2..8ae67c415ae 100644 --- a/clang/test/CodeGenCXX/mangle.cpp +++ b/clang/test/CodeGenCXX/mangle.cpp @@ -1111,3 +1111,10 @@ void fn(T, __underlying_type(T)) {} template void fn<E>(E, __underlying_type(E)); // CHECK-LABEL: @_ZN6test552fnINS_1EEEEvT_U3eutS2_ } + +namespace test56 { + struct A { A *operator->(); int n; } a; + template<int N> void f(decltype(a->n + N)) {} + // CHECK-LABEL: @_ZN6test561fILi0EEEvDTplptL_ZNS_1aEE1nT_E + template void f<0>(int); +} |