1*0a6a1f1dSLionel Sambuc // RUN: %clang_cc1 -triple i686-windows-msvc -emit-llvm -std=c++11 -o - %s | FileCheck %s 2*0a6a1f1dSLionel Sambuc 3*0a6a1f1dSLionel Sambuc // Make sure that we emit H's constructor twice: once with the first lambda 4*0a6a1f1dSLionel Sambuc // inside of 'lep' and again with the second lambda inside of 'lep'. 5*0a6a1f1dSLionel Sambuc // CHECK-DAG: @"\01??0?$H@V<lambda_1>@??$lep@X@@YAXXZ@@@QAE@XZ" 6*0a6a1f1dSLionel Sambuc // CHECK-DAG: @"\01??0?$H@V<lambda_2>@??$lep@X@@YAXXZ@@@QAE@XZ" 7*0a6a1f1dSLionel Sambuc 8*0a6a1f1dSLionel Sambuc template <typename> 9*0a6a1f1dSLionel Sambuc struct H { HH10*0a6a1f1dSLionel Sambuc H() {} 11*0a6a1f1dSLionel Sambuc }; 12*0a6a1f1dSLionel Sambuc 13*0a6a1f1dSLionel Sambuc template <typename Fx> K_void(const Fx &)14*0a6a1f1dSLionel Sambucint K_void(const Fx &) { 15*0a6a1f1dSLionel Sambuc H<Fx> callee; 16*0a6a1f1dSLionel Sambuc return 0; 17*0a6a1f1dSLionel Sambuc } 18*0a6a1f1dSLionel Sambuc template <typename Fx> K_int(const Fx &)19*0a6a1f1dSLionel Sambucint K_int(const Fx &) { 20*0a6a1f1dSLionel Sambuc H<Fx> callee; 21*0a6a1f1dSLionel Sambuc return 0; 22*0a6a1f1dSLionel Sambuc } 23*0a6a1f1dSLionel Sambuc 24*0a6a1f1dSLionel Sambuc struct pair { 25*0a6a1f1dSLionel Sambuc pair(int, int); 26*0a6a1f1dSLionel Sambuc }; 27*0a6a1f1dSLionel Sambuc 28*0a6a1f1dSLionel Sambuc struct E1; 29*0a6a1f1dSLionel Sambuc 30*0a6a1f1dSLionel Sambuc template <typename> lep()31*0a6a1f1dSLionel Sambucvoid lep() { 32*0a6a1f1dSLionel Sambuc pair x(K_void([] {}), K_int([] {})); 33*0a6a1f1dSLionel Sambuc } 34*0a6a1f1dSLionel Sambuc 35*0a6a1f1dSLionel Sambuc auto z = lep<void>; 36