mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
The new demangler is in the "swift/SIL/Demangle.{h|cpp}" files, and in the swift::Demangle namespace, which has two public entry points:
std::string demangleSymbol(llvm::StringRef mangled);
std::string demangleType(llvm::StringRef mangled);
This was necessary to support the need for LLDB to demangle Swift symbol (and type) names
Test case is included
Swift SVN r6547
20 lines
484 B
C++
20 lines
484 B
C++
#include "swift/SIL/Demangle.h"
|
|
|
|
#include <string>
|
|
#include <iostream>
|
|
|
|
int main(int argc, char **argv) {
|
|
for (int k = 1; k < argc; k++) {
|
|
if (strcmp(argv[k], "--type") == 0) {
|
|
if (++k >= argc)
|
|
break;
|
|
std::cout << argv[k] << " ---> " << swift::Demangle::demangleType(argv[k])
|
|
<< std::endl;
|
|
} else {
|
|
std::cout << argv[k] << " ---> "
|
|
<< swift::Demangle::demangleSymbol(argv[k]) << std::endl;
|
|
}
|
|
}
|
|
return 0;
|
|
}
|