| // RUN: %clang_cc1 -fcxx-exceptions -triple=x86_64-windows-msvc \ |
| // RUN: -Wmicrosoft-template -fms-compatibility -emit-llvm %s -o - \ |
| // RUN: | FileCheck %s |
| |
| template <typename a> struct T { |
| virtual void c(); |
| T(a h) {} |
| }; |
| struct m { |
| template <typename j> void ab(j ac) { |
| using ad = T<j>; |
| ad j(ac); |
| } |
| }; |
| template <typename ae> struct n { |
| template <typename j> n(j ac) { q.ab(ac); } |
| ae q; |
| }; |
| class s : n<m> { |
| using ag = n<m>; |
| public: |
| template <typename j> s(j ac) : ag(ac) {} |
| }; |
| struct ah { |
| ah(s); |
| } a([]{}); |
| |
| //CHECK: @0 = private unnamed_addr constant { [2 x ptr] } { [2 x ptr] [ptr @"??_R4?$T@V<lambda_0>@@@@6B@", ptr @"?c@?$T@V<lambda_0>@@@@UEAAXXZ"] } |
| //CHECK: @"??_7?$T@V<lambda_0>@@@@6B@" = internal unnamed_addr alias ptr, getelementptr inbounds ({ [2 x ptr] }, ptr @0, i32 0, i32 0, i32 1) |
| //CHECK-NOT : "??_7?$e@V<lambda_0>@@@@6B@" = comdat any |