// -*- C++ -*- //===----------------------------------------------------------------------===// // // The LLVM Compiler Infrastructure // // This file is dual licensed under the MIT and the University of Illinois Open // Source Licenses. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// #include "demangle.h" #include #include struct MyType {}; template struct ArgumentListID {}; int main() { struct { const char* raw; const char* expect; } TestCases[] = { {typeid(int).name(), "int"}, {typeid(MyType).name(), "MyType"}, {typeid(ArgumentListID).name(), "ArgumentListID"} }; const size_t size = sizeof(TestCases) / sizeof(TestCases[0]); for (size_t i=0; i < size; ++i) { const char* raw = TestCases[i].raw; const char* expect = TestCases[i].expect; #ifdef TEST_HAS_NO_DEMANGLE assert(demangle(raw) == raw); ((void)expect); #else assert(demangle(raw) == expect); #endif } }