1*ccda3d29SAkira Hatanaka // RUN: %clang_cc1 -triple x86_64-pc-windows-msvc19.0.0 -std=c++11 -emit-llvm -o - %s | FileCheck %s 2*ccda3d29SAkira Hatanaka 3*ccda3d29SAkira Hatanaka // This code used to cause an assertion failure in EmitDelegateCallArg. 4*ccda3d29SAkira Hatanaka 5*ccda3d29SAkira Hatanaka // CHECK: define internal void @"?__invoke@<lambda_0>@?0??test@@YAXXZ@CA@UTrivial@@@Z"( 6*ccda3d29SAkira Hatanaka // CHECK: call void @"??R<lambda_0>@?0??test@@YAXXZ@QEBA@UTrivial@@@Z"( 7*ccda3d29SAkira Hatanaka 8*ccda3d29SAkira Hatanaka // CHECK: define internal void @"??R<lambda_0>@?0??test@@YAXXZ@QEBA@UTrivial@@@Z"( 9*ccda3d29SAkira Hatanaka 10*ccda3d29SAkira Hatanaka struct Trivial { 11*ccda3d29SAkira Hatanaka int x; 12*ccda3d29SAkira Hatanaka }; 13*ccda3d29SAkira Hatanaka 14*ccda3d29SAkira Hatanaka void (*fnptr)(Trivial); 15*ccda3d29SAkira Hatanaka test()16*ccda3d29SAkira Hatanakavoid test() { 17*ccda3d29SAkira Hatanaka fnptr = [](Trivial a){ (void)a; }; 18*ccda3d29SAkira Hatanaka } 19