Ignore:
Timestamp:
Aug 6, 2018, 10:47:55 AM (3 years ago)
Author:
Rob Schluntz <rschlunt@…>
Branches:
aaron-thesis, arm-eh, cleanup-dtors, deferred_resn, demangler, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, no_list, persistent-indexer
Children:
8316a49
Parents:
4084928e
Message:

Change signature of cforall_demangle to be C-compatible

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/SymTab/Demangle.cc

    r4084928e rf47d0ad  
    509509                                return true;
    510510                        }
     511
     512                        std::string demangle(const std::string & mangleName) {
     513                                SymTab::Mangler::StringView view(mangleName);
     514                                std::string name;
     515                                Type * type = nullptr;
     516                                if (! view.parse(name, type)) return mangleName;
     517                                return genDemangleType(type, name);
     518                        }
    511519                } // namespace
    512520        } // namespace Mangler
     
    514522
    515523extern "C" {
    516         std::string cforall_demangle(const std::string & mangleName) {
    517                 SymTab::Mangler::StringView view(mangleName);
    518                 std::string name;
    519                 Type * type = nullptr;
    520                 if (! view.parse(name, type)) return mangleName;
    521                 return genDemangleType(type, name);
    522         } // extern "C"
     524        char * cforall_demangle(const char * mangleName) {
     525                const std::string & demangleName = SymTab::Mangler::demangle(mangleName);
     526                return strdup(demangleName.c_str());
     527        }
    523528}
    524529
Note: See TracChangeset for help on using the changeset viewer.