xref: /llvm-project/clang/test/CodeGenCXX/mangle-unnameable-conversions.cpp (revision 9ca5c425826329d5b23300bbc8a1a7c10a19c64d)
1*9ca5c425SRichard Smith // RUN: %clang_cc1 -std=c++11 -triple x86_64-apple-darwin10 -emit-llvm -o - %s | FileCheck %s
23f1b5d07SRichard Smith 
33f1b5d07SRichard Smith template<typename T> using id = T;
43f1b5d07SRichard Smith struct S {
53f1b5d07SRichard Smith   template<typename T, int N>
63f1b5d07SRichard Smith     operator id<T[N]>&();
73f1b5d07SRichard Smith   template<typename T, typename U>
83f1b5d07SRichard Smith     operator id<T (U::*)()>() const;
93f1b5d07SRichard Smith };
103f1b5d07SRichard Smith 
f()113f1b5d07SRichard Smith void f() {
123f1b5d07SRichard Smith   int (&a)[42] = S(); // CHECK: @_ZN1ScvRAT0__T_IiLi42EEEv(
133f1b5d07SRichard Smith   char (S::*fp)() = S(); // CHECK: @_ZNK1ScvMT0_FT_vEIcS_EEv(
143f1b5d07SRichard Smith };
15