1 // RUN: %clang_cc1 -std=c++2a -triple %itanium_abi_triple -emit-llvm -o - %s -w | FileCheck %s 2 3 template<class, int, class> 4 struct DummyType { }; 5 6 inline void inline_func() { 7 // CHECK: UlvE 8 []{}(); 9 10 // CHECK: UlTyvE 11 []<class>{}.operator()<int>(); 12 13 // CHECK: UlTyT_E 14 []<class T>(T){}(1); 15 16 // CHECK: UlTyTyT_T0_E 17 []<class T1, class T2>(T1, T2){}(1, 2); 18 19 // CHECK: UlTyTyT0_T_E 20 []<class T1, class T2>(T2, T1){}(2, 1); 21 22 // CHECK: UlTniTyTnjT0_E 23 []<int I, class T, unsigned U>(T){}.operator()<1, int, 2>(3); 24 25 // CHECK: UlTyTtTyTniTyETniTyvE 26 []<class, 27 template<class, int, class> class, 28 int, 29 class>{}.operator()<unsigned, DummyType, 5, int>(); 30 } 31 32 void call_inline_func() { 33 inline_func(); 34 } 35