From f4c451953245d1b01b7c41cd833aaa8b0f9e63e1 Mon Sep 17 00:00:00 2001 From: Zachary Turner Date: Thu, 26 Jul 2018 20:20:29 +0000 Subject: [PATCH] Add missing tests from ms-mangle.cpp. None of these tests pass yet so they are commented out, but I'm adding them with a FIXME label so that they don't get lost when copying tests over from clang's mangling tests. Currently these tests are all commented out. llvm-svn: 338066 --- llvm/test/Demangle/ms-mangle.test | 41 ++++++++++++++++++++++++++++++++++----- 1 file changed, 36 insertions(+), 5 deletions(-) diff --git a/llvm/test/Demangle/ms-mangle.test b/llvm/test/Demangle/ms-mangle.test index d6ec36c..3925a1b 100644 --- a/llvm/test/Demangle/ms-mangle.test +++ b/llvm/test/Demangle/ms-mangle.test @@ -12,6 +12,10 @@ ?anonymous@?A@N@@3HA ; CHECK: int N::`anonymous namespace'::anonymous +; FIXME: Reference Temporaries +; ?$RT1@NeedsReferenceTemporary@@3ABHB +; ?$RT1@NeedsReferenceTemporary@@3AEBHEB + ?_c@@YAHXZ ; CHECK: int __cdecl _c(void) @@ -149,6 +153,13 @@ ?zeta@@YAXP6AHHH@Z@Z ; CHECK: void __cdecl zeta(int __cdecl (*)(int, int)) +; FIXME: We don't support blocks yet. + +; ?eta@@YAXP_EAHHH@Z@Z +; FIXME: void eta(int (^)(int, int)) +; ?theta@@YAXP_EAHHH@Z@Z +; FIXME: void theta(int(int,int)^ block) + ??2@YAPAXI@Z ; CHECK: void * __cdecl operator new(unsigned int) @@ -254,12 +265,18 @@ ?s6@PR13182@@3PBQBDB ; CHECK: char const *const *PR13182::s6 -; FIXME-EXTERNC: We don't properly support static locals in extern c functions yet. +; FIXME: We don't properly support static locals in functions yet. ; ?local@?1??extern_c_func@@9@4HA -; FIXME-EXTERNC: int `extern_c_func'::`2'::local +; FIXME: int `extern_c_func'::`2'::local ; ?local@?1??extern_c_func@@9@4HA -; FIXME-EXTERNC: int `extern_c_func'::`2'::local +; FIXME: int `extern_c_func'::`2'::local + +; ?v@?1??f@@YAHXZ@4U@?1??1@YAHXZ@A +; FIXME: struct `int __cdecl f(void)'::`2':: `int __cdecl f(void)'::`2'::v + +; ?v@?1???$f@H@@YAHXZ@4U@?1???$f@H@@YAHXZ@A +; FIXME: struct `int __cdecl f(void)'::`2':: `int __cdecl f(void)'::`2'::v ??2OverloadedNewDelete@@SAPAXI@Z ; CHECK: static void * __cdecl OverloadedNewDelete::operator new(unsigned int) @@ -311,13 +328,15 @@ ?vector_func@@YQXXZ ; CHECK: void __vectorcall vector_func(void) -; FIXME-EXTERNC: We don't support extern C funcs currently. +; FIXME: We don't support extern C funcs currently. ; ??$fn_tmpl@$1?extern_c_func@@YAXXZ@@YAXXZ -; FIXME-EXTERNC: void __cdecl fn_tmpl<&void __cdecl extern_c_func(void)>(void) +; FIXME: void __cdecl fn_tmpl<&void __cdecl extern_c_func(void)>(void) ; ?overloaded_fn@@$$J0YAXXZ ; FIXME-EXTERNC: extern \"C\" void __cdecl overloaded_fn(void) +; ?f@UnnamedType@@YAXQAPAU@S@1@@Z +; FIXME: void __cdecl UnnamedType::f(struct UnnamedType::S:: ** const) ?f@UnnamedType@@YAXUT2@S@1@@Z ; CHECK: void __cdecl UnnamedType::f(struct UnnamedType::S::T2) @@ -340,6 +359,18 @@ ?f@UnnamedType@@YAXUT5@S@1@@Z ; CHECK: void __cdecl UnnamedType::f(struct UnnamedType::S::T5) + +; ?foo@PassObjectSize@@YAHQAHW4__pass_object_size0@__clang@@@Z +; FIXME: int foo(int *const i __attribute__((pass_object_size(0)))); +; ?bar@PassObjectSize@@YAHQAHW4__pass_object_size1@__clang@@@Z +; FIXME: int bar(int *const i __attribute__((pass_object_size(1)))); +; ?qux@PassObjectSize@@YAHQAHW4__pass_object_size1@__clang@@0W4__pass_object_size0@3@@Z +; FIXME: int qux(int *const i __attribute__((pass_object_size(1))), int *const j __attribute__((pass_object_size(0)))); +; ?zot@PassObjectSize@@YAHQAHW4__pass_object_size1@__clang@@01@Z +; FIXME: int zot(int *const i __attribute__((pass_object_size(1))), int *const j __attribute__((pass_object_size(1)))); + + + ?f@Atomic@@YAXU?$_Atomic@H@__clang@@@Z ; CHECK: void __cdecl Atomic::f(struct __clang::_Atomic) -- 2.7.4