1176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines// RUN: %clang_cc1 -triple i686-windows-msvc -emit-llvm -std=c++11 -o - %s | FileCheck %s 2176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines 3176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines// Make sure that we emit H's constructor twice: once with the first lambda 4176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines// inside of 'lep' and again with the second lambda inside of 'lep'. 5176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines// CHECK-DAG: @"\01??0?$H@V<lambda_1>@??$lep@X@@YAXXZ@@@QAE@XZ" 6176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines// CHECK-DAG: @"\01??0?$H@V<lambda_2>@??$lep@X@@YAXXZ@@@QAE@XZ" 7176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines 8176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinestemplate <typename> 9176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesstruct H { 10176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines H() {} 11176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines}; 12176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines 13176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinestemplate <typename Fx> 14176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesint K_void(const Fx &) { 15176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines H<Fx> callee; 16176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines return 0; 17176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines} 18176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinestemplate <typename Fx> 19176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesint K_int(const Fx &) { 20176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines H<Fx> callee; 21176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines return 0; 22176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines} 23176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines 24176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesstruct pair { 25176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines pair(int, int); 26176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines}; 27176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines 28176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesstruct E1; 29176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines 30176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinestemplate <typename> 31176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesvoid lep() { 32176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines pair x(K_void([] {}), K_int([] {})); 33176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines} 34176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines 35176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hinesauto z = lep<void>; 36