blob: cd65d8306a1ae3ff88129df35a46485e15d31295 [file] [log] [blame]
Zachary Turner42e40ea2018-07-20 17:27:48 +00001; These tests are based on clang/test/CodeGenCXX/mangle-ms.cpp
2; RUN: llvm-undname < %s | FileCheck %s
3
4; CHECK-NOT: Invalid mangled name
5
Zachary Turner42e40ea2018-07-20 17:27:48 +00006?a@@3HA
7; CHECK: int a
8
9?b@N@@3HA
10; CHECK: int N::b
11
12?anonymous@?A@N@@3HA
13; CHECK: int N::`anonymous namespace'::anonymous
14
Zachary Turneraddd2702018-08-14 18:54:28 +000015?$RT1@NeedsReferenceTemporary@@3ABHB
16; CHECK: int const &NeedsReferenceTemporary::$RT1
17?$RT1@NeedsReferenceTemporary@@3AEBHEB
18; CHECK: int const &NeedsReferenceTemporary::$RT1
Zachary Turner3a628862018-07-26 20:20:29 +000019
Zachary Turner42e40ea2018-07-20 17:27:48 +000020?_c@@YAHXZ
21; CHECK: int __cdecl _c(void)
22
23?d@foo@@0FB
24; CHECK: static short const foo::d
25
26?e@foo@@1JC
27; CHECK: static long volatile foo::e
28
29?f@foo@@2DD
30; CHECK: static char const volatile foo::f
31
32??0foo@@QAE@XZ
33; CHECK: __thiscall foo::foo(void)
34
35??0foo@@QEAA@XZ
36; CHECK: __cdecl foo::foo(void)
37
38??1foo@@QAE@XZ
39; CHECK: __thiscall foo::~foo(void)
40
41??1foo@@QEAA@XZ
42; CHECK: __cdecl foo::~foo(void)
43
44??0foo@@QAE@H@Z
45; CHECK: __thiscall foo::foo(int)
46
47??0foo@@QEAA@H@Z
48; CHECK: __cdecl foo::foo(int)
49
50??0foo@@QAE@PAD@Z
51; CHECK: __thiscall foo::foo(char *)
52
53??0foo@@QEAA@PEAD@Z
54; CHECK: __cdecl foo::foo(char *)
55
56?bar@@YA?AVfoo@@XZ
57; CHECK: class foo __cdecl bar(void)
58
59?bar@@YA?AVfoo@@XZ
60; CHECK: class foo __cdecl bar(void)
61
62??Hfoo@@QAEHH@Z
63; CHECK: int __thiscall foo::operator+(int)
64
65??Hfoo@@QEAAHH@Z
66; CHECK: int __cdecl foo::operator+(int)
67
Zachary Turner5999ebb2018-08-01 18:32:47 +000068??$?HH@S@@QEAAAEANH@Z
69; CHECK: double & __cdecl S::operator+<int>(int)
70
Zachary Turner42e40ea2018-07-20 17:27:48 +000071?static_method@foo@@SAPAV1@XZ
Zachary Turnerd4bb30e2018-07-26 20:20:10 +000072; CHECK: static class foo * __cdecl foo::static_method(void)
Zachary Turner42e40ea2018-07-20 17:27:48 +000073
74?static_method@foo@@SAPEAV1@XZ
Zachary Turnerd4bb30e2018-07-26 20:20:10 +000075; CHECK: static class foo * __cdecl foo::static_method(void)
Zachary Turner42e40ea2018-07-20 17:27:48 +000076
77?g@bar@@2HA
78; CHECK: static int bar::g
79
80; undname returns `int *h1`, but it is a bug in their demangler. Their mangler
81; correctly mangles `int *h1` as ?h1@3PAHA and `int * const h1` as ?h1@3QAHA
82?h1@@3QAHA
83; CHECK: int *const h1
84
85?h2@@3QBHB
86; CHECK: int const *const h2
87
88?h3@@3QIAHIA
Zachary Turnereedd47c2018-07-26 20:25:35 +000089; CHECK: int *const __restrict h3
Zachary Turner42e40ea2018-07-20 17:27:48 +000090
91?h3@@3QEIAHEIA
Zachary Turnereedd47c2018-07-26 20:25:35 +000092; CHECK: int *const __restrict h3
Zachary Turner42e40ea2018-07-20 17:27:48 +000093
94?i@@3PAY0BE@HA
95; CHECK: int (*i)[20]
96
97?FunArr@@3PAY0BE@P6AHHH@ZA
Zachary Turnerc2403ba2018-07-26 20:33:48 +000098; CHECK: int (__cdecl *(*FunArr)[20])(int, int)
Zachary Turner42e40ea2018-07-20 17:27:48 +000099
100?j@@3P6GHCE@ZA
Zachary Turnerc2403ba2018-07-26 20:33:48 +0000101; CHECK: int (__stdcall *j)(signed char, unsigned char)
Zachary Turner42e40ea2018-07-20 17:27:48 +0000102
Zachary Turnerd4bb30e2018-07-26 20:20:10 +0000103?funptr@@YAP6AHXZXZ
Zachary Turnerc2403ba2018-07-26 20:33:48 +0000104; CHECK: int (__cdecl * __cdecl funptr(void))(void)
Zachary Turnerd4bb30e2018-07-26 20:20:10 +0000105
Zachary Turner3c58d5b2018-07-26 19:56:09 +0000106?k@@3PTfoo@@DT1@
107; CHECK: char const volatile foo::*k
Zachary Turner42e40ea2018-07-20 17:27:48 +0000108
Zachary Turner3c58d5b2018-07-26 19:56:09 +0000109?k@@3PETfoo@@DET1@
110; CHECK: char const volatile foo::*k
Zachary Turner42e40ea2018-07-20 17:27:48 +0000111
Zachary Turnerd4bb30e2018-07-26 20:20:10 +0000112?l@@3P8foo@@AEHH@ZQ1@
Zachary Turnerc2403ba2018-07-26 20:33:48 +0000113; CHECK: int (__thiscall foo::*l)(int)
Zachary Turner42e40ea2018-07-20 17:27:48 +0000114
115?g_cInt@@3HB
116; CHECK: int const g_cInt
117
118?g_vInt@@3HC
119; CHECK: int volatile g_vInt
120
121?g_cvInt@@3HD
122; CHECK: int const volatile g_cvInt
123
124?beta@@YI_N_J_W@Z
125; CHECK: bool __fastcall beta(__int64, wchar_t)
126
127?beta@@YA_N_J_W@Z
128; CHECK: bool __cdecl beta(__int64, wchar_t)
129
130?alpha@@YGXMN@Z
131; CHECK: void __stdcall alpha(float, double)
132
133?alpha@@YAXMN@Z
134; CHECK: void __cdecl alpha(float, double)
135
136?gamma@@YAXVfoo@@Ubar@@Tbaz@@W4quux@@@Z
137; CHECK: void __cdecl gamma(class foo, struct bar, union baz, enum quux)
138
139?gamma@@YAXVfoo@@Ubar@@Tbaz@@W4quux@@@Z
140; CHECK: void __cdecl gamma(class foo, struct bar, union baz, enum quux)
141
142?delta@@YAXQAHABJ@Z
143; CHECK: void __cdecl delta(int *const, long const &)
144
145?delta@@YAXQEAHAEBJ@Z
146; CHECK: void __cdecl delta(int *const, long const &)
147
148?epsilon@@YAXQAY19BE@H@Z
149; CHECK: void __cdecl epsilon(int (*const)[10][20])
150
151?epsilon@@YAXQEAY19BE@H@Z
152; CHECK: void __cdecl epsilon(int (*const)[10][20])
153
154?zeta@@YAXP6AHHH@Z@Z
Zachary Turnerc2403ba2018-07-26 20:33:48 +0000155; CHECK: void __cdecl zeta(int (__cdecl *)(int, int))
Zachary Turner42e40ea2018-07-20 17:27:48 +0000156
157?zeta@@YAXP6AHHH@Z@Z
Zachary Turnerc2403ba2018-07-26 20:33:48 +0000158; CHECK: void __cdecl zeta(int (__cdecl *)(int, int))
Zachary Turner42e40ea2018-07-20 17:27:48 +0000159
Zachary Turner3a628862018-07-26 20:20:29 +0000160; FIXME: We don't support blocks yet.
161
162; ?eta@@YAXP_EAHHH@Z@Z
163; FIXME: void eta(int (^)(int, int))
164; ?theta@@YAXP_EAHHH@Z@Z
165; FIXME: void theta(int(int,int)^ block)
166
Zachary Turner42e40ea2018-07-20 17:27:48 +0000167??2@YAPAXI@Z
Zachary Turnerd4bb30e2018-07-26 20:20:10 +0000168; CHECK: void * __cdecl operator new(unsigned int)
Zachary Turner42e40ea2018-07-20 17:27:48 +0000169
170??3@YAXPAX@Z
171; CHECK: void __cdecl operator delete(void *)
172
173??_U@YAPAXI@Z
Zachary Turnerd4bb30e2018-07-26 20:20:10 +0000174; CHECK: void * __cdecl operator new[](unsigned int)
Zachary Turner42e40ea2018-07-20 17:27:48 +0000175
176??_V@YAXPAX@Z
177; CHECK: void __cdecl operator delete[](void *)
178
179?color1@@3PANA
180; CHECK: double *color1
181
182?color2@@3QBNB
183; CHECK: double const *const color2
184
Zachary Turneraddd2702018-08-14 18:54:28 +0000185; undname prints `double const (* color3)[3]`, but this is a bug in undname.
186?color3@@3QAY02$$CBNA
187; CHECK: double const (*const color3)[3]
Zachary Turner42e40ea2018-07-20 17:27:48 +0000188
Zachary Turneraddd2702018-08-14 18:54:28 +0000189; undname prints `double const (* color4)[3]`, but this is a bug in undname.
190?color4@@3QAY02$$CBNA
191; CHECK: double const (*const color4)[3]
Zachary Turner42e40ea2018-07-20 17:27:48 +0000192
Zachary Turnerd4bb30e2018-07-26 20:20:10 +0000193?memptr1@@3RESB@@HES1@
194; CHECK: int volatile B::*volatile memptr1
Zachary Turner42e40ea2018-07-20 17:27:48 +0000195
Zachary Turnerd4bb30e2018-07-26 20:20:10 +0000196?memptr2@@3PESB@@HES1@
197; CHECK: int volatile B::*memptr2
Zachary Turner42e40ea2018-07-20 17:27:48 +0000198
Zachary Turnerd4bb30e2018-07-26 20:20:10 +0000199?memptr3@@3REQB@@HEQ1@
200; CHECK: int B::*volatile memptr3
Zachary Turner42e40ea2018-07-20 17:27:48 +0000201
Zachary Turnerd4bb30e2018-07-26 20:20:10 +0000202?funmemptr1@@3RESB@@R6AHXZES1@
Zachary Turnerc2403ba2018-07-26 20:33:48 +0000203; CHECK: int (__cdecl *volatile B::*volatile funmemptr1)(void)
Zachary Turner42e40ea2018-07-20 17:27:48 +0000204
Zachary Turnerd4bb30e2018-07-26 20:20:10 +0000205?funmemptr2@@3PESB@@R6AHXZES1@
Zachary Turnerc2403ba2018-07-26 20:33:48 +0000206; CHECK: int (__cdecl *volatile B::*funmemptr2)(void)
Zachary Turner42e40ea2018-07-20 17:27:48 +0000207
Zachary Turnerd4bb30e2018-07-26 20:20:10 +0000208?funmemptr3@@3REQB@@P6AHXZEQ1@
Zachary Turnerc2403ba2018-07-26 20:33:48 +0000209; CHECK: int (__cdecl *B::*volatile funmemptr3)(void)
Zachary Turner42e40ea2018-07-20 17:27:48 +0000210
Zachary Turnerd4bb30e2018-07-26 20:20:10 +0000211?memptrtofun1@@3R8B@@EAAXXZEQ1@
Zachary Turnerc2403ba2018-07-26 20:33:48 +0000212; CHECK: void (__cdecl B::*volatile memptrtofun1)(void)
Zachary Turner42e40ea2018-07-20 17:27:48 +0000213
Zachary Turnerd4bb30e2018-07-26 20:20:10 +0000214?memptrtofun2@@3P8B@@EAAXXZEQ1@
Zachary Turnerc2403ba2018-07-26 20:33:48 +0000215; CHECK: void (__cdecl B::*memptrtofun2)(void)
Zachary Turner42e40ea2018-07-20 17:27:48 +0000216
Zachary Turnerd4bb30e2018-07-26 20:20:10 +0000217?memptrtofun3@@3P8B@@EAAXXZEQ1@
Zachary Turnerc2403ba2018-07-26 20:33:48 +0000218; CHECK: void (__cdecl B::*memptrtofun3)(void)
Zachary Turner42e40ea2018-07-20 17:27:48 +0000219
Zachary Turnerd4bb30e2018-07-26 20:20:10 +0000220?memptrtofun4@@3R8B@@EAAHXZEQ1@
Zachary Turnerc2403ba2018-07-26 20:33:48 +0000221; CHECK: int (__cdecl B::*volatile memptrtofun4)(void)
Zachary Turner42e40ea2018-07-20 17:27:48 +0000222
Zachary Turnerd4bb30e2018-07-26 20:20:10 +0000223?memptrtofun5@@3P8B@@EAA?CHXZEQ1@
Zachary Turnerc2403ba2018-07-26 20:33:48 +0000224; CHECK: int volatile (__cdecl B::*memptrtofun5)(void)
Zachary Turner42e40ea2018-07-20 17:27:48 +0000225
Zachary Turnerd4bb30e2018-07-26 20:20:10 +0000226?memptrtofun6@@3P8B@@EAA?BHXZEQ1@
Zachary Turnerc2403ba2018-07-26 20:33:48 +0000227; CHECK: int const (__cdecl B::*memptrtofun6)(void)
Zachary Turner42e40ea2018-07-20 17:27:48 +0000228
Zachary Turnerd4bb30e2018-07-26 20:20:10 +0000229?memptrtofun7@@3R8B@@EAAP6AHXZXZEQ1@
Zachary Turnerc2403ba2018-07-26 20:33:48 +0000230; CHECK: int (__cdecl * (__cdecl B::*volatile memptrtofun7)(void))(void)
Zachary Turner42e40ea2018-07-20 17:27:48 +0000231
Zachary Turnerd4bb30e2018-07-26 20:20:10 +0000232?memptrtofun8@@3P8B@@EAAR6AHXZXZEQ1@
Zachary Turnerc2403ba2018-07-26 20:33:48 +0000233; CHECK: int (__cdecl *volatile (__cdecl B::*memptrtofun8)(void))(void)
Zachary Turner42e40ea2018-07-20 17:27:48 +0000234
Zachary Turnerd4bb30e2018-07-26 20:20:10 +0000235?memptrtofun9@@3P8B@@EAAQ6AHXZXZEQ1@
Zachary Turnerc2403ba2018-07-26 20:33:48 +0000236; CHECK: int (__cdecl *const (__cdecl B::*memptrtofun9)(void))(void)
Zachary Turner42e40ea2018-07-20 17:27:48 +0000237
238
239?fooE@@YA?AW4E@@XZ
240; CHECK: enum E __cdecl fooE(void)
241
242?fooE@@YA?AW4E@@XZ
243; CHECK: enum E __cdecl fooE(void)
244
245?fooX@@YA?AVX@@XZ
246; CHECK: class X __cdecl fooX(void)
247
248?fooX@@YA?AVX@@XZ
249; CHECK: class X __cdecl fooX(void)
250
251?s0@PR13182@@3PADA
252; CHECK: char *PR13182::s0
253
254?s1@PR13182@@3PADA
255; CHECK: char *PR13182::s1
256
257?s2@PR13182@@3QBDB
258; CHECK: char const *const PR13182::s2
259
260?s3@PR13182@@3QBDB
261; CHECK: char const *const PR13182::s3
262
263?s4@PR13182@@3RCDC
264; CHECK: char volatile *volatile PR13182::s4
265
266?s5@PR13182@@3SDDD
267; CHECK: char const volatile *const volatile PR13182::s5
268
269; undname adds an extra const in here, but it seems like their bug.
270?s6@PR13182@@3PBQBDB
271; CHECK: char const *const *PR13182::s6
272
Zachary Turnercffbbb12018-08-10 21:09:05 +0000273?local@?1??extern_c_func@@9@4HA
274; CHECK: int `extern "C" extern_c_func'::`2'::local
Zachary Turner42e40ea2018-07-20 17:27:48 +0000275
Zachary Turnercffbbb12018-08-10 21:09:05 +0000276?local@?1??extern_c_func@@9@4HA
277; CHECK: int `extern "C" extern_c_func'::`2'::local
Zachary Turner3a628862018-07-26 20:20:29 +0000278
Zachary Turnerc84f7e82018-07-30 03:12:34 +0000279?v@?1??f@@YAHXZ@4U<unnamed-type-v>@?1??1@YAHXZ@A
280; CHECK: struct `int __cdecl f(void)'::`2'::<unnamed-type-v> `int __cdecl f(void)'::`2'::v
Zachary Turner3a628862018-07-26 20:20:29 +0000281
Zachary Turnerc84f7e82018-07-30 03:12:34 +0000282?v@?1???$f@H@@YAHXZ@4U<unnamed-type-v>@?1???$f@H@@YAHXZ@A
283; CHECK: struct `int __cdecl f<int>(void)'::`2'::<unnamed-type-v> `int __cdecl f<int>(void)'::`2'::v
Zachary Turner42e40ea2018-07-20 17:27:48 +0000284
285??2OverloadedNewDelete@@SAPAXI@Z
Zachary Turnerd4bb30e2018-07-26 20:20:10 +0000286; CHECK: static void * __cdecl OverloadedNewDelete::operator new(unsigned int)
Zachary Turner42e40ea2018-07-20 17:27:48 +0000287
288
289??_UOverloadedNewDelete@@SAPAXI@Z
Zachary Turnerd4bb30e2018-07-26 20:20:10 +0000290; CHECK: static void * __cdecl OverloadedNewDelete::operator new[](unsigned int)
Zachary Turner42e40ea2018-07-20 17:27:48 +0000291
292??3OverloadedNewDelete@@SAXPAX@Z
293; CHECK: static void __cdecl OverloadedNewDelete::operator delete(void *)
294
295
296??_VOverloadedNewDelete@@SAXPAX@Z
297; CHECK: static void __cdecl OverloadedNewDelete::operator delete[](void *)
298
299??HOverloadedNewDelete@@QAEHH@Z
300; CHECK: int __thiscall OverloadedNewDelete::operator+(int)
301
302??2OverloadedNewDelete@@SAPEAX_K@Z
Zachary Turnerd4bb30e2018-07-26 20:20:10 +0000303; CHECK: static void * __cdecl OverloadedNewDelete::operator new(unsigned __int64)
Zachary Turner42e40ea2018-07-20 17:27:48 +0000304
305??_UOverloadedNewDelete@@SAPEAX_K@Z
Zachary Turnerd4bb30e2018-07-26 20:20:10 +0000306; CHECK: static void * __cdecl OverloadedNewDelete::operator new[](unsigned __int64)
Zachary Turner42e40ea2018-07-20 17:27:48 +0000307
308??3OverloadedNewDelete@@SAXPEAX@Z
309; CHECK: static void __cdecl OverloadedNewDelete::operator delete(void *)
310
311
312??_VOverloadedNewDelete@@SAXPEAX@Z
313; CHECK: static void __cdecl OverloadedNewDelete::operator delete[](void *)
314
315??HOverloadedNewDelete@@QEAAHH@Z
316; CHECK: int __cdecl OverloadedNewDelete::operator+(int)
317
318
319??2TypedefNewDelete@@SAPAXI@Z
Zachary Turnerd4bb30e2018-07-26 20:20:10 +0000320; CHECK: static void * __cdecl TypedefNewDelete::operator new(unsigned int)
Zachary Turner42e40ea2018-07-20 17:27:48 +0000321
322
323??_UTypedefNewDelete@@SAPAXI@Z
Zachary Turnerd4bb30e2018-07-26 20:20:10 +0000324; CHECK: static void * __cdecl TypedefNewDelete::operator new[](unsigned int)
Zachary Turner42e40ea2018-07-20 17:27:48 +0000325
326??3TypedefNewDelete@@SAXPAX@Z
327; CHECK: static void __cdecl TypedefNewDelete::operator delete(void *)
328
329??_VTypedefNewDelete@@SAXPAX@Z
330; CHECK: static void __cdecl TypedefNewDelete::operator delete[](void *)
331
332?vector_func@@YQXXZ
333; CHECK: void __vectorcall vector_func(void)
334
Zachary Turnercffbbb12018-08-10 21:09:05 +0000335??$fn_tmpl@$1?extern_c_func@@YAXXZ@@YAXXZ
336; CHECK: void __cdecl fn_tmpl<&void __cdecl extern_c_func(void)>(void)
Zachary Turner42e40ea2018-07-20 17:27:48 +0000337
Zachary Turnercffbbb12018-08-10 21:09:05 +0000338?overloaded_fn@@$$J0YAXXZ
339; CHECK: extern "C" void __cdecl overloaded_fn(void)
Zachary Turner42e40ea2018-07-20 17:27:48 +0000340
Zachary Turnerc84f7e82018-07-30 03:12:34 +0000341?f@UnnamedType@@YAXQAPAU<unnamed-type-T1>@S@1@@Z
342; CHECK: void __cdecl UnnamedType::f(struct UnnamedType::S::<unnamed-type-T1> **const)
Zachary Turner42e40ea2018-07-20 17:27:48 +0000343
344?f@UnnamedType@@YAXUT2@S@1@@Z
345; CHECK: void __cdecl UnnamedType::f(struct UnnamedType::S::T2)
346
347?f@UnnamedType@@YAXPAUT4@S@1@@Z
348; CHECK: void __cdecl UnnamedType::f(struct UnnamedType::S::T4 *)
349
350?f@UnnamedType@@YAXUT4@S@1@@Z
351; CHECK: void __cdecl UnnamedType::f(struct UnnamedType::S::T4)
352
353?f@UnnamedType@@YAXUT5@S@1@@Z
354; CHECK: void __cdecl UnnamedType::f(struct UnnamedType::S::T5)
355
356?f@UnnamedType@@YAXUT2@S@1@@Z
357; CHECK: void __cdecl UnnamedType::f(struct UnnamedType::S::T2)
358
359?f@UnnamedType@@YAXUT4@S@1@@Z
360; CHECK: void __cdecl UnnamedType::f(struct UnnamedType::S::T4)
361
362?f@UnnamedType@@YAXUT5@S@1@@Z
363; CHECK: void __cdecl UnnamedType::f(struct UnnamedType::S::T5)
364
Zachary Turner3a628862018-07-26 20:20:29 +0000365
366; ?foo@PassObjectSize@@YAHQAHW4__pass_object_size0@__clang@@@Z
367; FIXME: int foo(int *const i __attribute__((pass_object_size(0))));
368; ?bar@PassObjectSize@@YAHQAHW4__pass_object_size1@__clang@@@Z
369; FIXME: int bar(int *const i __attribute__((pass_object_size(1))));
370; ?qux@PassObjectSize@@YAHQAHW4__pass_object_size1@__clang@@0W4__pass_object_size0@3@@Z
371; FIXME: int qux(int *const i __attribute__((pass_object_size(1))), int *const j __attribute__((pass_object_size(0))));
372; ?zot@PassObjectSize@@YAHQAHW4__pass_object_size1@__clang@@01@Z
373; FIXME: int zot(int *const i __attribute__((pass_object_size(1))), int *const j __attribute__((pass_object_size(1))));
374
375
376
Zachary Turner42e40ea2018-07-20 17:27:48 +0000377?f@Atomic@@YAXU?$_Atomic@H@__clang@@@Z
378; CHECK: void __cdecl Atomic::f(struct __clang::_Atomic<int>)
379
380?f@Complex@@YAXU?$_Complex@H@__clang@@@Z
381; CHECK: void __cdecl Complex::f(struct __clang::_Complex<int>)
382
383?f@Float16@@YAXU_Float16@__clang@@@Z
384; CHECK: void __cdecl Float16::f(struct __clang::_Float16)
385
386
387??0?$L@H@NS@@QEAA@XZ
388; CHECK: __cdecl NS::L<int>::L<int>(void)
389
390??0Bar@Foo@@QEAA@XZ
391; CHECK: __cdecl Foo::Bar::Bar(void)
392
393??0?$L@V?$H@PAH@PR26029@@@PR26029@@QAE@XZ
394; CHECK: __thiscall PR26029::L<class PR26029::H<int *>>::L<class PR26029::H<int *>>(void)
Zachary Turnerda9501c2018-08-21 21:23:49 +0000395
396; ??$emplace_back@ABH@?$vector@HV?$allocator@H@std@@@std@@QAE?A?<decltype-auto>@@ABH@Z
397<decltype-auto> __thiscall std::vector<int, class std::allocator<int>>::emplace_back<int const &>(int const &)