Changes in / [6b419ce:fe293bf]
- Files:
-
- 1 deleted
- 3 edited
-
src/SymTab/Demangle.cc (modified) (3 diffs)
-
src/SymTab/Demangle.h (modified) (2 diffs)
-
src/SymTab/demangler.cc (modified) (1 diff)
-
tests/in-demangle.txt (deleted)
Legend:
- Unmodified
- Added
- Removed
-
src/SymTab/Demangle.cc
r6b419ce rfe293bf 9 9 // Author : Rob Schluntz 10 10 // Created On : Thu Jul 19 12:52:41 2018 11 // Last Modified By : Andrew Beach12 // Last Modified On : Mon Nov 6 15:59:00 202313 // Update Count : 1 211 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Jan 11 21:28:27 2021 13 // Update Count : 11 14 14 // 15 15 … … 18 18 19 19 #include "CodeGen/GenType.h" 20 #include "CodeGen/OperatorTable.h"21 20 #include "Common/PassVisitor.h" 22 21 #include "Common/utility.h" // isPrefix … … 606 605 Type * type = nullptr; 607 606 if (! view.parse(name, type)) return mangleName; 608 auto info = CodeGen::operatorLookupByOutput(name);609 if (info) name = info->inputName;610 607 std::unique_ptr<Type> manager(type); 611 608 return genDemangleType(type, name); -
src/SymTab/Demangle.h
r6b419ce rfe293bf 10 10 // Created On : Fri May 13 10:11:00 2022 11 11 // Last Modified By : Andrew Beach 12 // Last Modified On : Mon Nov 6 15:48:00 202313 // Update Count : 112 // Last Modified On : Fri May 13 10:30:00 2022 13 // Update Count : 0 14 14 // 15 15 … … 17 17 18 18 extern "C" { 19 /// Main interface to the demangler as a utility.20 /// Caller must free the returned string.21 19 char * cforall_demangle(const char *, int); 22 20 } -
src/SymTab/demangler.cc
r6b419ce rfe293bf 2 2 #include <iostream> 3 3 #include <fstream> 4 using namespace std; 4 5 5 void demangleAndPrint(const std::string & mangleName) {6 void f(const std::string & mangleName) { 6 7 char * demangleName = cforall_demangle(mangleName.c_str(), 0); 7 std::cout << mangleName << " => " << demangleName << std::endl;8 cout << mangleName << " => " << std::flush << demangleName << endl; 8 9 free(demangleName); 9 10 } 10 11 11 int main(int argc, char * argv[]) { 12 char const * fileName = (1 < argc) ? argv[1] : "in-demangle.txt"; 13 std::ifstream in(fileName); 14 12 int main() { 13 ifstream in("in-demangle.txt"); 15 14 std::string line; 16 while (std::getline(in, line)) { 17 if (line.empty()) { 18 std::cout << "=================================" << std::endl; 19 } else if (line[0] == '#') { 20 continue; 21 } else { 22 demangleAndPrint(line); 23 } 15 while (getline(in, line)) { 16 if (line.empty()) { cout << "=================================" << endl; continue; } 17 else if (line[0] == '#') continue; 18 f(line); 24 19 } 25 20 }
Note:
See TracChangeset
for help on using the changeset viewer.