diff --git a/src/lib.rs b/src/lib.rs index 0707dad..b886fdd 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1310,7 +1310,7 @@ mod tests { // "operator ctor" = ?0 #[test] - fn wine_tests() { + fn other_tests() { let expect = |input, reference| { expect_with_flags(input, reference, ::DemangleFlags::LotsOfWhitespace); }; @@ -1322,366 +1322,12 @@ mod tests { "int g(int const (* const)[64])", ); - - // In the profiler I'd like to see "mozilla::gfx::FilterNodeSoftware::GetInputDataSourceSurface(unsigned int, const mozilla::gfx::IntRectTyped&, mozilla::gfx::FilterNodeSoftware::FormatHint, mozilla::gfx::ConvolveMatrixEdgeMode, const mozilla::gfx::IntRectTyped*)"); - // expect("?GetInputDataSourceSurface@FilterNodeSoftware@gfx@mozilla@@IAE?AU?$already_AddRefed@VDataSourceSurface@gfx@mozilla@@@@IABU?$IntRectTyped@UUnknownUnits@gfx@mozilla@@@23@W4FormatHint@123@W4ConvolveMatrixEdgeMode@23@PBU523@@Z", - // "struct already_AddRefed mozilla::gfx::FilterNodeSoftware::GetInputDataSourceSurface(unsigned int,struct mozilla::gfx::IntRectTyped const &,enum mozilla::gfx::FilterNodeSoftware::FormatHint,enum mozilla::gfx::ConvolveMatrixEdgeMode,struct mozilla::gfx::IntRectTyped const *)"); expect( "??0Klass@std@@AEAA@AEBV01@@Z", "std::Klass::Klass(class std::Klass const &)", ); expect("??0?$Klass@V?$Mass@_N@@@std@@QEAA@AEBV01@@Z", "std::Klass >::Klass >(class std::Klass > const &)"); - expect("??$ccccc@PAVaaa@@@bar@bb@foo@@DGPAV0@PAV0@PAVee@@IPAPAVaaa@@1@Z", - "class bar *foo::bb::bar::ccccc(class bar *,class ee *,unsigned int,class aaa * *,class ee *)"); - expect( - "??0?$Klass@_N@std@@QEAA@AEBV01@@Z", - "std::Klass::Klass(class std::Klass const &)", - ); - expect( - "??0bad_alloc@std@@QAE@ABV01@@Z", - "std::bad_alloc::bad_alloc(class std::bad_alloc const &)", - ); - expect( - "??0bad_alloc@std@@QAE@PBD@Z", - "std::bad_alloc::bad_alloc(char const *)", - ); - expect( - "??0bad_cast@@AAE@PBQBD@Z", - "bad_cast::bad_cast(char const * const *)", - ); - expect( - "??0bad_cast@@QAE@ABQBD@Z", - "bad_cast::bad_cast(char const * const &)", - ); - expect( - "??0bad_cast@@QAE@ABV0@@Z", - "bad_cast::bad_cast(class bad_cast const &)", - ); - expect( - "??0bad_exception@std@@QAE@ABV01@@Z", - "std::bad_exception::bad_exception(class std::bad_exception const &)", - ); - expect( - "??0bad_exception@std@@QAE@PBD@Z", - "std::bad_exception::bad_exception(char const *)", - ); - expect( - "??0bad_exception@std@@QAE@PBD@Z", - "std::bad_exception::bad_exception(char const *)", - ); - expect("??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAE@ABV01@@Z", - "std::basic_filebuf >::basic_filebuf >(class std::basic_filebuf > const &)"); - expect("??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAE@ABV01@@Z", - "std::basic_filebuf >::basic_filebuf >(class std::basic_filebuf > const &)"); - expect("??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAE@PAU_iobuf@@@Z", - "std::basic_filebuf >::basic_filebuf >(struct _iobuf *)"); - expect("??0?$basic_filebuf@DU?$char_traits@D@std@@@std@@QAE@W4_Uninitialized@1@@Z", - "std::basic_filebuf >::basic_filebuf >(enum std::_Uninitialized)"); - expect("??0?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAE@ABV01@@Z", - "std::basic_filebuf >::basic_filebuf >(class std::basic_filebuf > const &)"); - expect("??0?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAE@PAU_iobuf@@@Z", - "std::basic_filebuf >::basic_filebuf >(struct _iobuf *)"); - expect("??0?$basic_filebuf@GU?$char_traits@G@std@@@std@@QAE@W4_Uninitialized@1@@Z", - "std::basic_filebuf >::basic_filebuf >(enum std::_Uninitialized)"); - expect("??0?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z", - "std::basic_stringstream,class std::allocator >::basic_stringstream,class std::allocator >(class std::basic_stringstream,class std::allocator > const &)"); - - expect("??0?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@H@Z", - "std::basic_stringstream,class std::allocator >::basic_stringstream,class std::allocator >(class std::basic_string,class std::allocator > const &,int)"); - - expect("??0?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z", - "std::basic_stringstream,class std::allocator >::basic_stringstream,class std::allocator >(int)"); - expect("??0?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@ABV01@@Z", - "std::basic_stringstream,class std::allocator >::basic_stringstream,class std::allocator >(class std::basic_stringstream,class std::allocator > const &)"); - expect("??0?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@ABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@1@H@Z", - "std::basic_stringstream,class std::allocator >::basic_stringstream,class std::allocator >(class std::basic_string,class std::allocator > const &,int)"); - expect("??0?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@H@Z", - "std::basic_stringstream,class std::allocator >::basic_stringstream,class std::allocator >(int)"); - expect("??0?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QAE@ABV_Locinfo@1@I@Z", - "std::num_get > >::num_get > >(class std::_Locinfo const &,unsigned int)"); - expect("??0?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@QAE@I@Z", - "std::num_get > >::num_get > >(unsigned int)"); - expect("??0?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QAE@ABV_Locinfo@1@I@Z", - "std::num_get > >::num_get > >(class std::_Locinfo const &,unsigned int)"); - expect("??0?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@QAE@I@Z", - "std::num_get > >::num_get > >(unsigned int)"); - expect( - "??0streambuf@@QAE@ABV0@@Z", - "streambuf::streambuf(class streambuf const &)", - ); - expect( - "??0strstreambuf@@QAE@ABV0@@Z", - "strstreambuf::strstreambuf(class strstreambuf const &)", - ); - expect( - "??0strstreambuf@@QAE@H@Z", - "strstreambuf::strstreambuf(int)", - ); - expect( - "??0strstreambuf@@QAE@P6APAXJ@ZP6AXPAX@Z@Z", - "strstreambuf::strstreambuf(void * (*)(long),void (*)(void *))", - ); - expect( - "??0strstreambuf@@QAE@PADH0@Z", - "strstreambuf::strstreambuf(char *,int,char *)", - ); - expect( - "??0strstreambuf@@QAE@PAEH0@Z", - "strstreambuf::strstreambuf(unsigned char *,int,unsigned char *)", - ); - expect( - "??0strstreambuf@@QAE@XZ", - "strstreambuf::strstreambuf(void)", - ); - expect( - "??1__non_rtti_object@std@@UAE@XZ", - "std::__non_rtti_object::~__non_rtti_object(void)", - ); - expect( - "??1__non_rtti_object@@UAE@XZ", - "__non_rtti_object::~__non_rtti_object(void)", - ); - expect("??1?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@UAE@XZ", - "std::num_get > >::~num_get > >(void)"); - expect("??1?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@UAE@XZ", - "std::num_get > >::~num_get > >(void)"); - expect("??4istream_withassign@@QAEAAV0@ABV0@@Z", - "class istream_withassign & istream_withassign::operator=(class istream_withassign const &)"); - expect( - "??4istream_withassign@@QAEAAVistream@@ABV1@@Z", - "class istream & istream_withassign::operator=(class istream const &)", - ); - expect( - "??4istream_withassign@@QAEAAVistream@@PAVstreambuf@@@Z", - "class istream & istream_withassign::operator=(class streambuf *)", - ); - expect("??5std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAC@Z", - "class std::basic_istream > & std::operator>>(class std::basic_istream > &,signed char &)"); - expect("??5std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAD@Z", - "class std::basic_istream > & std::operator>>(class std::basic_istream > &,char &)"); - expect("??5std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAE@Z", - "class std::basic_istream > & std::operator>>(class std::basic_istream > &,unsigned char &)"); - expect("??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@P6AAAVios_base@1@AAV21@@Z@Z", - "class std::basic_ostream > & std::basic_ostream >::operator<<(class std::ios_base & (*)(class std::ios_base &))"); - expect("??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@PAV?$basic_streambuf@GU?$char_traits@G@std@@@1@@Z", - "class std::basic_ostream > & std::basic_ostream >::operator<<(class std::basic_streambuf > *)"); - expect("??6?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEAAV01@PBX@Z", - "class std::basic_ostream > & std::basic_ostream >::operator<<(void const *)"); - - expect("??_8?$basic_fstream@DU?$char_traits@D@std@@@std@@7B?$basic_ostream@DU?$char_traits@D@std@@@1@@", - "const std::basic_fstream >::`vbtable'{for `std::basic_ostream >'}"); - - expect("??_8?$basic_fstream@GU?$char_traits@G@std@@@std@@7B?$basic_istream@GU?$char_traits@G@std@@@1@@", - "const std::basic_fstream >::`vbtable'{for `std::basic_istream >'}"); - expect("??_8?$basic_fstream@GU?$char_traits@G@std@@@std@@7B?$basic_ostream@GU?$char_traits@G@std@@@1@@", - "const std::basic_fstream >::`vbtable'{for `std::basic_ostream >'}"); - expect("??9std@@YA_NPBDABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z", - "bool std::operator!=(char const *,class std::basic_string,class std::allocator > const &)"); - expect("??9std@@YA_NPBGABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@0@@Z", - "bool std::operator!=(unsigned short const *,class std::basic_string,class std::allocator > const &)"); - expect("??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAADI@Z", - "char & std::basic_string,class std::allocator >::operator[](unsigned int)"); - expect("??A?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEABDI@Z", - "char const & std::basic_string,class std::allocator >::operator[](unsigned int)const "); - expect("??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEAAGI@Z", - "unsigned short & std::basic_string,class std::allocator >::operator[](unsigned int)"); - expect("??A?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEABGI@Z", - "unsigned short const & std::basic_string,class std::allocator >::operator[](unsigned int)const "); - expect( - "?abs@std@@YAMABV?$complex@M@1@@Z", - "float std::abs(class std::complex const &)", - ); - expect( - "?abs@std@@YANABV?$complex@N@1@@Z", - "double std::abs(class std::complex const &)", - ); - expect( - "?abs@std@@YAOABV?$complex@O@1@@Z", - "long double std::abs(class std::complex const &)", - ); - expect( - "?cin@std@@3V?$basic_istream@DU?$char_traits@D@std@@@1@A", - "class std::basic_istream > std::cin", - ); - expect("?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAG@Z", - "class std::istreambuf_iterator > std::num_get > >::do_get(class std::istreambuf_iterator >,class std::istreambuf_iterator >,class std::ios_base &,int &,unsigned short &)const "); - expect("?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAI@Z", - "class std::istreambuf_iterator > std::num_get > >::do_get(class std::istreambuf_iterator >,class std::istreambuf_iterator >,class std::ios_base &,int &,unsigned int &)const "); - expect("?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAJ@Z", - "class std::istreambuf_iterator > std::num_get > >::do_get(class std::istreambuf_iterator >,class std::istreambuf_iterator >,class std::ios_base &,int &,long &)const "); - expect("?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAK@Z", - "class std::istreambuf_iterator > std::num_get > >::do_get(class std::istreambuf_iterator >,class std::istreambuf_iterator >,class std::ios_base &,int &,unsigned long &)const "); - expect("?do_get@?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@MBE?AV?$istreambuf_iterator@DU?$char_traits@D@std@@@2@V32@0AAVios_base@2@AAHAAM@Z", - "class std::istreambuf_iterator > std::num_get > >::do_get(class std::istreambuf_iterator >,class std::istreambuf_iterator >,class std::ios_base &,int &,float &)const "); - - expect( - "?_query_new_handler@@YAP6AHI@ZXZ", - "int (*_query_new_handler(void))(unsigned int)", - ); - expect("?register_callback@ios_base@std@@QAEXP6AXW4event@12@AAV12@H@ZH@Z", - "void std::ios_base::register_callback(void (*)(enum std::ios_base::event,class std::ios_base &,int),int)"); - expect("?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@JW4seekdir@ios_base@2@@Z", - "class std::basic_istream > & std::basic_istream >::seekg(long,enum std::ios_base::seekdir)"); - expect("?seekg@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@V?$fpos@H@2@@Z", - "class std::basic_istream > & std::basic_istream >::seekg(class std::fpos)"); - expect("?seekg@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@JW4seekdir@ios_base@2@@Z", - "class std::basic_istream > & std::basic_istream >::seekg(long,enum std::ios_base::seekdir)"); - expect("?seekg@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEAAV12@V?$fpos@H@2@@Z", - "class std::basic_istream > & std::basic_istream >::seekg(class std::fpos)"); - expect("?seekoff@?$basic_filebuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@JW4seekdir@ios_base@2@H@Z", - "class std::fpos std::basic_filebuf >::seekoff(long,enum std::ios_base::seekdir,int)"); - expect("?seekoff@?$basic_filebuf@GU?$char_traits@G@std@@@std@@MAE?AV?$fpos@H@2@JW4seekdir@ios_base@2@H@Z", - "class std::fpos std::basic_filebuf >::seekoff(long,enum std::ios_base::seekdir,int)"); - expect( - "?set_new_handler@@YAP6AXXZP6AXXZ@Z", - "void (*set_new_handler(void (*)(void)))(void)", - ); - expect("?str@?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z", - "void std::basic_istringstream,class std::allocator >::str(class std::basic_string,class std::allocator > const &)"); - expect("?str@?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ", - "class std::basic_string,class std::allocator > std::basic_istringstream,class std::allocator >::str(void)const "); - expect("?str@?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@@Z", - "void std::basic_istringstream,class std::allocator >::str(class std::basic_string,class std::allocator > const &)"); - expect("?str@?$basic_istringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ", - "class std::basic_string,class std::allocator > std::basic_istringstream,class std::allocator >::str(void)const "); - expect("?str@?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z", - "void std::basic_ostringstream,class std::allocator >::str(class std::basic_string,class std::allocator > const &)"); - expect("?str@?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ", - "class std::basic_string,class std::allocator > std::basic_ostringstream,class std::allocator >::str(void)const "); - expect("?str@?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@@Z", - "void std::basic_ostringstream,class std::allocator >::str(class std::basic_string,class std::allocator > const &)"); - expect("?str@?$basic_ostringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ", - "class std::basic_string,class std::allocator > std::basic_ostringstream,class std::allocator >::str(void)const "); - expect("?str@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z", - "void std::basic_stringbuf,class std::allocator >::str(class std::basic_string,class std::allocator > const &)"); - expect("?str@?$basic_stringbuf@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ", - "class std::basic_string,class std::allocator > std::basic_stringbuf,class std::allocator >::str(void)const "); - expect("?str@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@@Z", - "void std::basic_stringbuf,class std::allocator >::str(class std::basic_string,class std::allocator > const &)"); - expect("?str@?$basic_stringbuf@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ", - "class std::basic_string,class std::allocator > std::basic_stringbuf,class std::allocator >::str(void)const "); - expect("?str@?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z", - "void std::basic_stringstream,class std::allocator >::str(class std::basic_string,class std::allocator > const &)"); - expect("?str@?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ", - "class std::basic_string,class std::allocator > std::basic_stringstream,class std::allocator >::str(void)const "); - expect("?str@?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEXABV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@@Z", - "void std::basic_stringstream,class std::allocator >::str(class std::basic_string,class std::allocator > const &)"); - expect("?str@?$basic_stringstream@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ", - "class std::basic_string,class std::allocator > std::basic_stringstream,class std::allocator >::str(void)const "); - expect("?_Sync@ios_base@std@@0_NA", "bool std::ios_base::_Sync"); - expect("??_U@YAPAXI@Z", "void * operator new[](unsigned int)"); - expect("??_V@YAXPAX@Z", "void operator delete[](void *)"); - expect("??X?$_Complex_base@M@std@@QAEAAV01@ABM@Z", - "class std::_Complex_base & std::_Complex_base::operator*=(float const &)"); - expect("??Xstd@@YAAAV?$complex@M@0@AAV10@ABV10@@Z", - "class std::complex & std::operator*=(class std::complex &,class std::complex const &)"); - expect("?aaa@@YAHAAUbbb@@@Z", "int aaa(struct bbb &)"); - expect("?aaa@@YAHBAUbbb@@@Z", "int aaa(struct bbb & volatile)"); - expect("?aaa@@YAHPAUbbb@@@Z", "int aaa(struct bbb *)"); - expect("?aaa@@YAHQAUbbb@@@Z", "int aaa(struct bbb * const)"); - expect("?aaa@@YAHRAUbbb@@@Z", "int aaa(struct bbb * volatile)"); - expect( - "?aaa@@YAHSAUbbb@@@Z", - "int aaa(struct bbb * const volatile)", - ); - // expect("??0aa.a@@QAE@XZ", "??0aa.a@@QAE@XZ"); // This should fail to demangle, probably because of the period. - expect("??0aa$_3a@@QAE@XZ", "aa$_3a::aa$_3a(void)"); - expect("??2?$aaa@AAUbbb@@AAUccc@@AAU2@@ddd@1eee@2@QAEHXZ", - "int eee::eee::ddd::ddd::aaa::operator new(void)"); - - expect("?pSW@@3P6GHKPAX0PAU_tagSTACKFRAME@@0P6GH0K0KPAK@ZP6GPAX0K@ZP6GK0K@ZP6GK00PAU_tagADDRESS@@@Z@ZA", - "int (*pSW)(unsigned long,void *,void *,struct _tagSTACKFRAME *,void *,int (*)(void *,unsigned long,void *,unsigned long,unsigned long *),void * (*)(void *,unsigned long),unsigned long (*)(void *,unsigned long),unsigned long (*)(void *,void *,struct _tagADDRESS *))"); - - expect("?$_aaa@Vbbb@@", "_aaa"); - expect( - "?$aaa@Vbbb@ccc@@Vddd@2@", - "aaa", - ); - expect( - "??0?$Foo@P6GHPAX0@Z@@QAE@PAD@Z", - "Foo::Foo(char *)", - ); - expect( - "??0?$Foo@P6GHPAX0@Z@@QAE@PAD@Z", - "Foo::Foo(char *)", - ); - expect( - "?Qux@Bar@@0PAP6AHPAV1@AAH1PAH@ZA", - "int (* *Bar::Qux)(class Bar *,int &,int &,int *)", - ); - // expect("?Qux@Bar@@0PAP6AHPAV1@AAH1PAH@ZA", "Bar::Qux"); // ??? - expect("?$AAA@$DBAB@", "AAA<`template-parameter257'>"); - expect("?$AAA@?C@", "AAA<`template-parameter-2'>"); - expect("?$AAA@PAUBBB@@", "AAA"); - expect("??$ccccc@PAVaaa@@@bar@bb@foo@@DGPAV0@PAV0@PAVee@@IPAPAVaaa@@1@Z", - "class bar *foo::bb::bar::ccccc(class bar *,class ee *,unsigned int,class aaa * *,class ee *)"); - - /* this isn't real c++ - expect( - "?f@T@@QAEHQCY1BE@BO@D@Z", - "int T::f(char (volatile * const)[20][30])", - ); - expect( - "?f@T@@QAEHQAY2BE@BO@CI@D@Z", - "int T::f(char (* const)[20][30][40])", - ); - expect( - "?f@T@@QAEHQAY1BE@BO@$$CBD@Z", - "int T::f(char const (* const)[20][30])", - );*/ - expect("??0?$Foo@U?$vector_c@H$00$01$0?1$0A@$0A@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@$0HPPPPPPP@@mpl@boost@@@@QAE@XZ", - "Foo >::Foo >(void)"); - expect( - "?swprintf@@YAHPAGIPBGZZ", - "int swprintf(unsigned short *,unsigned int,unsigned short const *,...)", - ); - expect( - "?vswprintf@@YAHPAGIPBGPAD@Z", - "int vswprintf(unsigned short *,unsigned int,unsigned short const *,char *)", - ); - expect( - "?vswprintf@@YAHPA_WIPB_WPAD@Z", - "int vswprintf(wchar_t *,unsigned int,wchar_t const *,char *)", - ); - expect( - "?swprintf@@YAHPA_WIPB_WZZ", - "int swprintf(wchar_t *,unsigned int,wchar_t const *,...)", - ); - expect("??Xstd@@YAAEAV?$complex@M@0@AEAV10@AEBV10@@Z", - "class std::complex & std::operator*=(class std::complex &,class std::complex const &)"); - expect( - "?_Doraise@bad_cast@std@@MEBAXXZ", - "void std::bad_cast::_Doraise(void)const ", - ); - expect("??$?DM@std@@YA?AV?$complex@M@0@ABMABV10@@Z", - "class std::complex std::operator*(float const &,class std::complex const &)"); - /*expect("?_R2@?BN@???$_Fabs@N@std@@YANAEBV?$complex@N@1@PEAH@Z@4NB", - "double const `double std::_Fabs(class std::complex const &,int *)'::`29'::_R2"); - expect( - "?vtordisp_thunk@std@@$4PPPPPPPM@3EAA_NXZ", - "[thunk]:bool std::vtordisp_thunk`vtordisp{4294967292,4}' (void)", - ); - expect( - "??_9CView@@$BBII@AE", - "[thunk]: CView::`vcall'{392,{flat}}' }'", - ); - expect("?_dispatch@_impl_Engine@SalomeApp@@$R4CE@BA@PPPPPPPM@7AE_NAAVomniCallHandle@@@Z", - "[thunk]:bool SalomeApp::_impl_Engine::_dispatch`vtordispex{36,16,4294967292,8}' (class omniCallHandle &)"); - expect( - "?_Doraise@bad_cast@std@@MEBAXXZ", - "void std::bad_cast::_Doraise(void) ", - );*/ - expect("??Xstd@@YAAEAV?$complex@M@0@AEAV10@AEBV10@@Z", - "class std::complex & std::operator*=(class std::complex &,class std::complex const &)"); - expect("??Xstd@@YAAEAV?$complex@M@0@AEAV10@AEBV10@@Z", - "class std::complex & std::operator*=(class std::complex &,class std::complex const &)"); - expect("??$run@XVTask_Render_Preview@@@QtConcurrent@@YA?AV?$QFuture@X@@PEAVTask_Render_Preview@@P82@EAAXXZ@Z", - "class QFuture QtConcurrent::run(class Task_Render_Preview *,void (Task_Render_Preview::*)(void))"); - expect( - "??_E?$TStrArray@$$BY0BAA@D$0BA@@@UAEPAXI@Z", - "void * TStrArray::`vector deleting destructor'(unsigned int)", - ); } #[test]